来自CIO的质疑
时下,SOA正成为国际大厂商和CIO们共同的热点话题。与此同时,各分析机构乐观预测,SOA将大行其道。但放眼全球,由于缺少更多的成功案例,SOA正逐渐招致CIO怀疑的目光。在未来,到底SOA将扮演一个怎样的角色?企业千差万别,IT系统又是各具特色,他们该如何寻找SOA路线图?实现“SOA就绪”?怎样让SOA发挥更大的效益?是什么使得CIO们在SOA面前变得永无宁日......
时下,SOA正成为国际大厂商和CIO们共同的热点话题。与此同时,各分析机构乐观预测,SOA将大行其道。但放眼全球,由于缺少更多的成功案例,SOA正逐渐招致CIO怀疑的目光。
在未来,到底SOA将扮演一个怎样的角色?企业千差万别,IT系统又是各具特色,他们该如何寻找SOA路线图?实现“SOA就绪”?怎样让SOA发挥更大的效益?是什么使得CIO们在SOA面前变得永无宁日?
我们走近大师——SOA的鼻祖人物Eric Newcomer,听听他的声音。
2006年,在日本举行的年会上,Gartner公司乐观预测,SOA即将成为应用主流,到2007年,会有超过50%的企业采用SOA体系,到2010年该比例将会达到80%。但这一乐观预测遭到来自用户的广泛质疑,尤其是在中国,用户对于国际厂商的大玩SOA概念心存疑虑。这到底是为什么?
记者:关于SOA的讨论已经很多,众多厂商也在各种场合不遗余力地宣讲SOA,但到目前为止似乎鲜有成功案例,并没有大面积推广起来。甚至有人告诫用户:“如果一个厂商拼命地游说‘我们已经实施了大量的SOA成功案例’,那你就该小心这个供应商的用心了。”持这一观点的不乏SOA标准组织里的顶级专家,在您看来,其中的原因是什么?
Eric:许多机构仅凭它们在使用诸如SOAP、WSDL和(或)UDDL等Web服务技术,就认为它们已经采用SOA了,这对用户是一个误导。
其实,SOA是一种设计方式,它指导着业务服务在其生命周期(从构思开始,直到停止使用)中创建和使用SOA的方方面面。SOA也是一种定义和提供IT基础设施(IT Infrastructure)的方式,它允许不同应用之间交互数据、参与业务流程(Business Processes),无论它们各自背后使用的是何种操系统或采用了何种编程语言。
从技术上而言,目前已经有很多厂商开发出具备SOA形态的产品,如果一个用户要想从局部实现SOA,比如在企业内部采用SOAP协议实现功能的调用,买一个产品很快就可以实现。但作为一种实现业务和IT高度融合的IT架构方法,“SOA化”是一种很长的过程,一个企业用户肯定需要更长的时间。以IONA的客户为例,他们在SOA上的计划都是长期的、战略性的。以SOA的关键功能——集成来说,一个企业在长期运营过程中,将不断面来自这方面的挑战,集成问题正成为那些CIO和IT经理们心照不宣的秘密。
其实,在SOA的成功案例方面,由于国外计算机技术发展较早,IT技术在企业业务系统的应用更为普遍;同时对现有系统进行SOA改造,以实现更灵活的IT系统,更好地支撑业务发展的愿望也更加迫切。瑞士信贷集团是IONA的客户之一,也是全球最早成功实施SOA的客户之一。到目前为止,瑞士信贷集团已经取得了令人瞩目的收益。它的生产环境中有1500多个服务,日处理量达到500万笔。由于采用了SOA的技术架构,使系统的总开发和集成成本下降了73%,同时实现了70%的服务重用。SOA是大趋势,我相信这方面的成功案例会越来越多。
记者:那到底是什么在影响SOA的进程?
从用户角度来看,有很多因素会影响企业接受SOA,其中的主要因素包括:
首先,企业必须投入足够的精力和人员进行技术和业务流程的培训,才能确保所开发的服务是可重用的。任何技术,无论看上去多么有前途,都有被误用的可能。任何服务的开发,不能只顾及眼前利益,也要(或许是更重要的)考虑长期利益。换句话说,各个服务的单独存在并无太大价值,除非这些服务能与其他服务一起被使用,并能根据业务的变化,快速组合成各种新的应用。
其次是如何更好地处理现有应用与新架构的关系。某些原有的应用需要加以调整或者借用另外的程序后才能融入SOA,应由业务分析师来定义业务流程,由系统架构师来将流程变为规约和规则,再由软件工程师来开发新的代码,而项目经理要跟踪整个过程,这是一项复杂的工作和过程。
第三是长、短期成本的管理。构建一个全面SOA的成本并不低,对现有系统进行再工程(Reengineering)的耗费是巨大的,并且回报期也比较长。
SOA与技术无关
在SOA的拥趸中,不乏很多的中间件厂商,甚至包含着EAI(Enterprise Application Integration,企业应用集成)厂商,他们都打着集成的口号进军SOA。面对不同的编程语言、技术架构、技术标准和供应商,用户会问,SOA的实现是否与具体的技术有关?
记者:我们知道,IONA是包括W3C、OMG、OASISI在内的很多SOA标准组织的成员。目前,倡导SOA的供应商很多,每家都宣称推出了SOA的产品和架构,都提出要引导SOA潮流,这是不是会给您参与制定SOA的标准带来一些困难?
Eric:有些人可能会感到惊奇,但面向服务的架构(SOA)确实已经存在20多年了!因为SOA是基于一种设计理念及一系列设计原则的,而这些都是与技术无关——尽管SOA已经应用了这么多年,并遵守着一些公共原则。
在过去20多年里,可用于实现SOA的技术是多种多样的,它们包括:分布式对象──CORBA、J2EE、COM/DCOM;面向消息的中间件──WebSphere MQ、Tibco Rendezvous;事务处理监控器──CICS、IMS、Encinia、Tuxedo;B2B平台──ebXML、RosettaNet。
在这些技术中,有的适于构建SOA,有的则不然。一个技术,如果具有越多“与Web服务平台相当”的能力,它就越适于构建SOA。
对于任何用户而言,他们都希望能有一个统一的标准,以提高“技术的经济性”,这就是标准的价值所在,在SOA领域也是一样。一直以来,我都代表IONA公司在SOA相关标准化组织里做相应的工作。最近,我代表IONA参加了一些标准方面的基础项目研究,IONA对这些基础项目的研究产生了积极而显著的影响。SOA其中的一个标准就是用编程工具来实现这一个技术,从而变成一种独立于厂商、独立于产品的SOA工具。对用户来说,这样实现SOA就会更为简便:比如,包括CA、IBM、BEA在内其他公司也可以用,但是同时又保持独立。但在SOA发展的早期,很多实力雄厚的大公司都希望其中的SOA采用自己的标准,可是这样其他厂商就没有办法用这个工具。我代表标准组织成员之一IONA投了反对票,因为我们坚信,只有中立的技术,才能使最终用户和IT厂家受益;同时,技术中立也是IONA自始至终坚守的信念。
记者:SOA一个重要的功能是集成,以实现企业的信息系统的整合。一直以来,业界都存在着两个相互对立的观点:有人认为SOA将代替传统的EAI,而有人认为SOA概念的成熟将进一步推动EAI厂商的发展,您如何看待这两种对立的观点?
Eric:在我看来,SOA是革命性的技术进步,从某种意义上讲,SOA可以被看作是EAI的一种延续,但不是简单的延续。EAI与SOA同样解决企业集成的问题,但SOA解决的问题远比EAI解决的IT问题多得多、复杂得多,因此产生的影响要深远得多。
在企业IT系统中,有一部分集成问题是可以通过EAI来解决的。但是,EAI解决集成的问题往往是在事后,企业碰到了集成问题,才去想办法通过EAI来解决。与之相反的是,SOA架构解决企业集成的问题是事先的,也就是说,企业在一开始搭建SOA这一IT架构的时候,就已经考虑了集成的问题。这是SOA区别于EAI的一个重大不同。
另外,EAI解决集成问题时,可能会带来更多其他集成问题,最终会带来一个更加复杂的IT架构。SOA解决这些集成问题时,是将现有的系统以统一的标准接口进行一次重新的梳理,不会再带来新的集成问题。它承认并尊重企业现有的IT架构,不会再引进不能兼容的新的IT架构。SOA会使得企业业务层面更加灵活,企业可以根据现有的企业IT系统的各种服务,组建新的流程,这就是SOA最大的特点之一。
记者:那IONA和这些中间件公司又有什么不同呢?
Eric:其实,IONA的第一代CORBA产品Orbix就是最早的实现分布式SOA架构的基础架构解决方案,正是这种分布式SOA基础架构解决方案帮助IONA成为这一领域的领导者。在过去几年里,IONA帮助包括德国邮政、美国独立电信公司CLEC、美国证券、荷兰银行、渣打银行、蒙特利尔银行、富士通等在内的航空、金融、制造业、零售业和电信行业领域的多家世界500强企业成功实现了SOA。通过SOA/CORBA解决方案的应用,这些客户都得到非常高的投资回报。
IONA的第二代SOA产品就是Artix ESB基础架构解决方案。如何灵活、平滑地构建SOA系统是目前一个具有代表性的IT系统的技术难题。通常用户使用的IT系统由多家供应商提供,编程语言一般要采用java、.NET、C++等,服务器端会采用java、.NET、C++、CORBA等,中间件还会包括BEA的Tuxedo、IBM的WebSphere,甚至还要在大型机上安装包括SAP、Oracle在内的套装软件解决方案。这样复杂的IT系统分布在企业IT系统的不同角落。对用户来说,他们迫切需要用最好的方法,把这些不同的应用、技术、端点进行集成,从而为企业的业务提供最高效的支持。轻量级、分布式SOA架构方式是IONA区别于其他传统中间件公司的最显著特征,IONA公司SOA的这种理念也获得了Gartner的高度认同。
同时,技术中立和对其他中间件厂商技术良好的支持也是IONA解决方案的显著特点。一套成功的企业级SOA解决方案要求各个不同的应用程序都能够以安全、可靠、易操作的方式相互集成,而不论他们的底层操作平台存在多大的不同。IONA的Artix恰恰可以做到这一点。
SOA方法论与路线图
在很多技术问题之外,SOA的成功实施需要一个企业或组织做大量的工作,也就是说,SOA的实施是一个永续的过程。应该说,每个企业的业务和IT系统都是不同的,是否存在SOA就绪的方法论和路线图?
记者:面对SOA,很多用户却不知道如何下手,应该采用什么样的方法?IONA是否从历史案例中总结出经验?
Eric:从用户方面来看,“自上而下”和“自下而上”的方法均可以使用。第一种方法是自顶层向下,从业务逻辑开始;另外一种方式就是从底层开始,直接去做代码的编写,然后再考虑如何在上层支持业务逻辑,最后再将其构建成为完善的SOA。总结起来,就是9个字,“思于博,始于细,成其大”,这也是IOAN的企业理念。首先要根据企业的业务需要,通盘考虑需要的SOA架构,用中国的一个成语,叫“胸有成竹”;其次是从一个局部做起,以渐进的方式向SOA架构演进,避免大而全的SOA实施,这样可以最大程度地规避项目风险,降低初期投入;再次就是在局部成功实施SOA的基础上,构建完整的SOA架构系统。
作为全球分步式SOA的领导者,在IONA公司的SOA成功案例中,大多通过分布式的、基于标准的途径实现。其中最主要的特点就是用户可以渐进式地采用SOA。用户根据应用系统的发展情况确定要使用规模,从非常小的局部开始,最后再扩展到整个系统的应用中,不断向大规模SOA演进,获得很大的灵活性。这样做的目的很明显,就是要降低客户初期的以及大规模实现SOA时的成本,IONA不需要企业用户再去购买服务器。具有讽刺意味的是,现在100%的SOA解决方案提供商都希望用户采购他们的应用服务器,然后在这些应用服务器之上去构建用户的SOA体系,用户的成本就大大提高了。
其次是使用国际标准,体现可兼容性,体现技术上的中立。可以说,用户业务是随时变化的。因此基于开放标准的解决方案对他们来说至关重要,这样可以广泛兼容现有系统,并为快速响应未来的业务变化打下坚实的基础。
记者:企业在实现SOA过程中,应如何发挥SOA最大功效?
Eric:应用程序供应商也逐渐采用SOA体系,如Oracle、SAP、i2等企业,这将会使SOA体系得到更为广泛的采用。需要指出的是,虽然SOA的一个核心思想是实现程序和服务的重复利用,重复利用带来的利益可在所有应用程序中实现,但并不是说,SOA体系能够在每个项目中都取得显著成果和效益。
一个企业要想最大化地发挥SOA的功效,需要在以下几个方面进行深入思考并做好准备,从而实现“SOA就绪”。
1.可能需要建立新的成本/利益模型。
2.利用新的团队建立业务框架模型。这个团队对业务进行整体规划和设计(包括BPR在内),打破单个业务使用独立IT系统的模式,特别是那些可以重复使用的,并判断哪些流程适合这一模式。
3.要求应用开发商不断提高技能并提供服务。要求应用程序开发商使用多种新的技术开发重用软件、不断提高服务能力正成为用户一项重要的技能。
4.建立区别于传统的技术支持中心。
我们可以把SOA看作是工厂里的产品装配线。它是一笔对将来业务运营的投入,所以在这笔投入发挥效益之前,需要做相关的计划、设计和开发工作。正如生产线上制造的第一辆车的花费要比第一千辆高出很多一样,用SOA部署的第一个服务所需的花费要比部署第一百个多出很多。SOA的主要优势是逐渐体现出来的,不能一蹴而就。
记者:这么说来,SOA对一个企业来说将是一个长期的过程,是什么原因促成SOA过程的长期化呢?
Eric:有几个常见的导致业务集成的驱动力使得企业需要在SOA上长期不断投入:
兼并与收购:兼并和收购活动常常使得一个企业的CIO解决“有多个IT系统处理相似事务”的问题以体现兼并和收购的商业价值。
内部重组:尽管企业内部重组所产生的影响不如兼并和收购那样巨大,但也可以造成许多相似的问题,而且出现的频率更高。
应用和系统整合:如果相似的事务可以被多个IT系统处理,这就需要通过合并或者替换,以节省资金,减少人数,让业务操作运营更加流畅。比如一家电信公司有多个不同的计费系统,那合并和简化将是明智之举。
不一致、重复和零散的数据的共享:有时候,很多重要的业务数据分布在多个不同系统上。用户必须对它们加以合并和过滤才能有助于决策。比如,销售部门的领导希望员工和客户看到的都是同一个视图界面。
新业务战略:一个持续创新的公司经常要根据变化的业务环境贯彻新的业务战略,这就要求原来的各个IT系统能够以崭新的方式一同工作。最终,同行业的其他公司也必须做出同样或类似的改变才能保持竞争力,比如电信行业中的运营商和SP的关系、实时精准制造等。
遵守政府条例:为了遵守新的政府条例,企业可能需要重新定义业务流程以保护消费者或符合新的信息披露要求,比如本地电话携号转网和企业遵守萨班斯法案等。
保持业务流程流畅:在过去的业务流程中,数据常常需要通过手工录入到不同的系统当中;如今,很多系统都被新的支持“无需人工干预就可以进行多系统间事务处理”的系统所代替。比如,一家公司以前通过传真接收定单,然后手工将定单信息录入到定单管理系统和制造控制系统中;而现在,该公司功过网站接收定单,定单信息被自动录入到定单管理系统和制造控制系统当中。
SOA治理(SOA Governance)的目的是让软件治理与业务治理相互配合,包括协调各领域之间的软件开发、软件获取及软件、重用。以取得最大程度的机动性和规模经济性与范围经济性。SOA治理认为服务是整个生命周期都需要管理的企业资产。
网友评论