




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
中間件技術(shù)課程介紹
課程設(shè)置目標(biāo)了解中間件中間件的開發(fā)原理,如何開發(fā)中間件在中間件上進(jìn)行開發(fā)相關(guān)的工業(yè)標(biāo)準(zhǔn)例如CORBA、EJB、WebService等參考張?jiān)朴?中間件技術(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)用分布式計(jì)算環(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)不定部分失敗:任一組件失敗與其他組件無關(guān)異步性:通信和處理活動異步發(fā)生異質(zhì)性:多種技術(shù)的集合自主性:自主管理,若干控制當(dāng)局系統(tǒng)分布面臨的問題 (續(xù))聯(lián)合性:跨越多個(gè)自主實(shí)體伸縮性:在規(guī)模上是可伸縮的發(fā)展性:開放環(huán)境面對很多變化移動性:信息源,用戶在物理位置上移動開放環(huán)境具備的屬性開放的:可移植性和協(xié)同工作集成的:靈活模塊化可聯(lián)合的可管理滿足服務(wù)質(zhì)量安全提供透明性中間件概述定義中間件是一種軟件,他能使處于應(yīng)用層中的各應(yīng)用成分之間實(shí)現(xiàn)跨網(wǎng)絡(luò)的協(xié)同工作(也就是互操作)應(yīng)用軟件中間層網(wǎng)絡(luò)軟件操作系統(tǒng)應(yīng)用軟件中間層網(wǎng)絡(luò)軟件操作系統(tǒng)可協(xié)同工作中件服務(wù)并不能獨(dú)立構(gòu)造分布式系統(tǒng),它只是在原有的操作系統(tǒng)和語言基礎(chǔ)之上為分布應(yīng)用提供互操作能力,在最終實(shí)現(xiàn)時(shí),仍需要傳統(tǒng)程序設(shè)計(jì)語言和操作系統(tǒng)的支持。
開發(fā)模式的變化Win2KLinuxLynxOSSolarisVxWorksMiddlewareMiddlewareServicesMiddlewareApplicationsMIDDLEWAREARCH21stCenturyRTPDNSHTTPUDPTCPIPTELNETEthernetATMFDDIFibreChannelFTPINTERNETWORKINGARCHTFTP20thCentury中間件定義(IDG)
中間件是基礎(chǔ)軟件,處于操作系統(tǒng)(或網(wǎng)絡(luò)協(xié)議)與分布式應(yīng)用之間,從而屏蔽操作系統(tǒng)(或網(wǎng)絡(luò)協(xié)議)的差異,實(shí)現(xiàn)分布式異構(gòu)系統(tǒng)之間的互操作。目前,對中間件還沒有形成一個(gè)統(tǒng)一的定義,比較公認(rèn)的IDC的定義是:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(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作為第一個(gè)嚴(yán)格意義上的中間件產(chǎn)品,Tuxedo是在1984年由AT&T的貝爾實(shí)驗(yàn)室開發(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ù)稱之為平臺?;谀康暮蛯?shí)現(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ù)處理的原子性、一致性、獨(dú)立性和持久性。
通訊管理,為client和server之間提供了多種通訊機(jī)制,包括請求響應(yīng)、會話、排隊(duì)、訂閱發(fā)布和廣播等。
面向消息的中間件
MOM指的是利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進(jìn)行分布式系統(tǒng)的集成。通過提供消息傳遞和消息排隊(duì)模型,它可在分布環(huán)境下擴(kuò)展進(jìn)程間的通信,并支持多通訊協(xié)議、語言、應(yīng)用程序、硬件和軟件平臺。目前流行的MOM中間件產(chǎn)品有IBM的MQSeries、BEA的MessageQ等面向消息的中間件的功能特點(diǎn)
通訊程序可在不同的時(shí)間運(yùn)行
對應(yīng)用程序的結(jié)構(gòu)沒有約束,通訊程序之間不僅可以是一對一的關(guān)系,還可以進(jìn)行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構(gòu)造并沒有增加應(yīng)用程序的復(fù)雜性。
程序與網(wǎng)絡(luò)復(fù)雜性相隔離:
程序?qū)⑾⒎湃胂㈥?duì)列或從消息隊(duì)列中取出消息來進(jìn)行通訊,與此關(guān)聯(lián)的全部活動,比如維護(hù)消息隊(duì)列、維護(hù)程序和隊(duì)列之間的關(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)用分為兩個(gè)部分:server和client。server提供一個(gè)或多個(gè)遠(yuǎn)程過程;client向server發(fā)出遠(yuǎn)程調(diào)用。分布對象
為滿足分布式計(jì)算對多對象、跨平臺和系統(tǒng)異構(gòu)性等的需求,80年代后期至90年代初期,逐漸形成了分布對象模型(DistributedObjectModel,DOM)的概念,它以對象技術(shù)為基石,將OT融入分布環(huán)境中,支持在分布環(huán)境下對象之間的互操作和協(xié)作,最終建立開放的分布式系統(tǒng)。
DOM的概念非常適合于分布式異構(gòu)系統(tǒng),以DOM的觀點(diǎn),分布式環(huán)境中的一個(gè)自治系統(tǒng)或一個(gè)應(yīng)用都可視為對象或一組對象。對象對外提供操作界面,操作由消息激活,在協(xié)調(diào)機(jī)制參與下,對象之間通過傳遞消息完成共同的任務(wù)。
DOM中的一個(gè)重要概念是組件(component)。組件是一塊獨(dú)立可重用的二進(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é)搜尋客戶請求的對象實(shí)現(xiàn),使對象實(shí)現(xiàn)準(zhǔn)備接受請求并傳輸構(gòu)造請求數(shù)據(jù)的所有成份。ORB提供了如下方法:
抽象地定義應(yīng)用程序(或者計(jì)算機(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提出的組件解決方案,其主要目的是建立一個(gè)語言中立(language-neutral)的二進(jìn)制對象標(biāo)準(zhǔn),從而實(shí)現(xiàn)對象的重用,它包括面向?qū)ο蟮哪P图捌鋵?shí)現(xiàn)。DSOM是SOM中實(shí)現(xiàn)分布對象訪問的一組類庫,它符合CORBA標(biāo)準(zhǔn)并做了擴(kuò)充。中間件的優(yōu)點(diǎn)企業(yè)應(yīng)用縮短應(yīng)用開發(fā)周期StandishGroup分析業(yè)務(wù)邏輯30%基礎(chǔ)程序70%減少項(xiàng)目開發(fā)的風(fēng)險(xiǎn)沒有使用標(biāo)準(zhǔn)商業(yè)中間件的關(guān)鍵應(yīng)用系統(tǒng)開發(fā)項(xiàng)目的失敗率高達(dá)90%自行開發(fā)中間件得不償失應(yīng)用系統(tǒng)質(zhì)量及可維護(hù)性StandishGroup發(fā)現(xiàn)一個(gè)企業(yè)的應(yīng)用系統(tǒng)有17000多個(gè)模塊接口標(biāo)準(zhǔn)中間件在接口方面都是清晰和規(guī)范的使用中間件企業(yè)只是維護(hù)業(yè)務(wù)邏輯增加產(chǎn)品吸引力中間件的優(yōu)點(diǎn)應(yīng)用程序透明的與其它應(yīng)用程序交互與運(yùn)行平臺提供的網(wǎng)絡(luò)通信服務(wù)無關(guān)具有良好的可靠性和可用性良好的可擴(kuò)展性流行分布中間件技術(shù)的比較
1)消息/隊(duì)列
支持同步和異步處理
不需要預(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ǔ)分布計(jì)算體系結(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é)點(diǎn);安全服務(wù)提供了安全地管理網(wǎng)絡(luò)中安全信息的分布服務(wù),如支持單用戶定義,用戶以此名字作為一個(gè)實(shí)體登錄到網(wǎng)絡(luò)中而不是必須依次等登到每個(gè)獨(dú)立的服務(wù)器上;時(shí)間服務(wù)確保DCE環(huán)境中的所有成員都有一個(gè)統(tǒng)一的時(shí)間觀點(diǎn),這對于網(wǎng)絡(luò)中事件的有序化、緩存信息的超時(shí)管理及其一致性維護(hù)等都具有重要作用;線程位于操作系統(tǒng)與其它所有DCE子系統(tǒng)之間,可以由本地操作系統(tǒng)或者專門的線程軟件包實(shí)現(xiàn)。
2.CORBA成立于1989年的對象管理組織是由一個(gè)擁有660個(gè)成員的國際性組織,它致力于推動面向?qū)ο蠹夹g(shù)理論及實(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è)計(jì)原則:
接口與實(shí)現(xiàn)分離,客戶方依賴于接口,而不是依賴與實(shí)現(xiàn)。對象引用通過接口實(shí)現(xiàn)類型化,能更好的隱藏實(shí)現(xiàn)細(xì)節(jié)。支持接口的多重繼承性,充分支持面向?qū)ο筇厣J褂米宇悢U(kuò)展功能。保持服務(wù)的簡單化和正交性,提供滿足需要的最基本服務(wù)。
DCE與CORBA的比較
在實(shí)現(xiàn)方面,OSFDCE提供參考實(shí)現(xiàn)并被多數(shù)廠商采用;OMGCORBA僅給出規(guī)范,不提供參考實(shí)現(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將線程作為它的一個(gè)集成部件;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ā)方式較為繁瑣
軟件排錯(cuò)十分困難當(dāng)服務(wù)器端需要根據(jù)用戶的不同請求內(nèi)容區(qū)分不同的處理過程時(shí)這些問題表現(xiàn)得尤其突出必須提供高層開發(fā)環(huán)境!3、軟件互操作Interoperability
PeterWegner[96]:Interoperabilityistheabilityoftwoormoresoftwarecomponentstocooperatedespitedifferencesinlanguage,interface,andexecutionplatform.
Heiler[95]:Interoperabilityamongcomponentsoflarge-scale,distributedsystemistheabilitytoexchangeservicesanddatawithoneanother.
軟件互操作是
網(wǎng)絡(luò)環(huán)境中應(yīng)用層的某一實(shí)體使用另一實(shí)體所提供功能的直接使用
網(wǎng)絡(luò)應(yīng)用發(fā)展三步曲:
消息傳遞互操作協(xié)同工作
消息傳遞是指具有一定結(jié)構(gòu)的信息從一個(gè)結(jié)點(diǎn)傳輸?shù)搅硗庖粋€(gè)結(jié)點(diǎn)的過程。
消息傳遞突破了單機(jī)環(huán)境中通過共享內(nèi)存(變量)進(jìn)行信息交換的模式。通過消息的發(fā)送、消息的接收等環(huán)節(jié),消息傳遞實(shí)現(xiàn)了不同運(yùn)行實(shí)體間的信息交流。
消息傳遞使計(jì)算機(jī)從封閉、獨(dú)立的模式向開放、交流的模式轉(zhuǎn)變,這一轉(zhuǎn)變極大地豐富了計(jì)算機(jī)學(xué)科的研究內(nèi)容與應(yīng)用范圍。
消息傳遞的目的性不強(qiáng),只要正確地將信息從一結(jié)點(diǎn)傳給另一結(jié)點(diǎn)即認(rèn)為成功,因此對語法的要求較高。
例如:TCP/IP
消息傳遞
互操作是一個(gè)結(jié)點(diǎn)上的成員對另一個(gè)結(jié)點(diǎn)上資源的使用?;ゲ僮鬟^程中,發(fā)送方將操作的方法與參數(shù)打包,作為一條消息進(jìn)行發(fā)送,接收方則對消息頭進(jìn)行解釋,并根據(jù)所載信息的含義、參數(shù)執(zhí)行相應(yīng)的操作。
互操作的目標(biāo)在于實(shí)現(xiàn)操作發(fā)出方的功能調(diào)用,并提供一定的透明性支持(Transparentutility),實(shí)現(xiàn)不同操作空間之間的無縫連接(seamlessconnection),強(qiáng)調(diào)消息的語義,即消息所包含的意義。
例如:RPC、ORB、RMI
互操作協(xié)同工作是協(xié)作范圍的進(jìn)一步擴(kuò)展,也是消息傳遞、互操作的目標(biāo)與結(jié)果。協(xié)同工作的主體既可以是人,也可以是其他的計(jì)算機(jī)資源。協(xié)同工作的目標(biāo)在于完成由許多人共同承擔(dān)的大型任務(wù)。消息被傳遞后,不僅要求語法、語義正確,還要求接收方根據(jù)消息的含義進(jìn)行反應(yīng),使消息體現(xiàn)出一定的效用,而不是被簡單的傳送。例如:CSCW
(ComputerSupportedCooperativeWork)
協(xié)同工作1、動因與實(shí)例2、工作原理3、編排/還原4、請求分派RPC1、動因與實(shí)例開發(fā)基于SOCKET的網(wǎng)絡(luò)軟件非常復(fù)雜 FTP TELNET位于不同機(jī)器上的軟件互操作困難
連接管理
異構(gòu)導(dǎo)致RPC(RemoteProcedureCalling)的產(chǎn)生主要實(shí)例: SUN公司等提出的ONC(OpenNetworkComputing)RPC
主要由SUN予以實(shí)現(xiàn) OSF(OpenSoftwareFoundation)RPC影響最大
主要由DCE(DistributedComputingEnvironment)實(shí)現(xiàn) DCE是OSF提出的分布計(jì)算體系結(jié)構(gòu) 2、工作原理
Deposit(1000)
繼續(xù)運(yùn)行
啟動服務(wù)器上的存款過程
intDeposit(number){
returntotal+number;
}
客戶端程序
服務(wù)器端程序
以對某銀行帳戶的一個(gè)存款過程為例:NetworkLocalCallClientStubRPCInterfaceRPCInterfaceServerStubRemoteProceduresendreceivesendreceive(1)調(diào)用過程客戶端程序服務(wù)器端程序過程描述:1)客戶按本地調(diào)用的方式
直接調(diào)用本地的客戶指代(Stub)
客戶指代具有與服務(wù)器相同的過程接口2)客戶指代將客戶的調(diào)用請求進(jìn)行加工、打包 向底層通信機(jī)制(如套接字)發(fā)出請求消息
客戶指代 不進(jìn)行任何邏輯處理 只是一個(gè)中介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ǎn)上也可能有多個(gè)調(diào)出點(diǎn)
通信機(jī)制需要部分地解析返回的消息
找出消息應(yīng)該返回給哪個(gè)客戶程序
并將消息發(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) 此時(shí)的服務(wù)器端不僅負(fù)責(zé)請求分派 還負(fù)責(zé)向底層機(jī)制的注冊(以方便請求的定位) 以及過程的激活(以加強(qiáng)系統(tǒng)的靈活性) 等等功能三、基于RPC的開發(fā)過程1、定義并編譯接口2、編寫實(shí)現(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;編譯后生成三個(gè)主要文件:
account.h account_clnt.c account_svc.c
互操作體系
---為支持應(yīng)用層的某一實(shí)體使用另一實(shí)體,而制定的一套技術(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/TR 23975:2025 EN Traditional Chinese medicine - Priority list of single herbal medicines for developing standards
- 2025年度店鋪轉(zhuǎn)租雙方責(zé)任劃分合同
- 2025年度房地產(chǎn)項(xiàng)目風(fēng)險(xiǎn)評估合同模板
- 2025年度財(cái)務(wù)合同簽訂與履行管理合同
- 2025年度鑄件研發(fā)與生產(chǎn)承包協(xié)議
- 2025年度員工敬業(yè)度提升與企業(yè)文化融合合同
- 藝術(shù)創(chuàng)作活動的組織與管理計(jì)劃
- 現(xiàn)代青年財(cái)務(wù)觀念調(diào)查計(jì)劃
- 財(cái)務(wù)內(nèi)控體系的構(gòu)建與完善計(jì)劃
- 小學(xué)美術(shù)教育工作規(guī)劃計(jì)劃
- 【北京】施工現(xiàn)場安全生產(chǎn)標(biāo)準(zhǔn)化管理圖集
- 部編版小學(xué)道德與法治五年級下冊教案(全冊)
- XXXXX醫(yī)院腎友會活動方案
- 環(huán)境監(jiān)理業(yè)務(wù)手冊(word)
- 人文關(guān)懷與優(yōu)質(zhì)護(hù)理課件
- 知識圖譜可視化-Neo4j(windows)
- 光伏電站作業(yè)危險(xiǎn)點(diǎn)分析及預(yù)控措施手冊
- 水文流量測驗(yàn)
- 第二講共振理論、有機(jī)酸堿理論
- 研究性學(xué)習(xí)課題——有趣對聯(lián)
- 電鍍工業(yè)園項(xiàng)目可行性研究報(bào)告-用于立項(xiàng)備案
評論
0/150
提交評論