?? 構(gòu)建步驟.txt
字號(hào):
===============================================================
三層:
===============================================================
1. 樁和構(gòu)架層:是應(yīng)用程序?qū)优c系統(tǒng)其他部分的接口,生成代理類(Proxy),
使用對(duì)象序列化傳輸數(shù)據(jù),此層不處理任何特定的傳輸。樁負(fù)責(zé)與客戶端的交互,
而構(gòu)架層負(fù)責(zé)服務(wù)器,調(diào)用實(shí)際的遠(yuǎn)程對(duì)象,將返回值序列化為流,并傳輸給客戶
2. 遠(yuǎn)程引用層:負(fù)責(zé)為獨(dú)立于客戶樁和服務(wù)器構(gòu)架的多種形式的遠(yuǎn)程引用和調(diào)用協(xié)議提供支持
3. 傳輸層:在不同的地址空間內(nèi)傳輸序列化的流,負(fù)責(zé)建立到遠(yuǎn)程地址空間的連接,管理連接,
監(jiān)聽外來調(diào)用
===============================================================
編譯和運(yùn)行的步驟
===============================================================
1. 使用javac編譯遠(yuǎn)程接口類、遠(yuǎn)程接口實(shí)現(xiàn)類、客戶機(jī)程序
2. 使用rmic編譯器聲稱實(shí)現(xiàn)類的stub和skeleton
3. 啟動(dòng)RMI注冊(cè)服務(wù)程序rmiregistry
4. 啟動(dòng)服務(wù)器端程序
5. 啟動(dòng)客戶端程序
===============================================================
類結(jié)構(gòu)
===============================================================
(1)輔助類 Request.java(序列化操作)
|
WorkRequest.java(繼承上面的類,抽象類)
|
MyCalculation.java(繼承上面的類,進(jìn)行計(jì)算和相應(yīng)的動(dòng)作)
(2)服務(wù)器端 RmtServer.java(遠(yuǎn)程接口,函數(shù)參數(shù)為WorkRequest類)
|
MyServer.java(實(shí)現(xiàn)上面的接口中的操作)
(3)客戶端 MyClient.java
===============================================================
具體的操作
===============================================================
1. prompt> rmic com.test.MyServer,編譯后生成兩個(gè)文件:MyServer_Stub.class,MyServer_Skel.class
stub是客戶端的代理,skeleton是服務(wù)器的框架
要復(fù)制RmtServer,MyServer_Stub到客戶端上(如果不是在一個(gè)機(jī)器上)
2. prompt> start rmiregistry,起動(dòng)注冊(cè)程序
prompt> rmiregistry portNumber,要修改端口時(shí)使用的命令
3. 在服務(wù)器端增加一條安全策略,為文件policy.txt(放在classes目錄下)
4. prompt> java -Djava.security.policy=policy.txt com.test.MyServer
5. prompt> java com.test.MyClient host
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -