JAVA
Java基于功能強大的網絡技術,以及要求同一個軟件可以運行于不同的系統和設備的設計理念,使JAVA在各個信息技術領域獲得巨大的成功。不管在用于細小設備的嵌入式系統,還是在服務于企業決策的企業信息系統,JAVA都做出了巨大的貢獻。同樣JAVA技術的應用也支持和推動著整個軟件技術的迅猛發展。
中間件
然而說到JAVA的成功,就不能不提到中間件,或許有人會說即使沒有JAVA也會有中間件,沒錯,JAVA和中間件在技術上沒有必然的聯系。但是,我們回頭看一看,在中間件占領導地位的今天,有多少成功的中間件產品是采用JAVA來開發的。目前主流的中間件產品Apusic、Weblogic、Websphere幾乎都是100%用JAVA來開發的。然而中間件已經逐漸暴露出其缺陷,人們不得不開始考慮SOA。
SOA
SOA 是Service Oriented Architecture的縮寫,代表了一種軟件開發方法。其核心思想是由擅長軟件開發的技術人員把一個個的業務功能包裝成一個個標準的服務,精通商業流程的專家通過組合這些服務可以很容易的搭建功能完善的企業應用,或者重新組合這些服務成全新的應用以滿足企業的不斷變化的需求。這里只是給出了SOA簡單的介紹后面將會詳細的講述SOA架構。
應用軟件開發方法的演變
應用軟件開發方法在短短的幾十年中經歷了一次又一次的進化,然而每一次的進化給人們帶來的好處都是一樣的,那就是提高生產效率、減低生產成本,因此給投資者帶來更豐厚的回報。回首軟件開發方法的進化歷程有如下幾次重大的過程:面向函數(面向過程)、面向對象、面向組件以及迎面而來的面向服務軟件開發方法。每一種軟件開發方法都解決了特定的問題,但同時又不得不面對新的問題,因此不斷的催生新的方法和手段。面向過程和面向對象的軟件開發方法大家都已很熟悉了,因此不用多說,下面著重看一看基于中間件和基礎件的面向組件的軟件架構方法。所謂中間件是相對于以前的客戶端/服務器結構而提出的把商業業務邏輯抽象成一個個組件,然后把這些組件放在中間層的應用服務器上運行,由應用服務器負責各個組件所需要的事務和安全等基礎服務、以及組件的管理和監控等等。IT技術人員都知道要開發事務和安全這一類的基礎服務需要專業的系統級的程序員來完成,而不是普通的應用程序員就可以輕松搞定的事情,或者說開發和維護這一類的基礎服務需要耗費大量的人力財力,然而幸運的是事務和安全等基礎服務可以獨立于業務組件,因此有了當今正流行的各種中間件和基礎件產品。這些中間件產品專注于基礎服務的開發和維護,而應用程序員可以專注于業務組件的開發,因此對于開發各種企業應用如ERP,BPM以及電子政務等等各種應用系統的軟件公司只需要購買專業的中間件產品,不用自己費時費力的開發和維護中間件和基礎件產品。
當今流行的中間件平臺有:SUN公司領導的J2EE平臺,微軟主導的COM/DCOM平臺以及OMG公司主導的CORBA平臺。正如我們所看到的有這樣三種主流的技術,因此應用軟件公司在開發應用軟件時不得不在其中做出選擇。在他們選定了一種中間件技術之后,所有的軟件組件都在這個選定的中間件平臺上面搭建。也有的比較大的軟件公司選擇的了多個平臺,比如說他的ERP基于.NET平臺,而CRM基于J2EE平臺。隨著各種應用軟件的不斷開發,一個個“信息孤島”也就被無形中建立了起來,然而應用軟件也越來越復雜,應用軟件的客戶對應用軟件的要求也越來越高,其中最為典型的技術上的要求是:要求集成各種應用軟件,各種應用軟件產品必須能夠互連互通,各種應用軟件產品之間可以共享信息,互
因此可以用右圖來表示應用軟件開發方法的演變過程:面向過程、面向對象、面向組件、面向服務。
?
SOA的抽象模型
?? 要理解實施SOA,首先要對SOA的架構有個認識,SOA架構分為四大功能模塊:
l???????? 開發服務
l???????? 發布服務
l???????? 查找服務
l???????? 使用服務
服務提供者開發出各種各樣的有用的服務,經過嚴格測試后把服務發布到公共的服務注冊表上,服務請求者通過查找服務注冊表獲得所需要的服務,然后便可以使用所需要的服務了。
SOA架構可以抽象為如下的模型:
SOA的最佳實踐
??? Web Services作為SOA的最佳實踐具有如下特征:?
l???????? 標準?
Web Services的規范包括SOAP、WSDL、UDDI、XML,以及其他一系列的標準,這些標準是每一個Web Services實現必須要實現的。目前絕大部分的Web Services產品都支持這些標準,尤其是各大國際IT巨頭。?
l???????? 松散的耦合?
l???????? 互操作?
每個Web Services產品之間的互操作在很大的程度上決定了Web Services的成敗,因此國際組織WS-I為Web Services互操作制定了標準以及測試包。?
l???????? 基于中間件?
Web Services的大部分產品都基于某個中間件產品,因此可以把遺留應用中的功能組件包裝成服務。因而這在很大的程度上可以保證現有的投資不至于浪費。?
APUSIC與JAVA、SOA?
金蝶中間件(APUSIC)作為專業的JAVA中間件公司,一直專注于基于JAVA的Apusic應用服務器的研發,其通過了Sun公司的J2EE國際認證的旗艦產品Apusic應用服務器在中國的中間件市場扮演了重要的角色。經過多年的實踐,Apusic應用服務器已有廣泛的用戶,金蝶中間件公司不僅提供給用戶高效穩定的JAVA中間件產品,而且培訓用戶如何正確的使用JAVA中間件產品,幫助客戶對客戶的JAVA應用進行架構設計,因此中間件公司對JAVA中間件的優勢和局限性有深刻的體會,從而更加確認SOA對于構建將來的應用的重要性。為了更好的滿足用戶的需求金蝶中間件公司已在Apusic應用服務器3.0中集成了Web Services的功能,已經開始在實際應用中實施SOA。Apusic Web Services是完全基于國際標準來實現的,支持SOAP、WSDL、UDDI、JAX-RPC、SAAJ、JAXM、JAXP等等標準。在開發Web Services時Apusic一直非常注重與其他產品的交互,經過測試Apusic Web Services可以與Bea Weblogic和Microsoft .NET等產品的Web Services實現互操作。并且可以通過WS-I(www.ws-i.org)的WS Base Profile 1.0互操作性測試。
JAVA與中間件、SOA?
JAVA在中間件時代留下了不可磨滅的痕跡,我們有理由相信在接下來的SOA時代,JAVA技術同樣是不可缺少的!
?