構(gòu)件技術(shù)與中間件
當(dāng)前位置:點晴教程→知識管理交流
→『 企業(yè)管理交流 』
[p]引言 [br][br] 網(wǎng)絡(luò)計算帶領(lǐng)軟件產(chǎn)業(yè)進入了一個新的時代,商機無限,但同時挑戰(zhàn)也無限。以電子商務(wù)為代表的技術(shù)潮流正將大到企業(yè)計算、小到個人數(shù)字代理的各種應(yīng)用,在世界范圍內(nèi)聯(lián)結(jié)起來,軟件制造業(yè)正面臨著一些新的課題,如復(fù)雜的分布環(huán)境、靈活的應(yīng)用模式、廣泛的包容性等,傳統(tǒng)的軟件設(shè)計思想已遠遠不夠。 [br][br] 在這一背景下,構(gòu)件技術(shù)應(yīng)運而生,并逐漸炙手可熱。不同于oo技術(shù)強調(diào)對個體的抽象,構(gòu)件則更推廣了對象封裝的內(nèi)涵,側(cè)重于復(fù)雜系統(tǒng)中組成部分的協(xié)調(diào)關(guān)系,強調(diào)實體在環(huán)境中的存在形式,形成一個專門的技術(shù)領(lǐng)域。 [br][br] 中間件作為存在于系統(tǒng)軟件與應(yīng)用之間的特殊層次,抽象了典型的應(yīng)用模式,從而使應(yīng)用軟件制造者可以更多地將思路放在業(yè)務(wù)邏輯中,并基于標(biāo)準(zhǔn)的形式進行開發(fā),這樣就使軟件構(gòu)架化成為可能。一些工業(yè)標(biāo)準(zhǔn)的推出,進一步使中間件成為可復(fù)用構(gòu)件的運行框架,加速了軟件復(fù)用的現(xiàn)實化進程。 [br][br] 本文從構(gòu)件在現(xiàn)實軟件發(fā)展中的地位展開,分析了中間件在系統(tǒng)組織層次中所起的作用,闡述了構(gòu)件化思想對中間件本身的促進作用,提出了一種構(gòu)件化中間件的發(fā)展模式。 [br][br][br]構(gòu)件技術(shù)的基本思想 [br][br] oo技術(shù)是在"數(shù)據(jù)+算法"的基礎(chǔ)上提升了對事物的認識方法,對象的概念符合人們認識世界的習(xí)慣。而構(gòu)件的思想則更多地將重點從建模本身發(fā)展到對軟件生產(chǎn)的考慮,即構(gòu)件可以在應(yīng)用領(lǐng)域的軟件生產(chǎn)中作為零件納入新的體系中被重用。因此,構(gòu)件是oo思想的沿襲和擴展,認識事物的角度從對象個體本身上升到個體在群體中的作用。 [br][br] 構(gòu)件有幾個基本屬性: [br][br]1、構(gòu)件是可獨立配置的單元,因此構(gòu)件必須自包容。 [br]2、構(gòu)件強調(diào)與環(huán)境和其他構(gòu)件的分離,因此構(gòu)件的實現(xiàn)是嚴(yán)格封裝的,外界沒機會或沒必要知道構(gòu)件內(nèi)部的實現(xiàn)細節(jié)。 [br]3、構(gòu)件可以在適當(dāng)?shù)沫h(huán)境中被復(fù)合使用,因此構(gòu)件需要提供清楚的接口規(guī)范,可以與環(huán)境交互。 [br]4、構(gòu)件不應(yīng)當(dāng)是持續(xù)的,即構(gòu)件沒有個體特有的屬性,理解為構(gòu)件不應(yīng)當(dāng)與自身副本區(qū)別,在任 [br]何環(huán)境中,最多僅有特定構(gòu)件的一份副本。 [br][br] 可以看出,構(gòu)件沿襲了對象的封裝特性,但同時并不局限在一個對象,其內(nèi)部可以封裝一個或多個類、原型對象甚至過程,結(jié)構(gòu)是靈活的。構(gòu)件突出了自包容和被包容的特性,這就是作為軟件生產(chǎn)線上作為零件的必要特征。 [br][br] 構(gòu)件技術(shù)的關(guān)鍵點涉及構(gòu)件做什么、構(gòu)件交互的規(guī)則、構(gòu)件存在的環(huán)境等,相應(yīng)在現(xiàn)實中有各種支撐性的技術(shù),如: [br]1、構(gòu)件模型,研究構(gòu)件的本質(zhì)特征及構(gòu)件間的關(guān)系; [br]2、構(gòu)件描述語言,以構(gòu)件模型為基礎(chǔ),解決構(gòu)件的精確描述、理解和組裝問題; [br]3、構(gòu)件分類與檢索,研究構(gòu)件的分類策略、組織模式及檢索策略,建立構(gòu)件庫系統(tǒng),支持構(gòu)件的有效管理; [br]4、構(gòu)件復(fù)合組裝,包括源代碼級的組裝和基于構(gòu)件對象互操作性的運行級組裝; [br]5、標(biāo)準(zhǔn)化,包括構(gòu)件模型的標(biāo)準(zhǔn)化和構(gòu)件庫的標(biāo)準(zhǔn)化; [br]6、軟件構(gòu)架,研究如何快速、可靠地應(yīng)用可復(fù)用構(gòu)件系統(tǒng)進行系統(tǒng)構(gòu)造的方式,著重于軟件系統(tǒng)自身的整體結(jié)構(gòu)和構(gòu)件間的互聯(lián)。 [br][br][br]中間件:構(gòu)件存在的基礎(chǔ) [br][br] 構(gòu)件技術(shù)在最初時更多是作為一種思想存在,進而才在一些關(guān)鍵的環(huán)節(jié)上發(fā)展出解決問題的技術(shù)分支。構(gòu)件的存在某種程度上極大地依賴了構(gòu)架技術(shù),或環(huán)境、基礎(chǔ)設(shè)施、計算平臺,只有在適當(dāng)?shù)臉?gòu)架中,軟件才有可能被抽象和隔離,最終成為構(gòu)件。因此,單獨討論構(gòu)件是抽象而空洞的。構(gòu)架不是操作系統(tǒng)、數(shù)據(jù)庫或網(wǎng)絡(luò)協(xié)議,也不完全是應(yīng)用,而是在某種特定意義上的構(gòu)件運行容器,層次上界于應(yīng)用和基礎(chǔ)設(shè)施之間。 [br][br] 中間件,從本質(zhì)上是對分布式應(yīng)用的抽象,因而拋開了與應(yīng)用相關(guān)的業(yè)務(wù)邏輯的細節(jié),保留了典型的分布交互模式的關(guān)鍵特征。經(jīng)過抽象,將紛繁復(fù)雜的分布式系統(tǒng)經(jīng)過提煉和必要的隔離后,以統(tǒng)一的層面形式呈現(xiàn)給應(yīng)用。應(yīng)用在中間件提供的環(huán)境中可以更好地集中于業(yè)務(wù)邏輯上,并以構(gòu)件化的形式存在,最終自然而然地在異構(gòu)環(huán)境中實現(xiàn)良好的協(xié)同工作。 [br][br] 不難看出,中間件與構(gòu)架實際是從兩種不同的角度看待軟件的中間層次,可以這樣說:中間件就是構(gòu)架,或構(gòu)件模型的具體實現(xiàn),是構(gòu)件軟件存在的基礎(chǔ),中間件促進了構(gòu)件化軟件。從下面列舉的一些中間件的特征,可以看出,中間件與構(gòu)架本質(zhì)上是一致的。 [br][br]面向需求的構(gòu)件應(yīng)用 [br][br] 基于構(gòu)架的構(gòu)件化軟件開發(fā)應(yīng)當(dāng)是面向需求的,即設(shè)計者集中精力于業(yè)務(wù)邏輯本身,而不必為分布式應(yīng)用中的通信、效率、互操作、可靠性、容錯性、完整性等大量與業(yè)務(wù)無直接關(guān)系但又非常重要的問題,而耗費大量的精力,理想的構(gòu)架在這些方面應(yīng)當(dāng)為構(gòu)件軟件提供良好的運行環(huán)境。事實上,這些正是中間件所要解決的問題,因此,基于中間件開發(fā)的應(yīng)用真正是面向需求的,從本質(zhì)上符合構(gòu)件化設(shè)計的思想。 [br][br]使業(yè)務(wù)邏輯容易劃分 [br][br] 服務(wù)器構(gòu)件要求有很好的業(yè)務(wù)自包容性,應(yīng)用開發(fā)者可以按照不同的業(yè)務(wù)進行功能的劃分,體現(xiàn)為不同的接口或交互模式。針對每種業(yè)務(wù)的設(shè)計和開發(fā)是可以獨立進行的。 [br][br] 構(gòu)架和中間件有同樣的目標(biāo):提供業(yè)務(wù)的分隔和包容性。例如:消息中間件規(guī)定了消息是有屬性的,其中部分屬性則與業(yè)務(wù)的劃分有關(guān),某種服務(wù)構(gòu)件只進行相應(yīng)類型的消息交互。至于如何保證業(yè)務(wù)的分類運行與管理,則是中間件的事情。 [br][br] 因此可以說,中間件和構(gòu)架都實現(xiàn)了構(gòu)件向應(yīng)用的集成。 [br][br][br]構(gòu)件的封裝、設(shè)計與實現(xiàn)隔離 [br][br] 構(gòu)件對外發(fā)生作用或構(gòu)件間的交互,都是通過規(guī)范定義的接口進行,構(gòu)件使用者只需要知道構(gòu)件的接口,而不關(guān)心其內(nèi)部實現(xiàn),這是設(shè)計與實現(xiàn)分開的關(guān)鍵。構(gòu)架就應(yīng)當(dāng)提供構(gòu)件交互的規(guī)則,并基于這些規(guī)則實現(xiàn)類似容器的標(biāo)準(zhǔn)環(huán)境。 [br][br] 中間件在分布交互模式上都規(guī)定了接口(或類似)機制,如idl就是描述接口的語言規(guī)范,從早期的dce到現(xiàn)在的corba、dcom、java rmi等都使用idl描述接口,所不同的只是語言規(guī)范。客戶訪問服務(wù)(或?qū)ο蠓椒ǎ┚ㄟ^接口進行,至于服務(wù)采用怎樣的內(nèi)部實現(xiàn)、基于怎樣的語言、甚至怎樣的操作系統(tǒng)、數(shù)據(jù)庫,開發(fā)者都不用關(guān)心。類似地,消息隊列也可作為分布交互的手段,消息的語法和語義定義保證了使用與實現(xiàn)的分離,使用消息隊列的客戶或服務(wù)是不依賴于對方的。既然中間件能隔離設(shè)計與實現(xiàn),能在分布的環(huán)境中封裝實現(xiàn)的細節(jié),那么,基于中間件的構(gòu)件開發(fā)也就是可能的。 [br][br]隔離應(yīng)用構(gòu)件與復(fù)雜系統(tǒng)資源 [br][br] 構(gòu)架很重要的一個功能就是將系統(tǒng)資源與應(yīng)用構(gòu)件隔離,這是保證構(gòu)件可重用甚至"即插即用"的基礎(chǔ),與中間件的意圖同樣是一致的。中間件最大的優(yōu)勢之一就是屏蔽多樣的系統(tǒng)資源,保證良好的互操作性。應(yīng)用構(gòu)件開發(fā)者只需要按照中間件規(guī)定的模式進行設(shè)計開發(fā),不必考慮下層的系統(tǒng)平臺。因此可以說,中間件真正提供了與環(huán)境隔離的構(gòu)件開發(fā)模式。 [br][br]符合標(biāo)準(zhǔn)的交互模型 [br][br] 構(gòu)架不是什么具體軟件,而是抽象的模型,但模型中應(yīng)當(dāng)定義一些可操作的成分,如標(biāo)準(zhǔn)的協(xié)議。標(biāo)準(zhǔn)的中間件則實現(xiàn)了構(gòu)架的模型,實現(xiàn)了標(biāo)準(zhǔn)的協(xié)議,如基于corba的對象中間件使用的是corba規(guī)范作為構(gòu)架模型,具體則實現(xiàn)了可互操作的giop協(xié)議,映射到tcp/ip為iiop協(xié)議,定義了cdr數(shù)據(jù)表示語法、數(shù)據(jù)包格式、消息語義等內(nèi)容。因此,基于中間件的構(gòu)件是符合標(biāo)準(zhǔn)模型的。 [br][br]軟件重用 [br][br] 軟件重用是構(gòu)件化軟件生產(chǎn)的根本目標(biāo)之一,中間件提供了構(gòu)件封裝、構(gòu)件交互規(guī)則、構(gòu)件與環(huán)境的隔離及構(gòu)架設(shè)施等機制,這些都為軟件重用提供了方便的解決方案。 [br][br] 另外,通過類似應(yīng)用橋的機制,中間件可以建立訪問過去應(yīng)用的通道;或者在新的中間件體系中建立特殊的運行容器,封裝以往的應(yīng)用,從而最終做到對應(yīng)用遺產(chǎn)的繼承性重用。 [br][br]提供對應(yīng)用構(gòu)件的管理 [br][br] 基于中間件的構(gòu)件軟件可以方便地進行管理,因為構(gòu)件總可以通過方便的標(biāo)識機制進行劃分,還可以使用構(gòu)件庫機制配合一些管理規(guī)則。例如,微軟的com就利用windows系統(tǒng)注冊表配合幾種唯一標(biāo)識構(gòu)件的方式,實現(xiàn)構(gòu)件的登記、注銷、定位。corba規(guī)范中有接口池、實現(xiàn)池等規(guī)范定義,配合應(yīng)用登記管理的機制,也能對應(yīng)用構(gòu)件實施管理。 [br][br] 總之不難得出結(jié)論,基于中間件開發(fā)的應(yīng)用是構(gòu)件化的,中間件提供了構(gòu)件的體系結(jié)構(gòu),大大提高了應(yīng)用構(gòu)件生產(chǎn)的效率和質(zhì)量。 [br][br][br]構(gòu)件思想對中間件的作用 [br][br] 中間件本身作為軟件產(chǎn)品,正處于方興未艾之際,因此本身也可以借鑒構(gòu)件思想,構(gòu)件化的軟件開發(fā)對中間件同樣適用。 [br][br] 首先,中間件作為分布式計算平臺,涉及資源多樣,包括各種操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡(luò)協(xié)議甚至語言,其目標(biāo)是在分布的環(huán)境中統(tǒng)一使用這些資源。因此,可以建立針對這些資源的構(gòu)件庫,以動態(tài)、靈活的方式進行構(gòu)件的裝配,如針對不同的面向連接的網(wǎng)絡(luò)協(xié)議,可使用統(tǒng)一語義的網(wǎng)絡(luò)驅(qū)動器構(gòu)件,最靈活的情況是根據(jù)配置動態(tài)綁定。 [br][br] 其次,中間件的一個重要的設(shè)計目標(biāo)是互操作,而互操作的關(guān)鍵是有清晰而與實現(xiàn)無關(guān)的接口。因此在互操作的邊界上,必須將構(gòu)件的思想融入設(shè)計中。 [br][br] 再次,中間件的應(yīng)用范圍越來越廣,但應(yīng)用有不同的需要,不同的業(yè)務(wù)特點,如果僅僅依靠固定的模式去套用,顯然不合適。例如,多數(shù)mis應(yīng)用并不需要交易管理;有些分布應(yīng)用也沒有oltp的特點;金融應(yīng)用中安全就顯得十分關(guān)鍵;拓展到web的應(yīng)用則特別要求精干、安全和適應(yīng)性強。因此,中間件必須設(shè)計成可伸縮的體系,由一些可替換的構(gòu)件組成,如某些重于可靠,某些強調(diào)實時,某些則需要小巧。產(chǎn)品只有這種定位,才能在變化迅速的市場上總是適應(yīng)需求,立于不敗之地。 [br][br] 第四,中間件不是最終的應(yīng)用,需要服務(wù)于應(yīng)用開發(fā),但可以面向典型業(yè)務(wù)的模型,以方便應(yīng)用的開發(fā),這些模型可以以構(gòu)件的形式作為產(chǎn)品提供。例如,corba服務(wù)和設(shè)施就是一些典型應(yīng)用的抽象體現(xiàn),使用這些服務(wù)的構(gòu)件,應(yīng)用可以大大減少開發(fā)規(guī)模,并獲得良好的效果。以構(gòu)架化技術(shù)術(shù)語講,就是領(lǐng)域建模。 [br][br] 第五,成功的商業(yè)軟件都是非常便于管理的,同樣中間件也有可配置性的需要,管理整個系統(tǒng)是個復(fù)雜的行為,但如果轉(zhuǎn)化為若干簡單行為的統(tǒng)一,對開發(fā)就很簡單而明確。事實上,標(biāo)準(zhǔn)的網(wǎng)絡(luò)管理協(xié)議正是蘊涵了這種思想。基于構(gòu)件化開發(fā)的中間件也一樣,各個構(gòu)件自身是獨立配置的單元,只需進行集成就可達到系統(tǒng)的管理目標(biāo)。 [br][br] 因此,構(gòu)件化的軟件設(shè)計思想在中間件發(fā)展中起到了重要的作用,可以預(yù)見,構(gòu)件化的中間件在今后市場上是有強大生命力的。 [br][br][br]結(jié)束語 [br][br] 構(gòu)件是一種前沿的軟件設(shè)計思想,對整個軟件行業(yè)的發(fā)展有著至關(guān)重要的推動作用。而中間件作為應(yīng)用軟件系統(tǒng)集成的關(guān)鍵技術(shù),保證了構(gòu)件化思想的實施,并為構(gòu)件提供了真正的運行空間。中間件領(lǐng)域工業(yè)化標(biāo)準(zhǔn)的制定、統(tǒng)一及實現(xiàn),使基于構(gòu)件的應(yīng)用開發(fā)成為可能。反過來,構(gòu)件對新一代中間件產(chǎn)品中也起到促進作用。 [br][br] 回顧經(jīng)典的工業(yè)化革命,不難得出一些有益的啟示:功能再復(fù)雜的產(chǎn)品都是由大量標(biāo)準(zhǔn)的零件(盡管零件可能只在本領(lǐng)域內(nèi)有用)組成,零件在生產(chǎn)線上裝配成一個成品,所有零件在成品中共同發(fā)揮作用。分工越細致、專業(yè)生產(chǎn)的程度越高,總體生產(chǎn)效率就越高。而構(gòu)件技術(shù)所扮演的角色就是把零件、生產(chǎn)線和裝配運行的概念運用在在軟件工業(yè)中,可以預(yù)見,軟構(gòu)件技術(shù)是軟件產(chǎn)業(yè)化革命的必然發(fā)展趨勢。[/p]
該文章在 2010/5/12 23:46:26 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |