新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 移動(dòng)通信中RMI技術(shù)及其應(yīng)用

移動(dòng)通信中RMI技術(shù)及其應(yīng)用

作者: 時(shí)間:2009-08-05 來(lái)源:網(wǎng)絡(luò) 收藏

從圖1中可見(jiàn),體系結(jié)構(gòu)是由多層組成的。stub/skeleton層中使用了存(stub) 框架(ske1eton) 的方法來(lái)隱藏底層通訊的實(shí)現(xiàn)細(xì)節(jié)。stub代表遠(yuǎn)程對(duì)象的客戶端對(duì)象。具有和遠(yuǎn)程對(duì)象相同的接口或方法列表。當(dāng)客戶端程序調(diào)用遠(yuǎn)程對(duì)象的方法時(shí).實(shí)際上調(diào)用的是stub對(duì)象中的方法.stub將請(qǐng)求轉(zhuǎn)發(fā)到遠(yuǎn)程對(duì)象。服務(wù)器端的skeleton對(duì)象負(fù)責(zé)將stub傳來(lái)的信息解碼。并將解碼后的信息交給實(shí)際的遠(yuǎn)程對(duì)象進(jìn)行處理.遠(yuǎn)程對(duì)象處理完畢后將結(jié)果傳給skeleton對(duì)象。再由skeleton對(duì)象傳給客戶端的stub對(duì)象,最后stub對(duì)象將這些信息傳給客戶端程序。
3.2 中Java智能卡的

除了與J2SE中的非常相似外, 由于智能卡資源的局限,Java智能卡中的RMI與J2SE中的RMI技術(shù)是有所區(qū)別的。在Java智能卡中,JavaCard小程序是服務(wù)器.主程序是客戶端。Java智能卡RMI與J2SE中的RMI的主要區(qū)別體現(xiàn)在如下幾點(diǎn):

1)J2SE中的RMI協(xié)議通信是通過(guò)遠(yuǎn)程接口實(shí)現(xiàn)的存根與遠(yuǎn)程接口實(shí)現(xiàn)的框架完成的,而在Java智能卡中的RMI應(yīng)用中??蛻舳藨?yīng)用程序與服務(wù)器端應(yīng)用程序的通信過(guò)程是先獲取一個(gè)RMIService服務(wù),然后由該服務(wù)程序再與服務(wù)器的應(yīng)用進(jìn)行通信。

2)在Java智能卡的RMI模型中。APDU(Applicafion PintocolData Unit,應(yīng)用協(xié)議數(shù)據(jù)單元)通信的過(guò)程被抽象化。不是直接通過(guò)APDU命令完成,而是通過(guò)處理對(duì)象的方式完成的。

3)Java智能卡RMI模型中的軟件包與J2SE中RMI的軟件也有不同,分別是jave. rmi與javacard.framework.service。其中java.rmi包中定義了Remote接口與RemoteExcepfion類(lèi),而javacard.framework.service軟件包中定義了JavaCard小應(yīng)用程序服務(wù)類(lèi), 包括CardRemoteObject和RMISenrice類(lèi)。CardRemoteObject類(lèi)中定義了啟動(dòng)和禁止卡外對(duì)象遠(yuǎn)程訪問(wèn)的方法。而RMIServiee用于處理RMI請(qǐng)求并轉(zhuǎn)化輸入的APDU命令為遠(yuǎn)程方法調(diào)用。

編寫(xiě)一個(gè)Jaya智能卡的應(yīng)用程序一般要包含以下幾步(下面給出的是典型的電子錢(qián)包的例子):

1)定義一個(gè)遠(yuǎn)程服務(wù)的接口

該接口負(fù)責(zé)定義Jaya智能卡小應(yīng)用程序所能提供的服務(wù),同樣該接口必須擴(kuò)展java.rmi.Remote。
import java.rmi.*;
importjavaeard.framework.*;
public interface EPInterfaee extends Remote {
public short getBalance0 throw RemoteExeeption;
//有關(guān)電子錢(qián)包應(yīng)用中的方法聲明
...

2)編寫(xiě)遠(yuǎn)程類(lèi)的服務(wù)器實(shí)現(xiàn)和相應(yīng)的支持類(lèi)

在Java智能卡中,小應(yīng)用程序是RMI服務(wù)器端,一個(gè)典型的小應(yīng)用程序如圖2所示n1:
圖中MyRemoteC1ass是遠(yuǎn)程服務(wù)器類(lèi).可以實(shí)現(xiàn)遠(yuǎn)程接口MyRemote來(lái)實(shí)現(xiàn)Remote。也可以通過(guò)擴(kuò)展一個(gè)相應(yīng)的智能卡遠(yuǎn)程對(duì)象類(lèi)f圖中(CardRemoteObject)來(lái)實(shí)現(xiàn)Remote??傊羞h(yuǎn)程應(yīng)用的實(shí)現(xiàn)類(lèi)都必須實(shí)現(xiàn)Remote接口 RMIService負(fù)責(zé)將APDU調(diào)用轉(zhuǎn)換為RMI調(diào)用.Dispatcher負(fù)責(zé)將收到的APDU命令分發(fā)給RMIService 從圖中可知,服務(wù)器的實(shí)現(xiàn)主要包括Jaya智能卡小應(yīng)用程序、遠(yuǎn)程服務(wù)接口的實(shí)現(xiàn)類(lèi)及與應(yīng)用程序相關(guān)的類(lèi)。下面是小應(yīng)用程序的結(jié)構(gòu):



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