ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 从城市建设看 SOA (2007年11月22日)

从城市建设看 SOA (2007年11月22日)

原创 Linux操作系统 作者:tigerhsiao 时间:2009-04-07 11:16:14 0 删除 编辑
注:这阵子参与撰写一本专为下个月在上海的 BEAWorld 大会所准备的 SOA 专书,以下将我所写的部分整理摘录。


SOA 承诺许多美好的愿景,IT 体质经过调养,转变成敏捷、灵活,能快速响应业务需求的有机体。但如果只有一个崇高的目标远景,却缺乏一套有效的体制和方法,千头万绪不知从何入手,那么愿景将持续是高远的愿景,依然是那么地遥不可及。

  建设一个企业级的面向服务架构,不论在规划、施工、运维,乃至于监管和治理 (Governance) 这些关键课题上,都能从多年来在城市建设领域所积累的经验和教训中,得到许多借镜。

  在一个城市里,现存了许多商业大厦、居民楼等建筑物,就像一个企业,多年下来积累了许多应用系统,而各式各样的建设项目,仍持续地在进行着。这 样的城市,必须考虑兼顾增量建设与存量改造的问题 - 既要新建一批重大基础设施项目,加强能力建设,又要注重存量设施的更新改造,优化完善功能,整体提高基础设施服务效率和水平。如果任由这些建设各自随性发 展,将难以确保他们日后的一致性和协调性,各栋建筑物的水、电等能源系统,排水、排污管道,以及社区巷道是否都能一一与城市的供水、供电、下水道,主要道 路等顺利接轨,都将是个问号。此外,城市本身的交通、治安、能源供应、卫生、空气品质、休闲设施,乃至于生活机能,能否符合城内居民和企业的期望,使其居 住愉快,进而充分发挥生产力,将决定一个城市的兴衰成败。我们因此可以说,城市建设的成功关键,在于是否能建立一套通用的框架 – 包括原则、制度、和规范,来确保城市发展的过程,能持续不断地朝着市民所期望的发展目标,逐步迈进。

 

城市规划

  城市规划确定城市发展的框架,划分工业区和住宅区,并制定供水、供暖、供电以及交通流量等规划。城市规划是一项社会协议,通过由城市居民与企业实施的地方项目,推动城市的合理发展。
如果没有城市规划,城市就有陷入混乱的危险-缺乏凝聚力,对于交通和基础设施的投资,将缺乏内在的一致性。城市规划是一种行政手段,经过对在一般性决策中需要反映的各方利益进行通盘考虑后,为建设和发展目标设定界线。

  各个城市在地理位置、人口、历史、商业与能力结构等方面的先天环境和条件,都不尽相同。因此,它们需要制定不同的规划,尽管这些规划在外行人的眼中可能大同小异,但是它们实际上反映了差异极大的现实情况,因此规划出来的内容,也可能存在着很大的不同。

  城市规划有全国、地区和本地规划之分(同样,SOA 也可能在不同的级别来规划和实施),例如:

  • 国家级
  • 部门/服务社区级
  • 单个机构/机关级

  城市规划的制定要经过许多阶段,各阶段的持续时间可能是数周(简单的修缮等)也可能是数十年,它们需要各种级别的规划。

施工和验收

  规划完善的城市设施和建筑物,当施工项目一一发包给各个团队去落地的时候,必须要有一套方法来贯彻规划时所制定的标准规范和进度,除了确保施工 质量之外,还得兼顾项目间的协调性和一致性;此外,楼房搭建和各种公共基础设施(道路、公园、自来水管线…)的建设项目,关注点各有不同,在落实和验收时 必须兼顾所有重要的环节。

城市运维

  高效的城市建设管理,能真正将项目的决策、实施、运营全过程与规划目标的实现联系起来,通过建立评价指标体系和数据模型,将项目从规划、决策, 到运营中发生的行为和实施效果,进行系统、科学的量化评价;并能逐步建立对城市建设和城市基础设施的效果评价指标体系,注重效率分析,加强阶段性评估。围 绕项目决策提出的目标、功能、任务、组织,进行事后评价,重点是对项目决策预期效果和项目实施后实际效果进行对比考核,分析变化原因,及时总结和反馈经验 教训,以作为下期规划的重要参考输入。

