SOA架構的十大技術理論體系

 實踐論認爲:從實踐提升到理論,再由理論指導實踐,由此向前發展。目前SOA的發展的情況正是如此,通過不少實踐,SOA的模型己經被公認爲標準規範,目前是正需要進一步總結上升到理論的時候了。

    當前國內要發展SOA主要有三方面工作:方法、工具和環境。方法是工程技術,由基礎理論來指導提出的。所以一門科學必需要包括:認知科學(哲理)、工程技術和方法、最後是理論。

    架構的演化過程

    SOA是從面向對象、構件架構等逐步發展完善,且相互依託、相互補充、又各自適應不同範圍,因此在討論SOA理論時,要了解它是如何演化過程來,繼承了哪些理論體系,其適應度如何。

    結構編程方法

    40年前國際上發生了“軟件危機”,如IBM公司開發一個操作系統,或美國的航空公司開發飛機訂票系統,都花費了上千人數年的工作量。它開發週期長、而開發出來的產品卻是錯誤很多,難以維護和適應修改。

    正在此時,一位荷蘭的物理家E.W.Dijkstra提出了一種“結構程序設計方法”,他認爲:人的智力是有限的,採用數學或物理學的思維方法,用枚舉、抽象、歸納、類比等思維方式簡化問題。

    由於我也是數學系畢業的,我拜讀了他的所有論文,就編寫一本著作《編程方法學》。用此方法擴展到軟件設計中時,稱爲“結構化分析和結構化設計(SASD)”。

    所謂“結構程序設計方法”,就是基於面向對象設計方法的早期藍本,側重於解決程序正確性的編程的方法,以此爲基礎建立了軟件工程這門學科,建立了編程的基礎理論體系,也是第一個技術與基礎理論體系。

    “面向對象”的可重用理論

    我們都知道由面向對象發展到面向構件,由面向構件再發展到面向服務,因此它們的認知觀和基礎理論都是息息相關的。

    解決大型軟件的開發效率和質量除了要解決編程的正確性外,還必需解決開發週期長、複用性差、成本高、文檔多以及難以適應系統演化等問題,這些問題十多年來仍舊困惑着這門學科,“軟件危機”仍未解決。

    人們的知識是從一個定理、一個原理逐步積累起來的,社會是依靠知識的不斷積累發展的。然而編制軟件每次卻都是從零開始,這是造成“軟件危機”的根本原因。由此提出了編程工作是否也可以重用以前成功的經驗和程序呢?整整經過十多年的探索,到七十年代才獲得成功。

    我曾經用此方法設計了一個大型操作系統,這套方法和理論在產品開發和科研領域方面用得很多,因此我稱它爲第二個技術與基礎理論體系。

    面向構件和架構

    鑑於面向對象的缺陷,三位面向對象的奠基人聯合起來,創建了UML統一建模語言。UML爲軟件開發和SOA的產生起到奠基和里程碑的作用。

    UML主要理論成果是:統一面向對象的基本概念,並引進了許多新的概念,認爲軟件開發的過程實質上是從抽象的模型逐步細化,過渡到具體的實現,其中間的每個階段都是實現了某一抽象模型,UML爲此提供了建立模型的工具。
    
    用直覺的圖形來建立模型,從此軟件專家就有了自己的工具,正如音樂家有了五線譜工具那樣。爲適應軟件的多變性,提供了演化的概念。

    實際上此建模理論是第三個技術與基礎理論體系,它爲演化到構件和架構概念奠定基礎理論模型。

    由於工程上的實施缺乏開發規範,在技術上要求開發人員的素質較高,很少見到真正運用UML的方法於實際的工程開發應用軟件中,最大的問題是被開發出來的軟件難以演化,而軟件要能適應變化是客觀存在的。

    爲此發展出單純重用的“構件和架構”技術及其理論體系。在1998年日本京都召開的“基於構件的軟件開發(CBSD)”國際專題學術會議上,一致認爲軟件開發技術離不開構件和體系結構。軟件體系結構現簡稱“架構”。

    在此之前的軟件架構都採用層次結構的架構,直到分佈式系統提出了用戶端/服務器模式後,才產生對架構的研究,出現了構件和架構,也就是第四個技術與基礎理論體系。

    卡內基·梅隆大學爲軟件的架構和框架建立了紮實的基礎理論,軟件體系結構是軟件系統的高級抽象,體現了軟件設計思想。反映了系統開發中最早的決策,明確了系統有哪幾部分組成,它們之間是如何交互的;進一步影響到資源的配置、團隊的組織以及產品的質量。系統的成敗也在於體系結構。

    三層體系結構分佈式系統

    三層體系結構是由二層結構的胖終端中的應用構件獨立出來組成了應用層。爲解決分佈式系統中的各種潛在複雜性,提出了中間件技術及其理論,稱爲第五個技術與基礎理論體系。

    八年前我的最後一位博士生王文軍的學位論文是《分佈式系統的聯邦結構》,即面向服務的架構,但未被應用和發展。而兩年前IBM公司提出SOA後卻很快被廣泛接受,其原因可從客觀需求上和技術成熟度上三方面來敘述:

    其一,客觀上需要,隨着網絡普及化,用戶越來越迫切需要將現有多個應用系統集成,以能實現更強的信息處理功能。如電子商務的供應鏈、智能交通、電子政務、數字地球等已是本世紀發展的熱點。Gartner預計,到2008年基於件產品將佔領70%的市場份額。
 
    其二,面向對象和構件架構的基礎理論和技術已趨向成熟,發展到統一建模語言,提供建模工具。中間件集羣理論己趨向成熟,並提出了中間件Inter Bus技術。

    其三,瀏覽器技術普及,己成爲行業標準,奠定了SOA的基礎理論和技術規範,由此已是水到渠成,使SOA拙壯成長。

