IO模塊,基于分布多主機(jī)的IO資源在系統(tǒng)無(wú)需修改,實(shí)現(xiàn)跨主機(jī)的資源的訪問(wèn)和管理,根據(jù)不同的協(xié)議和系統(tǒng)架構(gòu)可以開(kāi)發(fā)出不同的分布式系統(tǒng),IO模塊主要通過(guò)RMI、EJB、CORNA、COM/DCOM來(lái)實(shí)現(xiàn)分布式系統(tǒng)技術(shù)。
一、遠(yuǎn)程方法調(diào)用
1.RMI
RMI是運(yùn)行在不同計(jì)算機(jī)上的Java對(duì)象通過(guò)遠(yuǎn)程方法調(diào)用來(lái)進(jìn)行通信,這些方法調(diào)用和對(duì)同一程序中對(duì)象的操作是一樣的。RMI使得Java遠(yuǎn)程服務(wù)程序和訪問(wèn)這些服務(wù)程序的Java客戶程序的編寫(xiě)工作變得輕松、簡(jiǎn)單。
2.遠(yuǎn)程方法調(diào)用的工作方式
1、RMI服務(wù)器:包括遠(yuǎn)程對(duì)象,提供RMI服務(wù),并用rmiregistry在注冊(cè)處注冊(cè),獲取服務(wù)名。
RMI客戶:引用遠(yuǎn)程對(duì)象,在RMI注冊(cè)處查找注冊(cè)服務(wù),獲取對(duì)遠(yuǎn)程對(duì)象的引用。
2、RMI服務(wù)器與RMI客戶之間的交互方式
客戶端的存根對(duì)象:充當(dāng)代理對(duì)象,向RMI服務(wù)器傳達(dá)請(qǐng)求,等待響應(yīng),返回結(jié)果給應(yīng)用程序。
服務(wù)器端的骨架對(duì)象:復(fù)雜監(jiān)聽(tīng)傳入的RMI請(qǐng)求,把它們傳遞給RMI服務(wù),骨架對(duì)象將結(jié)果回送給客戶的存根對(duì)象。
3.RMI實(shí)現(xiàn)
實(shí)現(xiàn)遠(yuǎn)程方法調(diào)用RMI、通常包括以下4個(gè)步驟:
1、定義一個(gè)擴(kuò)展了遠(yuǎn)程接口的接口,該接口中的每一個(gè)方法必須聲明它將產(chǎn)生一個(gè)RemoteException異常。
2、定義一個(gè)實(shí)現(xiàn)該接口的類(lèi)作為服務(wù)器。
3、創(chuàng)建客戶程序。
4、編譯和執(zhí)行服務(wù)器和客戶。
二、EJB
EJB組件類(lèi)型:在EJB規(guī)范中定義了三種類(lèi)型的組件:會(huì)話組件、實(shí)體組件、消息驅(qū)動(dòng)組件
EJB的開(kāi)發(fā)和部署: 需要對(duì)開(kāi)發(fā)工具進(jìn)行一定的配置后連接服務(wù)器,完成EJB組件的開(kāi)發(fā)、部署、測(cè)試和客戶端程序的設(shè)計(jì)。EJB組件基于分布式對(duì)象處理技術(shù),EJB是設(shè)計(jì)成運(yùn)行在服務(wù)器上,并由客戶機(jī)調(diào)用的非可視遠(yuǎn)程對(duì)象。
三、CORNA
什么是CORNA?CORNA就是公用對(duì)象/組件請(qǐng)求代理體系結(jié)構(gòu),是對(duì)象管理組織OMG公布的關(guān)于對(duì)象交互的規(guī)范,支持不同的網(wǎng)絡(luò)操作系統(tǒng)和高級(jí)語(yǔ)言編程??梢允褂枚喾N語(yǔ)言來(lái)編寫(xiě)CORNA對(duì)象和組件以及客戶程序,
CORNA體系結(jié)構(gòu):CORNA由協(xié)同運(yùn)作的對(duì)象和應(yīng)用程序集合構(gòu)成。
四、COM/DCOM
什么是COM?COM是一個(gè)說(shuō)明如何建立可動(dòng)態(tài)交互組件的規(guī)范,它定義了一些為保證能互操作,客戶組件必須遵循的標(biāo)準(zhǔn)。
COM特性:建立在二進(jìn)制層次上的標(biāo)準(zhǔn),程序與程序之間的通信建立在此基礎(chǔ)上
COM規(guī)范:定義了大量的標(biāo)準(zhǔn)接口用于各種用途
分布式塊存儲(chǔ)對(duì)內(nèi)核文件系統(tǒng)無(wú)特性假設(shè),節(jié)點(diǎn)變化無(wú)需人工參與即可恢復(fù),數(shù)據(jù)動(dòng)態(tài)均衡負(fù)載,支持虛擬機(jī)的熱遷移。