移动通信中RMI技术及其应用 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

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

来源:中国一卡通网  作者:史建成 李萍  发布时间:2008-12-19 09:38:38  字体:[ ]

关键字:rmi  java智能卡  sim卡  移动通信  

摘   要: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;
    //有关电子钱包应用中的方法声明
    ...
    } 

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