SOA的十大技術理論體系

2022-08-02 03:48:11 字數 3654 閱讀 2475

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

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

架構的演化過程

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

結構程式設計方法

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

正在此時,一位荷蘭的物理家e.w.dijkstra提出了一種「結構程式設計方法」,他認為:人的智力是有限的,採用數學或物理學的思維方法,用列舉、抽象、歸納、模擬等思維方式簡化問題。

由於我也是數學系畢業的,我拜讀了他的所有**,就編寫一本著作《程式設計方法學》。用此方法擴充套件到軟體設計中時,稱為「結構化分析和結構化設計(sasd)」。

所謂「結構程式設計方法」,就是基於物件導向設計方法的早期藍本,側重於解決程式正確性的程式設計的方法,以此為基礎建立了軟體工程這門學科,建立了程式設計的基礎理論體系,也是第乙個技術與基礎理論體系。

「物件導向」的可重用理論

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

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

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

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

面向構件和架構

鑑於物件導向的缺陷,三位物件導向的奠基人聯合起來,建立了uml統一建模語言。uml為軟體開發和soa的產生起到奠基和里程碑的作用。

uml主要理論成果是:統一物件導向的基本概念,並引進了許多新的概念,認為軟體開發的過程實質上是從抽象的模型逐步細化,過渡到具體的實現,其中間的每個階段都是實現了某一抽象模型,uml為此提供了建立模型的工具。

用直覺的圖形來建立模型,從此軟體專家就有了自己的工具,正如**家有了五線譜工具那樣。為適應軟體的多變性,提供了演化的概念。

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

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

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

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

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

三層體系結構分布式系統

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

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

其一,客觀上需要,隨著網路普及化,使用者越來越迫切需要將現有多個應用系統整合,以能實現更強的資訊處理功能。如電子商務的**鏈、智慧型交通、電子政務、數字地球等已是本世紀發展的熱點。gartner預計,到2023年基於件產品將占領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理念清晰、技術趨向成熟,實現不難、做好不容易,我們不要做重複工作,應經常交流,盡量少重複,一定能達到國際一流水平。

再議SOA十大謎思

在joe mckendrick最近的文章 gartner 為什麼soa爭論雙方都有錯的十個理由 中,他提到了gartner的yefim natis在ebizq的 soa in action 活動上所作的網播主題演講中陳述的soa十大謎思。根據yefim的說法,soa的 狂熱者 與 懷疑者 都造就了s...

弗洛伊德的理論體系簡介

弗洛伊德不僅是心理學史上的一位巨匠,也是思想史上的一位巨人。他和愛因斯坦 馬克思合稱為二十世紀最偉大的思想家。他的理論和思想不僅僅讓心理學方面的大人物精神鼓舞,更讓所有的思想家或推崇或批判。不管怎樣,弗洛伊德的理論的影響 不能說是貢獻 範圍之廣還是常常被我們所低估了。這裡我們簡單的介紹一些弗洛伊德的...

面向服務架構十大技術與基礎理論

字型大小 小中大 列印 發布 2009 4 03 10 18 實踐論認為 從實踐提公升到理論,再由理論指導實踐,由此向前發展。目前soa的發展的情況正是如此,通過不少實踐,soa的模型己經被公認為標準規範,目前是正需要進一步總結上公升到理論的時候了。當前國內要發展soa主要有三方面工作 方法 工具和...