本發(fā)明涉及USBkey
技術(shù)領域:
,具體涉及一種客戶端和UI交互方法。
背景技術(shù):
:USBKey是一種以USB為接口標準的硬件設備,它內(nèi)置單片機或智能卡芯片,具備密碼運算功能,有一定容量的私密存儲空間,可以存儲用戶的私鑰以及數(shù)字證書,利用USBKey內(nèi)置的公鑰算法實現(xiàn)對用戶身份的認證,由于用戶私鑰保存在密碼鎖中,理論上使用任何方式都無法讀取,因此保證了用戶認證的安全性。隨著互聯(lián)網(wǎng)和電子商務的發(fā)展,USBKey作為網(wǎng)絡用戶身份識別和數(shù)據(jù)保護的“電子鑰匙”,正在被越來越多的用戶所認識和使用。USBkey與上位機(客戶端)連接進行UI數(shù)據(jù)交互的過程中,需要在上位機中安裝USBKey中間件,上位機中的上層安全應用(應用層)通過調(diào)用USBKey中間件,USBkey中間件通過USB驅(qū)動與USBKey主芯片進行APDU指令交互。但在實際應用中,對于某一操作系統(tǒng),一般會有多個發(fā)行版分支,如對于Linux操作系統(tǒng),就有Ubuntu、Fedora、Debian等多個發(fā)行版分支,不同的Linux發(fā)行版中搭載的桌面環(huán)境、窗口管理器、圖形應用程序框架(下文中簡稱為UI框架)等都不盡相同。即使是相同的Linux發(fā)行版,USBKey產(chǎn)品的終端用戶所使用的系統(tǒng)環(huán)境配置通常也各有差異。在UI應用程序開發(fā)階段,不同的UI框架意味著不同的UI設計概念、不同的UI調(diào)用接口約定、不同的數(shù)據(jù)結(jié)構(gòu)定義、不同的編譯依賴環(huán)境。因此,要實現(xiàn)針對不同的系統(tǒng)UI框架部署USBKey中間件,通常意味著需要分別開發(fā)多款軟件產(chǎn)品。在不改變用戶系統(tǒng)環(huán)境配置的前提下,如何使包含UI交互功能的USBKey中間件運行在更多不同版本的系統(tǒng)中,一直是個難題。技術(shù)實現(xiàn)要素:針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種客戶端和UI交互方法,實現(xiàn)具有UI交互功能的USBkey中間件多種不同的UI框架運行環(huán)境下的正常運行。為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:一種客戶端,所述客戶端中安裝有USBkey中間件,所述USBkey中間件包括UI組件和非UI組件,所述UI組件是指USBkey中間件中所有涉及到UI交互功能的部分;所述UI組件包括若干個針對不同UI框架運行環(huán)境實現(xiàn)的UI模塊;USBkey中間件根據(jù)其所在客戶端的UI框架運行環(huán)境啟用相應的UI模塊;所述USBkey中間件還包括:UI通信接口UI_API:用于非UI組件與UI組件之間采用進程通信方式進行通信。進一步,如上所述的一種客戶端,所述USBkey中間件還包括:UI接口庫,用于封裝存儲UI調(diào)用原語;所述UI調(diào)用原語為根據(jù)USBkey中間件所涉及的UI交互場景確定的、非UI組件和UI組件之間約定的、與操作系統(tǒng)平臺無關(guān)的原語;所述非UI組件與UI組件之間采用所述UI調(diào)用原語進行通信。進一步,如上所述的一種客戶端,所述UI框架運行環(huán)境包括Linux操作系統(tǒng)下的Java運行環(huán)境、Qt運行環(huán)境和GTK運行環(huán)境。進一步,如上所述的一種客戶端,所述USBkey中間件還包括:UI組件管理接口,用于對USBkey中間件的UI組件進行管理;所述管理包括對UI模塊的增加、修改或刪除。本發(fā)明實施例中還提供了基于所述客戶端的一種UI交互方法,包括以下步驟:USBkey中間件根據(jù)其運行所在的客戶端的UI框架運行環(huán)境,確定并啟用其與所述UI框架運行環(huán)境相應的UI模塊;USBkey中間件的非UI組件通過進程間通信方式向所啟用的UI模塊發(fā)送UI請求信息,UI模塊根據(jù)接收到的UI請求信息調(diào)用客戶端的UI接口完成相應的UI交互動作。進一步,如上所述的一種UI交互方法,非UI組件采用UI調(diào)用原語向UI模塊發(fā)送UI請求信息;所述調(diào)用原語為根據(jù)USBkey中間件所涉及的UI交互場景確定的、非UI組件和UI組件之間約定的、與操作系統(tǒng)平臺無關(guān)的原語。進一步,如上所述的一種UI交互方法,所述UI交互場景包括用戶密碼獲取和驗證、提示用戶按鍵、提供用戶選擇列表供用戶選擇。進一步,如上所述的一種UI交互方法,所述UI調(diào)用原語包括UI會話開始原語BeginSession、UI會話結(jié)束原語EndSession、密碼輸入對話框顯示原語PIN_Show、用戶密碼獲取原語PIN_GetPIN、密碼錯誤提示及重新輸入原語PIN_Retry、密碼輸入框關(guān)閉原語PIN_Finish、等待對話框顯示原語Waiting_Show、等待對話框關(guān)閉原語Waiting_Finish、列表選擇框顯示原語List_Show、以及用戶選擇項獲取及對話框關(guān)閉原語List_GetSel。進一步,如上所述的一種UI交互方法,USBkey中間件根據(jù)客戶端的UI框架運行環(huán)境,確定并運行其與所述UI框架運行環(huán)境相應的UI模塊,包括:非UI組件依次向若干個UI模塊發(fā)送UI會話開始原語,將在設定時間內(nèi)接收到響應數(shù)據(jù)的UI模塊,確定為與UI框架運行環(huán)境相對應的UI模塊。進一步,如上所述的一種UI交互方法,USBkey中間件根據(jù)客戶端的UI框架運行環(huán)境,確定并運行其與所述UI框架運行環(huán)境相應的UI組件,包括:USBkey中間件向客戶端發(fā)送獲取UI框架運行環(huán)境的請求信息;USBkey中間件根據(jù)客戶端返回的UI框架運行環(huán)境信息確定并運行其與所述UI框架運行環(huán)境相應的UI模塊。本發(fā)明的有益效果在于:本發(fā)明所提供的客戶端和UI交互方法,通過將具有UI交互功能的USBkey中間件中的UI模塊剝離出來,并設置了適用于不同UI框架運行環(huán)境的UI組件,使USBkey中間件能夠適用于不同的UI框架運行環(huán)境下,解決了因UI框架不同帶來的USBkey中間件的部署難題。附圖說明圖1為本發(fā)明具體實施方式中一種客戶端的結(jié)構(gòu)示意圖;圖2為本發(fā)明具體實施方式中非UI組件與UI組件通信的示意圖;圖3為本發(fā)明具體實施方式中一種UI交互方法的流程示意圖;圖4為本發(fā)明具體實施方式中各UI調(diào)用原語之間的狀態(tài)機轉(zhuǎn)換示意圖。具體實施方式下面結(jié)合說明書附圖與具體實施方式對本發(fā)明做進一步的詳細說明。圖1示出了本發(fā)明具體實施方式中一種客戶端的結(jié)構(gòu)示意圖,由圖中可以看出,該客戶端中安裝有USBkey中間件,所述USBkey中間件包括UI組件10和非UI組件20,所述UI組件10是指USBkey中間件中所有涉及到UI交互功能的部分;所述UI組件10包括若干個針對不同UI框架運行環(huán)境實現(xiàn)的UI模塊11;USBkey中間件根據(jù)其所在客戶端的UI框架運行環(huán)境啟用相應的UI模塊;為了實現(xiàn)UI組件10和非UI之間的數(shù)據(jù)交互,所述USBkey中間件還包括UI通信接口UI_API30,非UI組件20與UI組件10之間通過該通信接口采用進程通信方式進行通信。本實施方式中,所述的客戶端是可與USBkey進行通信連接,并能夠通過網(wǎng)絡等方式與USBkey簽名驗證服務器連接并進行數(shù)據(jù)交互的設備,包括但不限于PC等。所述USBkey中間件是USBkey設備提供商提供,USBkey中間件最初是存儲于USBkey中的,在USBkey與客戶端首次連接時,會將USBkey中間件安裝于客戶端中,是用于操作USBkey的軟件。USBKey中間件實現(xiàn)了一組公共接口,提供依賴于USBKey的密碼學功能服務,如加密解密、簽名驗簽、管理密鑰和容器、管理證書等。USBKey中間件通過USB驅(qū)動與USBKey主芯片進行APDU指令交互,上層的安全應用只需要調(diào)用中間件提供的接口即可實現(xiàn)密碼學應用。本實施方式中所提供的客戶端,將其所安裝的USBkey中間件中的所有涉及UI(UserInterface)交互功能的UI組件10分離出來,并針對不同的UI框架運行環(huán)境分別設置了若干個適用于不同UI框架運行環(huán)境的UI模塊11,從而使得USBkey中間件能夠運行在更多的UI框架運行環(huán)境中,即使用戶的客戶端的UI框架運行環(huán)境發(fā)生變化,也能夠選擇對應的UI模塊實現(xiàn)正常的UI交互,而無需針對不同的UI框架運行環(huán)境單獨開發(fā)不同的USBkey中間件產(chǎn)品。此外,通過將UI組件10和非UI組件20分離,如果需要USBkey中間件支持新的UI框架運行環(huán)境(USBkey中間件沒有對應的UI模塊時)或?qū)χ虚g件中涉及UI交互功能的部分進行修改時,只需要開發(fā)新的UI模塊或?qū)I模塊進行修改即可,而無需對USBkey中間件的非UI組件進行改動,大大降低了工作量,提高了更新效率。本實施方式中,所述UI框架運行環(huán)境包括但不限于Linux操作系統(tǒng)下的Java運行環(huán)境、Qt運行環(huán)境和GTK運行環(huán)境等,相應的,所述UI組件包括了基于Java、Qt、GTK實現(xiàn)的UI模塊,即分別對應于三種UI框架分別編寫三種對應的用于實現(xiàn)UI交互功能的UI模塊。在實際應用中,USBkey中間件由上層安全應用調(diào)用,本實施方式中,USB中間件中除上述UI組件10外,其它部分(包括所述非UI部分和UI通信接口UI_API)都運行在上層安全應用軟件開始的進程中,UI組件是基于不同UI框架開發(fā)的UI應用程序,具有獨立的進程,因此,USBkey中間件的非UI組件與UI組件10的UI模塊11之間可以采用進程間通信方式進行數(shù)據(jù)交互。本實施方式中,所述USBkey中間件還包括UI組件通信接口UI_API,如圖2所示,USBkey中間件的非UI組件所在的應用進程通過UI_API接口與UI模塊所在的UI應用程序進程(UI進程)進行通訊,圖中,UI_Server與UI_Resource分別表示UI進程所對應UI服務器和服務器所需的資源。本實施方式中,為了提高非UI組件20與UI模塊11之間的數(shù)據(jù)傳輸效率,所述USBkey中間件還包括UI接口庫,UI接口庫用于封裝存儲UI調(diào)用原語,所述UI調(diào)用原語為根據(jù)USBkey中間件所涉及的UI交互場景確定的、非UI組件和UI組件之間約定的、與操作系統(tǒng)平臺無關(guān)的原語。非UI組件20與UI組件10之間通過所述UI通信接口UI_API30調(diào)用UI接口庫中的UI調(diào)用原語實現(xiàn)數(shù)據(jù)交互,實現(xiàn)了USBkey中間件的非UI組件通過平臺無關(guān)的UI調(diào)用原語與UI組件的UI模塊通過進程間通訊實現(xiàn)UI交互操作,使USBkey中間件能夠運行在多種不同UI框架的操作系統(tǒng)下。為實現(xiàn)對UI組件10中UI模塊11的管理,本發(fā)明的一個實施例中,所述USBkey中間件還包括UI組件管理接口40。所述UI組件單元管理接口40,用于對USBkey中間件的UI組件進行管理;所述管理包括對UI模塊的增加、修改或刪除等?;趫D1中所示的客戶端,本實施方式中還提供了一種UI交互方法,如圖3所示,該方法主要包括以下步驟:步驟S1:USBkey中間件根據(jù)其運行所在的客戶端的UI框架運行環(huán)境,確定并運行其與所述UI框架運行環(huán)境相應的UI模塊;步驟S2:USBkey中間件的非UI組件采用進程間通信方式向所啟用的UI模塊發(fā)送UI請求信息,UI模塊根據(jù)接收到的UI請求信息調(diào)用客戶端的UI接口完成相應的UI交互動作。本實施方式中,所述非UI組件采用相應的UI調(diào)用原語向UI模塊發(fā)送UI請求信息,其中,UI調(diào)用原語為根據(jù)USBkey中間件所涉及的UI交互場景確定的、USBey中間件的非UI組件和UI組件之間約定的、與操作系統(tǒng)平臺無關(guān)的UI調(diào)用原語。所述UI交互場景是指USBkey中間件在處理USBkey業(yè)務流程時,所涉及的與用戶界面顯示有關(guān)的應用場景,包括用戶密碼獲取和驗證、提示用戶按鍵、以及提供用戶選擇列表供用戶選擇等。所述UI調(diào)用原語只描述一種抽象的UI展示或交互行為,與客戶端的系統(tǒng)UI框架所提供的UI功能無關(guān),由USBkey中間件的非UI組件與UI組件相互約定,UI調(diào)用原語封裝于USBkey中間件中的UI接口庫中,非UI組件所在的上層安全應用進程根據(jù)需要通過調(diào)用UI接口庫中對應含義的UI調(diào)用原語,向UI組件的某一UI模塊所在的進程完成UI請求信息的發(fā)送。本實施方式中,所述UI調(diào)用原語及各原語的功能如下表所示。UI調(diào)用原語功能BeginSession開始一個UI會話EndSession結(jié)束一個UI會話PIN_Show顯示密碼輸入對話框PIN_GetPIN獲取用戶輸入的密碼PIN_Retry提示用戶密碼錯誤,重新輸入PIN_Finish關(guān)閉密碼輸入對話框Waiting_Show顯示等待對話框Waiting_Finish關(guān)閉等待對話框List_Show顯示列表選擇框List_GetSel獲取用戶選擇項,關(guān)閉對話框由上表可以看出,所述調(diào)用原語包括但不限于UI會話開始原語BeginSession、UI會話結(jié)束原語EndSession、密碼輸入對話框顯示原語PIN_Show、用戶密碼獲取原語PIN_GetPIN、密碼錯誤提示及重新輸入原語PIN_Retry、密碼輸入框關(guān)閉原語PIN_Finish、等待對話框顯示原語Waiting_Show、等待對話框關(guān)閉原語Waiting_Finish、列表選擇框顯示原語List_Show、以及用戶選擇項獲取及對話框關(guān)閉原語List_GetSel。當然,也可以根據(jù)實際需要采用其它調(diào)用原語。本實施方式中,上述各調(diào)用原語之間的狀態(tài)機轉(zhuǎn)換如圖4所示。本發(fā)明的一個實施例中,USBkey中間件根據(jù)客戶端的UI框架運行環(huán)境,確定并運行其與所述UI框架運行環(huán)境相應的UI模塊的一種方式為:USBkey中間件的非UI組件依次向UI組件的其若干個UI模塊發(fā)送UI會話開始原語,將在設定時間內(nèi)接收到響應數(shù)據(jù)的UI模塊,確定為與UI框架運行環(huán)境相對應的UI模塊。USBkey中間件的非UI組件調(diào)用UI接口庫中的BeginSession原語時(向UI組件的UI模塊通過進程間通訊方式發(fā)送UI會話開始原語),依次向各個UI模塊分別發(fā)送該原語,嘗試建立兩者之間的連接,如果向某一UI模塊發(fā)送該原語后,在設定時間內(nèi)接收到了應答數(shù)據(jù),則確定該有應答的UI模塊即為與USBkey中間件運行所在的UI框架運行環(huán)境相匹配,則啟用該UI模塊以完成后續(xù)的UI交互流程。在實際應用中,USBkey會先嘗試連接已運行的UI模塊(當前的前一次運行的UI模塊),如果連接未被響應,則會再向其它UI模塊依次發(fā)送UI會話開始原語,直到該連接請求被某一UI模塊響應,如果所有UI模塊均未響應,則提示UI模塊啟動失敗。本發(fā)明的另一個實施例中,USBkey中間件根據(jù)客戶端的UI框架運行環(huán)境,確定并運行其與所述UI框架運行環(huán)境相應的UI模塊的方式為:USBkey中間件向客戶端發(fā)送獲取UI框架運行環(huán)境的請求信息;USBkey中間件根據(jù)客戶端返回的UI框架運行環(huán)境信息確定并運行其與所述UI框架運行環(huán)境相應的UI模塊。本實施方式中所提供的客戶端和UI交互方法,USBkey中間件通過與平臺無關(guān)的UI調(diào)用原語與UI組件之間發(fā)起UI交互,USBkey中間件通過進程間通訊實現(xiàn)了與異構(gòu)的UI組件的相互操作,提高了USBkey中間件在多種UI框架運行環(huán)境的通用性,降低了USBkey中間件更新時的工作量,提高了更新效率。其中,所述異構(gòu),是指USBkey的UI組件與非UI組件之間可以是分別基于不同的編程語言、不同的架構(gòu)來開發(fā)的軟件模塊。下面結(jié)合實際的UI交互場景對本發(fā)明進行進一步的描述。本實施例中客戶端以PC為例進行說明,UI交互場景為網(wǎng)上支付中的用戶密碼獲取及驗證場景,流程如下:USBkey與PC連接,連接方式包括但不限于USB連接或藍牙連接等。PC上的網(wǎng)上支付應用(上層安全應用)調(diào)用USBkey中間件,USBkey中間件的非UI組件采用進程間通信方式向其UI組件的各UI模塊依次發(fā)送UI會話開始原語,并將返回響應數(shù)據(jù)的UI模塊確定為與客戶端的UI框架運行環(huán)境相對應的UI模塊,啟用該UI模塊,并通過進程間通訊方式向其發(fā)送密碼輸入對話框顯示原語的數(shù)據(jù),UI模塊接收到非UI組件發(fā)送的該數(shù)據(jù)后,調(diào)用PC操作系統(tǒng)的UI框架的圖形接口,在PC機的用戶界面彈出密碼輸入框,在用戶輸入密碼后,UI模塊提取密碼內(nèi)容并通過進程間通訊方式將該內(nèi)容發(fā)送到非UI組件,由非UI組件完成USBkey的密碼驗證,如果密碼正確,USBkey向中間件返回密碼驗證通過信息,非UI組件向UI模塊發(fā)送密碼輸入框關(guān)閉原語,完成密碼輸入框的關(guān)閉,密碼獲取及驗證完成,如果密碼錯誤,非UI組件則向UI模塊發(fā)送密碼錯誤提示及重新輸入原語,則繼續(xù)顯示密碼輸入框,提示用戶重新輸入密碼。顯然,本領域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其同等技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。當前第1頁1 2 3