SOA落地途径
4.1. 架构方法论
方法和工具构成了工程技术域,要构建SOA架构的企业信息系统,确保业务和IT的真正匹配,首先必须从方法论入手。
许多企业的IT系统“孤岛”现象严重,本质上是缺乏足够有效的整体规划或者架构规划造成的。形象地说,构建企业IT大厦如同我们盖房子是一样的道理。我们许多企业建设信息系统时就采用了盖乡村民宅的做法。盖乡村民宅不需要严谨的规划,也没有复杂的地下设施建设(如自来水供水、排水、供气、地下停车场等),也没有需要建设污水处理、雨水收集等复杂的配套设施。而事实上,企业IT系统建设应该如城市建设,首先需要城市总体规划,然后根据功能区规划,设计和建设小区配套设施,“三通一平”实质就是构建建筑之间的公共基础设施,确保每栋建筑之间不是“孤岛”,然后每栋建筑还需详细的设计和工程施工。如果要消除信息孤岛,实现IT与业务的一致性,也需要有效的企业架构规划和设计。
为什么需要架构规划
透过现象看本质,SOA代表着一种面向服务的IT架构风格,SOA的技术本质和出发点,在于IT架构。而IT架构,是组织的企业架构的重要组成部分,它和组织的战略架构、业务架构一起,形成一个自上而下、紧密联系、相辅相成的有机整体。SOA代表着一种正在蓬勃兴起的革命性IT架构理念,和传统技术体系区别的关键特征之一就在于SOA是战略导向和业务驱动的。而国际和国内的各方面经验都告诉我们,对于一个组织而言,捕获战略、梳理业务和IT的最有效的措施就是架构。
企业架构(Enterprise Architecture,EA),是从多个角度对组织的构件层次描述的规划蓝图,从各个层面反映组织的愿景、战略、业务、服务、人员、技术和产品及其相互之间的关系,辅以其管控和演进的规则。
一个企业架构内容包括业务架构(Business Architecture)、应用架构(Application Architecture)、信息架构(Information Architecture)、技术架构(Technology Architecture)等。
真正可以落地的SOA建设,必须且只能从架构出发。没有架构,\将变成一盘无法真正解决各种运营问题的技术和产品的大杂烩。优良的架构填补了业务需求与实际信息系统以及基础设施设计之间难以逾越的鸿沟。
在所有的架构开发方法(ADM- Architecture Development Methods)之中,开放群组TOG的TOGAF是目前最权威和最有影响力的一种。The Open Group于1993年开始应客户要求制定系统架构的标准,在1995年发表The Open Group Architecture Framework (TOGAF) 架构框架。TOGAF的基础是美国国防部的信息管理技术架构(Technical
Architecture for Information Management: TAFIM)。TOAGF是一个架构框架,简而言之,TOGAF是一种协助开发、验收、运行、使用和维护架构的工具,它是基于一个迭代(Iterative)的过程模型,支持最佳实践和一套可重用的现有架构资产。它可设计、评估并建立组织的正确架构。TOGAF的关键是架构开发方法ADM:一个可靠的,行之有效的方法,以发展能
够满足商务需求的企业架构。而2008年发布的TOGAF 9.0是符合SOA架构开发的最新版本。TOGAF所提出的“无边界信息流(Boundaryless Information Flow)”理念和愿景,是解决目前企业信息化孤岛问题的最有效方式。
TOGAF架构内容
4.2. 基于SOA的应用系统
基于SOA的应用系统构建方法与传统软件架构方法有所不同。 首先基于SOA的应用系统建模和管理的组件层次是服务:
面向服务的工程
基于服务的应用系统的本质特征是松耦合,以基本业务功能(服务封装)为系统的基本实现单元,然后通过服务编排(流程管理)来“组装”业务应用系统。相对于以往的应用系统,是面向技术组件,由系统程序实现业务流程,在复用、耦合方面都存在灵活性问题。
软件工程和系统设计的演进过程
基于SOA的应用系统构建过程是:
基于SOA的应用构建过程
服务建模是第一步,也就是服务识别和颗粒度确定。服务识别是方法论的第一步,服务识别的主要任务,是确定在一定范围内(通常是企业范围,或若干业务场景范围内)可能成为服务的候选者列表,并确定服务的颗粒度,以及标识服务的接口。服务建模也就确定了应用系统架构的耦合程度。
服务封装阶段的主要任务是对服务进行规范性的描述,其中包括输入/输出消息等功能性属性,以及服务在业务层面的诸多属性。并决定服务以何种形式向外提供服务。服务可能是新开发的业务功能和业务对象的封装,也可能是遗留系统的服务封装,将遗留系统的软件资产以服务的形式进行封装,在新的架构上利用已有的资产。
服务治理就是将已经封装好的服务进行集中统一有效的管理。通过ESB基础设施,提供服务注册、存储、安全控制和版本管理等。服务注册阶段的主要任务是将服务注册到服务库。此时需要决定服务的命名、安全、性能、时间特性。

