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