适者生存造就了自然物种的优胜劣汰。这一理论在今天企业生态环境的演进过程中,再度显示出了正确性。而“灵活性”便成为当今企业生存和发展的关键字:唯有能够快速应变、甚至预见变化的企业才能持续繁荣。
因此,企业迫切地期望能够找到一种IT架构的实现方法,使IT能够实时支持业务的变化。SOA(Service Oriented Architecture,面向服务架构)的出现,将会把这个梦想变为现实。
其中,服务提供者:发布自己的服务,并且对使用自身服务的请求进行响应;
服务代理:注册已经发布的服务提供者,对其进行分类,并提供搜索服务;
服务请求者:利用服务代理查找所需的服务,然后使用该服务。
在SOA体系结构中的组件必须具有上述一种或多种角色,而在这些角色之间使用了以下操作:
发布:使服务提供者可以向服务代理注册自己的功能及访问接口;
查找:使服务请求者可以通过服务代理查找特定种类的服务;
绑定:使服务请求者能够真正使用服务提供者。
SOA结构中的三种角色
传统的企业架构是由技术和业务两个层次构成,而技术层与业务层之间并不能直接通信,这就使得IT无法实时满足业务需求,而必然有一定的滞后。SOA通过在两层之间定义了一个新的层次——服务层,解决了这一问题。
SOA结构如上图所示,它将分布在网络中的软件资源看作是各种服务,而这些服务是从业务需求开始的,而非始于技术。因此,SOA摆脱了面向技术的解决方案,而朝着商业服务的方向发展。与其它企业架构方法相比,SOA让IT变得更有弹性,能够更快地响应业务需求,从而实现更好的业务灵活性,使得企业能够对变化快速和有效地做出响应,并且利用变化来获得竞争优势。而这种灵活性的架构,意味着它不仅能够确保当前业务的灵活性,而且可以满足企业未来的业务需求。
革命性的企业架构设计模式
在SOA中,不同的应用也能够交换数据,而并不需要考虑每个应用是用什么编程语言开发的或在什么操作系统下运行。在这种模式下,一个应用软件或一个应用软件的一部分是一种服务,其它应用和客户可以在无需编写大量代码的情况下使用这些服务。
就像乐高积木一样,在SOA中一个个服务组件都变成了标准的“建材”,可按照需要创造出各式各样的组合。然而,并非所有的组件都必须重新铸模成乐高积木。我们可以用一层乐高般的凹凸圆柱体表皮包在过去使用的“砖块”和“瓦片”外,让它们能和其它的乐高连接,而其它的乐高很可能也是用这种方式提供出来的,用户无须担心它骨子里到底是什么,重点在于服务组件的接口。
从理论上来看,SOA的确是一种革命性的企业架构方式。那么具体到实际应用效果,它是否真能兑现上述种种妙处呢?早在2001年6月,BEA就已在其CIO Rhonda Hocker的带领下,开始将自己的全球技术支持站点的IT基础架构转变为SOA。
如果做法得当,SOA将为IT赋予足够的灵活性,从而使业务能够做到随机应变,而不是像有些企业那样,业务要坐等IT。
探寻SOA的奥秘
当BEA的全球技术支持站点(esupport.bea.com)的应用架构转变为SOA方式构架之后,基于新应用构架上每再开发一个新的应用的时间平均减少了一半,应用开发成本平均降低了25%。此外,BEA的技术支持成本每年可节约2200万美元。在此,我们通过BEA的实践来探究一下SOA的奥秘。
BEA构建的SOA由三个层次组成:
基础层 由遗留的一些企业核心应用构成,如ERP、SFA、CRM等企业应用系统。
企业基础架构服务层 用于集成和扩展底层应用,并且作为公用层提供安全服务和访问管理,这些公用服务作为一个个单一的组件能够重复使用。
定制门户应用层 量身定做,以满足特定的业务需求。
其中,企业基础架构服务层是非常关键的。这一层是由各种与应用保持中立的关键服务构建而成的,如共享的应用服务、消息与代理服务、门户服务以及共享的业务服务等组件。它们能够重复应用于每个单独的Web应用,并使得业务逻辑和数据能够被展示给整个企业。例如,定制的门户应用可通过驻留在企业基础架构服务层的Web服务组件与基础应用交互。
SOA具有高级别的重用率,有助于生产力的提高和成本的降低。例如,像“获得客户信息”这样的服务可能会非常复杂。而在SOA架构中,这种服务被封装起来,并体现为Web服务的形式,这样,BEA的相关人员就可以创建能够持续察看客户情况的连贯视图。由此,不仅节约了开发的时间,SOA的松散耦合特性还使得架构中的每一层都不受其它层变化的影响。当需要对门户层进行修改时,我们无需考虑客户数据的构成方式。
同时,SOA还使我们能够将业务流程整合在一起。例如,我们可以选取“创建新用户案例”(Create New Case),把它和“申报客户支持”(Notify Customer Support)整合在一起。这样我们就能以一个或多个Web服务组件为中心来定制我们的业务流程,而无需定制新应用层或门户层。
在利用SOA定制门户应用方面,BEA也取得了非凡效果。从2001年12月开始,BEA eSupport技术支持站点平均每个季度都推出一种新的定制门户应用。这些应用不仅帮助用户提高了生产力,而且还降低了成本。例如,借助eSupport客户支持门户,BEA提升了呼叫中心的生产力,预计在三年内节省成本约3000万美元,并且使BEA赢得了高于平均水平的客户满意度。eSupport还入选“技术支持专业人士协会”评出的“2003年度十大杰出Web支持网站”。
有些用户认为,在运用SOA这一方式时最大的问题在于确定将哪些应用与哪些业务流程结合在一起,并将其中可以共享的功能抽出来。这一工作需要做大量的研究,同时会对企业的流程造成重大影响。这就对SOA的架构设计师提出了一定的要求,他们一方面必须理解在业务需求和可以提供的服务之间的动态关系,另一方面,同样要理解服务与提供这些服务的底层技术之间的关系。
所有的企业都面临着同样的挑战:既要实现目标又要减少成本。SOA有着切实的意义它能够帮助我们加强对整个企业架构的控制能力;它具有高级别的重用性,有助于我们提升开发效率,加快开发速度;最后,采用只需少量改动的核心企业级IT应用,让我们只需优化基于标准技术的IT技能,降低了我们在客户化和人员技能方面的投入,从而节约了成本。
技术之外的成功要素
有专家指出,SOA的最终价值在于让IT和业务同步,在规划上以面向提供弹性的业务服务为目标。从CIO到负责规划的架构设计师,都需要和业务部门之间有充分的沟通。SOA的建立,将会是一个永久的承诺,基础建设必须按部就班,并有必要在IT部门和各个业务部门间建立Sponsor的模式,以确保基础建设及各项业务服务的开发能够得到持续支持。
对此,BEA CIO Rhonda Hocker也表达了类似的看法:“不管SOA技术如何好,单靠技术本身是无法解决问题的。在BEA,SOA项目的成功还来自于好的团队、好的流程和对待成功的正确心态。我们与BEA内部负责业务的同事紧密合作,并保证对于IT建设,CEO、CFO以及其他主要高层管理人员的期望一致。在整个过程中,我们会时常展示成果、宣传我们的成功、评估投资回报(ROI),从而确保我们的价值为大家所知。”
Gartner预计,到2008年,SOA将成为占有绝对优势的软件工程实践方法,它将结束传统的整体软件体系架构长达40年的统治地位(可能性为70%)。因此,Gartner建议,主流企业现在就应该在理解和应用SOA开发技能方面进行投资。
SOA产品呼之欲出
Interwoven ECM降低TCO
内容管理供应商Interwoven在刚刚发布的全球新战略中除了为用户提供完整的企业级内容管理ECM平台之外,其所倡导的SOA架构充分表明了Interwoven对未来ECM的美好憧憬。该公司董事长兼CEO Martin Brauns对此表示Interwoven提供的核心业务需求解决方案降低了TCO,能够更好地满足甚至超越客户的需要。
用友ERP从B/S转向SOA
用友在去年11月底厦门召开的“用友2003用户年会”上强调,ERP的技术趋势将朝着“网络化、组件化、平台化”发展。毋庸置疑,网络化是跨越信息孤岛的一个重要利器。继在国内首次推出这种纯B/S结构的ERP之外,用友相关人士表示,在未来,这种B/S架构将进一步演化成一种更灵活、性能更高、更安全可靠的架构,这就是SOA。
Oracle JDeveloper 10g预览版提供集成开发平台
凭借Oracle“应用开发框架”(Application Development Framework,ADF)的特点,Oracle公司日前上市的JDeveloper 10g预览版通过一个“生产效率层(Productivity Layer)来简化应用程序的开发。Oracle ADF允许开发人员使用SOA方式编写应用程序,从而进一步简化了应用开发过程。开发人员能够专注于研究更高层次的业务逻辑和优化业务流程,而不用手工编写低层次的应用代码。
此外,Oracle Jdeveloper 10g预览版全面支持各种操作系统上开放型标准的研发,为Java开发人员编写J2EE应用和Web服务的全部过程提供完全支持。Oracle JDeveloper 10g预览版内置了专门优化Java应用程序的功能,同时还为Java、XML和SQL、BI、UML模型和Web服务提供单一的集成开发环境。
webMethods Fabric
在Java和.Net之间架桥
webMethods公司基于SOA架构的产品是webMethods Fabric。一般的应用集成产品都是基于某个特定的平台,而webMethods Fabric是一个完全基于工业标准的企业应用集成平台,它的特点是对所有的硬件、软件平台和应用软件都一视同仁。在EAI领域,存在着Java和.Net两大阵营。这两类不同技术之间实现互通互联非常不容易。webMethods Fabric则宣称自己可以在这两种技术之间架起桥梁。
作为一种支持SOA的产品,webMethods Fabric可以在服务的提供者和需求者之间建立交易机制,并且在其中起到故障接替、负载平衡和集群的作用。不管原来的应用系统是基于何种平台的,webMethods Fabric都可以在其中实现分布式的架构,从而使整个系统具有更高的可靠性和可伸缩性。Web服务是一个已经被炒作得很热的概念,而webMethods Fabric则可以提供可预见、可视化、可控制的Web服务功能,它是一种基于代理的分布式架构,所以不仅可以用于开发新的企业应用,而且可以对原有的企业应用进行监控和管理。(责任编辑:崔平)