• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于安卓平臺的井控信息處理系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)

      2014-09-27 18:22高翔郭新東張鳳蘭管偉
      現(xiàn)代電子技術(shù) 2014年8期
      關(guān)鍵詞:數(shù)據(jù)資產(chǎn)安全事故

      高翔+郭新東+張鳳蘭+管偉

      摘要: 介紹運(yùn)行在平板電腦上基于安卓系統(tǒng)的井控信息處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。該系統(tǒng)采用多個(gè)智能化模塊,涵蓋了井隊(duì)作業(yè)的所有流程,其中包括數(shù)據(jù)采集、系數(shù)設(shè)定、數(shù)據(jù)計(jì)算、數(shù)據(jù)存儲和轉(zhuǎn)儲、智能報(bào)警、異常分析、數(shù)據(jù)檢索等任務(wù)。顯著提高了基層井隊(duì)工人的作業(yè)效率、極大地縮短了發(fā)現(xiàn)異常并報(bào)警的時(shí)間,顯著的增加了企業(yè)整體的效益。

      關(guān)鍵詞: 井控?cái)?shù)據(jù); 數(shù)據(jù)記錄; 數(shù)據(jù)資產(chǎn); 安全事故; 起因溯源

      中圖分類號: TN919?34; TP309文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2014)08?0082?04

      Design and implementation of well control information processing system based on Android

      GAO Xiang, GUO Xin?dong, ZHANG Feng?lan, GUAN Wei

      (Northwest Polytechnical University, Xian 710129, China)

      Abstract: The design and implementation of the well control information processing system which runs on tablet personal computer and is based on Android OS are introduced in this paper. Multiple intelligent modules are adopted, which can execute all the tasks, including data collection, coefficient setting, data calculation, data storage, data dump, intelligent alarm, abnormal analysis and data retrieval in the total working process of drilling crew. With the system, the efficiency of workers in a drilling crew is improved significantly, and the response time of abnormal phenomenon discovery and alarm is reduced greatly.

      Keywords: well control data; data logging; data asset; security incident; cause traceability

      0引言

      近年來,中石油的信息化建設(shè)成果斐然,建成了很多應(yīng)用系統(tǒng),明顯改善了工作效率,提高了經(jīng)濟(jì)效益。然而,在基層鉆井隊(duì)的井控?cái)?shù)據(jù)采集和記錄方面,由于作業(yè)環(huán)境、人員素質(zhì)和技術(shù)水平的限制等問題,一線員工工作方式的信息化程度還明顯落后。傳統(tǒng)的紙筆記錄方式時(shí)常會(huì)跟不上作業(yè)流程的節(jié)奏,而且人工的筆錄也會(huì)由于字跡潦草或環(huán)境條件惡劣導(dǎo)致的污損等原因?qū)?shù)據(jù)準(zhǔn)確率造成影響,從而造成坐崗記錄的井控?cái)?shù)據(jù)的可信性不高,加重了后期數(shù)據(jù)清洗的負(fù)擔(dān),出現(xiàn)安全隱患問題時(shí),發(fā)現(xiàn)預(yù)警的時(shí)間較長。

      針對這一系列的問題,作者設(shè)計(jì)并開發(fā)了基于安卓系統(tǒng)的手持式井控信息處理系統(tǒng),為提升基層井隊(duì)的信息化水平提供了有力的支持。該系統(tǒng)的開發(fā),將傳統(tǒng)的紙質(zhì)工況記錄表移植到了手持平板電腦上,將作業(yè)數(shù)據(jù)的計(jì)算公式設(shè)計(jì)成算法內(nèi)置于系統(tǒng)中,減少了員工的計(jì)算工作量和出錯(cuò)率,同時(shí)提高了計(jì)算數(shù)據(jù)的準(zhǔn)確率,使員工可以跳過計(jì)算邏輯而專注于數(shù)據(jù)的讀取。內(nèi)置的報(bào)警系統(tǒng)可以即時(shí)根據(jù)錄入的數(shù)據(jù)進(jìn)行分析,判斷工況的正確與否或環(huán)境的安全與否而給出文字和聲音的提示,從而防患于未然。

      1模塊設(shè)計(jì)

      井控信息處理系統(tǒng)主要包括6大模塊,如圖1所示,在結(jié)構(gòu)上使用經(jīng)典MVC架構(gòu)進(jìn)行設(shè)計(jì)開發(fā)。

      圖1 系統(tǒng)結(jié)構(gòu)

      數(shù)據(jù)記錄模塊負(fù)責(zé)采集數(shù)據(jù),該處數(shù)據(jù)一部分由工人通過專用儀器從外界環(huán)境測得,或通過設(shè)備儀表讀出;另一部分由井控信息處理系統(tǒng)內(nèi)置,包括作業(yè)環(huán)境的選擇和計(jì)算系數(shù)等。采集到的數(shù)據(jù)在滿足一定條件下被事件觸發(fā)執(zhí)行相關(guān)操作,如根據(jù)系統(tǒng)內(nèi)置的公式參與其數(shù)值的計(jì)算,并將計(jì)算結(jié)果填入相應(yīng)的數(shù)據(jù)項(xiàng),由計(jì)算得出的數(shù)值會(huì)被報(bào)警模塊實(shí)時(shí)檢測,若超過系統(tǒng)設(shè)定的閾值則會(huì)發(fā)出刺耳的報(bào)警聲,并通過閃爍文字提示相應(yīng)的異常數(shù)據(jù)和可能的原因,若數(shù)據(jù)無異常則在一次記錄周期結(jié)束前將數(shù)據(jù)持久化到數(shù)據(jù)庫中。隨著工作時(shí)間的推移,數(shù)據(jù)庫中的記錄會(huì)達(dá)到數(shù)十萬到數(shù)百萬條,數(shù)據(jù)查詢模塊負(fù)責(zé)根據(jù)檢索條件高效的進(jìn)行檢索并呈現(xiàn)至設(shè)備。數(shù)據(jù)備份模塊負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)儲,可以將數(shù)據(jù)通過網(wǎng)絡(luò)以數(shù)據(jù)庫文件或Excel等文件格式轉(zhuǎn)儲至其他地方。系統(tǒng)參數(shù)配置模塊以靈活的組件形式對外提供操作接口,將系統(tǒng)中所需的各項(xiàng)復(fù)雜參數(shù)簡化至所見即所得。系統(tǒng)安全模塊則解決系統(tǒng)的使用授權(quán)模式。本系統(tǒng)的數(shù)據(jù)流圖如圖2所示。

      圖2 系統(tǒng)數(shù)據(jù)流程圖

      2關(guān)鍵技術(shù)點(diǎn)

      2.1數(shù)據(jù)記錄模塊設(shè)計(jì)

      2.1.1問題描述

      井隊(duì)在實(shí)際記錄數(shù)據(jù)的過程中,根據(jù)其工況的不同,需要錄入的數(shù)據(jù)項(xiàng)也不同,但總數(shù)都在20項(xiàng)左右,而系統(tǒng)定制的設(shè)備只有10寸。加之工況的記錄周期在15分以內(nèi),對工人的操作熟練度提出了要求。

      2.1.2解決方法

      針對上述問題,單一的使用文本框作為數(shù)據(jù)錄入接口難以完成任務(wù),而采用大量的智能化組件(Component)與事先內(nèi)置了井隊(duì)數(shù)據(jù)的適配器(Adapter)結(jié)合,可以減少工人的工作量,從而減少人機(jī)交互次數(shù),提高效率[1]。如下:

      井隊(duì)需要處理的工況通常是固定的,系統(tǒng)在設(shè)計(jì)時(shí)將工況類型硬編碼(Hard Code)入一個(gè)適配器中,然后將適配器掛載于一個(gè)活動(dòng)組件上,通過點(diǎn)擊事件觸發(fā),彈出列有具體工況的下拉列表(Spinner),由工人進(jìn)行選擇[2]。

      2.2界面布局方案的設(shè)計(jì)

      2.2.1問題描述

      整個(gè)系統(tǒng)按功能可以設(shè)計(jì)為3個(gè)模塊,分別為數(shù)據(jù)錄入、數(shù)據(jù)查詢/導(dǎo)出、系統(tǒng)配置。職責(zé)的不同導(dǎo)致3個(gè)功能塊的界面也完全不同,與傳統(tǒng)桌面程序不同的是手持設(shè)備顯示屏幕較小,設(shè)計(jì)自由度較低,單純的使用線性布局(Linear Layout)、關(guān)系布局(Relative Layout)、箱式布局(Box Layout)、邊界布局(Border Layout)或它們的結(jié)合都會(huì)顯的力不從心[3]。

      2.2.2解決方法

      (1) 整體架構(gòu)。由于問題的核心是顯示空間的不足與顯示內(nèi)容的過量之間的矛盾,采用二層顯示結(jié)構(gòu)可以解決該問題。使用層次結(jié)構(gòu)可以使功能和結(jié)構(gòu)層次分明,操作方便,顯示直觀。符合功能高內(nèi)聚,結(jié)構(gòu)低耦合的標(biāo)準(zhǔn)[4];

      一層結(jié)構(gòu):即系統(tǒng)的外層組織,使用卡式結(jié)構(gòu)(Card Group)來組織各大主功能模塊,將每個(gè)主功能模塊壓縮為一張卡,而每張卡鏈接一個(gè)功能模塊,存放所有的卡只需要一個(gè)卡箱,而卡箱占據(jù)屏幕顯示空間的大小不足1/15,觸發(fā)某個(gè)卡后可以從箱中將卡彈出,再填滿顯示空間,這樣可以節(jié)省出更多的顯示空間給更重要的內(nèi)容。

      二層結(jié)構(gòu):由于井隊(duì)的工況種類不一,而每種工況下又可分為更細(xì)的工況。 在第二層結(jié)構(gòu)上,采用了彈出式菜單(Pop Menu)和幀布局(FrameLayout)[5],通過點(diǎn)擊工況觸發(fā)切換事件,由后臺進(jìn)程調(diào)用事件相對應(yīng)的幀(Frame),即工況顯示界面,這樣可以使所有的工況共用剩余的顯示空間。

      (2) 表格結(jié)構(gòu)。由于傳統(tǒng)的井控?cái)?shù)據(jù)記錄紙質(zhì)表已使用多年,所以工人大都習(xí)慣了傳統(tǒng)的表格記錄格式,加之現(xiàn)行的安卓組件大多為文本框,按鈕等,只能滿足常用的事件調(diào)用,單純的設(shè)計(jì)成傳統(tǒng)的翻頁式記錄程序,經(jīng)試用,工人使用極其不習(xí)慣。

      針對上述情況,我們設(shè)計(jì)并制作出了動(dòng)態(tài)表格(Dynamic Table)技術(shù),這種技術(shù)的動(dòng)態(tài)主要體現(xiàn)在2個(gè)方面:

      ① 表格數(shù)據(jù)的動(dòng)態(tài)讀取,表格中顯示的數(shù)據(jù)即是之前填入的所有歷史數(shù)據(jù),但并不是由錄入界面直接送入表格,這是因?yàn)殡S著記錄時(shí)間的推移,記錄的數(shù)據(jù)會(huì)有成千上萬條甚至更多,手持設(shè)備的內(nèi)在和處理能力根本無法響應(yīng)如此大量的數(shù)據(jù)讀取。為此,系統(tǒng)采用了雙緩存技術(shù)(Double Buffer)[6],即數(shù)據(jù)庫與顯示適配器之間加緩存,適配器與顯示進(jìn)程之間加緩存,如圖3所示。

      圖3 緩存結(jié)構(gòu)

      ② 表格空間的動(dòng)態(tài)顯隱,為了使傳統(tǒng)作業(yè)的工人能夠在盡快適應(yīng)新的設(shè)備,減少后期業(yè)務(wù)培訓(xùn)的成本,系統(tǒng)使用了劃動(dòng)事件感知技術(shù),將工人使用的傳統(tǒng)紙質(zhì)表格平緩的轉(zhuǎn)化成智能填寫的電子表格,這種表格具有雙向自動(dòng)顯隱的功能,橫向(Horizontal)包含了工況對應(yīng)的所有數(shù)據(jù)項(xiàng),縱向(Vertical)可以依靠二級數(shù)據(jù)緩存顯示所有的歷史數(shù)據(jù)記錄[7]。當(dāng)組件感知到劃動(dòng)事件后會(huì)判斷劃動(dòng)的方向,如果是橫向劃動(dòng),則根據(jù)劃動(dòng)方向動(dòng)態(tài)的重繪表格,根據(jù)劃動(dòng)的力度大小,決定隱藏掉的部分與顯示出的部分的大小。如果是縱向劃動(dòng),則由后臺數(shù)據(jù)進(jìn)程首先根據(jù)斷點(diǎn)將對應(yīng)位置的數(shù)據(jù)記錄從數(shù)據(jù)庫中讀取至內(nèi)在,然后再將數(shù)據(jù)記錄裝配到顯示適配器中進(jìn)行顯示。

      2.3模塊間數(shù)據(jù)傳輸

      2.3.1問題描述

      如①中描述,各主功能模塊之間的結(jié)構(gòu)較為分散,即分裝在不同的卡中,每個(gè)功能模塊對應(yīng)不同的線程,而數(shù)據(jù)錄入模塊需要用到系數(shù)配置模塊的數(shù)據(jù),傳統(tǒng)的依靠變量傳輸在此失效。

      2.3.2解決方法

      因?yàn)橄到y(tǒng)平臺是安卓系統(tǒng),而安卓系統(tǒng)的底層是使用Linux的內(nèi)核,所以使用Linux中的管道技術(shù)(Pipe)[8]。

      不過,從管道讀數(shù)據(jù)是一次性操作,數(shù)據(jù)一旦被讀,它就從管道中被拋棄,釋放空間以便寫更多的數(shù)據(jù)。所以,在數(shù)據(jù)從管道輸入至數(shù)據(jù)錄入模塊時(shí)會(huì)先被暫存到一個(gè)XML文件里,由于XML文件可以作長期存儲用,所以在下次需要讀數(shù)據(jù)的時(shí)候進(jìn)程會(huì)先從XML里查找,若查找到,則數(shù)據(jù)命中,否則的話再通過管道進(jìn)行讀取,這種技術(shù)可以減少使用管道的次數(shù),提高數(shù)據(jù)的命中率,進(jìn)而提高系統(tǒng)的處理速度。

      2.4數(shù)據(jù)存儲

      2.4.1問題描述

      使用文本存儲數(shù)據(jù)的特點(diǎn)是寫入數(shù)據(jù)簡單,但讀取時(shí)難度較大,尤其是數(shù)據(jù)量較大或數(shù)據(jù)項(xiàng)較復(fù)雜的時(shí)候更是難以操作,且不利于保存和轉(zhuǎn)儲。在進(jìn)行數(shù)據(jù)檢索的時(shí)候更是無從下手,效率低下且錯(cuò)碼率高。

      2.4.2解決方法

      使用嵌入式系統(tǒng)型數(shù)據(jù)庫SQLite來存放數(shù)據(jù),可以解決數(shù)據(jù)存儲的問題。SQLite 是用 C 語言編寫的開源嵌入式數(shù)據(jù)庫引擎,它是完全獨(dú)立的,不具有外部依賴性。SQLite 支持多數(shù) SQL92 標(biāo)準(zhǔn),可以在所有主要的操作系統(tǒng)上運(yùn)行,并且支持大多數(shù)計(jì)算機(jī)語言。SQLite 還非常健壯。它還是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),具有資源占用少、性能良好、支持事務(wù)性等特點(diǎn)[9]。由于其開發(fā)語言的兼容性使它可以與安卓系統(tǒng)良好的結(jié)合在一起,并對上層安卓應(yīng)用層提供高性能的接口。

      2.5數(shù)據(jù)檢索

      2.5.1問題描述

      關(guān)系型數(shù)據(jù)庫的表結(jié)構(gòu)可以完美的對應(yīng)于實(shí)際中的實(shí)體表。但數(shù)以幾十萬計(jì)的記錄要在給定的檢索條件下在毫秒甚至微秒級的時(shí)間內(nèi)檢索出結(jié)果來需要設(shè)備有很強(qiáng)的計(jì)算能力和高速的緩存,但手持設(shè)備通常不具備這樣高性能的條件。如何開發(fā)一種高效的檢索算法成了解決問題的關(guān)鍵。

      2.5.2解決方法

      由于嵌入式數(shù)據(jù)庫對數(shù)據(jù)字段的支持有限,合理的設(shè)計(jì)字段的數(shù)據(jù)類型是提高檢索效率的基礎(chǔ),當(dāng)在表中添加字段的時(shí)候,應(yīng)該選擇長度最小的數(shù)據(jù)類型,這樣表在內(nèi)存中每頁可以存儲更多的記錄。

      其次是在數(shù)據(jù)量較大的工況表上建立索引(Index),SQLite允許對數(shù)據(jù)庫表進(jìn)行索引,以此能迅速查詢記錄,而無需查詢整個(gè)表,由此顯著的加快查詢速度[10]。系統(tǒng)在首次運(yùn)行的時(shí)候就會(huì)執(zhí)行相關(guān)的建庫語句,可以確保在存入數(shù)據(jù)的時(shí)候表中已建立好相應(yīng)的索引項(xiàng)。

      最后可以通過調(diào)整數(shù)據(jù)庫的緩沖區(qū)進(jìn)行優(yōu)化,通常,變量控制緩沖區(qū)的長度應(yīng)該在處理索引表的時(shí)候使用,因此可以采用不斷增加的方法以確保索引具有最佳的性能,根據(jù)相關(guān)研究測試,我們采用系統(tǒng)內(nèi)存25%的大小作為該變量的值,以此來達(dá)到最佳的性能。

      3安全性設(shè)計(jì)

      軟件系統(tǒng)為了防止被非法盜用,甚至被反編譯篡改,系統(tǒng)通常需要采用一定的加密技術(shù)處理。如果加密系統(tǒng)只是一種單純的依賴密鑰的系統(tǒng),那對用戶發(fā)放使用權(quán)的時(shí)候就是發(fā)放密鑰,這種系統(tǒng)保密性較低,一旦密碼泄漏則軟件的保密性也不復(fù)存在。

      采用證書授權(quán)可以在很大程度上保證軟件的安全性,但證書的生成通常需要網(wǎng)絡(luò)和用戶身份等基礎(chǔ)設(shè)施或基本信息才能滿足。根據(jù)設(shè)備的實(shí)際使用環(huán)境,我們以如下特殊方式解決:

      身份信息(Identity):通過設(shè)計(jì)一個(gè)獨(dú)立的軟件,提取設(shè)備的基本信息,包括設(shè)備網(wǎng)絡(luò)地址、系統(tǒng)號和基址序列號(SSN)作為指紋信息,然后將采集到的指紋信息匯聚至工作機(jī),即證書中心(CA),通過組合算法,將收到的三種信息生成惟一的一種信息,即三碼合一。然后將生成的三碼合一文件作為授權(quán)證書,發(fā)送給用戶。

      4結(jié)語

      本文分析了中石油基層鉆井工的作業(yè)環(huán)境,對其中繁瑣的流程進(jìn)行了深入研究,設(shè)計(jì)并開發(fā)了井控信息處理系統(tǒng)。該系統(tǒng)使用基于安卓操作系統(tǒng)的定制手持設(shè)備,將眾多的紙質(zhì)記錄表格和復(fù)雜的公式、系數(shù)移植到了智能設(shè)備上,極大地簡化了操作過程,節(jié)省了大量的人力和時(shí)間。數(shù)據(jù)庫系統(tǒng)的使用則解決了傳統(tǒng)記錄中數(shù)據(jù)檢索難、易丟失和保存難的缺陷。

      受限于野外作業(yè)環(huán)境的惡劣對網(wǎng)絡(luò)的影響,本系統(tǒng)尚未解決利用網(wǎng)絡(luò)遠(yuǎn)程傳輸?shù)膯栴},利用網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程傳輸和監(jiān)控是本系統(tǒng)有待提高的方向。

      參考文獻(xiàn)

      [1] 索蓋林.android開發(fā)入門指南[M].2版.北京:人民郵電出版社,2009.

      [2] 余志龍.Android SDK開發(fā)范例大全[M].北京:人民郵電出版社,2010.

      [3] 韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點(diǎn)詳解[M].北京:電子工業(yè)出版社,2010.

      [4] 李觀華,范輝.J2ME在移動(dòng)通信程序中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2003(3):124?126.

      [5] 廖永剛,余冬梅,張秋余.J2ME架構(gòu)與安全機(jī)制的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2006(4): 575?577.

      [6] 王勤.計(jì)算機(jī)控制技術(shù)[M].北京:機(jī)械工業(yè)出版社,2003.

      [7] MEIER Reto.Android高級編程[M].王超,譯.2版.北京:清華大學(xué)出版社,2010.

      [8] 劉扶松.Android開發(fā)從入門到精通[M].北京:希望電子出版社2012.

      [9] 楊豐盛.Android技術(shù)內(nèi)幕(系統(tǒng)卷) [M].北京:機(jī)械工業(yè)出版社 2011.

      [10] E2ECloud.深入淺出Google Android[M].北京:人民郵電出版社,2009.

      二層結(jié)構(gòu):由于井隊(duì)的工況種類不一,而每種工況下又可分為更細(xì)的工況。 在第二層結(jié)構(gòu)上,采用了彈出式菜單(Pop Menu)和幀布局(FrameLayout)[5],通過點(diǎn)擊工況觸發(fā)切換事件,由后臺進(jìn)程調(diào)用事件相對應(yīng)的幀(Frame),即工況顯示界面,這樣可以使所有的工況共用剩余的顯示空間。

      (2) 表格結(jié)構(gòu)。由于傳統(tǒng)的井控?cái)?shù)據(jù)記錄紙質(zhì)表已使用多年,所以工人大都習(xí)慣了傳統(tǒng)的表格記錄格式,加之現(xiàn)行的安卓組件大多為文本框,按鈕等,只能滿足常用的事件調(diào)用,單純的設(shè)計(jì)成傳統(tǒng)的翻頁式記錄程序,經(jīng)試用,工人使用極其不習(xí)慣。

      針對上述情況,我們設(shè)計(jì)并制作出了動(dòng)態(tài)表格(Dynamic Table)技術(shù),這種技術(shù)的動(dòng)態(tài)主要體現(xiàn)在2個(gè)方面:

      ① 表格數(shù)據(jù)的動(dòng)態(tài)讀取,表格中顯示的數(shù)據(jù)即是之前填入的所有歷史數(shù)據(jù),但并不是由錄入界面直接送入表格,這是因?yàn)殡S著記錄時(shí)間的推移,記錄的數(shù)據(jù)會(huì)有成千上萬條甚至更多,手持設(shè)備的內(nèi)在和處理能力根本無法響應(yīng)如此大量的數(shù)據(jù)讀取。為此,系統(tǒng)采用了雙緩存技術(shù)(Double Buffer)[6],即數(shù)據(jù)庫與顯示適配器之間加緩存,適配器與顯示進(jìn)程之間加緩存,如圖3所示。

      圖3 緩存結(jié)構(gòu)

      ② 表格空間的動(dòng)態(tài)顯隱,為了使傳統(tǒng)作業(yè)的工人能夠在盡快適應(yīng)新的設(shè)備,減少后期業(yè)務(wù)培訓(xùn)的成本,系統(tǒng)使用了劃動(dòng)事件感知技術(shù),將工人使用的傳統(tǒng)紙質(zhì)表格平緩的轉(zhuǎn)化成智能填寫的電子表格,這種表格具有雙向自動(dòng)顯隱的功能,橫向(Horizontal)包含了工況對應(yīng)的所有數(shù)據(jù)項(xiàng),縱向(Vertical)可以依靠二級數(shù)據(jù)緩存顯示所有的歷史數(shù)據(jù)記錄[7]。當(dāng)組件感知到劃動(dòng)事件后會(huì)判斷劃動(dòng)的方向,如果是橫向劃動(dòng),則根據(jù)劃動(dòng)方向動(dòng)態(tài)的重繪表格,根據(jù)劃動(dòng)的力度大小,決定隱藏掉的部分與顯示出的部分的大小。如果是縱向劃動(dòng),則由后臺數(shù)據(jù)進(jìn)程首先根據(jù)斷點(diǎn)將對應(yīng)位置的數(shù)據(jù)記錄從數(shù)據(jù)庫中讀取至內(nèi)在,然后再將數(shù)據(jù)記錄裝配到顯示適配器中進(jìn)行顯示。

      2.3模塊間數(shù)據(jù)傳輸

      2.3.1問題描述

      如①中描述,各主功能模塊之間的結(jié)構(gòu)較為分散,即分裝在不同的卡中,每個(gè)功能模塊對應(yīng)不同的線程,而數(shù)據(jù)錄入模塊需要用到系數(shù)配置模塊的數(shù)據(jù),傳統(tǒng)的依靠變量傳輸在此失效。

      2.3.2解決方法

      因?yàn)橄到y(tǒng)平臺是安卓系統(tǒng),而安卓系統(tǒng)的底層是使用Linux的內(nèi)核,所以使用Linux中的管道技術(shù)(Pipe)[8]。

      不過,從管道讀數(shù)據(jù)是一次性操作,數(shù)據(jù)一旦被讀,它就從管道中被拋棄,釋放空間以便寫更多的數(shù)據(jù)。所以,在數(shù)據(jù)從管道輸入至數(shù)據(jù)錄入模塊時(shí)會(huì)先被暫存到一個(gè)XML文件里,由于XML文件可以作長期存儲用,所以在下次需要讀數(shù)據(jù)的時(shí)候進(jìn)程會(huì)先從XML里查找,若查找到,則數(shù)據(jù)命中,否則的話再通過管道進(jìn)行讀取,這種技術(shù)可以減少使用管道的次數(shù),提高數(shù)據(jù)的命中率,進(jìn)而提高系統(tǒng)的處理速度。

      2.4數(shù)據(jù)存儲

      2.4.1問題描述

      使用文本存儲數(shù)據(jù)的特點(diǎn)是寫入數(shù)據(jù)簡單,但讀取時(shí)難度較大,尤其是數(shù)據(jù)量較大或數(shù)據(jù)項(xiàng)較復(fù)雜的時(shí)候更是難以操作,且不利于保存和轉(zhuǎn)儲。在進(jìn)行數(shù)據(jù)檢索的時(shí)候更是無從下手,效率低下且錯(cuò)碼率高。

      2.4.2解決方法

      使用嵌入式系統(tǒng)型數(shù)據(jù)庫SQLite來存放數(shù)據(jù),可以解決數(shù)據(jù)存儲的問題。SQLite 是用 C 語言編寫的開源嵌入式數(shù)據(jù)庫引擎,它是完全獨(dú)立的,不具有外部依賴性。SQLite 支持多數(shù) SQL92 標(biāo)準(zhǔn),可以在所有主要的操作系統(tǒng)上運(yùn)行,并且支持大多數(shù)計(jì)算機(jī)語言。SQLite 還非常健壯。它還是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),具有資源占用少、性能良好、支持事務(wù)性等特點(diǎn)[9]。由于其開發(fā)語言的兼容性使它可以與安卓系統(tǒng)良好的結(jié)合在一起,并對上層安卓應(yīng)用層提供高性能的接口。

      2.5數(shù)據(jù)檢索

      2.5.1問題描述

      關(guān)系型數(shù)據(jù)庫的表結(jié)構(gòu)可以完美的對應(yīng)于實(shí)際中的實(shí)體表。但數(shù)以幾十萬計(jì)的記錄要在給定的檢索條件下在毫秒甚至微秒級的時(shí)間內(nèi)檢索出結(jié)果來需要設(shè)備有很強(qiáng)的計(jì)算能力和高速的緩存,但手持設(shè)備通常不具備這樣高性能的條件。如何開發(fā)一種高效的檢索算法成了解決問題的關(guān)鍵。

      2.5.2解決方法

      由于嵌入式數(shù)據(jù)庫對數(shù)據(jù)字段的支持有限,合理的設(shè)計(jì)字段的數(shù)據(jù)類型是提高檢索效率的基礎(chǔ),當(dāng)在表中添加字段的時(shí)候,應(yīng)該選擇長度最小的數(shù)據(jù)類型,這樣表在內(nèi)存中每頁可以存儲更多的記錄。

      其次是在數(shù)據(jù)量較大的工況表上建立索引(Index),SQLite允許對數(shù)據(jù)庫表進(jìn)行索引,以此能迅速查詢記錄,而無需查詢整個(gè)表,由此顯著的加快查詢速度[10]。系統(tǒng)在首次運(yùn)行的時(shí)候就會(huì)執(zhí)行相關(guān)的建庫語句,可以確保在存入數(shù)據(jù)的時(shí)候表中已建立好相應(yīng)的索引項(xiàng)。

      最后可以通過調(diào)整數(shù)據(jù)庫的緩沖區(qū)進(jìn)行優(yōu)化,通常,變量控制緩沖區(qū)的長度應(yīng)該在處理索引表的時(shí)候使用,因此可以采用不斷增加的方法以確保索引具有最佳的性能,根據(jù)相關(guān)研究測試,我們采用系統(tǒng)內(nèi)存25%的大小作為該變量的值,以此來達(dá)到最佳的性能。

      3安全性設(shè)計(jì)

      軟件系統(tǒng)為了防止被非法盜用,甚至被反編譯篡改,系統(tǒng)通常需要采用一定的加密技術(shù)處理。如果加密系統(tǒng)只是一種單純的依賴密鑰的系統(tǒng),那對用戶發(fā)放使用權(quán)的時(shí)候就是發(fā)放密鑰,這種系統(tǒng)保密性較低,一旦密碼泄漏則軟件的保密性也不復(fù)存在。

      采用證書授權(quán)可以在很大程度上保證軟件的安全性,但證書的生成通常需要網(wǎng)絡(luò)和用戶身份等基礎(chǔ)設(shè)施或基本信息才能滿足。根據(jù)設(shè)備的實(shí)際使用環(huán)境,我們以如下特殊方式解決:

      身份信息(Identity):通過設(shè)計(jì)一個(gè)獨(dú)立的軟件,提取設(shè)備的基本信息,包括設(shè)備網(wǎng)絡(luò)地址、系統(tǒng)號和基址序列號(SSN)作為指紋信息,然后將采集到的指紋信息匯聚至工作機(jī),即證書中心(CA),通過組合算法,將收到的三種信息生成惟一的一種信息,即三碼合一。然后將生成的三碼合一文件作為授權(quán)證書,發(fā)送給用戶。

      4結(jié)語

      本文分析了中石油基層鉆井工的作業(yè)環(huán)境,對其中繁瑣的流程進(jìn)行了深入研究,設(shè)計(jì)并開發(fā)了井控信息處理系統(tǒng)。該系統(tǒng)使用基于安卓操作系統(tǒng)的定制手持設(shè)備,將眾多的紙質(zhì)記錄表格和復(fù)雜的公式、系數(shù)移植到了智能設(shè)備上,極大地簡化了操作過程,節(jié)省了大量的人力和時(shí)間。數(shù)據(jù)庫系統(tǒng)的使用則解決了傳統(tǒng)記錄中數(shù)據(jù)檢索難、易丟失和保存難的缺陷。

      受限于野外作業(yè)環(huán)境的惡劣對網(wǎng)絡(luò)的影響,本系統(tǒng)尚未解決利用網(wǎng)絡(luò)遠(yuǎn)程傳輸?shù)膯栴},利用網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程傳輸和監(jiān)控是本系統(tǒng)有待提高的方向。

      參考文獻(xiàn)

      [1] 索蓋林.android開發(fā)入門指南[M].2版.北京:人民郵電出版社,2009.

      [2] 余志龍.Android SDK開發(fā)范例大全[M].北京:人民郵電出版社,2010.

      [3] 韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點(diǎn)詳解[M].北京:電子工業(yè)出版社,2010.

      [4] 李觀華,范輝.J2ME在移動(dòng)通信程序中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2003(3):124?126.

      [5] 廖永剛,余冬梅,張秋余.J2ME架構(gòu)與安全機(jī)制的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2006(4): 575?577.

      [6] 王勤.計(jì)算機(jī)控制技術(shù)[M].北京:機(jī)械工業(yè)出版社,2003.

      [7] MEIER Reto.Android高級編程[M].王超,譯.2版.北京:清華大學(xué)出版社,2010.

      [8] 劉扶松.Android開發(fā)從入門到精通[M].北京:希望電子出版社2012.

      [9] 楊豐盛.Android技術(shù)內(nèi)幕(系統(tǒng)卷) [M].北京:機(jī)械工業(yè)出版社 2011.

      [10] E2ECloud.深入淺出Google Android[M].北京:人民郵電出版社,2009.

      二層結(jié)構(gòu):由于井隊(duì)的工況種類不一,而每種工況下又可分為更細(xì)的工況。 在第二層結(jié)構(gòu)上,采用了彈出式菜單(Pop Menu)和幀布局(FrameLayout)[5],通過點(diǎn)擊工況觸發(fā)切換事件,由后臺進(jìn)程調(diào)用事件相對應(yīng)的幀(Frame),即工況顯示界面,這樣可以使所有的工況共用剩余的顯示空間。

      (2) 表格結(jié)構(gòu)。由于傳統(tǒng)的井控?cái)?shù)據(jù)記錄紙質(zhì)表已使用多年,所以工人大都習(xí)慣了傳統(tǒng)的表格記錄格式,加之現(xiàn)行的安卓組件大多為文本框,按鈕等,只能滿足常用的事件調(diào)用,單純的設(shè)計(jì)成傳統(tǒng)的翻頁式記錄程序,經(jīng)試用,工人使用極其不習(xí)慣。

      針對上述情況,我們設(shè)計(jì)并制作出了動(dòng)態(tài)表格(Dynamic Table)技術(shù),這種技術(shù)的動(dòng)態(tài)主要體現(xiàn)在2個(gè)方面:

      ① 表格數(shù)據(jù)的動(dòng)態(tài)讀取,表格中顯示的數(shù)據(jù)即是之前填入的所有歷史數(shù)據(jù),但并不是由錄入界面直接送入表格,這是因?yàn)殡S著記錄時(shí)間的推移,記錄的數(shù)據(jù)會(huì)有成千上萬條甚至更多,手持設(shè)備的內(nèi)在和處理能力根本無法響應(yīng)如此大量的數(shù)據(jù)讀取。為此,系統(tǒng)采用了雙緩存技術(shù)(Double Buffer)[6],即數(shù)據(jù)庫與顯示適配器之間加緩存,適配器與顯示進(jìn)程之間加緩存,如圖3所示。

      圖3 緩存結(jié)構(gòu)

      ② 表格空間的動(dòng)態(tài)顯隱,為了使傳統(tǒng)作業(yè)的工人能夠在盡快適應(yīng)新的設(shè)備,減少后期業(yè)務(wù)培訓(xùn)的成本,系統(tǒng)使用了劃動(dòng)事件感知技術(shù),將工人使用的傳統(tǒng)紙質(zhì)表格平緩的轉(zhuǎn)化成智能填寫的電子表格,這種表格具有雙向自動(dòng)顯隱的功能,橫向(Horizontal)包含了工況對應(yīng)的所有數(shù)據(jù)項(xiàng),縱向(Vertical)可以依靠二級數(shù)據(jù)緩存顯示所有的歷史數(shù)據(jù)記錄[7]。當(dāng)組件感知到劃動(dòng)事件后會(huì)判斷劃動(dòng)的方向,如果是橫向劃動(dòng),則根據(jù)劃動(dòng)方向動(dòng)態(tài)的重繪表格,根據(jù)劃動(dòng)的力度大小,決定隱藏掉的部分與顯示出的部分的大小。如果是縱向劃動(dòng),則由后臺數(shù)據(jù)進(jìn)程首先根據(jù)斷點(diǎn)將對應(yīng)位置的數(shù)據(jù)記錄從數(shù)據(jù)庫中讀取至內(nèi)在,然后再將數(shù)據(jù)記錄裝配到顯示適配器中進(jìn)行顯示。

      2.3模塊間數(shù)據(jù)傳輸

      2.3.1問題描述

      如①中描述,各主功能模塊之間的結(jié)構(gòu)較為分散,即分裝在不同的卡中,每個(gè)功能模塊對應(yīng)不同的線程,而數(shù)據(jù)錄入模塊需要用到系數(shù)配置模塊的數(shù)據(jù),傳統(tǒng)的依靠變量傳輸在此失效。

      2.3.2解決方法

      因?yàn)橄到y(tǒng)平臺是安卓系統(tǒng),而安卓系統(tǒng)的底層是使用Linux的內(nèi)核,所以使用Linux中的管道技術(shù)(Pipe)[8]。

      不過,從管道讀數(shù)據(jù)是一次性操作,數(shù)據(jù)一旦被讀,它就從管道中被拋棄,釋放空間以便寫更多的數(shù)據(jù)。所以,在數(shù)據(jù)從管道輸入至數(shù)據(jù)錄入模塊時(shí)會(huì)先被暫存到一個(gè)XML文件里,由于XML文件可以作長期存儲用,所以在下次需要讀數(shù)據(jù)的時(shí)候進(jìn)程會(huì)先從XML里查找,若查找到,則數(shù)據(jù)命中,否則的話再通過管道進(jìn)行讀取,這種技術(shù)可以減少使用管道的次數(shù),提高數(shù)據(jù)的命中率,進(jìn)而提高系統(tǒng)的處理速度。

      2.4數(shù)據(jù)存儲

      2.4.1問題描述

      使用文本存儲數(shù)據(jù)的特點(diǎn)是寫入數(shù)據(jù)簡單,但讀取時(shí)難度較大,尤其是數(shù)據(jù)量較大或數(shù)據(jù)項(xiàng)較復(fù)雜的時(shí)候更是難以操作,且不利于保存和轉(zhuǎn)儲。在進(jìn)行數(shù)據(jù)檢索的時(shí)候更是無從下手,效率低下且錯(cuò)碼率高。

      2.4.2解決方法

      使用嵌入式系統(tǒng)型數(shù)據(jù)庫SQLite來存放數(shù)據(jù),可以解決數(shù)據(jù)存儲的問題。SQLite 是用 C 語言編寫的開源嵌入式數(shù)據(jù)庫引擎,它是完全獨(dú)立的,不具有外部依賴性。SQLite 支持多數(shù) SQL92 標(biāo)準(zhǔn),可以在所有主要的操作系統(tǒng)上運(yùn)行,并且支持大多數(shù)計(jì)算機(jī)語言。SQLite 還非常健壯。它還是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),具有資源占用少、性能良好、支持事務(wù)性等特點(diǎn)[9]。由于其開發(fā)語言的兼容性使它可以與安卓系統(tǒng)良好的結(jié)合在一起,并對上層安卓應(yīng)用層提供高性能的接口。

      2.5數(shù)據(jù)檢索

      2.5.1問題描述

      關(guān)系型數(shù)據(jù)庫的表結(jié)構(gòu)可以完美的對應(yīng)于實(shí)際中的實(shí)體表。但數(shù)以幾十萬計(jì)的記錄要在給定的檢索條件下在毫秒甚至微秒級的時(shí)間內(nèi)檢索出結(jié)果來需要設(shè)備有很強(qiáng)的計(jì)算能力和高速的緩存,但手持設(shè)備通常不具備這樣高性能的條件。如何開發(fā)一種高效的檢索算法成了解決問題的關(guān)鍵。

      2.5.2解決方法

      由于嵌入式數(shù)據(jù)庫對數(shù)據(jù)字段的支持有限,合理的設(shè)計(jì)字段的數(shù)據(jù)類型是提高檢索效率的基礎(chǔ),當(dāng)在表中添加字段的時(shí)候,應(yīng)該選擇長度最小的數(shù)據(jù)類型,這樣表在內(nèi)存中每頁可以存儲更多的記錄。

      其次是在數(shù)據(jù)量較大的工況表上建立索引(Index),SQLite允許對數(shù)據(jù)庫表進(jìn)行索引,以此能迅速查詢記錄,而無需查詢整個(gè)表,由此顯著的加快查詢速度[10]。系統(tǒng)在首次運(yùn)行的時(shí)候就會(huì)執(zhí)行相關(guān)的建庫語句,可以確保在存入數(shù)據(jù)的時(shí)候表中已建立好相應(yīng)的索引項(xiàng)。

      最后可以通過調(diào)整數(shù)據(jù)庫的緩沖區(qū)進(jìn)行優(yōu)化,通常,變量控制緩沖區(qū)的長度應(yīng)該在處理索引表的時(shí)候使用,因此可以采用不斷增加的方法以確保索引具有最佳的性能,根據(jù)相關(guān)研究測試,我們采用系統(tǒng)內(nèi)存25%的大小作為該變量的值,以此來達(dá)到最佳的性能。

      3安全性設(shè)計(jì)

      軟件系統(tǒng)為了防止被非法盜用,甚至被反編譯篡改,系統(tǒng)通常需要采用一定的加密技術(shù)處理。如果加密系統(tǒng)只是一種單純的依賴密鑰的系統(tǒng),那對用戶發(fā)放使用權(quán)的時(shí)候就是發(fā)放密鑰,這種系統(tǒng)保密性較低,一旦密碼泄漏則軟件的保密性也不復(fù)存在。

      采用證書授權(quán)可以在很大程度上保證軟件的安全性,但證書的生成通常需要網(wǎng)絡(luò)和用戶身份等基礎(chǔ)設(shè)施或基本信息才能滿足。根據(jù)設(shè)備的實(shí)際使用環(huán)境,我們以如下特殊方式解決:

      身份信息(Identity):通過設(shè)計(jì)一個(gè)獨(dú)立的軟件,提取設(shè)備的基本信息,包括設(shè)備網(wǎng)絡(luò)地址、系統(tǒng)號和基址序列號(SSN)作為指紋信息,然后將采集到的指紋信息匯聚至工作機(jī),即證書中心(CA),通過組合算法,將收到的三種信息生成惟一的一種信息,即三碼合一。然后將生成的三碼合一文件作為授權(quán)證書,發(fā)送給用戶。

      4結(jié)語

      本文分析了中石油基層鉆井工的作業(yè)環(huán)境,對其中繁瑣的流程進(jìn)行了深入研究,設(shè)計(jì)并開發(fā)了井控信息處理系統(tǒng)。該系統(tǒng)使用基于安卓操作系統(tǒng)的定制手持設(shè)備,將眾多的紙質(zhì)記錄表格和復(fù)雜的公式、系數(shù)移植到了智能設(shè)備上,極大地簡化了操作過程,節(jié)省了大量的人力和時(shí)間。數(shù)據(jù)庫系統(tǒng)的使用則解決了傳統(tǒng)記錄中數(shù)據(jù)檢索難、易丟失和保存難的缺陷。

      受限于野外作業(yè)環(huán)境的惡劣對網(wǎng)絡(luò)的影響,本系統(tǒng)尚未解決利用網(wǎng)絡(luò)遠(yuǎn)程傳輸?shù)膯栴},利用網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程傳輸和監(jiān)控是本系統(tǒng)有待提高的方向。

      參考文獻(xiàn)

      [1] 索蓋林.android開發(fā)入門指南[M].2版.北京:人民郵電出版社,2009.

      [2] 余志龍.Android SDK開發(fā)范例大全[M].北京:人民郵電出版社,2010.

      [3] 韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點(diǎn)詳解[M].北京:電子工業(yè)出版社,2010.

      [4] 李觀華,范輝.J2ME在移動(dòng)通信程序中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2003(3):124?126.

      [5] 廖永剛,余冬梅,張秋余.J2ME架構(gòu)與安全機(jī)制的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2006(4): 575?577.

      [6] 王勤.計(jì)算機(jī)控制技術(shù)[M].北京:機(jī)械工業(yè)出版社,2003.

      [7] MEIER Reto.Android高級編程[M].王超,譯.2版.北京:清華大學(xué)出版社,2010.

      [8] 劉扶松.Android開發(fā)從入門到精通[M].北京:希望電子出版社2012.

      [9] 楊豐盛.Android技術(shù)內(nèi)幕(系統(tǒng)卷) [M].北京:機(jī)械工業(yè)出版社 2011.

      [10] E2ECloud.深入淺出Google Android[M].北京:人民郵電出版社,2009.

      猜你喜歡
      數(shù)據(jù)資產(chǎn)安全事故
      互聯(lián)網(wǎng)企業(yè)數(shù)據(jù)資產(chǎn)價(jià)值評估方法研究
      運(yùn)營商大數(shù)據(jù)業(yè)務(wù)發(fā)展方向及策略研究
      基于數(shù)據(jù)資產(chǎn)的數(shù)據(jù)質(zhì)量評估模型研究及應(yīng)用
      數(shù)據(jù)資產(chǎn)視角下商業(yè)銀行大數(shù)據(jù)應(yīng)用現(xiàn)狀及發(fā)展前景分析
      如何避免足球教學(xué)與訓(xùn)練中的安全事故
      生產(chǎn)安全事故應(yīng)急預(yù)案管理研究
      電力企業(yè)人身安全事故原因分析及其防范措施探討
      武平县| 汾西县| 互助| 宜昌市| 马边| 鲁山县| 灵丘县| 桃园市| 阿图什市| 株洲县| 朔州市| 六枝特区| 习水县| 常州市| 百色市| 克山县| 巴塘县| 北宁市| 海口市| 剑阁县| 剑川县| 礼泉县| 赣榆县| 昌图县| 太谷县| 郯城县| 衡山县| 磐安县| 吴堡县| 武乡县| 新平| 新兴县| 金华市| 西和县| 莎车县| 肇庆市| 杨浦区| 吐鲁番市| 阳山县| 运城市| 忻城县|