基于IEEE 1471的SOA建模
SOA寻求跨组织边界的重用的本性决定了它在降低开发成本、灵活响应业务变化的同时,也大大增加了设计开发的复杂性,并因此带来在沟通、协作和管理上的复杂性。成功实施SOA的一个重要原则,就是必须充分理解不同利益相关人的角色,理解他们的目标和关注点,懂得他们交流的方式和语言,能够让他们在整个SOA交付和整个生命周期内进行充分的沟通与协作,获得各自需要的相关信息以正当决策。建模作为在传统软件工程中增加抽象程度,简化并分离关注点,增进人与人之间沟通协作的有效方法,对于创建面向服务的解决方案同样重要。
SOA这种跨组织的特性决定了其建模必须采取一个从企业级视野通盘考虑,系统思考问题的方法。企业架构提供了一个企业整体的视图,是在对企业业务战略和核心业务流程理解的基础上,进行信息化顶层设计,形成的相对稳定的结构。在企业架构中,建模通常是指创建企业的抽象的表述,包括业务流程、IT基础设施以及它们相互之间的关系等。在理想的情况下,我们最好能有一套标准的、工业级的企业架构方法和统一的建模语言。但目前,业界虽然也已经有了一些广泛使用的企业架构方法,例如Zachman Framework、TOGAF等,但每一个方法都有它自身的优缺点。而ANSI/IEEE 1471标准给了我们一个很好的参考,它作为一个概念框架,可以很好地融入现有的架构方法,并对架构模型进行分类和扩充,帮助企业SOA架构师从本企业需求和SOA特点出发建立服务架构模型。
在IEEE 1471概念框架中,定义了几个核心的概念:
任何一个系统(System)是为了达成某些利益相关人(Stakeholder)的某些使命(Mission),在特定环境(Enviroment)中构建的。每一个系统都有一个架构(Architecture)。
架构(Architecture)是对所有利益相关人的关注点(Concern)的响应和回答,通过架构描述(Architecture Description)来说明。每一个利益相关人都有各自的关注点。这些关注点是指对其重要的,与系统的开发、运营或其它方面相关的利益。
架构描述(Architecture Description)本质上是多视图的。每一个视图(View)是从一个特定的视角(Viewpoint)来表述架构的某一个独立的方面。试图用一个单一的视图来覆盖所有的关注点当然是最好的,但实际上这种表述方式将很难理解。
视角(Viewpoint)的选择,基于要解决哪些利益相关人的哪些关注点。它决定了用来创建视图的语言、符号和模型等,以及任何与创建视图相关的建模方法或者分析技术。
一个视图(View)包括一个或者多个架构模型(Model),一个模型也可能参与多个视图。模型较文本的表述的好处在于,可以更容易的可视化、检查、分析、管理和集成。
基于这样一个企业建模的概念框架,针对一个特定的目标,如SOA服务架构的建模(Service Architecture Modeling),SOA架构师首先应就其工作的边界和相关限制条件达成一致,明确服务架构建模将发生的上下文环境,识别涉及的利益相关人或组织,充分理解他们的目标、需求和关注点,并得到他们的认可,以清晰地知道哪些方面是要重点关注的,哪些方面是无关紧要应该忽略的;然后决定企业的哪些方面与之相关,应该在模型中表达,从而选取相应的视角和视图进行建模(可以参考并从已有的企业架构框架中选取业界已经广泛应用的视角作为模板)。同时,SOA架构师有责任确保服务架构的适当性(fitness-for-purpose),充分体现各利益相关者的关注点;并确保服务架构的完整性,各种视图能够有机的结合成一个整体,平衡各种利益相关者的利益冲突,显示出很好的折衷。记住:建模并不是我们的最终目标,促进沟通,支持正当决策,致力于采取行动才是。因此,在SOA项目实施中,单纯为建模而建模的做法是我们所不鼓励的。