一、開源與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服務集合?墒褂肁pache 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的組件做動態的部署,由此實現對分布式的異構數據源的監控和管理。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/