Tongweb及中間件技術培訓課件_第1頁
Tongweb及中間件技術培訓課件_第2頁
Tongweb及中間件技術培訓課件_第3頁
Tongweb及中間件技術培訓課件_第4頁
Tongweb及中間件技術培訓課件_第5頁
已閱讀5頁,還剩63頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

Tongweb及中間件技術培訓

Tongweb及中間件技術培訓一、中間件的定義顧名思義,中間件是處于應用軟件和系統軟件之間的一類軟件,是獨立于硬件或數據庫廠商(處于其產品的中間,實現其互連)的一類軟件,是客戶方與服務方之間的連接件,是需要進行二次開發的中間產品。應該說,中間件技術是伴隨網絡而發展起來的一種面向對象的技術。以前的計算機系統多是單機系統,多個用戶是通過聯機終端來訪問的,沒有網絡的概念。網絡出現后,產生了Client/Server的計算服務模式,多個客戶端可以共享數據庫服務器和打印服務器等等。隨著網絡的更進一步發展,許多軟件需要在不同廠家的網絡產品、硬件平臺、網絡協議異構環境下運行,應用的規模也從局域網發展到廣域網。在這種情況下,Client/Server模式的局限性也就暴露出來了,于是中間件應運而生。中間件是位于操作系統和應用軟件之間的通用服務,它的主要作用是用來屏蔽網絡硬件平臺的差異性和操作系統與網絡協議的異構性,使應用軟件能夠比較平滑地運行于不同平臺上。同時中間件在負載平衡、連接管理和調度方面起了很大的作用,使企業級應用的性能得到大幅提升,滿足了關鍵業務的需求。

Tongweb及中間件技術培訓一、中間件的定義

如今,市場上又推出了很多新的概念,例如三層結構、構件、Web服務,其中風頭最勁的當屬SOA(面向服務的架構)。實際上,他們都不是一個產品,而是一種技術的實現方法,是開發一個軟件的一種方法論。我們知道,最早軟件開發方法就是編程、寫代碼的,其缺點在于無法復用,為此提出了構件化的軟件開發方法,通過把編程中一些常用功能進行封裝,并規范統一接口,供其它程序調用,例如我們開發一個新軟件,可能要用到構件1、構件2、構件3,那么,我們只要對其進行本地組裝,就可以得到我們想要的應用軟件。在互聯網得到普及重視之后,軟件開發方法在構件化基礎上又有新發展,核心思想是軟件并不需要囊括構件,所需要的僅僅是構件的運行結果,例如編寫一個通信傳輸軟件,就可以到網上尋找構件,并提出服務請求,得到結果后返回,而不需要下載構件并打包,這就是現在所說的SOA。想要現實SOA,就要規范構件接口,同時還要規范構件所提交的服務結果,而實現這種方法的基礎,如今看來只有中間件。

Tongweb及中間件技術培訓一、中間件的定義

中間件是一種獨立的軟件系統或服務程序,分布式應用軟件借助其在不同的技術之間共享資源。中間件就是位于操作系統和應用軟件之間的一個軟件層,它向各種應用軟件提供服務,使不同的應用進程能在屏蔽掉平臺差異的情況下,通過網絡互相通信。

Tongweb及中間件技術培訓一、中間件的定義

應用應用應用編程接口(API)中間件平臺接口平臺接口操作系統硬件平臺操作系統硬件平臺

Tongweb及中間件技術培訓二、中間件的分類

中間件所包括的范圍十分廣泛,針對不同的應用需求涌現出多種各具特色的中間件產品。但至今中間件還沒有一個比較精確的定義,因此,在不同的角度或不同的層次上,對中間件的分類也會有所不同。由于中間件需要屏蔽分布環境中異構的操作系統和網絡協議,它必須能夠提供分布環境下的通訊服務,我們將這種通訊服務稱之為平臺。基于目的和實現機制的不同,我們將平臺分為以下主要幾類:

遠程過程調用中間件、數據庫中間件、消息中間件、基于對象請求代理的中間件、事務處理中間件

