面向?qū)ο蟀l(fā)展到面向構(gòu)件,由面向構(gòu)件再發(fā)展到面向服務(wù),因此它們的認(rèn)知觀和基礎(chǔ)理論都是息息相關(guān)的,解決大型軟件的開發(fā)效率和質(zhì)量除了要解決編程的正確性外,還必需解決開發(fā)周期長、復(fù)用性差、成本高、文檔多、以及難以適應(yīng)系統(tǒng)演化等問題。
40年前國際上發(fā)生了“軟件危機”,如IBM公司開發(fā)一個操作系統(tǒng)、或美國的航空公司開發(fā)飛機訂票系統(tǒng),都花費了上千人年的工作量,開發(fā)周期長、而開發(fā)出來的產(chǎn)品卻是錯誤很多,難以維護(hù)和適應(yīng)修改。正在此時,一位荷蘭的物理家E.W.Dijkstra提出了一種“結(jié)構(gòu)程序設(shè)計方法”,他認(rèn)為:人的智力是有限的,采用數(shù)學(xué)或物理學(xué)的思維方法,用枚舉、抽象、歸納、類比等思維方式簡化問題,稱為結(jié)構(gòu)程序的分析和設(shè)計方法(SASD)。由于我也是數(shù)學(xué)系畢業(yè)的,我拜讀了他的所有論文,編寫一本著作“編程方法學(xué)”,此書三次獲得著作大獎,并在全國十多所名牌大學(xué)講過課。用此方法擴展到軟件設(shè)計中時,稱為“結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)計(SASD)”,
所謂“結(jié)構(gòu)程序設(shè)計方法”,就是基于面向?qū)ο蟮捏w系結(jié)構(gòu)沒計方法的早期藍(lán)本,側(cè)重於解決程序正確性的編程的方法,以此為基礎(chǔ)建立了軟件工程這門學(xué)科,建立了編程的基礎(chǔ)理論體系。
解決軟件開發(fā)效率的認(rèn)知觀及其基礎(chǔ)理論
我們都知道由面向?qū)ο蟀l(fā)展到面向構(gòu)件,由面向構(gòu)件再發(fā)展到面向服務(wù),因此它們的認(rèn)知觀和基礎(chǔ)理論都是息息相關(guān)的,解決大型軟件的開發(fā)效率和質(zhì)量除了要解決編程的正確性外,還必需解決開發(fā)周期長、復(fù)用性差、成本高、文檔多、以及難以適應(yīng)系統(tǒng)演化等問題,十多年來仍舊困惑著這門學(xué)科,“軟件危機”仍未解決。
姍姍來遲的重用技術(shù)
人們的知識是從一個定理、一個原理逐步積累起來的,,社會是依靠知識的不斷積累發(fā)展的。然而編制軟件每次卻都是從零開始,這是造成“軟件危機”的根本原因。由此提出了編程工作是否也可以重用以前成功的經(jīng)驗和程序呢?。然而軟件的重用比數(shù)學(xué)中重用難得多,整整又經(jīng)過十多年的探索,到七十年代才獲得成功。
面向?qū)ο蠹夹g(shù)就是為解決重用而提出了“封裝性、繼承性和多態(tài)性”,提出了一批基礎(chǔ)理論著作,我用此方法設(shè)計了大型操作系統(tǒng),
但這種方法真正用于實際工程中的開發(fā)應(yīng)用軟件卻很少見到:另外OO未形成統(tǒng)一的模型和概念,難以形成標(biāo)準(zhǔn);工程上的實施缺乏開發(fā)規(guī)范;在技術(shù)上要術(shù)開發(fā)人員的素質(zhì)較高;最大的問題是被開發(fā)出來的軟件難以演化,而軟件要能適應(yīng)變化是客觀存在的。 為此發(fā)展出單純重用的“構(gòu)件和架構(gòu)”思想及其理論體系。在1998年日本京都召開的“基于構(gòu)件的軟件開發(fā)(CBSD)”國際專題學(xué)術(shù)會議上,一致認(rèn)為構(gòu)件技術(shù)離不開構(gòu)件和體系結(jié)構(gòu)。軼件體系結(jié)構(gòu)現(xiàn)簡稱架構(gòu)。
軟件開發(fā)技術(shù)已發(fā)展到基于構(gòu)件/架構(gòu)的技術(shù),與此同時出現(xiàn)了建模語言UML。
UML統(tǒng)一建模語言
由于面向?qū)ο蟮牟蛔悖幻嫦驅(qū)ο蟮牡旎寺?lián)合起來,吸收了構(gòu)件的思想,創(chuàng)建了UML統(tǒng)一建模語言。UML為軟件開發(fā)和SOA的產(chǎn)生起到奠基和里程碑的作用。
UML主要理論成果是:①統(tǒng)一面向?qū)ο蟮幕靖拍?,并引用了用例、,實際上己演化到構(gòu)件和架構(gòu)概念;②認(rèn)為軟件開發(fā)的過程實質(zhì)上是從抽象的模型逐步細(xì)化,過渡到具體的實現(xiàn),其中間的每個階段都是實現(xiàn)了某一抽象模型,UML為此提供了建立模型的工具,用直覺的圖形來建立模型,從此軟件專家就有了自已的工具,正如音樂家有了五線譜工具那樣;③為適應(yīng)軟件的多變性,提供了演化的概念。為此建模語言為構(gòu)件技術(shù)建立了基礎(chǔ)理論模型。
軟件架構(gòu)的產(chǎn)生的背景來自分布式系統(tǒng)的需求
在此之前的軟件架構(gòu)都采用層次結(jié)構(gòu)的架構(gòu),直到分布式系統(tǒng)提出了c/s胖終端模式的架構(gòu)后,才產(chǎn)生對架構(gòu)的研究,出現(xiàn)了構(gòu)件和架構(gòu)。
卡內(nèi)基.梅隆大學(xué)為軟件的架構(gòu)和框架建立了扎實的基礎(chǔ)理論,軟件體系結(jié)構(gòu)是軟件系統(tǒng)的高級抽象,體現(xiàn)了軟件設(shè)計思想,反映了系統(tǒng)開發(fā)中最早的決策,明確了系統(tǒng)有那幾部分組成,它們之間是如何交互的;進(jìn)一步影響到資源的配置、團(tuán)隊的組織以及產(chǎn)品的質(zhì)量。系統(tǒng)的成敗在于體系結(jié)構(gòu)。
特別是三層體系結(jié)構(gòu)是由胖終端中把應(yīng)用構(gòu)件獨立出來組成了應(yīng)用層。分布式系統(tǒng)的復(fù)雜性主要來自網(wǎng)絡(luò)的傳輸,由此提出了中間件技術(shù)及其理論。
我參與了國產(chǎn)網(wǎng)絡(luò)版CIS課題的開發(fā),由于采用了這種結(jié)構(gòu),獲得了極大的成功,廣州地稅的數(shù)據(jù)大集中,銀行的通存通取、機票訂票、電子商場等都在國內(nèi)獲得成功。
面向服務(wù)架構(gòu)被廣泛接受絕非偶然
八年前我的最后一位博士生王文軍的學(xué)位論文是“分布式系統(tǒng)的聯(lián)邦結(jié)構(gòu)”,即面向服務(wù)的架構(gòu)SOA,但未被應(yīng)用和發(fā)展,而二年前IBM公司提出后卻很快被廣泛接受,其原因可從客觀需求上和技術(shù)成熟度上二方面來敘述:
⒈客觀上需要
隨著網(wǎng)絡(luò)普及化,越來越迫功需要將現(xiàn)有多個應(yīng)用系統(tǒng)集成,以能實現(xiàn)更強的信息處理功能。如電子商務(wù)的供應(yīng)鏈、智能交通、電子政務(wù)、數(shù)字地球等已是本世紀(jì)發(fā)展的熱點。Gartner Group預(yù)計,到2008年基于件產(chǎn)品將占領(lǐng)70%的市場份額。IDC預(yù)測到 2007年,基于SOA的支撐平臺、應(yīng)用軟件等相關(guān)市場將達(dá)到210億美元。SOA是當(dāng)前最理想的解決方案。
⒉面向?qū)ο蠛蜆?gòu)件架構(gòu)的基礎(chǔ)理論和技術(shù)已趨向成熟,發(fā)展到統(tǒng)一建模語言,提供建模工具;中間件集群理論己趨向成熟,并提出了中間件inter bus技術(shù);
⒊瀏覽器技術(shù)普及,己成為行業(yè)標(biāo)準(zhǔn),奠定了SOA的基礎(chǔ)理論和技術(shù)規(guī)范,由此巳是水到渠成,使SOA拙拙成長。
什么是SOA
SOA(service-oriented architecture)是面向服務(wù)的體系結(jié)構(gòu),是一類分布式系統(tǒng)的體系結(jié)構(gòu)。這類系統(tǒng)是將異構(gòu)平臺上應(yīng)用程序的不同功能部件(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和規(guī)范,按松耦合方式整合在一起,即將多個現(xiàn)有的應(yīng)用軟件通過網(wǎng)絡(luò)將其整合成一個新系統(tǒng)。
SOA的二大認(rèn)知觀“整合創(chuàng)新和隨需應(yīng)變”及其基礎(chǔ)理論和技術(shù)
這二句話是IBM提出的,多應(yīng)用的整合不但是跨平臺的,而且應(yīng)該是松耦合的,也就是說,被整合的應(yīng)用自身仍保持其自主,如香港政府已回歸中國,但保持一國二制,采用了市場經(jīng)濟體系,我為人人,人人為我,用服務(wù)這個簡單概念整合在一起。另外,新增設(shè)的業(yè)務(wù)功能,應(yīng)允許適應(yīng)變化,即隨需應(yīng)變。
SOA實現(xiàn)中的組成部分
SOA的體系結(jié)構(gòu)仍舊是三層或N層結(jié)構(gòu),但對異構(gòu)平臺各層之間的聯(lián)系,不是用CORBA或J2EE的方式,而且用Web的服務(wù)協(xié)議來實現(xiàn),概念簡單統(tǒng)一,目前都是采用嵌入ESB服務(wù)總線的平臺來實現(xiàn),ESB是一個中間件群,確保系統(tǒng)實現(xiàn)服務(wù)功能、各種中間件功能及松耦合連接等。另外,普遍采用BPEL(業(yè)務(wù)過程執(zhí)行語言)來描述用戶需求,由BPM(業(yè)務(wù)過程管理平臺)來解釋執(zhí)行。
SOA的主要優(yōu)點
①利用現(xiàn)有的資產(chǎn)。方法是將這些現(xiàn)有的資產(chǎn)包裝成提供企業(yè)功能的服務(wù)。組織可以繼續(xù)從現(xiàn)有的資源中獲取價值,而不必重新從頭開始構(gòu)建。
②更易于集成和管理復(fù)雜性。將基礎(chǔ)設(shè)施和實現(xiàn)發(fā)生的改變所帶來的影響降到最低限度。因為復(fù)雜性是隔離的。當(dāng)更多的企業(yè)一起協(xié)作提供價值鏈時,這會變得更加重要。
③ 更快地整合和現(xiàn)實。通過利用現(xiàn)有的構(gòu)件和服務(wù),可以減少完成軟件開發(fā)生命周期所需的時間。這使得可以快速地開發(fā)新的業(yè)務(wù)服務(wù),并允許組織迅速地對改變做出響應(yīng)和縮短開發(fā)時間。
④ 減少成本和增加重用。通過以松散耦合的方式公開業(yè)務(wù)服務(wù),企業(yè)可以根據(jù)業(yè)務(wù)要求更輕松地使用和組合服務(wù)。
⑤ SOA 業(yè)務(wù)流程是由一系列業(yè)務(wù)服務(wù)組成的,可以更輕松地創(chuàng)建、修改和管理它來滿足不同時期的需要。
國外發(fā)展情況
IBM公開宣布僅三年不到,去年年底,BEA公司、甲骨文公司、惠普等所有名牌公司都在中國開了SOA發(fā)布會。
由于標(biāo)準(zhǔn)都一致,都是把本公司的中間件產(chǎn)品向SOA靠,提供開發(fā)和運行SOA系統(tǒng)的相應(yīng)工具和環(huán)境,以爭取市場效益。
國內(nèi)發(fā)展情況
正邦公司是國內(nèi)最早采用SOA技術(shù)之一,開發(fā)了上海證卷公司的管理系統(tǒng)。中和威公司開發(fā)了ESB的SOA運行平臺的產(chǎn)品。但國內(nèi)看望的多,具體應(yīng)用的還剛剛開始。
北京市市科委將支持SOA提供研發(fā)資金,由軟件行業(yè)促進(jìn)中心統(tǒng)一管理,促進(jìn)北京市IP行業(yè)發(fā)展。
關(guān)鍵技術(shù)和基礎(chǔ)理論
⒈各種規(guī)范和標(biāo)準(zhǔn),如SOAP、開發(fā)系統(tǒng)的規(guī)范。
⒉各種工具和環(huán)境。如ESB平臺、BEPL語言執(zhí)行平臺。
⒊適應(yīng)SOA的系統(tǒng)需求建模和領(lǐng)域參考模型。
4比較CORBA、J2EE、和COM,融合到SOA中。
結(jié)束語
總之:SOA理念清晰、技術(shù)趨向成熟、優(yōu)點突出、實現(xiàn)不難,但要做好卻不容易,如果大家少做重復(fù)性工作,經(jīng)常交流,我們會趕上國際水平,振興我國IP行業(yè)。我希望長風(fēng)聯(lián)盟能挑起此重?fù)?dān),本人將全力支持。
(責(zé)任編輯:朱晶)
更多SOA行業(yè)研究分析,詳見中國報告大廳《SOA行業(yè)報告匯總》。這里匯聚海量專業(yè)資料,深度剖析各行業(yè)發(fā)展態(tài)勢與趨勢,為您的決策提供堅實依據(jù)。
更多詳細(xì)的行業(yè)數(shù)據(jù)盡在【數(shù)據(jù)庫】,涵蓋了宏觀數(shù)據(jù)、產(chǎn)量數(shù)據(jù)、進(jìn)出口數(shù)據(jù)、價格數(shù)據(jù)及上市公司財務(wù)數(shù)據(jù)等各類型數(shù)據(jù)內(nèi)容。
本文來源:支點網(wǎng)
本文地址:http://158dcq.cn/freereport/21781.html