开源不仅仅是针对商用,SOA也仅仅是针对系统集成。这两个因素正酝酿IT的一场技术机制与商业模式的变革,同时这也构成了新的行业“洗牌”动因。而把SOA与开源软件的优点相结合,不仅可以降低客户的IT成本,同时还能敏捷地应对不断变化的业务需求。那么开源能否成为SOA的急先锋呢?或是两者相得益彰?抑或开源是SOA的终归宿?
一、开源与SOA合并渐成趋势
应用软件及应用解决方案采用开源软件或是部分采用开源软件已是普遍的趋势,因为这样做可以降低信息化的成本。开源策略的优势,可归为三点:
1.提高企业系统的独立性,即公司的IT系统不会被绑定于某一家的商用环境上,以便于企业走独立的技术发展路线;
2.初期投入很小,虽然开源也不意味着完全免费,但总费用上开源软件小于商用软件;
3.开源的门槛低,人力资源易于获得,表现为运营、研发时费用更低。
开源比商用方式更具优势,开源阵营的人力成本低而易补充,在开源社区中很容易找到熟悉J2EE的人,但要在IBM公司以外找到熟悉DB2和Websphere的人恐怕很难。在一般的企业级应用中,开源软件不会遇到技术上的挑战,相反,在构建SOA时,其开源组件的粒度和粘度正好,尤其是应用服务的开发。
开源应用与SOA越来越成为完美的搭档。这一点正在为行业所重视。由Forrester调研公司和Unisys合作进行的一项调查显示,大部分CEO认为开源软件是向SOA和集成计划进军的佳途径。
参加调查的400位CEO中,有71%认为在整合IT基础设施时开源软件能够起到“重要”或“非常重要”的作用。另外,有57%的被调查者认为开源资源对于促进SOA项目具有非常重要的作用。
这些回答的一个核心是SOA所具有的延长原有应用生命周期的能力。Forrester还表示,有78%的被调查者出于对开源标准的认可而倾向于使用开源软件,而这正是提升SOA作为下一代企业基础架构的价值的主要原因。
事实上,已经在有一些开源软件及开源服务可供使用了。Apache组织提供了一系列的开源SOA。企业可以使用ActiveMQ(一个开放源码基于Apache 2.0 licenced 发布,并实现了JMS 1.1。能够与Geronimo、轻量级容器和Java应用程序无缝的集成)进行通信。可使用开放源的Apache Axis 2.0 进行Web服务集合。可使用Apache ODE(Apache 正在孵化的WS-BPEL 引擎)工作流引擎。使用ESB(Enterprise Service Bus)无缝地组合与拆解该复合应用程序。
二、开源的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的组件做动态的部署,由此实现对分布式的异构数据源的监控和管理。