本發(fā)明涉及數(shù)據(jù)庫(kù)管理技術(shù)領(lǐng)域,具體地說(shuō)是一種配置數(shù)據(jù)的統(tǒng)一管理系統(tǒng)。
背景技術(shù):
配置數(shù)據(jù)是大部分軟件系統(tǒng)必不可缺的組成部分,配置數(shù)據(jù)存儲(chǔ)在本地文件和數(shù)據(jù)庫(kù)中,限于開(kāi)發(fā)成本和研發(fā)周期,軟件研發(fā)過(guò)程中很少會(huì)開(kāi)發(fā)配置數(shù)據(jù)管理工具,且如果每次軟件系統(tǒng)研發(fā)重新對(duì)配置數(shù)據(jù)工具進(jìn)行處理,無(wú)疑會(huì)增加不必要的成本開(kāi)銷(xiāo)。當(dāng)服務(wù)器系統(tǒng)中部署的軟件較多時(shí),大量配置數(shù)據(jù)的管理將會(huì)給維護(hù)、使用人員帶來(lái)不便,誤操作等引起的配置數(shù)據(jù)丟失、更改等,將直接影響軟件系統(tǒng)的正常運(yùn)行。
對(duì)于存儲(chǔ)在數(shù)據(jù)庫(kù)中的配置數(shù)據(jù),雖然能夠在一定程度上降低數(shù)據(jù)丟失、誤操作產(chǎn)生的影響,但是對(duì)配置數(shù)據(jù)的修改和管理,則需要維護(hù)人員對(duì)數(shù)據(jù)庫(kù)軟件和相應(yīng)的軟件系統(tǒng)具有一定程度的了解和掌握。當(dāng)需要進(jìn)行系統(tǒng)遷移時(shí),數(shù)據(jù)庫(kù)軟件的差異又會(huì)給維護(hù)人員帶來(lái)不便。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種配置數(shù)據(jù)的統(tǒng)一管理系統(tǒng),避免大量配置數(shù)據(jù)散亂存儲(chǔ)帶來(lái)的不便,降低配置數(shù)據(jù)丟失、誤操作產(chǎn)生的風(fēng)險(xiǎn)。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:
一種配置數(shù)據(jù)的統(tǒng)一管理系統(tǒng),包括配置數(shù)據(jù)管理工具和配置數(shù)據(jù)訪問(wèn)接口兩部分,其中,數(shù)據(jù)庫(kù)訪問(wèn)接口為常用數(shù)據(jù)庫(kù)的訪問(wèn)提供統(tǒng)一接口,解決項(xiàng)目研發(fā)過(guò)程中數(shù)據(jù)庫(kù)訪問(wèn)時(shí),不同數(shù)據(jù)庫(kù)軟件(含不同軟件版本)、操作系統(tǒng)下產(chǎn)生的編碼差異問(wèn)題,支持OCI、ODBC等開(kāi)發(fā)接口,實(shí)現(xiàn)對(duì)Oracle、DB2、SQL Server、達(dá)夢(mèng)等數(shù)據(jù)庫(kù)軟件的透明化訪問(wèn)。數(shù)據(jù)庫(kù)訪問(wèn)接口為配置數(shù)據(jù)維護(hù)工具和配置數(shù)據(jù)訪問(wèn)接口提供底層數(shù)據(jù)訪問(wèn)支撐能力;
配置數(shù)據(jù)訪問(wèn)工具包括配置數(shù)據(jù)維護(hù)工具、數(shù)據(jù)庫(kù)數(shù)據(jù)訪問(wèn)接口:配置數(shù)據(jù)維護(hù)工具通過(guò)可視化界面,為用戶(hù)提供配置數(shù)據(jù)管理服務(wù),包括配置數(shù)據(jù)編輯、配置數(shù)據(jù)導(dǎo)出、配置數(shù)據(jù)導(dǎo)入、歷史版本查看和恢復(fù);配置數(shù)據(jù)訪問(wèn)接口為用戶(hù)提供配置數(shù)據(jù)的獲取操作。
配置數(shù)據(jù)維護(hù)工具通過(guò)樹(shù)狀圖,為各類(lèi)應(yīng)用的配置數(shù)據(jù)提供邊界管理能力,各應(yīng)用的配置數(shù)據(jù)可在對(duì)應(yīng)樹(shù)節(jié)點(diǎn)的屬性項(xiàng)中進(jìn)行配置。
配置數(shù)據(jù)訪問(wèn)接口為用戶(hù)提供配置數(shù)據(jù)的獲取操作。配置數(shù)據(jù)訪問(wèn)接口其實(shí)質(zhì)是讀取數(shù)據(jù)庫(kù)中特定表和索引下的數(shù)據(jù),配置數(shù)據(jù)訪問(wèn)接口的實(shí)現(xiàn)依托于數(shù)據(jù)庫(kù)訪問(wèn)接口進(jìn)行,是對(duì)數(shù)據(jù)庫(kù)訪問(wèn)接口的二次封裝。配置數(shù)據(jù)訪問(wèn)接口在CParamsManager類(lèi)中定義,包含三個(gè)接口:GetParamValue、GetParamKeyValue和GetSubItemDir:
GetParamValue
static eRet GetParamValue(eType e, const std::string &szPath, const std::string &szKey, std::string &szValue)
功能詳細(xì)描述:獲取配置項(xiàng)值。
操作詳細(xì)描述:獲取配置項(xiàng)值存入eRet結(jié)構(gòu)體返回。
GetParamKeyValue
static eRet GetParamKeyValue(eType e, const std::string &szPath, std::map<std::string,std::string>&mapKeyValue)
功能詳細(xì)描述:獲取配置項(xiàng)目錄下所有的配置項(xiàng)名稱(chēng)和配置項(xiàng)數(shù)值。
操作詳細(xì)描述:獲取配置項(xiàng)目錄下所有的配置項(xiàng)名稱(chēng)和配置項(xiàng)數(shù)值放入eRet結(jié)構(gòu)體返回。
GetSubItemDir
static eRet GetSubItemDir(eType e, const std::string &szPath, std::vector<std::string>&vSubDir)
功能詳細(xì)描述:獲取配置項(xiàng)目錄下所有子目錄。
操作詳細(xì)描述:獲取配置項(xiàng)目錄下所有子目錄放入eRet結(jié)構(gòu)體返回。
本發(fā)明的一種配置數(shù)據(jù)的統(tǒng)一管理系統(tǒng)和現(xiàn)有技術(shù)相比,具有以下有益效果:
配置數(shù)據(jù)管理系統(tǒng)對(duì)配置數(shù)據(jù)提供直觀、快捷、統(tǒng)一的管理和使用服務(wù)??梢暬夹g(shù)已廣泛應(yīng)用于生產(chǎn)、生活當(dāng)中,通過(guò)可視化技術(shù)實(shí)現(xiàn)對(duì)配置數(shù)據(jù)的直觀展示、維護(hù)和管理,各軟件系統(tǒng)的配置數(shù)據(jù)通過(guò)業(yè)務(wù)邊界進(jìn)行分類(lèi)管理,為用戶(hù)提供便捷、直觀的數(shù)據(jù)服務(wù)。Oracle、DB2、MySql、SQL Server、達(dá)夢(mèng)等數(shù)據(jù)庫(kù)軟件廣泛應(yīng)用于軟件系統(tǒng)中。在數(shù)據(jù)庫(kù)數(shù)據(jù)訪問(wèn)過(guò)程中,由于數(shù)據(jù)庫(kù)類(lèi)型、操作系統(tǒng)環(huán)境、開(kāi)發(fā)語(yǔ)言等的不同,導(dǎo)致數(shù)據(jù)庫(kù)訪問(wèn)接口千差萬(wàn)別,從而對(duì)數(shù)據(jù)庫(kù)編程、系統(tǒng)遷移等帶來(lái)一定的影響,導(dǎo)致研發(fā)周期的延長(zhǎng)、項(xiàng)目成本的增加。通過(guò)接口標(biāo)準(zhǔn)化定義、類(lèi)的繼承,對(duì)各類(lèi)數(shù)據(jù)庫(kù)軟件的數(shù)據(jù)訪問(wèn)接口進(jìn)行封裝,滿(mǎn)足對(duì)各數(shù)據(jù)庫(kù)軟件的兼容性需求。
在規(guī)范化的數(shù)據(jù)訪問(wèn)接口基礎(chǔ)上,實(shí)現(xiàn)對(duì)配置數(shù)據(jù)的導(dǎo)出、編碼、存儲(chǔ)以及導(dǎo)入、解碼操作,從而完成對(duì)配置數(shù)據(jù)的導(dǎo)出、導(dǎo)入功能,使得配置數(shù)據(jù)能夠進(jìn)行備份存儲(chǔ)。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
一種配置數(shù)據(jù)的統(tǒng)一管理系統(tǒng),包括配置數(shù)據(jù)管理工具和配置數(shù)據(jù)訪問(wèn)接口兩部分,其中,數(shù)據(jù)庫(kù)訪問(wèn)接口為常用數(shù)據(jù)庫(kù)的訪問(wèn)提供統(tǒng)一接口,解決項(xiàng)目研發(fā)過(guò)程中數(shù)據(jù)庫(kù)訪問(wèn)時(shí),不同數(shù)據(jù)庫(kù)軟件(含不同軟件版本)、操作系統(tǒng)下產(chǎn)生的編碼差異問(wèn)題,支持OCI、ODBC等開(kāi)發(fā)接口,實(shí)現(xiàn)對(duì)Oracle、DB2、SQL Server、達(dá)夢(mèng)等數(shù)據(jù)庫(kù)軟件的透明化訪問(wèn)。數(shù)據(jù)庫(kù)訪問(wèn)接口為配置數(shù)據(jù)維護(hù)工具和配置數(shù)據(jù)訪問(wèn)接口提供底層數(shù)據(jù)訪問(wèn)支撐能力;數(shù)據(jù)庫(kù)訪問(wèn)接口定義一個(gè)簡(jiǎn)單DBTransfo類(lèi),并在DBTransfo類(lèi)中定義標(biāo)準(zhǔn)化數(shù)據(jù)訪問(wèn)接口。底層實(shí)例繼承DBtransfo類(lèi),并通過(guò)對(duì)數(shù)據(jù)庫(kù)軟件提供的接口進(jìn)行二次封裝,實(shí)現(xiàn)DBTransfo中定義的標(biāo)準(zhǔn)化接口。DbTool類(lèi)在DBTransfo及各實(shí)例基礎(chǔ)上進(jìn)行整體封裝,通過(guò)指定DbTool構(gòu)造函數(shù)中數(shù)據(jù)庫(kù)類(lèi)型,選擇采用的數(shù)據(jù)庫(kù)軟件類(lèi)型及底層調(diào)用的實(shí)例。數(shù)據(jù)庫(kù)訪問(wèn)接口屏蔽了部分繁瑣的操作,使得用戶(hù)只需要將需要進(jìn)行的操作以sql語(yǔ)句的形式進(jìn)行傳遞即可,不需要關(guān)心其他問(wèn)題。
配置數(shù)據(jù)訪問(wèn)工具包括配置數(shù)據(jù)維護(hù)工具、數(shù)據(jù)庫(kù)數(shù)據(jù)訪問(wèn)接口:配置數(shù)據(jù)維護(hù)工具通過(guò)可視化界面,為用戶(hù)提供配置數(shù)據(jù)管理服務(wù),包括配置數(shù)據(jù)編輯、配置數(shù)據(jù)導(dǎo)出、配置數(shù)據(jù)導(dǎo)入、歷史版本查看和恢復(fù);配置數(shù)據(jù)維護(hù)工具通過(guò)樹(shù)狀圖,為各類(lèi)應(yīng)用的配置數(shù)據(jù)提供邊界管理能力,各應(yīng)用的配置數(shù)據(jù)可在對(duì)應(yīng)樹(shù)節(jié)點(diǎn)的屬性項(xiàng)中進(jìn)行配置。
在數(shù)據(jù)庫(kù)訪問(wèn)接口基礎(chǔ)上,將配置數(shù)據(jù)從數(shù)據(jù)庫(kù)中讀取出來(lái),并通過(guò)數(shù)據(jù)編碼和數(shù)據(jù)加密處理,保存到本地系統(tǒng),實(shí)現(xiàn)配置數(shù)據(jù)的導(dǎo)出功能。
配置數(shù)據(jù)維護(hù)工具可將通過(guò)配置數(shù)據(jù)導(dǎo)出生成的配置數(shù)據(jù)文件重新導(dǎo)入到系統(tǒng)中。
當(dāng)配置數(shù)據(jù)更改時(shí),系統(tǒng)將自動(dòng)將現(xiàn)有版本在數(shù)據(jù)庫(kù)中進(jìn)行備份,用戶(hù)可通過(guò)歷史版本查看功能查看歷史版本信息,當(dāng)需要恢復(fù)歷史版本時(shí),系統(tǒng)自動(dòng)將歷史版本配置數(shù)據(jù)設(shè)置為當(dāng)前配置。
配置數(shù)據(jù)訪問(wèn)接口為用戶(hù)提供配置數(shù)據(jù)的獲取操作。配置數(shù)據(jù)訪問(wèn)接口其實(shí)質(zhì)是讀取數(shù)據(jù)庫(kù)中特定表和索引下的數(shù)據(jù),配置數(shù)據(jù)訪問(wèn)接口的實(shí)現(xiàn)依托于數(shù)據(jù)庫(kù)訪問(wèn)接口進(jìn)行,是對(duì)數(shù)據(jù)庫(kù)訪問(wèn)接口的二次封裝。配置數(shù)據(jù)訪問(wèn)接口在CParamsManager類(lèi)中定義,包含三個(gè)接口:GetParamValue、GetParamKeyValue和GetSubItemDir:
GetParamValue
static eRet GetParamValue(eType e, const std::string &szPath, const std::string &szKey, std::string &szValue)
功能詳細(xì)描述:獲取配置項(xiàng)值。
操作詳細(xì)描述:獲取配置項(xiàng)值存入eRet結(jié)構(gòu)體返回。
GetParamKeyValue
static eRet GetParamKeyValue(eType e, const std::string &szPath, std::map<std::string,std::string>&mapKeyValue)
功能詳細(xì)描述:獲取配置項(xiàng)目錄下所有的配置項(xiàng)名稱(chēng)和配置項(xiàng)數(shù)值。
操作詳細(xì)描述:獲取配置項(xiàng)目錄下所有的配置項(xiàng)名稱(chēng)和配置項(xiàng)數(shù)值放入eRet結(jié)構(gòu)體返回。
GetSubItemDir
static eRet GetSubItemDir(eType e, const std::string &szPath, std::vector<std::string>&vSubDir)
功能詳細(xì)描述:獲取配置項(xiàng)目錄下所有子目錄。
操作詳細(xì)描述:獲取配置項(xiàng)目錄下所有子目錄放入eRet結(jié)構(gòu)體返回。
本系統(tǒng)實(shí)現(xiàn)對(duì)配置數(shù)據(jù)的統(tǒng)一、分類(lèi)管理,降低管理難度;提供配置數(shù)據(jù)導(dǎo)入導(dǎo)出功能,可實(shí)現(xiàn)配置數(shù)據(jù)備份;提供統(tǒng)一的配置數(shù)據(jù)訪問(wèn)接口,獲取配置數(shù)據(jù)更加方便;數(shù)據(jù)存儲(chǔ)支持多種數(shù)據(jù)庫(kù)軟件,提高系統(tǒng)適用能力;提供歷史配置數(shù)據(jù)恢復(fù)功能,增強(qiáng)數(shù)據(jù)的安全性和可追溯性。
通過(guò)上面具體實(shí)施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的具體實(shí)施方式。在公開(kāi)的實(shí)施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。
除說(shuō)明書(shū)所述的技術(shù)特征外,均為本專(zhuān)業(yè)技術(shù)人員的已知技術(shù)。