歡迎您訪問鄭州興邦電子股份有限公司官方網(wǎng)站!
阿里巴巴誠信通企業(yè)
全國咨詢熱線:40000-63966
興邦電子,中國水控機(jī)第一品牌

聯(lián)系興邦電子

全國咨詢熱線:40000-63966

售后:0371-55132951/55132952

工廠:河南省 鄭州市 高新區(qū)蓮花街電子電器產(chǎn)業(yè)園

基于UML建模語言的開放式智能卡應(yīng)用模型

文章出處:http://m.compasssalessolutions.com 作者:邵 華,王恒奎,王東琳   人氣: 發(fā)表時(shí)間:2011年10月09日

[文章內(nèi)容簡介]:基于開放式智能卡應(yīng)用模型(OpenCard Framewok)和虛擬機(jī)技術(shù)提出了一種開放式智能卡平臺,基于這個(gè)平臺的智能卡可擁有多個(gè)應(yīng)用程序,并可以動態(tài)地裝載、卸除和管理應(yīng)用程序。文中通過UML(Unified Modeling Language,統(tǒng)一建模語言)描述了開放式智能卡系統(tǒng)中的應(yīng)用模型的面向?qū)ο蠼Y(jié)構(gòu),剖析它的組織及其各部分之間的關(guān)系,闡述智能卡的諸多特點(diǎn)在此模型中的實(shí)現(xiàn)機(jī)理。重點(diǎn)介紹了開放式智能卡應(yīng)用模型的研究。

    1 概述
 
    1.1開放式智能卡概述
 
    隨著Internet在電子商務(wù)和人類生活中占有越來越重要的地位,人們對認(rèn)證和安全交易的要求也越來越高。智能卡具有體積小、輕便易攜帶、可以自行存儲和處理數(shù)據(jù)并執(zhí)行加密解密操作等優(yōu)點(diǎn),與網(wǎng)絡(luò)服務(wù)的結(jié)合還使它成為一個(gè)可以方便地存儲用戶密鑰和下載保密數(shù)據(jù)的設(shè)備。
 
    智能卡中包含CPU、RAM、EEPROM、ROM和I/O,如同一部規(guī)模較小的電腦。智能卡的軟件結(jié)構(gòu)由操作系統(tǒng)、虛擬機(jī)、智能卡應(yīng)用模型及其具體應(yīng)用服務(wù)程序所構(gòu)成,如圖1所示。

    在此結(jié)構(gòu)中,最底層的操作系統(tǒng)負(fù)責(zé)底層硬件的管理;虛擬機(jī)這一層隱藏了不同的操作系統(tǒng)平臺,解釋執(zhí)行用類匯編語言表示的應(yīng)用程序;開放式智能卡應(yīng)用模型定義了一整套編程接口類,提供應(yīng)用程序需要的統(tǒng)一的應(yīng)用環(huán)境;應(yīng)用程序提供具體的智能卡服務(wù)。
          
    1.2 開放式智能卡應(yīng)用模型概述
 
    當(dāng)今智能卡的功能及其終端(讀卡設(shè)備)由于制造商的不同而種類繁多,使得智能卡的應(yīng)用程序很難在不同智能卡開發(fā)平臺(智能卡的終端,智能卡操作系統(tǒng)和編程環(huán)境)之間移植;另外開發(fā)智能卡所使用的編程語言比較低級,開發(fā)困難、成本高。
 
    開放式智能卡模型的提出滿足了智能卡應(yīng)用開發(fā)的不同部分的需要,使得這些部分可以分別由應(yīng)用程序開發(fā)者、智能卡發(fā)行商、智能卡開發(fā)者、智能卡終端開發(fā)者來完成,并都可以獨(dú)立開發(fā)并兼容使用。應(yīng)用程序開發(fā)者希望開發(fā)的智能卡應(yīng)用程序能夠在不同發(fā)行商發(fā)行的卡上運(yùn)行,相應(yīng)的智能卡發(fā)行商也希望能夠采用不同應(yīng)用程序開發(fā)者提供的應(yīng)用程序,自由地選擇操作系統(tǒng)而能適用于所有應(yīng)用程序,任意地選擇卡終端提供者所提供的裝置和硬件驅(qū)動。開放式智能卡應(yīng)用模型使得每個(gè)角色不需要隨著任何其它部件的更新而改變,每個(gè)角色所完成的功能獨(dú)立而協(xié)同。
 
    2 基于UML的開放式智能卡應(yīng)用模型
 
    本文描述了一種位于智能卡應(yīng)用程序和智能卡平臺之間的中間層,即開放式智能卡應(yīng)用模型(Open Card Framework)來解決以上這些問題。目的是為了:
 
    (1) 高層APIs(Application Program Interfaces)標(biāo)準(zhǔn)化:智能卡及其終端是通過交換命令對APDU(Application Protocol Data Unit)來完成各種各樣的功能,而對于不同的智能卡終端交互的機(jī)制是不同的,模型必須提供標(biāo)準(zhǔn)接口隱藏這些機(jī)制的復(fù)雜性。
 
    (2)智能卡終端透明。智能卡的終端各式各樣(如POS機(jī),指紋錄入設(shè)備),模型應(yīng)盡可能隱藏設(shè)備的具體特征,并透明地提供它們的功能。
 
    (3) 智能卡操作系統(tǒng)透明。一定的命令集完成一定的任務(wù),智能卡操作系統(tǒng)將這些命令集包裝起來,只提供給應(yīng)用程序相應(yīng)的接口。不同的操作系統(tǒng)提供的接口是不同的,框架應(yīng)隱藏這些接口的不同。
 
    (4) 智能卡的發(fā)行商透明。智能卡的發(fā)行商決定了智能卡上所裝載的應(yīng)用程序及其組織,框架同樣要隱藏這些管理和組織的細(xì)節(jié)。
 
    (5) 可擴(kuò)展性:中間層必須能夠滿足未來的技術(shù)發(fā)展需要。
 
    開放式智能卡應(yīng)用模型是基于智能卡應(yīng)用的面向?qū)ο罂蚣?,是給智能卡開發(fā)者提供的統(tǒng)一框架,它符合ISO7816相關(guān)標(biāo)準(zhǔn)的特點(diǎn)使得開放式智能卡應(yīng)用模型可以適用于任何智能卡種類[4]。
 
    開放式智能卡應(yīng)用模型將應(yīng)用系統(tǒng)的任務(wù)按照它們的共性和個(gè)性分成兩個(gè)部分,分別是智能卡終端組件(Card Terminal Package)和智能卡服務(wù)組件(Card Service Package).UML是一種能夠?qū)?yīng)用程序中的信息用標(biāo)準(zhǔn)的圖形元素直觀顯示的建模語言,它是面向?qū)ο蠓治雠c設(shè)計(jì)的一種標(biāo)準(zhǔn)表示,本文通過UML對開放式智能卡應(yīng)用模型建立相關(guān)模型。下面將用UML具體解釋它們的任務(wù)及其內(nèi)部關(guān)系。
 
    2.1 智能卡終端組件的建模
 
    智能卡終端組件包含所有與智能卡終端相關(guān)的類,是由智能卡終端開發(fā)商提供的。主要任務(wù)是提供對智能卡物理終端的訪問,并可動態(tài)地添加和刪除智能卡終端。下面介紹這個(gè)組件中主要的類及它們之間的關(guān)系:
 
    類CardTerminal:從各種智能卡終端抽象出來可被繼承的類,由其對應(yīng)的CardTerminalFactory生產(chǎn)得到。
 
    類CardTerminalRegistry:這個(gè)類只有唯一一個(gè)實(shí)例,管理應(yīng)用系統(tǒng)中安裝的所有智能卡終端,可對CardTerminal進(jìn)行實(shí)例注冊、注銷等操作。
 
    類CardTerminalFactory:同特定的工廠生產(chǎn)一定的產(chǎn)品一樣,不同的智能卡終端制造商提供具體的CardTerminalFactory子類,由這些子類生產(chǎn)對應(yīng)的CardTerminal實(shí)例。
 
    類SlotChannel:向插入插槽的智能卡發(fā)送和接收APDU命令對的通道。
 
    運(yùn)用abstract factory和singleton模式[1]構(gòu)建開放式智能卡應(yīng)用模型的終端組件??蚣苤兴蠧ardTerminal實(shí)例都要在CardTerminalRegistry 的唯一實(shí)例中注冊, 然后由CardTerminalRegistry決定用哪家制造商提供的CardTerminal 實(shí)例,用UML表示的智能卡終端組件靜態(tài)類圖如圖2所示。
 

    在開放式智能卡應(yīng)用模型中,智能卡插入讀卡器或移除的動作觸發(fā)外部應(yīng)用系統(tǒng)獲得對象CardTerminal,此對象利用CardID(與插入的智能卡一一對應(yīng)的)表示所插入的智能卡,并通過對象SlotChannel與智能卡傳遞APDU。相關(guān)的靜態(tài)類圖用UML表示如圖3所示。
 

    2.2 智能卡服務(wù)組件的建模
 
    智能卡所提供的服務(wù)是通過外部應(yīng)用和智能卡之間的交互(交換APDU命令對)來完成的。在開放式智能卡應(yīng)用模型中,這些命令集被集成在卡上的服務(wù)中,外部應(yīng)用只需通過標(biāo)準(zhǔn)的APIs來訪問這些服務(wù)即可。這個(gè)框架還應(yīng)具有可擴(kuò)展性,能夠添加新的服務(wù)模塊。下面介紹這個(gè)組件中主要的類及其關(guān)系:

    類CardService:這是一個(gè)抽象類,其意義是卡上的服務(wù),它的子類通過包裝一系列APDUs來提供具體的服務(wù)內(nèi)容。如子類FileSystemCardService是為了完成訪問智能卡的文件系統(tǒng)的任務(wù)。
 
    類CardServiceFactory:同類CardTerminalFactory功能相似,應(yīng)用服務(wù)商提供自己的CardServiceFactory代表其自身, 由CardServiceFactory產(chǎn)生它們各種服務(wù)即一些CardService實(shí)例。

    類CardServiceRegistry:管理卡上的所有CardService對象,包括不同應(yīng)用服務(wù)商提供的服務(wù)。
 
    類CardServiceSheduler:為服務(wù)所需的通信安排通道,給CardService對象提供一個(gè)邏輯通道發(fā)送接收命令對來完成任務(wù)。
  
    類SmartCard:外部系統(tǒng)通過它訪問開放式智能卡應(yīng)用模型來完成智能卡服務(wù)。
 
    類似CardTerminal部件,CardServiceRegistry對象管理卡上所有的服務(wù)。當(dāng)應(yīng)用程序?qū)Σ迦氲闹悄芸ㄒ笠粋€(gè)特定的服務(wù)如電子錢包服務(wù),CardServiceRegistry詢問所注冊的所有CardServiceFactory子類是否能為這張智能卡提供需要的服務(wù),一旦某個(gè)CardServiceFactory子類如PurseServiceFactory說明它能提供電子錢包服務(wù)PurseService,于是子類PurseServiceFactory生產(chǎn)出服務(wù)實(shí)例PurseService。這個(gè)部件的靜態(tài)類圖如圖4所示。
 

    CardServiceScheduler為具體的服務(wù)實(shí)例和智能卡一一對應(yīng)的SmartCard實(shí)例安排邏輯通道CardChannel,進(jìn)行APDU的交換。一旦完成任務(wù)它就釋放這個(gè)CardChannel實(shí)例,以便將其提供給別的服務(wù)。這些動作都是由智能卡插入讀卡終端或移除觸發(fā)的事件CardTerminalEvent引起的,其靜態(tài)類圖如圖5。
 

    2.3 智能卡的應(yīng)用服務(wù)
 
    在開放式智能卡模型中還需要建立一些重要的應(yīng)用服務(wù),對于大多數(shù)智能卡來說這些服務(wù)是必需的。

    類CardManagementCardService是為了在能夠在一張智能卡上裝載、運(yùn)行、管理多個(gè)應(yīng)用程序,它是類CardSevice的子類。
 
    類FileSystemCardService提供了一系列接口來訪問操作

    系統(tǒng)中的文件系統(tǒng)。
 
    類SignatureCardService進(jìn)行安全管理,用來完成持卡人的身份認(rèn)證、文件訪問權(quán)限控制、安全報(bào)文傳輸、數(shù)據(jù)加密和解密等任務(wù)。
 
    其它應(yīng)用程序也可以利用以上這些類完成相應(yīng)的服務(wù)。外部應(yīng)用智能卡服務(wù)的系統(tǒng)都是通過在2.2節(jié)中提到的類SmartCard訪問整個(gè)應(yīng)用模型。我們給出一個(gè)服務(wù)應(yīng)用實(shí)例化過程,表現(xiàn)出對象之間是如何配合完成功能。假設(shè)外部應(yīng)用需要一個(gè)A CardService對象,整個(gè)動態(tài)過程用UML的動態(tài)Collabartion框圖表示如圖6所示。
 

    3 總結(jié)

    開放式智能卡的應(yīng)用框架的提出給應(yīng)用程序開發(fā)者、智能卡和智能卡終端投資商等帶來了極大的方便。使得智能卡的應(yīng)用實(shí)現(xiàn)了從“一對一”到“多對多”的轉(zhuǎn)換,并為開放式智能卡應(yīng)用構(gòu)造了一個(gè)統(tǒng)一標(biāo)準(zhǔn)結(jié)構(gòu)。
 
   (1) 對于遵循開放式智能卡應(yīng)用框架應(yīng)用程序,可以適用于任何一張開放式智能卡,應(yīng)用程序不需重復(fù)開發(fā),開發(fā)費(fèi)用大大減少。
 
    (2) 對于遵循開放式智能卡應(yīng)用框架開發(fā)的智能卡,不僅可裝載不同組織提供的多個(gè)應(yīng)用程序,且一旦運(yùn)用環(huán)境變化,可方便地裝載和卸載來更換卡上的應(yīng)用程序。

    本文描述的開放式智能卡應(yīng)用框架滿足了應(yīng)用程序的開放性和獨(dú)立性,不需要像傳統(tǒng)式智能卡的應(yīng)用程序都是為操作系統(tǒng)和芯片量身定做。

本文關(guān)鍵詞:UML,建模語言,智能卡
回到頂部