BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

《SOA治理》作者访谈

| 作者 Boris Lublinsky 关注 0 他的粉丝 ,译者 马国耀 关注 1 他的粉丝 发布于 2009年6月6日. 估计阅读时间: 11 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

由Clive Gee,William A. Brown,Robert G. Laird,Tilak Mitra合著的图书《SOA治理:实现并保持业务和IT的机动性》不仅为读者带来了SOA治理相关话题的详尽描述,而且还提供了可以直接用来建立和实现文中提出的治理模型的工作包以及案例分析,向读者展现了如何将这些方法以及工作包应用到现实生活中。

InfoQ有幸采访了这本书的作者。

InfoQ:人们广泛地认为SOA的主要优势是重用,你们同意这种看法吗?

本书作者:我们应当同意重用是SOA的优势之一,但不一定是最主要的优势。以IT为中心的人可能会强调重用的优势,并单从重用的角度来创建SOA的业务案例。有助于重用的服务一般是IT通用的服务,例如编辑服务,日志服务,安全服务等等。毫无疑问,重用很有价值,我们也无意贬低重用的地位。

事实上,重用的概念从面向对象(OO)诞生的那天起就已经被人们很好的理解并应用。在OO中,重用的粒度体现在类的级别上。在SOA中,一流结构是服务。服务是在比对象和组件更高层(向业务对齐的方法)的抽象之上的定义。站在提升业务和IT机动性的高度去定义服务(业务服务和IT服务)的能力是每一位 SOA架构师所必备的基本素质。

通过组装一个或多个IT服务来定义业务服务的能力提升了重用的抽象层次,这是SOA的主要优势之一。这个优势使得业务以业务服务的方式来定义企业操作,而IT定义一组可以用来实现业务服务的IT服务。业务服务和IT服务之间的可追溯性通过在软件栈的多个层次提高重用,为企业带来了他们极需的IT 和业务对齐。

然而,SOA更重要的优势是业务机动性。这需要企业在IT和业务之间拥有真正的合作关系,并且已经完成业务目标和业务流程的分析、业务服务的分解以及支撑业务机动性的架构元件。这件事并不容易做,而且缺乏经验丰富的执行者。

InfoQ:您推荐哪些工具来支撑书中提到的治理流程?

本书作者:这本书的一个重要主题是创建和管理用于计划、定义、设计、创建、测试和运营所有服务及自动业务流程的服务工厂。和其他生产流程一样,适当的自动化和工具对我们的服务工厂也很有帮助。处在服务周期的不同阶段,实现SOA治理所需的工具有所不同:

  • 实现治理的最重要的能力是有效的双向沟通。任何可以实现这个目标的工具,比如内部网、“自备午餐”会议、协作性消息工具、电子邮件或面对面会议都可以为实现治理提供有效帮助。
  • 拥有标准的、企业范围的业务实体和消息模型对于开发适合企业的服务来说至关重要。一款为这些消息模型提供版本管理和发布功能的工具是企业的实物资产。在多个物理表示对应于同一逻辑业务实体的场合,详细描述这些离散表示之间映射关系的数据字典也相当关键。
  • 我们经常见到的重用的障碍之一,是把业务需求仅记录在个别IT项目的文档中,这种方式导致新项目很难甚至不可能找到它们(业务需求)。使用通用数据库或存储空间来为业务需求、业务规则、术语和参照标准等提供版本管理和发布的功能,并依据业务实体和(或)业务流程建立索引,可以为重用提供很大的支持,还能减少不必要的重复劳动并降低运维系统的复杂度。
  • 有必要为所有的技术需求文提供管理、发布和升级等功能,这些需求包括架构原则、架构决策、策略和标准、最佳实践、推荐设计模式、清单以及清单指导等。 这可以使用定制工具实现,或直接从管理良好的企业内网获得。
  • 我们见过一些SOA的实现使用模型驱动的设计方法,在这种方法中,大部分的分析,设计甚至测试都是通过可视化工具进行的,并且大部实际代码都是自动生成而非手写的。因为模型比源代码更容易被理解,它可以帮助读者确保设计出精准描述业务和技术的需求并且代码准确地反映设计。目前IBM等提供商提供了很好的商业服务开发工具(SDK),这些工具拥有上述建模和代码生成的功能。
  • 在大企业中,提供管理合规检查结果的工具可以最大限度地降低成本。这些工具有的就像使用通用的个人工作汇报工具一样简单,有的是市场上已有的着眼于策略合规检查的自动化工具。
  • 对于已创建很多服务(50个或者更多)或者开始将服务提供给第三方使用的企业来说,服务目录或服务注册表就变得更加关键。理想情况下,服务注册应该根据目标用户分成两个独立的部分:
    • 对于潜在服务消费者(例如内部部门、合作伙伴或客户),目录或注册库应该包含以下信息:可以公开使用的服务详细信息(包括其版本细节);如何获得这些服务的使用权;如何从技术角度去访问这些服务(如,通过服务描述语言WSDL定义服务接口);治理服务使用的SLA条款等。除此之外,还应该包含对计划中的新服务以及服务版本的详细信息,以获得关于服务的内容和价值的反馈。该目录或注册库不应该包含任何关于服务实现的细节;SOA的一个关键特征是任何服务的实现可以在服务“契约”(即接口,如WSDL)不变的情况下随时被修改。一般来说,每个服务的描述信息应该只能让那些潜在的服务使用者看到;还有一些服务只为内部使用者所见。
    • 对于服务开发人员,应当有更广泛的内容,包括服务内部信息,如非功能性需求,详细设计等。这部分注册库还应包含不能被直接发布成服务的底层组件,例如用来组装复合服务的独立代码段。
  • 存放源代码或配置信息等资产的一个或一组注册库。在从测试到产品阶段迁移新服务或新系统时,或者软件维护时,能够重建特定物理配置的能力显得非常重要。一个广为人知的案例,一个很大的美国公司因为无法用一个星期左右的时间将一个关键的IT系统重置到先前状态,继而无法成功升级系统,从而被它的竞争者所取代,导致他们的股票崩盘。
  • 要实现任何实际层面的服务运营治理,工具和基础设施非常关键。这些工具和基础设施应能监控服务和自动流程执行的所有信息,包括它们的使用频率、版本、服务响应时间以及错误情况和系统能力监控等。
  • 随着企业级SOA越来越成熟,相关数据会越来越多,如关于服务开发和运行效率的数据,关于SOA开发和治理工作的重要性,业务影响以及SOA对整个企业的价值的数据等。同时,要生成很多报表,按月、按季度、按年或者随需生成。好的工具可以很大程度上提高创建这类表格的效率;我们看到很多这样的解决方案,其中有简单的业务数据分析/报表生成工具,也有非常复杂的实时监控服务以及流程运行状态的“面板”等。

InfoQ:书中谈及较少的一个话题是如何为实现SOA解决方案选择合适的服务。如何解决这个问题,你们有何建议,前提条件是什么?

本书作者:从我们的经验来看,合适的服务可以通过自顶向下的分析方法来确定,也可以有机地根据明显需求而建立,还可以通过将遗留系统的能力转化成服务的方式来实现。这些都是有效的方法。自顶向下的方法需要相应的企业架构能力(因此我可以假定拥有一个EA组是先决条件),合作的能力以及分析业务流程和将流程分解成业务服务的能力。这些服务应有助于实现业务机动性。有机地增长服务更容易实现,因为很多方面都可以提供服务的需求。服务治理应该保证所有正在建设服务在服务开发控制点遵循架构标准、策略以及向导等。

InfoQ:你们在书中建议把业务资助纳入SOA工厂的一部分,那你们建议如何引入它?

本书作者:我曾经在Teco公司工作过,我会每月安排一次与每位业务副总裁1小时的头脑风暴讨论会。会上,我从不讨论SOA,从不使用技术术语,也从不说“架构” 这个词。相反,我们在白板上讨论业务。我们讨论如何让业务服务有价值,帮助他们压缩成本及推动产品更快进入市场。他们对那些可以推动业务的“他们的”服务和项目相当有激情。结果,尽管他们并不知道SOA,他们却变成了SOA的业务资助方。和客户谈论业务问题和业务解决方案吧,很快就有项目的业务资助方了。

InfoQ:似乎在你们看来,成功实现SOA的唯一途径是通过ESB实现服务基础设施的标准化。那么你们是否认为ESB是实现SOA的前提呢?你们是否认为一个企业应该有一个(联邦的)ESB来实现SOA呢?

本书作者:尽管企业服务总线(ESB)不是成功实现SOA的绝对前提,但是它的确可以为服务端点路由、数据仲裁等提供基础基设,对于服务数量很大或者服务实现十分复杂的情况更为有用。对于拥有这类情况的公司,我们肯定建议使用一款商业ESB而不是关起门来自己开发ESB的功能。

严格地从管理的角度来说,ESB为监控服务的内部指标简单地提供了统一接触点,服务的内部指标包括数据仲裁的数量和范围和服务执行过程中各分支节点的使用频率等。虽然这些不完全是实现整体SOA成功的关键因素,这些信息对于获得效率最大化非常有用。至于是否要为SOA的实现建立联邦ESB的问题,我们觉得由公司的具体情况而定。例如,我们的一个客户有好几个IT开发团队,分布在三大洲。这种情况下,实现一个联邦ESB是很困难的,此外,大部分服务执行是在一个地理范围之内的。

查看英文原文:Interview with the Book Authors: Brown, Laird, Gee, Mitra: SOA Governance


译者简介:

马国耀,2007年毕业于北京大学信息技术学院,硕士学位。他感兴趣的技术领域是SOA,ESB,J2EE,Java 编程,开源项目等。业余时间爱好五子棋,围棋,获中国棋院授予的五子棋初段段位。他热情乐观,愿与天下各路豪杰结为朋友,可以通过maguoyao (at) gmail.com联系到他。

感谢胡键对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT