專利名稱:注冊表系統(tǒng)及運行方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)系統(tǒng)領(lǐng)域,尤其涉及一種注冊表系統(tǒng)及運行方法。
背景技術(shù):
隨著軟件開發(fā)規(guī)模與水平的不斷提高,軟件跨操作系統(tǒng)平臺進(jìn)行移植也成為日益 普遍的需求,如將運行在WINDOWS操作系統(tǒng)上的軟件移植到LINUX/UNIX系統(tǒng)下。而WINDOWS 操作系統(tǒng)作為優(yōu)秀的桌面操作系統(tǒng),它所提供的注冊表功能不僅功能很強(qiáng)大也被大多數(shù)運 行在WINDOWS操作系統(tǒng)上的軟件所使用。然而發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中在將這些運行在WINDOWS操作系統(tǒng)上的軟件移植到 其他操作系統(tǒng)上時,由于其他操作系統(tǒng)上沒有相應(yīng)的注冊表,當(dāng)運行在WINDOWS操作系統(tǒng) 上的軟件中有通過調(diào)用注冊表來實現(xiàn)的功能時,就需要修改該軟件中調(diào)用注冊表相關(guān)功能 的代碼,并且修改所述相關(guān)代碼的工作量比較大,修改后的軟件移植到其他操作系統(tǒng)下的 兼容性和穩(wěn)定性也較難以保證。
發(fā)明內(nèi)容
本發(fā)明的實施例提供一種注冊表系統(tǒng)及運行方法,基于該注冊表系統(tǒng)實現(xiàn)了無需 修改本軟件的代碼就可以使得該軟件方便地移植到不同的操作系統(tǒng)平臺下,降低了軟件移 植時進(jìn)行代碼修改的工作量。為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案一種注冊表系統(tǒng)的運行方法,所述注冊表系統(tǒng)中的注冊表存儲文件為XML格式, 用戶程序采用注冊表動態(tài)鏈接庫進(jìn)行編譯鏈接,所述方法包括注冊表服務(wù)器端根據(jù)讀取到的配置文件打開所述注冊表存儲文件;注冊表服務(wù)器端接收所述用戶程序通過注冊表客戶端發(fā)送的操作指令;注冊表服務(wù)器端在所述用戶程序具有操作權(quán)限時,通過注冊表操作處理層在所述 注冊表存儲文件中執(zhí)行所述接收到的操作指令;注冊表服務(wù)器端發(fā)送所述操作指令的執(zhí)行結(jié)果給所述注冊表客戶端,由所述注冊 表客戶端通過注冊表動態(tài)鏈接庫返回給所述用戶程序。一種注冊表系統(tǒng),用戶程序采用注冊表動態(tài)鏈接庫進(jìn)行編譯鏈接,該系統(tǒng)包括 XML格式的注冊表存儲文件;注冊表服務(wù)器端,用于根據(jù)讀取到的配置文件打開注冊表存儲文件,接收所述用 戶程序通過注冊表客戶端發(fā)送的操作指令,在所述用戶程序具有操作權(quán)限時,通過注冊表 操作處理層在所述注冊表存儲文件中執(zhí)行所接收到的操作指令,發(fā)送所述操作指令的執(zhí)行 結(jié)果給所述注冊表客戶端;注冊表客戶端,用于接收所述用戶程序發(fā)送的操作指令,發(fā)送所述操作指令給注 冊表服務(wù)器端,接收所述注冊表服務(wù)器端發(fā)送的所述操作指令的執(zhí)行結(jié)果,并通過注冊表 動態(tài)鏈接庫返回給用戶程序;
注冊表操作處理層,用于處理注冊表存儲文件中數(shù)據(jù)的維護(hù)、操作及權(quán)限控制;注冊表動態(tài)鏈接庫,用于調(diào)用注冊表客戶端或者提供給用戶程序進(jìn)行移植時調(diào) 用;注冊表通信協(xié)議,用于規(guī)范注冊表服務(wù)器端與注冊表客戶端的通信規(guī)則。本發(fā)明實施例提供的注冊表系統(tǒng),通過在任意類型的操作系統(tǒng)中構(gòu)建XML格式的 注冊表存儲文件,并將需要調(diào)用注冊表功能的用戶程序在開發(fā)階段編譯時鏈接注冊表動態(tài) 鏈接庫。當(dāng)所述用戶程序調(diào)用所述注冊表存儲文件時,通過注冊表服務(wù)器端根據(jù)讀取到的 配置文件打開所述注冊表存儲文件,然后,并在所述用戶程序具有操作權(quán)限時,通過注冊表 操作處理層在所述注冊表存儲文件中執(zhí)行所述接收到的操作指令。當(dāng)所述操作指令執(zhí)行完 之后,發(fā)送所述操作指令的執(zhí)行結(jié)果給所述注冊表客戶端,由注冊表客戶端通過注冊表動 態(tài)鏈接庫返回給用戶程序。所述用戶程序通過調(diào)用注冊表客戶端與所述注冊表服務(wù)器端進(jìn)行數(shù)據(jù)通信,同時 所述注冊表服務(wù)器端根據(jù)用戶程序的操作指令,通過注冊表操作處理層進(jìn)行注冊表存儲文 件的相關(guān)操作,從而實現(xiàn)了所述用戶程序中需要調(diào)用注冊表的功能。與現(xiàn)有技術(shù)相比,本發(fā) 明實施例無須修改用戶程序的代碼,就可以將所述用戶程序移植到任意類型的操作系統(tǒng)平 臺下,解決了現(xiàn)有技術(shù)中在將用戶程序移植時修改該軟件中調(diào)用注冊表相關(guān)功能的代碼的 工作量比較大的問題。另外還可以本發(fā)明實施例提供的注冊表系統(tǒng)還可以在WINDOWS系統(tǒng) 上實現(xiàn)注冊表功能的輕量級替代性實現(xiàn)。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。圖1為實施例1注冊表系統(tǒng)的運行方法流程圖;圖2為實施例1注冊表系統(tǒng)的結(jié)構(gòu)圖;圖3為實施例2注冊表系統(tǒng)的運行方法流程圖;圖4為實施例2注冊表系統(tǒng)的結(jié)構(gòu)圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護(hù)的范圍。實施例1 本發(fā)明實施例提供一種注冊表系統(tǒng)的運行方法,所述注冊表系統(tǒng)中的注冊表存儲 文件為XML格式,用戶程序采用注冊表動態(tài)鏈接庫進(jìn)行編譯鏈接,如圖1所示,該方法包括 如下步驟101、注冊表服務(wù)器端根據(jù)讀取到的配置文件打開所述注冊表存儲文件。
5
由于所述注冊表存儲文件的文件格式為(Extensible Markup Language,可擴(kuò)展 標(biāo)記語言),因而可以將該XML格式的注冊表存儲文件構(gòu)建在任意操作系統(tǒng)下。該注冊表存儲文件用于存儲注冊表的信息,在運行時該注冊表存儲文件只能由注 冊表服務(wù)服務(wù)器端訪問,不允許其他進(jìn)程進(jìn)行訪問。注冊表存儲文件根據(jù)不同的操作系統(tǒng) 可以存放在不同位置,比如通過代碼定義如下LINUX/UNUX:/etc/reg. datWINDOWS:% WINDOWS% \system32\etc\reg. dat一般情況,本注冊表存儲文件被設(shè)置為隱藏文件,以上定義的注冊表存儲文件位 置是默認(rèn)位置,還可以通過配置文件中的設(shè)置更改注冊表存儲文件,該配置文件根據(jù)不同 的操作系統(tǒng)可以存放在如下位置LINUX/UNUX:/etc/reg. confWINDOWS:% WINDOWS% \system32\etc\reg. conf所述注冊表存儲文件還可以通過注冊表信息格式來定義所述注冊表存儲文件中 存儲的數(shù)據(jù)格式及其語義,并可以通過開源標(biāo)準(zhǔn)庫⑶0ME2 (Gnome DOMEngine Version 2) 來處理所述XML格式的注冊表存儲文件。其中,所述注冊表信息格式中的數(shù)據(jù)格式可以進(jìn)行如下定義< ? xml version = “ 1. 0〃 encoding = “ UTF—8" ? ><SYS_REG_R00T><HKEY_CLASSES_R00T></HKEY_CLASSES_R00T><HKEY_CURRENT_USER>〈Environment〉〈/Environment〉〈Software〉〈ANY COMPANY NAMED〈/ANY COMPANY NAMED〈ANY COMPANY NAME2>〈/ANY COMPANY NAME2>< !—...—>〈ANY COMPANY NAMEn>〈/ANY COMPANY NAMEn>〈/Software〉</HKEY_CURRENT_USER>
302C、所述注冊表客戶端接收到所述響應(yīng)消息后,與所述注冊表服務(wù)器端建立連接。比如,注冊表服務(wù)器端監(jiān)聽82 端口是否有注冊表客戶端發(fā)送的連接請求。當(dāng) 客戶端連接上注冊表服務(wù)器端的82 端口時,發(fā)送4個十六進(jìn)制值的數(shù)據(jù),如Oxff 0x00 Oxff 0x00。然后注冊表服務(wù)器端接收所述注冊表客戶端的連接請求數(shù)據(jù),檢查發(fā)現(xiàn)是Oxff 0x00 Oxff 0x00時,則新建立一個線程,監(jiān)聽任意一個空閑端口如端口 B,并將空閑端口的 端口號返回給注冊表客戶端。注冊表客戶端接收連接請求的響應(yīng)信息,檢查發(fā)現(xiàn)是Oxff 0x00 Oxff OxOOOx** Ox**時,將Ox** Ox**轉(zhuǎn)換成端口號B,此時注冊表客戶端關(guān)閉連接,重新連接注冊服務(wù)器 的端口 B,連接后,發(fā)送4個十六進(jìn)制值數(shù)據(jù)Oxff 0x00 OxffOxOl0注冊服務(wù)器的端口 B給 注冊表客戶端發(fā)送4個十六進(jìn)制值0xff 0x00 OxffOxOl0當(dāng)客戶端接收到返回消息,檢查 發(fā)現(xiàn)是Oxff 0x00 Oxff 0x01時,此時連接建立成功。303、當(dāng)所述注冊表服務(wù)器端與所述注冊表客戶端建立連接后,所述注冊表服務(wù)器 端接收所述注冊表客戶端發(fā)送的登錄信息,并檢測所述接收到的登錄信息是否正確。如果所述注冊表服務(wù)器端在檢測到所述登錄信息錯誤時,發(fā)送登錄失敗消息給所 述注冊表客戶端。所述注冊表客戶端接收到所述登錄失敗消息后,則會終止訪問所述注冊 表服務(wù)器端,并通過所述注冊表動態(tài)鏈接庫將所述登錄失敗消息返回給所述用戶程序;如果所述注冊表服務(wù)器端在檢測到所述接收到的登錄信息正確時,發(fā)送登錄成功 消息給所述注冊表客戶端。然后所述注冊表客戶端接收到登錄成功消息后,發(fā)送操作指令 給所述注冊表服務(wù)器端。304、注冊表服務(wù)器端接收所述操作指令。所述操作指令由所述用戶程序調(diào)用所述 注冊表動態(tài)鏈接庫,并由所述注冊表動態(tài)鏈接庫調(diào)用注冊表客戶端發(fā)送給所述注冊表服務(wù) 器端。305、所述注冊表服務(wù)器端檢測所述登錄成功的用戶程序是否具有操作權(quán)限。由于 每個用戶程序具有的操作權(quán)限不同,比如有些用戶程序可以進(jìn)行注冊表的讀操作,但是不 能進(jìn)行寫操作。這時就需要在執(zhí)行所訴操作指令之前先判斷所述用戶程序的操作權(quán)限,進(jìn) 而確保按照正確的權(quán)限進(jìn)行所述注冊表存儲文件的相關(guān)操作。如果所述注冊表服務(wù)器端在檢測到所述用戶程序不具有操作權(quán)限時,發(fā)送操作錯 誤消息給所述注冊表客戶端,并由注冊表客戶端通過注冊表動態(tài)鏈接庫返回給用戶程序。306、當(dāng)注冊表服務(wù)器端在檢測到所述用戶程序具有操作權(quán)限時,通過注冊表操作 處理層在所述注冊表存儲文件中執(zhí)行所述接收到的操作指令。所述注冊表操作處理層用于 處理注冊表存儲文件中數(shù)據(jù)的維護(hù)、操作及權(quán)限控制。例如,所述要執(zhí)行的操作指令可以為READ<NodePath>跟著一個參數(shù)〈Nodel^ath〉,表示獲取某節(jié)點的值,〈Nodel^ath〉表 示要獲取的節(jié)點的XPATH路徑;WRITE<NodePathXValue> 跟著兩個參數(shù)〈Nodel^athXvalue〉,表示設(shè)置某節(jié)點的 值,<NodePath>表示要設(shè)置的節(jié)點的XPATH路徑,〈Value〉表示將設(shè)置的值,若XPATH表示 的節(jié)點/路徑不存在,則會自動建立對應(yīng)節(jié)點/路徑;CREATE<NodePath> 跟著一個參數(shù) <NodePath>,表示建立某節(jié)點,<NodePath> 表示要建立的節(jié)點的XPATH路徑;[Ol 64] DgLg/g(NodePath)跟著一個參數(shù)<NodePath>,表示刪除某節(jié)點,<NodePath>表示要刪除的節(jié)點的XPATH路徑;
3071注冊表服務(wù)器端發(fā)送所述操作指令的執(zhí)行結(jié)果給所述注冊表客戶端,由注冊表客戶端通過注冊表動態(tài)鏈接庫返回給用戶程序。比如,可以進(jìn)行注冊表存儲文件的刪除操作,當(dāng)該操作指令執(zhí)行完成之后,注冊表服務(wù)器端會將所述操作指令的執(zhí)行結(jié)果發(fā)送給所述注冊表客戶端,并由注冊表客戶端通過注冊表動態(tài)鏈接庫返回給用戶程序,使得用戶程序可以清楚知道所述操作指令的運行結(jié)果。[Ol 66] 所述注冊表動態(tài)鏈接庫為提供給任一軟件開發(fā)者用以移植和/或調(diào)用的動態(tài)鏈接庫,此動態(tài)鏈接庫在內(nèi)部調(diào)用注冊表客戶端,向外提供與WINDOWS注冊表函數(shù)一致的函數(shù)接口,因此只需要在編譯時指定將此注冊表動態(tài)鏈接庫一起編譯,即可實現(xiàn)LINUX/UNIX的注冊表功能,或在WINDOWS系統(tǒng)上實現(xiàn)注冊表功能的輕量級替代性實現(xiàn)。
接口函數(shù)如下[Ol 68] /*打開某注冊表項*/[Ol 69]int Reg。penKeyEX(const char*plabel,[Ol 70]const char*pkey,
7]]/*not uSe*/unSigned long reserved,[Ol 72]/*not uSe*/unSigned long mode,[Ol 73]HKgY*phKey);[Ol 74] /*獲取注冊表某節(jié)點的值*/[Ol 75]int RegQueryValueEX(HKEY hKey,[Ol 76]const char*pkey,[Ol 773/*not uSe*/unSigned l。ng*preSerVed,[Ol 78]/*not uSe*/unSigned long*ptype,[Ol 79]uns i gned char*pch,[Ol 80]unsigned long*psize);
/*設(shè)置注冊表某節(jié)點的值*/[Ol 82] int RegSetValueEX(HKEY hKey,[Ol 83]const char*pkey,[Ol 84]/*not uSe*/unSigned long reserved,[Ol 85]/*not uSe*/unSigned long type,[Ol 86]const char*pvahe,[Ol 87]unsigned long size);[Ol 88] /*建立注冊表節(jié)點*/[Ol 89] int RegCreateKey(HKEY hKey,[Ol 90]const char*pkey,
9]]HKgY*phRet)[Ol 92] /*刪除注冊表節(jié)點*/[Ol 93] int RegDe l eteKey(HKEY hKey,
const char氺pkey);/*關(guān)閉打開的注冊表項*/int RegCloseKey(HKEY hKey);308、在所述用戶程序調(diào)用注冊表存儲文件的操作指令完成之后,通過所述注冊表 客戶端發(fā)送的注銷請求給所述注冊表服務(wù)器端。當(dāng)所述注冊表服務(wù)器端接收到所述注冊 表客戶端發(fā)送的注銷請求,所述注冊表服務(wù)器端注銷所述注冊表客戶端的登錄信息。然后 所述注冊表客戶端斷開與所述注冊表服務(wù)器端的連接。上述用戶程序通過調(diào)用注冊表客戶 端登錄所述注冊表服務(wù)器端可以并發(fā)執(zhí)行,可以允許多個用戶程序通過各自調(diào)用相應(yīng)的注 冊表客戶端登錄所述注冊表服務(wù)器端,進(jìn)而由所述注冊表服務(wù)器端訪問所述注冊表存儲文 件。通過上述步驟描述的本發(fā)明實施例在無須修改用戶程序的代碼情況下,就可以將 所述用戶程序移植到任意類型的操作系統(tǒng)平臺下,解決了現(xiàn)有技術(shù)中在將用戶程序移植時 修改該軟件中調(diào)用注冊表相關(guān)功能的代碼的工作量比較大的問題。本發(fā)明實施例還提供一種注冊表系統(tǒng),如圖4所示,該系統(tǒng)包括XML格式的注冊 表存儲文件41,注冊表服務(wù)器端42,注冊表客戶端43,注冊表操作處理層44,注冊表動態(tài)鏈 接庫45和注冊表通信協(xié)議46。其中,XML格式的注冊表存儲文件41,用于存儲注冊表的信息,并由注冊表信息格 式實現(xiàn)所述注冊表存儲文件的結(jié)構(gòu)、項節(jié)點、數(shù)據(jù)節(jié)點、節(jié)點屬性、屬性值等的定義。通過 GD0ME2支持庫操作XML格式的注冊表存儲文件。注冊表服務(wù)器端42,用于根據(jù)讀取到的配置文件打開注冊表存儲文件,接收用戶 程序通過注冊表客戶端發(fā)送的操作指令,在所述用戶程序具有操作權(quán)限時,通過注冊表操 作處理層在所述注冊表存儲文件中執(zhí)行所接收到的操作指令,發(fā)送所述操作指令的執(zhí)行結(jié) 果給所述注冊表客戶端。所述注冊表服務(wù)器端42還用于接收所述注冊表客戶端發(fā)送的連接請求指令,并 發(fā)送所述接收到的連接請求指令的響應(yīng)消息給所述注冊表客戶端。所述注冊表服務(wù)器端42 還用于接收所述注冊表客戶端發(fā)送的登錄信息,并檢測所述登錄信息是否正確,在檢測到 所述登錄信息錯誤時,發(fā)送登錄失敗消息給所述注冊表客戶端,或者在檢測到所述登錄信 息正確時,發(fā)送登錄成功消息給所述注冊表客戶端。所述注冊表服務(wù)器端42還用于檢測所述登錄成功的用戶程序是否具有操作權(quán) 限,并在檢測到所述用戶程序不具有操作權(quán)限時,發(fā)送操作錯誤消息給所述注冊表客戶端。 所述注冊表服務(wù)器端42還用于接收所述注冊表客戶端發(fā)送的注銷請求,并注銷所述注冊 表客戶端的登錄信息。注冊表客戶端43,用于接收用戶程序發(fā)送的操作指令,發(fā)送所述操作指令給注冊 表服務(wù)器端,接收所述注冊表服務(wù)器端發(fā)送的所述操作指令的執(zhí)行結(jié)果,并通過注冊表動 態(tài)鏈接庫返回給用戶程序。所述注冊表客戶端43還用于發(fā)送連接請求指令,并接收注冊表服務(wù)器端發(fā)送的 所述連接請求指令響應(yīng)消息,與所述注冊表服務(wù)器端建立連接。所述注冊表客戶端43還用于發(fā)送登錄信息給注冊表服務(wù)器端,并從所述注冊表 服務(wù)器端接收登錄失敗消息,并通過注冊表動態(tài)鏈接庫將所述接收到的登錄失敗消息返回
13給所述用戶程序,或從所述注冊表服務(wù)器端接收登錄成功消息。所述注冊表客戶端43還用于接收注冊表服務(wù)器發(fā)送的操作錯誤消息,并通過注 冊表動態(tài)鏈接庫將所述接收到的操作錯誤消息返回給用戶程序。所述注冊表客戶端43還用于發(fā)送注銷請求給所述注冊表服務(wù)器端。注冊表操作處理層44,用于處理注冊表存儲文件中數(shù)據(jù)的維護(hù)、操作及權(quán)限控制。 注冊表動態(tài)鏈接庫45,用于調(diào)用注冊表客戶端或者提供給用戶程序進(jìn)行移植時調(diào)用。注冊 表通信協(xié)議46,用于規(guī)范注冊表服務(wù)器端與注冊表客戶端的通信規(guī)則。采用該系統(tǒng)中所述用戶程序通過調(diào)用注冊表客戶端與所述注冊表服務(wù)器端進(jìn)行 數(shù)據(jù)通信,同時所述注冊表服務(wù)器端根據(jù)用戶程序的操作指令,通過注冊表操作處理層進(jìn) 行注冊表存儲文件的相關(guān)操作,從而實現(xiàn)了所述用戶程序中需要調(diào)用注冊表的功能。與現(xiàn) 有技術(shù)相比,本發(fā)明實施例無須修改用戶程序的代碼,就可以將所述用戶程序移植到任意 類型的操作系統(tǒng)平臺下,解決了現(xiàn)有技術(shù)中在將用戶程序移植時修改該軟件中調(diào)用注冊表 相關(guān)功能的代碼的工作量比較大的問題。本發(fā)明實施例主要應(yīng)用于計算機(jī)操作系統(tǒng)中,基于該注冊表系統(tǒng)實現(xiàn)了無需修改 本軟件的代碼就可以使得該軟件方便地移植到不同的操作系統(tǒng)平臺下,降低了軟件移植時 進(jìn)行代碼修改的工作量。通過以上的實施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借 助軟件加必需的通用硬件的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳 的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部 分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在可讀取的存儲介質(zhì)中,如計 算機(jī)的軟盤,硬盤或光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī), 服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何 熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵 蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種注冊表系統(tǒng)的運行方法,其特征在于,所述注冊表系統(tǒng)中的注冊表存儲文件為 XML格式,用戶程序采用注冊表動態(tài)鏈接庫進(jìn)行編譯鏈接,所述方法包括注冊表服務(wù)器端根據(jù)讀取到的配置文件打開所述注冊表存儲文件; 注冊表服務(wù)器端接收所述用戶程序通過注冊表客戶端發(fā)送的操作指令; 注冊表服務(wù)器端在所述用戶程序具有操作權(quán)限時,通過注冊表操作處理層在所述注冊 表存儲文件中執(zhí)行所述接收到的操作指令;注冊表服務(wù)器端發(fā)送所述操作指令的執(zhí)行結(jié)果給所述注冊表客戶端,由所述注冊表客 戶端通過注冊表動態(tài)鏈接庫返回給所述用戶程序。
2.根據(jù)權(quán)利要求1所述的注冊表系統(tǒng)的運行方法,其特征在于,所述注冊表服務(wù)器端 接收所述用戶程序通過注冊表客戶端發(fā)送的操作指令為注冊表服務(wù)器端接收所述用戶程 序調(diào)用所述注冊表動態(tài)鏈接庫,并由所述注冊表動態(tài)鏈接庫調(diào)用注冊表客戶端發(fā)送的操作 指令。
3.根據(jù)權(quán)利要求1或2所述的注冊表系統(tǒng)的運行方法,其特征在于,所述注冊表服務(wù)器 端接收所述用戶程序通過注冊表客戶端發(fā)送的操作指令之前,還包括所述注冊表服務(wù)器端接收所述注冊表客戶端發(fā)送的連接請求指令;所述注冊表服務(wù)器端發(fā)送所述接收到的連接請求指令的響應(yīng)消息給所述注冊表客戶端;所述注冊表客戶端接收到所述響應(yīng)消息后,與所述注冊表服務(wù)器端建立連接。
4.根據(jù)權(quán)利要求1或2所述的注冊表系統(tǒng)的運行方法,其特征在于,所述注冊表服務(wù)器 端接收所述用戶程序通過注冊表客戶端發(fā)送的操作指令之前,還包括所述注冊表服務(wù)器端接收所述注冊表客戶端發(fā)送的登錄信息; 所述注冊表服務(wù)器端檢測所述接收到的登錄信息是否正確;所述注冊表服務(wù)器端在檢測到所述登錄信息錯誤時,發(fā)送登錄失敗消息給所述注冊表 客戶端;所述注冊表客戶端接收到所述登錄失敗消息后,終止訪問所述注冊表服務(wù)器端,并通 過所述注冊表動態(tài)鏈接庫將所述登錄失敗消息返回給所述用戶程序。
5.根據(jù)權(quán)利要求4所述的注冊表系統(tǒng)的運行方法,其特征在于,所述注冊表服務(wù)器端 在檢測到所述接收到的登錄信息正確時,發(fā)送登錄成功消息給所述注冊表客戶端;所述注冊表客戶端接收到登錄成功消息后,發(fā)送操作指令給所述注冊表服務(wù)器端; 所述注冊表服務(wù)器端接收用戶程序通過注冊表客戶端發(fā)送的操作指令為 所述注冊表服務(wù)器端接收所述注冊表客戶端接收到登錄成功消息后發(fā)送的操作指令。
6.根據(jù)權(quán)利要求4所述的注冊表系統(tǒng)的運行方法,其特征在于,還包括 所述注冊表服務(wù)器端檢測所述登錄成功的用戶程序是否具有操作權(quán)限;所述注冊表服務(wù)器端在檢測到所述用戶程序不具有操作權(quán)限時,發(fā)送操作錯誤消息給 所述注冊表客戶端,并由注冊表客戶端通過注冊表動態(tài)鏈接庫返回給用戶程序。
7.根據(jù)權(quán)利要求4所述的注冊表系統(tǒng)的運行方法,其特征在于,還包括 所述注冊表服務(wù)器端接收到所述注冊表客戶端發(fā)送的注銷請求;所述注冊表服務(wù)器端注銷所述注冊表客戶端的登錄信息。
8.—種注冊表系統(tǒng),其特征在于,用戶程序采用注冊表動態(tài)鏈接庫進(jìn)行編譯鏈接,該系統(tǒng)包括XML格式的注冊表存儲文件;注冊表服務(wù)器端,用于根據(jù)讀取到的配置文件打開注冊表存儲文件,接收所述用戶程 序通過注冊表客戶端發(fā)送的操作指令,在所述用戶程序具有操作權(quán)限時,通過注冊表操作 處理層在所述注冊表存儲文件中執(zhí)行所接收到的操作指令,發(fā)送所述操作指令的執(zhí)行結(jié)果 給所述注冊表客戶端;注冊表客戶端,用于接收所述用戶程序發(fā)送的操作指令,發(fā)送所述操作指令給注冊表 服務(wù)器端,接收所述注冊表服務(wù)器端發(fā)送的所述操作指令的執(zhí)行結(jié)果,并通過注冊表動態(tài) 鏈接庫返回給用戶程序;注冊表操作處理層,用于處理注冊表存儲文件中數(shù)據(jù)的維護(hù)、操作及權(quán)限控制; 注冊表動態(tài)鏈接庫,用于調(diào)用注冊表客戶端或者提供給用戶程序進(jìn)行移植時調(diào)用; 注冊表通信協(xié)議,用于規(guī)范注冊表服務(wù)器端與注冊表客戶端的通信規(guī)則。
9.根據(jù)權(quán)利要求8所述的注冊表系統(tǒng),其特征在于,所述注冊表服務(wù)器端還用于接收 所述注冊表客戶端發(fā)送的連接請求指令,并發(fā)送所述接收到的連接請求指令的響應(yīng)消息給 所述注冊表客戶端。
10.根據(jù)權(quán)利要求8所述的注冊表系統(tǒng),其特征在于,所述注冊表服務(wù)器端還用于接收 所述注冊表客戶端發(fā)送的登錄信息,并檢測所述登錄信息是否正確,在檢測到所述登錄信 息錯誤時,發(fā)送登錄失敗消息給所述注冊表客戶端;或者所述注冊表服務(wù)器端還用于在檢測到所述登錄信息正確時,發(fā)送登錄成功消息給 所述注冊表客戶端;或者所述注冊表服務(wù)器端還用于接收所述注冊表客戶端發(fā)送的注銷請求,并注銷所述注冊 表客戶端的登錄信息。
11.根據(jù)權(quán)利要求8所述的注冊表系統(tǒng),其特征在于,所述注冊表服務(wù)器端還用于檢 測所述登錄成功的用戶程序是否具有操作權(quán)限,并在檢測到所述用戶程序不具有操作權(quán)限 時,發(fā)送操作錯誤消息給所述注冊表客戶端。
12.根據(jù)權(quán)利要求8所述的注冊表系統(tǒng),其特征在于,所述注冊表客戶端還用于發(fā)送連 接請求指令,并接收注冊表服務(wù)器端發(fā)送的所述連接請求指令響應(yīng)消息,與所述注冊表服 務(wù)器端建立連接。
13.根據(jù)權(quán)利要求8所述的注冊表系統(tǒng),其特征在于,所述注冊表客戶端還用于發(fā)送登 錄信息給注冊表服務(wù)器端,并從所述注冊表服務(wù)器端接收登錄失敗消息,并通過注冊表動 態(tài)鏈接庫將所述接收到的登錄失敗消息返回給所述用戶程序;或者所述注冊表客戶端還用于從所述注冊表服務(wù)器端接收登錄成功消息;或者 所述注冊表客戶端還用于發(fā)送注銷請求給所述注冊表服務(wù)器端。
14.根據(jù)權(quán)利要求8所述的注冊表系統(tǒng),其特征在于,所述注冊表客戶端還用于接收注 冊表服務(wù)器發(fā)送的操作錯誤消息,并通過注冊表動態(tài)鏈接庫將所述接收到的操作錯誤消息 返回給用戶程序。
全文摘要
本發(fā)明公開一種注冊表系統(tǒng)及運行方法,涉及計算機(jī)系統(tǒng)領(lǐng)域,解決了現(xiàn)有技術(shù)將用戶程序移植時修改該軟件中調(diào)用注冊表相關(guān)代碼的工作量較大的問題。該方法包括注冊表服務(wù)器端根據(jù)讀取到的配置文件打開所述注冊表存儲文件;注冊表服務(wù)器端接收所述用戶程序通過注冊表客戶端發(fā)送的操作指令;注冊表服務(wù)器端在所述用戶程序具有操作權(quán)限時,通過注冊表操作處理層在所述注冊表存儲文件中執(zhí)行所述接收到的操作指令;注冊表服務(wù)器端發(fā)送所述操作指令的執(zhí)行結(jié)果給所述注冊表客戶端,由所述注冊表客戶端通過注冊表動態(tài)鏈接庫返回給所述用戶程序。本發(fā)明實施例主要應(yīng)用于計算機(jī)操作系統(tǒng)。
文檔編號G06F17/30GK102117286SQ20091024415
公開日2011年7月6日 申請日期2009年12月30日 優(yōu)先權(quán)日2009年12月30日
發(fā)明者于權(quán), 楊東, 羅愷愷, 高莉 申請人:北京北大方正電子有限公司, 北京方正電子政務(wù)信息科技有限公司, 北大方正集團(tuán)有限公司