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