Tongweb及中間件技術培訓二、中間件的分類

1)遠程過程調用中間件遠程過程調用是一種廣泛使用的分布式應用程序處理方法。一個應用程序使用RPC來“遠程”執行一個位于不同地址空間里的過程,并且從效果上看和執行本地調用相同。事實上,一個RPC應用分為兩個部分:server和client。server提供一個或多個遠程過程;client向server發出遠程調用。server和client可以位于同一臺計算機,也可以位于不同的計算機,甚至運行在不同的操作系統之上。它們通過網絡進行通訊。相應的stub和運行支持提供數據轉換和通訊服務,從而屏蔽不同的操作系統和網絡協議。在這里RPC通訊是同步的。采用線程可以進行異步調用。

Tongweb及中間件技術培訓二、中間件的分類

1)遠程過程調用中間件

在RPC模型中,client和server只要具備了相應的RPC接口,并且具有RPC運行支持,就可以完成相應的互操作,而不必限制于特定的server。因此,RPC為client/server分布式計算提供了有力的支持。同時,遠程過程調用RPC所提供的是基于過程的服務訪問,client與server進行直接連接,沒有中間機構來處理請求,因此也具有一定的局限性。比如,RPC通常需要一些網絡細節以定位server;在client發出請求的同時,要求server必須是活動的等等。

Tongweb及中間件技術培訓二、中間件的分類

2)數據庫中間件

數據庫中間件:支持對數據庫存取的編程,可以使用存儲過程。如:ODBC,JDBC。

Tongweb及中間件技術培訓二、中間件的分類

3)面向消息的中間件

對應用程序的結構沒有約束:在復雜的應用場合中,通訊程序之間不僅可以是一對一的關系,還可以進行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構造并沒有增加應用程序的復雜性。

程序與網絡復雜性相隔離:

程序將消息放入消息隊列或從消息隊列中取出消息來進行通訊,與此關聯的全部活動,比如維護消息隊列、維護程序和隊列之間的關系、處理網絡的重新啟動和在網絡中移動消息等是MOM的任務,程序不直接與其它程序通話,并且它們不涉及網絡通訊的復雜性。

Tongweb及中間件技術培訓二、中間件的分類

4)基于對象請求代理的中間件

隨著對象技術與分布式計算技術的發展,兩者相互結合形成了分布對象計算,并發展為當今軟件技術的主流方向。1990年底,對象管理集團OMG首次推出對象管理結構OMA(ObjectManagementArchitecture),對象請求代理(ObjectRequestBroker)是這個模型的核心組件。它的作用在于提供一個通信框架,透明地在異構的分布計算環境中傳遞對象請求。CORBA規范包括了ORB的所有標準接口。1991年推出的CORBA1.1定義了接口描述語言OMGIDL和支持Client/Server對象在具體的ORB上進行互操作的API。CORBA2.0規范描述的是不同廠商提供的ORB之間的互操作。

對象請求代理(ORB)是對象總線,它在CORBA規范中處于核心地位,定義異構環境下對象透明地發送請求和接收響應的基本機制,是建立對象之間

Tongweb及中間件技術培訓二、中間件的分類

4)基于對象請求代理的中間件client/server關系的中間件。ORB使得對象可以透明地向其他對象發出請求或接受其他對象的響應,這些對象可以位于本地也可以位于遠程機器。ORB攔截請求調用,并負責找到可以實現請求的對象、傳送參數、調用相應的方法、返回結果等。client對象并不知道同server對象通訊、激活或存儲server對象的機制,也不必知道server對象位于何處、它是用何種語言實現的、使用什么操作系統或其他不屬于對象接口的系統成分。

值得指出的是client和server角色只是用來協調對象之間的相互作用,根據相應的場合,ORB上的對象可以是client,也可以是server,甚至兼有兩者。當對象發出一個請求時,它是處于client角色;當它在接收請求時,它就處于server角色。大部分的對象都是既扮演client角色又扮演server角色。另外由于ORB負責對象請求的傳送和server的管理,client和server之間并不直接連接,因此,與RPC所支持的單純的Client/Server結構相比,ORB可以支持更加復雜的結構。

Tongweb及中間件技術培訓二、中間件的分類

5)事務處理監控中間件

通訊管理,為client和server之間提供了多種通訊機制,包括請求響應、會話、排隊、訂閱發布和廣播等。

事務處理監控能夠為大量的client提供服務,比如飛機定票系統。如果server為每一個client都分配其所需要的資源的話,那server將不堪重負(如圖2所示)。但實際上,在同一時刻并不是所有的client都需要請求服務,而一旦某個client請求了服務,它希望得到快速的響應。事務處理監控在操作系統之上提供一組服務,對client請求進行管理并為其分配相應的服務進程,使server在有限的系統資源下能夠高效地為大規模的客戶提供服務。

Tongweb及中間件技術培訓二、中間件的分類

5)事務處理監控中間件

Tongweb及中間件技術培訓三、當前主要的中間件技術支持平臺

軟件系統的復雜性不斷增長、軟件人員的頻繁流動和軟件行業的激烈競爭迫使軟件企業提高軟件質量、積累和固化知識財富,并盡可能地縮短軟件產品的開發周期。于是集軟件復用、分布式對象計算、企業級應用開發等技術為一體的“基于中間件的軟件開發”(CBSD,ComponentBasedSortwareDevelopment)應運而生,這種技術以軟件架構為組裝藍圖,以可復用軟件構件為組裝模塊,支持組裝式軟件的復用,大大提高了軟件生產效率和軟件質量。為此國風外對于這一技術的研究正在不斷深入,同時大型的軟件公司(例如sun,microsoft)及軟件組織機構(OMG)都推出了支持中間件技術的軟件平臺。當前支持服務器端中間件技術的平臺

考察當前主流的分布計算技術平臺,主要有OMG的CORBA、Sun的J2EE和MicrosoftDNA2000。它們都是支持服務器端中間件技術開發的平臺,但都有其各自的特點,將分別闡述如下:

Tongweb及中間件技術培訓三、當前主要的中間件技術支持平臺

CORBA規范的近期發展,增加了面向Internet的特性,服務質量控制和CORBA構件模型(CORBAComponentModel)。

Internet集成特性包括了針對IIOP傳輸的防火墻(Firewall)和可內部操作的定義了URL命名格式的命名服務(NamingService)。

服務質量控制包括能夠具有質量控制的異步消息服務,一組針對嵌入系統的CORBA定義,一組關于實時CORBA與容錯CORBA的請求方案。

CORBACCM(CORBAComponentModel)技術,是在支持POA的CORBA規范(版本2.3以后)基礎上,結合EJB當前規范的基礎上發展起來的。CORBA構件模型,是OMG組織制定的一個用于開發和配置分布式應用的服務器端中間件模型規范,它主要包括如下三項內容:

Tongweb及中間件技術培訓三、當前主要的中間件技術支持平臺

a.抽象構件模型,用以描述服務器端構件結構及構件間互操作的結構;

b.構件容器結構,用以提供通用的構件運行和管理環境,并支持對安全、事務、持久狀態等系統服務的集成;

c.構件的配置和打包規范,CCM使用打包技術來管理構件的二進制、多語言版本的可執行代碼和配置信息,并制定了構件包的具體內容和基于XML的文檔內容標準。

總之,CORBA的特點是大而全,互操作性和開放性非常好。CORBA的缺點是龐大而復雜,并且技術和標準的更新相對較慢,COBRA規范從1.0升級到2.0所花的時間非常短,而再往上的版本的發布就相對十分緩慢了。在具體的應用中使用不是很多。

Tongweb及中間件技術培訓三、當前主要的中間件技術支持平臺

2)Sun的J2EE

