版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、中間件技術(shù),鹿旭東dongxul@sdu.edu.cn13708938881,,發(fā)展路線主要技術(shù)介紹,程序設(shè)計方法的發(fā)展,結(jié)構(gòu)化程序設(shè)計 —— 以數(shù)據(jù)為中心面向?qū)ο蟪绦蛟O(shè)計 —— 以對象為中心組件程序設(shè)計 —— 以組件為中心,,,綜合使用,軟件需求的變化,計算,,實(shí)用,管理(MIS),分布式系統(tǒng),,,,,軟件環(huán)境的變化,單任務(wù),,多任務(wù),文字界面,,圖形界面,單線程,,多線程,平臺相關(guān),,跨平臺,單機(jī)(本地),,網(wǎng)絡(luò)
2、(分布式),單一語言,,多種語言,發(fā)展路線,面向過程語言c,rpc,面向?qū)ο笳Z言java,rmi,組件,Web service,中間件技術(shù),,,分布式技術(shù),,,,,,,分布式技術(shù),分布式就是把整個網(wǎng)絡(luò)作為一臺大型計算機(jī),在不同的地方做不同的工作 分布式軟件系統(tǒng)(Distributed Software Systems)是支持分布式處理的軟件系統(tǒng),是在由通信網(wǎng)絡(luò)互聯(lián)的多處理機(jī)體系結(jié)構(gòu)上執(zhí)行任務(wù)的系統(tǒng)。它包括分布式操作系統(tǒng)、分布式程序設(shè)
3、計語言及其編譯(解釋)系統(tǒng)、分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)等分布式計算是一門計算機(jī)科學(xué),它研究如何把一個需要非常巨大的計算能力才能解決的問題分成許多小的部分,然后把這些部分分配給許多計算機(jī)進(jìn)行處理,最后把這些計算結(jié)果綜合起來得到最終的結(jié)果,,分布式計算是近年提出的一種新的計算方式。所謂分布式計算就是在兩個或多個軟件互相共享信息,這些軟件既可以在同一臺計算機(jī)上運(yùn)行,也可以在通過網(wǎng)絡(luò)連接起來的多臺計算機(jī)上運(yùn)行。分布式計算比起其它算法具有
4、以下幾個優(yōu)點(diǎn):1、稀有資源可以共享,2、通過分布式計算可以在多臺計算機(jī)上平衡計算負(fù)載,3、可以把程序放在最適合運(yùn)行它的計算機(jī)上,其中,共享稀有資源和平衡負(fù)載是計算機(jī)分布式計算的核心思想之一。,概念:類、對象,類是定義,它封裝了狀態(tài)和操作對象是實(shí)例,它反映了具體的事物,對象由類來定義一個對象可以與多個具有繼承關(guān)系的類相聯(lián)系,概念:組件,定義:可獨(dú)立發(fā)布的二進(jìn)制單元有的地方稱作“package”比喻:零件,容易混淆:服務(wù)器
5、(server)、對象,例如:COM組件、Java Applet,COM:組件,COM對象的載體包含多個COM對象進(jìn)程內(nèi)組件DLLExport Entrys進(jìn)程外組件IPC:RPC/LPC,中間件,中間件(Middleware)是一種軟件,處于系統(tǒng)軟件(操作系統(tǒng)和網(wǎng)絡(luò)軟件)與應(yīng)用軟件之間,它能使應(yīng)用軟件之間進(jìn)行跨網(wǎng)絡(luò)的協(xié)同工作(也就是互操作),這時允許各應(yīng)用軟件之下所涉及的“系統(tǒng)結(jié)構(gòu)、操作系統(tǒng)、通信協(xié)議、數(shù)據(jù)庫和其它應(yīng)
6、用服務(wù)”各不相同 中間件是一類軟件,而非一種軟件; 中間件不僅僅實(shí)現(xiàn)互連,還要實(shí)現(xiàn)應(yīng)用之間的互操作; 中間件是基于分布式處理的軟件,最突出的特點(diǎn)是其網(wǎng)絡(luò)通信功能。,現(xiàn)代應(yīng)用系統(tǒng)的基本特征,分布 任務(wù)已不只是在單機(jī)上運(yùn)行,而是由網(wǎng)絡(luò)中多臺計算機(jī)上的相關(guān)應(yīng)用共同協(xié)作完成,需考慮網(wǎng)絡(luò)傳輸、數(shù)據(jù)安全、數(shù)據(jù)一致性、同步等諸多問題;異構(gòu) 計算機(jī)硬件、操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議、數(shù)據(jù)庫系統(tǒng)以及開發(fā)工具種類繁多,需考慮數(shù)據(jù)表示、調(diào)用接口、處理方式
7、等諸多問題;動態(tài)協(xié)作 參與協(xié)作的應(yīng)用允許位置透明性、遷移透明性、負(fù)載平衡性等需求。,問題,分布異構(gòu)環(huán)境中,通常存在:多種硬件系統(tǒng)平臺,各種各樣的系統(tǒng)軟件,多種風(fēng)格各異的用戶界面,不同的網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)體系結(jié)構(gòu)連接。,,,1.1,中間件的特性,易用性位置透明性:應(yīng)用不必知道對方網(wǎng)絡(luò)和應(yīng)用的地址;不經(jīng)重新編譯,就可把一個應(yīng)用從一臺機(jī)器上轉(zhuǎn)移到另一臺機(jī)器消息傳輸?shù)耐暾裕合⒉粦?yīng)丟失或重復(fù)消息格式的完整性:消息格式不應(yīng)被破壞
8、語言透明性:使用中間件的程序應(yīng)能與另一個用不同語言編寫的程序通信;如果用不同語言重寫一個程序,其他程序應(yīng)不受影響,中間件中要解決的問題,互操作問題(通信)提供一個基本的環(huán)境(基礎(chǔ)服務(wù)),互操作問題,Stub,skeleton注冊,C語言中函數(shù)函數(shù)調(diào)用,f(int a2,int b2){ int x,y,z; … return (z)}main(){ int a1,b1,c; c=f(a1,b1);
9、},a2,b2,x,y,a1,b1,,,10,2,10,2,z,,30,,,c,30,Java中的調(diào)用,public class PassParameter{ static void showMe(int pi, Object po){ System.out.println("pi&
10、#160;= " + pi + " ; po = " + po); // Step 2 (示意圖:3-2-2) pi++; po = new
11、 Object(); System.out.println("pi = " + pi + " ; po = " + po); // Step 3 (示意圖:3-2-3)
12、0; } public static void main(String[] args){ int i = 1; Object o = new Object();
13、60; System.out.println("i = " + i + " ; o = " + o); // Step 1 (示意圖:3-1-1) showMe(i, o
14、); System.out.println("i = " + i + " ; o = " + o); // Step 4 (示意圖:3-2-3) },,int
15、60;i = 1; Object o = new Object(); System.out.println("i = " + i + " ; o = " + o); // Step 1&
16、#160;(示意圖:3-1-1),,,,,static void showMe(int pi, Object po){ System.out.println("pi = " + pi + " ; po = &q
17、uot; + po); // Step 2 (示意圖:3-2-2,,,po = new Object(); System.out.println(“pi = ” + pi + “ ; po = ”
18、160;+ po); // Step 3 (示意圖:3-2-3)……System.out.println("i = " + i + " ; o = " + o); // Step 4 (
19、示意圖:3-2-3),,Rpc的調(diào)用,從一個程序片調(diào)用另一個程序片的過程稱為遠(yuǎn)程過程調(diào)用,即RPC。RPC是一個Client/Server模型,調(diào)用程序片(本地程序)稱為rpc client,被調(diào)用程序片(遠(yuǎn)程程序)稱為rpc server。,RPC調(diào)用模型,main(…)...調(diào)用A...退出,主程序,A(…)...調(diào)用B...退出,過程A代碼,B(…).......退出,過程B代碼,
20、,,,,機(jī)器1,機(jī)器2,機(jī)器3,rmi,在分布式程序中,遠(yuǎn)程對象的方法能被運(yùn)行在不同主機(jī)上的其他java虛擬機(jī)的方法調(diào)用類似于rpc,,遠(yuǎn)程對象:方法能被不同宿主機(jī)上的Java虛擬機(jī)調(diào)用的對象。遠(yuǎn)程接口:一個聲明遠(yuǎn)程對象的方法的接口。遠(yuǎn)程服務(wù)器:創(chuàng)建遠(yuǎn)程對象的實(shí)例客戶端:使用遠(yuǎn)程對象,基本概念,存在于客戶端遠(yuǎn)程對象的本地映象:調(diào)用遠(yuǎn)程對象時,實(shí)際調(diào)用的是樁對象上的方法負(fù)責(zé)初始化并與遠(yuǎn)程對象所在的遠(yuǎn)程VM連接將參數(shù)打包,
21、傳遞到遠(yuǎn)程VM等待方法調(diào)用的結(jié)果解包返回值和異常將值返回給調(diào)用者,Stub(存根/樁),框架,存在于服務(wù)器接收客戶樁的請求和真正的遠(yuǎn)程對象進(jìn)行交互傳送服務(wù)器響應(yīng)到客戶負(fù)責(zé)解包客戶端輸入的遠(yuǎn)程方法的參數(shù)調(diào)用實(shí)際的遠(yuǎn)程對象的方法將結(jié)果打包返回給調(diào)用者傳至遠(yuǎn)程引用層,RMI 系統(tǒng)體系結(jié)構(gòu),,Client Virtual Machine,,Client,,Server Virtual Machine,Stub,,Remot
22、e Object,,Skeleton,,,,,Registry Virtual Machine,“Fred”,,Server,,RMI 流程(1),,Client Virtual Machine,,Client,,Server Virtual Machine,Stub,,Remote Object,,Skeleton,,,,,Registry Virtual Machine,“Fred”,,Server,,,1,2,,1. Server
23、 Creates Remote Object2. Server Registers Remote Object,RMI 流程(2),,Client Virtual Machine,,Client,,Server Virtual Machine,Stub,,Remote Object,,Skeleton,,,,,Registry Virtual Machine,“Fred”,,Server,,,4,,3. Client requests
24、 object from Registry4. Registry returns remote reference(and stub gets created),3,RMI 流程(3),,Client Virtual Machine,,Client,,Server Virtual Machine,Stub,,Remote Object,,Skeleton,,,,,Registry Virtual Machine,“Fred”,,Se
25、rver,,6,5. Client invokes stub method6. Stub talks to skeleton7. Skeleton invokes remote object method,5,7,CORBA,,,客戶程序與對象實(shí)現(xiàn)之間的界面(interface)是對象的接口定義,對象接口是服務(wù)雙方共同訂立的合約對象實(shí)現(xiàn)可以采用多種方式實(shí)現(xiàn):獨(dú)立服務(wù)程序,一個程序庫,被包裝的非面向?qū)ο髴?yīng)用程序等對象接口是
26、對象結(jié)構(gòu)與行為的外部可見的規(guī)格說明,用IDL描述對象實(shí)現(xiàn)提供對象內(nèi)部的具體數(shù)據(jù)表示與可執(zhí)行代碼,同一接口的實(shí)現(xiàn)可采用不同語言編寫所有接口均未規(guī)定組件的具體實(shí)現(xiàn),為開發(fā)的實(shí)現(xiàn)活動留下自由,corba靜態(tài)工作方式,客戶,對象實(shí)現(xiàn),IDL stubs客戶方代理,Static IDL skeleton服務(wù)方代理,ORB內(nèi)核,,,對象適配器OA,,ORB內(nèi)核,基礎(chǔ)服務(wù),定位消息安全事件事務(wù)數(shù)據(jù),Web Service的概念,提供
27、一個與操作系統(tǒng)無關(guān)、與程序設(shè)計語言無關(guān)、與機(jī)器類型無關(guān)、與運(yùn)行環(huán)境無關(guān)的平臺,實(shí)現(xiàn)網(wǎng)絡(luò)上應(yīng)用的共享A Service is a piece of software that is not tightly coupled with Client applications. Services are dynamically discoverable and composable entitiesWeb服務(wù)的體系結(jié)構(gòu)與Web應(yīng)用的N層結(jié)構(gòu)
28、類似,區(qū)別在于頂層的面向?yàn)g覽器的Web Server被面向程序的(Web Service Client)的Web服務(wù)所取代。,Web Service特點(diǎn),Web 服務(wù)是用標(biāo)準(zhǔn)的、規(guī)范的 XML 概念描述一些操作的接口(利用標(biāo)準(zhǔn)化的 XML 消息傳遞機(jī)制可以通過網(wǎng)絡(luò)訪問這些操作)該接口隱藏了實(shí)現(xiàn)服務(wù)的細(xì)節(jié),允許獨(dú)立于實(shí)現(xiàn)服務(wù)所基于的硬件或軟件平臺和編寫服務(wù)所用的編程語言使用服務(wù)。Web 服務(wù)履行一項特定的任務(wù)或一組任務(wù)。Web 服務(wù)
29、可以單獨(dú)或同其它 Web 服務(wù)一起用于實(shí)現(xiàn)復(fù)雜的聚集或商業(yè)交易,,部署在Web上的對象,對象界面描述: WSDL對象訪問: SOAP對象界面發(fā)現(xiàn): UDDI對象實(shí)現(xiàn): EJB, COM+, CORBA以及任何可用于對象實(shí)現(xiàn)的技術(shù),UDDI,WSDL,SOAP,EJB/COM+/CORBA,Web Service架構(gòu),ServiceProvider,ServiceBroker,ServiceRequester,Find,Bin
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- unimedia融合媒體中間件 呼叫中心中間件 東進(jìn)中間件
- 中間件.dwg
- 中間件.dwg
- 中間件.dwg
- 中間件.dwg
- 基于文件的消息中間件技術(shù).pdf
- 中間件運(yùn)維服務(wù)
- 中間件技術(shù)在銀行中間業(yè)務(wù)中的應(yīng)用.pdf
- 消息中間件技術(shù)的研究和實(shí)踐.pdf
- 基于中間件技術(shù)的異構(gòu)數(shù)據(jù)集成.pdf
- 網(wǎng)格中間件關(guān)鍵技術(shù)研究.pdf
- 基于中間件技術(shù)的仿真系統(tǒng)構(gòu)造.pdf
- RFID中間件技術(shù)及應(yīng)用研究.pdf
- 移動計算中間件研究
- 基于開放實(shí)現(xiàn)原理的中間件——反射中間件的研究.pdf
- 基于中間件技術(shù)的應(yīng)用研究.pdf
- 基于XML的WEB服務(wù)中間件技術(shù).pdf
- 基于Agent的中間件技術(shù)研究.pdf
- RFID中間件內(nèi)存索引技術(shù)研究.pdf
- 電信應(yīng)用系統(tǒng)中間件技術(shù)研究.pdf
評論
0/150
提交評論