中間件-0技術(shù)概述_第1頁(yè)
已閱讀1頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、中間件技術(shù),鹿旭東dongxul@sdu.edu.cn13708938881,,發(fā)展路線主要技術(shù)介紹,程序設(shè)計(jì)方法的發(fā)展,結(jié)構(gòu)化程序設(shè)計(jì) —— 以數(shù)據(jù)為中心面向?qū)ο蟪绦蛟O(shè)計(jì) —— 以對(duì)象為中心組件程序設(shè)計(jì) —— 以組件為中心,,,綜合使用,軟件需求的變化,計(jì)算,,實(shí)用,管理(MIS),分布式系統(tǒng),,,,,軟件環(huán)境的變化,單任務(wù),,多任務(wù),文字界面,,圖形界面,單線程,,多線程,平臺(tái)相關(guān),,跨平臺(tái),單機(jī)(本地),,網(wǎng)絡(luò)

2、(分布式),單一語(yǔ)言,,多種語(yǔ)言,發(fā)展路線,面向過程語(yǔ)言c,rpc,面向?qū)ο笳Z(yǔ)言java,rmi,組件,Web service,中間件技術(shù),,,分布式技術(shù),,,,,,,分布式技術(shù),分布式就是把整個(gè)網(wǎng)絡(luò)作為一臺(tái)大型計(jì)算機(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、計(jì)語(yǔ)言及其編譯(解釋)系統(tǒng)、分布式文件系統(tǒng)和分布式數(shù)據(jù)庫(kù)系統(tǒng)等分布式計(jì)算是一門計(jì)算機(jī)科學(xué),它研究如何把一個(gè)需要非常巨大的計(jì)算能力才能解決的問題分成許多小的部分,然后把這些部分分配給許多計(jì)算機(jī)進(jìn)行處理,最后把這些計(jì)算結(jié)果綜合起來(lái)得到最終的結(jié)果,,分布式計(jì)算是近年提出的一種新的計(jì)算方式。所謂分布式計(jì)算就是在兩個(gè)或多個(gè)軟件互相共享信息,這些軟件既可以在同一臺(tái)計(jì)算機(jī)上運(yùn)行,也可以在通過網(wǎng)絡(luò)連接起來(lái)的多臺(tái)計(jì)算機(jī)上運(yùn)行。分布式計(jì)算比起其它算法具有

4、以下幾個(gè)優(yōu)點(diǎn):1、稀有資源可以共享,2、通過分布式計(jì)算可以在多臺(tái)計(jì)算機(jī)上平衡計(jì)算負(fù)載,3、可以把程序放在最適合運(yùn)行它的計(jì)算機(jī)上,其中,共享稀有資源和平衡負(fù)載是計(jì)算機(jī)分布式計(jì)算的核心思想之一。,概念:類、對(duì)象,類是定義,它封裝了狀態(tài)和操作對(duì)象是實(shí)例,它反映了具體的事物,對(duì)象由類來(lái)定義一個(gè)對(duì)象可以與多個(gè)具有繼承關(guān)系的類相聯(lián)系,概念:組件,定義:可獨(dú)立發(fā)布的二進(jìn)制單元有的地方稱作“package”比喻:零件,容易混淆:服務(wù)器

5、(server)、對(duì)象,例如:COM組件、Java Applet,COM:組件,COM對(duì)象的載體包含多個(gè)COM對(duì)象進(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é)同工作(也就是互操作),這時(shí)允許各應(yīng)用軟件之下所涉及的“系統(tǒng)結(jié)構(gòu)、操作系統(tǒng)、通信協(xié)議、數(shù)據(jù)庫(kù)和其它應(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ò)中多臺(tái)計(jì)算機(jī)上的相關(guān)應(yīng)用共同協(xié)作完成,需考慮網(wǎng)絡(luò)傳輸、數(shù)據(jù)安全、數(shù)據(jù)一致性、同步等諸多問題;異構(gòu) 計(jì)算機(jī)硬件、操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議、數(shù)據(jù)庫(kù)系統(tǒng)以及開發(fā)工具種類繁多,需考慮數(shù)據(jù)表示、調(diào)用接口、處理方式

7、等諸多問題;動(dòng)態(tài)協(xié)作 參與協(xié)作的應(yīng)用允許位置透明性、遷移透明性、負(fù)載平衡性等需求。,問題,分布異構(gòu)環(huán)境中,通常存在:多種硬件系統(tǒng)平臺(tái),各種各樣的系統(tǒng)軟件,多種風(fēng)格各異的用戶界面,不同的網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)體系結(jié)構(gòu)連接。,,,1.1,中間件的特性,易用性位置透明性:應(yīng)用不必知道對(duì)方網(wǎng)絡(luò)和應(yīng)用的地址;不經(jīng)重新編譯,就可把一個(gè)應(yīng)用從一臺(tái)機(jī)器上轉(zhuǎn)移到另一臺(tái)機(jī)器消息傳輸?shù)耐暾裕合⒉粦?yīng)丟失或重復(fù)消息格式的完整性:消息格式不應(yīng)被破壞

