本文讲的是解析IBM总结出的五项SOA最佳实践,【IT168 资讯】要取得SOA部署的成功,必须先建立起核心架构领导团队,以确保付出的努力符合需求、并指导架构的发展。针对架构的最佳实践可分为重用、数据管理等几个不同的方面。
SOA的重用不仅仅是传统的代码重用。它必须做到架构重用——创建一个可重用的架构框架,通过细致的规划、工程与管理来推动企业内各SOA项目的发展。
你不应假定已有的Web服务是符合标准的,或它们是可以轻易合成与集成的。服务合成(service composition)是相当复杂的,而且常常涉及到事务、工作单元边界、错误处理、安全性与证书分发、以及业务逻辑聚合等方面的问题。与此相关的最佳实践是,你从刚开始进行服务设计时就要考虑到重用,并随着商业案例的发展增加可重用性。
白皮书里说。
许多SOA实施关注于服务的实现(implementation),而没有对SOA的数据管理方面予以足够重视。如此掉以轻心可能会造成数据管理不当、不可靠的数据、并威胁到数据完整性。许多专业人士仍以过去点对点式的数据需求来看问题。
根据IBM的经验:
随着你将数据实现为服务,有效的信息元数据管理与公用信息模型(Common Information Model,CIM)的运用是成功的一个关键因素。使用CIMs,令你可以设立标准并为适用于所有接口、消息、数据结构与数据转换的信息创建描述性元数据,以支持重用,并由此加快开发速度。用模型驱动的方法把最佳实践标准化,可以加快开发速度,并能够在接口与信息结构之间建立起更好的一致性。使用这种模型驱动的方法有助于减少对转换(transformation)的需求,并使之更容易在需要时设计转换。
在IT与业务之间的建立联系:
这需要通过有目的的工作,把IT与业务流程联系起来,并关注于未来的业务流程设计——也就是说,你在设想SOA方案时,应该着眼于业务流程应该如何运行,而不是目前如何运行。业务流程建模提供了一种跟踪重要业务实体生命周期的有效办法,由此获得的业务流程模型不但简单灵活,而且具有一致的任务粒度,这更易于在不同利益相关者(无论是业务级、还是IT级的)之间达成一致。
只有依靠扎实的方法学确保模型正确,这种建模方法才会有用。若高层业务流程模型不正确,那么要把它细化为可执行的业务流程(executable business processes)就会变得困难而昂贵。根据IBM的经验:
组件业务建模(CBM)以及面向服务的建模与架构(SOMA)都为以最佳实践的方式来建模提供了支持。 CBM可以帮助你对企业进行分析:它首先将企业划分为若干相对独立、不相交的业务组件,然后再寻找革新或改良的机会。要创建一种面向服务的架构(SOA),面向服务的建模(service oriented modeling)是必须的。其输入是业务组件化分析(business componentization analysis)的结果、业务目标(business goals)以及关键业绩指标(key performance indicators);其输出是一个独立于任何特定技术与模型的SOA。
在IBM研究得出的经验与最佳实践中,有关机构因素的影响的最多:
要脱离一种筒仓式的(siloed )组织结构,这种组织结构往往只从各个项目内部进行考虑。假如没有某种集中控制,要将大量项目按它们各自的日程整合起来,恐怕是难以实现且多半低效的。与此相关的最佳实践是:设立一个有各技术相关利益者参与的权威机构来监管设计,并推进早期的架构决策。
IBM发现,要成功通过SOA获得持续效益,另一个关键因素是SOA治理(SOA governance)。SOA治理令业务团队与IT团队可以更好地协作,以识别出那些对实现业务目标最有贡献的项目。
应该在最初的SOA试点项目之中和首个重要SOA项目开始之前引入SOA治理。这令你们机构可以成功处理重要项目的复杂性,而不是像训练任务一样对待它。SOA治理也应当与你们机构的企业架构计划一致。
为避免各个项目使用重叠、不一致的治理模型,造成混乱与阻碍,需要有企业级、跨项目的视野。
通常,SOA实施会涉及到许多彼此交互的服务。因此,对于SOA实施来说,可伸缩性、可靠性及高可用性(availability)是最重要的需求。根据IBM的经验:
你应尽量采用那些已知的方案以满足可靠性与性能需求。然后,设计、测试、再测试,以确保性能、可伸缩性及互操作性需求得到了满足。不要在尚未正确解决并测试这些非功能性需求的情况下就部署一个方案。
SOA成功的另一个关键因素是:确保运营的可视性及实施的可控制性:
问题与事件管理系统,以及问题判定与检修工具,应在架构的各个层次提供充足的可配置的信息。同时,选择那些简化了SOA基础设施管理的技术方案,将有助于限制复杂性。
这份IBM白皮书里提出的这五点最佳实践可以帮助公司及SOA专业人员关注于SOA实施里最重要的环节(与我之前的报道形成对比),从而能够在计划并部署SOA的过程中更有效地满足投资目标。随着各个企业方案均采纳SOA,它们还将有助于提供持续效益。