為了推動基于Java的服務器端應用開發,Sun于是在1999年底推出了Java2技術及相關的J2EE規范,J2EE的目標是:提供平臺無關的、可移植的、支持并發訪問和安全的,完全基于Java的開發服務器端中間件的標準。

在J2EE中,Sun給出了完整的基于Java語言開發面向企業分布應用規范,其中,在分布式互操作協議上,J2EE同時支持RMI和IIOP,而在服務器端分布式應用的構造形式,則包括了JavaServlet、JSP(JavaServerPage)、EJB等多種形式,以支持不同的業務需求,而且Java應用程序具有“Writeonce,runanywhere”的特性,使得J2EE技術在發布計算領域得到了快速發展。

J2EE簡化了構件可伸縮的、其于構件服務器端應用的復雜度,雖然DNA2000也一樣,但最大的區別是DNA2000是一個產品,J2EE是一個規范,不同的廠家可以實現自己的符合J2EE規范的產品,J2EE規范,是眾多廠家參與制定的,它不為Sun所獨有,而且其支持跨平臺的開發,目前許多大的分布計算平臺廠商都公開支持與J2EE兼容技術。

Tongweb及中間件技術培訓三、當前主要的中間件技術支持平臺

從Internet技術應用的角度,EJB和Servlet,JSP一起成為新一代應用服務器的技術標準,EJB中的Bean可以分為會話Bean和實體Bean,前者維護會話,后者處理事務,現在Servlet負責與客戶端通信,訪問EJB,并把結果通過JSP產生頁面傳回客戶端。

J2EE的優點是,服務器市場的主流還是大型機和UNIX平臺,這意味著以Java開發構件,能夠做到"Writeonce,runanywhere",開發的應用可以配置到包括Windows平臺在內的任何服務器端環境中去。

Tongweb及中間件技術培訓三、當前主要的中間件技術支持平臺

3)MicrosoftDNA2000

MicrosoftDNA2000(DistributedinterNetApplications)是Microsoft在推出Windows2000系列操作系統平臺基礎上,在擴展了分布計算模型,以及改造BackOffice系列服務器端分布計算產品后發布的新的分布計算體系結構和規范。

在服務器端,DNA2000提供了ASP、COM、Cluster等的應用支持。目前,DNA2000在技術結構上有著巨大的優越性。一方面,由于Microsoft是操作系統平臺廠商,因此DNA2000技術得到了底層操作系統平臺的強大支持;另一方面,由于Microsoft的操作系統平臺應用廣泛,支持該系統平臺的應用開發廠商數目眾多,因此在實際應用中,DNA2000得到了眾多應用開發商的采用和支持。

DNA2000融合了當今最先進的分布計算理論和思想,如事務處理、可伸縮性、異步消息隊列、集群等內容。DNA使得開發可以基于Microsoft平臺的服務器構件應用,其中,如數據庫事務服務、異步通訊服務和安全服務等,都由底層的分布對象系統提供。

Tongweb及中間件技術培訓四、當前主流的中間件技術的對比分析

可擴展性:集成框架必須是可擴展的,能夠協調不同的設計模式和實現策略,可以根據企業計算的需求進行裁剪,并能迅速反應市場的變化和技術的發展趨勢。通過保證當前應用的可重用性,最大程度地保護企業的投資。

中間件技術——

對象請求代理(ORB)詳細說明一、ORB結構ORB是一個中間件(middleware),它可以建立對象之間的client/server關系。通過ORB,一個client可以透明的引用同一臺機器上或網絡上的一個server對象的方法。ORB解釋該調用并負責查找一個實現該請求的對象,找到后,把參數傳給該對象,調用它的方法,最后返回結果。client并不清楚該對象的位置,它的編程語言,它的操作系統以及其它不是對象接口的系統信息。ORB能實現分布環境中位于不同機器上的應用之間的互操作以及多對象系統之間的無縫連接。在傳統的client/server)應用中,開發者使用自己設計的標準或通用標準來定義設備之間的協議。協議定義與實現的語言、網絡傳輸及其它因素有關。ORB簡化了這一過程,它使用IDL來定義應用接口之間的協議。ORB允許程序員選擇通用操作系統,運行環境和編程語言。更重要的是,它能集成現存元素。

