部署SOA是未来企业IT应用的趋势,而SOA已经从概念普及、局部尝试进入到大规模应用阶段,SCA/SDO/BPEL将是实现SOA的具体技术手段,也共同构成了下一代的编程架构。
SOA作为一种IT架构已经广受业界追捧,几乎所有的大厂商都加入了有关SOA的开发之中。有关SOA将能够带来的激动人心的一切,也在这几年的宣传中众所周知。如何转向SOA,如何实现SOA,成为讨论得最多的话题。
“SOA并不是软件开发的方法,也不是软件开发的标准,他只是一个大的软件架构概念,有着不够明确的内涵和强大的外延,就像‘中间件’这个词一样。”普元公司副总裁程朝晖如此认为,“我们需要新一代的软件开发模式和方法来实现它,这就是SCA/SDO/BPEL。”
作为惟一的一家国内软件企业,在6月成为SCA(服务构件架构)国际构件标准组织中一员之后,普元又加入了SDO(服务数据对象)的国际构件标准组织,与IBM、BEA、甲骨文等公司一起,参与到了制订影响下一代企业数据编程的架构与标准过程中。
程朝晖表示,未来普元的产品都将符合SCA和SDO规范,而到2008年发布的代号为Olympics的EOS版本时,更会全面符合SCA/SDO规范。
或者,将来Java/JavaEE等现有技术就会成为一个企业运营需要的成熟平台,解决分布式计算的问题,就像PC机、操作系统一样,发展缓慢;而另外那些过渡性的技术 (Spring, Struts, Hibernate, AOP)将会融入到新一代技术(SCA/SDO/BPEL)中,并将逐渐退出独立发展的市场,而SCA/SDO/BPEL则发展迅猛,不断解决着客户的关键性问题。
SCA:新编程规范
2005年11月,IBM、BEA、甲骨文、SAP等企业联合发布了SCA 0.9规范草稿,2006年,普元、Sun等一批公司又加入了该国际标准组织之中,参与其制订。它是一种全新的、跟语言无关的规范,它使开发人员可以将注意力集中在业务逻辑的编写上。
SCA提供了一种统一的调用方式,从而使得客户可以把不同的软件模块通过服务构件的标准化而统一地封装起来和被调用访问。这种面向服务构件的编程模型可以大大简化客户的编程,提高应用的灵活性。更直接地说,它是一种大大改进了的部署描述符,它可以使用任何语言而不限于Java。
“可以说,SCA将会是革命性的一项规范,而普元的加入制定规范,也使得普元得以与国际接轨,使得普元的产品获得了坚实的理论基础。”程朝晖这样解释普元加入国际标准组织的意义。
SDO:新数据架构
通常,程序员使用传统的Java对象(POJO,或JavaBean)或是传统的Java接口对象(POJI)来以一种持久性机制中立的风格表示数据(不久将更多利用于关系型和XML数据上)。举例来说,程序员为了使用POJO普遍会构造“数据传输对象”。我们称“Java Bean”类型API为“静态的”,因为预先定义好的具有一系列属性(getter/setter方法)的数据类型已经存在了。然而,静态数据API并不总是执行,因为有时Java类甚至还不一定存在。举例来说,在许多动态查询中,返回的数据形式并不是已知的预先类型,这样我们就不能将数据填写到已存在Java类中。另一例子是,数据结构是可扩展的;例如,对于XML数据,在您剖析它之前,通常不知道它的精确类型(假定它的XML模式结构是可扩展的)。
这就是SDO数据对象接口的便利之处:它提供了“动态的”数据API,当您需要产生一个能支持包括动态查询、未知数据类型和可扩展模式等情况的通用框架,有一个动态数据API会更加有用。
SDO是Java平台的一种数据编程架构和API,它统一了不同数据源类型的数据编程,提供了对通用应用程序模式的健壮支持,并使应用程序、工具和框架更容易查询、读取、更新和检查数据。
作为一种数据编程架构和API,SDO统一了不同数据源类型的数据编程,让开发人员可以从不同的数据源以统一的方式访问和操纵数据。
程朝晖解释说,如果说SCA以面向构件的方法简化了客户的业务逻辑编程,极大提高了应用的灵活性,那么SDO就是更进一步从数据对象上大大简化了开发。
BPEL:自动化业务流程
BPEL(业务过程执行语言)是一门用于自动化业务流程的形式规约语言,用XML文档写入BPEL中的流程能在Web 服务之间以标准化的交互方式得到精心组织。这些流程能够在任何一个符合BPEL规范的平台或产品上执行。
通过允许顾客们在各种各样的创作工具和执行平台之间移动这些流程,BPEL使得他们保护了他们在流程自动化上的投资。尽管以前想使业务流程定义标准化,但BPEL已经引起了史无前例的兴趣,而且它最早在软件供应商中获得大量认可,也被认为是下一代编程架构中不可或缺的组成部分。
‘2.5G’的那些技术 (Spring, Struts, Hibernate, AOP......)将会融入到‘3G’ (SCA/SDO/BPEL)中,并将逐渐退出独立发展的市场,而SCA/SDO/BPEL则发展迅猛,不断解决着客户的关键性问题:
1.应用开发与集成的效率 -〉 业务响应能力和低成本
2.应用模块复用、变化性维护和管理 -〉 应用资产价值提升和随需应变
可以说,SCA与SDO/BPEL一道,将成为简化SOA (面向服务架构)的应用程序开发新模式,让SOA更容易落地的新技术与事实标准。