SOA的实施之“道”—中间相遇

原创 2007年09月18日 15:46:00

SOA推进策略的问题,是我们最近被问到最多的问题。有个管理专家用“道”,“法”,”术”, 来比喻SOA几个方面,很有意思。“道”的层次可以认为是业务敏捷,IT灵活性等管理目标,”法”是指,SOA的管理与控制规则,“术”,是指各种具体的标准与技术规范。

看到今年以来,媒体上无数技术厂商,应用软件公司,甚至硬件公司都把SOA当作时髦的标签做市场宣传,我不得不自嘲的认为,自己也是学屠龙,卖猪肉。一种技术潮流刚刚兴起的时候,发生炒作和形式大于内容的事,在IT领域已经成为一种传统。从兴趣进入真正的项目推进,才是真正有价值的事。然而认真思考了SOA架构理念的人,很快就会发现,想要把它认真落地,一大堆问题就浮现在脑子中:

·如果企业的业务战略都在不断变化,传统的IT规划是否还有应有的价值?

·如何一面开发应用系统,一面建立企业级的服务管控规则?

·现有的生产系统都十分陈旧,如何将他们纳入新的SOA架构?

·如何在开发新的跨业务应用融入SOA的实施方法?

·SOA好像是比EAI更好的一种集成“术”,到底有什么不同?

 下面我试着用中间相遇的策略作为一种可行的办法,来回答一些问题。有些企业在推进SOA实施时采取的是“自顶向下”的方式,即从企业的战略开始,逐步向下展开;另一些企业则采用了另一种途径,就是“自底向上”的方式。这里所说的“自底向上”,并不是说由底层的技术推动业务,而是说,从小的项目开始做起,积累经验,然后做大项目,最后上升到战略层面。

然而,无论是“自顶向下”还是“自底向上”,这两种SOA实施策略都各有利弊,很难达到理想的效果。

“自顶向下”是企业实施SOA战略性的策略,其核心思想就是从企业层面做SOA实施的整体规划。它的好处是从企业整体进行考虑,面向业务,企业可以根据其业务的发展情况以及现有的IT情况做一个SOA实施的整体规划。这样可以推动整个企业的标准化,所有的服务模块都基于相同的标准,方便今后的重用。但是它的风险也不小:一方面是范畴涵盖大,周期长,初期的投资大;另一方面是它要求整个企业要有比较高的纪律和技能,有一套完整的组织架构和管理流程。

 “自底向上”的实施办法则是战术性的,它强调从小处着手,从一个部门级应用开始实施SOA。这种方法的好处是见效快,风险小,初期的投资也不大。不过这种实施方式的弹性相对比较差,特别是当企业需要在更大层面实施SOA时,可能会产生一些衔接问题。

结合多年来帮助客户成功实施SOA的经验,一种更加切合实际的SOA实施策略,这就是“中间相遇”(meet in the middle)的实施策略。在SOA的实施中结合“自顶向下”和“自底向上”的方法,寻求两者之间的结合点,才能最有效和成功地实施SOA。因为对绝大多数企业或组织机构来说,在业务系统实施的初期,存在很多不确定性,包括业务需求和项目所选择的开发技术、平台等都存在不确定性。遵循“中间相遇”的原则,业务人员和开发者都各自循序渐进地做事,在过程中不断沟通,这样就能够使得业务的改变得到最快的响应,并且不会影响开发效率,最终两者能够在某一点相遇,从而搭建起符合需求的系统。通俗地说,“中间相遇”的原则就是我们常说的“大处着眼,小处着手”,在做一个一个项目时,并不仅仅把眼光局限在正在进行的项目,同时也兼顾企业IT系统和业务发展的整体规划。

那么,采用何种软件工程学作为指导推进中间相遇的实施策略呢?

许多传统软件工程学的都是在SOA之前发明的,这里面的大多数方法没办法通过简单的拿来主义,直接用于指导SOA的软件开发。项目群的整体规划,可以采用PMO的办法。但针对SOA应用开发的推进,我们需要一种方式,既能针对SOA实施的特点,又能兼顾特定企业的管理模式和软件开发习惯。

