亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種分布式短信報(bào)警服務(wù)系統(tǒng)的設(shè)計(jì)

        2019-09-23 06:14:42
        關(guān)鍵詞:指令功能服務(wù)

        張 智

        (無(wú)錫職業(yè)技術(shù)學(xué)院 人事處, 江蘇 無(wú)錫 214121)

        1 背景

        為了保障社會(huì)生產(chǎn)和人民生命財(cái)產(chǎn)的安全,國(guó)家氣象部門陸續(xù)在全國(guó)各地部署了幾萬(wàn)套氣象觀測(cè)站,并且更多的氣象觀測(cè)站正在逐步按規(guī)劃部署中。通過(guò)觀測(cè)站輸出的歷史和實(shí)時(shí)信息,人們可以對(duì)各種天氣情況做出預(yù)判和實(shí)時(shí)災(zāi)害預(yù)警處理。因此,設(shè)備持續(xù)正常工作對(duì)數(shù)據(jù)的及時(shí)性和準(zhǔn)確性顯得尤為重要。

        在正常的氣象業(yè)務(wù)值班過(guò)程中,技術(shù)人員經(jīng)常需要24小時(shí)守候設(shè)備或業(yè)務(wù)應(yīng)用程序的運(yùn)行,當(dāng)出現(xiàn)故障的時(shí)候立刻去排查原因并解決。一方面人員疲勞使得工作效率不高,另一方面無(wú)法保證將異常的信息及時(shí)反饋給相關(guān)的維護(hù)人員。

        得益于通信技術(shù)的快速發(fā)展,手機(jī)短信服務(wù)由于其快速、穩(wěn)定、可靠和準(zhǔn)確的特點(diǎn)應(yīng)用到各行各業(yè)的生產(chǎn)和生活中。在氣象部門中由于許多業(yè)務(wù)需要實(shí)時(shí)監(jiān)控和故障排查,因此短信服務(wù)在氣象業(yè)務(wù)中被廣泛地應(yīng)用于報(bào)警和維修保障活動(dòng)中。每個(gè)地區(qū)的氣象部門短信服務(wù)功能和實(shí)現(xiàn)方式不盡相同,沒(méi)有統(tǒng)一的規(guī)范并且缺乏通用性,導(dǎo)致重復(fù)開(kāi)發(fā)和浪費(fèi)資源的情況,極大地限制了短信服務(wù)的效用。為了方便省、市縣各級(jí)氣象局用戶方便使用統(tǒng)一接口的短信服務(wù),做到系統(tǒng)資源集約化,迫切需要一套整體規(guī)劃的短信服務(wù)系統(tǒng),為設(shè)備的正常運(yùn)行和數(shù)據(jù)的可靠穩(wěn)定接收提供保障。

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

        2.1 微服務(wù)結(jié)構(gòu)

        分布式服務(wù)是將不同的服務(wù)或程序部署在不同的機(jī)器上,各個(gè)服務(wù)通過(guò)Webservice接口或RPC協(xié)議實(shí)現(xiàn)相互通信與調(diào)用。微服務(wù)是一種特殊的分布式架構(gòu),它的粒度更小,切分后的各個(gè)服務(wù)之間的耦合性更低。每個(gè)服務(wù)都有自己的處理和輕量通訊機(jī)制,可以部署在單個(gè)或多個(gè)服務(wù)器上。

        針對(duì)現(xiàn)有的氣象業(yè)務(wù)應(yīng)用,從多級(jí)行政單位的實(shí)際情況統(tǒng)籌考慮,基于微服務(wù)的思路將原有的短信報(bào)警系統(tǒng)切分成粒度更小的單元,讓每一個(gè)單元專注做好一件事情。每個(gè)單元可以獨(dú)立開(kāi)發(fā)并獨(dú)立部署,單元之間通過(guò)與語(yǔ)言無(wú)關(guān)的API進(jìn)行集成。通過(guò)這樣的設(shè)計(jì)可以盡量對(duì)以前的系統(tǒng)不做改動(dòng),實(shí)現(xiàn)了氣象業(yè)務(wù)功能的精簡(jiǎn)和資源的集約化使用。

        2.2 短信報(bào)警的實(shí)現(xiàn)

        實(shí)現(xiàn)短信發(fā)送報(bào)警信息的功能一般有兩種方案:第一,通過(guò)短信貓或類似具有短信發(fā)送功能的硬件模塊進(jìn)行短信發(fā)送;第二,利用互聯(lián)網(wǎng)上提供的免費(fèi)或收費(fèi)短信服務(wù)接口。通過(guò)短信貓發(fā)送方案的優(yōu)點(diǎn)是穩(wěn)定、可靠、開(kāi)發(fā)和使用不受限制,缺點(diǎn)是需要硬件和額外重復(fù)的開(kāi)發(fā)成本。利用現(xiàn)有的互聯(lián)網(wǎng)短信接口發(fā)送短信的優(yōu)點(diǎn)是開(kāi)發(fā)成本小并且使用方便,缺點(diǎn)是提供的服務(wù)和功能由服務(wù)提供方準(zhǔn)備,擴(kuò)展性不強(qiáng)并且需要使用方必須能夠接入互聯(lián)網(wǎng)。在氣象部門中,使用第一種方案的情況較多,因?yàn)槭 ⑹?、縣各級(jí)部門的短信服務(wù)之間相互獨(dú)立,沒(méi)有交互。

        2.3 分布式結(jié)構(gòu)的短信服務(wù)

        由于上文所述的兩種方案都有一定的缺點(diǎn),如果將兩種方案進(jìn)行整合和改進(jìn),并采用分布式部署的方式進(jìn)行開(kāi)發(fā)和調(diào)用,即可使得短信服務(wù)的使用方和提供方都具有很好的擴(kuò)展性和易用性,極大地提高短信服務(wù)在氣象部門的應(yīng)用范圍。圖1為分布式結(jié)構(gòu)的短信發(fā)布和短信使用結(jié)構(gòu)圖。

        整個(gè)系統(tǒng)由3個(gè)部分組成:短信內(nèi)容生產(chǎn)方、短信服務(wù)使用方和短信服務(wù)提供方。其中短信服務(wù)提供方由短信貓和短信服務(wù)器組成,短信服務(wù)器

        圖1 短信服務(wù)分布式部署

        通過(guò)AT指令控制短信貓?jiān)O(shè)備完成短信的收發(fā)功能,并將該功能封裝為WebSevice接口供短信使用方調(diào)用。短信內(nèi)容生產(chǎn)方為氣象局內(nèi)原有的各種業(yè)務(wù)程序,每種程序都有需要監(jiān)控和報(bào)警的內(nèi)容。短信內(nèi)容生產(chǎn)方將需要發(fā)送的報(bào)警內(nèi)容放入短信內(nèi)容隊(duì)列中,由短信服務(wù)使用方取出并調(diào)用短信服務(wù)方提供的接口發(fā)送短信。

        在部署時(shí),短信服務(wù)器作為一個(gè)單獨(dú)的部件運(yùn)行,將短信服務(wù)的生產(chǎn)者和短信服務(wù)的消費(fèi)者分開(kāi),解除了它們之間的耦合關(guān)系。各個(gè)短信服務(wù)的使用方無(wú)需重復(fù)投資搭建短信發(fā)送框架,只需按照服務(wù)提供方規(guī)定的短信接口進(jìn)行調(diào)用即可完成短信的收發(fā)服務(wù)。短信生產(chǎn)方只管生成短信內(nèi)容即可,由誰(shuí)發(fā)送,怎么發(fā)送都無(wú)需關(guān)心。

        3 系統(tǒng)實(shí)現(xiàn)

        3.1 系統(tǒng)的功能與特色

        (1) 系統(tǒng)支持將短信發(fā)送功能作為接口發(fā)布出來(lái)供調(diào)用方使用,將短信發(fā)送功能與使用分隔開(kāi)。

        (2) 短信服務(wù)提供方支持向多個(gè)短信接收方發(fā)送短信,并且對(duì)調(diào)用方的身份進(jìn)行認(rèn)證,防止未經(jīng)授權(quán)的調(diào)用方使用服務(wù)。

        (3) 消息的生產(chǎn)方與使用方相分離,生產(chǎn)方無(wú)需了解消息發(fā)送的細(xì)節(jié),只需關(guān)心自己的業(yè)務(wù)邏輯。

        整個(gè)系統(tǒng)基于微服務(wù)的思想,將整個(gè)業(yè)務(wù)流程拆分成多個(gè)物理上相互獨(dú)立的子模塊。這些子模塊可以部署在一臺(tái)系統(tǒng)中,也可以分布式地部署在不同的電腦上。開(kāi)發(fā)編程工具使用Java語(yǔ)言,選擇Tomcat作為Web應(yīng)用服務(wù)器(即文中的短信服務(wù)提供方)。

        3.2 短信服務(wù)接口

        短信服務(wù)方和短信使用方部署在不同的機(jī)器上,并且不在同一個(gè)局域網(wǎng)內(nèi)。因此,它們之間需要通過(guò)約定的協(xié)議進(jìn)行通信,短信使用方能夠利用短信服務(wù)方提供的接口進(jìn)行工作。

        短信服務(wù)接口采用Web服務(wù)發(fā)布調(diào)用接口,支持HTTP POST和GET方式提交請(qǐng)求。URL格式為http://IP地址:端口號(hào)/msg/send?username=用戶名&password=密碼&sendto=接收短信的手機(jī)號(hào)&message=短信內(nèi)容&priority=優(yōu)先級(jí)&sessionID=序號(hào)。

        其中IP地址和端口號(hào)是短信服務(wù)提供方暴露出的訪問(wèn)地址,用戶名和密碼在短信提供方處進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)后方能調(diào)用短信發(fā)送接口。為了防止用戶名的泄露,在短信服務(wù)提供方處可以進(jìn)行IP地址和使用次數(shù)的綁定。接收短信的手機(jī)號(hào)可以有多個(gè),用分號(hào)隔開(kāi);短信內(nèi)容采用UTF-8編碼格式發(fā)送;priority表示本次短信內(nèi)容的發(fā)送緊迫程度,數(shù)值越大就越緊迫;sessionID表示本次發(fā)送的序號(hào)。如訪問(wèn)地址“http://192.168.2.23:8080/msg/send?username=yth&password=yth&sendto=13836327980;15923247909&mess-age=網(wǎng)絡(luò)通信故障請(qǐng)及時(shí)檢修&priority=0&sessionID=12345678” 表示yth用戶向短信服務(wù)提供方發(fā)送一個(gè)向13836327980和15923247909手機(jī)發(fā)送短信內(nèi)容為“網(wǎng)絡(luò)通信故障請(qǐng)及時(shí)檢修”的請(qǐng)求。短信發(fā)送成功后返回本次sessionID對(duì)應(yīng)的內(nèi)容是否發(fā)送成功,由短信服務(wù)使用方?jīng)Q定是否再次發(fā)送。

        后端采用Servlet對(duì)Http請(qǐng)求進(jìn)行相應(yīng)的處理,解析短信使用方請(qǐng)求中的各種參數(shù)并將參數(shù)傳遞給短信發(fā)送模塊。Servlet的原理圖如圖2所示,客戶端向Web服務(wù)器發(fā)送請(qǐng)求,Web服務(wù)器將請(qǐng)求發(fā)送給Servlet,Servlet容器會(huì)產(chǎn)生一個(gè)Servlet實(shí)例然后構(gòu)建一個(gè)響應(yīng)并將其傳給Web服務(wù)器,Web服務(wù)器將響應(yīng)結(jié)果返回給客戶端。

        圖2 短信服務(wù)端Servlet處理流程

        關(guān)鍵代碼如下:

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //獲得短信使用方發(fā)送來(lái)的各種參數(shù)信息

        String username = request.getParameter("username");

        String password = request.getParameter("password");

        String sendto = request.getParameter("sendto");

        String message = request.getParameter("message");

        String priority = request.getParameter("priority");

        String sessionID = request.getParameter("sessionID");

        response.setCharacterEncoding("utf-8");

        response.setHeader("Content-type", "text/html;charset=UTF-8");

        //驗(yàn)證身份

        ......

        //調(diào)用發(fā)送短信的模塊

        SendMsg(sendto,message);

        ......

        }

        3.3 短信生產(chǎn)接口

        短信內(nèi)容生產(chǎn)方即氣象部門原有的各種業(yè)務(wù)軟件,這些軟件產(chǎn)生的各種報(bào)警及預(yù)警信息需要提交給短信服務(wù)使用方,由短信服務(wù)方再調(diào)用短信服務(wù)提供方的短信發(fā)送接口。短信內(nèi)容生產(chǎn)方和使用方之間也是通過(guò)Web服務(wù)的形式進(jìn)行交互,由生產(chǎn)方調(diào)用使用方提供的接口將內(nèi)容放入使用方處的隊(duì)列中。

        URL格式為http://IP地址:端口號(hào)/msg/queue?username=用戶名&password=密碼&message=短信內(nèi)容&priority=優(yōu)先級(jí)&sessionID=序號(hào)。URL中各參數(shù)的說(shuō)明同短信服務(wù)接口章節(jié)中的描述。短信服務(wù)使用方從隊(duì)列中根據(jù)優(yōu)先級(jí)逐個(gè)取出消息,進(jìn)行后續(xù)的短信發(fā)送調(diào)用。

        3.4 短信發(fā)送

        服務(wù)提供方需要在串口連接短信貓?jiān)O(shè)備,短信貓與PC通過(guò)GSM無(wú)線網(wǎng)絡(luò)交互。

        短信貓的操作都是通過(guò)AT指令集進(jìn)行[5]。AT指令一般應(yīng)用于終端設(shè)備與控制器設(shè)備之間的連接與通信。AT指令簡(jiǎn)單易懂,采用標(biāo)準(zhǔn)串口來(lái)收發(fā)AT命令,大大簡(jiǎn)化了對(duì)設(shè)備的控制,并將相應(yīng)的操作轉(zhuǎn)換成了簡(jiǎn)單的串口編程。AT指令是以AT開(kāi)頭,字符結(jié)束的字符串,指令響應(yīng)數(shù)據(jù)包在其中,每個(gè)指令執(zhí)行成功與否都有相應(yīng)的返回。發(fā)送短消息常用Text和PDU(協(xié)議數(shù)據(jù)單元)模式。雖然使用Text模式收發(fā)短信代碼簡(jiǎn)單,實(shí)現(xiàn)起來(lái)也十分容易,但最大的缺點(diǎn)是不能收發(fā)中文短信。PDU模式不僅支持中文短信,也能發(fā)送英文短信。由于短信的生產(chǎn)方需要發(fā)送的報(bào)警信息種類繁多,字符內(nèi)容包括了英文、中文、符號(hào)等多種形式,因此本系統(tǒng)中需要采用PDU模式發(fā)送短信。

        交互過(guò)程可以分為三個(gè)層次:第一,物理層,即無(wú)線網(wǎng)絡(luò)通信。第二,指令層,即各種AT指令,利用AT指令與短信貓進(jìn)行交互調(diào)用底層的短信發(fā)送功能。第三,應(yīng)用層,短信服務(wù)程序需要與短信貓交互的內(nèi)容。關(guān)鍵代碼如下:

        //設(shè)置短信格式

        myport.sendAT("AT+CMGF=0 ");

        ......

        //設(shè)置短消息中心

        cmd= "AT+CSCA=+8613800510500 " ;

        strReturn = myport.sendAT(cmd);

        ......

        //設(shè)置短消息接收者

        cmd= "AT+CMGS=" + commonsms.getRecver() +" ";

        strReturn = myport.sendAT(cmd);

        cmd=encodeHex(getSmstext()) +"26 ";

        //設(shè)置短消息內(nèi)容

        strReturn = myport.sendAT(cmd);

        if(strReturn.indexOf("OK")!=-1&& strReturn.indexOf("+CMGS") != -1) {

        System.out.println("send finished!");

        }

        4 結(jié)語(yǔ)

        本文基于微服務(wù)思路將氣象部門原有的各種報(bào)警監(jiān)控系統(tǒng)的短信服務(wù)拆分、解耦,實(shí)現(xiàn)了一種分布式的短信服務(wù)平臺(tái)。利用短信貓運(yùn)行穩(wěn)定、功能擴(kuò)展可控的特點(diǎn)實(shí)現(xiàn)了短信服務(wù)的基礎(chǔ)短信收發(fā)功能并將之發(fā)布為服務(wù),既不影響原有系統(tǒng)又實(shí)現(xiàn)了各部門間系統(tǒng)資源的集約化,有著很好的市場(chǎng)推廣價(jià)值。

        猜你喜歡
        指令功能服務(wù)
        聽(tīng)我指令:大催眠術(shù)
        也談詩(shī)的“功能”
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        招行30年:從“滿意服務(wù)”到“感動(dòng)服務(wù)”
        商周刊(2017年9期)2017-08-22 02:57:56
        關(guān)于非首都功能疏解的幾點(diǎn)思考
        中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
        无遮无挡爽爽免费毛片| 国产精品亚洲在线播放| 蜜桃成人永久免费av大| 国产精品日韩亚洲一区二区| 久久成人成狠狠爱综合网| 性生交大全免费看| a国产一区二区免费入口| 2021久久最新国产精品| 日韩午夜在线视频观看| 日本高级黄色一区二区三区| 人妻精品视频一区二区三区| 国产人妻丰满熟妇嗷嗷叫| 免费一区二区三区久久| 中文字幕亚洲区第一页| 亚洲中文字幕人成乱码在线| 日本三级香港三级人妇99| 日本老熟妇毛茸茸| 无码不卡高清毛片免费| 国产毛片三区二区一区| 女同同志熟女人妻二区| 久久99国产精品久久99| 国产av旡码专区亚洲av苍井空| 亚洲av成人一区二区三区av| 亚洲另在线日韩综合色| 视频一区视频二区亚洲| 亚洲a无码综合a国产av中文| 国产国语熟妇视频在线观看| 色丁香久久| 国产成人精品视频网站| 国产精品久久一区二区蜜桃| 91精品国产91综合久久蜜臀| 无码国内精品人妻少妇蜜桃视频| 海角国精产品一区一区三区糖心 | 亚洲精品国产精品乱码视色| 2019日韩中文字幕mv| 青青草国产成人99久久| 亚洲国产av自拍精选| 一区二区三区国产免费视频| 男女啪动最猛动态图| 免费一区在线观看| 国产国语一级免费黄片|