李琦琳 張志明 孫威
摘要:隨著信息化進(jìn)程的不斷推進(jìn),各生產(chǎn)單位在信息建設(shè)上需要訪問專業(yè)數(shù)據(jù)庫(kù)獲取數(shù)據(jù)用于生產(chǎn)分析應(yīng)用,本文旨在研究數(shù)據(jù)庫(kù)接口技術(shù),能夠?qū)佣鄠€(gè)數(shù)據(jù)庫(kù),返回相應(yīng)的數(shù)據(jù)信息,在不同區(qū)域、不同級(jí)別的授權(quán)用戶可以獲得對(duì)應(yīng)數(shù)據(jù)。
關(guān)鍵詞:數(shù)據(jù)庫(kù)接口;接口規(guī)范;信息源
1 數(shù)據(jù)庫(kù)接口方式
數(shù)據(jù)庫(kù)接口的主要功能是實(shí)現(xiàn)數(shù)據(jù)庫(kù)與外界的數(shù)據(jù)交互,任何一種技術(shù)實(shí)現(xiàn)都可稱為數(shù)據(jù)庫(kù)接口。常見的數(shù)據(jù)庫(kù)接口方式有一下幾種:數(shù)據(jù)庫(kù)訪問授權(quán)、ETL工具獲取、中間服務(wù)中轉(zhuǎn)、程序接口實(shí)現(xiàn)。根據(jù)實(shí)際需求,從授權(quán)可控、用戶可控、訪問可控、擴(kuò)展可控等四個(gè)方面進(jìn)行對(duì)比分析,程序接口實(shí)現(xiàn)方式為一個(gè)接口對(duì)應(yīng)一個(gè)查詢涉及數(shù)據(jù)范圍小可控性高,并將數(shù)據(jù)庫(kù)保護(hù)在接口服務(wù)器之后,可最大限度保護(hù)數(shù)據(jù)安全并且程序開發(fā)自由靈活性較高,可以根據(jù)各種實(shí)際需求進(jìn)行定制開發(fā),后期擴(kuò)展性較高。
2 技術(shù)經(jīng)濟(jì)考核指標(biāo)
在確定以程序接口實(shí)現(xiàn)為主要研究?jī)?nèi)容后,從接口使用的安全性、擴(kuò)展性、穩(wěn)定性、準(zhǔn)確性等四個(gè)方向制定了技術(shù)經(jīng)濟(jì)考核指標(biāo),并展開深入研究。
(1)接口使用的安全性,在實(shí)現(xiàn)接口的快速開發(fā)的同時(shí)保證接口安全性。
接口使用的安全性主要分為響應(yīng)安全和調(diào)用安全。
響應(yīng)安全主要是避免SQL注入風(fēng)險(xiǎn)。SQL注入攻擊指的是通過構(gòu)建特殊的輸入作為參數(shù)傳入Web應(yīng)用程序,而這些輸入大都是SQL語法里的一些組合,通過執(zhí)行SQL語句進(jìn)而執(zhí)行攻擊者所要的操作,其主要原因是沒有細(xì)致地過濾用戶輸入的數(shù)據(jù),致使非法數(shù)據(jù)侵入系統(tǒng)。在程序接口參數(shù)的響應(yīng)層和執(zhí)行層進(jìn)行雙重過濾,避免SQL注入風(fēng)險(xiǎn)。
調(diào)用安全主要研究接口調(diào)用者身份的驗(yàn)證。訪問令牌鑒權(quán)機(jī)制,使用者在對(duì)接口的每次調(diào)用時(shí),推送必要的請(qǐng)求參數(shù)的同時(shí)要附帶自己身份令牌。這就意味著在設(shè)計(jì)接口時(shí),有一個(gè)接口是首先要調(diào)用的,讓接口服務(wù)器生成唯一的身份令牌,身份令牌具備時(shí)效性,在獲取后的一段時(shí)內(nèi)容有效。在時(shí)效期內(nèi)如果沒有接口調(diào)用動(dòng)作,則令牌時(shí)效,令牌時(shí)效后需重新獲取。
(2)接口使用的擴(kuò)展性,滿足日常的數(shù)據(jù)庫(kù)操作需求。
微服務(wù)架構(gòu)是近幾年提出的一種程序開發(fā)理念,微服務(wù)架構(gòu)中的模塊之間的數(shù)據(jù)交互就是采用程序接口這一技術(shù)來實(shí)現(xiàn)的。微服務(wù)對(duì)接口有著強(qiáng)大管理能力和靈活的管控性,如:接口服務(wù)的注冊(cè)與發(fā)現(xiàn),接口調(diào)用的路由與熔斷。這些機(jī)制有效的保證了接口調(diào)用過程中的便捷性和可靠性。目前,我們將微服務(wù)體系中底層數(shù)據(jù)查詢和服務(wù)層進(jìn)行單獨(dú)拆分,用來完成程序接口開發(fā)工作,同時(shí)按照微服務(wù)的理念進(jìn)行技術(shù)開發(fā)保證以后向微服務(wù)的可移植。程序接口開發(fā)采用JAVA語言實(shí)現(xiàn),基于Java語言的微服務(wù)實(shí)現(xiàn)技術(shù)為Spring Boot和Spring cloud。通過采用Spring Boot開發(fā)即可以實(shí)現(xiàn)接口程序快速開發(fā),滿足擴(kuò)展需求,又能與Spring cloud緊密結(jié)合。Spring cloud是一個(gè)基于Spring Boot實(shí)現(xiàn)的云應(yīng)用開發(fā)工具是全局的服務(wù)治理框架,開發(fā)中快速配置腳手架,可以基于Spring Boot快速開發(fā)單個(gè)微服務(wù)也就是接口程序。
(3)接口使用的穩(wěn)定性,在接口大量調(diào)用時(shí)保證接口響應(yīng)及時(shí)。
當(dāng)單一接口服務(wù)器在大量請(qǐng)求時(shí)會(huì)產(chǎn)生信息阻塞,為解決這一問題最簡(jiǎn)單的方式就是增加服務(wù)器數(shù)量,但這樣會(huì)導(dǎo)致服務(wù)接口對(duì)外訪問不唯一的缺點(diǎn),給管理上帶來問題。我們?cè)诙鄠€(gè)接口服務(wù)前架設(shè)負(fù)載均衡來解決訪問不唯一的問題。負(fù)載均衡意思就是將統(tǒng)一來源的訪問分?jǐn)偟蕉鄠€(gè)響應(yīng)服務(wù)器上進(jìn)行執(zhí)行,從而共同完成工作任務(wù)。它的應(yīng)用范圍很廣如Web服務(wù)器、FTP服務(wù)器、企業(yè)內(nèi)關(guān)鍵應(yīng)用服務(wù)器等。實(shí)現(xiàn)技術(shù)也較多,本課題選擇Nginx作為負(fù)載均衡實(shí)現(xiàn)技術(shù)。
(4)接口使用的準(zhǔn)確性,了解各個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)模型,保證接口提供的數(shù)據(jù)準(zhǔn)確無誤。組織A1,A2,A5專業(yè)系統(tǒng)運(yùn)維人員一同研究數(shù)據(jù)字典定位數(shù)據(jù)源,并進(jìn)行錄入源跟蹤監(jiān)測(cè)保證數(shù)據(jù)的準(zhǔn)確性;對(duì)于乙方開發(fā)公司,提供查詢服務(wù)器,數(shù)據(jù)字典說明,并開發(fā)測(cè)試接口供查詢測(cè)試使用,來保證數(shù)據(jù)接口的準(zhǔn)確性。
3 接口規(guī)范制定
接口又被稱為Webservice,常見的形式為Url地址,普通瀏覽器即可完成調(diào)用操作。主要的接口標(biāo)準(zhǔn)有兩種Wsdl、Resful,本文對(duì)這兩種接口都進(jìn)行了技術(shù)研究,并制定接口調(diào)用規(guī)范。接口規(guī)范包含:接口名稱、接口實(shí)現(xiàn)功能介紹、接口地址、調(diào)用參數(shù)說明、返回信息格式說明。
4 多種信息源采集入庫(kù)
數(shù)據(jù)接口程序是實(shí)現(xiàn)數(shù)據(jù)的交互,為建設(shè)單位提供接口多為數(shù)據(jù)讀服務(wù),而部門內(nèi)日常工作中經(jīng)常涉及數(shù)據(jù)寫入操作,針對(duì)這種情況對(duì)接口進(jìn)行了功能豐富。為解決日常辦公中生產(chǎn)資料提取問題,設(shè)計(jì)開發(fā)截屏軟件,該軟件具備圖像識(shí)別功能,并與數(shù)據(jù)接口對(duì)接,這樣就能實(shí)現(xiàn)截取圖片中的文字并識(shí)別入庫(kù)功能。針對(duì)本地庫(kù)識(shí)別率不高的問題,追加開發(fā)了百度圖文API調(diào)用功能,可以將圖片進(jìn)行百度API識(shí)別。為解決Excel文檔批量提取問題,設(shè)計(jì)開發(fā)文檔識(shí)別功能完成Excel文檔自動(dòng)提取工作。該功能包含搜索制定目錄下所有Excel文檔,并針對(duì)版本類型分類,根據(jù)文檔所在路徑,文檔名稱,文檔內(nèi)Shell名稱進(jìn)行多級(jí)內(nèi)容細(xì)分,將提取結(jié)果與數(shù)據(jù)接口對(duì)接實(shí)現(xiàn)入庫(kù)。
5 創(chuàng)新點(diǎn)
研究實(shí)現(xiàn)了接口數(shù)據(jù)圖形化展示,數(shù)據(jù)接口在獲得請(qǐng)求后返回的信息為Jason格式,網(wǎng)頁(yè)利用JavaScript技術(shù)可以實(shí)現(xiàn)對(duì)這些信息接解析,并能生成圖表等展示樣式。如果想要更好的為用戶服務(wù)就必須盡可能的了解用戶的需求數(shù)據(jù),圖表的展現(xiàn)形式就最好的了解方式。通過將接口程序與Tableau軟件進(jìn)行結(jié)合,實(shí)現(xiàn)了接口數(shù)據(jù)圖形化的展示。
與Tableau軟件交互可以看出鉆頭進(jìn)尺接口所返回?cái)?shù)據(jù)的圖形化展示,可分為三部分:鉆進(jìn)深度的變化,鉆井頭每天的位移變化,鉆井的每天進(jìn)尺量。通過圖形的顯示使數(shù)據(jù)的管理者更加深入的了解了數(shù)據(jù)應(yīng)用情景。
6 結(jié)束語
本文對(duì)生產(chǎn)單位接口技術(shù)的研究,最終可以同時(shí)對(duì)接多個(gè)數(shù)據(jù)庫(kù),在邏輯層形成綜合的虛擬數(shù)據(jù)池,這樣一個(gè)訪問請(qǐng)求就可以返回多個(gè)數(shù)據(jù)源的數(shù)據(jù)信息,有效的減少了數(shù)據(jù)收集環(huán)節(jié)的勞動(dòng)強(qiáng)度。同一接口可以根據(jù)不同的請(qǐng)求返回不同的數(shù)據(jù)信息,在模型推廣應(yīng)用階段有效避免數(shù)據(jù)二次收集的工作,降低用戶應(yīng)用難度,實(shí)現(xiàn)快速推廣。
參考文獻(xiàn)
[1]李瑞,計(jì)算機(jī)軟件數(shù)據(jù)接口的應(yīng)用分析研究[J].自動(dòng)化與儀器儀表,2017,6:201-203.
[2]李萍,基于Web Service的數(shù)據(jù)共享交換平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2016,7:34-41.