




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
中間件技術課程介紹
課程設置目標了解中間件中間件的開發原理,如何開發中間件在中間件上進行開發相關的工業標準例如CORBA、EJB、WebService等參考張云勇,中間件技術原理與應用,清華大學出版社,2004李華飚,
Java中間件技術及其應用開發,水利水電出版社,2007S.TanenbaumandM.V.Steen,分布式系統:PrinciplesandParadigms,第一版,PrenticeHall,2002,ISBN:0130888931.ReferenceBooks:
G.Coulouris,J.Dollimore,和T.Kindberg,分布式系統:ConceptsandDesign,3rdEdition,Addison-Wesley,2000,ISBN:0201619180.初步知識開放系統互操作性中間件遠地過程調用分布式計算環境開放系統及互操作性開放系統概述:網絡技術發展使得用戶的應用環境變得異常復雜繁多的硬件系統不同的操作系統和應用軟件用戶環境的復雜性和多樣性導致了開放系統技術的出現信息處理系統互連的需求不斷的增長,出現了分布式系統系統分布面臨的問題遠程性:組件在空間上分散并發性:組件間并發的執行無全局狀態:分布系統的全局狀態不定部分失敗:任一組件失敗與其他組件無關異步性:通信和處理活動異步發生異質性:多種技術的集合自主性:自主管理,若干控制當局系統分布面臨的問題 (續)聯合性:跨越多個自主實體伸縮性:在規模上是可伸縮的發展性:開放環境面對很多變化移動性:信息源,用戶在物理位置上移動開放環境具備的屬性開放的:可移植性和協同工作集成的:靈活模塊化可聯合的可管理滿足服務質量安全提供透明性中間件概述定義中間件是一種軟件,他能使處于應用層中的各應用成分之間實現跨網絡的協同工作(也就是互操作)應用軟件中間層網絡軟件操作系統應用軟件中間層網絡軟件操作系統可協同工作中件服務并不能獨立構造分布式系統,它只是在原有的操作系統和語言基礎之上為分布應用提供互操作能力,在最終實現時,仍需要傳統程序設計語言和操作系統的支持。
開發模式的變化Win2KLinuxLynxOSSolarisVxWorksMiddlewareMiddlewareServicesMiddlewareApplicationsMIDDLEWAREARCH21stCenturyRTPDNSHTTPUDPTCPIPTELNETEthernetATMFDDIFibreChannelFTPINTERNETWORKINGARCHTFTP20thCentury中間件定義(IDG)
中間件是基礎軟件,處于操作系統(或網絡協議)與分布式應用之間,從而屏蔽操作系統(或網絡協議)的差異,實現分布式異構系統之間的互操作。目前,對中間件還沒有形成一個統一的定義,比較公認的IDC的定義是:中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統之上,管理計算資源和網絡通信。中間件技術
最早具有中間件技術思想及功能的軟件是IBM在60年代開發的CICS(CustomerInformationControlSystem)。80年代初期,SunMicrosystems開發了一種最早的中間件,作為其開放網絡體系結構的一部分,這種中間件是基于RPC協議的。但由于CICS不是分布式環境的產物,而SunMicrosystems開發的不是完整的中間件產品,因此人們一般把Tuxedo作為第一個嚴格意義上的中間件產品,Tuxedo是在1984年由AT&T的貝爾實驗室開發完成的。到90年代,中間件技術得到了巨大的發展和廣泛的應用,出現了大量具有廣泛影響的中間件產品,如OMG的Corba、Microsoft的DCOM/COM+、IBM的MQS等。組成部分 執行環境(ExecutionEnvironment)軟件簡稱EE軟件應用開發(ApplicationDevelopment)工具簡稱AD工具中間件的分類 中間件的平臺由于中間件需要屏蔽分布環境中異構的操作系統和網絡協議,它必須能夠提供分布環境下的通訊服務,我們將這種通訊服務稱之為平臺。基于目的和實現機制的不同,我們將平臺分為以下主要幾類:
遠程過程調用(RemoteProcedureCall)
面向消息的中間件(Message-OrientedMiddleware)
對象請求代理(ObjectRequestBrokers)中間件的分類 事務處理中間件(TPMonitor:TransactionProcessMonitor)消息中間件(MOM:Message-OrientedMiddleware)遠程過程調用分布對象請求代理事務處理中間件事物務理中間件又叫“事務處理監控程序”,最初是作為聯機事務處理應用的支撐環境。事務處理中間件提供聯機事務處理所需要的通信、并發訪問控制、事務控制、資源管理、安全管理和其它必要的服務。事務處理中間件幾乎所有的功能與服務都被借用到Web應用服務器之中并被標準化的固定下來。事務處理中間件的功能
進程管理,包括啟動server進程、為其分配任務、監控其執行并對負載進行平衡。
事務管理,即保證在其監控下的事務處理的原子性、一致性、獨立性和持久性。
通訊管理,為client和server之間提供了多種通訊機制,包括請求響應、會話、排隊、訂閱發布和廣播等。
面向消息的中間件
MOM指的是利用高效可靠的消息傳遞機制進行平臺無關的數據交流,并基于數據通信來進行分布式系統的集成。通過提供消息傳遞和消息排隊模型,它可在分布環境下擴展進程間的通信,并支持多通訊協議、語言、應用程序、硬件和軟件平臺。目前流行的MOM中間件產品有IBM的MQSeries、BEA的MessageQ等面向消息的中間件的功能特點
通訊程序可在不同的時間運行
對應用程序的結構沒有約束,通訊程序之間不僅可以是一對一的關系,還可以進行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構造并沒有增加應用程序的復雜性。
程序與網絡復雜性相隔離:
程序將消息放入消息隊列或從消息隊列中取出消息來進行通訊,與此關聯的全部活動,比如維護消息隊列、維護程序和隊列之間的關系、處理網絡的重新啟動和在網絡中移動消息等是MOM的任務,程序不直接與其它程序通話,并且它們不涉及網絡通訊的復雜性。遠程過程調用
遠程過程調用是一種廣泛使用的分布式應用程序處理方法RPC應用分為兩個部分:server和client。server提供一個或多個遠程過程;client向server發出遠程調用。分布對象
為滿足分布式計算對多對象、跨平臺和系統異構性等的需求,80年代后期至90年代初期,逐漸形成了分布對象模型(DistributedObjectModel,DOM)的概念,它以對象技術為基石,將OT融入分布環境中,支持在分布環境下對象之間的互操作和協作,最終建立開放的分布式系統。
DOM的概念非常適合于分布式異構系統,以DOM的觀點,分布式環境中的一個自治系統或一個應用都可視為對象或一組對象。對象對外提供操作界面,操作由消息激活,在協調機制參與下,對象之間通過傳遞消息完成共同的任務。
DOM中的一個重要概念是組件(component)。組件是一塊獨立可重用的二進制代碼,它具有特定功能,支持靈活的即插即用,可以被方便地插入到網絡、語言、應用、工具、操作系統中工作。幾種主要的分布對象中間件
1.ORB
基于對象的技術最重要的用途之一是系統集成,這種集成可以通過對象請求代理(ObjectRequestBroker,ORB)來進行。根據對象管理組織(OMG)的公共對象請求代理體系結構(CommonObjectRequestBrokerArchitecture,CORBA)的定義,對象請求代理提供了在異構分布環境下不同系統的應用之間互操作的能力,并且能無縫連接多重對象系統,它負責搜尋客戶請求的對象實現,使對象實現準備接受請求并傳輸構造請求數據的所有成份。ORB提供了如下方法:
抽象地定義應用程序(或者計算機上運行的任何軟件)的接口,以便其它應用程序也能使用這些接口。找出位于網絡另一地方的應用程序以及有關的接口。讓應用程序相互通信并且相互響應。使用接口定義語言(InterfaceDefinitionLanguage,IDL)和應用程序接口(ApplicationProgrammingInterface,API)。2.COM/DCOM
組件對象模型(ComponentObjectModel,COM)是Microsoft的組件軟件方案。COM中定義并提供了應用程序(客戶)和服務對象(softwareobject)的連接機制,連接建立后客戶和對象可直接通訊而不需COM介入。DCOM(DistributedCOM)使用DCE的RPC機制在網絡環境下為它們提供了場地透明性和安全性等機制。3.SOM/DSOM
系統對象模型(SystemObjectModel,SOM)是IBM提出的組件解決方案,其主要目的是建立一個語言中立(language-neutral)的二進制對象標準,從而實現對象的重用,它包括面向對象的模型及其實現。DSOM是SOM中實現分布對象訪問的一組類庫,它符合CORBA標準并做了擴充。中間件的優點企業應用縮短應用開發周期StandishGroup分析業務邏輯30%基礎程序70%減少項目開發的風險沒有使用標準商業中間件的關鍵應用系統開發項目的失敗率高達90%自行開發中間件得不償失應用系統質量及可維護性StandishGroup發現一個企業的應用系統有17000多個模塊接口標準中間件在接口方面都是清晰和規范的使用中間件企業只是維護業務邏輯增加產品吸引力中間件的優點應用程序透明的與其它應用程序交互與運行平臺提供的網絡通信服務無關具有良好的可靠性和可用性良好的可擴展性流行分布中間件技術的比較
1)消息/隊列
支持同步和異步處理
不需要預編譯程序
事件驅動的編程范例
標準仍在出現2)RPC
基本上為同步處理需要預編譯程序熟悉的編程范例以DCE的標準為基礎3)ORB
同步處理需要預編譯程序面向對象的編程范例以OMG的標準為基礎分布計算體系結構 1.DCE OSFDCE的體系結構是由遠程過程調用、線程、命名服務、分布文件系統、安全和數據類型編碼標準等子系統組成。DCE的分布目錄服務提供網絡中資源的位置透明性,允許通過邏輯名訪問資源而不需指定資源所駐留的節點;安全服務提供了安全地管理網絡中安全信息的分布服務,如支持單用戶定義,用戶以此名字作為一個實體登錄到網絡中而不是必須依次等登到每個獨立的服務器上;時間服務確保DCE環境中的所有成員都有一個統一的時間觀點,這對于網絡中事件的有序化、緩存信息的超時管理及其一致性維護等都具有重要作用;線程位于操作系統與其它所有DCE子系統之間,可以由本地操作系統或者專門的線程軟件包實現。
2.CORBA成立于1989年的對象管理組織是由一個擁有660個成員的國際性組織,它致力于推動面向對象技術理論及實踐在軟件開發中的應用。CORBA是對象管理組織在其對象管理結構(OMA)框架之下,以對象請求代理ORB為核心制定的分布對象標準,它定義了對象之間通過ORB透明地發送請求和接收響應的機制,保證了在分布異構環境下對象之間的互操作性。
CORBA依據以下的設計原則:
接口與實現分離,客戶方依賴于接口,而不是依賴與實現。對象引用通過接口實現類型化,能更好的隱藏實現細節。支持接口的多重繼承性,充分支持面向對象特色。使用子類擴展功能。保持服務的簡單化和正交性,提供滿足需要的最基本服務。
DCE與CORBA的比較
在實現方面,OSFDCE提供參考實現并被多數廠商采用;OMGCORBA僅給出規范,不提供參考實現。在基礎設施方面,OSFDCE提供支持分布應用的分布服務基礎設施;OMGCORBA僅定義分布服務基礎設施的接口。在基礎服務方面,OSFDCE沒有定義事務服務等基礎服務;OMGCORBA在對象服務部件中定義了許多基礎服務,均支持標準接口。在模型方面,OSFDCE采用的是基于RPC的過程模型;OMGCORBA采用的是基于對象技術的對象模型。在引用方式方面,OSFDCE僅支持靜態引用;OMGCORBA支持、靜態引用客戶方DII和服務方DSI。在語義方面,OSFDCE提供at-most-once、independent、broadcast和maybe等多種語義;OMGCORBA提供at-most-once和best-effort兩種執行語義,支持同步、延遲同步和異步交互模型。在線程并發性方面,OSFDCE將線程作為它的一個集成部件;OMGCORBA通過并發對象服務提供并發支持。 DCE和CORBA的差異主要源于二者核心技術的不同,DCE基于面向過程的RPC
機制,而CORBA是純正的面向對象技術,支持繼承、多態和封裝等面向對象特征,這正是二者本質的區別。
內 容一、背景二、遠程過程調用(RPC)三、基于RPC的程序開發過程四、互操作體系一、背景1、TCP/IP2、基于TCP/IP的通信過程3、軟件互操作面向連接:負責
另一
客戶
請求
的套
接字
負責
客戶
請求
的套
接字
等待請求
等待連接(9)read()
(11)close()
(5)socket()
(2)bind()
(3)listen()
(4)accept()
close()
(1)socket()
(7)read()
(10)write()
客戶端流程
服務器端流程
等待返回結果
……
處理請求
處理結果
(6)connect()
(8)write()
負責
客戶
連接
的套
接字
套接字的出現促進了軟件從單機環境向網絡環境的發展
擴展了軟件的應用范圍
但隨著這種范圍的擴展
人們很快就不滿足于直接基于套接字的開發過程
原因:
基于套接字的開發方式較為繁瑣
軟件排錯十分困難當服務器端需要根據用戶的不同請求內容區分不同的處理過程時這些問題表現得尤其突出必須提供高層開發環境!3、軟件互操作Interoperability
PeterWegner[96]:Interoperabilityistheabilityoftwoormoresoftwarecomponentstocooperatedespitedifferencesinlanguage,interface,andexecutionplatform.
Heiler[95]:Interoperabilityamongcomponentsoflarge-scale,distributedsystemistheabilitytoexchangeservicesanddatawithoneanother.
軟件互操作是
網絡環境中應用層的某一實體使用另一實體所提供功能的直接使用
網絡應用發展三步曲:
消息傳遞互操作協同工作
消息傳遞是指具有一定結構的信息從一個結點傳輸到另外一個結點的過程。
消息傳遞突破了單機環境中通過共享內存(變量)進行信息交換的模式。通過消息的發送、消息的接收等環節,消息傳遞實現了不同運行實體間的信息交流。
消息傳遞使計算機從封閉、獨立的模式向開放、交流的模式轉變,這一轉變極大地豐富了計算機學科的研究內容與應用范圍。
消息傳遞的目的性不強,只要正確地將信息從一結點傳給另一結點即認為成功,因此對語法的要求較高。
例如:TCP/IP
消息傳遞
互操作是一個結點上的成員對另一個結點上資源的使用。互操作過程中,發送方將操作的方法與參數打包,作為一條消息進行發送,接收方則對消息頭進行解釋,并根據所載信息的含義、參數執行相應的操作。
互操作的目標在于實現操作發出方的功能調用,并提供一定的透明性支持(Transparentutility),實現不同操作空間之間的無縫連接(seamlessconnection),強調消息的語義,即消息所包含的意義。
例如:RPC、ORB、RMI
互操作協同工作是協作范圍的進一步擴展,也是消息傳遞、互操作的目標與結果。協同工作的主體既可以是人,也可以是其他的計算機資源。協同工作的目標在于完成由許多人共同承擔的大型任務。消息被傳遞后,不僅要求語法、語義正確,還要求接收方根據消息的含義進行反應,使消息體現出一定的效用,而不是被簡單的傳送。例如:CSCW
(ComputerSupportedCooperativeWork)
協同工作1、動因與實例2、工作原理3、編排/還原4、請求分派RPC1、動因與實例開發基于SOCKET的網絡軟件非常復雜 FTP TELNET位于不同機器上的軟件互操作困難
連接管理
異構導致RPC(RemoteProcedureCalling)的產生主要實例: SUN公司等提出的ONC(OpenNetworkComputing)RPC
主要由SUN予以實現 OSF(OpenSoftwareFoundation)RPC影響最大
主要由DCE(DistributedComputingEnvironment)實現 DCE是OSF提出的分布計算體系結構 2、工作原理
Deposit(1000)
繼續運行
啟動服務器上的存款過程
intDeposit(number){
returntotal+number;
}
客戶端程序
服務器端程序
以對某銀行帳戶的一個存款過程為例:NetworkLocalCallClientStubRPCInterfaceRPCInterfaceServerStubRemoteProceduresendreceivesendreceive(1)調用過程客戶端程序服務器端程序過程描述:1)客戶按本地調用的方式
直接調用本地的客戶指代(Stub)
客戶指代具有與服務器相同的過程接口2)客戶指代將客戶的調用請求進行加工、打包 向底層通信機制(如套接字)發出請求消息
客戶指代 不進行任何邏輯處理 只是一個中介3)客戶端通過底層的通信機制
將消息傳送給服務器端的底層通信機制4)服務器需要部分地解析消息
找出客戶希望調用的服務器程序5)服務器指代對消息進行解析
從中獲得調用者的參數
然后調用服務器程序6)服務器程序執行相應的過程7)服務器程序將結果返回給服務器指代8)服務器指代將結果打包
向底層通信機制發出應答消息9)服務器端通信機制將消息傳送給客戶端通信機制10)客戶端節點上也可能有多個調出點
通信機制需要部分地解析返回的消息
找出消息應該返回給哪個客戶程序
并將消息發送給對應的客戶指代11)客戶指代從消息中解析結果 返回給客戶程序(2)編排/還原客戶端指代(Stub)的主要工作包括:1)建立客戶與服務器之間的連接2)將客戶的高層調用語句打包為一條底層的請求消息
這一過程在RPC中被稱為編排(marshal)3)等待服務器返回應答消息4)將來自服務器底層的應答消息解析為可以返回的數據
這一過程在RPC中被稱為還原(unmarshal)5)將返回值傳送給客戶程序需要特別處理:
編碼、字節序等問題(3)請求分派服務器端的指代:
除了需要進行編排、還原外
還需要 區分客戶所請求的過程名
然后將客戶的請求分派(dispatch)給正確的過程“指代”目前主要被用于專門代表客戶端的代理程序 而服務器端則由新的機制予以支持 在CORBA中專門分離出了對象適配器(OA:ObjectAdaptor)
在EJB中發展出了構件容器 用于在運行過程中專門管理構件的各種狀態 此時的服務器端不僅負責請求分派 還負責向底層機制的注冊(以方便請求的定位) 以及過程的激活(以加強系統的靈活性) 等等功能三、基于RPC的開發過程1、定義并編譯接口2、編寫實現具體服務功能的代碼3、編譯、連接,產生可執行的服務器程序4、編寫客戶端代碼5、編譯、連接,產生客戶程序6、運行服務器端程序7、運行客戶端程序客戶端開發過程服務器端開發過程服務器端程序IDL編譯器(rpcgen)客戶端程序IDLaccount.haccount_clnt.caccount_svc.cserver.cclient.crpclib.o1、定義并編譯接口仍然結合銀行帳號的例子
接口定義文件account.x:programACCOUNT{versionACCOUNT_VER{intdeposit(int)=2;intwithdraw(int)=1;}=1;}=0x20010929;編譯后生成三個主要文件:
account.h account_clnt.c account_svc.c
互操作體系
---為支持應用層的某一實體使用另一實體,而制定的一套技術規范
1、底層協議2、互操作消息3、互操作接口定義4、互操作查找方式5、現有體系比較內容
互操作消息
客戶端指代
互
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業綠化拍攝方案(3篇)
- 商場靜態管理方案(3篇)
- DB23-T2932-2021-固體廢棄物堆肥處置中抗生素抗性基因檢測技術規范-黑龍江省
- DB23-T2851-2021-公共視頻監控系統運維服務規范-黑龍江省
- 華碩公司員工管理制度
- 蝦池提升改造方案(3篇)
- 綠化樹木挖除方案(3篇)
- 團隊量化考核管理制度
- 醫院集團耗材管理制度
- 喀什單位采購管理制度
- 高迪 圣家族大教堂賞析課件
- 敏捷項目管理的敏捷團隊文化
- 關于城鄉幼兒園教育差異的調研報告
- 《彈簧設計基礎知識》課件
- 廣西南寧市二中2024屆物理高一下期末質量檢測模擬試題含解析
- 美術遺存的保護與傳承
- 執業藥師課件
- TB10092-2017 鐵路橋涵混凝土結構設計規范
- 小學學科教育中的全面素質與個性發展培養
- 青年教師培養方案
- DB35∕T 516-2018 益膠泥通用技術條件
評論
0/150
提交評論