SOA在實現中的組成部分

    SOA的體系結構仍舊是三層或N層結構,但對異構平臺各層之間的聯繫,不是用CORBA、J2EE或.NET的方式,而且用WBDL和SOAP來實現,它們的概念簡單統一。

    目前都是採用嵌入ESB企業服務總線的平臺來實現,ESB是一箇中間件羣,確保系統實現了服務接口、各種中間件以及松耦合的三個方面功能,因此稱它爲第六個技術與基礎理論體系。

    另外,普遍採用BPEL(業務過程執行語言)來描述用戶需求,由BPM(業務過程管理平臺)來解釋執行,構成了第七個技術與基礎理論。

    SOA的主要優點

    1. 利用現有的資產。方法是將這些現有的資產包裝成提供企業功能的服務。組織可以繼續從現有的資源中獲取價值,而不必重新從頭開始構建。

    2. 更易於集成和管理複雜性。將基礎設施和實現發生的改變所帶來的影響降到最低限度。因爲複雜性是隔離的,當更多的企業一起協作提供價值鏈時,這會變得更加重要。

    3. 更快地整合現實。通過利用現有的構件和服務,可以減少完成軟件開發生命週期所需的時間。這使得可以快速地開發新的業務服務,並允許組織迅速地對改變做出響應和縮短開發時間。

    4. 減少成本和增加重用。通過以鬆散耦合的方式公開業務服務,企業可以根據業務要求更輕鬆地使用和組合服務。

    5. SOA業務流程是由一系列業務服務組成的,可以更輕鬆地創建、修改和管理它來滿足不同時期的需要。

    建立軟件開發方法和規範

    構件構架理論體系的應用是適用於構件技術創立的,當發展到面向服務的體系結構時,必需加以修改和擴充,現在稱爲模型驅動MDD的需求工程建模理論,可以稱它爲第八個技術與基礎理論體系。

    另一個構件的領域工程將要擴充成SOA的參考結構,這是第九個技術與基礎理論體系。SOA的門戶將要反映SOA所有功能的表現層界面,爲此如何將最新的WEB2.0與SOA給合,這是第十個技術與基礎理論體系。上述三方面是SOA在實際應用時必需要建立的理論和技術。

    SOA的發展狀況

    IBM公開宣佈SOA計劃不到三年,去年年底,BEA公司、甲骨文公司、惠普等所有名牌公司都在中國發布了關於SOA的消息。

    由於SOA模型統一,因此都是把本公司的中間件產品向SOA靠攏,提供開發和運行SOA系統的相應工具和環境,以爭取市場的份額。

    北京市市科委將爲SOA核心平臺研發提供資金,由軟件行業促進中心統一管理,促進北京市IP行業發展。

    隨着SOA理論的發展,各種與SOA有關的規範和標準將不斷出現,如SOAP、WSDL、ESB、BEPL語言等,它們的出現象徵着SOA將逐步走向成熟。我們更應注意着各家公司所開發的工具和環境產品,有助於SOA的大力推廣應用。

    上述十大理論體系應該認真掌握、靈活應用,更應該不斷刨新。總之,SOA理念清晰、技術趨向成熟,實現不難、做好不容易,我們不要做重複工作,應經常交流,儘量少重複,一定能達到國際一流水平。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章