组织与监管/治理

  成功的城市经营管理,往往借助于专责机构的建立。专责机构对领导小组负责,负责建设项目的研究策划、具体工作的组织实施,和政策的跟进落实,进而统筹、协调、检查、督办各项工作任务完成情况,通过建立监管制度和定期汇报制度,落实工作进度,同时代表政府行使监管职责。

  和城市建设相同,SOA的发展也要经历类似的规划、施工、运营阶段,而且需要一个专责的组织来执行一套治理框架。

SOA 三大阶段

  SOA 是一个旅程,其中有三个关键的过程和阶段,各自有不同的迭代,由不同的角色参与(如下图)。在策略和规划的过程中,由高管 (VP, CIO, CTO 等) 所组成的筹划指导委员会,以及负责向他们报告的业务策略师、业务架构师、规划师、分析师、和项目管理办公室 (PMO) 中的相关人员,定期(例如每半年)进行 SOA 策略规划。SOA并非万灵丹,因此规划应始于识别出企业中有哪些迫切的业务和IT问题,最适合借重SOA来解决。策略师、架构师首先就 SOA 的价值驱动力(即Value Drivers,例如:整合客户数据、业务流程优化、降低维护成本),进行分析,针对目前的业务能力和 IT 现状,根据 SOA 对各项业务和 IT 驱动力的正面影响力,来选定重点方向;然后再朝向未来的目标远景,分析差距,并排定实施 SOA 的优先级别,和若干个项目计划,及相关的评价体系,在举行下一次策略规划之前(例如半年后),分别实施相应各价值驱动力的解决方案。这些项目不宜过大,而 应该切割成较小、容易掌控的大小范围。每个项目遵循共同的服务工程框架规范和过程,各有各的迭代,然后逐步从每个解决方案的开发过程中,同时选定、提炼出 有共享价值的业务服务。在项目实施的过程中,参与的角色包括业务架构师、服务架构师、数据架构师、安全架构师、解决方案(应用)架构师、程序员、项目经 理,和 QA 测试人员等。


图说:SOA 的三大阶段

  有别于传统的软件开发过程 (SDLC),服务的生命周期,并不随着开发活动告一段落,解决方案和服务上线而落幕;而是进入另一个阶段,由 IT 中心运营人员,依据先前在每个服务工程项目之初所定义的服务合同中的各项指标,对各个业务服务,通过仪表盘等界面进行生产监控(包括业务活动监控, BAM),并且定期将生产数据以报表的形式反馈给 SOA 规划指导委员会的成员,进一步分析已执行的各个 SOA 项目的目标达成率,并计算其投资回报 (ROI) 等,作为下个规划周期中,修正、调整目标的重要参考。

  要强调的一点是,策略规划或项目实施的过程,都是周期性、迭代的过程,系统化地运用 IT,一步步地紧密配合业务目标。而生产运营则是持续性对服务的各个世代,不断追求优化的过程。

服务生命周期

  SOA 中各个服务所经历的生命周期,与传统用来开发应用系统的软件开发生命周期 (SDLC) 概念 ,有很大的区别。如附图所示,服务的生命周期,实际上更接近于产品生命周期管理 (PLM),一个服务可能历经多个世代,多次“轮回”,最后进入退休、除役状态。在多次迭代的过程中,可能因为业务需求的改变,而被调整、与其他服务进行 重组、功能合并,此外如服务契约的调整,以适应不同的安全和服务水平协议 (SLA) 要求等,都可能催生新版本的服务,而通过服务基础设施中 ESB 所提供的路由服务,我们可以有效地让多个不同版本的服务,同时运行,服务不同时期所建立的服务消费者,让消费者和供应者之间的耦合更为降低,而不需要强迫 所有消费者配合某个供应者,同时进行升级。


