王艷平 李鵬
摘要:該文主要論述了特種設備現(xiàn)場檢驗移動辦公系統(tǒng)在沒有網絡情況下的數(shù)據(jù)臨時存儲,以及有網絡情況下移動設備與應用服務器的數(shù)據(jù)同步要求,提出了DB4O作為嵌入式數(shù)據(jù)庫來實現(xiàn)特種設備現(xiàn)場檢驗數(shù)據(jù)臨時存儲的方法,詳細描述了MobiLink數(shù)據(jù)同步技術應用于特種設備現(xiàn)場檢驗的實現(xiàn)過程。
關鍵詞:特種設備;現(xiàn)場檢驗;臨時存儲;數(shù)據(jù)同步
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2012)20-4785-03
Research on Data Synchronization for Mobile Working System of Especial Equipment Field Test
WANG Yan-ping1, LI Peng2
(1. Wuhan Institute of Especial Equipment Supervise and Test, Wuhan 430040, China; 2. Wuhan Read Software Industry Limited Compa ny, Wuhan 430074, China)
Abstract: This paper discusses the require of temporary data storage at no network signal and data synchronization between mobile equip ment and application server at good network signal for especial equipment field test and mobile working system. The method of embedded database using DB4O to realize temporary data storage for especial equipment field test is briefly introduced in this paper. The implementa tion process of especial equipment field test by applying the technology of data synchronization based on MobiLink is described in detail.
Key words: especial equipment; field test ; temporary storage; data synchronization
隨著3G網絡技術的快速發(fā)展及平板電腦、智能手機等移動終端的不斷改進,移動辦公已大量應用在各行各業(yè)中,基于3G無線傳輸?shù)奶胤N設備現(xiàn)場檢驗移動辦公系統(tǒng)已研制成功并投入使用。但在使用過程中發(fā)現(xiàn),特種設備檢驗現(xiàn)場如電梯井道內、起重機械作業(yè)現(xiàn)場等經常沒有網絡信號或信號比較弱,同時為保障特種設備注冊信息、檢驗信息集中統(tǒng)一,滿足國家有關特種設備動態(tài)監(jiān)管要求,現(xiàn)場檢驗數(shù)據(jù)需與監(jiān)管中心數(shù)據(jù)庫實時傳輸、數(shù)據(jù)同步,導致特種設備現(xiàn)場檢驗移動辦公系統(tǒng)無法有效應用。伴隨著特種設備現(xiàn)場檢驗移動辦公系統(tǒng)研究的深入,以及數(shù)據(jù)存儲、同步處理技術的快速發(fā)展,特種設備現(xiàn)場檢驗辦公系統(tǒng)也具備了克服這些難點的條件。一方面,大數(shù)據(jù)量的離線臨時存儲技術使在一些山區(qū)、井道等等沒有網絡覆蓋的特殊地區(qū)數(shù)據(jù)采集和處理成為可能。另一方面,數(shù)據(jù)智能同步技術使數(shù)據(jù)的雙向同步、單向同步、數(shù)據(jù)壓縮傳輸?shù)葐栴},得到了解決。
1數(shù)據(jù)的臨時存儲
數(shù)據(jù)臨時存儲是指檢驗人員在采集數(shù)據(jù)后,由于人為原因或者是數(shù)據(jù)完整性檢測失敗或者是網絡信號原因等特殊情況下,數(shù)據(jù)沒有立即同步到應用服務器上。系統(tǒng)會智能的對這些場景進行智能識別,同時智能的將數(shù)據(jù)存儲在移動設備上的一種技術。
特種設備現(xiàn)場檢驗時,檢驗原始記錄數(shù)據(jù)采集、檢驗報告數(shù)據(jù)處理量很大,既要采集使用單位、維保單位、持證人員、注冊設備等信息,還要處理檢驗數(shù)據(jù),因此需要充分利用移動設備的強大功能,摒棄以前采用的瘦客戶端模式,大量數(shù)據(jù)處理最好在本地設備進行。另一方面,特種設備在檢驗現(xiàn)場如電梯機房、井道、底坑等網絡信號通常很微弱的地方采集數(shù)據(jù)時,移動設備沒必要也不能與應用服務器良好交互,數(shù)據(jù)必須臨時存儲在移動設備上。
該文使用DB4O作為嵌入式數(shù)據(jù)庫來實現(xiàn)數(shù)據(jù)的臨時存儲。DB4O是一個嵌入式數(shù)據(jù)庫引擎,是100%原生的面向對象數(shù)據(jù)引擎,在移動商務辦公中得到了迅速而廣泛的應用。下面是利用DB4O實現(xiàn)設備注冊信息的示例代碼。
ObjectContainer db = Db4o.openFile("xcjy.yap");
Field f = new Field();
f.setCode(getCurrentDate());
f.setParentCode("@");
f.setOrgName("使用單位名稱");
f.setCode("設備注冊代碼");
f.setName("設備名稱");//保存對象
db.set(f);}finally{
//關閉連接db.close();}
2數(shù)據(jù)同步
通常情況下,數(shù)據(jù)同步大致分為2種:一種是單向同步,即移動設備數(shù)據(jù)智能同步到應用服務器,另外一種是雙向同步,即移動設備與應用服務器之間實現(xiàn)雙向同步。
特種設備現(xiàn)場檢驗移動辦公系統(tǒng)應用了這2種同步方式。在特種設備檢驗前,移動設備應智能同步到應用服務器,下載最新的特種設備注冊信息,為現(xiàn)場檢驗做準備;現(xiàn)場檢驗完成后,檢驗信息、現(xiàn)場核實及實際發(fā)生變更的注冊設備、使用單位、維保單位、持證人員等信息需由移動設備實時上傳到應用服務器上。移動客戶端會對這些臨時的本地數(shù)據(jù)做完整性校驗,直到移動客戶端識別到網絡信號,同步中間件服務器會實時檢測已經通過完整性校驗的數(shù)據(jù)。如果檢測到數(shù)據(jù),同步服務器會立即工作,將數(shù)據(jù)同步到應用服務器。如圖1。
圖1移動設備與服務器數(shù)據(jù)同步關系圖
目前主要利用MobiLink Server同步服務器來實現(xiàn)數(shù)據(jù)的同步。MobiLink是一個基于服務器的同步化引擎,它可以通過串行口、TCP/IP、HTTP、HotSync、ScoutSync或ActiveSync連接與遠程客戶通信。使用象MobiLink這樣的通用同步技術可以極大地削減開發(fā)費用,因為MobiLink能夠處理高級的同步操作,比如瞬象(snapshot)和時間戳同步、主鍵維持、沖突的檢測和解決等。在服務器端,所有的MobiLink同步邏輯都是通過使用后臺數(shù)據(jù)庫的SQL的事件處理的(MobiLink通過ODBC連接數(shù)據(jù)庫,所以事實上支持所有的SQL數(shù)據(jù)庫),通過使用Certicom的SSL/TLS Plus來支持公鑰加密功能(使用橢圓曲線加密系統(tǒng)技術)。
通常檢驗前后數(shù)據(jù)需要智能的同步,但是對信息量最大的檢驗報告,依然需要手動的同步。檢驗完成時需通過移動設備人為的將檢驗報告數(shù)據(jù)與應用服務器同步,或者定期檢驗需要核實上一周期的檢驗報告情況時,是人為的將應用服務器的數(shù)據(jù)與移動設備同步。下面來看看壓力容器產品監(jiān)檢原始記錄實現(xiàn)過程:
public Form f = new Form("曳引驅動電梯定期檢驗原始記錄");
f.setLayout(new BorderLayout());
tp = new TabbedPane(檢驗項目);//tab分頁標簽
Container pair = new Container();
TableLayout layout = new TableLayout(8,2);
TableLayout.Constraint constraint = layout.createConstraint();
Label l = new Label("序號");
pair.addComponent(title);
Label l1 = new Label("檢驗項目");
Label l2 = new Label("基本信息");
pair.addComponent(title2);
Label l3 = new Label("設計單位資格");
cbxsbmc.addItem("制造單位資質");
cbxsbmc.addItem("設計變更");
cbxsbmc.addItem("材質證明書");
cbxsbmc.addItem("材料代用");
cbxsbmc.addItem("焊接工藝評定");代碼執(zhí)行后效果如下圖2所示。
圖2壓力容器產品監(jiān)檢原始記錄
下面是通過移動設備終端與遠程應用服務器進行同步的實現(xiàn)過程:
public String downData(String in0) throws RemoteException {
Object[] inputObject = new Object[1];
inputObject[0] = in0;
Operation op = Operation.newInstance(_qname_searchData, _type_searchData, _type_searchDataResponse);
op.setProperty(Operation.SOAPACTION_URI_PROPERTY, "");
Object resultObj;
try {resultObj = op.invoke(inputObject);
} catch (JAXRPCException e) {
Throwable cause = e.getLinkedCause();
if (cause instanceof RemoteException) {
throw(java.rmi.RemoteException) cause;
}throw e;
}String result;
Object outObj = ((Object[])resultObj)[0];
result = (java.lang.String)outObj;
return result;
}
在實現(xiàn)過程中,檢驗數(shù)據(jù)傳輸之前要盡量做到移動設備提前驗證數(shù)據(jù),保證數(shù)據(jù)傳輸?shù)綉梅掌髦笫怯行У?、正確的。同時在數(shù)據(jù)傳輸時一定要注意數(shù)據(jù)壓縮處理,從而可以有效的減少無線寬帶占用率和通信成本。
3結論
移動設備終端數(shù)據(jù)的臨時存儲,以及數(shù)據(jù)同步是開發(fā)特種設備現(xiàn)場檢驗移動辦公系統(tǒng)的重中之重,該文描述了開發(fā)特種設備現(xiàn)場檢驗移動辦公系統(tǒng)時遇到的一些難點以及技術解決方案,希望該文對大家開發(fā)應用類似系統(tǒng)有所幫助。
參考文獻:
[1]周全力,鄒少俊,徐桂芳,等.基于3G無線傳輸?shù)奶胤N設備現(xiàn)場檢驗移動辦公系統(tǒng)研究與應用[J].中國特種設備安全,2011(1):11-14.
[2]陳帥,劉文菊.開源世界里的面向對象數(shù)據(jù)庫db4o[J].電腦知識與技術,2007(15):604-605.
[3]駱社周,劉威,趙新,等.基于Windows Mobile 5.0無線移動辦公系統(tǒng)的設計與研發(fā)——以北京城市學院無線移動辦公系統(tǒng)的開發(fā)為例[J].北京城市學院學報,2008(2):85-88.
[4]索紅光,王雷全.智能客戶端系統(tǒng)中數(shù)據(jù)同步策略的研究與實現(xiàn)[J].計算機工程與設計,2007(2):109-111.
[5]茅敏濤.基于Mobilink實現(xiàn)分布式數(shù)據(jù)庫同步的研究[J].計算機應用與軟件,2009(6):152-154.
[6]黃高磊,傅家祥.基于MobiLink移動數(shù)據(jù)庫同步技術研究[J].計算機與數(shù)字工程,2008(11): 63-65.
[7]張紹成,薛建生.移動商務系統(tǒng)中數(shù)據(jù)有效性驗證功能的客戶端實現(xiàn)[J].遼寧大學學報:自然科學版,2009(1):52-54.