二、开源的SOA规范及实现
为了响应客户需求,IBM、BEA、Oracle、SAP、Primeton等公司正在合作制定用于构建SOA系统的规范,为开发人员提供构造基于SOA应用程序的更简单更强大的方法。目前,制定规范的工作交由这些公司组成的OSOA(Open Service Oriented Architecture)协作组织负责,另外OSOA还负责在Apache推出开源的SCA/SDO实现,用来更快的催化市场的发展。
OSOA目前正在起草一系列的规范,并以免版税的许可方式提供给业界使用。OSOA的业界伙伴们现在主要在两个项目上协同工作,分别是SCA(Service Component Architecture,服务构件架构)和SDO(Service Data Objects,服务数据对象)。OSOA于2007年3月份发布了SCA 1.0 和SDO 2.1 规范,并已经提交到OASIS标准组织,为SOA的正式落地揭开了序幕。这两个项目就像OSOA的两架马车一样,为SOA架构立下了汗马功劳。根据笔者掌握的最新情报,OSOA正在准备启动第三架马车:DAS(Service Data Objects,服务数据对象)。
SOA作为新生事物,它的开源实现已经初现端倪。SCA和SDO的开源产品,主要有Apache Tuscany、Eclipse STP(SOA Tools Platform)、PECL SOA for PHP、CodeCauldron Newton等。这些开源产品中,尤其以Apache旗下的Tuscany和Eclipse旗下的STP最为引人注目。
Apache Tuscany:是Apache Incubation的一个开源项目,主要开发人员来自IBM和BEA。Tuscany出身于皇家血统(OSOA联盟),可以算是SCA和SDO的最正宗的开源项目了。与Eclipse STP相比,Tuscany提供的只是一个SOA基础设施,包括SCA运行时环境、SDO和DAS实现,Tuscany项目本身并不提供SOA开发和管理IDE插件。
Eclipse STP(SOA Tools Platform):是由IONA、IBM、BEA、Sybase、ObjectWeb等公司贡献的,并于2005年成为Eclipse的第九个优异开源项目。STP目前尚未有正式的版本release,最新的稳定版本是2007年2月1号发布的(S200702011041)版本。根据项目计划,STP将于2007年8月29号发布Europa版(中文意思为“木卫二”,木星最亮的四颗行星之一,与木星的距离排在其卫星的第七位,最早为伽俐略观测到)。Europa版即是原来的Callisto版。
PECL(PHP Extension Community Library)库:在PHP社区是无人不知无人不晓,不过知道PECL库新纳入的SOA PHP项目的人却并不多见。SOA PHP项目的主要目标是用PHP来实现SOA中的SCA/SDO标准,这对PHP社区真是个莫大的福音。
Newton:它是基于GPL协议的,这意味着如果对Newton源代码做了修改,修改后的代码也需要免费开放给第三方使用,并需要将修改后的源代码反馈给Newton项目。它是一个分布式的运行时框架,用来对企业级环境下复杂的SOA系统做动态的实例化和可持续管理。Newton利用SCA系统描述,对OSGi的组件做动态的部署,由此实现对分布式的异构数据源的监控和管理。