为了进一步推动SOA的发展,2005年12月,IBM联合BEA、Oracle、IONA、SAP、Siebel、Sybase、Xcalia以及Zend公司,共同发布了两项针对SOA的重要编程模型规范——SCA(ServiceComponentArchitecture)和SDO(ServiceDataObject)。业界普遍认为,这两项规范的发布,标志着SOA的实施已经进入了实质性阶段,将对SOA的发展发挥重要的作用。
为了深入了解这两项技术规范发布的意义,IBM北亚太区企业整合解决方案首席架构师暨中国SOA设计中心技术主管毛新生先生对此做了相关介绍。
问:请问这两项技术规范会给行业带来哪些影响?
毛新生:综合起来,SCA就是怎样在现有技术基础上,为SOA计算环境(松耦合计算环境)提供开放的组件及其服务描述。另一方面,它规定已经设计好的组件之间交互,以便组装服务来构造应用。SDO则包含了连接器、协调器、对象图表、各种数据对象之间的联系信息以及这些联系信息中的描述方式。
无论如何,SCA/SDO所构成的编程模型可以为程序员带来很多非常直接的好处,而且用它们来描述和实现业务模型,将会达到一种相比原有J2EE平台或者.NET平台更加简洁和通用的效果。在面向服务的环境中,新编程模型最主要的特点就是从业务的需求出发,将一组松耦合的服务组合成业务流程,完成所需要的业务活动。但这种松耦合的服务组装是建立在开放的服务组件及其动态交互的基础之上的,因此,SCA定义能让整个业务架构看起来更加漂亮、有更大的灵活度,你还可以选择不同的方式来实现这些业务组件。过去,人们没有太多选择,在J2EE下,只能使用SectionBean,在.NET下,只能使用.NETComponent,IBM在SCA的实现中,也就是WPS6.0所提供的SCA运行时环境,有多达八种不同的组件实现形式可供选择。你可以选择用BPEL的方式实现组件,也可以用纯Java组件的方式实现这些业务组件,你甚至可以定义业务规则、人机交互任务或者状态机来完成这个事情,这样就可以根据你的实际状况、人员情况、技术背景等不同的方式选择更适合自己的方式。由于SCA下实现组件的接口都是非常统一、通用的,因此要将它们组合起来是一件相对原来更加轻松的工作。SDO带来的好处则更加明显。在我们服务过的客户中,一旦遇到需要针对很多应用进行集成时,其数据源往往都分布在不同的地方,而且极有可能是异构的,它们不仅在语法上,而且在语义上也有极大的差别。而SDO恰恰就是用来完成这项工作的,它根据业务的语义定义一个完整的Schema,不仅能清晰地定义各种数据对象,而且还能有效描述各种对象之间的联系,充分利用了XML强大的自描述能力。对于在整合复杂应用的环境下,SDO所带来的效率上的提高非常大。
问:这两个规范对SOA具有什么重要意义?
毛新生:这个规范是IT技术主流的技术厂商支持的,它的建立为SOA计算环境下的编程模型打下了一个坚实的基础,而且这个编程模型对于SOA的发展,相当于向前跨了一大步,具有非常重要的意义。你可以从如下几个维度来看待SOA:
计算环境维度,编程模型是整个计算环境非常重要的组成部分;
软件工程维度,用怎样的方法来标识这些服务,怎样描述它的接口、消息等细节;
设计原则维度,根据你采用的编程思想来设计软件结构和设计风格;
具体实现维度,怎样用你已经搭建起来的软件在SOA的计算环境下跑起来。
从上面几个角度可以看出,SCA/SDO在SOA的环境下扮演了非常重要的角色。从IBM目前已经做到的工作上看,我们已经能够将SOA开始应用在工程领域,过去两年来我们的实践也证明了这一点。
问:这两项规范的发布是否会给J2EE平台带来冲击?
毛新生:就平台而言,J2EE与SCA/SDO应该是一种相互补充的关系,而并非相互取代,只是你现在可以用另外一种方法来实现业务。不管平台本身到底如何,关键的问题在于背后的思想——开放。不管J2EE还是SCA/SDO,都是可以支持SOA计算环境,这也意味着J2EE朝着开放性上再一次做了提升。过去,IBM、BEA等厂商都很支持J2EE,所有的支持者都将继续在J2EE平台做具体工作,但是大家都需要一个更开放的标准。
问:为什么在这次联合规范发布的厂商中,没有Sun和微软?
毛新生:Sun在Java社区是非常重要的一个成员,众多原来支持J2EE标准的厂商也正在与Sun做一些沟通,并通过Java标准化组织来合力促成标准的制定。另外,微软是产业中非常重要的厂商,在SOA方面,大家共同推进的标准需要对整个IT产业中的厂商都产生影响,因此微软将来也很可能加入到这个联盟中来,当然,在短期下,可能它会受限于原有平台和技术的独立性,但从长远看,这个事情是迟早要发生的。开放在今天是主流,在技术推动下、用户要求下、市场压力下,多数厂商都会逐渐走到开放的大旗下来,这是我看到的一个趋势。因此在SCA/SDO开放的本质是显而易见的,一旦这个规范成为标准,我相信会有更多的厂商会加入其中,而且,众多在开放旗帜下的厂商也一定会为推动开放规范标准化进程而努力。
问:能否预测一下SOA未来的发展趋势?
毛新生:这里我引用一下Gartner的报告:
随着商业和技术的推动,SOA将成为将来的发展趋势已经没有人怀疑了;
2007年,超过50的公司将SOA作为IT战略来考虑;
2008年还没有将SOA引入到公司的IT实现中去,那么该公司将成为一只恐龙,也就是说这个公司很落后了
目前中国大陆公司做了10来年信息化、台湾做了20多年、日本做了30左右年,欧美做了40几年,过去那个时代,部门级的信息化就可以获得很好的效益和利润,但今天全球化到来,企业还需要进一步加强竞争力。部门级的竞争力要转化为企业级的竞争力。有些公司已经开始在自己的IT系统中支持虚拟组织/企业的业务运作,把自己搭建到一个庞大价值链的顶端,并建立起针对这种环境的业务模型。这些企业开始在动态价值网络上最大化自身,这种做法对IT提出了很多新要求。另外,动态协作,也就是部门之间/企业之间动态、快速地协作,使业务运作能够迅速应变,要求建立起清晰的契约,如果没有契约,很多业务规则将消失于无形,进而影响业务的控制和管理,它与服务的概念不谋而合。这要求实现分布式的技术应该是开放、灵活、松耦合的组件,并以清晰的契约协作,完成业务逻辑、业务流程和业务活动。新模式与SOA极为类似,这也是为什么开放的规范将会很容易成为发展趋势的原因。相比之下,美国和日本等企业对于开放的技术接受程度很高,并将开放的标准作为战略的决策依据,对于企业目标的实现具有至关重要的作用。多年基于部门级的间信息化建设,企业架构比较乱,需要整合,需要理得顺一些,而EAI通常采用特有技术,开发和维护费用过于昂贵,SOA以及所提供的SOI,以其开放、通用的特性,为建设企业级架构、企业范围内的应用整合提供了最为理想的基础。由此,SOA的趋势不可抵挡。11月30日,IBM、BEA、Oracle、IONA、SAP、Siebel、Sybase、Xcalia和Zend科技公司联合发布了针对SOA的编程模型SCA(ServiceComponentArchitecture)、SDO(ServlceDataObject),这两个规范的发布标志着SOA的实施进入了实质阶段。
来源:希赛网