图说:服务生命周期和其中的主要阶段

项目实施与服务工程框架

  为什么SOA需要一套新的工程框架?首先,如上所述,服务生命周期的涵盖范围,远比传统以项目为单位的应用系统开发周期来得长。传统的软件交付 方法,如 waterfall 及 UP,当放到 SOA 的上下文中的时候,则显得有些不足,因为传统的软件交付,往往局限在个别项目的范畴,而交付的对象,则以应用为目标,而没有一套过程,能将功能拆分成适合 在企业级别重用的服务模块。在 SOA 项目的过程中,我们除了和以往一样,需要开发出某个应用/解决方案之外,在此同时,还需要识别、并搭建出若干个在未来能重用的服务模块,也可能利用既有系 统中现成的功能进行重构,把他们封装成服务。这些都需要对传统以个别项目为基础、面向应用的工程方法过程,加以补强,来配合 SOA 中服务生命周期的特性,和前面提到的,渐进式、迭代式的策略规划和项目实施。

  一套适合 SOA 的项目工程框架,应将高度从个别项目及应用的层级,上升至整个企业的视野,在多个项目之间掌握关键的共性;同等重要的是,它应该不需要推翻、颠覆企业现有 的开发过程,而是能在原有的基础标准之上,建立、增加服务交付所需增加的关键步骤,来进行 SOA 需求管理、服务选定、识别、服务契约(合同)的定义、接口设计,和项目发布计划等,并且能支持渐进式、一个接一个项目的执行方式,来逐步实现 SOA 参考架构中所制定的目标和远景。

公共服务和基础设施

  继续城市规划的比喻,城市规划必须包括提供公共服务的原则,使所有建筑、房产能顺利地连接到这些服务:

  • 供水、供电、供暖等
  • 排污和垃圾系统
  • 电话、有线电视、互联网等

  服务的建立是公共投资,而服务的使用则需要得到控制、管理和监督。在此同时,这些公共服务必须能以合理的价格,提供给房产的業主和居民。

  就像城市需要这些基础设施,SOA 的建设的过程当中,同时需要建立横跨各级服务和系统间的基础服务,包括遗留系统整合服务、数据整合服务、服务消息路由、服务流程编排、用户界面展现服务, 服务注册等。我们将这些 SOA 的基础服务集合统称为服务基础设施 (service infrastructure)。广义的服务基础设施,可定义为 SOA 架构下,支持所有业务服务运行的基础,因此除了上述的SOA 中间件外,举凡应用服务器、数据库、虚拟机、硬件、存储、网络等,皆可视为基础设施中的各个环节,即所谓的 SOI – Service-Oriented Infrastructure。随着虚拟化 (virtualization) 和网格计算技术的快速发展,在部署方式上也将更为敏捷、灵活,从而更进一步强化 SOA 快速响应业务变化的能力。

SOA治理

  除了规划参考架构和服务工程框架之外,企业在规划实施SOA时,还必须全盘考虑治理/监管 (governance) 的问题。
SOA的实施需要从文化上转变人们在一起工作的方式,在 IT 和业务职能部门之间建立更加密切的协调关系,将注意力更加集中在为整个企业提供价值,而不仅是竖井式地集中在单个职能部门。
尽管许多实施SOA的公司可能已经参考某些标准(如 ITIL、COBIT)在进行某种 IT 治理计划,但是SOA不管对服务生命周期、技术标准、团队组织角色,和技能等方面,都有许多新的要求,换句话说,SOA带来了很多传统 IT 治理范围外的新课题。从这个意义上讲,为了确保SOA的成功实施,应该将SOA治理,当作一个专门的学科来对待。
SOA治理框架的建立,能够帮助机构深入、通盘地了解自身的组织结构、运营流程、工具、标准,和指导原则。


图说:IT 治理、SOA 治理,和企业架构 (EA) 各自的涵盖范畴

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16186206/viewspace-586447/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-09-26

  • 博文量
    20
  • 访问量
    51652