對象請求代理(ORB)詳細說明一、ORB結構

圖1通過ORB傳遞請求通過ORB傳遞請求

對象請求代理(ORB)詳細說明一、ORB結構

圖1顯示了一個client向對象實現發送一個請求。Client是一個想對對象進行操作的一個實體,對象實體是實現對象的代碼和數據。ORB負責根據一個請求來定位一個對象,安排對象實現準備接受請求,與請求的數據通訊。Client的接口與對象的位置完全,實現對象的語言及其它不在對象接口反映出來的方面等無關。圖2顯示了單個ORB的結構。用斜條文的矩形框表示ORB的接口,箭頭表示調用ORB或ORB使用接口把信息向上傳遞。

對象請求代理(ORB)詳細說明一、ORB結構

圖2ORB接口結構

對象請求代理(ORB)詳細說明一、ORB結構Clinet使用DynamicInvocationinterface(與目標對象的接口無關)或OMGIDLstub(與目標對象接口有關的stub)來發出請求。由于某種原因,Client也可以直接與ORB聯系。對象實現使用OMGIDL生成的skeleton或動態skeleton以向上傳送(up-call)的方式接受請求。對象實現也可以調用ObjectAdapter和ORB。可以用兩種方式來定義對象接口:一是用OMGInterfaceDefinitionLanguage(OMGIDL)來定義接口。該語言根據可能對對象進行的操作和這些操作使用的參數來定義對象類型。第二種方法是,把接口(interface)放入InterfaceRepositoryservice中;該服務把接口中的元素描述成一個對象。任何能實現ORB的軟件中,InterfaceDefinitionLanguage(可能根據文檔的內容而改變)和InterfaceRepository具有相同的作用。一個client要使用ObjectReference完成請求,它必須知道對象的類型的及具體的操作。Client初始化請求有兩種方法,一是通過調用目標對象的stubroutines,二是動態的創造請求(如圖3所示)。

對象請求代理(ORB)詳細說明一、ORB結構

圖3Client使用Stub或DynamicInvocationInterface

對象請求代理(ORB)詳細說明一、ORB結構

不論使用Stub還是DynamicInvocationInterface來發出請求具有相同的語義,信息的接收者不能分辨出該請求是使用哪種方法來傳遞的。ORB確定適當的實現代碼,傳遞參數,通過IDLskeleton或dynamicskeleton(如圖Figure4所示)把控制傳給ObjectImplementation。每一個接口和objectadapter使用不同的Skeletons。為了完成請求,objectimplementation可能通過ObjectAdapter使用來自ORB的服務。當完成請求后,控制和輸出結果返回給client。

圖4ObjectImplementation接受請求

對象請求代理(ORB)詳細說明一、ORB結構

ObjectImplementation選擇使用何種ObjectAdapter。它是根據ObjectImplementation需要服務的種類來確定的。圖5顯示了clients和objectimplementations如何使用接口和實現信息。用OMGIDL或InterfaceRepository來定義接口;該定義用于產生clientStubs和objectimplementationSkeletons。

圖5Interface和ImplementationRepositories

對象請求代理(ORB)詳細說明一、ORB結構

在安裝時把objectimplementation信息放入ImplementationRepository中,以備請求使用。

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

CORBAORB結構

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

1)ObjectImplementation(對象實現):它定義了實現一個CORBAIDL接口的操作。它可以用各種語言來寫,如C,C++,Java,Smalltalk和Ada。

典型的ObjectImplementation結構

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

2)Client(客戶):這是一個程序實體,它調用了某一個對象實現中操作。對調用這來講,訪問遠程對象server應該是透明的。它應該和調用對象中的方法一樣簡單,如,obj->op(args)。

Client只能根據對象的接口了解對象的邏輯結構,雖然,我們一般都把client看作是一個程序或一個進程,但是,知道一個client都是某一個對象有關的。例如,一個對象的實現可能是其他對象的client。

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

