全志根
(中國(guó)石化上海石油化工股份有限公司,200540)
中國(guó)石化上海石油化工股份有限公司(以下簡(jiǎn)稱上海石化)作為化工生產(chǎn)類企業(yè),生產(chǎn)過(guò)程具有易燃、易爆、高溫、高壓和腐蝕性強(qiáng)等高危險(xiǎn)性,如何加強(qiáng)安全防范,構(gòu)造穩(wěn)定可靠的通訊渠道一直是一個(gè)十分重要的課題。
上海石化設(shè)計(jì)與實(shí)施了將企信通平臺(tái)與移動(dòng)代理服務(wù)器(MAS)平臺(tái)的有機(jī)結(jié)合,通過(guò)對(duì)原MAS設(shè)備接入方案進(jìn)行升級(jí)與優(yōu)化,對(duì)上海石化應(yīng)用通信能力進(jìn)行插件化封裝,提供短信平臺(tái)回復(fù)和統(tǒng)計(jì)功能,提高了通信吞吐能力。短信平臺(tái)支持大批量短信收發(fā)服務(wù),提供全平臺(tái)的數(shù)據(jù)分析和安全管理方案,實(shí)現(xiàn)了多通道并行發(fā)送、短信群發(fā)、短信回復(fù)、回復(fù)確認(rèn)及統(tǒng)計(jì),對(duì)加強(qiáng)安全生產(chǎn)、提高生產(chǎn)過(guò)程中的信息發(fā)布、重大事件通報(bào)以及應(yīng)急預(yù)案啟動(dòng)的及時(shí)性具有重要作用。
結(jié)合上海石化實(shí)際需求,短信平臺(tái)開(kāi)發(fā)要求其具備如下功能:
(1)支持短信回復(fù)能力,為發(fā)送者及時(shí)提供短信送達(dá)及接收信息,便于確定是否需要重新發(fā)送,可為不同應(yīng)用提供擴(kuò)展,并可根據(jù)擴(kuò)展進(jìn)行相應(yīng)的數(shù)據(jù)統(tǒng)計(jì),支持按時(shí)間發(fā)布明細(xì)賬單、提供查詢短信及回復(fù)清單;
(2)支持系統(tǒng)日志與數(shù)據(jù)備份方案;
(3)全國(guó)手機(jī)用戶的短信下行及中國(guó)移動(dòng)短信通道上行短信與狀態(tài)報(bào)告的獲取,支持三網(wǎng)的統(tǒng)一管理;
(4)提供問(wèn)卷調(diào)查等標(biāo)準(zhǔn)應(yīng)用功能,利用該平臺(tái)在短信用戶群中進(jìn)行各種問(wèn)卷調(diào)查、統(tǒng)計(jì)及匯總;
(5)支持全平臺(tái)短信額度管理,可實(shí)現(xiàn)按部門和具體用戶進(jìn)行額度分配與管理,有效進(jìn)行通信費(fèi)用控制和管理;
(6)支持全平臺(tái)短信通信審核機(jī)制,可根據(jù)實(shí)際需要設(shè)置不同的審核流程,確保短信平臺(tái)安全運(yùn)行。
短信平臺(tái)的主要結(jié)構(gòu)包括:
(1)標(biāo)準(zhǔn)應(yīng)用,即可靈活擴(kuò)展和變更,以插件形式接入,與底層框架解耦;
(2)系統(tǒng)管理,即負(fù)責(zé)整個(gè)平臺(tái)的用戶數(shù)據(jù)管理、平臺(tái)數(shù)據(jù)備份與操作日志記錄;
(3)運(yùn)維管理,即負(fù)責(zé)平臺(tái)所有通訊數(shù)據(jù)的管理與維護(hù);系統(tǒng)管理和運(yùn)維管理組成本平臺(tái)的底層核心框架。
(4)通訊能力,即可以以驅(qū)動(dòng)方式自由加載所需短信信息接入能力,支持靈活裝配和線性擴(kuò)展。
短信平臺(tái)可設(shè)立不同的子賬號(hào),分配給各個(gè)部門使用,實(shí)現(xiàn)短信的發(fā)送、回復(fù)、統(tǒng)計(jì)和分析,主要功能為:(1)發(fā)送會(huì)議通知、日常事務(wù)提醒;(2)發(fā)送生產(chǎn)數(shù)據(jù)通報(bào)、生產(chǎn)統(tǒng)計(jì)報(bào)表;(3)發(fā)送突發(fā)性重大事故的緊急通知,啟動(dòng)應(yīng)急預(yù)案等。
根據(jù)以上功能要求設(shè)計(jì)的短信平臺(tái)系統(tǒng)整體結(jié)構(gòu)如圖1所示。

