文/朱现坡
SOA(Service-Oriented Architecture),即面向服务的架构,是一种软件体系结构构建和设计风格。其思想是,为解决复杂业务需求,将业务系统拆分成相互独立的单元(服务),各单元又能按照协议、接口和业务流程进行交互集成。系统建模和服务重用是SOA体系中经常遇到的概念,系统建模是SOA的手段和方法,服务重用是SOA目的和结果。本文将对他们的重要性、诸要素及关系展开论述。
在面向服务的体系结构中,建模是重要的组成部分,是业务需求和系统开发之间的连接和转换。通过系统建模,约定系统的结构和行为,给出指导构造系统的模板,使系统的功能、业务流程、和数据关系达到一定程度的可视化,并通过文档描述所有的成果。这些成果,为后续应用服务的设计、程序代码框架搭建、编码、及系统测试提供了依据。
“重用是工业生产的基础,也是世界变革的标志”。服务是SOA交付的最重要资产。构建服务体系架构中最重要的目标和目的之一就是服务重用。资产重用是软件系统投资建设价值的重要体现。服务重用对组织过程资产积累非常重要,各种业务系统开发中积累的可重用服务是公司的重要资产。服务重用,既能降低业务模块开发的边际成本,又能减少编码、测试和维护时间、促进新业务系统的快速交付,还能降低项目的风险。服务重用是提高软件资产投资回报率,增加公司/组织利润的关键。有战略规划的、管理规范的服务重用,将使软件生产线成为可能。
面向服务架构中系统建模要素包括,系统整体需求、系统功能、业务流程、数据关系、设计理念和抽象能力、管理规范和领域标准。
(1)系统整体需求,是系统建模的整体目标和指导方针,是为需求方解决问题的全局描述,是用户/客户心中的期盼。
(2)系统功能,是系统建模中对“做什么”的定义,描述系统的功能、性能、内外部接口和用户界面。系统建模中根据系统功能形成功能模型(FM)。
(3)业务流程,是系统建模中对“怎么做”的定义,描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的步骤或流程。系统建模中根据业务流程形成业务模型(OM)。
图1:系统建模和服务重用各要素及关系图
图2:建模和重用例图
(4)数据关系,是系统建模中对“数据结构”的定义,描述系统数据结构、操作、关系、约束、流转、价值和生命周期。系统建模中根据数据关系形成数据模型(OM)。
(5)设计理念和抽象能力,是系统建模的基础思想准备,是系统建模能力的重要瓶颈,基础思想与系统整体需求有机结合对系统建模至关重要。
(6)管理规范和领域标准,是系统建模的指导规范,组织/公司内部统一的规范和标准的约束,是系统建模结果为所有相关人员所理解的保障。
面向服务架构(SOA)中服务重用要素包括,事业环境因素、产品战略、业务过程模型、可用服务、设计理念和抽象能力、管理规范和领域标准。
(1)事业环境因素,是指影响本组织业务和产品的所有内外部环境因素,以及本组织对服务重用的指导思想和态度。
(2)产品战略,是指本组织当前的产品、产品之间的关系和产品规划,关键业务和业务流程。产品战略是服务重用的目标依据。
(3)业务过程模型,是根据业务需求对业务流程的抽象整合,需要基于服务组合实现业务需求。
(4)可用服务,是指业务系统建设中形成的可重用服务资产,可用服务不依赖于具体系统和具体业务流程,可组合形成新的业务。必须存在有价值的可重有服务才能实现服务重用。
(5)设计理念和抽象能力,是服务重用的基础思想准备,是实现业务过程模型与服务和服务组合有机结合的重要能力。
(6)管理规范和领域标准,是服务重用的指导规范,组织/公司内部统一的规范和标准的约束,是服务可重用的重要依赖条件。
(1)系统建模是服务重用的前提,服务重用是系统建模的目标。服务重用最重要的一点在于,在服务创建过程中就应该重点考虑重用。而系统建模是服务创建的必要前置步骤。从整个组织的价值视角看,系统建模是手段和方法,服务重用是目的和结果。
SOA中的服务能否重用,是否好用,能否通过服务的有机组合实现新的业务需求,系统建模起着决定性的作用。业务粒度的划分、建模抽象化的程度、系统架构和程序设计的经验、文档的完备和描述水平,都将决定着服务在多大程度上可以重用。进一步说,好的系统建模形成的组件、模板、设计方法、最佳实践、工具都可以作为组织的资产加以重用。如图1所示。
(2)系统建模和业务重用都需要对整体需求的掌握。系统建模中系统整体需求、系统功能、业务流程、数据关系等要素都基于对本系统整体需求的高度理解和把握,服务重用中事业环境因素、产品战略、业务过程模型也是基于本组织整体需求的高度理解和把握。
(3)系统建模和业务重用都需要业务流程的建模。系统建模和业务重用都需要理解产品功能和约束条件,需要分析系统内外部的业务关系,需要基于业务流程形成业务模型或业务组合模型。
(4)系统建模和业务重用都需要设计理念和抽象能力的指导。设计理念和抽象能力是SOA建模、业务重用、服务体系架构的统一基础思想。
(5)系统建模和业务重用都需要遵循组织的管理规范和领域标准。
假设某公司根据客户需求或自身发展,需要先后建设B2B、B2C、B2B2C三个电商系统。使用SOA,通过合理的系统建模,各系统开发了很多服务。各系统的主要模型和服务,如图2。
图2中显示,最先建设的B2B系统的部分服务通过组合在随后建设的B2C系统中得到重用;而在后来的B2B2C系统建设时,只需要将B2B和B2C系统的部分服务通过组合重用即可实现大部分需求。