典型的Client結構

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

Client通過語言映射(languagemapping)來使用對象和ORB接口。當這種映射關系改變時,不需要改變Client。Client不需要了解對象的實現方式,對象適配器及ORB。

3)ObjectRequestBroker(ORB):

ORB提供了一種機制,能實現client請求與目標對象實現之間的透明通信。它使得client請求就象一個本地過程調用一樣。當一個client引用一個操作,ORB負責找到對象實現,如果需要則透明的激活它,然后把該請求遞交給該對象,最后返回應答給調用者。實現時,可以把ORB不作為單個成分,但它只能由它的接口來定義。任何ORB實現方式提供的接口都是可以接受的。可以把接口中的操作分為三類:

1.對于所有的ORB實現都一樣的操作

2.特定類型對象的操作

3.與對象實現種特定類別有關的操作

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

不同的ORB有不同的實現方式,但都包括有:IDL編譯器,倉庫(repositories),各種ObjectAdapters,給client提供各種服務集,具有不同屬性的對象實現等。

現在有各種不同的ORB實現。一個client可以同時訪問兩個由不同ORB實現管理的對象引用(objectreferences)當這兩個ORB需要一起工作時,它們能區分出各自的對象引用。Client不需要對此負責。ORBCore是ORB的一個組成部分,它提供對象的基本表示和與請求的通信。

有四種不同類型的ORB:

1.Client-andImplementation-residentORB

2.Server-basedORB

3.System-basedORB

4.Library-basedORB

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

ORBInterface:

一個ORB是一個邏輯實體(logicalentity),它可以用各種方法實現(如一個或多個過程,或一個libraries集合)。為了減輕編寫程序的困難,CORBA規范定義了一個抽象的接口。該接口提供各種幫助函數。

CORBAIDLstubsandskeletons:

它相當于client、server應用程序和ORB之間的“膠水”。由CORBAIDL編譯器自動實現CORBAIDL定義與目標編程語言之間的轉換。

使用編譯器可以減少clientstub和serverskeletons之間的潛在矛盾。

DynamicInvocationInterface(DII):

該接口允許client直接調用ORB所提供得最底層的請求機制。應用程序使用DII動態地把請求傳給對象而不需要IDL接口(包括特定stub)。與IDLstub(它只允許RPC模式的請求)不同,DII也允許clients使用無塊的延遲同步調用(non-blockingdeferredsynchronous)(發送操作是獨立的)和單向調用(send-only)。

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

DynamicSkeletonInterface(DSI):

與client端的DII類似的,位于server端的接口。DSI允許ORB把請求發送給對象實現,該對象實現不包含編譯時所需要的類型。發出請求的client不知道該實現是使用指定類型的IDLskeletons還是使用動態的skeletons。

ObjectAdapter:

它幫助ORB把請求傳給對象并激活該對象。更重要的是一個objectadapter總是與一個對象實現(objectimplementations)聯系的。Objectadapter可以被定義來支持特定的對象實現類型(如OODBobjectadapters用于持續對象(persistence)而libraryobjectadapters用于非遠程對象)。

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

典型的ObjectAdapter結構

對象請求代理(ORB)詳細說明三、ORB的系統集成

不同對象系統集成的方法

對象請求代理(ORB)詳細說明四、ORB的互操作性

ORB的互操作性提供了種易于理解的、方便的途徑來支持網絡中的對象,這些對象由多樣的,不同種類的(與CORBA兼容的)ORB管理。由于CORBA中的元素能以很多方式結合在一起以滿足各種不同的需要,因此取得“interORBability”的方法很方便。

1)支持互操作的元素

能支持互操作的元素有::

1.ORB互操作結構

2.Inter-ORB橋支持(bridgesupport)

3.GeneralandInternetinter-ORBProtocols(GIOPsandIIOPs)

而且,該結構還支持environment-specificinter-ORBprotocols(ESIOP),它能優化特定領域如DCE)

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