很多大型企业应用系统是一个规模宏大、业务复杂的系统,现在所有从事的架构师都在考虑基于SOA服务的软件工程学。基于“中间相遇”的实施策略,在自上而下地规划了IT战略和参考架构后,企业需要找到一个有代表的应用项目。引入SOA服务工程学来开始此具体项目的实施,通过这个SOA服务工程学的推进方法,企业可以依靠如下三个方向建立自己独有的SOA服务工程学框架:

建立符合企业管理模式的SOA管理架构:每个企业的组织架构,管理策略都不相同,通过SOA服务工程学的推进可以建立针对特定组织的管理原则,纪律,运营和管控

建立符合企业习惯的服务工程:SOA 服务工程学可以看作是对企业原有软件工程的一个扩充,它在利用SOA服务的重用,灵活性,业务敏捷,和投资回报等方面增加了一些针对企业级项目群管理服务工程,比如针对SOA开发的,SOA需求管理,服务识别与发现,版本规划,服务定义,设计,实施,部署,管控等等。通过前一到两个项目总结的这些方法和原则可以作为其他项目开发的基准。

SOA基础架构的搭建,选择前一到两个有代表性,覆盖技术架构比较广的应用,同时也进行了针对特定应用的架构验证,在此过程中,一些类似ESB,BPM ,数据服务,服务库等SOA基础设施也同时被建立起来。

以下我们举一个例子:(在这里,项目1、项目2和项目3也可以被看做3个典型业务场景):

 

在开始具体项目实施之前,企业首先需要先为企业确定一个参考架构(Reference Architecture), 相当于我们常说的顶层设计,后面实施的自底而上的项目都要瞄准这个参考架构。下面我们来分析项目1和项目2。虽然这两个项目都是从底层编码开始实施,但是项目参与者已经有意识地在用SOA的思想和参考架构去做,并且在遵循按服务契约设计的实施方式。在这里,项目1和项目2的选择是一个很重要的问题。由于是处于尝试阶段,前两个项目通常会选择比较紧迫、能体现一些用户需求、并且能够体现快速实现ROI的方式。项目1和项目2尽管都是从编码做起,但不完全是自底向上地做,而是遵循一种“中间相遇”的思想,这也是通过实践总结出来的比较安全的推进方法。从项目3开始,参与者就开始有意识地构建那些重要的服务层以及相关的管理控制策略,以形成企业资产。前两个项目中的服务,在后期的项目中被重用的几率可能有一些折扣,比如服务的重用率可能达到70-80%,而不是理想的100%。但是在实施的过程中,可能已经体现出了SOA的优势,如此一来,很容易博得企业决策层的认同,进而支持项目3的推进。

项目3是非常关键的环节,在实施过程中,需要形成一些涉及到战略层面的管理知识和规则。从项目3开始,就要抽象出一个服务层来:即需要在业务层和技术层之间增加一层服务层,以弥补业务与技术之间的鸿沟。也正是由于服务层的形成,能够保证在技术的跳变时不会直接影响到业务需求。

开始做最初的SOA项目时,我们会先解决比较急迫的业务问题,然后根据这些业务问题用SOA方法,如分层的结构、ESB结构,实施一两个项目。此时要尽量具体着眼于项目本身对具体业务的价值。实施完这两个项目以后,就能给整个组织带来信心,尤其是管理高层。随后,就考虑引入一个管理SOA的规则,把前两个项目总结的经验和包装的服务标准化,尽量在后面的建设中应用,即引入SOA管控。所以,这是一个循序渐进的过程。但我们在做第三个项目的时候就不再自底向上,而是开始从SOA实施小组管控中心的规则和最初的两个项目达到磨合,而产生了服务的中间层,包括服务本身具体的架构。

在整个SOA推进的过程中,所有的东西都是在不断迭代的,参考架构,服务定义,实现的技术都是可以不断迭代的,正是因为SOA的松藕合设计,才使得多重迭代成为可能。

