




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)劃類別 項(xiàng)目編號(hào) 項(xiàng)目技術(shù)報(bào)告課題名稱 項(xiàng)目主持人 承擔(dān)單位 題目:中標(biāo)麒麟環(huán)境下基于Qt的神通數(shù)據(jù)庫編程淺析隨著國外各種信息安全事件頻發(fā),在國防等關(guān)鍵領(lǐng)域采用國外開發(fā)的閉源操作系統(tǒng)和軟件可能引入未知后門,對(duì)國家信息安全帶來潛在的隱患。本文采用中標(biāo)麒麟為操作系統(tǒng),以開源Qt為開發(fā)軟件,對(duì)國產(chǎn)神通數(shù)據(jù)庫進(jìn)行操作編輯,實(shí)現(xiàn)需要數(shù)據(jù)庫情景下的基本軟件編程,為關(guān)鍵領(lǐng)域?qū)崿F(xiàn)數(shù)據(jù)安全和自主可控提供了解決思路。關(guān)鍵詞:中標(biāo)麒麟;神通數(shù)據(jù)庫;QtAbstract:As information security incidents frequently happen in foreign countries,
2、it may lead to unknown back doors and cause potential threats to national information security if foreign closed-source operating systems and software programs are applied in crucial areas,such as the national defense.In this paper,the study is conducted in the NeoKylin operating system and open-sou
3、rce Qt is applied as the development software.The domestic Shentong database is applied to implement the basic database programming,which provides solving ideas to guarantee security,independence and controllability of the information in crucial areas.Keywords:NeoKylin;Shentong database;Qt1 引言(Intro
4、duction)近年來,國外各種信息安全事件頻發(fā),特別是“棱鏡門”事件給各個(gè)國家敲響了信息安全的警鐘。采用國外開發(fā)的閉源操作系統(tǒng)和軟件可能引入未知后門,對(duì)政府、國防、金融、電力、機(jī)要、保密等領(lǐng)域的安全帶來潛在的隱患1-3。2014年5月16日,中國政府采購網(wǎng)發(fā)布關(guān)于進(jìn)行信息類協(xié)議供貨強(qiáng)制節(jié)能產(chǎn)品補(bǔ)充招標(biāo)的通知,其中明確要求計(jì)算機(jī)類產(chǎn)品不允許安裝微軟Windows 8操作系統(tǒng)。因此在信息安全要求高的領(lǐng)域,采用國產(chǎn)系統(tǒng)和開源軟件為大勢(shì)所趨。本文采用中標(biāo)麒麟為操作系統(tǒng),以開源Qt為開發(fā)軟件,對(duì)國產(chǎn)神通數(shù)據(jù)庫進(jìn)行操作編輯,實(shí)現(xiàn)需要數(shù)據(jù)庫情景下的軟件基本編程,為關(guān)鍵領(lǐng)域?qū)崿F(xiàn)數(shù)據(jù)安全和自主可控提供了解決思
5、路。2 編程環(huán)境 (Programming environment)2.1 中標(biāo)麒麟操作系統(tǒng)中標(biāo)麒麟是中標(biāo)軟件有限公司研制推出的國內(nèi)首款自主可控、高安全等級(jí)可信操作系統(tǒng),全稱為中標(biāo)麒麟可信操作系統(tǒng)軟件。結(jié)合可信計(jì)算機(jī)技術(shù)和操作系統(tǒng)安全技術(shù),中標(biāo)麒麟通過信任鏈的建立及傳遞實(shí)現(xiàn)對(duì)平臺(tái)軟硬件的完整性度量;提供基于三權(quán)分立機(jī)制的多項(xiàng)安全功能和統(tǒng)一的安全控制中心;全面支持國內(nèi)外可信計(jì)算規(guī)范(TCM/TPCM、TPM2.0);兼容主流的軟硬件和自主CPU平臺(tái),如飛騰、龍芯、申威。文中所用的軟件版本為Neoky Lin3.2。現(xiàn)階段麒麟系統(tǒng)安裝已友好化,可全程傻瓜式安裝,但中途注意不要忘記勾選安裝所需要的開
6、發(fā)環(huán)境和工具包。2.2 Qt5.5開源開發(fā)工具Qt是一個(gè)1991年由奇趣科技開發(fā)的跨平臺(tái)C+圖形用戶界面應(yīng)用程序開發(fā)框架4。它既可以開發(fā)GUI程序,也可用于開發(fā)非GUI程序。Qt是面向?qū)ο蟮目蚣?,使用特殊的代碼生成擴(kuò)展以及一些宏,易于擴(kuò)展,允許組件編程。選擇Qt作為開發(fā)工具不僅因?yàn)槠溟_發(fā)功能強(qiáng)大,許多著名軟件如Opera瀏覽器、Skype、Google地球等都由Qt開發(fā)而來。更主要是有開源版本的同時(shí)支持跨平臺(tái)運(yùn)行,一次開發(fā)可以幾乎不需要改動(dòng)的情況下,在Windows和麒麟下編譯運(yùn)行,為程序過度創(chuàng)造條件。文中使用Linux Red-hat開源版Qt5.5,采用可視化編程模式。網(wǎng)絡(luò)上可下載到兩種安
7、裝包,一種是源代碼版,安裝前需要自己編譯,好處是可以根據(jù)需要進(jìn)行適當(dāng)?shù)脑O(shè)置,另一種是已編譯好可直接安裝,但安裝過程不可編輯,建議對(duì)Linux系統(tǒng)不熟悉的用戶使用后者。另Qt5相對(duì)于Qt4,改進(jìn)較大,Qt4運(yùn)行Qt5代碼會(huì)出錯(cuò),而Qt4中部分代碼Qt5也不再支持,因此團(tuán)隊(duì)開發(fā)時(shí)應(yīng)注意使用同一版本的Qt。2.3 神通數(shù)據(jù)庫神通數(shù)據(jù)庫是一款國產(chǎn)的計(jì)算機(jī)數(shù)據(jù)庫,提供大型關(guān)系型數(shù)據(jù)庫通用的功能。其具有豐富的數(shù)據(jù)類型、多種索引類型、存儲(chǔ)過程、觸發(fā)器、內(nèi)置函數(shù)、視圖、Package、行級(jí)鎖、完整性約束、多種隔離級(jí)別、在線備份、支持事務(wù)處理等通用特性。系統(tǒng)支持SQL通用數(shù)據(jù)庫查詢語言,提供多種標(biāo)準(zhǔn)數(shù)據(jù)訪問接口
8、;便于開發(fā)編程,另外兼容Oracle數(shù)據(jù)庫,便于移植。文中使用版本為神通數(shù)據(jù)庫管理系統(tǒng)7.0。在安裝時(shí)注意給予root權(quán)限,否則在創(chuàng)建數(shù)據(jù)庫時(shí)會(huì)出錯(cuò)。3 Qt與神通數(shù)據(jù)庫的連接(Connection between Qt and Shentong datebase )數(shù)據(jù)庫提供標(biāo)準(zhǔn)的ODBC、JDBC、OLEDB/ADO、.NET Framework和ACI等多種數(shù)據(jù)訪問接口5。其中OLEDB/ADO和.NET Framework是用于Windows系統(tǒng),其他三種兼容Windows系統(tǒng)和麒麟系統(tǒng),但是ODBC、JDBC在使用前均需要在麒麟系統(tǒng)上配置相應(yīng)驅(qū)動(dòng)。ACI接口使用C語言或C+語言通過S
9、QL來訪問神通數(shù)據(jù)庫。在使用神通ACI 接口編程時(shí),僅需要引入頭文件aci.h,不需要其他配置操作。ACI接口采用兼容Oracle數(shù)據(jù)庫OCI接口方式,使得應(yīng)用能夠快速的從Oracle數(shù)據(jù)庫遷移到神通數(shù)據(jù)庫上,極大的減少了應(yīng)用開發(fā)移植的時(shí)間和成本。神通數(shù)據(jù)庫自帶SQL交互工具,為用戶提供友好的圖形化界面使用SQL語言,操作數(shù)據(jù)庫對(duì)象和更新數(shù)據(jù)。因此使用ACI接口的方式也使得程序檢驗(yàn)變得簡單。綜上,文中采用ACI接口方式建立數(shù)據(jù)庫和Qt的連接。 使用ACI的方式建立Qt與神通數(shù)據(jù)庫的連接主要經(jīng)歷幾個(gè)步驟。第一步,初始化神通ACI接口的運(yùn)行環(huán)境。第二步,分配環(huán)境句柄、語句句柄、服務(wù)器句柄、會(huì)話句柄
10、等數(shù)據(jù)結(jié)構(gòu)。這兩步基本每次操作都一樣,是默認(rèn)必須有的。第三步,建立與神通數(shù)據(jù)庫的連接及創(chuàng)建用戶會(huì)話。建立連接需要給程序提供神通數(shù)據(jù)庫服務(wù)器地址,用戶名和密碼。如果是在本機(jī)開發(fā)調(diào)試,連接自身安裝數(shù)據(jù)庫,服務(wù)器地址可直接輸入localhost。第四步,通過SQL語句與神通數(shù)據(jù)庫服務(wù)器交互,然后對(duì)獲取的數(shù)據(jù)進(jìn)行處理。這一步包含幾個(gè)步驟。首先需要準(zhǔn)備SQL語句,告訴數(shù)據(jù)庫需要執(zhí)行的操作,如查詢(SELECT)、插入(INSERT)、更新(UPDATE)等。然后按位置綁定所操作表中的數(shù)據(jù),告訴數(shù)據(jù)庫每個(gè)數(shù)據(jù)的類型,如整形(SQLT_INT),字符串類型(SQLT_STR),字符大對(duì)象型(SQLT_CLO
11、B)等。這是關(guān)鍵的一步,因?yàn)樯俳?、沒綁、或者錯(cuò)綁均得不到正確的結(jié)果。最后執(zhí)行SQL語句,該步中的執(zhí)行分為有結(jié)果顯示和沒有結(jié)果顯示兩種。前者比如查詢類,執(zhí)行SQL語句后僅將結(jié)果放置在內(nèi)存中,需要加循環(huán)輸出顯示語句。后者比如插入類,并不需要反饋結(jié)果。第五步,結(jié)束用戶會(huì)話,斷開ACI接口與神通數(shù)據(jù)庫的連接,并釋放在程序中所分配的各類句柄和資源。這一步很重要,在對(duì)有很多數(shù)據(jù)的大型數(shù)據(jù)庫進(jìn)行操作時(shí),會(huì)占用系統(tǒng)大量的內(nèi)存和CPU資源。如果每次操作后,不及時(shí)釋放資源,會(huì)使服務(wù)器負(fù)荷越來越重,最后癱瘓,造成不可估計(jì)的后果。ACI接口有錯(cuò)誤句柄,可以在程序中利用其收集錯(cuò)誤信息,方便程序排錯(cuò)。以上操作和使用函數(shù)簡
12、明顯示如圖1所示。4 神通數(shù)據(jù)庫編程實(shí)例(Programming examples of Shentong database)本節(jié)使用Qt和神通數(shù)據(jù)庫,在麒麟操作系統(tǒng)下通過ACI接口編寫一個(gè)實(shí)例的小程序,主要實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、讀取和刪除。4.1 例子背景建立一個(gè)學(xué)生花名冊(cè),要求可視化界面錄入、顯示或者刪除學(xué)生的信息。其中每個(gè)學(xué)生包含的信息包括學(xué)號(hào)(唯一標(biāo)識(shí))、姓名、年齡、性別和家庭住址共五項(xiàng)內(nèi)容。4.2 設(shè)計(jì)思路編程主要包括兩個(gè)部分,可視化界面和后臺(tái)程序處理。按照例子背景要求,主界面上應(yīng)該有錄入學(xué)生信息的五個(gè)輸入框、錄入按鈕、顯示花名冊(cè)按鈕、顯示控件及刪除按鈕。利用Qt做出主界面,展示如圖2所示
13、。后臺(tái)程序主要實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的存儲(chǔ)、讀取及顯示、刪除三種功能。每一種都離不開數(shù)據(jù)庫的操作,這都可以利用ACI接口實(shí)現(xiàn)。在數(shù)據(jù)庫中建立學(xué)生信息表,以學(xué)號(hào)為主鍵,共建5列,分別為學(xué)號(hào)、姓名、性別、年齡和家庭住址,即每行代表一名學(xué)生的所有信息。特別值得一提的是姓名、性別和家庭住址在進(jìn)行數(shù)據(jù)庫中錄入需要記錄中文,此時(shí)數(shù)據(jù)綁定應(yīng)該選擇字符大對(duì)象(CLOB)類型。誤操作處理也是需要考慮的。比如學(xué)號(hào)唯一,當(dāng)錄入相同學(xué)號(hào)學(xué)生信息時(shí)應(yīng)提示錯(cuò)誤;學(xué)生信息錄入不全時(shí),點(diǎn)擊錄入按鈕,應(yīng)該有提示;刪除前應(yīng)該有確認(rèn)提示,刪除或者錄入成功時(shí)也應(yīng)有提示等等。4.3 關(guān)鍵代碼展示篇幅所限,為了盡可能展示Qt和神通數(shù)據(jù)交互編程
14、過程,以學(xué)生信息數(shù)據(jù)顯示為例,給出關(guān)鍵代碼和注釋。ACI通過SQL來訪問神通數(shù)據(jù)庫,因此為了程序能正確運(yùn)行,首先必須保證SQL語句不出錯(cuò),能在神通數(shù)據(jù)庫SQL插件中正常運(yùn)行。學(xué)生信息數(shù)據(jù)SQL查詢語句為“select * from test.roster order by NUM”。其中test為表空間,roster才是具體表??梢越⒋鎯?chǔ)單個(gè)學(xué)生的結(jié)構(gòu)體,便于后面綜合信息處理。其代碼如下:typedef struct int ID; char NAME50; char SEX10; int AGE; char AD200;Record;初始化接口環(huán)境,登錄數(shù)據(jù)庫,準(zhǔn)備SQL語句,再按位置進(jìn)行
15、數(shù)據(jù)綁定。前面提到這步的重要性,排序位置要正確,同時(shí)數(shù)據(jù)類型不能出錯(cuò),共五個(gè)錄入數(shù)據(jù),因此需要綁定五次,其綁定代碼如下:r=ACIDefineByPos(m_pStmt,&m_Def,m_pErr,1,(void*)&rec.ID,sizeof(rec.ID),SQLT_INT,0,0,0,ACI_DEFAULT);r=ACIDefineByPos(m_pStmt,&m_Def,m_pErr,2,(void*)&rec.NAME,sizeof(rec.NAME),SQLT_CLOB,0,0,0,ACI_DEFAULT);r=ACIDefineByPos(m_pStmt,&m_Def,m_pEr
16、r,3,(void*)&rec.SEX,sizeof(rec.SEX),SQLT_CLOB,0,0,0,ACI_DEFAULT);r=ACIDefineByPos(m_pStmt,&m_Def,m_pErr,1,(void*)&rec.AGE,sizeof(rec.AGE),SQLT_INT,0,0,0,ACI_DEFAULT);r=ACIDefineByPos(m_pStmt,&m_Def,m_pErr,3,(void*)&rec.AD,sizeof(rec.AD),SQLT_CLOB,0,0,0,ACI_DEFAULT);數(shù)據(jù)綁定完畢后即可執(zhí)行SQL語句,如果是在數(shù)據(jù)庫中插入數(shù)據(jù),到這里就
17、可以斷開連接和釋放句柄。但是這里是查詢數(shù)據(jù),SQL語句執(zhí)行完畢后,僅把數(shù)據(jù)讀入到內(nèi)存中,還需要循環(huán)取出,經(jīng)過處理最后展示到顯示控件上。這里僅將學(xué)號(hào)和年齡合并寫入一個(gè)M數(shù)組,便于主函數(shù)讀取處理,其代碼如下:最后斷開與數(shù)據(jù)庫的連接,并釋放句柄,整個(gè)查詢過程就算結(jié)束了。本小節(jié)僅給出部分Qt與神通數(shù)據(jù)庫互聯(lián)的代碼,對(duì)于執(zhí)行查詢過程本身自然還有工作需要做,比如需要利用Qt轉(zhuǎn)到槽功能將查詢按鈕與上面的查詢函數(shù)關(guān)聯(lián)起來,略過不提。5 結(jié)論(Conclusion)文中使用中標(biāo)麒麟操作系統(tǒng),以開源Qt為開發(fā)工具,對(duì)國產(chǎn)神通數(shù)據(jù)庫進(jìn)行操作。介紹了利用神通數(shù)據(jù)庫自帶的ACI接口,用Qt連接操作數(shù)據(jù)庫的方法,并給出一個(gè)相應(yīng)編程實(shí)例,展示關(guān)鍵代碼。在例子中實(shí)現(xiàn)了簡單的數(shù)據(jù)存儲(chǔ)和讀取,為數(shù)據(jù)安全和自主可控要求高的區(qū)域提供了可行編程思路,是未來關(guān)鍵領(lǐng)域數(shù)據(jù)開發(fā)的可行之道。參考文獻(xiàn)(References)1 Pierson G,DeHaan J.Network Security and Fraud Detection System and MethodP.U.S.Patent.2 Yan J,He H,Sun Y.Integrated Security Analysis on Cascading Failure in Complex NetworksJ.IEEE Transactions on Inf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國指接板行業(yè)競(jìng)爭狀況及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國廢塑料行業(yè)市場(chǎng)十三五規(guī)劃與發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國布坯產(chǎn)品行業(yè)競(jìng)爭格局及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國密胺粉市場(chǎng)運(yùn)行態(tài)勢(shì)及發(fā)展規(guī)劃分析報(bào)告
- 2025-2030年中國家用發(fā)酵箱項(xiàng)目投資風(fēng)險(xiǎn)分析報(bào)告
- 2025-2030年中國女士文胸行業(yè)發(fā)展趨勢(shì)及投資戰(zhàn)略研究報(bào)告
- 用數(shù)據(jù)分析推動(dòng)的社交媒體品牌形象構(gòu)建
- 2025-2030年中國古典家具產(chǎn)業(yè)發(fā)展現(xiàn)狀及投資潛力分析報(bào)告
- 石材料合同范本
- 社交媒體內(nèi)容創(chuàng)作的核心要素
- 淺談班級(jí)的文化建設(shè)課題論文開題結(jié)題中期研究報(bào)告(經(jīng)驗(yàn)交流)
- PMC年終個(gè)人總結(jié)精編ppt
- DBJ∕T 15-129-2017 集中空調(diào)制冷機(jī)房系統(tǒng)能效監(jiān)測(cè)及評(píng)價(jià)標(biāo)準(zhǔn)
- U8-EAI二次開發(fā)說明
- Q∕GDW 11612.41-2018 低壓電力線高速載波通信互聯(lián)互通技術(shù)規(guī)范 第4-1部分:物理層通信協(xié)議
- 2006 年全國高校俄語專業(yè)四級(jí)水平測(cè)試試卷
- 新人教版數(shù)學(xué)四年級(jí)下冊(cè)全冊(cè)表格式教案
- 疫情期間離市外出審批表
- (完整版)全身體格檢查評(píng)分標(biāo)準(zhǔn)(表)
- 裝飾裝修工程施工合理化建議和降低成本措施提要:完整
- (改)提高地下室側(cè)墻剛性防水施工合格率_圖文
評(píng)論
0/150
提交評(píng)論