惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
WordPress大学
WordPress大学
B
Blog RSS Feed
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
aimingoo的专栏
aimingoo的专栏
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
C
Check Point Blog
P
Proofpoint News Feed
H
Help Net Security
月光博客
月光博客
博客园_首页
Stack Overflow Blog
Stack Overflow Blog
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
U
Unit 42
美团技术团队
I
InfoQ
A
About on SuperTechFans

博客园 - 蓝色游骑兵

利用JavaScript实现简单的下拉菜单 大话权限设计 安全系统的设计 ASP.NET 安全问题的思索 自定义验证器的开发 WinForm 开发 MSCRM 的感受 测试驱动开发 异常使用的思考 读UML精髓第三版之感受 使用静态构造函数与使用单件 数据完整性的检查 Acegi安全框架 安全服务的设计思考 ContextAttribute与ContextBoundObject应用开发3 ContextAttribute与ContextBoundObject应用开发2 ContextAttribute与ContextBoundObject应用开发 邮件发送组件的开发完成 验证组件的设计和使用
如何从新开发的程序中提炼服务
蓝色游骑兵 · 2008-03-15 · via 博客园 - 蓝色游骑兵

现在已确写在SOA的开发中也不就是将所有的功能都开发为公开的服务,而只是将与其它软件会发生交互的部分才设计为服务。
通过这样的一种方式,就必须从新开发的程序中提炼出服务。那么这里应当怎么的提炼出来服务呢,提炼出来的服务又与程序中其它的功能是一种什么样的关系呢?
在看SOA的很多介绍中都是将原有系统作为实现SOA服务的一个底层的依赖,根据这一种设想,那么根据以前的分层关系:x.IServices x.IServices.Impls ...就应当在x.IServices层之上建立EnterpriseServices,并且实现这个EnterpriseServices,并且在实现中调用x.IServices层。可以充分的利用已有的软件实现,包装出新的功能。那么也就表示开发新的软件中使用SOA与改造已有软件提供SOA的功能是相同的。而这里的EnterpriseServices只是将x.IServices包装为一个或多个服务而已。而且可能在有的情况之下可能EnterriseServices所提供的功能与x.IServices中的功能相同,并且这样不会有什么问题吗。
还有一种方式就是根据已有程序的功能和数据直接全新建立一个EnterpriseServices与x.IServices这一部分不产生关系,这样做的好处理是,因为x.IServices毕竟不是以实现EnterpriseServices为核心,而是以实现软件自己的功能为核心的,其性能不能够保证。数据实体等肯定需要重新为服务的需求而定义。而如果全新开发一个EnterpriseServices那么就能够为EnterpriseServices专门进行开发。但这里所产生的问题是,EnterpriseServices对x.IService极其实现的数据库数据的依赖关系是客观存在的,并且也不能够充分利用已有的代码。
这两种方式怎样好一点呢,或者说说了这么长时间的SOA,软件出来最后应当是个什么样子呢。是整个系统都是全SOA化呢,还是只是部分SOA化。思考很久不知道答案。