SOA(面向服务架构)正在成为软件厂商和CIO们共同的热点话题。甚至连一向冷静的咨询机构,也深信SOA即将引发一场IT服务架构的革命。Gartner预测,SOA即将成为应用主流,到2007年,会有超过50%的企业采用SOA体系;到2010年该比例将会达到80%。IDC也同样认为,到2007年,SOA的软件、服务与硬件市场将达到210亿美元。
但这些乐观的预测遭到来自用户的广泛质疑,尤其是在中国。尽管众多企业级IT服务提供商在各种场合不遗余力地宣讲SOA,但由于到目前为止似乎鲜有成功案例,不少用户已经对国际厂商大玩SOA概念的做法心存疑虑。
问题出在哪里?
影响SOA进程的因素
许多机构仅凭它们在使用诸如SOAP(简单对象访问协议)之类的Web服务技术,就认为自己已经采用SOA了,这对用户是一个误导。
就技术而言,已经有很多厂商开发出具备SOA形态的产品,如果一个用户要想从局部实现SOA,比如在企业内部采用SOAP协议实现功能的调用,买一个产品很快就可以实现。但作为一种实现业务和IT高度融合的IT架构方法,“SOA化”是一个长期的、战略性的过程。以SOA的关键功能——集成来说,一个企业在长期运营过程中,将不断面临来自这方面的挑战,集成问题正成为那些CIO和IT经理们心照不宣的秘密。
从用户角度来看,有这样3个主要因素影响了SOA的进程。首先,企业必须投入足够的精力和人员进行技术和业务流程的培训,才能确保所开发的服务是可重用的。任何技术,无论看上去多么有前途,都有被误用的可能。任何服务的开发,不能只顾及眼前利益,也要(或许是更重要的)考虑长期利益。换句话说,各个服务的单独存在并无太大价值,除非这些服务能与其他服务一起被使用,并能根据业务的变化,快速组合成各种新的应用。
其次是如何更好地处理现有应用与新架构的关系。某些原有的应用需要加以调整或者借用另外程序后才能融入SOA,应由业务分析师来定义业务流程,由系统架构师来将流程变为规约和规则,再由软件工程师来开发新的代码,而项目经理要跟踪整个过程,这是一项复杂的工作和过程。
第三是长、短期成本的管理。构建一个全面SOA的成本并不低,对现有系统进行再工程(Reengineering)的耗费是巨大的,并且回报期也比较长。
实施SOA的路线图
除很多技术问题之外,SOA的成功实施需要企业或组织做大量工作,是一个永续的过程,且每个企业的业务和IT系统都是不同的,是否存在SOA就绪的方法论和路线图?
从用户方面来看,“自上而下”和“自下而上”的方法均可以使用。第1种方法是自顶层向下,从业务逻辑开始;另1种方式就是从底层开始,直接去做代码的编写,然后再考虑如何在上层支持业务逻辑,最后再将其构建成为完善的SOA。总结起来,就是9个字,“思于博,始于细,成其大”。
例如,美国国际卡车和发动机公司希望更及时地从旧有系统中获取数据,这样他们能够及时地发现组装工厂存在的问题。公司IT部门副总经理阿特•戴塔需要评估SOA的标准和技术是否能够帮助解决目前这个难题。
尽管SOA目前还不能满足所有的需求,国际卡车公司还是利用SOA框架稳步推动了项目的进展。他们购买一部分基于标准的商业软件,剩下部分则自己编写代码。
但这并不如玩一些技术实验那么简单。国际卡车公司的“通用车辆跟踪系统”严格规定了最后交付期限,并且希望每年能节省300万美元的花费。这个额外的压力实际上推动了SOA实施。戴塔表示:“之所以作出这样的决定并不是从标准框架本身出发,而是取决于是否有这样的需求。”
因此,企业首先应根据业务需要,通盘考虑需要SOA架构,用中国的一个成语来说就叫“胸有成竹”。
很多成功案例中都是通过分步式的、基于标准的途径实现的。瑞士信贷集团是全球最早成功实施SOA的企业之一,他们就选择了渐进式演进的方法。该集团根据应用系统的发展情况,不断调整SOA的使用规模,从非常小的局部开始,最后再扩展到整个系统的应用,不断向大规模SOA演进,从而获得了很大的灵活性。如今,瑞士信贷的生产环境中有1500多个服务,日处理量达到500万笔。由于采用了SOA的技术架构,使系统的总开发和集成成本下降了73%,同时实现了70%的服务重用。渐进式实施的目的很明显,就是要降低客户实现SOA的成本。然而,具有讽刺意味的是,现在几乎所有的解决方案提供商都希望用户采购他们的应用服务器,然后在此之上去构建SOA体系,用户的成本就大大提高了——其实,只要采取一些必要的措施,用户就能继续使用原来的服务器。