新闻中心

EEPW首页>手机与无线通信>设计应用> 移动通信中RMI技术及其应用

移动通信中RMI技术及其应用

作者: 时间:2009-08-05 来源:网络 收藏

从图1中可见,体系结构是由多层组成的。stub/skeleton层中使用了存(stub) 框架(ske1eton) 的方法来隐藏底层通讯的实现细节。stub代表远程对象的客户端对象。具有和远程对象相同的接口或方法列表。当客户端程序调用远程对象的方法时.实际上调用的是stub对象中的方法.stub将请求转发到远程对象。服务器端的skeleton对象负责将stub传来的信息解码。并将解码后的信息交给实际的远程对象进行处理.远程对象处理完毕后将结果传给skeleton对象。再由skeleton对象传给客户端的stub对象,最后stub对象将这些信息传给客户端程序。
3.2中Java智能卡的

除了与J2SE中的非常相似外, 由于智能卡资源的局限,Java智能卡中的RMI与J2SE中的RMI技术是有所区别的。在Java智能卡中,JavaCard小程序是服务器.主程序是客户端。Java智能卡RMI与J2SE中的RMI的主要区别体现在如下几点:

1)J2SE中的RMI协议通信是通过远程接口实现的存根与远程接口实现的框架完成的,而在Java智能卡中的RMI应用中。客户端应用程序与服务器端应用程序的通信过程是先获取一个RMIService服务,然后由该服务程序再与服务器的应用进行通信。

2)在Java智能卡的RMI模型中。APDU(Applicafion PintocolData Unit,应用协议数据单元)通信的过程被抽象化。不是直接通过APDU命令完成,而是通过处理对象的方式完成的。

3)Java智能卡RMI模型中的软件包与J2SE中RMI的软件也有不同,分别是jave. rmi与javacard.framework.service。其中java.rmi包中定义了Remote接口与RemoteExcepfion类,而javacard.framework.service软件包中定义了JavaCard小应用程序服务类, 包括CardRemoteObject和RMISenrice类。CardRemoteObject类中定义了启动和禁止卡外对象远程访问的方法。而RMIServiee用于处理RMI请求并转化输入的APDU命令为远程方法调用。

编写一个Jaya智能卡的应用程序一般要包含以下几步(下面给出的是典型的电子钱包的例子):

1)定义一个远程服务的接口

该接口负责定义Jaya智能卡小应用程序所能提供的服务,同样该接口必须扩展java.rmi.Remote。
import java.rmi.*;
importjavaeard.framework.*;
public interface EPInterfaee extends Remote {
public short getBalance0 throw RemoteExeeption;
//有关电子钱包应用中的方法声明
...

2)编写远程类的服务器实现和相应的支持类

在Java智能卡中,小应用程序是RMI服务器端,一个典型的小应用程序如图2所示n1:
图中MyRemoteC1ass是远程服务器类.可以实现远程接口MyRemote来实现Remote。也可以通过扩展一个相应的智能卡远程对象类f图中(CardRemoteObject)来实现Remote。总之所有远程应用的实现类都必须实现Remote接口 RMIService负责将APDU调用转换为RMI调用.Dispatcher负责将收到的APDU命令分发给RMIService 从图中可知,服务器的实现主要包括Jaya智能卡小应用程序、远程服务接口的实现类及与应用程序相关的类。下面是小应用程序的结构:



评论


相关推荐

技术专区

关闭