SOA面向服务设计的基本原则和方法
SOA面向服务设计的基本原则和方法
2011-08-23 11:15:37 来源:比特网
抢沙发
2011-08-23 11:15:37 来源:比特网
摘要:本文试图从面向构件的角度,介绍一些SOA架构设计的基本思想和方法论。首先简单介绍一些构件设计和实现的基础知识,然后重点介绍面向服务设计的基本原则和方法。
关键词:
SOA
SOA应用
SOA代表着今后一段时期软件技术的发展方向,并已经开始从研究阶段进入实施和推广阶段。本文试图从面向
构件的角度,介绍一些
SOA架构设计的基本思想和方法论。首先简单介绍一些
构件设计和实现的基础知识,然后重点介绍面向服务设计的基本原则和方法。
构件的组成要素
构件是软件开发、复用和软件组装的实体单元,包括以下要素:
构件类型(componenttype)、
构件实现(componentimplement)、提供接口(provides-interfaces)和依赖接口(requires-interface)。
构件类型(componenttype):
构件类型表明
构件是处理什么问题和提供哪些接口功能,它包含了
构件类型的名称。
构件实现(componentimplement):对
构件类型的具体实现称为
构件实现,一个
构件类型可能有多个
构件实现。
提供接口(provides-interfaces):提供接口指
构件提供给外部程序使用的接口。
依赖接口(requires-interface):依赖接口指
构件运行时所必须依赖的外部程序接口。
构件的基本特征
复用:复用是
构件最基本的性质,
构件的设计必须满足未来能在新的应用、项目中使用。
封装:
构件封装对外界隐藏
构件的设计和实现细节,仅通过接口与外界交互。这可以保证
构件功能复用的完整性和
构件开发及交付的独立性。
组装:
构件可以通过组装形成新的
构件或系统,组装是
构件复用的手段,同时具备可插拔,便于替换,系统可以由不同的开发商开发的
构件组装而成。
粒度:
构件是有大小的,越是跟领域相关的
构件粒度越大,小粒度的
构件可以方便的组装成较大粒度的
构件。
层次:
构件可以按层次进行划分,企业级应系统的复杂逻辑可以通过层次来解决,不同的层次需要不同层次的
构件。按照MVC的体系架构,可以把
构件划分为:展现层、控制层、业务层、运算层及数据层等。
构件的实现
[page] 目前软件市面上有三个代表性的
构件技术标准分别是:COM/DCOM、CORBA和EJB。
COM/DCOM:COM(Conponent Object Model)是由Microsoft公司推出的
构件接口标准,DCOM是指可以分布式布的COM。
CORBA:CORBA(Common Object Request Broker Architecture)是由对象管理组织(OMG)提出的
构件技术标准。
EJB:EJB是由SUN公司提出的
构件技术标准。
以上三种
构件标准实现的
构件互相依赖的方式仍然是基于对象接口式的,当系统复杂度到一定规模时,整个系统会因依赖关系混乱而陷入失控。
比较理想的
构件模型是
构件之间是数据耦合的,每个
构件只单独与数据总线发生联系。当需求发生变化时,可以对各个单独的
构件进行添加、减少或者修改而不影响整体的架构和性能。基于数据耦合的
构件,据有很高的独立性,对需求变化有较强的适应能力。
构件技术与构件化
构件技术与
构件化的区别在于,
构件化的关注点不在于
构件本身的技术实现,而在于如何把应用系统分解成稳定、灵活、可重用的
构件,在于如何利用已有的
构件库组装出随需应变的应用软件,从一个面向
构件的环境中去分析应用,如何做出灵活、重用的
构件来思考。但是,
构件技术是
构件化的基础,它为
构件的工厂化生产提供技术保障。传统的软件方法学是从面向机器、面向数据、面向过程、面向功能、面向数据流等反映问题的本质;而
构件技术关注的是在
构件已经可用的情况下,在更高层次上的组装和复用。面向
构件的软件设计方法把装配和制造分离,
构件运行时负责提供标准接口和框架,负责软件装配,而
构件负责软件的制造,使软件开发变成
构件的组装。
接下来,我们将开始介绍面向服务(
SOA)的设计。
面向服务设计
服务代表一段完整的业务单元,并且可以根据特定用户的需求组织成为更大和新的服务。服务可以由一个或多个
构件组合而成。服务开发者必须考虑
构件的粒度,以及
构件的流程和组装,这样他们在改变服务的实现时,可以尽可能少的影响其它
构件、应用和服务。而服务的设计者则更关心选择合适的服务,并将它们以可管理的方式组织,并最终将它们组装为完整的业务流程。
“面向服务”表示一种分离系统关注面的方法,其实质是将一个比较大的问题分解成一系列较小的、互相关联的子问题,从而降低问题的复杂度,使得我们能够较从容地分析、解决和管理它。传统的面向对象的设计方法其实也是一种分离系统关注面的方法,只不过它是在对象层面来分离关注面,相对业务逻辑较远,而面向服务则是在服务层面来分离关注面,直接关注的是业务逻辑,从而使面向服务能够(至少在理论上)更好地满足业务需求。
第四十一届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:kaifangli
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。