回到文章开头SOA的“道”, “法”,“术”逻辑,以面向业务的企业架构“道”着眼,以具体实施项目的“术”入手,在SOA服务工程中的服务“法”相遇,就是中间相遇策略的基本理念。

SOA的实施之“道”—中间相遇

SOA推进策略的问题,是我们最近被问到最多的问题。有个管理专家用“道”,“法”,”术”, 来比喻SOA几个方面,很有意思。“道”的层次可以认为是业务敏捷,IT灵活性等管理目标,”法”是指,SOA的...
  • chenguoda
  • chenguoda
  • 2008年03月11日 13:37
  • 240

SOA的实施之“道”—中间相遇

       SOA推进策略的问题,是我们最近被问到最多的问题。有个管理专家用“道”,“法”,”术”, 来比喻SOA几个方面,很有意思。“道”的层次可以认为是业务敏捷,IT灵活性等管理目标,”法”是指...
  • ystring
  • ystring
  • 2007年11月18日 12:42
  • 133

中途相遇法,哈希技术(和为0的4个值,uva 1152)

题目具有对称性,则可以同时从两边出发来找答案,因为时间复杂度由最大的决定,因此让两边时间复杂度尽量一样可以降低总体的时间复杂度,此题中n^2logn+n^2logn 试了下map,9秒超时,...
  • xl2015190026
  • xl2015190026
  • 2016年08月23日 15:55
  • 359

SOA与传统软件架构、开发、部署和实施的区别

“在当前的2000家跨国公司中,很多企业的体系架构已经妨碍了业务的改变能力。比如,最近企业行为管理机构(Business Performance Management Institute)的一项调...
  • lvjin110
  • lvjin110
  • 2013年08月17日 03:34
  • 2374

了解SOA风险 治理很重要

SOA技术在IT界掀起巨大的狂潮,然而它不同于以前的技术变革:模块化编程、面向对象、Web技术等,不论多难理解,总是能很快被大家接受,SOA之所 以让很多人觉得难以理解,是因为它不再单纯地从IT人的角...
  • hu_zhenghui
  • hu_zhenghui
  • 2008年06月13日 17:50
  • 468

实施 SOA 的简单步骤

  级别: 初级金 戈, IBM软件部企业集成解决方案架构师, IBM 中国软件开发实验室 SOA设计中心姚 辉 (yaohui@cn.ibm.com), IBM 中国SOA 设计中心高级工程师, I...
  • dannyoracle
  • dannyoracle
  • 2010年10月10日 20:23
  • 603

uva 1326 - Jurassic Remains(暴力+位运算+中间相遇法)

题目链接:uva 1326 - Jurassic Remains 题目大意:给出n个字符串,每个字符串由大写字母组成(每个字母最多出现一次),问说找出尽量多的字符串,使得这些字符串中任意字母出现的...
  • u011328934
  • u011328934
  • 2014年02月09日 18:01
  • 1086

【高效算法设计-中途相遇法】4 Values whose Sum is 0 哈希表

4 Values whose Sum is 0 Time Limit: 15000MS   Memory Limit: 228000K Total Submission...
  • lth404391139
  • lth404391139
  • 2015年03月07日 18:17
  • 422

禅道,然之和蝉知入驻VM Depot

近日, 易软天创与微软开放技术合作,在虚拟镜像中国站点 vmdepot.msopentech.cn 上成功部署易软天创的集成管理环境,为希望快速基于微软Azure云平台体验易软天创开源管理方案的朋...
  • leonchenzhy
  • leonchenzhy
  • 2015年04月23日 08:00
  • 1110

道者,人之所韬,使万物不知其所由

注曰:“道之衣被万物,广矣,大矣。一动息,一语默,一出处,一饮食。大而八荒之表,小二芒芥之内,何适而非道也?仁不足以名,故仁者见之谓之仁;智不足以尽,故智者见之谓之智;百姓不足以见,故日用而不知也。”...
  • llqqxf
  • llqqxf
  • 2016年12月03日 11:15
  • 935
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SOA的实施之“道”—中间相遇
举报原因:
原因补充:

(最多只允许输入30个字)