8、語(yǔ)言透明性:使用中間件的程序應(yīng)能與另一個(gè)用不同語(yǔ)言編寫的程序通信;如果用不同語(yǔ)言重寫一個(gè)程序,其他程序應(yīng)不受影響,中間件中要解決的問題,互操作問題(通信)提供一個(gè)基本的環(huán)境(基礎(chǔ)服務(wù)),互操作問題,Stub,skeleton注冊(cè),C語(yǔ)言中函數(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)用,從一個(gè)程序片調(diào)用另一個(gè)程序片的過程稱為遠(yuǎn)程過程調(diào)用,即RPC。RPC是一個(gè)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)程對(duì)象的方法能被運(yùn)行在不同主機(jī)上的其他java虛擬機(jī)的方法調(diào)用類似于rpc,,遠(yuǎn)程對(duì)象:方法能被不同宿主機(jī)上的Java虛擬機(jī)調(diào)用的對(duì)象。遠(yuǎn)程接口:一個(gè)聲明遠(yuǎn)程對(duì)象的方法的接口。遠(yuǎn)程服務(wù)器:創(chuàng)建遠(yuǎn)程對(duì)象的實(shí)例客戶端:使用遠(yuǎn)程對(duì)象,基本概念,存在于客戶端遠(yuǎn)程對(duì)象的本地映象:調(diào)用遠(yuǎn)程對(duì)象時(shí),實(shí)際調(diào)用的是樁對(duì)象上的方法負(fù)責(zé)初始化并與遠(yuǎn)程對(duì)象所在的遠(yuǎn)程VM連接將參數(shù)打包,

21、傳遞到遠(yuǎn)程VM等待方法調(diào)用的結(jié)果解包返回值和異常將值返回給調(diào)用者,Stub(存根/樁),框架,存在于服務(wù)器接收客戶樁的請(qǐng)求和真正的遠(yuǎn)程對(duì)象進(jìn)行交互傳送服務(wù)器響應(yīng)到客戶負(fù)責(zé)解包客戶端輸入的遠(yuǎn)程方法的參數(shù)調(diào)用實(shí)際的遠(yuǎn)程對(duì)象的方法將結(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,,,客戶程序與對(duì)象實(shí)現(xiàn)之間的界面(interface)是對(duì)象的接口定義,對(duì)象接口是服務(wù)雙方共同訂立的合約對(duì)象實(shí)現(xiàn)可以采用多種方式實(shí)現(xiàn):獨(dú)立服務(wù)程序,一個(gè)程序庫(kù),被包裝的非面向?qū)ο髴?yīng)用程序等對(duì)象接口是

26、對(duì)象結(jié)構(gòu)與行為的外部可見的規(guī)格說(shuō)明,用IDL描述對(duì)象實(shí)現(xiàn)提供對(duì)象內(nèi)部的具體數(shù)據(jù)表示與可執(zhí)行代碼,同一接口的實(shí)現(xiàn)可采用不同語(yǔ)言編寫所有接口均未規(guī)定組件的具體實(shí)現(xiàn),為開發(fā)的實(shí)現(xiàn)活動(dòng)留下自由,corba靜態(tài)工作方式,客戶,對(duì)象實(shí)現(xiàn),IDL stubs客戶方代理,Static IDL skeleton服務(wù)方代理,ORB內(nèi)核,,,對(duì)象適配器OA,,ORB內(nèi)核,基礎(chǔ)服務(wù),定位消息安全事件事務(wù)數(shù)據(jù),Web Service的概念,提供

27、一個(gè)與操作系統(tǒng)無(wú)關(guān)、與程序設(shè)計(jì)語(yǔ)言無(wú)關(guān)、與機(jī)器類型無(wú)關(guān)、與運(yùn)行環(huán)境無(wú)關(guān)的平臺(tái),實(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ù)所基于的硬件或軟件平臺(tái)和編寫服務(wù)所用的編程語(yǔ)言使用服務(wù)。Web 服務(wù)履行一項(xiàng)特定的任務(wù)或一組任務(wù)。Web 服務(wù)

29、可以單獨(dú)或同其它 Web 服務(wù)一起用于實(shí)現(xiàn)復(fù)雜的聚集或商業(yè)交易,,部署在Web上的對(duì)象,對(duì)象界面描述: WSDL對(duì)象訪問: SOAP對(duì)象界面發(fā)現(xiàn): UDDI對(duì)象實(shí)現(xiàn): EJB, COM+, CORBA以及任何可用于對(duì)象實(shí)現(xiàn)的技術(shù),UDDI,WSDL,SOAP,EJB/COM+/CORBA,Web Service架構(gòu),ServiceProvider,ServiceBroker,ServiceRequester,Find,Bin

溫馨提示

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

評(píng)論

0/150

提交評(píng)論