版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
中間件技術(shù)課程介紹
課程設(shè)置目標(biāo)了解中間件中間件的開發(fā)原理,如何開發(fā)中間件在中間件上進(jìn)行開發(fā)相關(guān)的工業(yè)標(biāo)準(zhǔn)例如CORBA、EJB、WebService等參考張云勇,中間件技術(shù)原理與應(yīng)用,清華大學(xué)出版社,2004李華飚,
Java中間件技術(shù)及其應(yīng)用開發(fā),水利水電出版社,2007S.TanenbaumandM.V.Steen,分布式系統(tǒng):PrinciplesandParadigms,第一版,PrenticeHall,2002,ISBN:0130888931.ReferenceBooks:
G.Coulouris,J.Dollimore,和T.Kindberg,分布式系統(tǒng):ConceptsandDesign,3rdEdition,Addison-Wesley,2000,ISBN:0201619180.初步知識開放系統(tǒng)互操作性中間件遠(yuǎn)地過程調(diào)用分布式計算環(huán)境開放系統(tǒng)及互操作性開放系統(tǒng)概述:網(wǎng)絡(luò)技術(shù)發(fā)展使得用戶的應(yīng)用環(huán)境變得異常復(fù)雜繁多的硬件系統(tǒng)不同的操作系統(tǒng)和應(yīng)用軟件用戶環(huán)境的復(fù)雜性和多樣性導(dǎo)致了開放系統(tǒng)技術(shù)的出現(xiàn)信息處理系統(tǒng)互連的需求不斷的增長,出現(xiàn)了分布式系統(tǒng)系統(tǒng)分布面臨的問題遠(yuǎn)程性:組件在空間上分散并發(fā)性:組件間并發(fā)的執(zhí)行無全局狀態(tài):分布系統(tǒng)的全局狀態(tài)不定部分失?。喝我唤M件失敗與其他組件無關(guān)異步性:通信和處理活動異步發(fā)生異質(zhì)性:多種技術(shù)的集合自主性:自主管理,若干控制當(dāng)局系統(tǒng)分布面臨的問題 (續(xù))聯(lián)合性:跨越多個自主實體伸縮性:在規(guī)模上是可伸縮的發(fā)展性:開放環(huán)境面對很多變化移動性:信息源,用戶在物理位置上移動開放環(huán)境具備的屬性開放的:可移植性和協(xié)同工作集成的:靈活模塊化可聯(lián)合的可管理滿足服務(wù)質(zhì)量安全提供透明性中間件概述定義中間件是一種軟件,他能使處于應(yīng)用層中的各應(yīng)用成分之間實現(xiàn)跨網(wǎng)絡(luò)的協(xié)同工作(也就是互操作)應(yīng)用軟件中間層網(wǎng)絡(luò)軟件操作系統(tǒng)應(yīng)用軟件中間層網(wǎng)絡(luò)軟件操作系統(tǒng)可協(xié)同工作中件服務(wù)并不能獨立構(gòu)造分布式系統(tǒng),它只是在原有的操作系統(tǒng)和語言基礎(chǔ)之上為分布應(yīng)用提供互操作能力,在最終實現(xiàn)時,仍需要傳統(tǒng)程序設(shè)計語言和操作系統(tǒng)的支持。
開發(fā)模式的變化Win2KLinuxLynxOSSolarisVxWorksMiddlewareMiddlewareServicesMiddlewareApplicationsMIDDLEWAREARCH21stCenturyRTPDNSHTTPUDPTCPIPTELNETEthernetATMFDDIFibreChannelFTPINTERNETWORKINGARCHTFTP20thCentury中間件定義(IDG)
中間件是基礎(chǔ)軟件,處于操作系統(tǒng)(或網(wǎng)絡(luò)協(xié)議)與分布式應(yīng)用之間,從而屏蔽操作系統(tǒng)(或網(wǎng)絡(luò)協(xié)議)的差異,實現(xiàn)分布式異構(gòu)系統(tǒng)之間的互操作。目前,對中間件還沒有形成一個統(tǒng)一的定義,比較公認(rèn)的IDC的定義是:中間件是一種獨立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡(luò)通信。中間件技術(shù)
最早具有中間件技術(shù)思想及功能的軟件是IBM在60年代開發(fā)的CICS(CustomerInformationControlSystem)。80年代初期,SunMicrosystems開發(fā)了一種最早的中間件,作為其開放網(wǎng)絡(luò)體系結(jié)構(gòu)的一部分,這種中間件是基于RPC協(xié)議的。但由于CICS不是分布式環(huán)境的產(chǎn)物,而SunMicrosystems開發(fā)的不是完整的中間件產(chǎn)品,因此人們一般把Tuxedo作為第一個嚴(yán)格意義上的中間件產(chǎn)品,Tuxedo是在1984年由AT&T的貝爾實驗室開發(fā)完成的。到90年代,中間件技術(shù)得到了巨大的發(fā)展和廣泛的應(yīng)用,出現(xiàn)了大量具有廣泛影響的中間件產(chǎn)品,如OMG的Corba、Microsoft的DCOM/COM+、IBM的MQS等。組成部分 執(zhí)行環(huán)境(ExecutionEnvironment)軟件簡稱EE軟件應(yīng)用開發(fā)(ApplicationDevelopment)工具簡稱AD工具中間件的分類 中間件的平臺由于中間件需要屏蔽分布環(huán)境中異構(gòu)的操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議,它必須能夠提供分布環(huán)境下的通訊服務(wù),我們將這種通訊服務(wù)稱之為平臺?;谀康暮蛯崿F(xiàn)機(jī)制的不同,我們將平臺分為以下主要幾類:
遠(yuǎn)程過程調(diào)用(RemoteProcedureCall)
面向消息的中間件(Message-OrientedMiddleware)
對象請求代理(ObjectRequestBrokers)中間件的分類 事務(wù)處理中間件(TPMonitor:TransactionProcessMonitor)消息中間件(MOM:Message-OrientedMiddleware)遠(yuǎn)程過程調(diào)用分布對象請求代理事務(wù)處理中間件事物務(wù)理中間件又叫“事務(wù)處理監(jiān)控程序”,最初是作為聯(lián)機(jī)事務(wù)處理應(yīng)用的支撐環(huán)境。事務(wù)處理中間件提供聯(lián)機(jī)事務(wù)處理所需要的通信、并發(fā)訪問控制、事務(wù)控制、資源管理、安全管理和其它必要的服務(wù)。事務(wù)處理中間件幾乎所有的功能與服務(wù)都被借用到Web應(yīng)用服務(wù)器之中并被標(biāo)準(zhǔn)化的固定下來。事務(wù)處理中間件的功能
進(jìn)程管理,包括啟動server進(jìn)程、為其分配任務(wù)、監(jiān)控其執(zhí)行并對負(fù)載進(jìn)行平衡。
事務(wù)管理,即保證在其監(jiān)控下的事務(wù)處理的原子性、一致性、獨立性和持久性。
通訊管理,為client和server之間提供了多種通訊機(jī)制,包括請求響應(yīng)、會話、排隊、訂閱發(fā)布和廣播等。
面向消息的中間件
MOM指的是利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進(jìn)行分布式系統(tǒng)的集成。通過提供消息傳遞和消息排隊模型,它可在分布環(huán)境下擴(kuò)展進(jìn)程間的通信,并支持多通訊協(xié)議、語言、應(yīng)用程序、硬件和軟件平臺。目前流行的MOM中間件產(chǎn)品有IBM的MQSeries、BEA的MessageQ等面向消息的中間件的功能特點
通訊程序可在不同的時間運(yùn)行
對應(yīng)用程序的結(jié)構(gòu)沒有約束,通訊程序之間不僅可以是一對一的關(guān)系,還可以進(jìn)行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構(gòu)造并沒有增加應(yīng)用程序的復(fù)雜性。
程序與網(wǎng)絡(luò)復(fù)雜性相隔離:
程序?qū)⑾⒎湃胂㈥犃谢驈南㈥犃兄腥〕鱿磉M(jìn)行通訊,與此關(guān)聯(lián)的全部活動,比如維護(hù)消息隊列、維護(hù)程序和隊列之間的關(guān)系、處理網(wǎng)絡(luò)的重新啟動和在網(wǎng)絡(luò)中移動消息等是MOM的任務(wù),程序不直接與其它程序通話,并且它們不涉及網(wǎng)絡(luò)通訊的復(fù)雜性。遠(yuǎn)程過程調(diào)用
遠(yuǎn)程過程調(diào)用是一種廣泛使用的分布式應(yīng)用程序處理方法RPC應(yīng)用分為兩個部分:server和client。server提供一個或多個遠(yuǎn)程過程;client向server發(fā)出遠(yuǎn)程調(diào)用。分布對象
為滿足分布式計算對多對象、跨平臺和系統(tǒng)異構(gòu)性等的需求,80年代后期至90年代初期,逐漸形成了分布對象模型(DistributedObjectModel,DOM)的概念,它以對象技術(shù)為基石,將OT融入分布環(huán)境中,支持在分布環(huán)境下對象之間的互操作和協(xié)作,最終建立開放的分布式系統(tǒng)。
DOM的概念非常適合于分布式異構(gòu)系統(tǒng),以DOM的觀點,分布式環(huán)境中的一個自治系統(tǒng)或一個應(yīng)用都可視為對象或一組對象。對象對外提供操作界面,操作由消息激活,在協(xié)調(diào)機(jī)制參與下,對象之間通過傳遞消息完成共同的任務(wù)。
DOM中的一個重要概念是組件(component)。組件是一塊獨立可重用的二進(jìn)制代碼,它具有特定功能,支持靈活的即插即用,可以被方便地插入到網(wǎng)絡(luò)、語言、應(yīng)用、工具、操作系統(tǒng)中工作。幾種主要的分布對象中間件
1.ORB
基于對象的技術(shù)最重要的用途之一是系統(tǒng)集成,這種集成可以通過對象請求代理(ObjectRequestBroker,ORB)來進(jìn)行。根據(jù)對象管理組織(OMG)的公共對象請求代理體系結(jié)構(gòu)(CommonObjectRequestBrokerArchitecture,CORBA)的定義,對象請求代理提供了在異構(gòu)分布環(huán)境下不同系統(tǒng)的應(yīng)用之間互操作的能力,并且能無縫連接多重對象系統(tǒng),它負(fù)責(zé)搜尋客戶請求的對象實現(xiàn),使對象實現(xiàn)準(zhǔn)備接受請求并傳輸構(gòu)造請求數(shù)據(jù)的所有成份。ORB提供了如下方法:
抽象地定義應(yīng)用程序(或者計算機(jī)上運(yùn)行的任何軟件)的接口,以便其它應(yīng)用程序也能使用這些接口。找出位于網(wǎng)絡(luò)另一地方的應(yīng)用程序以及有關(guān)的接口。讓應(yīng)用程序相互通信并且相互響應(yīng)。使用接口定義語言(InterfaceDefinitionLanguage,IDL)和應(yīng)用程序接口(ApplicationProgrammingInterface,API)。2.COM/DCOM
組件對象模型(ComponentObjectModel,COM)是Microsoft的組件軟件方案。COM中定義并提供了應(yīng)用程序(客戶)和服務(wù)對象(softwareobject)的連接機(jī)制,連接建立后客戶和對象可直接通訊而不需COM介入。DCOM(DistributedCOM)使用DCE的RPC機(jī)制在網(wǎng)絡(luò)環(huán)境下為它們提供了場地透明性和安全性等機(jī)制。3.SOM/DSOM
系統(tǒng)對象模型(SystemObjectModel,SOM)是IBM提出的組件解決方案,其主要目的是建立一個語言中立(language-neutral)的二進(jìn)制對象標(biāo)準(zhǔn),從而實現(xiàn)對象的重用,它包括面向?qū)ο蟮哪P图捌鋵崿F(xiàn)。DSOM是SOM中實現(xiàn)分布對象訪問的一組類庫,它符合CORBA標(biāo)準(zhǔn)并做了擴(kuò)充。中間件的優(yōu)點企業(yè)應(yīng)用縮短應(yīng)用開發(fā)周期StandishGroup分析業(yè)務(wù)邏輯30%基礎(chǔ)程序70%減少項目開發(fā)的風(fēng)險沒有使用標(biāo)準(zhǔn)商業(yè)中間件的關(guān)鍵應(yīng)用系統(tǒng)開發(fā)項目的失敗率高達(dá)90%自行開發(fā)中間件得不償失應(yīng)用系統(tǒng)質(zhì)量及可維護(hù)性StandishGroup發(fā)現(xiàn)一個企業(yè)的應(yīng)用系統(tǒng)有17000多個模塊接口標(biāo)準(zhǔn)中間件在接口方面都是清晰和規(guī)范的使用中間件企業(yè)只是維護(hù)業(yè)務(wù)邏輯增加產(chǎn)品吸引力中間件的優(yōu)點應(yīng)用程序透明的與其它應(yīng)用程序交互與運(yùn)行平臺提供的網(wǎng)絡(luò)通信服務(wù)無關(guān)具有良好的可靠性和可用性良好的可擴(kuò)展性流行分布中間件技術(shù)的比較
1)消息/隊列
支持同步和異步處理
不需要預(yù)編譯程序
事件驅(qū)動的編程范例
標(biāo)準(zhǔn)仍在出現(xiàn)2)RPC
基本上為同步處理需要預(yù)編譯程序熟悉的編程范例以DCE的標(biāo)準(zhǔn)為基礎(chǔ)3)ORB
同步處理需要預(yù)編譯程序面向?qū)ο蟮木幊谭独設(shè)MG的標(biāo)準(zhǔn)為基礎(chǔ)分布計算體系結(jié)構(gòu) 1.DCE OSFDCE的體系結(jié)構(gòu)是由遠(yuǎn)程過程調(diào)用、線程、命名服務(wù)、分布文件系統(tǒng)、安全和數(shù)據(jù)類型編碼標(biāo)準(zhǔn)等子系統(tǒng)組成。DCE的分布目錄服務(wù)提供網(wǎng)絡(luò)中資源的位置透明性,允許通過邏輯名訪問資源而不需指定資源所駐留的節(jié)點;安全服務(wù)提供了安全地管理網(wǎng)絡(luò)中安全信息的分布服務(wù),如支持單用戶定義,用戶以此名字作為一個實體登錄到網(wǎng)絡(luò)中而不是必須依次等登到每個獨立的服務(wù)器上;時間服務(wù)確保DCE環(huán)境中的所有成員都有一個統(tǒng)一的時間觀點,這對于網(wǎng)絡(luò)中事件的有序化、緩存信息的超時管理及其一致性維護(hù)等都具有重要作用;線程位于操作系統(tǒng)與其它所有DCE子系統(tǒng)之間,可以由本地操作系統(tǒng)或者專門的線程軟件包實現(xiàn)。
2.CORBA成立于1989年的對象管理組織是由一個擁有660個成員的國際性組織,它致力于推動面向?qū)ο蠹夹g(shù)理論及實踐在軟件開發(fā)中的應(yīng)用。CORBA是對象管理組織在其對象管理結(jié)構(gòu)(OMA)框架之下,以對象請求代理ORB為核心制定的分布對象標(biāo)準(zhǔn),它定義了對象之間通過ORB透明地發(fā)送請求和接收響應(yīng)的機(jī)制,保證了在分布異構(gòu)環(huán)境下對象之間的互操作性。
CORBA依據(jù)以下的設(shè)計原則:
接口與實現(xiàn)分離,客戶方依賴于接口,而不是依賴與實現(xiàn)。對象引用通過接口實現(xiàn)類型化,能更好的隱藏實現(xiàn)細(xì)節(jié)。支持接口的多重繼承性,充分支持面向?qū)ο筇厣J褂米宇悢U(kuò)展功能。保持服務(wù)的簡單化和正交性,提供滿足需要的最基本服務(wù)。
DCE與CORBA的比較
在實現(xiàn)方面,OSFDCE提供參考實現(xiàn)并被多數(shù)廠商采用;OMGCORBA僅給出規(guī)范,不提供參考實現(xiàn)。在基礎(chǔ)設(shè)施方面,OSFDCE提供支持分布應(yīng)用的分布服務(wù)基礎(chǔ)設(shè)施;OMGCORBA僅定義分布服務(wù)基礎(chǔ)設(shè)施的接口。在基礎(chǔ)服務(wù)方面,OSFDCE沒有定義事務(wù)服務(wù)等基礎(chǔ)服務(wù);OMGCORBA在對象服務(wù)部件中定義了許多基礎(chǔ)服務(wù),均支持標(biāo)準(zhǔn)接口。在模型方面,OSFDCE采用的是基于RPC的過程模型;OMGCORBA采用的是基于對象技術(shù)的對象模型。在引用方式方面,OSFDCE僅支持靜態(tài)引用;OMGCORBA支持、靜態(tài)引用客戶方DII和服務(wù)方DSI。在語義方面,OSFDCE提供at-most-once、independent、broadcast和maybe等多種語義;OMGCORBA提供at-most-once和best-effort兩種執(zhí)行語義,支持同步、延遲同步和異步交互模型。在線程并發(fā)性方面,OSFDCE將線程作為它的一個集成部件;OMGCORBA通過并發(fā)對象服務(wù)提供并發(fā)支持。 DCE和CORBA的差異主要源于二者核心技術(shù)的不同,DCE基于面向過程的RPC
機(jī)制,而CORBA是純正的面向?qū)ο蠹夹g(shù),支持繼承、多態(tài)和封裝等面向?qū)ο筇卣?,這正是二者本質(zhì)的區(qū)別。
內(nèi) 容一、背景二、遠(yuǎn)程過程調(diào)用(RPC)三、基于RPC的程序開發(fā)過程四、互操作體系一、背景1、TCP/IP2、基于TCP/IP的通信過程3、軟件互操作面向連接:負(fù)責(zé)
另一
客戶
請求
的套
接字
負(fù)責(zé)
客戶
請求
的套
接字
等待請求
等待連接(9)read()
(11)close()
(5)socket()
(2)bind()
(3)listen()
(4)accept()
close()
(1)socket()
(7)read()
(10)write()
客戶端流程
服務(wù)器端流程
等待返回結(jié)果
……
處理請求
處理結(jié)果
(6)connect()
(8)write()
負(fù)責(zé)
客戶
連接
的套
接字
套接字的出現(xiàn)促進(jìn)了軟件從單機(jī)環(huán)境向網(wǎng)絡(luò)環(huán)境的發(fā)展
擴(kuò)展了軟件的應(yīng)用范圍
但隨著這種范圍的擴(kuò)展
人們很快就不滿足于直接基于套接字的開發(fā)過程
原因:
基于套接字的開發(fā)方式較為繁瑣
軟件排錯十分困難當(dāng)服務(wù)器端需要根據(jù)用戶的不同請求內(nèi)容區(qū)分不同的處理過程時這些問題表現(xiàn)得尤其突出必須提供高層開發(fā)環(huán)境!3、軟件互操作Interoperability
PeterWegner[96]:Interoperabilityistheabilityoftwoormoresoftwarecomponentstocooperatedespitedifferencesinlanguage,interface,andexecutionplatform.
Heiler[95]:Interoperabilityamongcomponentsoflarge-scale,distributedsystemistheabilitytoexchangeservicesanddatawithoneanother.
軟件互操作是
網(wǎng)絡(luò)環(huán)境中應(yīng)用層的某一實體使用另一實體所提供功能的直接使用
網(wǎng)絡(luò)應(yīng)用發(fā)展三步曲:
消息傳遞互操作協(xié)同工作
消息傳遞是指具有一定結(jié)構(gòu)的信息從一個結(jié)點傳輸?shù)搅硗庖粋€結(jié)點的過程。
消息傳遞突破了單機(jī)環(huán)境中通過共享內(nèi)存(變量)進(jìn)行信息交換的模式。通過消息的發(fā)送、消息的接收等環(huán)節(jié),消息傳遞實現(xiàn)了不同運(yùn)行實體間的信息交流。
消息傳遞使計算機(jī)從封閉、獨立的模式向開放、交流的模式轉(zhuǎn)變,這一轉(zhuǎn)變極大地豐富了計算機(jī)學(xué)科的研究內(nèi)容與應(yīng)用范圍。
消息傳遞的目的性不強(qiáng),只要正確地將信息從一結(jié)點傳給另一結(jié)點即認(rèn)為成功,因此對語法的要求較高。
例如:TCP/IP
消息傳遞
互操作是一個結(jié)點上的成員對另一個結(jié)點上資源的使用。互操作過程中,發(fā)送方將操作的方法與參數(shù)打包,作為一條消息進(jìn)行發(fā)送,接收方則對消息頭進(jìn)行解釋,并根據(jù)所載信息的含義、參數(shù)執(zhí)行相應(yīng)的操作。
互操作的目標(biāo)在于實現(xiàn)操作發(fā)出方的功能調(diào)用,并提供一定的透明性支持(Transparentutility),實現(xiàn)不同操作空間之間的無縫連接(seamlessconnection),強(qiáng)調(diào)消息的語義,即消息所包含的意義。
例如:RPC、ORB、RMI
互操作協(xié)同工作是協(xié)作范圍的進(jìn)一步擴(kuò)展,也是消息傳遞、互操作的目標(biāo)與結(jié)果。協(xié)同工作的主體既可以是人,也可以是其他的計算機(jī)資源。協(xié)同工作的目標(biāo)在于完成由許多人共同承擔(dān)的大型任務(wù)。消息被傳遞后,不僅要求語法、語義正確,還要求接收方根據(jù)消息的含義進(jìn)行反應(yīng),使消息體現(xiàn)出一定的效用,而不是被簡單的傳送。例如:CSCW
(ComputerSupportedCooperativeWork)
協(xié)同工作1、動因與實例2、工作原理3、編排/還原4、請求分派RPC1、動因與實例開發(fā)基于SOCKET的網(wǎng)絡(luò)軟件非常復(fù)雜 FTP TELNET位于不同機(jī)器上的軟件互操作困難
連接管理
異構(gòu)導(dǎo)致RPC(RemoteProcedureCalling)的產(chǎn)生主要實例: SUN公司等提出的ONC(OpenNetworkComputing)RPC
主要由SUN予以實現(xiàn) OSF(OpenSoftwareFoundation)RPC影響最大
主要由DCE(DistributedComputingEnvironment)實現(xiàn) DCE是OSF提出的分布計算體系結(jié)構(gòu) 2、工作原理
Deposit(1000)
繼續(xù)運(yùn)行
啟動服務(wù)器上的存款過程
intDeposit(number){
returntotal+number;
}
客戶端程序
服務(wù)器端程序
以對某銀行帳戶的一個存款過程為例:NetworkLocalCallClientStubRPCInterfaceRPCInterfaceServerStubRemoteProceduresendreceivesendreceive(1)調(diào)用過程客戶端程序服務(wù)器端程序過程描述:1)客戶按本地調(diào)用的方式
直接調(diào)用本地的客戶指代(Stub)
客戶指代具有與服務(wù)器相同的過程接口2)客戶指代將客戶的調(diào)用請求進(jìn)行加工、打包 向底層通信機(jī)制(如套接字)發(fā)出請求消息
客戶指代 不進(jìn)行任何邏輯處理 只是一個中介3)客戶端通過底層的通信機(jī)制
將消息傳送給服務(wù)器端的底層通信機(jī)制4)服務(wù)器需要部分地解析消息
找出客戶希望調(diào)用的服務(wù)器程序5)服務(wù)器指代對消息進(jìn)行解析
從中獲得調(diào)用者的參數(shù)
然后調(diào)用服務(wù)器程序6)服務(wù)器程序執(zhí)行相應(yīng)的過程7)服務(wù)器程序?qū)⒔Y(jié)果返回給服務(wù)器指代8)服務(wù)器指代將結(jié)果打包
向底層通信機(jī)制發(fā)出應(yīng)答消息9)服務(wù)器端通信機(jī)制將消息傳送給客戶端通信機(jī)制10)客戶端節(jié)點上也可能有多個調(diào)出點
通信機(jī)制需要部分地解析返回的消息
找出消息應(yīng)該返回給哪個客戶程序
并將消息發(fā)送給對應(yīng)的客戶指代11)客戶指代從消息中解析結(jié)果 返回給客戶程序(2)編排/還原客戶端指代(Stub)的主要工作包括:1)建立客戶與服務(wù)器之間的連接2)將客戶的高層調(diào)用語句打包為一條底層的請求消息
這一過程在RPC中被稱為編排(marshal)3)等待服務(wù)器返回應(yīng)答消息4)將來自服務(wù)器底層的應(yīng)答消息解析為可以返回的數(shù)據(jù)
這一過程在RPC中被稱為還原(unmarshal)5)將返回值傳送給客戶程序需要特別處理:
編碼、字節(jié)序等問題(3)請求分派服務(wù)器端的指代:
除了需要進(jìn)行編排、還原外
還需要 區(qū)分客戶所請求的過程名
然后將客戶的請求分派(dispatch)給正確的過程“指代”目前主要被用于專門代表客戶端的代理程序 而服務(wù)器端則由新的機(jī)制予以支持 在CORBA中專門分離出了對象適配器(OA:ObjectAdaptor)
在EJB中發(fā)展出了構(gòu)件容器 用于在運(yùn)行過程中專門管理構(gòu)件的各種狀態(tài) 此時的服務(wù)器端不僅負(fù)責(zé)請求分派 還負(fù)責(zé)向底層機(jī)制的注冊(以方便請求的定位) 以及過程的激活(以加強(qiáng)系統(tǒng)的靈活性) 等等功能三、基于RPC的開發(fā)過程1、定義并編譯接口2、編寫實現(xiàn)具體服務(wù)功能的代碼3、編譯、連接,產(chǎn)生可執(zhí)行的服務(wù)器程序4、編寫客戶端代碼5、編譯、連接,產(chǎn)生客戶程序6、運(yùn)行服務(wù)器端程序7、運(yùn)行客戶端程序客戶端開發(fā)過程服務(wù)器端開發(fā)過程服務(wù)器端程序IDL編譯器(rpcgen)客戶端程序IDLaccount.haccount_clnt.caccount_svc.cserver.cclient.crpclib.o1、定義并編譯接口仍然結(jié)合銀行帳號的例子
接口定義文件account.x:programACCOUNT{versionACCOUNT_VER{intdeposit(int)=2;intwithdraw(int)=1;}=1;}=0x20010929;編譯后生成三個主要文件:
account.h account_clnt.c account_svc.c
互操作體系
---為支持應(yīng)用層的某一實體使用另一實體,而制定的一套技術(shù)規(guī)范
1、底層協(xié)議2、互操作消息3、互操作接口定義4、互操作查找方式5、現(xiàn)有體系比較內(nèi)容
互操作消息
客戶端指代
互
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年口譯員技能提升及認(rèn)證服務(wù)合同3篇
- 增強(qiáng)現(xiàn)實工程價款組成詳解
- 家政服務(wù)辦事處招聘協(xié)議
- 民宿建設(shè)施工協(xié)議
- 廣告公司創(chuàng)意人員招聘合同
- 建筑檢測凈化工程協(xié)議
- 2025版電力設(shè)施安裝與環(huán)保驗收服務(wù)協(xié)議3篇
- 高空作業(yè)工具協(xié)議
- 礦山通風(fēng)管涵施工協(xié)議
- 貸款審批與風(fēng)險管理
- 美人蕉銹病病情調(diào)查報告
- 手工鎢極氬弧焊焊接工藝指導(dǎo)書
- 分級護(hù)理細(xì)化標(biāo)準(zhǔn)[資料]
- 北師大七年級上數(shù)學(xué)易錯題(共8頁)
- 板式換熱器計算
- 最新大學(xué)毛概期末考試重點總結(jié)
- 事故隱患排查治理統(tǒng)計分析制度
- 供應(yīng)商供方履約評價表(參考模板)
- 雜物電梯維護(hù)保養(yǎng)施工方案(共37頁)
- 徒步行軍pt課件
- 國家電網(wǎng)公司電網(wǎng)設(shè)備缺陷管理規(guī)定國網(wǎng)(運(yùn)檢3)(文號國家電網(wǎng)企管
評論
0/150
提交評論