<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > Java智能卡中移動(dòng)通信中RMI技術(shù)及其應用

Java智能卡中移動(dòng)通信中RMI技術(shù)及其應用

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

1.引言

Java智能卡(Java Card)技術(shù)在第三代移動(dòng)通信中有著(zhù)極其廣泛的應用。Jaya智能卡的出現.使多個(gè)應用程序可共存于一張智能卡中.這些應用可以來(lái)自同一個(gè)卡供應商。也可以來(lái)自不同的卡供應商.用戶(hù)只需刷新智能卡上的程序。就可以得到不同的應用.運營(yíng)商及開(kāi)發(fā)商擺脫了對卡商的依賴(lài)。大大降低了成本。在移動(dòng)通信的SIM卡中,Java智能卡的應用越來(lái)越廣泛,景極其看好。由于SIM卡使用Java智能卡的量越來(lái)越多,使用頻率越來(lái)越高。為了更好地發(fā)揮網(wǎng)絡(luò )及其分布在網(wǎng)絡(luò )中的計算機的處理能力。移動(dòng)通信中Java智能卡RMI技術(shù)在開(kāi)發(fā)應用中變得越來(lái)越重要。

2.移動(dòng)通信中Java智能卡的主要特點(diǎn)

移動(dòng)通信中,Java智能卡是指運行Java小應用程序的智能卡??ㄉ媳仨毚嬖谙鄳腏ava虛擬機。符合Java Card技術(shù)規范的小應用程序可以運行在該虛擬機上 SUN公司提出了有關(guān)Java Card技術(shù)規范.包括有關(guān)在智能卡上創(chuàng )建Java Card虛擬機和應用編程接1:3(API)的詳細信息。與傳統的智能卡系統相比,Java智能卡平臺主要有以下特點(diǎn):

1.跨平臺性

移動(dòng)通信中目前大部分SIM 卡已經(jīng)支持了Java卡的技術(shù)規范.凡符合Java卡API技術(shù)規范的Java卡Applets都可以運行在Java卡運行環(huán)境(JCRE:Java Card Runtime Environment).允許開(kāi)發(fā)人員使用相同的Java卡Applets在不同廠(chǎng)商的智能卡上運行,實(shí)現了一次程序編寫(xiě)到處運行的功能 即通過(guò)JVM 的機制達到跨平臺的目的。

2.應用開(kāi)發(fā)便捷性

對于移動(dòng)通信中Java智能卡上的應用,開(kāi)發(fā)人員無(wú)需了解復雜的智能卡硬件和智能卡專(zhuān)用的技術(shù),就可以進(jìn)行智能卡應用的開(kāi)發(fā),從而大大減少開(kāi)發(fā)時(shí)間,降低開(kāi)發(fā)難度和成本。而且可以使原來(lái)的Java程序開(kāi)發(fā)人員來(lái)編寫(xiě)智能卡程序。人力資源得到充分的利用,更好地滿(mǎn)足了應用程序成倍增長(cháng)的需要.同時(shí)也是時(shí)代發(fā)展的需要。

3.安全性

在移動(dòng)通信中,Java智能卡最關(guān)鍵的問(wèn)題之一。安全性牽涉到多個(gè)方面。Java智能卡系統的安全性模式在很多方面作了改進(jìn),它的安全策略由Java卡虛擬機fJCVM)和Java卡運行環(huán)境共同實(shí)現??紤]到智能卡的應用范圍和應用場(chǎng)合的特殊性,Java卡支持保護數據的完整性,防止對于敏感數據沒(méi)有認證的訪(fǎng)問(wèn)。

4.多應用性

在一個(gè)Jaya卡運行環(huán)境中可以運行多種功能差異很大的不同的應用(Applets),譬如手機上網(wǎng),移動(dòng)證券交易,手機玩游戲等等.這些應用既可以來(lái)自同一個(gè)卡供應商也可以來(lái)自不同的卡供應商,這是新一代手機的很重要特點(diǎn)。

3.RMI技術(shù)與移動(dòng)通信中智能卡的RMI技術(shù)及其應用

3.1 RMI技術(shù)

J2SE中的RMI(Remote Method Invocation,遠程方法調用)技術(shù)是開(kāi)發(fā)Java分布式網(wǎng)絡(luò )應用的核心技術(shù)與傳統的RPC(Remote Procedure Call,遠程過(guò)程調用)調用遠程過(guò)程不同,RMI用于調用遠程對象中的方法.支持存儲于不同地址空間的對象之間的彼此通信。讓位于不同JVM 空間中的對象在外觀(guān)行為上都像是本地的對象一樣使用。是純粹面向對象的Java程序中開(kāi)發(fā)網(wǎng)絡(luò )分布式應用系統的核心解決方案。

用RMI開(kāi)發(fā)的應用程序由服務(wù)器端程序和客戶(hù)端程序二部分組成。服務(wù)器端程序在運行時(shí)會(huì )創(chuàng )建多個(gè)對象實(shí)例f稱(chēng)為遠程對象).這些對象實(shí)例用于向客戶(hù)提供某種服務(wù)。同時(shí)服務(wù)器端打開(kāi)監聽(tīng)端口等待客戶(hù)端程序調用??蛻?hù)端程序在運行時(shí)通過(guò)RMI機制從服務(wù)器中得到遠程對象的引用。調用其中的方

RMI的體系結構可以用圖1表示:

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

3.2 移動(dòng)通信中Java智能卡的RMI技術(shù)及其應用

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

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

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

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

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

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

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

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

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

3)寫(xiě)使用遠程服務(wù)類(lèi)的客戶(hù)機端程序

客戶(hù)端程序通常包括初始化OpenCard框架、等待新卡插入、獲取OCFCardAccessor實(shí)例、創(chuàng )建JavaCardRMIConnect實(shí)例及選擇智能卡Applet和調用遠程對象的方法。(限于篇幅,程序略)

3.3移動(dòng)通信中Java智能卡的RMI程序的流程Java智能卡的RMI程序的流程可用下圖[l]表示。
圖中HostAppheafion是客戶(hù)端應用程序。通過(guò)傳送APDUs到卡上的JCRE進(jìn)行RMI調用。依次傳送到智能卡上的小應用程序f圖中的(MyApplet)。 小應用程序通過(guò)Dis.Datcher將收到的APDUs命令分發(fā)給RMIService。RMIService逐個(gè)處理APDU并將這些命令轉化為遠程方法調用。

4.小結

移動(dòng)通信中Java智能卡的應用越來(lái)越廣,在目前的軟件設計中。分布式程序設計越來(lái)越被軟件開(kāi)發(fā)人員重視。在移動(dòng)通信中隨著(zhù)應用范圍的不斷擴展。程序和需要處理的數據流量將會(huì )有一個(gè)非常大的膨脹。而這些程序和處理的數據以及實(shí)際的計算都會(huì )廣泛地分布在網(wǎng)絡(luò )上?;赗MI的應用既可以共享網(wǎng)絡(luò )及網(wǎng)絡(luò )中計算機等軟硬件的資源。也可以平衡各個(gè)計算機的處理能力。



評論


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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>