版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件架構(gòu)集成技術(shù) 軟件架構(gòu)集成技術(shù) l 軟件體系結(jié)構(gòu)是構(gòu)建計算機軟件實踐的基礎(chǔ)。與建筑師設(shè)定建筑項目的設(shè)計原則和目標,作為繪圖員畫圖的基礎(chǔ)一樣,一個軟件架構(gòu)師或系統(tǒng)架構(gòu)師陳述軟件構(gòu)架,以作為實際系統(tǒng)的設(shè)計方案的基礎(chǔ)。l 軟件架構(gòu)(software architecture)是一系列相關(guān)的抽象模式,用于指導(dǎo)大型軟件系統(tǒng)各個方面的設(shè)計。 軟件架構(gòu)是一個系統(tǒng)的草圖。軟件架構(gòu)描述的對象是直接構(gòu)成系統(tǒng)的抽象組件。各個組件之間的連接則明確和相對細致地描述組件之間的通訊。架構(gòu)的目標是什么 l 可靠性(Reliable)。軟件系統(tǒng)對于用戶的商業(yè)經(jīng)營和管理來說極為重要,因此軟件系統(tǒng)必須非??煽?。l 安全行(Se
2、cure)。軟件系統(tǒng)所承擔的交易的商業(yè)價值極高,系統(tǒng)的安全性非常重要。l 可擴展性(Scalable)。軟件必須能夠在用戶的使用率、用戶的數(shù)目增加很快的情況下,保持合理的性能。只有這樣,才能適應(yīng)用戶的市場擴展得可能性。 l 可定制化(Customizable)。同樣的一套軟件,可以根據(jù)客戶群的不同和市場需求的變化進行調(diào)整。l 可擴展性(Extensible)。在新技術(shù)出現(xiàn)的時候,一個軟件系統(tǒng)應(yīng)當允許導(dǎo)入新技術(shù),從而對現(xiàn)有系統(tǒng)進行功能和性能的擴展l 可維護性(Maintainable)。軟件系統(tǒng)的維護包括兩方面,一是排除現(xiàn)有的錯誤,二是將新的軟件需求反映到現(xiàn)有系統(tǒng)中去。一個易于維護的系統(tǒng)可以有效
3、地降低技術(shù)支持的花費9.1.1什么是CORBA l CORBA(Common Object Request Broker Architecture公共對象請求代理體系結(jié)構(gòu))是由OMG組織制訂的一種標準的面向?qū)ο髴?yīng)用程序體系規(guī)范。其職責是為應(yīng)用開發(fā)提供一個公共框架,制訂工業(yè)指南和對象管理規(guī)范,加快對象技術(shù)的發(fā)展。l CORBA用于在不同進程(程序)之間,甚至是不同物理機器上的進程之間通訊。底層技術(shù)依靠RPC(遠程過程調(diào)用)實現(xiàn)。面向?qū)ο蟮能浖詳?shù)據(jù)為中心設(shè)計,對象類既具有模塊的封裝性和類屬等特性,還具有繼承特性,極大地提高了類的可擴充性和可復(fù)用能力。對象類較之于傳統(tǒng)軟件的功能模塊而另具有的優(yōu)點
4、是:l (1) 易于理解,具有完整的語義特征;l (2) 易于擴充和修改,具有較高的通用性和適應(yīng)性;l (3) 易于構(gòu)造組裝,具有規(guī)范的外部接口。9.1.1什么是CORBAlCORBA具有如下突出特點:l(1)分布計算技術(shù)和面向?qū)ο缶幊碳夹g(shù)(Object Oriented Programming,OOP)相融合。通過OOP 繼承性,實現(xiàn)軟件源代碼的復(fù)用。l(2)引入了“代理”的概念。代理的基本作用是完成對客戶方提出的抽象服務(wù)請求的映射;自動發(fā)現(xiàn)和尋找服務(wù)器;自動設(shè)定路由,實現(xiàn)到服務(wù)方的執(zhí)行。通過代理,用戶在編制客戶程序時不需要了解實現(xiàn)的細節(jié),只需完整地定義和說明所需完成的任務(wù)和目標。l(3)客
5、戶端程序與服務(wù)器端程序的完全分離。通過代理機制,客戶方不再同服務(wù)器發(fā)生直接聯(lián)系,而僅和代理進行交互。因此在保持調(diào)用方式不變的情況下,服務(wù)器方和客戶方程序都可以自由地修改和升級而無須通知對方,從根本上改變了傳統(tǒng)的面向過程調(diào)用機制的客戶端服務(wù)器模式。l(4)提供了“軟件總線”的功能。軟件總線是CORBA定義的一組獨立于語言和環(huán)境的接口規(guī)范,按照該接口規(guī)范開發(fā)出來的軟件,便可以方便地集成到該系統(tǒng)中,而這個規(guī)范獨立于任何實現(xiàn)語言。l(5)設(shè)計原則和設(shè)計方式的層次化。CORBA規(guī)范僅定義了ORB中用到的最基本對象、屬性和方法,而面向應(yīng)用的對象可以在OMA的應(yīng)用對象、領(lǐng)域?qū)ο蠡蜷_發(fā)環(huán)境中逐層進行定義和實現(xiàn)
6、,CORBA規(guī)范是針對ORB通信中間件制定的工業(yè)標準,而面向應(yīng)用的對象定義則可以在對象管理體系結(jié)構(gòu)的應(yīng)用對象或應(yīng)用開發(fā)環(huán)境中逐步分層定義和實現(xiàn)。9.1.2 CORBA的標準規(guī)范 l CORBA的核心是對象請求代理ORB,它提供對象定位、對象激活和對象通訊的透明機制??蛻舭l(fā)出要求服務(wù)的請求,而對象則提供服務(wù),ORB把請求發(fā)送給對象、把輸出值返回給客戶。ORB的服務(wù)對客戶而言是透明的,客戶不知道對象駐留在網(wǎng)絡(luò)中何處、對象是如何通訊、如何實現(xiàn)以及如何執(zhí)行的,只要他持有對某對象的對象引用,就可以向該對象發(fā)出服務(wù)請求。CORBA允許用戶以兩種不同的方式提出對象請求:l 1)靜態(tài)調(diào)用靜態(tài)調(diào)用:l 通過給定
7、接口的存根,在編譯了對象代碼后,進入客戶端的程序。因此,靜態(tài)調(diào)用必須在編譯時就知道對象及其類型。l 2)動態(tài)調(diào)用動態(tài)調(diào)用:l 通過ORB的動態(tài)調(diào)用接口DII,在運行時生成訪問對象的代碼。l 不管客戶以哪一種形式提出請求,ORB的任務(wù)是:找出所要對象的位置,激活該對象,向?qū)ο髠鬟f此請求。對象執(zhí)行所請求的服務(wù)后,把輸出值返回給ORB,然后再由ORB返回給客戶。9.1.2 CORBA的標準規(guī)范lCORBA的重要概念是:l1對象連接對象連接lCORBA廣泛地支持對象的實現(xiàn),在單服務(wù)器系統(tǒng)中也可以實現(xiàn)由接口定義語言定義的接口。ORB的靈活性既可以直接集成已有的應(yīng)用,又不會使新對象受某些原則的制約。對象連
8、接提供了有不同類型對象實現(xiàn)時,使用ORB服務(wù)的方法,服務(wù)包括:對象引用、方法調(diào)用、安全控制、對象實現(xiàn)的激活與靜候等。l2接口定義語言(IDL)lCORBA用IDL來描述對象接口,IDL是一種說明性語言,它的語法類似于C+。IDL提供的數(shù)據(jù)類型有:基本數(shù)據(jù)類型、構(gòu)造類型、模板類型、和復(fù)合類型、操作說明。這些類型可以用來定義變元的類型和返回類型,操作說明則可以用來定義對象提供的服務(wù)。lIDL還提供模塊構(gòu)造,其中可以包含接口,而接口是IDL各類型中最重要的,它除了描述CORBA對象以外,還可以用作對象引用類型。lIDL提供了接口繼承性,派生接口可以繼承其基類接口所定義的操作與類型。IDL的接口繼承性
9、有其特殊性,此處不贅述。l總之,CORBA的IDL是一種說明性語言,描述面向?qū)ο笙到y(tǒng)開發(fā)所遵循的接口與實現(xiàn)相分離的基本原則。l3動態(tài)調(diào)用接口動態(tài)調(diào)用接口l把IDL說明編譯成面向?qū)ο蟪绦蛟O(shè)計語言的實代碼后,客戶可以調(diào)用已知對象的操作。在某些應(yīng)用中,用戶并不了解應(yīng)用接口編譯信息,但也要求調(diào)用對象的操作,這時就要動態(tài)調(diào)用接口來調(diào)用用戶的操作了。例如,圖形用戶接口應(yīng)支持用戶瀏覽接口公共庫,以獲得每個對象所支持的操作信息,用戶可根據(jù)自己的需求從瀏覽對象中挑選出所需的對象操作,具體的對象操作的調(diào)用實際上是用動態(tài)調(diào)用接口來完成的。l4接口公用庫接口公用庫l接口公用庫持久地存儲IDL的接口說明,借助于接口公用
10、庫,可以實現(xiàn)對象繼承性層次結(jié)構(gòu)的導(dǎo)航,并且提供了有關(guān)對象支持的所有操作的描述。接口公用庫最常見的功能是為接口瀏覽器提供信息,幫助應(yīng)用開發(fā)者找出潛在的可重用的軟件部件。ORB可以利用接口公用庫檢查運行時的操作參數(shù)類型,但接口公用庫的基本功能是提供類型信息,為動態(tài)調(diào)用接口發(fā)送請求提供信息支持。 9.1.3 CORBA的核心內(nèi)容的核心內(nèi)容l對象管理體系結(jié)構(gòu)對象管理體系結(jié)構(gòu)OMA圖9.1 OMA參考模型 對象請求代理公共設(shè)施應(yīng)用接口領(lǐng)域接口 對象服務(wù)9.1.3 CORBA的核心內(nèi)容的核心內(nèi)容l (1)對象服務(wù)object services(OS)。定義加入ORB的系統(tǒng)級服務(wù),如安全性、命名和事務(wù)處理,
11、它們是與應(yīng)用域無關(guān)的。對象服務(wù)是一些最有可能被用來支持分布式對象環(huán)境F構(gòu)造應(yīng)用的標準化部件。目前通過的對象服務(wù)包括對象命名服務(wù)、事件服務(wù)、對象生存期服務(wù)、永久對象服務(wù)、對象關(guān)系服務(wù)以及事務(wù)服務(wù)、并發(fā)控制服務(wù)等等。l (2)公共設(shè)施common facilities(CF)。水平級的服務(wù),定義應(yīng)用程序級服務(wù),如復(fù)合文檔等。公共設(shè)施是比對象服務(wù)粒度更大的可重用的部件塊。它主要用來幫助構(gòu)造跨多個應(yīng)用域的應(yīng)用程序。典型的公共設(shè)施包括用戶接口、信息管理、系統(tǒng)管理和任務(wù)管理等。l (3)領(lǐng)域接口如domain interfaces(DI)。面向待定的領(lǐng)域,在OMA中所處的位置與對象服務(wù)與公共設(shè)施相似。l
12、(4)應(yīng)用接口application interfaces(AI)。面向指定的現(xiàn)實世界應(yīng)用。是指供應(yīng)商或用戶借助于ORB、公共對象服務(wù)及公共設(shè)施而開發(fā)的特定產(chǎn)品,它不在CORBA體系結(jié)構(gòu)中標推化。 9.1.3 CORBA的核心內(nèi)容的核心內(nèi)容l 對象框架(object frameworks) 圖9.2 OMA的對象框架OS DFAI DI OSCF OSOS DFDI OSORB對象框架OS:對象服務(wù) CF:公共設(shè)施DI:領(lǐng)域接口 AI:應(yīng)用接口9.2.1 什么是什么是EJB l EJB是一種基于構(gòu)件的開發(fā)模型,它是Java服務(wù)器端服務(wù)框架的規(guī)范。EJB詳細地定義了一個可以方便地部署Java構(gòu)件
13、的服務(wù)框架模型,用于創(chuàng)建可伸縮、多層次、跨平臺、分布式的應(yīng)用,并可創(chuàng)建具有動態(tài)擴展性的服務(wù)器端的應(yīng)用。l EJB具有以下特點:l (1) EJB以構(gòu)件的形式組織服務(wù)器:EJB構(gòu)件是直接用Java語言編寫的服務(wù)器構(gòu)件,Java語言編寫的跨平臺特性使得EJB構(gòu)件可以方便地移植到各種操作系統(tǒng)平臺和EJB服務(wù)器上;l (2) EJB構(gòu)件實現(xiàn)僅需考慮應(yīng)用需求,其系統(tǒng)級服務(wù)諸如事務(wù)管理、安全性、構(gòu)件生命周期和線程等,都通過EJB服務(wù)器自動進行管理的;l (3) EJB體系結(jié)構(gòu)具有面向?qū)ο蟆⒎植际?、跨平臺、可擴充性、安全性以及便于開發(fā)等優(yōu)點,同時它還是以協(xié)議為中心的,任何協(xié)議都可以被利用。9.2.2 EJB
14、的規(guī)范介紹的規(guī)范介紹l Enterprise Bean 依賴容器來獲取它的需求。如果 Enterprise Bean 需要訪問 JDBC 連接或另一個 Enterprise Bean,那么它需要利用容器來完成此項操作;如果 Enterprise Bean 需要訪問調(diào)用者的身份、獲取它自身的引用或訪問特性,那么它需要利用容器來完成這些操作。Enterprise Bean 通過以下三種機制之一與容器交互:回調(diào)方法、EJBContext 接口或 JNDI。 回調(diào)方法: 每個 bean 都會實現(xiàn) EnterpriseBean 接口的子類型,該接口定義了一些方法,稱作回調(diào)方法。每個回調(diào)方法在 bean
15、的生命周期期間向它提示一個不同事件,當容器要合用某個 bean、將其狀態(tài)存儲到數(shù)據(jù)庫、結(jié)束事務(wù)、從內(nèi)存中除去該 bean 等操作時,它將調(diào)用這些方法來通知該 bean。回調(diào)方法可以讓 bean 在事件之前或之后立即執(zhí)行內(nèi)部調(diào)整。在第 4 章中將詳細討論回調(diào)方法。 9.2.2 EJB的規(guī)范介紹的規(guī)范介紹l EJBContext: 每個 bean 都會得到一個 EJBContext 對象,它是對容器的直接引用。EJBContext 接口提供了用于與容器交互的方法,因此那個 bean 可以請求關(guān)于環(huán)境的信息,如其客戶機的身份或事務(wù)的狀態(tài),或者 bean 可以獲取它自身的遠程引用。l Java 命名和
16、目錄接口 (JNDI): JNDI 是 Java 平臺的標準擴展,用于訪問命名系統(tǒng),如 LDAP、NetWare、文件系統(tǒng)等。每個 bean 自動擁有對某個特定命名系統(tǒng)(稱作環(huán)境命名上下文 (ENC))的訪問權(quán)。ENC 由容器管理,bean 使用 JNDI 來訪問 ENC。JNDI ENC 允許 bean 訪問資源,如 JDBC 連接、其它 Enterprise Bean,以及特定于該 bean 的屬性。 9.2.2 EJB的規(guī)范介紹的規(guī)范介紹l EJB 規(guī)范定義了 bean-容器契約,它包括了以上描述的機制(回調(diào)、EJBContext、JNDI ENC)以及一組嚴謹?shù)囊?guī)則,這些規(guī)則描述了 E
17、nterprise Bean 及其容器在運行時的行為、如何檢查安全性訪問、如何管理事務(wù)、如何應(yīng)用持續(xù),等等。bean-容器契約旨在使 Enterprise Bean 可以在 EJB 容器之間移植,從而可以只開發(fā)一次 Enterprise Bean,然后在任何 EJB container 運行該 Enterprise Bean。供應(yīng)商,如 BEA、IBM 和 GemStone,都銷售包含 EJB 容器的應(yīng)用程序服務(wù)器。理想情況下,任何符合規(guī)范的 Enterprise Bean 都應(yīng)該可以在任何符合規(guī)范的 EJB 容器中運行。 9.2.3 EJB的體系結(jié)構(gòu)的體系結(jié)構(gòu)l EJB的軟構(gòu)件模型的軟構(gòu)件模
18、型 l 有兩種類型的軟構(gòu)件模型:客戶端構(gòu)件模型和服務(wù)器端構(gòu)件模型??蛻舳藰?gòu)件模型如JavaBeans是專門用于處理程序的表示及用戶界面問題的;服務(wù)器端構(gòu)件模型如EJB則向面向事務(wù)的中間件提供基礎(chǔ)設(shè)施。 l 服務(wù)器端構(gòu)件模型把構(gòu)件模型的開發(fā)和中間件聯(lián)系在一起。企業(yè)級應(yīng)用的中間件以其復(fù)雜性著稱,它不僅涉及到應(yīng)用邏輯、并發(fā)性和伸縮性問題,而且涉及到如何把不兼容的系統(tǒng)組合在一起的問題。服務(wù)器端構(gòu)件模型解決了中間件開發(fā)的復(fù)雜性問題,它使中間件開發(fā)人員集中于應(yīng)用系統(tǒng)的邏輯部分,而不用處理同步、可伸縮性、事務(wù)集成、網(wǎng)絡(luò)、分布式對象框架等一些分布式應(yīng)用系統(tǒng)中存在的復(fù)雜的細節(jié)問題。 9.2.3 EJB的體系結(jié)構(gòu)
19、的體系結(jié)構(gòu)圖9.5 EJB構(gòu)件模型 EJB客戶容器客戶視圖EJB 服務(wù)器9.2.3 EJB的體系結(jié)構(gòu)的體系結(jié)構(gòu)lEJB構(gòu)件模型給開發(fā)者提供了一下的支持:1 構(gòu)件包含應(yīng)用程序邏輯2 可重用的構(gòu)件3 可伸縮性4 資源管理5 事務(wù)支持6 并發(fā)性管理9.2.3 EJB的體系結(jié)構(gòu)的體系結(jié)構(gòu)l EJB構(gòu)件模型的特點l (1) EJB將成為用Java語言開發(fā)分布式的、面向?qū)ο蟮钠髽I(yè)級應(yīng)用系統(tǒng)的標準構(gòu)件體系結(jié)構(gòu),EJB使得通過組合構(gòu)件得到分布式應(yīng)用系統(tǒng)成為可能。 l (2) EJB使得應(yīng)用系統(tǒng)開發(fā)變得容易,應(yīng)用系統(tǒng)開發(fā)人員不需要理解底層的事務(wù)處理細節(jié)、狀態(tài)管理、多線程、資源共享管理、以及其它復(fù)雜的底層API細
20、節(jié)。l (3) EJB遵循Java的“write once,run anywhere”的思想,一旦一個EJB開發(fā)完成之后,就可以部署在任何支持EJB的平臺上,而不需要重新編譯或?qū)υ创a進行修改。 l (4) EJB定義了一個協(xié)議,使得用不同供應(yīng)商提供的工具開發(fā)和部署的構(gòu)件能在運行時互操作。l (5) EJB體系結(jié)構(gòu)和已有的服務(wù)器平臺、其它的Java APL、CORBA等兼容。l (6) EJB將支持Enterprise Beans和其它的非Java應(yīng)用系統(tǒng)的互操作性。 9.2.3 EJB的體系結(jié)構(gòu)的體系結(jié)構(gòu)l EJB 結(jié)構(gòu)中的角色結(jié)構(gòu)中的角色 l 一個完整的基于EJB的分布式計算結(jié)構(gòu)由六個角色
21、組成,這六個角色可以由不同的開發(fā)商提供,每個角色所作的工作必須遵循Sun公司提供的EJB規(guī)范,以保證彼此之間的兼容性。l 這六個角色分別是:l Enterprise Bean Provider:EJB組件開發(fā)者;l Application Assembler:應(yīng)用組合者;l Deployer:部署者;l EJB Server Provider:EJB 服務(wù)器提供者;l EJB Container Provider:EJB 容器提供者;l System Administrator:系統(tǒng)管理員。9.3.1什么是什么是COMl COM(Component Object Model),組件對象模型,一
22、般簡稱組件。是Microsoft提出的組件標準,它是一種以組件為發(fā)布單元的對象模型,這種對象模型使各軟件組件可以用一種統(tǒng)一的方式進行交互。COM不僅定義了組件程序之間進行交互的標準,也提供了組件程序運行所需的環(huán)境。l COM標準包括規(guī)范和實現(xiàn)兩個部分,規(guī)范部分定義了組件和組件之間通信的機制,這些規(guī)范不依賴于任何特定的語言和操作系統(tǒng),只要按照該規(guī)范,任何語言都可以使用。COM標準的實現(xiàn)部分是COM庫,COM庫為COM規(guī)范的具體實現(xiàn)提供了一些核心服務(wù)。COM庫包括以下內(nèi)容:l 提供了少量API函數(shù)實現(xiàn)客戶和服務(wù)器端COM應(yīng)用的創(chuàng)建;l COM通過注冊表查找本地服務(wù)器和EXE程序,以及程序名與CLS
23、ID(Class Identifier)的轉(zhuǎn)換等;l 提供了一種標準的內(nèi)存控制方法,使應(yīng)用程序可以控制進程中內(nèi)存的分配。9.3.1什么是什么是COMl COM有以下特性:l COM是一種規(guī)范。COM規(guī)范描述了為創(chuàng)建能共同操作的組件而必須遵守的標準。這個標準描述了COM是什么和它們是如何運轉(zhuǎn)的,以及說明了如何可動態(tài)交替更新組件。l COM是一套服務(wù)。COM規(guī)范是由一套服務(wù)或API來支持的。COM庫提供這些服務(wù),它們是WIN32平臺操作系統(tǒng)的一部分并且可用于當作其他操作系統(tǒng)的一個單獨的包。l COM是面向?qū)ο蟮?。COM組件對象有標識、狀態(tài)和行為。l COM能夠容易的用戶化和升級你的應(yīng)用程序。COM
24、組件動態(tài)地相互聯(lián)結(jié),并且COM定義了定位其他組件和鑒定其功能的標準。因此,組件可以交換而不必重新編譯整個應(yīng)用程序。l COM能夠分布式應(yīng)用。位置透明性是COM的特性之一。這使得你可以編寫COM組件而不必考慮它們的位置。組件可以移動而不要求對使用它們的應(yīng)用程序作任何改變。l COM組件可以用任何語言編寫。任何能夠處理二進制語言都能用于創(chuàng)建COM對象。能創(chuàng)建組件的語言和工具包括C/C+、JAVA、Visual Basic和Visual C+等。 9.3.1什么是什么是COMl 使用COM帶來的好處是多方面的: l 即插即用。使用組件的最大好處首先是可以將它們動態(tài)的插入或卸出應(yīng)用系統(tǒng),是真正意義上的
25、軟件模塊即插即用。組件可以在運行時刻,在不被重新鏈接或編譯應(yīng)用程序的情況下,可以將系統(tǒng)中的組件用新的組件替換掉,以便即時方便地進行系統(tǒng)的升級和定制。這樣做的最大好處是程序員可以利用最新的技術(shù)寫出的最新組件取代以有的舊組件而整個系統(tǒng)的其他部分不需要一點改動。應(yīng)用程序可以隨新組件不斷取代舊的組件而漸趨完善且健壯。而且利用已有的組件,用戶還可以快速的建立全新的應(yīng)用。l 二進制重用。按照COM規(guī)范,組件可以在多個應(yīng)用系統(tǒng)中重復(fù)利用同一組件。l 分布式應(yīng)用。利用COM/DCOM組件技術(shù),可以方便的將應(yīng)用系統(tǒng)擴展到網(wǎng)絡(luò)環(huán)境下。l COM與語言無關(guān)??梢允褂枚喾N語言編寫COM組件,如Delphi、Visua
26、l Basic等,這使得程序員可以利用自己擅長的語言來編寫組件,而無須學習其他專門的語言來編寫組件。l COM與平臺無關(guān)。利用已編寫的組件可以在不同的操作系統(tǒng)平臺下開發(fā)軟件。9.3.1什么是什么是COMl COM服務(wù)端組件可分為三類:l 進程內(nèi)組件,進程內(nèi)服務(wù)器是裝入客戶端的進程空間內(nèi)的組件,即客戶程序和組件程序在同一個進程地址空間內(nèi)。在客戶端和服務(wù)端組件間有大量數(shù)據(jù)轉(zhuǎn)移操作的情況下是理想的。進程內(nèi)服務(wù)器會更快地裝載。由于它占用和客戶端應(yīng)用程序同樣的地址空間,它可以與客戶端更快的通信。進程內(nèi)服務(wù)器是通過將組件作為動態(tài)連接庫(DLL)的形式來實現(xiàn)的。DLL允許特定的一套功能以分離于可執(zhí)行的、以D
27、LL為擴展名的文件進行存儲。只有當程序需要它們時,DLL才將其裝入內(nèi)存中,客戶程序?qū)⒔M件程序加載到自己的進程地址空間后再調(diào)用組件程序的函數(shù)。l 本地(即進程外)組件,進程外組件指客戶程序和組件程序分別處在不同的進程空間地址中。進程外服務(wù)器對需要運行于獨立的處理空間或作為獨立客戶端應(yīng)用程序的線程的組件是理想的。這種服務(wù)器的類型自身是EXE,因此具有獨立的進程的資格。由于數(shù)據(jù)必須從一個地址空間移到另一個地址空間,因此這些服務(wù)器就會慢得多。由于進程外服務(wù)器是可執(zhí)行的,它們運行在自己的線程內(nèi)。當客戶端代碼正在執(zhí)行時,客戶端不鎖住服務(wù)器。進程外服務(wù)器對需要表現(xiàn)為獨立的應(yīng)用程序的組件也是理想的。例如,Mi
28、crosoft Internet Explorer的應(yīng)用程序是本地服務(wù)器的例子??蛻舳撕头?wù)端的通信是通過進程內(nèi)的通信協(xié)議進行的,這個通信協(xié)議是IPC。9.3.1什么是什么是COMl 遠程組件,遠程服務(wù)器與本地服務(wù)器類似,除了遠程服務(wù)器是運行在通過網(wǎng)絡(luò)連接的分離的計算機上。這種功能是使用DCOM實現(xiàn)的。DCOM的優(yōu)點在于它并不要求任何特別的編程來使具有功能。另外服務(wù)端和客戶端通信是通過RPC通信協(xié)議進行的。l 對于這三種不同的服務(wù)器組件,客戶程序和組件程序交互的內(nèi)在方式是完全不同的。但是對于功能相同的進程內(nèi)和進程外組件,從程序編寫的角度看,客戶程序是以同樣的方法來使用組件程序的,客戶程序不需要
29、做任何的修改。9.3.2 DCOM技術(shù)技術(shù) l Microsoft的分布式COM(DCOM)擴展了部件對象模型技術(shù)(COM),使其能夠支持在局域網(wǎng)、廣域網(wǎng)甚至Internet上不同計算機的對象之間的通信。使用DCOM,應(yīng)用程序就可以在位置上達到分布件,從而滿足客戶相應(yīng)用的需求。l 因為DCOM是世界上領(lǐng)先的部件技術(shù)COM的無縫擴展,所以可以將現(xiàn)在對基于COM的應(yīng)用、部件、工具以及知識轉(zhuǎn)移到標準化的分布式計算領(lǐng)域中來。當在做分布式計算時,DCOM處理網(wǎng)絡(luò)協(xié)議的低層次的細節(jié)問題,從而能夠使開發(fā)人員集中精力解決用戶所要求的問題。9.3.2 DCOM技術(shù)技術(shù) lDCOM的結(jié)構(gòu)的結(jié)構(gòu)l DCOM是部件對
30、象模型是部件對象模型(COM)的進一步擴展。的進一步擴展。COM定義下部件和它定義下部件和它們的客戶之間互相作用的方式。它使得部件和客戶端無需任何中介部們的客戶之間互相作用的方式。它使得部件和客戶端無需任何中介部件就能相互聯(lián)系??蛻暨M程直接調(diào)用部件中的方法。圖件就能相互聯(lián)系??蛻暨M程直接調(diào)用部件中的方法。圖9.6說明了部說明了部件對象模型的表示法。件對象模型的表示法。圖9.6 部件對象模型部件客戶9.3.2 DCOM技術(shù)技術(shù)l 當客戶進程和部件位于不同的機器時,DCOM僅僅只是用網(wǎng)絡(luò)協(xié)議來代替本地進程之間的通信。無論是客戶還是部件部不會知道連接它們的線路比以前長了許多。圖9.8顯示了DC0M的
31、整體結(jié)構(gòu):COM運行庫向客戶和部件提供了面向?qū)ο蟮姆?wù),并且使用RPC和安全機制產(chǎn)生符合DCOM線路協(xié)議標準的標準網(wǎng)絡(luò)包。圖9.8 DCOM:不同機器上的COM部件運行時COM郵件安全機制 DCE RPC協(xié)議??蛻暨\行時COM安全機制 DCE RPC 協(xié)議棧DCOM網(wǎng)絡(luò)協(xié)議9.3.2 DCOM技術(shù)技術(shù)l 位置獨立性 l DCOM的位置獨立性極大地簡化了將應(yīng)用部件分布化的任務(wù),使其能夠達到最合適的執(zhí)行效果。例如,設(shè)想某個部件必須位于某臺特定的機器上或某個特定的位置,并且此應(yīng)用有許多小部件,就可以通過將這些部件配置在同一個LAN上,或者同一臺機器上,甚至同一個進程中來減少網(wǎng)絡(luò)的負載。當應(yīng)用是由比較
32、少的大部件構(gòu)成時,網(wǎng)絡(luò)負載并不是問題,此時可以將部件放在速度快的機器上,而不用去管這些機器到底在哪兒。圖9.9顯示了相同的“有效性檢查部件”在兩種不同情況下是如何分別配置的。一種情況是當“客戶”機和“中間層”機器之間的帶寬足夠大時,它就配置在客戶機上;另一種情況是當客戶進程通過比較慢的網(wǎng)絡(luò)連接來訪問部件時,它又可配置在服務(wù)器上。9.3.2 DCOM技術(shù)技術(shù)圖9.9 位置獨立性商業(yè)規(guī)則部件客戶層后端中間層數(shù)據(jù)庫部件合法性部件合法性部件客戶用戶接口部件COMDCOMCOMDCOMCOM數(shù)據(jù)庫DCOM9.3.2 DCOM技術(shù)技術(shù)l 有了DCOM的位置獨立性,應(yīng)用系統(tǒng)可以將互相關(guān)聯(lián)的部件放到靠得比較近的機器上,甚至可以將它們放到同一臺機器上或同一個進程中。即使是由大量的小部件來完成一個具有復(fù)雜邏輯結(jié)構(gòu)的功能,它
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025玉石買賣合同標準版
- 2025文化長廊景觀改造合同書
- 宇觀商業(yè)策略探索之旅洞察太空經(jīng)濟的機遇
- 科技媒體融合引領(lǐng)內(nèi)容創(chuàng)新的未來趨勢
- 課題申報參考:考慮AI直播和政府補貼的電商供應(yīng)鏈決策研究
- 教育領(lǐng)域中的創(chuàng)新思維與商業(yè)創(chuàng)新
- 新時代下智慧農(nóng)場的技術(shù)與運營模式研究
- 2024年彩妝化妝品項目資金需求報告代可行性研究報告
- 火災(zāi)應(yīng)急救援中的協(xié)同作戰(zhàn)策略探討
- 儀器儀表在智能養(yǎng)老中的應(yīng)用考核試卷
- 山東鐵投集團招聘筆試沖刺題2025
- 真需求-打開商業(yè)世界的萬能鑰匙
- 2025年天津市政集團公司招聘筆試參考題庫含答案解析
- GB/T 44953-2024雷電災(zāi)害調(diào)查技術(shù)規(guī)范
- 2024-2025學年度第一學期三年級語文寒假作業(yè)第三天
- 2024年列車員技能競賽理論考試題庫500題(含答案)
- 心律失常介入治療
- 《無人機測繪技術(shù)》項目3任務(wù)2無人機正射影像數(shù)據(jù)處理
- 6S精益實戰(zhàn)手冊
- 展會場館保潔管理服務(wù)方案
- 監(jiān)理從業(yè)水平培訓課件
評論
0/150
提交評論