国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

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

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

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

中圖分類號: TN919?34; TP309文獻標識碼: 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引言

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

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

1模塊設計

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

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

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

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

2關鍵技術點

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

2.1.1問題描述

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

2.1.2解決方法

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

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

2.2界面布局方案的設計

2.2.1問題描述

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

2.2.2解決方法

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

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

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

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

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

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

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

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

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

2.3.1問題描述

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

2.3.2解決方法

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

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

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

2.4.1問題描述

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

2.4.2解決方法

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

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

2.5.1問題描述

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

2.5.2解決方法

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

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

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

3安全性設計

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

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

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

4結(jié)語

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

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

參考文獻

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.3.1問題描述

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

2.3.2解決方法

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

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

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

2.4.1問題描述

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

2.4.2解決方法

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

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

2.5.1問題描述

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

2.5.2解決方法

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

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

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

3安全性設計

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

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

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

4結(jié)語

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

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

參考文獻

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.3.1問題描述

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

2.3.2解決方法

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

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

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

2.4.1問題描述

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

2.4.2解決方法

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

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

2.5.1問題描述

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

2.5.2解決方法

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

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

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

3安全性設計

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

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

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

4結(jié)語

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

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

參考文獻

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

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

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

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

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

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

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

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

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

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

猜你喜歡
數(shù)據(jù)資產(chǎn)安全事故
互聯(lián)網(wǎng)企業(yè)數(shù)據(jù)資產(chǎn)價值評估方法研究
運營商大數(shù)據(jù)業(yè)務發(fā)展方向及策略研究
移動通信(2017年5期)2017-03-30 09:24:34
基于數(shù)據(jù)資產(chǎn)的數(shù)據(jù)質(zhì)量評估模型研究及應用
數(shù)據(jù)資產(chǎn)視角下商業(yè)銀行大數(shù)據(jù)應用現(xiàn)狀及發(fā)展前景分析
如何避免足球教學與訓練中的安全事故
考試周刊(2016年102期)2017-01-17 04:11:30
生產(chǎn)安全事故應急預案管理研究
電力企業(yè)人身安全事故原因分析及其防范措施探討
化工安全事故與企業(yè)內(nèi)部構(gòu)成的聯(lián)系的統(tǒng)計探究
消防安全管理現(xiàn)狀與消防監(jiān)督管理模式創(chuàng)新
價值工程(2016年31期)2016-12-03 22:15:12
化“要我學”為“我要學”,乾坤大扭轉(zhuǎn)
清河县| 云和县| 临沂市| 闸北区| 凌云县| 平乐县| 南陵县| 搜索| 铜鼓县| 武定县| 富裕县| 四平市| 青岛市| 新兴县| 甘泉县| 横山县| 南华县| 崇州市| 永胜县| 枣庄市| 黑河市| 黎城县| 三江| 加查县| 潍坊市| 石林| 桂平市| 恩施市| 南汇区| 佛教| 孝感市| 清涧县| 兴化市| 西林县| 湟中县| 赣榆县| 合山市| 武安市| 宽甸| 错那县| 凭祥市|