2)ORB互操作結構

該結構引入了ORB域中immediateandmediatedbridging(直接橋接和間接橋接)這兩個概念。IIOP是廣域網橋接的基礎。而inter-ORB橋接既能用于直接橋接,也能用于“半橋接”,使用半橋接能搭建用于間接橋接。使用這些橋接技術,ORB能互操作,而不需要知道彼此的實現細節,如,使用何種特殊的IPC或協議(如ESIOP)來實現CORBA規范。

使用能用IIOP通訊的“半橋接”,兩個或多個ORB能相互橋接在一起。這種方法既能用于單機ORB,也能用于網絡ORB如ESIOP。IIOP也能用于實現ORB中的內部消息機制。

3)Inter-ORBBridgeSupport

互操作結構明確指出ORB中不同域的作用,這些域包括對象引用域(objectreferencedomain),類型域(typedomain),安全域(safetydomain)(如thescopeofaPrincipalidentifier),事物域(transactiondomain)等等。

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

當兩個ORB位于同一個域中,它們能直接通訊,多數情況下,這是一個很好的方法。但由于各個機構需要建造各自控制域,因此,這種方法不常使用。當需要的信息離開它的域時,就必須使用橋接來傳遞信息。橋接的作用是確保信息能完整的從一個ORB映射到另一個ORB。inter-ORB橋接支持也能提供與非CORBA系統(如Microsoft’sComponentObjectModel(COM))之間的互操作。

4)GeneralInter-ORBProtocol(GIOP)

GeneralInter-ORBProtocol(GIOP)元件提供了一個標準傳輸語法(低層數據表示方法)和ORB之間通信的信息格式集。GIOP只能用在ORB與ORB之間,而且,只能在符合理想條件的面向連接傳輸協議中使用。它不需要使用更高一層的RPC機制。這個協議是簡單的(盡可能簡單,但不是簡單化),可升級的,使用方便。它被設計為可移動的、高效能的表現、較少依靠其它的低層傳輸協議。當然,由于不同傳輸使用不同版本的GIOP,它們可能不能直接協作工作,但它能很容易的連接網絡域。

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

5)InternetInter-ORBProtocol(IIOP)

InternetInter-ORBProtocol(IIOP)元件指出如何通過TCP/IP連接交換GIOP信息。IIOP為Internet提供了一個標準的協作工作協議,它使兼容的ORB能基于現在流行的協議和產品進行“outofthebox”方式的協作工作。它也能被用于兩個半橋(half-bridges)之間的協議。該協議能用于任何ORB與IP(InternetProtocol)域之間的協作工作,除非ORB選擇了特殊的協議。這時,它是TCP/IP環境下基本的inter-ORB協議,最普遍的傳輸層。

IIOP與GIOP的關系就象特特殊語言與OMGIDL之間的關系;GIOP能被映射到不同層,它能指定協議。就象IDL不能見招完整的程序一樣,GIOP本身也不能提供完整的協作工作。IIOP和不同傳輸層上的其它相似映射,實現抽象的GIOP定義,如圖所示。

對象請求代理(ORB)詳細說明三、ORB的系統集成

Inter-ORBProtocol關系

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

6)Environment-SpecificInter-ORBProtocols(ESIOPs)

它為使用Environment-SpecificInter-ORBProtocols(ESIOPs)的條件提出了解決方案。Suchprotocolswouldbeusedfor“outofthebox”interoperationatusersiteswhereaparticularnetworkingordistributingcomputinginfrastructureisalreadyingeneraluse.Becauseoftheopportunitytoleverageandbuildonfacilitiesprovidedbythespecificenvironment,ESIOPsmightsupportspecializedcapabilitiessuchasthoserelatingtosecurityandadministration.WhileESIOPsmaybeoptimizedforparticularenvironments,allESIOPspecificationswillbeexpectedtoconformtothegeneralORBinteroperabilityarchitectureconventionstoenableeasybridging.Theinter-ORBbridgesupportenablesbridgestobebuiltbetweenORBdomainsthatusetheIIOPandORBdomainsthatuseaparticularESIOP.

