架構的演化過程
SOA是從面向對象、構件架構等逐步發展完善,且相互依托、相互補充、又各自適應不同范圍,因此在討論SOA理論時,要了解它是如何演化過程來,繼承了哪些理論體系,其適應度如何。
結構編程方法
40年前國際上發生了“軟件危機”,如IBM公司開發一個操作系統,或美國的航空公司開發飛機訂票系統,都花費了上千人數年的工作量。它開發周期長、而開發出來的產品卻是錯誤很多,難以維護和適應修改。
正在此時,一位荷蘭的物理家E.W.Dijkstra提出了一種“結構程序設計方法”,他認為:人的智力是有限的,采用數學或物理學的思維方法,用枚舉、抽象、歸納、類比等思維方式簡化問題。
由于我也是數學系畢業的,我拜讀了他的所有論文,就編寫一本著作《編程方法學》。用此方法擴展到軟件設計中時,稱為“結構化分析和結構化設計(SASD)”。
所謂“結構程序設計方法”,就是基于面向對象設計方法的早期藍本,側重於解決程序正確性的編程的方法,以此為基礎建立了軟件工程這門學科,建立了編程的基礎理論體系,也是第一個技術與基礎理論體系。
“面向對象”的可重用理論
我們都知道由面向對象發展到面向構件,由面向構件再發展到面向服務,因此它們的認知觀和基礎理論都是息息相關的。
解決大型軟件的開發效率和質量除了要解決編程的正確性外,還必需解決開發周期長、復用性差、成本高、文檔多以及難以適應系統演化等問題,這些問題十多年來仍舊困惑著這門學科,“軟件危機”仍未解決。
人們的知識是從一個定理、一個原理逐步積累起來的,社會是依靠知識的不斷積累發展的。然而編制軟件每次卻都是從零開始,這是造成“軟件危機”的根本原因。由此提出了編程工作是否也可以重用以前成功的經驗和程序呢?整整經過十多年的探索,到七十年代才獲得成功。
我曾經用此方法設計了一個大型操作系統,這套方法和理論在產品開發和科研領域方面用得很多,因此我稱它為第二個技術與基礎理論體系。
面向構件和架構
鑒于面向對象的缺陷,三位面向對象的奠基人聯合起來,創建了UML統一建模語言。UML為軟件開發和SOA的產生起到奠基和里程碑的作用。
UML主要理論成果是:統一面向對象的基本概念,并引進了許多新的概念,認為軟件開發的過程實質上是從抽象的模型逐步細化,過渡到具體的實現,其中間的每個階段都是實現了某一抽象模型,UML為此提供了建立模型的工具。
用直覺的圖形來建立模型,從此軟件專家就有了自己的工具,正如音樂家有了五線譜工具那樣。為適應軟件的多變性,提供了演化的概念。
實際上此建模理論是第三個技術與基礎理論體系,它為演化到構件和架構概念奠定基礎理論模型。
由于工程上的實施缺乏開發規范,在技術上要求開發人員的素質較高,很少見到真正運用UML的方法于實際的工程開發應用軟件中,最大的問題是被開發出來的軟件難以演化,而軟件要能適應變化是客觀存在的。
為此發展出單純重用的“構件和架構”技術及其理論體系。在1998年日本京都召開的“基于構件的軟件開發(CBSD)”國際專題學術會議上,一致認為軟件開發技術離不開構件和體系結構。軟件體系結構現簡稱“架構”。
在此之前的軟件架構都采用層次結構的架構,直到分布式系統提出了用戶端/服務器模式后,才產生對架構的研究,出現了構件和架構,也就是第四個技術與基礎理論體系。
卡內基·梅隆大學為軟件的架構和框架建立了扎實的基礎理論,軟件體系結構是軟件系統的高級抽象,體現了軟件設計思想。反映了系統開發中最早的決策,明確了系統有哪幾部分組成,它們之間是如何交互的;進一步影響到資源的配置、團隊的組織以及產品的質量。系統的成敗也在于體系結構。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.lukmueng.com/
本文標題:解析SOA架構的十大技術理論