趙婉芳
【摘 要】隨著技術(shù)的發(fā)展,軟件復用技術(shù)從最初的簡單的代碼及函數(shù)復用發(fā)展到當前流行的軟件組件設(shè)計技術(shù),組件技術(shù)通過軟件復用,不僅縮短了軟件開發(fā)過程,也有利于軟件的更新?lián)Q代。本文主要分析研究了組件技術(shù)的基本原理,主流技術(shù),同時歸納總結(jié)了基于組件技術(shù)開發(fā)應用軟件的過程及關(guān)注重點,對于基于組件的網(wǎng)絡(luò)應用程序開發(fā)有一定建設(shè)指導作用。
【關(guān)鍵詞】組件技術(shù) CORBA標準 COM標準 EJB標準
隨著技術(shù)的發(fā)展,軟件開發(fā)領(lǐng)域面臨用戶需求日趨復雜的挑戰(zhàn),由此出現(xiàn)了軟件復用技術(shù)來解決這個問題,隨著使用的深入,軟件復用技術(shù)也隨之從最初的簡單的代碼及函數(shù)復用發(fā)展到當前流行的軟件組件設(shè)計技術(shù)。如今軟件復用技術(shù)已經(jīng)成為計算機軟件技術(shù)發(fā)展的動力和追求的目標之一,而當前解決軟件復用的最有效最前沿的組件技術(shù)也已經(jīng)引起軟件開發(fā)行業(yè)的普片關(guān)注。
1 組件技術(shù)基本原理
組件技術(shù)是一種二進制基礎(chǔ)上的代碼復用技術(shù)。傳統(tǒng)方式下一個應用程序通常由單個的二進制文件組成,當編譯器生成此應用程序之后,就不會發(fā)生任何變化,當操作系統(tǒng)、硬件或客戶需求發(fā)生改變時,整個應用程序必須被重新編譯之后才能被認可,這個特征非常不利于軟件的升級更新。而在組件模式下,單個的應用程序則被分割成多個獨立的組件部分,當外界需求發(fā)生變化時,只需更新對應組件即可,很好的解決了程序易于老化的問題。在組件技術(shù)中提供服務的組件程序被稱為“服務器”,要求得到這種服務的程序稱之為“客戶機”。組件技術(shù)的核心就是實現(xiàn)客戶機和服務器之間的雙向通信。組件按照一定的規(guī)范進行開發(fā),每個組件提供一個或多個接口,在接口里只定義類和函數(shù)的聲明,不包含具體實現(xiàn)。開發(fā)完成后的組件被部署在組件容器中,由容器進行組件的創(chuàng)建和刪除管理。組件服務器管理容器同時給客戶程序提供操作環(huán)境。組件服務器可以通過組件的唯一標識在需要時地確定組件所在位置。客戶程序首先獲得組件的接口規(guī)范,聲明組件接口的本地指針,通過組件服務器找到組件程序的位置,啟動組件程序,然后向客戶機返回組件的信息。客戶機根據(jù)返回信息處理組件接口的本地指針,然后向組件服務器發(fā)出請求調(diào)用該接口的方法,服務器接受到請求后將該請求轉(zhuǎn)換為對真正組件方法的調(diào)用,最終將執(zhí)行結(jié)果傳送給客戶機。這樣,客戶機就完成了對組件功能的調(diào)用。組件開發(fā)應用程序原理如圖1所示。
2 組件標準
標準是組件應用的基礎(chǔ),統(tǒng)一的接口描述、規(guī)范的組件通信、標準的對象請求和遠程調(diào)用,構(gòu)成了組件應用的基礎(chǔ)。目前的組件的主要標準有CORBA、EJB、COM三種技術(shù)標準。
2.1 CORBA
CORBA(Common Object Request Broker Architecture)是國際對象管理組織OMG(Object Management Group)提出的標準,是一種獨立于語言的分布式對象模型,實現(xiàn)了平臺、語言無關(guān), 但該標準只定義了框架和內(nèi)核,各種實現(xiàn)相差較大。CORBA其核心是ORB(Object Request Broker)即對象請求代理,對象的接口用IDL描述,在各個對象之間采用因特網(wǎng)ORB交互協(xié)議IIOP(Internet Inter-ORB Protocal)進行通信。
2.2 COM/DCOM/COM+
COM(Component Object Model)/DCOM(Distributed Component Object Model)/COM+是微軟公司推出的組件技術(shù)標準,主要應用于Windows平臺。COM是對象鏈接和嵌入OLE(Object Linking and Embedding)的發(fā)展,分布式COM即DCOM(Distributed COM)和COM+則是COM的基礎(chǔ)上發(fā)展起來的技術(shù),和COM相比,DCOM和COM+的實現(xiàn)更加復雜。目前基于COM的OLE(Object Linking and Embedding)和AetiveX技術(shù)已經(jīng)得到廣泛應用。
2.3 EJB
EJB(Enterprise Java Beans)是Sun公司基于J2EE架構(gòu)提出的標準,在各個EJB之間采用遠程方法調(diào)用RMI(Remote Method Invocation)進行通信,而對數(shù)據(jù)庫的訪問,采用的則是Java數(shù)據(jù)庫連接JDBC(Java DataBase Connection)。EJB廣泛應用于大型電子商務系統(tǒng)開發(fā),但只適用于Java語言環(huán)境和JVM(Java Virtual Machine),未能實現(xiàn)程序設(shè)計語言無關(guān)性,而且運行效率低,對J2EE 服務器配置要求高。
3 組件技術(shù)在多層機構(gòu)網(wǎng)絡(luò)系統(tǒng)中的應用
與傳統(tǒng)的軟件開發(fā)不同,基于組件技術(shù)的軟件開發(fā)的核心是:如何提取可復用組件以及如何將這些抽象出的組件組裝成系統(tǒng)。在基于組件的軟件開發(fā)中應著重進行組件的規(guī)劃、設(shè)計與開發(fā),而且組件的開發(fā)過程始終貫穿于整個應用軟件開發(fā)過程中,這種組件和整個應用程序的并行開發(fā)模式從另一方面大大提高了軟件開發(fā)效率。
一般情況下組件的開發(fā)過程首先是對組件進行功能分析、規(guī)劃和對外接口設(shè)計,進而落實內(nèi)部細節(jié)的實現(xiàn),最終完成組件的部署與管理工作。而在基于組件的整個應用系統(tǒng)開發(fā)過程則是在進行完傳統(tǒng)的需求分析后,首先將應用程序抽象為不同功能的各層,然后確定所需組件。組件的確定是通過系統(tǒng)的數(shù)據(jù)流程圖和系統(tǒng)結(jié)構(gòu)圖來確定系統(tǒng)需要處理的各種應用請求,通過分析歸納這些應用請求就可以初步確定所需的組件。接下來創(chuàng)建各層之間的接口,實現(xiàn)組件的接口及方法。這里要注意組件本質(zhì)上是獨立的實體,它們之間的相互通信只經(jīng)由已知的公共接口,所以組件的接口在整個應用系統(tǒng)中起決定性作用。接口設(shè)計不合理,不僅影響組件本身的可重用性,而且會影響到整個應用系統(tǒng)的升級,還會縮短系統(tǒng)的生命周期。所以確定組件的接口是其中最重要的一步,要盡量使接口能支持各種不同的應用;最后是實現(xiàn)和邏輯驗證。組件不依賴于特定語言,因此開發(fā)者可根據(jù)實際需要選擇合適的開發(fā)工具。在實現(xiàn)階段的最后必須把經(jīng)過測試的組件集成到一個系統(tǒng)中,并進行邏輯驗證和系統(tǒng)測試,進行最后的確認,最終開發(fā)完成一個應用軟件系統(tǒng)。圖2是基于組件的應用程序開發(fā)過程圖。
4 結(jié)語
這種以標準的組件構(gòu)造應用程序的做法,很長時間以來一直是軟件工程開發(fā)的一個發(fā)展目標,隨著COM、CORBA、EJB、.NET組件的發(fā)展,這一目標逐漸被實現(xiàn),雖然目前很多的應用程序還是需要使用特殊組件,但是一個應用程序的大部分仍然可以用標準的組件建立起來,因此組件技術(shù)對于應用軟件系統(tǒng)的開發(fā)意義非凡。
參考文獻:
[1]秦偉俊,史元春.基于多層體系結(jié)構(gòu)的網(wǎng)絡(luò)教學系統(tǒng)[J].清華大學學報,2006,7.
[2]劉軍,陽小華.基于.NET 組件技術(shù)的教學信息發(fā)布與管理系統(tǒng)的設(shè)計與實現(xiàn)[J].微型電腦應用,2006,4.