服务生命周期管理:应用到软件交付上的 SOA 治理
一旦组织通过多个计划、定义、启动和度量活动的迭代建立了 SOA 治理,就可以建立起非常好的实践的坚固基础,极大地简化了 SOA 实现的实际构建。改进的策略生成了更好的规格,它授权了更健壮的计划,等等。
重要的是要注意,SOA 治理过程决不要落在后面。成功的服务实现需要对原始 SOA 治理框架进行不断的验证和更新。服务必须根据计划进行构建,不能达到的计划要进行修改。SOA 治理支持并指导服务生命周期管理的迭代的 SOA 实现循环。
人们可以把 SOA 治理阶段作为业务需求的具体化过程,并且把相应的服务生命周期管理阶段作为指导补充那些需求的技术的过程。例如,SOA 治理需求,像“我们要在五分钟内拿到订单项”可能会导致这样服务生命周期管理的规格,像“系统必须在 100 毫秒或更少的时间内对输入 X 进行响应”。然而,在两种情况下,都是相对于原始的业务计划来管理活动。
像 SOA 治理一样,SOA 服务生命周期管理是一个迭代的过程,如图 2 所示。该过程在 SOA 生命周期过程中持续进行。

图 2:SOA 服务生命周期管理
虽然本质上它们支持实现,而不是治理,但是服务生命周期管理的阶段与 SOA 治理阶段非常类似:
建模(Model):验证计划。在此阶段,架构师共同回顾当前的 SOA 治理计划并且将其作为 SOA 实现的建模基础。
组装(Assemble):验证定义。在此阶段 ,开发人员将架构师已经建模了的可复用的服务资产进行组装,从而创建将业务过程自动化,并且集成了业务过程的面向服务的应用程序。
部署(Deploy):验证启动。在此,测试及发布管理功能对服务进行部署。
管理(Manage):验证度量,借此,操作(Operation)将管理产品中的服务。
在四个 SOA 服务生命周期管理的每个阶段中,实践人员不断地根据原始的业务需求验证其活动和成果。这样,治理确保了业务需求推动了服务交付生命周期的所有方面,并且确保了实现仍旧与业务目标结合在一起。例如,在部署阶段,测试团队会根据治理过程中商定好规格,验证所部署的服务能如预期结果一样为其预定的用户团体服务。当然,可以根据实现团队在交付服务时实际遇到的问题来修改需求。
到达 SOA 质量管理的道路
服务复用是在 SOA 实现中促使成本节约和业务灵活性的关键因素之一。然而,如果一个服务被许多复合的业务应用程序使用的话,那么对该服务的高质量和性能的需求将比今天许多纵向集成的应用程序要更大。另外,复用的承诺承担了潜在的风险:违反安全性或法规遵循政策的服务、妨碍其他服务操作的服务,等等。需要平衡风险与服务复用的价值,而该过程已经作为 SOA 质量管理了。
以前,测试是瀑布式发布计划的最终阶段,在软件开发过程最后进行。现在,SOA 高质量的要求需要团队必须针对性能、复用、法规遵循、安全性,等等对他们根据业务需求所构架、构建、部署,及管理的东西进行验证 —— 在 SOA 实现生命周期地每个阶段。验证 SOA 的意思是在服务层和复合应用程序层对组件进行测试。它还意味着处理与遍布不同部门、不同实践,或者也许是全球分布的团队合作中所固有的控制问题。
SOA 计划从而推动了软件开发过程中的质量管理演进,如图 3 所示。

图 3:从软件测试到业务驱动的质量管理
从传统软件测试到业务驱动的质量管理的这一加速趋势是业务/IT 协作中前进的下一个步骤。在该环境中,软件测试仍旧非常重要,但是它只是跨整个 SOA 环境管理质量的,优化业务灵活性并降低整体成本的一个部分。