丁柳++任書民
摘 要:本文從大型煤礦企業(yè)實(shí)際出發(fā),結(jié)合煤礦現(xiàn)有生產(chǎn)管理業(yè)務(wù)系統(tǒng),設(shè)計(jì)實(shí)現(xiàn)了一個大型煤礦移動信息化綜合應(yīng)用平臺。平臺服務(wù)端實(shí)現(xiàn)了業(yè)務(wù)接口對接、數(shù)據(jù)轉(zhuǎn)發(fā)、權(quán)限管理、消息推送等功能,為移動客戶端提供服務(wù)支持。在移動端采用插件式框架,結(jié)合服務(wù)端的權(quán)限管理模塊,實(shí)現(xiàn)了自由安裝,按需加載的移動應(yīng)用。通過本項(xiàng)目的實(shí)施,可以給用戶提供隨時隨地查詢以及監(jiān)管煤礦生產(chǎn)運(yùn)營情況,加強(qiáng)了各個礦級單位之間的聯(lián)系。對大型煤礦企業(yè)的提高生產(chǎn)效率、加強(qiáng)了管理力度、降低了安全隱患方面提供了巨大的幫助。
關(guān)鍵詞:移動設(shè)備;移動信息化;插件式框架
中圖分類號:TP315 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-2064(2017)20-0009-05
1 引言
計(jì)算機(jī)便攜化是未來的發(fā)展趨勢,而Android作為最受歡迎的手機(jī)、平板電腦操作之一,其發(fā)展的上升勢頭是勢不可當(dāng)?shù)腫1]。移動應(yīng)用在日常生活中越來越不可缺少,移動通信和互聯(lián)網(wǎng)組成的移動應(yīng)用技術(shù)不僅可以讓用戶隨時隨地處理工作和生活中的事務(wù),更可掌握第一手資訊,及時的調(diào)整策略應(yīng)對未來。
在當(dāng)前的移動互聯(lián)網(wǎng)時代,出行有滴滴快車、摩拜單車;吃飯有美團(tuán)外賣、餓了嗎;交水電煤氣,逛超市購物,可以通過支付寶、微信;醫(yī)院看病有醫(yī)院掛號APP;等個公交也有城市公交APP。各行各業(yè)都開發(fā)了自己的移動應(yīng)用,方便了人們的生活,也提高了本行業(yè)的生產(chǎn)活力。
煤炭行業(yè)作為一個傳統(tǒng)行業(yè),具有人員多,地域廣,管理難得特點(diǎn)。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,也逐漸的開發(fā)應(yīng)用了許多業(yè)務(wù)系統(tǒng)為日常的生產(chǎn)、經(jīng)營和管理提供了巨大的幫助。但是放到如今移動互聯(lián)網(wǎng)是代,很多原本的業(yè)務(wù)系統(tǒng)已經(jīng)不能滿足當(dāng)前這個信息快速傳播的需求,利用移動終端進(jìn)行業(yè)務(wù)處理,已經(jīng)成為了煤炭行業(yè)迫切需要的工作方式。
2 煤炭企業(yè)信息化現(xiàn)存問題
對于傳統(tǒng)的煤炭行業(yè),隨著信息技術(shù)的發(fā)展,為了適應(yīng)市場行情,煤礦企業(yè)都陸陸續(xù)續(xù)的開發(fā)安裝了一些業(yè)務(wù)管理系統(tǒng),但是煤炭企業(yè)信息化建設(shè)中存在缺乏頂層規(guī)劃、煤礦信息化標(biāo)準(zhǔn)建設(shè)滯后、缺乏能有效利用煤礦大數(shù)據(jù)的智能軟件等問題[2],具體原因分析如下:
(1)由于開發(fā)安裝的時期不同,開發(fā)的廠家不同,系統(tǒng)相對獨(dú)立,沒有統(tǒng)一的設(shè)計(jì),系統(tǒng)功能類似,但不能進(jìn)行數(shù)據(jù)互通。(2)對廠商的依賴性過大,對新的業(yè)務(wù)需求無法得到及時的更新和升級,只能不停地安裝新的系統(tǒng)用以滿足新的業(yè)務(wù)需求。(3)系統(tǒng)上線運(yùn)行后時間間隔太久,源代碼丟失,無法更新維護(hù)。(4)無法隨時隨地的獲取系統(tǒng)數(shù)據(jù),需要安排值班人員實(shí)時監(jiān)控系統(tǒng),信息傳遞不及時。(5)開發(fā)新的業(yè)務(wù)系統(tǒng),相關(guān)人員對業(yè)務(wù)需求不明確,當(dāng)系統(tǒng)上線后對業(yè)務(wù)系統(tǒng)頻繁更新維護(hù),造成系統(tǒng)運(yùn)行不穩(wěn)定,易出錯。
基于以上研究背景,本論文主要研究如何為大型煤礦構(gòu)建一個移動信息化綜合應(yīng)用平臺,平臺兼顧傳統(tǒng)應(yīng)用、云應(yīng)用的開發(fā)和運(yùn)維模式,支持對接原有的傳統(tǒng)業(yè)務(wù)系統(tǒng),將原有的傳統(tǒng)業(yè)務(wù)系統(tǒng)移動化,同時針對先如今的發(fā)展需要,開發(fā)新的移動應(yīng)用,為各業(yè)務(wù)條線提供全面的移動信息化支撐,滿足行業(yè)發(fā)展需要。
3 國內(nèi)外信息化發(fā)展趨勢
隨著移動通信技術(shù)的發(fā)展和智能移動設(shè)備的普及,移動信息化正在逐漸的改變?nèi)藗兊纳盍?xí)慣和企業(yè)的運(yùn)營方式。在國外,移動信息化發(fā)展相對國內(nèi)比較迅速,在政府、交通、醫(yī)療、教育、銀行、制造、銷售等行業(yè),充分利用移動設(shè)備的移動性、實(shí)時性、交互性、易管理性等特點(diǎn),開發(fā)了大量的移動應(yīng)用,實(shí)現(xiàn)生產(chǎn)效率和管理水平的全面提升。移動信息化已從輔助發(fā)展提升為核心關(guān)鍵的技術(shù)手段,為企業(yè)的生產(chǎn)力和行業(yè)的影響力提供了巨大的幫助。
對于國內(nèi),移動應(yīng)用的涉及領(lǐng)域也越來越廣泛,人們的出行、工作、生活已離不開移動應(yīng)用,不可否認(rèn),移動應(yīng)用正在改變我們的生活。而相對于企業(yè)來說,目前的移動應(yīng)用主要基于訪問其所依賴的現(xiàn)有企業(yè)應(yīng)用與數(shù)據(jù),并與之互動,提高響應(yīng)的工作效率。
對于煤礦企,通過移動互聯(lián)網(wǎng)應(yīng)用,及時的掌握第一手行業(yè)資訊,對接瓦斯檢測,關(guān)注生產(chǎn)安全;引入生產(chǎn)經(jīng)營調(diào)度系統(tǒng)數(shù)據(jù),實(shí)時掌握生產(chǎn)情況;增設(shè)云會議,視頻監(jiān)控等,實(shí)現(xiàn)便捷管理,統(tǒng)一調(diào)控。使煤礦企業(yè)由原本的傳統(tǒng)管理轉(zhuǎn)變?yōu)橐苿踊畔⒒芾眢w制,更加適應(yīng)當(dāng)代發(fā)展需要。
4 移動信息化綜合平臺需求分析
4.1 礦山現(xiàn)有系統(tǒng)應(yīng)用現(xiàn)狀
目前,整個集團(tuán)下屬有大大小小不同的礦山企業(yè)組成,隨著信息化發(fā)展,每個礦都使用了不同的安全生產(chǎn)業(yè)務(wù)軟件,這些軟件由于使用的時期不同,廠家不同,雖然功能類似,但是在數(shù)據(jù)上相對獨(dú)立,無法互通。
4.2 平臺移動應(yīng)用業(yè)務(wù)需求
平臺系統(tǒng)的開發(fā)前提是為了提高礦山生產(chǎn)效率同時降低事故發(fā)生率,方便領(lǐng)導(dǎo)層的統(tǒng)一管理。
4.2.1 安全生產(chǎn)
隨時隨地的獲取生產(chǎn)安全信息,關(guān)注萬斯含量,通過人員定位,了解采面人員分布情況,實(shí)時掌握危險(xiǎn)源,及時采取措施避免事故發(fā)生。
4.2.2 經(jīng)營調(diào)度
對礦山的生產(chǎn)、裝運(yùn)、銷售等信息進(jìn)行調(diào)控,及時掌握市場動態(tài),調(diào)整生產(chǎn)效率,擴(kuò)大經(jīng)營利潤,通過系統(tǒng)更好的適應(yīng)市場需求,提高企業(yè)競爭力。
4.2.3 決策管理
由于礦山分布廣,會議決策發(fā)布不及時等問題實(shí)際存在,所以通過移動互聯(lián)網(wǎng)發(fā)布會議決策勢在必行。
5 移動信息化綜合平臺功能設(shè)計(jì)
5.1 平臺服務(wù)端設(shè)計(jì)
作為一個企業(yè)級移動信息化綜合應(yīng)用平臺,負(fù)責(zé)移動客戶端的身份驗(yàn)證和數(shù)據(jù)交換服務(wù),是移動設(shè)備和服務(wù)端應(yīng)用的一個橋梁,需要具有對接轉(zhuǎn)換外部系統(tǒng)數(shù)據(jù)的能力、分級多層次的權(quán)限控制、移動應(yīng)用版本控制等功能。主要設(shè)計(jì)一下幾個模塊:
數(shù)據(jù)轉(zhuǎn)發(fā)模塊:對接原有的系統(tǒng)數(shù)據(jù)接口,轉(zhuǎn)換為移動端可識別的數(shù)據(jù)類型發(fā)送給移動端進(jìn)行數(shù)據(jù)展示。endprint
數(shù)據(jù)同步模塊:當(dāng)移動端發(fā)送請求時,根據(jù)請求進(jìn)行數(shù)據(jù)更新,保持移動數(shù)據(jù)和服務(wù)端數(shù)據(jù)庫數(shù)據(jù)的一致性??赏降臄?shù)據(jù)包含數(shù)據(jù)實(shí)體、圖片、表單、權(quán)限應(yīng)用等。
版本控制模塊:為系統(tǒng)提供移動項(xiàng)目的應(yīng)用發(fā)布、下載、版本控制等功能,保證移動客戶端更新時,及時的提醒用戶下載新的客戶端。
消息推送模塊:發(fā)送新的消息及時的推送到移動客戶端。
權(quán)限控制:對移動客戶端登陸用戶進(jìn)行身份認(rèn)證,考慮到一個企業(yè)分為不同的單位,人員所關(guān)注的角度不同,需要提供多級多層次的權(quán)限控制。
5.2 移動客戶端設(shè)計(jì)
考慮到大型煤礦企業(yè)用戶量比較大,每個用戶關(guān)注點(diǎn)因工作性質(zhì)的不同而有差異,所以移動端設(shè)計(jì)采用插件式移動框架。
所謂插件式開發(fā)框架是指將一個程序劃分為不同部分為一個插件,再由宿主程序動態(tài)加載每個插件構(gòu)成整個應(yīng)用程序[3]。所以插件式應(yīng)用框架一般由宿主程序和插件兩部分組成:
宿主程序:主界面程序,主要包含各種通用工具、設(shè)置、菜單等;插件引擎用于搜索插件程序集合;通信協(xié)議,用于和插件程序之間的通信。
插件:可獨(dú)立完成某一個或一系列功能的模塊,由宿主程序加載運(yùn)行。
5.3 平臺插件式設(shè)計(jì)
對于移動端用戶來說,需要根據(jù)不同的用戶權(quán)限加載不同的插件來查看不同的應(yīng)用數(shù)據(jù),具體實(shí)現(xiàn)流程如圖1所示。
當(dāng)移動端用戶下載新的插件或者卸載應(yīng)用時,需要通知服務(wù)端更新插件列表,確保服務(wù)端和移動端插件的一致性。如圖2所示。
5.4 服務(wù)器推送方式
Android Cloud to Device Messaging(C2DM)是一個用來幫助開發(fā)者從服務(wù)器向Android應(yīng)用程序發(fā)送數(shù)據(jù)的服務(wù)。該服務(wù)提供了一個簡單的、輕量級的機(jī)制,允許服務(wù)器可以通知移動應(yīng)用程序直接與服務(wù)器進(jìn)行通信,以便于從服務(wù)器獲取應(yīng)用程序更新和用戶數(shù)據(jù)。C2DM服務(wù)負(fù)責(zé)處理諸如消息排隊(duì)等事務(wù)并向運(yùn)行于目標(biāo)設(shè)備上的應(yīng)用程序分發(fā)這些消息。如圖3所示。
5.5 平臺框架主要接口定義
5.5.1 登陸權(quán)限接口
本接口用于用戶的登錄鑒權(quán)操作,方法名:login;
接口及參數(shù):
用戶名 name
用戶加密密碼 pwd
手機(jī)串號 imei
驗(yàn)證關(guān)鍵字 appcode(應(yīng)用特定APP url字段,用于區(qū)分url)
注:框架登陸 appcode:固定值 system;驗(yàn)證全部按小寫
返回Json數(shù)據(jù)如表1。
5.5.2 應(yīng)用列表接口
本接口用于顯示應(yīng)用LIST列表,更新應(yīng)用權(quán)限組,只返回有權(quán)限的list列表接口及參數(shù)如表2。
5.6 平臺安全設(shè)計(jì)
5.6.1 網(wǎng)絡(luò)安全設(shè)計(jì)方案
本系統(tǒng)由App應(yīng)用服務(wù)器、數(shù)據(jù)服務(wù)器和數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)器三部分構(gòu)成,通過端口映射的方式,通過防火墻過濾后再連接到互聯(lián)網(wǎng)為App提供數(shù)據(jù)服務(wù)。如圖4所示。
5.6.2 軟件安全設(shè)計(jì)方案
移動設(shè)備串號綁定,根據(jù)移動設(shè)備入網(wǎng)的唯一串號標(biāo)識和登錄的賬號進(jìn)行綁定,即使登錄賬號泄露,也無法在其他移動設(shè)備上登錄;數(shù)據(jù)在網(wǎng)絡(luò)上傳輸,采用數(shù)據(jù)加密方式,保證數(shù)據(jù)在網(wǎng)絡(luò)傳輸中的安全性;應(yīng)用功能采用插件管理方式,把每個模塊做成一個功能插件,針對不同的業(yè)務(wù)需求及用戶權(quán)限,安裝不同的功能模塊,降低了數(shù)據(jù)泄露的危險(xiǎn)系數(shù)。
5.6.3 軟件使用安全設(shè)計(jì)方案
對不同用戶業(yè)務(wù)需求,設(shè)置不同的權(quán)限,根據(jù)用戶權(quán)限劃分,訪問不同的功能模塊。密碼定期三個月強(qiáng)制修改,不允許連續(xù)使用相同密碼,密碼定長11位且必須符合一定的復(fù)雜度,例如字母,數(shù)字,符號等組合。
對系統(tǒng)數(shù)據(jù)配置定時備份策略。
6 平臺詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
6.1 服務(wù)端功能設(shè)計(jì)與實(shí)現(xiàn)
基礎(chǔ)管理包括:組織機(jī)構(gòu)管理、權(quán)限對象管理、角色設(shè)置、用戶管理、移動端注冊用戶審批流程管理、特定指定應(yīng)用權(quán)限。
組織機(jī)構(gòu)管理:提供對組織架構(gòu)和用戶信息的管理功能,包括組織機(jī)構(gòu)的設(shè)置、維護(hù)功能。
權(quán)限對象模塊:對窗體、控件、功能等多個層面對權(quán)限對象進(jìn)行管理,支持包括角色設(shè)置,系統(tǒng)模塊的設(shè)置和權(quán)限的設(shè)置,下載權(quán)限分配,根據(jù)下載權(quán)限修改用戶登陸接口反饋參數(shù)。
角色設(shè)置:對系統(tǒng)中所有具有相同操作的人員定義為一組角色,將各維度配合使用,形成具有共性特征的角色,并分配角色權(quán)限。
用戶管理:根據(jù)對應(yīng)的組織機(jī)構(gòu)樹,分配用戶下載權(quán)限,用戶登錄等功能。對用戶登錄密碼進(jìn)行修改,可添加多個用戶,用戶信息變更,更改相應(yīng)的控制字段給移動端。
移動端注冊用戶審批流程管理:對通過移動端注冊用戶的審核,處理,分配權(quán)限進(jìn)行管理。
特定指定應(yīng)用權(quán)限:對一些特殊用戶擁有特殊應(yīng)用權(quán)限的特別指定。
應(yīng)用的發(fā)布提供框架和各個子項(xiàng)目的發(fā)布管理,包括:應(yīng)用管理、應(yīng)用上傳、應(yīng)用下載、版本控制、新版本發(fā)布消息。
應(yīng)用管理:對應(yīng)用的增刪改查操作,應(yīng)用分組,相關(guān)應(yīng)用說明等。
應(yīng)用上傳:上傳應(yīng)用安裝包。
應(yīng)用下載:生成下載地址,記錄下載用戶。
版本控制:對單獨(dú)應(yīng)用模塊進(jìn)行版本控制。
新版本發(fā)布消息:發(fā)布新版本后,對獨(dú)立的子項(xiàng)目進(jìn)行單獨(dú)的消息推送。
新聞發(fā)布針對框架首頁輪播圖的進(jìn)行新聞添加修改發(fā)布。
新聞發(fā)布:包括新聞添加修改刪除、新聞圖片、新聞連接地址、新聞審批。
消息推送,包括新增消息,修改消息,刪除消息,消息回退。endprint
新增消息:增加新的推送消息。
修改消息:修改推送消息。
刪除消息:刪除推送消息。
消息回退:對發(fā)送錯誤的消息進(jìn)行回退操作,及時的彌補(bǔ)錯誤。
流量統(tǒng)計(jì)對用戶使用流量進(jìn)行統(tǒng)計(jì),用戶安裝應(yīng)用模塊流量進(jìn)行統(tǒng)計(jì)。
流量統(tǒng)計(jì)接口:用戶使用流量上傳接收接口。
流量查看:對用戶使用流量進(jìn)行查看。
6.2 移動客戶端的設(shè)計(jì)與實(shí)現(xiàn)
移動客戶端采用插件加載方式,根據(jù)用戶的需求安裝不同的子項(xiàng)目。根據(jù)插件之間的約定,由宿主程序查找加載插件。
配置文件manifest
在manifest下增加和主框架相同的共享ID如下
android:sharedUserId="com.pmcc.android.pluginframe.work "
com.pmcc.android.pluginframe.work 為主框架ID
修改啟動頁面中
intent-filter 的啟動文件為子項(xiàng)目主頁面Activity 刪除 “android.intent.action.MAIN”
配額制啟動方式為隱式啟動
例如啟動文件為:LinkerTabHost 位置為com.midong.comlinker 配置如下
android:name="com.midong.comlinker.LinkerTabHost" android:label="@string/app_name">
增加beans文件GenDescript.java
GenDescript.java 定義子項(xiàng)目傳遞給主框架的參數(shù),主要包括:
子項(xiàng)目ICON iconResId;
子項(xiàng)目名稱subTitle;
子項(xiàng)目描述信息description;
代碼如下:
package com.pmcc.android.pluginframe;
public class GenDescript
{
protected int iconResId;
protected String subTitle;
protected String description;
public int getIconResId()
{
return this.iconResId;
}
public String getSubTitle()
{
return this.subTitle;
}
public String getDescription()
{
return this.description;
}
}
增加PlugDescription.java文件
代碼如下:
package com.pmcc.android.pluginframe;
import com.pmcc.android.pluginframe.GenDescript;
import android.util.Log;
/**
*插件說明
*/
public class PlugDescription extends GenDescript{
/**
*首先,這個無參數(shù)的構(gòu)造方法是必須有的
*其次,接口是主程序自己定義的,可自行定義并擴(kuò)展
*最后,assets/plugin.xml 中必須定義這個類
*/
public PlugDescription() {
Log.i("org.igeek.android-plugin", "插件1實(shí)例化1"); //傳遞名稱
iconResId=R.drawable.a1_00; //傳遞圖標(biāo)
subTitle="插件1--窗口演示2"; //傳遞標(biāo)題
description="這個插件將彈出對話框3"; //傳遞說明
}
}
在子項(xiàng)目的assets 下增加 plugin.xml文件
代碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 插件提供的功能(類) -->
<!-- 描述類,這個是自定義的 -->
<!—啟動子項(xiàng)目文件-->
<!-- 這是一個功能(類) 調(diào)用子項(xiàng)目的方法-->
<!-- 這是一個方法 -->
<!-- name 方法名 -->
<!-- 這是一個功能(類) 調(diào)用子項(xiàng)目的方法-->
7 結(jié)語
本文主要介紹了大型煤礦移動信息化綜合平臺的整體設(shè)計(jì)和實(shí)現(xiàn),平臺主要針對大型煤炭企業(yè)信息化現(xiàn)狀,本著增強(qiáng)各個礦級之間的聯(lián)系,增加工作效率的目的,實(shí)現(xiàn)了人員定位,生產(chǎn)調(diào)度,經(jīng)營管理等系統(tǒng)的整合對接。
通過該平臺的使用,用戶可以隨時隨地的通過移動應(yīng)用獲取相關(guān)信息,提高集團(tuán)領(lǐng)導(dǎo)對煤礦工作人員的管理及經(jīng)營狀況的了解,實(shí)現(xiàn)了管理部門精細(xì)化控制,對提高企業(yè)管理效能,降低礦山事故發(fā)生率起到了積極的作用。
參考文獻(xiàn)
[1]李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2013:25-42.
[2]譚章祿,陳曉.煤炭企業(yè)信息化建設(shè)現(xiàn)狀及發(fā)展對策探討[J].北京:工礦自動化,2016,42(7):63-65.
[3]孫劍.Android系統(tǒng)上應(yīng)用程序按需加載機(jī)制的設(shè)計(jì)與實(shí)現(xiàn)[M].北京大學(xué),2011:99-110.endprint