欢迎您访问郑州兴邦电子股份有限公司官方网站!
阿里巴巴诚信通企业
全国咨询热线:40000-63966
兴邦电子,中国水控机第一品牌

联系兴邦电子

全国咨询热线:40000-63966

售后:0371-55132951/55132952

工厂:河南省 郑州市 高新区莲花街电子电器产业园

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

文章出处:http://www.singbon.com 作者:史建成 李萍   人气: 发表时间:2011年09月26日

[文章内容简介]:RMI(Remote Method Invocation,远程方法调用)技术是开发Java分布式网络应用的核心技术。本文阐述了移动通信中Jaya智能卡的主要特点。分析了J2SE中RMI技术的体系结构,研究了Java智能卡RMI体系的特点以及与J2SE中的RblI的主要区别,并给出了移动通信中Java智能卡RMI应用程序的开发步骤。

    1.引言

    Java智能卡(Java Card)技术在第三代移动通信(3G)中有着极其广泛的应用。Jaya 智能卡的出现。使多个应用程序可共存于一张智能卡中。这些应用可以来自同一个卡供应商。也可以来自不同的卡供应商。用户只需刷新智能卡上的程序。就可以得到不同的应用。运营商及开发商摆脱了对卡商的依赖。大大降低了成本。在移动通信的SIM卡中,Java智能卡的应用越来越广泛,景极其看好。由于SIM卡使用Java智能卡的量越来越多,使用频率越来越高。为了更好地发挥网络及其分布在网络中的计算机的处理能力。移动通信中Java智能卡RMI技术在开发应用中变得越来越重要。

    2.移动通信中Java智能卡的主要特点

    移动通信中,Java智能卡是指运行Java小应用程序的智能卡。卡上必须存在相应的Java虚拟机。符合Java Card技术规范的小应用程序可以运行在该虚拟机上。SUN公司提出了有关Java Card技术规范。包括有关在智能卡上创建Java Card虚拟机和应用编程接口(API)的详细信息。与传统的智能卡系统相比,Java智能卡平台主要有以下特点:

    1.跨平台性

    移动通信中目前大部分SIM 卡已经支持了Java卡的技术规范,凡符合Java卡API技术规范的Java卡Applets都可以运行在Java卡运行环境(JCRE:Java Card Runtime Environment)。允许开发人员使用相同的Java卡Applets在不同厂商的智能卡上运行,实现了一次程序编写到处运行的功能 即通过JVM 的机制达到跨平台的目的。

    2.应用开发便捷性

    对于移动通信中Java智能卡上的应用,开发人员无需了解复杂的智能卡硬件和智能卡专用的技术,就可以进行智能卡应用的开发,从而大大减少开发时间,降低开发难度和成本。而且可以使原来的Java程序开发人员来编写智能卡程序。人力资源得到充分的利用,更好地满足了应用程序成倍增长的需要,同时也是时代发展的需要。

    3.安全性

    在移动通信中,Java智能卡最关键的问题之一。安全性牵涉到多个方面。Java智能卡系统的安全性模式在很多方面作了改进,它的安全策略由Java卡虚拟机(JCVM)和Java卡运行环境共同实现。考虑到智能卡的应用范围和应用场合的特殊性,Java卡支持保护数据的完整性,防止对于敏感数据没有认证的访问。

    4.多应用性

    在一个Jaya卡运行环境中可以运行多种功能差异很大的不同的应用(Applets),譬如手机上网,移动证券交易,手机玩游戏等等。这些应用既可以来自同一个卡供应商也可以来自不同的卡供应商,这是新一代手机的很重要特点。

    3.RMI技术与移动通信中智能卡的RMI技术及其应用

    3.1 RMI技术

    J2SE中的RMI(Remote Method Invocation,远程方法调用)技术是开发Java分布式网络应用的核心技术与传统的RPC(Remote Procedure Call,远程过程调用)调用远程过程不同,RMI用于调用远程对象中的方法。支持存储于不同地址空间的对象之间的彼此通信。让位于不同JVM 空间中的对象在外观行为上都像是本地的对象一样使用。是纯粹面向对象的Java程序中开发网络分布式应用系统的核心解决方案。

    用RMI开发的应用程序由服务器端程序和客户端程序二部分组成。服务器端程序在运行时会创建多个对象实例f称为远程对象),这些对象实例用于向客户提供某种服务。同时服务器端打开监听端口等待客户端程序调用。客户端程序在运行时通过RMI机制从服务器中得到远程对象的引用。调用其中的方法。

    RMI的体系结构可以用图1表示:

RMI的体系结构

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

    3.2 移动通信中Java智能卡的RMI技术及其应用

    除了与J2SE中的RMI技术非常相似外, 由于智能卡资源的局限,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.*;
    import javaeard.framework.*;
    public interface EPInterfaee extends Remote {
    public short getBalance0 throw RemoteExeeption;
    //有关电子钱包应用中的方法声明
    ...
    } 

第1页第2页

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

    在Java智能卡中,小应用程序是RMI服务器端,一个典型的小应用程序如图2所示:

典型的JavaCard RMI应用程序结构


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

小应用程序的结构


    3)写使用远程服务类的客户机端程序

    客户端程序通常包括初始化OpenCard框架、等待新卡插入、获取OCFCardAccessor实例、创建JavaCardRMIConnect实例及选择智能卡Applet和调用远程对象的方法。(限于篇幅,程序略)

    3.3移动通信中Java智能卡的RMI程序的流程Java智能卡的RMI程序的流程可用下图[l]表示。
    图中HostAppheafion是客户端应用程序。通过传送APDUs到卡上的JCRE进行RMI调用。依次传送到智能卡上的小应用程序f图中的(MyApplet)。 小应用程序通过Dispatcher将收到的APDUs命令分发给RMIService。RMIService逐个处理APDU并将这些命令转化为远程方法调用。

    4.小结 

Java智能卡RMI模型的应用程序流程

    移动通信中Java智能卡的应用越来越广,在目前的软件设计中。分布式程序设计越来越被软件开发人员重视。在移动通信中随着应用范围的不断扩展。程序和需要处理的数据流量将会有一个非常大的膨胀。而这些程序和处理的数据以及实际的计算都会广泛地分布在网络上。基于RMI的应用既可以共享网络及网络中计算机等软硬件的资源。也可以平衡各个计算机的处理能力。

第1页第2页

本文关键词:rmi,java智能卡,sim卡,移动通,mi,java智能卡,sim卡,移动通信
回到顶部