SOA承诺许多美好的愿景,IT体质经过调养,转变成敏捷、灵活,能快速响应业务需求的有机体。但如果只有一个崇高的目标远景,却缺乏一套有效的体制和方法,千头万绪不知从何入手,那么愿景将持续是高远的愿景,依然是那么地遥不可及。
建设一个企业级的面向服务架构,不论在规划、施工、运维,乃至于监管和治理(Governance)这些关键课题上,都能从多年来在城市建设领域所积累的经验和教训中,得到许多借鉴。
在一个城市里,现存了许多商业大厦、居民楼等建筑物,就像一个企业,多年下来积累了许多应用系统,而各式各样的建设项目,仍持续地在进行着。这样的城市,必须考虑兼顾增量建设与存量改造的问题——既要新建一批重大基础设施项目,加强能力建设,又要注重存量设施的更新改造,优化完善功能,整体提高基础设施服务效率和水平。如果任由这些建设各自随性发展,将难以确保他们日后的一致性和协调性,各栋建筑物的水、电等能源系统,排水、排污管道,以及社区巷道是否都能一一与城市的供水、供电、下水道,主要道路等顺利接轨,都将是个问号。此外,城市本身的交通、治安、能源供应、卫生、空气品质、休闲设施,乃至于生活机能,能否符合城内居民和企业的期望,使其居住愉快,进而充分发挥生产力,将决定一个城市的兴衰成败。我们因此可以说,城市建设的成功关键,在于是否能建立一套通用的框架——包括原则、制度、和规范,来确保城市发展的过程,能持续不断地朝着市民所期望的发展目标,逐步迈进。
城市建设一览
1.城市规划
城市规划确定城市发展的框架,划分工业区和住宅区,并制定供水、供暖、供电以及交通流量等规划。城市规划是一项社会协议,通过由城市居民与企业实施的地方项目,推动城市的合理发展。如果没有城市规划,城市就有陷入混乱的危险-缺乏凝聚力,对于交通和基础设施的投资,将缺乏内在的一致性。城市规划是一种行政手段,经过对在一般性决策中需要反映的各方利益进行通盘考虑后,为建设和发展目标设定界线。
各个城市在地理位置、人口、历史、商业与能力结构等方面的先天环境和条件,都不尽相同。因此,它们需要制定不同的规划,尽管这些规划在外行人的眼中可能大同小异,但是它们实际上反映了差异极大的现实情况,因此规划出来的内容,也可能存在着很大的不同。
城市规划有全国、地区和本地规划之分。同样,SOA也可能在不同的级别来规划和实施。例如:
国家级
部门/服务社区级
单个机构/机关级
城市规划的制定要经过许多阶段,各阶段的持续时间可能是数周(简单的修缮等)也可能是数十年,它们需要各种级别的规划。
2.施工和验收
规划完善的城市设施和建筑物,当施工项目一一发包给各个团队去落地的时候,必须要有一套方法来贯彻规划时所制定的标准规范和进度,除了确保施工质量之外,还得兼顾项目间的协调性和一致性;此外,楼房搭建和各种公共基础设施(道路、公园、自来水管线……)的建设项目,关注点各有不同,在落实和验收时必须兼顾所有重要的环节。
3.城市运维
高效的城市建设管理,能真正将项目的决策、实施、运营全过程与规划目标的实现联系起来,通过建立评价指标体系和数据模型,将项目从规划、决策,到运营中发生的行为和实施效果,进行系统、科学的量化评价;并能逐步建立对城市建设和城市基础设施的效果评价指标体系,注重效率分析,加强阶段性评估。围绕项目决策提出的目标、功能、任务、组织,进行事后评价,重点是对项目决策预期效果和项目实施后实际效果进行对比考核,分析变化原因,及时总结和反馈经验教训,以作为下期规划的重要参考输入。
4.组织与监管/治理
成功的城市经营管理,往往借助于专责机构的建立。专责机构对领导小组负责,负责建设项目的研究策划、具体工作的组织实施,和政策的跟进落实,进而统筹、协调、检查、督办各项工作任务完成情况,通过建立监管制度和定期汇报制度,落实工作进度,同时代表政府行使监管职责。
SOA过程
和城市建设相同,SOA的发展也要经历类似的规划、施工、运营阶段,而且需要一个专责的组织来执行一套治理框架。
1.SOA三大阶段
SOA是一个旅程,其中有三个关键的过程和阶段,各自有不同的迭代,由不同的角色参与(如图1)。在策略和规划的过程中,由高管(VP、CIO、CTO
等)所组成的筹划指导委员会,以及负责向他们报告的业务策略师、业务架构师、规划师、分析师、和项目管理办公室(PMO)中的相关人员,定期(例如每半年)进行SOA策略规划。SOA并非万灵丹,因此规划应始于识别出企业中有哪些迫切的业务和IT问题,最适合借重SOA来解决。策略师、架构师首先就SOA的价值驱动力(即Value
Drivers,例如整合客户数据、业务流程优化、降低维护成本)进行分析,针对目前的业务能力和IT现状,根据SOA对各项业务和IT驱动力的正面影响力,来选定重点方向;然后再朝向未来的目标远景分析差距,并排定实施SOA的优先级别、若干个项目计划,以及相关的评价体系;在举行下一次策略规划之前(例如半年后),分别实施相应各价值驱动力的解决方案。这些项目不宜过大,而应该切割成较小、容易掌控的大小范围。每个项目遵循共同的服务工程框架规范和过程,各有各的迭代,然后逐步从每个解决方案的开发过程中,同时选定、提炼出有共享价值的业务服务。在项目实施的过程中,参与的角色包括业务架构师、服务架构师、数据架构师、安全架构师、解决方案(应用)架构师、程序员、项目经理QA测试人员等。
图1 SOA的三大阶段
有别于传统的软件开发过程(SDLC),服务的生命周期并不随着开发活动告一段落,也不随着解决方案和服务上线而落幕;而是进入另一个阶段,由IT中心运营人员,依据先前在每个服务工程项目之初所定义的服务合同中的各项指标,对各个业务服务,通过仪表盘等界面进行生产监控(包括业务活动监控、BAM),并且定期将生产数据以报表的形式反馈给SOA规划指导委员会的成员,进一步分析已执行的各个SOA项目的目标达成率,并计算其投资回报(ROI)等,作为下个规划周期中,修正、调整目标的重要参考。
要强调的一点是,策略规划或项目实施的过程,都是周期性、迭代的过程,系统化地运用IT,一步步地紧密配合业务目标。而生产运营则是持续性对服务的各个世代,不断追求优化的过程。
2.服务生命周期
SOA中各个服务所经历的生命周期,与传统用来开发应用系统的软件开发生命周期(SDLC)概念有很大的区别。如图2所示,服务的生命周期,实际上更接近于产品生命周期管理(PLM)。一个服务可能历经多个世代,多次“轮回”,最后进入退休、除役状态。在多次迭代的过程中,可能因为业务需求的改变,而被调整、与其他服务进行重组、功能合并。此外,如服务契约的调整,以适应不同的安全和服务水平协议(SLA)要求等,都可能催生新版本的服务。而通过服务基础设施中ESB所提供的路由服务,我们可以有效地让多个不同版本的服务,同时运行,服务不同时期所建立的服务消费者,让消费者和供应者之间的耦合更为降低,而不需要强迫所有消费者配合某个供应者,同时进行升级。
图2 服务生命周期和其中的主要阶段
3.项目实施与服务工程框架
为什么SOA需要一套新的工程框架?首先,如上所述,服务生命周期的涵盖范围,远比传统以项目为单位的应用系统开发周期来得长。传统的软件交付方法,如waterfall及UP,当放到SOA的上下文中的时候,则显得有些不足。因为传统的软件交付,往往局限在个别项目的范畴,而交付的对象,则以应用为目标,没有一套过程能将功能拆分成适合在企业级别重用的服务模块。在SOA项目的过程中,我们除了和以往一样,需要开发出某个应用/解决方案之外,在此同时,还需要识别并搭建出若干个在未来能重用的服务模块,也可能利用既有系统中现成的功能进行重构,把他们封装成服务。这些都需要对传统以个别项目为基础、面向应用的工程方法过程,加以补强,来配合SOA中服务生命周期的特性,和前面提到的渐进式、迭代式的策略规划和项目实施。
一套适合SOA的项目工程框架,应将高度从个别项目及应用的层级,上升至整个企业的视野,在多个项目之间掌握关键的共性。同等重要的是,它应该不需要推翻、颠覆企业现有的开发过程,而是能在原有的基础标准之上,建立、增加服务交付所需增加的关键步骤,来进行SOA需求管理、服务选定、识别、服务契约(合同)的定义、接口设计,和项目发布计划等,并且能支持渐进式、一个接一个项目的执行方式,来逐步实现SOA参考架构中所制定的目标和远景。
4.公共服务和基础设施
继续城市规划的比喻,城市规划必须包括提供公共服务的原则,使所有建筑、房产能顺利地连接到这些服务:
供水、供电、供暖等
排污和垃圾系统
电话、有s线电视、互联网等
服务的建立是公共投资,而服务的使用则需要得到控制、管理和监督。在此同时,这些公共服务必须能以合理的价格,提供给房产的业主和居民。
就像城市需要这些基础设施,SOA的建设的过程当中,同时需要建立横跨各级服务和系统间的基础服务,包括遗留系统整合服务、数据整合服务、服务消息路由、服务流程编排、用户界面展现服务和服务注册等。我们将这些SOA的基础服务集合统称为服务基础设施(service
infrastructure)。广义的服务基础设施,可定义为SOA架构下,支持所有业务服务运行的基础,因此除了上述的SOA中间件外,举凡应用服务器、数据库、虚拟机、硬件、存储、网络等,皆可视为基础设施中的各个环节,即所谓的SOI——Service-Oriented
Infrastructure。随着虚拟化(virtualization)和网格计算技术的快速发展,在部署方式上也将更为敏捷、灵活,从而更进一步强化SOA快速响应业务变化的能力。
5.SOA治理
除了规划参考架构和服务工程框架之外,企业在规划实施SOA时,还必须全盘考虑治理/监管(governance)的问题。
SOA的实施需要从文化上转变人们在一起工作的方式,在IT和业务职能部门之间建立更加密切的协调关系,将注意力更加集中在为整个企业提供价值,而不仅是竖井式地集中在单个职能部门。
尽管许多实施SOA的公司可能已经参考某些标准(如 ITIL、COBIT)在进行某种IT治理计划,但是SOA不管对服务生命周期、技术标准、团队组织角色和技能等方面,都有许多新的要求。换句话说,SOA带来了很多传统IT治理范围外的新课题。从这个意义上讲,为了确保SOA的成功实施,应该将SOA治理,当作一个专门的学科来对待。
SOA治理框架的建立,能够帮助机构深入、通盘地了解自身的组织结构、运营流程、工具、标准,和指导原则。
图3 IT治理、SOA治理和企业架构(EA)各自的涵盖范畴
|