郝克剛_軟件構件技術綜述_第1頁
郝克剛_軟件構件技術綜述_第2頁
郝克剛_軟件構件技術綜述_第3頁
郝克剛_軟件構件技術綜述_第4頁
郝克剛_軟件構件技術綜述_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、軟件構件技術綜述郝克剛西北大學計算機科學系陜西省西安市 710069一.引言我們的社會正在步入知識經(jīng)濟時代。知識經(jīng)濟的特點在于創(chuàng)造價值的主要源泉已不再是依賴于資源、資本和人的簡單勞動,而是依賴于人的智慧和科技的創(chuàng)新??萍嫉母聦Ξa(chǎn)業(yè)的發(fā)展將起決定性作用。軟件產(chǎn)業(yè)是典型的高科技產(chǎn)業(yè)。那么當今軟件技術有何新的動向,它對軟件產(chǎn)業(yè)的發(fā)展有何影響,會帶來怎樣的機遇,我們能否抓住這一機遇把我國的軟件產(chǎn)業(yè)發(fā)展上去?這是我國軟件業(yè)界同仁最近一直關心和思考的問題。我們先從1999年2月美國總統(tǒng) IT 顧問委員會的一份報告說起。這是一個非常重要而且很有影響的報告。在報告中列舉了大量的事實論證 IT 技術對社會和國

2、家以及人民生活的重要作用。建議美國政府加大對IT 技術發(fā)展研究的投入。在建議重點支持的四大項目中,把軟件列在首位。因為報告認為軟件是信息所時代社會的最重要的基礎設施,然而現(xiàn)實上這個基礎卻相當脆弱和不可靠。軟件越來越普及而且越來越復雜,但缺乏開發(fā)可靠安全的各種軟件的合用技術。軟件的生產(chǎn)能力遠遠滿足不了飛速發(fā)展的實際需求。為此,報告建議重點支持四個方面的軟件技術的發(fā)展和研究。第一就是支持軟件開發(fā)方法和構件技術的基礎研究。什么是軟件開發(fā)的構件技術,為什么把它提得這么高,它究竟對軟件的開發(fā)和應用有些什么作用,構件技術的突破對軟件產(chǎn)業(yè)的發(fā)展會帶來什么影響和機遇,能否利用和抓住這個機遇發(fā)展我國年輕的軟件產(chǎn)

3、業(yè),正是本文要討論的問題。二.面向對象到構件技術如果把當前軟件技術的新動向歸納一下,我認為可以概括為以下三點,即媒體數(shù)字化、計算機網(wǎng)絡化和軟件構件化。所謂軟件構件化,就是要讓軟件開發(fā)像機械制造工業(yè)一樣,可以用各種標準和非標準的零件來進行組裝,或者像建筑業(yè)一樣,用各種建筑材料搭建成各式各樣的建筑。軟件的構件化和集成技術的目標是:軟件可以由不同廠商提供的,用不同語言開發(fā)的,在不同硬件平臺上實現(xiàn)的軟件構件,方便地、動態(tài)地集成。這些構件要求能互操作,它們可以放在本地的計算機上,也可以分布式地放置在網(wǎng)上異構環(huán)境下的不同結點上。實現(xiàn)軟件的構件化,這是軟件業(yè)界多年來分奮斗的目標,可以說已經(jīng)經(jīng)過了幾代人的努力