對象請求代理(ORB)詳細說明三、ORB的系統集成7)Domain(域)

域把一個系統中的元素按照某種特征分成幾個部分。在本結構中,域是一個范圍,一個對象的集合,對象是域的成員,這些成員有共同的特征。可以把域看作是一個對象,它本生也可能是其它域的一個成員。

各種類型的域

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件

CORBA中的域分為以下幾個部分:

Referencingdomain–對象引用范圍

Representationdomain–信息傳輸語法和協議范圍

Networkaddressingdomain–網絡地址范圍

Networkconnectivitydomain–可能的網絡信息范圍

Securitydomain–特殊安全策略

Typedomain–特殊標識符范圍

Transactiondomain–特定事物服務范圍

有兩種方式使用域:一是嵌入,一個域包括在另一個域中;二是聯合,兩個域聯合起來使用。當兩個域的邊界上發生交互作用時,就需要使用一種映射機制(如橋接)在邊界處傳遞相關元素。這里有兩種方法,一是間接橋接(mediatedbridging),一是直接橋接(immediatebridging)。

對象請求代理(ORB)詳細說明三、ORB的系統集成

兩種橋接技術,都用于兩個域之間

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件7.1MediatedBridging

使用間接橋接時,在每一個域的邊界上,以一種協商的、通用的格式來傳遞與域有關的元素。可以從以下幾個方面來觀察間接橋接:

(1)公共格式的應用范圍可能與兩個ORB/域的私下約定不同。

(2)可能有多個公共格式,每一種格式對應一個應用目的。

(3)如果有多個可供選擇的公共格式,選擇方式可以分為兩種,一是靜態選擇(兩個ORB開發商之間),二是動態選擇(每一個對象各自選擇)。

(4)這種方法隨著嵌入式編譯(與stub相比)或普通的庫代碼(如加密例程)的不同,它的格式不同

7.2ImmediateBridging

使用直接橋接時,在每一個域的邊界上,相關的元素直接從一個域的內部格式轉到另一個域的內部格式。

可以從以下幾個方面來觀察間接橋接:

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件1)這種方法有被優化的可能性(這時交互不通過第三方)但它是以犧牲靈活性和通用性來取得的。

2)一般只當需要在與邊界傳遞純管理(不交換技術)才使用這種方法。例如,當需要在兩個相似ORB的安全管理域傳遞消息時,就不需要使用通用的間接標準。

綜上所述,當兩個ORB/域使用私有機制時,就比較難于區分這兩種方法。

7.3Inter-DomainFunctionality的位置

從邏輯上講,不論是間接橋接還是直接橋接,只要是域間橋(inter-domainbridge),它在兩個域中都有元素。但是,一方面,域可以跨越ORB邊界,而ORB也可以跨越機器和系統邊界;另一方面,一個機器或一個進程可能跨越多個ORB。

對象請求代理(ORB)詳細說明二、ORB結構中的主要構件從工程學的角度來講,這意味著一個域間橋中的元素根據ORB或系統的不同而采取分散或同處的分布方式。例如,如果一個ORB包括兩個安全域,那么,域間橋就可以在ORB的內部實現。同樣的,也可能在一個進程或系統中實現兩個ORB或域間的橋。從工程學來講,這種情況下,域間橋是有限的,它局限于單個系統或進程。如果所有的橋都用這種方式實現,那么系統或進程之間的協作只能在單個域或ORB中發生。7.4橋接級別(BridgingLevel)

橋接可以在ORB級或更高以及實現。它們分別叫做嵌入(in-line)級橋接和請求級(request-level)橋接。請求級橋接使用CORBAAPI,包括使用DynamicSkeletonInterface,來接受和流出(issue)請求。但是,也存在“implicitcontext”類,它與某些引用聯合起來,持有如事物信息和安全信息等的ORB

溫馨提示

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

評論

0/150

提交評論