开源会成为SOA的最终归宿吗?

Open Source(开放源代码,以下简称开源)和SOA(Service-Oriented Architecture,服务导向的架构),是目前最为前沿的IT行业趋势。IT行业分析公司Gartner 认为SOA将成为创建和交付软件的主导框架,同时预测到2010年时,应用软件收入增长的80%将来自基于SOA的方案,IDC预计2010年中国SOA 市场规模将达5亿美元。另一方面,开源社区也越来越活跃,IBM、Oracle、AMD、BEA等都在支持和实施一些开源计划。

  当然,开源不仅仅是针对商用,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的组件做动态的部署,由此实现对分布式的异构数据源的监控和管理。

三、开源与SOA协同作战的步伐加快

  今年关于SOA最大的猛料莫过于,Red Hat公司宣布,推出专门针对Red Hat和JBoss中间件开发的、基于Eclipse的开发完全开源的SOA平台。这套开发工具将专注于SOA和Web 2.0应用程序的开发。这款新的开发工具将在开源JBoss社区下供开发者使用。

  日前,Byron Sebastian(SourceLabs的CEO)介绍了开源软件在关键计算领域的重要作用,SourceLab将致力于使大量开源组件的应用更加的专业化,提高其安全性和可靠性。同时表示,任何的开源代码都可以融入SourceLabs的管理系统。SourceLabs希望进一步提高SOA开源的水平,同时,将致力于这一目的,并尽力支持关于SOA开源产品的开发,特别是那些对可靠性及风险性有特别高要求的SOA开源产品。

  当然,近来关于SOA与开源协同的消息接连不断。一家很大的欧洲软件公司,将其基于SOA环境的且已经有5年之久的产品,免费的开放给了开源社区。最近,Eclipse.org上面发起了一个SOA框架运行时的项目,同时,DPWN(Deutsche Post World Net)为了响应此号召,声称愿意将自行研发的SOA平台开源给此项目。而这个SOA框架运行时的项目,主要用于帮助用户或组织快速的将关键的SOA基础平台开源给相关的开源社区,对新的发布进行有效的管理,集成多种开源组件必须进行严格的测试,降低多种部署平台的复杂性,使技术支持更符合企业的标准,让各种开发工具支持新兴的技术。

  最后,IT界的一件并购设想方案被炒得沸沸扬扬。业界传闻,HP将收购Red Hat(价格不菲),又说HP将收购Novell(很有趣)。不管收购谁,可以肯定的是,HP收购行为的目的,显而易见是想借助SOA来构建ASAP,而问题的最初出发点是,开源对HP的SOA计划意义深远。所以才没有HP会收购BEA的传闻。

  四、开源开启SOA新时代

  SOA本身是一种引人注目的现代分布式计算方法,它有助于改变企业业务服务在交付使用方面的灵活性和敏捷性本质。但是,由于SOA功能广泛、繁简不一,而且实施需要使用大量的软件工具,企业决策者必须对实施的范围和规模加以慎重考虑。

  传统的私有软件通常只是和他自身相关而不和其他的组件一同工作。它和开源软件区别在于在私有的世界中人们总是有一整套的产品。所有的商业软件厂商都想能够提供一站式的服务。而在开源的世界当中,人们试图将注意力放在进行一件事上,并将其做的非常非常好。他们试图建立相当好的功能,但是却总是忘记那些想要开展多项业务的人们。开放源代码已经成为一个公认的热点和趋势,其实开源之强早在其产生之初就已是注定的。

  而借助于开源软件,企业只需要最小的资本风险就可以走上SOA的成功之路。在最近几个月中,SOA领域推出了众多SOA产品和服务,这些产品和服务只要合理使用,就会帮助那些为实现真正灵活性而努力的企业迈出关键的一步。

  通过对开源技术、开源产品以及在开源SOA方法融合过程中涉及一些问题的有益分析,可以看出,用开源技术开启面向服务架构新时代的前景令人期待。开源化SOA正在改写IT规划方程式。当然,轻松应对变化是成功方程式中一个极其重要的因素。

  五、结论

  对于开发者而言,开源软件解决了一个问题,那就是私有软件厂商的封闭问题。而SOA则成功的将所有开源组件都在面向服务架构应用中获得可交互的工作。对于消费者来说,开源与SOA的结合也许能把SOA带给普通大众,也正是他们所期待的事情。因为这样的合并可以:成本减少,不再有许可证费用,同时也因为相关技术可以在市场上获得;选择面广,这归功于插件的概念,使得组件具备可交换性;影响力大,即成为社区一份子并能影响未来开发的机会。

  因此,笔者认为,开源化是SOA走向主流与广泛使用的不二选择方式。如此一来,对于独立软件供应商的来说,意味着进入处于成长阶段的市场,其所提供的框架得到广泛使用,最终形成一个可维持的市场,并为它提供与之集成的第三方组件。对于系统集成商而言,能够捕获客户的潜在价值,更有利于挖掘市场的潜力。

  爱因斯坦曾经说过,"事情应该尽可能简单,而不是更简单"。SOA统一了对构件的访问方式,随着SOA规范的日渐完善,以及SOA标准化进程的推进,加上行业开源技术与开源软件的进一步开放,开源化的SOA将逐渐从概念阶段转到真正的标准化时代。随着这个时代的来临,SOA的开源和商业产品也会越来越多,越来越好。对于使用开化源的SOA进行应用实施的设计人员、开发人员、系统管理人员、行业用户等,都将异常享受SOA盛宴,并最终获得开源化的 SOA所带来的利益。