4、。早在六、七十年代,大型軟件系統(tǒng)開發(fā)引起的軟件危機,導致了 Yourdon 和De Marco 的結構化分析與結構化設計的軟件工程方法的盛行。所謂結構化方法,其本質就是為了保證軟件開發(fā)的質量、提高軟件的零活性和軟件生產(chǎn)效率,通過工程化方法,建立系統(tǒng)的軟件開發(fā)過程,使開發(fā)的軟件具有好的結構,即所謂可拼裝、可裁剪的模塊化結構。后來在八十年代出現(xiàn)了面向對象的方法。面向對象方法的基本思路是用對象來作為描寫客觀信息的基本單元,它包括封裝在一起的對象標識、對象屬性(數(shù)據(jù)和對象操作(方法、運算。與此相關的還有如下一些概念:如對象類、類的實例。對象類的繼承、父類、子類、多重繼承、方法的重載、限制以及接口等。關

5、于面向對象方法已有很多研究,最著名的有:Grady Booch方法,James Rumbaugh 的 OMT(對象模型技術,Ivar Jacobson 的 OOSE(面向對象的軟件工程。這幾種方法雖然基本思路相同,但仍有不少差異,從而為實際的軟件開發(fā)和應用帶來諸多不便。于是由 RATIONAL 軟件公司發(fā)起,從1995年開始,先是 Booch 和Rumbaugh 合作,后來 Jacobson 也加盟,共同提出了一個統(tǒng)一的建模語言 UML ,得到很多軟件公司的支持,逐漸成為面向對象方法的一個事實上的標準。正是由于有了面向對象技術的發(fā)展,多年來追求軟件構件化的的夢想,才有可能成為現(xiàn)實。下面分別從

6、CORBA、DCOM和JAVA幾個方面來介紹軟件構件技術的基本內容。三.公共對象請求中介結構CORBA面向對象方法是軟件構件技術的基礎。為了真正實現(xiàn)軟件構件化,還必須解決分布式計算和對象的互操作問題。因為按上述構件技術的目標,要求構件間能互操作,而且這些構件也允許分布式地放置在網(wǎng)上異構環(huán)境下的不同結點上。為了協(xié)調和制定分布式異構環(huán)境下應用軟件開發(fā)的統(tǒng)一標準,1989年成立了一個國際組織,叫對象管理聯(lián)盟(OMG。加盟此組織的單位愈來愈多,現(xiàn)已有750多個單位,其中包括軟件的開發(fā)供應商,軟件用戶和軟件技術的研究院所等。經(jīng)過多年的努力,已制定了一系列的標準規(guī)約,稱為 CORBA(公共對象請求中介結構

7、。 CORBA的核心是對象請求中介(ORB,是分布式對象借以相互操作的中介通道。另外還定義了最基本的對象服務構件和公共設施構件的規(guī)約。OMG所定義的CORBA并不規(guī)定具體的實現(xiàn)。實現(xiàn)CORBA的軟件由各個廠家自行開發(fā)?,F(xiàn)已有多種可用的產(chǎn)品版本發(fā)布。如上所述,CORBA的核心ORB的作用是將客戶對象(Client的請求發(fā)送給目標對象(在CORBA中稱為對象實現(xiàn)Object Implementation,并將相應的回應返回至發(fā)出請求的客戶對象。ORB的關鍵特征是客戶與目標對象之間通信的透明性。在通信過程中,ORB一般隱蔽了目標對象的以下內容:1.目標對象的位置:客戶毋須了解具體目標對象所在的地址。

8、目標對象可在同一機器的相同或不同進程中,也可在網(wǎng)絡上另一機器的進程中,。2.對象實現(xiàn)的方式:客戶毋須了解具體目標對象是如何實現(xiàn)的,用何種語言寫成的,也毋須了解該對象所在的操作系統(tǒng)和具體的硬件環(huán)境。3.對象執(zhí)行的狀態(tài):當客戶發(fā)送請求時,它毋須了解目標對象當前是否處于激活狀態(tài)(即是否處于一個正在執(zhí)行的進程中。若有必要ORB可透明地激活該對象。4.對象通信機制:客戶毋須了解ORB使用何種底層通信機制來發(fā)送請求和響應回答(如TCP/IP,分享存儲器,及本地方法調用等。ORB的通信透明性使得應用開發(fā)者可較少考慮低級分布式系統(tǒng)的程序設計問題,而更多地關心應用領域問題。ORB的各部分的作用如下圖所示。OMG

9、接口定義語言IDL用于定義對象的接口。一個對象的接口指定該對象所支持的類型和操作,因而唯一定義了可用于該對象的請求形式。客戶在構造請求時,必須了解對象的接口。如上所述,保持接口描述的“語言中性”對在異構環(huán)境中實現(xiàn)分布式應用是重要的。IDL僅為一個說明式語言,而不是一個全面的程序設計語言。因此,IDL本身并不提供諸如控制結構這樣的特征,IDL也不能直接用于實現(xiàn)分布式應用。相反,客戶和對象的實現(xiàn)是采用具體的程序設計語言完成的。因此,ORB所支持的特征必須能夠在實現(xiàn)語言中訪問。語言映射決定IDL 的內容如何映射為具體程序設計語言的設施。IDL編譯器將具體接口定義翻譯為目標語言代碼。目前OMG已完成了

10、從IDL到C,C+,Java,Smalltalk,Ada95, Cobol等語言映射的標準化工作。OMG IDL編譯器除了生成目標語言類型外,同時生成客戶端的存根(Stub和服務端的骨架(Skeleton。存根是一個可有效創(chuàng)建和發(fā)送客戶端請求的機制,而骨架是一個可將客戶端請求傳送至CORBA對象實現(xiàn)的機制。因為存根和骨架是直接從CORBA對象接口的OMG IDL描述中翻譯而得,故存根和骨架通常是與特殊對象接口相關。通過存根和骨架發(fā)送和傳遞請求的方式通常稱為靜態(tài)調用。存根和骨架被直接嵌入客戶應用和對象實現(xiàn),因此,它們具有需調用的CORBA對象接口的所有靜態(tài)信息。除了使用存根和骨架的靜態(tài)調用方式外

11、,CORBA提供了動態(tài)調用接口DII和動態(tài)骨架接口DSI,前者支持動態(tài)客戶請求調用,而后者支持將請求動態(tài)指派給對象??蛻舫绦蚩赏ㄟ^使用DII對任何對象進行請求調用,而毋須持有對象的編譯時信息。CORBA對象適配器(Adapter的作用是配合對象實現(xiàn)和ORB本身的連接。Adapter本身是一個對象,它使被調用對象的接口適配于調用對象所期望的接口。CORBA除了對核心ORB作了規(guī)定以外,還定義了對象服務和公共設施構件的規(guī)約。對象服務包括最基本和最常用的服務內容,如名字服務、事件服務等,而公共設施則包括范圍更廣的、建立在對象服務之上的服務,如用戶界面、信息管理、系統(tǒng)管理和任務管理等。CORBA 對應

12、用系統(tǒng)未作具體規(guī)定,它可以建立在對象服務和公共設施之上,利用它們中的構件。四.構件對象模型COM和構件對象模型DCOM。微軟公司是也較早采用構件技術的公司之一。1993年,微軟公司提出了構件對象模型(COM。此技術已相當成熟,微軟公司為Windows®和 Windows NT 開發(fā)的應用軟件幾乎都是基于COM的。早期的軟件多在單機上運行,后來對COM 進行了擴展,允許訪問其它機器上的對象。1996年提出了構件對象模型(DCOM,使得采用構件技術構建網(wǎng)上的應用系統(tǒng)成為可能。除了COM、DCOM以外,微軟還為開發(fā)分布式企業(yè)級應用軟件提出了很多在Windows NT®服務器上的服

13、務,如微軟作業(yè)服務(MTS、微軟因特網(wǎng)信息服務(IIS、控件服務頁面(ASP、微軟消息查詢服務(MSMQ等。有人曾將DCOM和CORBA從程序設計結構、遠程調用結構以及通信協(xié)議結構三個層次上進行了比較。雖然在基礎原理和結構上有很多相近之處,但是在具體作法上還是有很大差異。也有人對DCOM和CORBA各自的優(yōu)勢和不足進行過評論。認為DCOM有較強的工具和系統(tǒng)的支持,另外由于有些功能已嵌入在操作系統(tǒng)中(特別是Windows NT®,所以在降低化費上有優(yōu)勢。但是DCOM過多地依賴微軟的操作系統(tǒng)平臺,因而對異構網(wǎng)絡環(huán)境,在兼容性方面會有不少問題。而正相反, CORBA在支持多種平臺和多種語言

14、上具有優(yōu)勢,而且有比較廣泛的獨立開發(fā)商和用戶及業(yè)界的支持。此外,CORBA所采用的對象概念以及強調網(wǎng)絡透明等在技術上也比較成熟。當然,CORBA的不足之處是不如DCOM的支持工具那么多,另外在不同的開發(fā)商提供的CORBA實現(xiàn)之間的兼容性方面還有不少問題。但事物在不斷發(fā)展,DCOM和CORBA都會設法在改進自己的不足。五.JAVA 和JAVA2 環(huán)境平臺企業(yè)版J2EEJAVA語言由于巧妙地采用了虛擬機的機制,使得編譯后產(chǎn)生的泛代碼程序可以在各種平臺上執(zhí)行,從而作到了程序執(zhí)行與平臺無關。加之用JAVA編的Applet可以方便地用瀏覽器下載運行,JAVA語言普及和發(fā)展得很快。JAVA采用了構件技術,

15、發(fā)展了JAVA構件(即JAVA Beans和企業(yè)級JAVA構件(即EJB.為了用構件技術組成實際的應用系統(tǒng),最近又推出了 J2EE( JAVA2 環(huán)境平臺企業(yè)版Version 1.2. 1999,和JAVA程序設計模型。 按照此模型組成的應用系統(tǒng)至少分為三層。第一層是客戶層,可以采用一般的瀏覽器或特制的客戶軟件。從服務器下載的Applet可以帶有JAVA Beans 一起在客戶端執(zhí)行。為了避免由于不同廠商提供的瀏覽器中虛擬機的差異,還專門提供了虛擬機軟插件,作到程序的語義一致。為了保證安全,客戶分防火墻內外,外客戶只能從服務器進入,而內客戶允許使用RMI、IIOP等直接訪問EJB.第二層是中間

16、層,即業(yè)務邏輯層。其中有兩個包容器,一個是Web包容器,另一個是EJB包容器。Servlets JAVA服務器頁面(JSP技術使人機界面的開發(fā)變得非常容易,而Servlets則方便為Applet等客戶程序提供服務。簡單的業(yè)務邏輯由開發(fā)人員編寫業(yè)務Beans,而復雜的業(yè)務邏輯則由EJB完成。第三層是企業(yè)的信息系統(tǒng)。第二層的構件通過JDBC(訪問關系數(shù)據(jù)庫,JNDI (Java名子目錄接口,JMS(Java消息服務,JavaMail(發(fā)送和接收信件,Java IDL(與CORBA構件接口訪問第三層企業(yè)的信息系統(tǒng)。為了保護過去的投入,第三層可以與傳統(tǒng)的應用軟件、ERP 等建立聯(lián)系。六.企業(yè)級業(yè)務軟件

17、EBS采用構件技術EBS 是 Enterprise Business Software 的縮寫,即企業(yè)級業(yè)務軟件。EBS 采用構件和集成新技術可以為企業(yè)軟件用戶帶來如下一些好處:構件技術可以使企業(yè)方便地、快速地、平滑地增加新的功能。新的構件同原有的構件可以集成在一起可靠地工作。系統(tǒng)解決方案可以特別靈活地、動態(tài)地重新配置,將一個構件替換為升級的新版本不必考慮對其它構件的適配。特別對那些需要靈活地,快速地對部分系統(tǒng)而不是整個系統(tǒng)升級換代的企業(yè)帶來巨大的好處。采用構件技術允許對給定的任務采用不同的軟件開發(fā)供貨商提供的軟件。企業(yè)在實現(xiàn)它的解決方案時具有選擇產(chǎn)品的充分自由。企業(yè)可以容易地、靈活地將為企業(yè)

18、特別設計的構件與整個系統(tǒng)集成使用,從而實現(xiàn)企業(yè)的特殊需求?;跇嫾慕鉀Q方案能夠為進一步方便地擴展系統(tǒng)功能提供方便,因為軟件構件技術綜述 郝克剛 西北大學計算機科學系 定制的構件的接口也可以由用戶特殊構件的使用。 企業(yè)業(yè)務軟件開發(fā)商采用構件和集成新技術,還基于以下的考慮: 1、軟件產(chǎn)業(yè)面臨的最大的問題是軟件維護問題而不是軟件開發(fā)問題。 凡是以 EBS 為主營業(yè)務的軟件產(chǎn)業(yè)都要考慮長遠一些,因為這類軟件有一 個比較長的生命周期,投資保護是一個重要方面。軟件開發(fā)所依賴的技術和所實 現(xiàn)的軟件的功能作為一個連續(xù)的過程在不斷發(fā)展, 公司要在這整個過程中獲取利 潤,這就導致了軟件維護的問題。在 IT 基礎

19、設施不斷更新的條件下一個軟件公 司如何能保持它的技術更新和功能增強的優(yōu)勢?在軟件要適應用戶企業(yè)特殊功 能時,此問題特別突出。 2、 IT 技術變更的速度遠高于企業(yè)的業(yè)務變更的速度。 軟件技術更新周期愈來愈短對EBS軟件影響太大。如客戶服務器技術、 INTENET、B/S 結構、JAVA、以及面向對象的通信機制CORBA等新技術層出不窮。 從理論上講這種變更還會繼續(xù)下去。 與此有明顯對照的是業(yè)務過程和基本原則本 身卻改變相對甚少。采用構件技術后,技術的更新是以構件的形式實現(xiàn)的,而不 必影響企業(yè)的業(yè)務過程。 3、“職能分離”的設計原則 由于業(yè)務的改變遠比技術的改變慢得多,因而在企業(yè)業(yè)務軟件中將不同

20、任 務的軟件按職能分離是一個非常適用的方法。如果系統(tǒng)中某部分進行了技術更 新,只需將此部分的構件替換成新的構件無需改變另外的構件。但軟件構件能夠 組合的前提是它們必須基于共同的設計。軟件構件不應看作是孤立的單個的構 件,還要考慮構件間交互的方式。軟件構件必須用大家都能理解的語言來交談, 以保證能成功地協(xié)同工作。 4、綜合速度和靈活性兩個關鍵因素 過去,企業(yè)基本上采有兩種可能的方式獲得和使用軟件來支持企業(yè)的業(yè)務 過程。一種是購買完整的標準的應用軟件包,一種是由企業(yè)內部的 IT 部門來開 發(fā)和維護應用軟件以滿足企業(yè)的需求。第一種方式有兩個優(yōu)點,一是購買軟件實 現(xiàn)相當快,二是不需內部開發(fā)部門的花費。但是,一個企業(yè),只有自己開發(fā)軟件 或者將適合它的特殊需求的軟件產(chǎn)品進行組合才能滿足企業(yè)的 IT 需求。因而現(xiàn) 代 EBS 領域的任務是將上述兩種方式綜合起來。既要軟件包解決方案的速度, 又要企業(yè)內部剪裁系統(tǒng)的開放性和靈活性。這就是建立 EBS 構件的基本思想。 世界上所有大的企業(yè)業(yè)務軟件(EB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論