面向服务开发之SOMA方法
IBM的SOMA方法
SOMA方法是基于一个面向服务的架构模板
该架构模板描述了面向服务的一种层次结构,底层是业务系统层,该层包括企业现有的一切遗留系统,比如企业自行开发的主机系统、ERP或CRM系统,或者面向对象的系统等。第二层为企业级的组件层,这些组件实现了对现有系统功能的包装,或者提供了新的功能,无论如何,它们是实现服务的基础,因此也必须满足SLA的要求。在实现技术上,这些组件一般为应用服务器中的组件。第三层为服务层,这些服务都是可以被动态发现的,或者可以组合为更为复杂的服务,它们可以被重用。第四层为流程层,通过一定的规格把第三层的服务组合起来,用于达到一个特定的目的。最上层为表示层,提供和用户的交互。第六层为集成层,一般使用企业业务总线来实现,提供了基本的消息路由及一些转换机制等,与协议无关,是服务之间的通信的基础。第七层为服务质量层,提供了对服务的监控和管理等工作,保证整个面向服务的架构健康运转。
在此架构模板的基础上,SOMA提出了服务分析和设计的方法论,如果3-9
如果3-9中所示,SOMA主要包括三个步骤,服务发现】服务规范和服务实现。服务发现为服务分析,服务规范属于服务设计的范畴。所以三个步骤实际上对应了面向服务的分析,面向服务的设计和实现三个阶段。下面主要介绍面向服务的分析与设计。
在服务发现的过程中,SOMA综合了自顶向下、中间相遇和自下而上等方法,来发现服务。在自顶向下的方法中,使用域分解,把业务领域划分为业务功能区和子系统,把流程细化为子流程和业务用例,这些业务用例就是潜在的候选业务。这种方法一般用来确定大粒度的服务。在自下而上的方法中,通过对现有系统的分析,把现有系统包装为服务,从而确定小粒度的服务。在中间相遇的方法中,主要统通过对目标服务的建模,来捕获自顶向下和自下而上两种方法没能捕获的候选服务。在这种方法中,把业务目标分解为子目标,列出关键的业务性能指标,度量值等,然后分析实现目标的可能的相关服务。
通过以上方法,可以得到一系列候选服务。随着服务数目的增多,会带来一系列管理上的问题,并导致系统的性能下降、可伸缩性变差等。所以需要用某种方法来有效的管理服务。SOMA在发现候选服务后,按照其架构模型,对服务进行分层。提供最基本功能的一些服务,可以归属为企业级组件层;由其他服务组合而成,提供一个更高级功能的另外一些服务,可以归属为服务层;包含了复杂的功能,实现了业务流程的服务,则归为流程层,从而得到服务的层次结构。