圖1 短信平臺(tái)系統(tǒng)整體結(jié)構(gòu)
中國(guó)移動(dòng)點(diǎn)對(duì)點(diǎn)協(xié)議(CMPP)規(guī)定了以下三方面的內(nèi)容:(1)業(yè)務(wù)提供商與互聯(lián)網(wǎng)短信網(wǎng)關(guān)之間的接口協(xié)議;(2)互聯(lián)網(wǎng)短信網(wǎng)關(guān)之間的接口協(xié)議;(3)互聯(lián)網(wǎng)短信網(wǎng)關(guān)與匯接網(wǎng)關(guān)之間的接口協(xié)議。
互聯(lián)網(wǎng)短信網(wǎng)關(guān)(ISMG)是業(yè)務(wù)提供商(SP)與移動(dòng)網(wǎng)內(nèi)短信中心之間的中介實(shí)體,互聯(lián)網(wǎng)短信網(wǎng)關(guān)一方面負(fù)責(zé)接收SP發(fā)送給移動(dòng)用戶的信息和提交給短信中心,另一方面,移動(dòng)用戶點(diǎn)播SP業(yè)務(wù)的信息將由短信中心通過(guò)互聯(lián)網(wǎng)短信網(wǎng)關(guān)發(fā)給SP?;ヂ?lián)網(wǎng)短信網(wǎng)關(guān)通過(guò)向匯接網(wǎng)關(guān)(GNS)查詢的方式獲得網(wǎng)關(guān)間的轉(zhuǎn)發(fā)路由信息。另外,ISMG還必須與數(shù)據(jù)業(yè)務(wù)管理平臺(tái)DSMP進(jìn)行連接,在業(yè)務(wù)流程中對(duì)用戶、業(yè)務(wù)以及定購(gòu)關(guān)系等進(jìn)行鑒權(quán)并對(duì)業(yè)務(wù)進(jìn)行批價(jià)。
2.1.1 CMPP協(xié)議的通訊方式
各網(wǎng)元之間有長(zhǎng)連接和短連接兩種連接方式。長(zhǎng)連接是在一個(gè)TCP連接上可以連續(xù)發(fā)送多個(gè)數(shù)據(jù)包,在TCP連接保持期間,如果沒(méi)有數(shù)據(jù)包發(fā)送,需要雙方發(fā)鏈路檢測(cè)包以維持此連接;短連接是通信雙方有數(shù)據(jù)交互時(shí)就建立的TCP連接,數(shù)據(jù)發(fā)送完成后,便斷開(kāi)連接,即每次TCP連接只完成一對(duì)CMPP消息的發(fā)送。由于ISMG之間必須采用長(zhǎng)連接的通信方式,SP與ISMG之間采用長(zhǎng)連接的通信方式。
在SP與ISMG之間、SMSC與ISMG之間及ISMG之間的交互過(guò)程中均采用異步方式,即任一個(gè)網(wǎng)元在收到請(qǐng)求消息后應(yīng)立即回送響應(yīng)消息。
2.1.2 企業(yè)級(jí)短信網(wǎng)關(guān)設(shè)計(jì)
企業(yè)短信網(wǎng)關(guān)API必須實(shí)施CMPP3.0中SP與ISMG間的消息定義所規(guī)定的以下操作。
(1)SP請(qǐng)求連接到ISMG(CMPP_CONNECT)操作。CMPP_CONNECT操作的目的是SP向ISMG注冊(cè)一個(gè)合法的身份,注冊(cè)成功后即建立了應(yīng)用層的連接,此后SP可以通過(guò)此ISMG接收和發(fā)送短信,ISMG以CMPP_CONNECT_RESP消息響應(yīng)SP的請(qǐng)求。
(2)SP或ISMG請(qǐng)求拆除連接(CMPP_TERMINATE)操作。CMPP_TERMINATE操作的目的是SP或ISMG基于某些原因決定拆除當(dāng)前的應(yīng)用層連接而發(fā)起的操作。此操作完成后SP與ISMG之間的應(yīng)用層連接被釋放,此后SP若再要與ISMG通信則應(yīng)發(fā)起CMPP_CONNECT操作,ISMG或SP以CMPP_TERMINATE_RESP消息響應(yīng)請(qǐng)求。
(3)SP向ISMG提交短信(CMPP_SUBMIT)操作。CMPP_SUBMIT操作的目的是SP在與ISMG建立應(yīng)用層連接后向ISMG提交短信。ISMG以CMPP_SUBMIT_RESP消息響應(yīng)。
(4)SP向ISMG查詢發(fā)送短信狀態(tài)(CMPP_QUERY)操作。CMPP_QUERY操作的目的是SP向ISMG查詢某時(shí)間的業(yè)務(wù)統(tǒng)計(jì)情況,可以按總數(shù)或按業(yè)務(wù)代碼查詢,ISMG以CMPP_QUERY_RESP應(yīng)答。
(5)ISMG向SP送交短信(CMPP_DELIVER)操作。CMPP_DELIVER操作的目的是ISMG把從短信中心或其他ISMG轉(zhuǎn)發(fā)來(lái)的短信送交SP,SP以CMPP_DELIVER_RESP消息回應(yīng)。
(6)SP向ISMG發(fā)起刪除短信(CMPP_CANCEL)操作。CMPP_CANCEL操作的目的是SP通過(guò)此操作可以將已經(jīng)提交給ISMG的短信刪除,ISMG將以CMPP_CANCEL_RESP回應(yīng)刪除操作的結(jié)果。
(7)鏈路檢測(cè)(CMPP_ACTIVE_TEST)操作。CMPP3.0協(xié)議的結(jié)構(gòu)和底層通訊方式,能夠?qū)崿F(xiàn)CMPP3.0的企業(yè)短信網(wǎng)關(guān)API,為SP接入移動(dòng)短信業(yè)務(wù)提供實(shí)現(xiàn)方法。
移動(dòng)信息服務(wù)中心(MSIC)平臺(tái)目前是移動(dòng)夢(mèng)網(wǎng)的核心業(yè)務(wù)平臺(tái),其主要功能是對(duì)用戶信息統(tǒng)一進(jìn)行管理和認(rèn)證,遵循J2EE規(guī)范,是SP接入的基礎(chǔ)。
2.2.1 MISC平臺(tái)WEB Service接口設(shè)計(jì)和開(kāi)發(fā)準(zhǔn)則
DSMP規(guī)范中的所有WEB Service接口依據(jù)W3C組織頒布的WEB Services Description Language (WSDL) 1.1(2001/03/15)規(guī)范設(shè)計(jì)和定義,并與WSDL標(biāo)準(zhǔn)后續(xù)版本中的相關(guān)規(guī)定的保持一致性。所有采用DSMP規(guī)范的產(chǎn)品的接口設(shè)計(jì)和開(kāi)發(fā)應(yīng)遵守以下原則:
(1)接口中的所有消息及相關(guān)數(shù)據(jù)類型的XML模式定義均應(yīng)采用由本規(guī)范提供的XML模式定義。
DSMP規(guī)范定義了所有被引用到的類型和元素的命名空間及XML模式,此命名空間作用范圍涵蓋所有WSDL接口消息。
(2)接口的WSDL定義均應(yīng)采用本規(guī)范提供的WSDL定義。
(3)SOAP綁定原則。規(guī)范定義的WEB Service接口與SOAP1.1協(xié)議格式相綁定,所有請(qǐng)求和響應(yīng)消息均應(yīng)采用SOAP格式的消息封裝,包含SOAP封套(Envelope),SOAP包頭(Header)和SOAP包體(Body)三部分。對(duì)任何技術(shù)實(shí)現(xiàn)的調(diào)用者而言,發(fā)出的調(diào)用請(qǐng)求消息均須帶有以上三部分內(nèi)容,包頭和包體消息結(jié)構(gòu)中引用的類型均來(lái)自dsmp.xsd中的定義。
2.2.2 SP與MISC的訂購(gòu)?fù)ㄖ涌?/p>
MISC平臺(tái)與SP之間的接口,由MISC平臺(tái)通過(guò)該接口進(jìn)行訂購(gòu)關(guān)系同步和在用戶自助服務(wù)時(shí)設(shè)置與訂購(gòu)服務(wù)相關(guān)的屬性。此接口同時(shí)適用于WAP SP、短信SP和彩信SP。
2.2.3 取消服務(wù)訂購(gòu)接口
反向取消是從SP發(fā)起的取消流程,MISC在處理來(lái)自SP的取消消息的時(shí)候,其處理流程與來(lái)自其他網(wǎng)元的消息作相同處理。取消服務(wù)訂購(gòu)接口用于用戶通過(guò)SP取消已訂購(gòu)的數(shù)據(jù)業(yè)務(wù)的時(shí)候,SP通過(guò)該接口向MISC響應(yīng)用戶取消服務(wù)訂購(gòu)的請(qǐng)求。MISC進(jìn)行取消服務(wù)訂購(gòu)成功后,SP才取消用戶對(duì)應(yīng)的業(yè)務(wù)訂購(gòu)關(guān)系。
2.3.1 網(wǎng)關(guān)代理接口
代理類網(wǎng)關(guān)接口負(fù)責(zé)與短信網(wǎng)關(guān)直接聯(lián)系,因此代理類的質(zhì)量將直接影響到系統(tǒng)的穩(wěn)定性,最終影響系統(tǒng)與網(wǎng)關(guān)的通信。根據(jù)規(guī)范,這種接口應(yīng)該有以下特性:
(1)具有2個(gè)隊(duì)列,分別為短信隊(duì)列和狀態(tài)報(bào)告隊(duì)列;
(2)自動(dòng)管理隊(duì)列。客戶只負(fù)責(zé)從代理類收取短信和狀態(tài)報(bào)告,并不管理隊(duì)列。系統(tǒng)對(duì)隊(duì)列進(jìn)行自動(dòng)管理,比如當(dāng)客戶收取短信時(shí),系統(tǒng)應(yīng)該從隊(duì)列中將已收取的短信移掉;
(3)負(fù)責(zé)保持與短信網(wǎng)關(guān)的連接??蛻粽{(diào)用login方法和logout期間,應(yīng)一直保持與短信網(wǎng)關(guān)連接,哪怕期間網(wǎng)絡(luò)斷開(kāi)都應(yīng)該時(shí)刻保持與網(wǎng)關(guān)的連接。
2.3.2 短信引擎管理器
(1)管理模塊結(jié)構(gòu)
管理模塊結(jié)構(gòu)見(jiàn)圖2。
引擎管理器讀取各有效路由配置信息,根據(jù)路由配置信息裝配給引擎。如果引擎安裝完備(隊(duì)列初始完備,成功連接數(shù)據(jù)庫(kù),網(wǎng)關(guān)成功登陸)就啟動(dòng)引擎,否則按一定策略,用電子郵件或手機(jī)號(hào)碼向系統(tǒng)管理員發(fā)出信息。
(2)引擎設(shè)計(jì)
引擎的設(shè)計(jì)要求是:
①當(dāng)狀態(tài)改變時(shí),視情況向系統(tǒng)理員發(fā)短信或電子郵件,并在庫(kù)表中寫(xiě)記;
②優(yōu)先級(jí)高的短信將優(yōu)先被發(fā)送;
③根據(jù)隊(duì)列的狀態(tài),決定是否讀取短信數(shù)量;
④短信先進(jìn)先4出;
⑤當(dāng)網(wǎng)關(guān)登陸不上或數(shù)據(jù)連不上,能采取相應(yīng)策略,采取合適的行動(dòng)。

圖2 管理模塊結(jié)構(gòu)
短信的收發(fā)與狀態(tài)報(bào)告內(nèi)容的獲取,設(shè)計(jì)MessageTools類通過(guò)調(diào)用Agent接口來(lái)完成,上層對(duì)短信收發(fā)及回復(fù)的各種操作。它是各個(gè)模塊收發(fā)短信的唯一接口,可以實(shí)現(xiàn)取消短信提交、發(fā)送短信(單發(fā)和群發(fā))、統(tǒng)計(jì)短信數(shù)量等操作。
正確登陸短信平臺(tái)后,點(diǎn)擊“標(biāo)準(zhǔn)應(yīng)用”標(biāo)簽的“信息發(fā)布”菜單,選擇“短信通知”即可進(jìn)入短信發(fā)布界面,發(fā)送短信的步驟如下:
(1)輸入信息主題(可選)
信息主題的作用是幫助用戶快速查找短信歷史記錄。
(2)選取短信接收目標(biāo)對(duì)象
①點(diǎn)擊“通訊錄”彈出通訊錄樹(shù)狀結(jié)構(gòu),可在通訊錄中選取對(duì)應(yīng)的部門或人員;
②點(diǎn)擊“輸入號(hào)碼”按鈕,出現(xiàn)號(hào)碼輸入框,支持手工輸入目標(biāo)號(hào)碼;
③點(diǎn)擊“號(hào)碼導(dǎo)入”按鈕,彈出導(dǎo)入號(hào)碼對(duì)話框按提示下載模版后編輯,通過(guò)“瀏覽”按鈕上傳至平臺(tái),點(diǎn)擊確定即完成導(dǎo)入。
(3)輸入短信內(nèi)容
平臺(tái)默認(rèn)自帶“回復(fù)僅支持移動(dòng)號(hào)碼的提示”,用戶可直接在該字符前方輸入自行編輯內(nèi)容,下發(fā)的短信會(huì)是“自編內(nèi)容+(回復(fù)僅支持移動(dòng)號(hào)碼)”;如果用戶沒(méi)有這項(xiàng)需要,也可以直接刪除此段內(nèi)容。
系統(tǒng)中可以選擇“攜帶簽名”選項(xiàng),選中后,平臺(tái)在下發(fā)短信的內(nèi)容中會(huì)自帶該部門的簽名(簽名的設(shè)置由平臺(tái)管理員在分配帳號(hào)的時(shí)候直接設(shè)定,默認(rèn)為空)。
平臺(tái)默認(rèn)勾選“需要回復(fù)”選項(xiàng),如果不勾選此項(xiàng)功能,平臺(tái)將無(wú)法為本條下發(fā)的短信匹配其對(duì)應(yīng)的回復(fù)內(nèi)容。
如果用戶需要定時(shí)下發(fā)短信,則需要設(shè)置指定發(fā)送時(shí)間。平臺(tái)提供無(wú)回復(fù)重發(fā)機(jī)制,如果下發(fā)的短信沒(méi)有收到對(duì)應(yīng)的回復(fù),系統(tǒng)會(huì)自動(dòng)根據(jù)本機(jī)制定時(shí)重發(fā)短信。目前系統(tǒng)默認(rèn)為沒(méi)收到回復(fù)時(shí)會(huì)自動(dòng)重發(fā)2次,每次間隔20 min。如果有其他需求,也可手工自行編輯。
(4)確定發(fā)送
點(diǎn)擊“發(fā)送”按鈕,系統(tǒng)將編輯完成的短信提交到平臺(tái),由平臺(tái)發(fā)送給中國(guó)移動(dòng)短信網(wǎng)關(guān)和中國(guó)移動(dòng)企信通平臺(tái)。目前僅支持移動(dòng)號(hào)碼下發(fā)和回復(fù)、聯(lián)通、電信的下發(fā),暫不支持聯(lián)通和電信號(hào)碼的上行回復(fù)。
系統(tǒng)中點(diǎn)擊進(jìn)入發(fā)件箱,即可查看本用戶所有已發(fā)短信歷史記錄。
由于一個(gè)批次可能一次性發(fā)送幾百甚至上千條短信,為了查詢方便,每次點(diǎn)擊發(fā)送按鈕產(chǎn)生的一組短信,短信平臺(tái)系統(tǒng)會(huì)將其合并為一次短信發(fā)送任務(wù)。在短信歷史任務(wù)列表中可以看見(jiàn)短信發(fā)送狀態(tài),將鼠標(biāo)箭頭移到短信內(nèi)容上可查看短信內(nèi)容全文,也可查看該批次任務(wù)的發(fā)起時(shí)間。
點(diǎn)擊“接受”按鈕,即可查看對(duì)該次發(fā)送任務(wù)的所有上行回復(fù)的短信內(nèi)容,而點(diǎn)擊“詳細(xì)”按鈕,則可以查看本次發(fā)送任務(wù)的所有下發(fā)短信明細(xì)。對(duì)于沒(méi)有收到回復(fù)的短信記錄,系統(tǒng)用戶可以直接手工重發(fā)該條短信。短信重發(fā)后會(huì)在列表自動(dòng)產(chǎn)生一條短信發(fā)送記錄,原記錄上的“重發(fā)”按鈕會(huì)自動(dòng)消失,所有短信自動(dòng)重發(fā)記錄也會(huì)在明細(xì)中顯現(xiàn)。
短信平臺(tái)系統(tǒng)支持時(shí)段、發(fā)送內(nèi)容、主題以及目標(biāo)對(duì)象號(hào)碼等多種關(guān)鍵字查詢方式。
在“運(yùn)維管理”標(biāo)簽下選擇短信統(tǒng)計(jì)可見(jiàn)本單位短信回復(fù)數(shù)據(jù)統(tǒng)計(jì)情況。系統(tǒng)還支持日?qǐng)?bào)和月報(bào)統(tǒng)計(jì)查詢,平臺(tái)默認(rèn)選擇“日?qǐng)?bào)”,系統(tǒng)用戶可查看當(dāng)日短信每小時(shí)實(shí)際發(fā)送數(shù)量與上行回復(fù)短信數(shù)量對(duì)比柱狀圖。點(diǎn)擊發(fā)送時(shí)間,可選擇其他日期和月份,查看統(tǒng)計(jì)情況,平臺(tái)支持按用戶、按通道、按已設(shè)定的下屬部門進(jìn)行統(tǒng)計(jì),用戶可手動(dòng)點(diǎn)擊“月報(bào)”,查看當(dāng)月每天實(shí)際發(fā)送數(shù)量與上行回復(fù)短信數(shù)量對(duì)比柱狀圖。此項(xiàng)查詢同樣支持按用戶、通道、已設(shè)定的下屬部門進(jìn)行分類統(tǒng)計(jì)。
上海石化將原有的企信通平臺(tái)與MAS平臺(tái)進(jìn)行了整合,具備多通道并行發(fā)送、短信群發(fā)、短信回復(fù)、回復(fù)確認(rèn)、統(tǒng)計(jì)等多項(xiàng)功能。上海石化生產(chǎn)調(diào)度系統(tǒng)利用短信平臺(tái)進(jìn)行生產(chǎn)管理取得了很好的應(yīng)用效果。作為上海石化日常生產(chǎn)信息發(fā)布、應(yīng)急演練以及突發(fā)事件處理的主要通信手段之一,實(shí)現(xiàn)了“一鍵推送一批接收”,大大提高了企業(yè)信息發(fā)布的效率以及處理突發(fā)事件的能力。