黃 河
?
談氣象服務(wù)的可擴(kuò)展網(wǎng)絡(luò)接入服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)
黃 河
湖北省公眾氣象服務(wù)中心,湖北 武漢430074
針對(duì)目前氣象服務(wù)的網(wǎng)絡(luò)接入服務(wù)器存在的弊端,以當(dāng)前開(kāi)發(fā)氣象服務(wù)器的情況為根據(jù),設(shè)計(jì)了一個(gè)可擴(kuò)展網(wǎng)絡(luò)服務(wù)器,對(duì)可擴(kuò)展網(wǎng)絡(luò)服務(wù)器的整體框架和核心功能進(jìn)行了介紹。
氣象服務(wù);可擴(kuò)展;網(wǎng)絡(luò)接入服務(wù)器
目前,氣象行業(yè)的氣象服務(wù)系統(tǒng)正在朝著信息傳遞高效及時(shí)、較廣的業(yè)務(wù)覆蓋面、較多的業(yè)務(wù)種類等方向發(fā)展。為了更好地滿足氣象服務(wù)系統(tǒng)的發(fā)展要求,本文針對(duì)一種氣象服務(wù)的可擴(kuò)展網(wǎng)絡(luò)接入服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了分析和介紹。
1.1 網(wǎng)絡(luò)通信模塊
①套接字監(jiān)聽(tīng)。套接字監(jiān)聽(tīng)的主要作用就是對(duì)監(jiān)聽(tīng)客戶端的Socket進(jìn)行負(fù)責(zé)和銷毀,以預(yù)先設(shè)定的要求為根據(jù)對(duì)客戶端的連接請(qǐng)求進(jìn)行接受或者拒絕。
②對(duì)象池。對(duì)象池能夠回收管理暫時(shí)空閑的連接對(duì)象,通過(guò)對(duì)空閑對(duì)象的充分利用能夠有效地降低資源的損耗,而且還可以將創(chuàng)建和銷毀操作更加快捷、方便的完成。
③線程池。線程池的主要作用就是對(duì)I/0工作線程進(jìn)行存放,在多個(gè)任務(wù)上分?jǐn)偩€程創(chuàng)建的開(kāi)銷。線程在請(qǐng)求達(dá)到的時(shí)候就會(huì)存在,因此可以使系統(tǒng)整體的響應(yīng)速度得以提升。
④I/0工作線程。I/0工作線程的最為主要的作用就是對(duì)I/0請(qǐng)求類型進(jìn)行判斷,并且對(duì)相應(yīng)的對(duì)象進(jìn)行調(diào)用,加以處理。
1.2 消息模塊
①消息協(xié)議。消息協(xié)議主要是客戶端與客戶端之間、客戶端與服務(wù)器之間開(kāi)展通信的規(guī)則,利用封裝多種類型的解析方式可以將統(tǒng)一的協(xié)議解析機(jī)制提供出來(lái)。②消息隊(duì)列。消息隊(duì)列的最為主要的作用就是對(duì)通信模塊接收的消息進(jìn)行存放,而且對(duì)消息進(jìn)行處理,向服務(wù)管理模塊分派處理好的消息。
1.3服務(wù)管理模塊
①配置管理。對(duì)全部的服務(wù)和功能進(jìn)行集中的管理和配置,其中包括終止、恢復(fù)和初始化等一系列的操作,利用相應(yīng)的服務(wù)列表可以對(duì)服務(wù)進(jìn)行查找。②服務(wù)工廠。以消息處理模塊的解析結(jié)果為根據(jù)對(duì)相應(yīng)的服務(wù)實(shí)例進(jìn)行調(diào)用,在完成處理之后向消息處理模塊返送結(jié)果。③網(wǎng)絡(luò)接口。網(wǎng)絡(luò)接入服務(wù)器框架可以將統(tǒng)一的服務(wù)接口提供給開(kāi)發(fā)人員,利用這個(gè)接口可以實(shí)現(xiàn)全部的服務(wù)功能,可以確保服務(wù)的動(dòng)態(tài)加載功能更好的實(shí)現(xiàn)。
2.1 系統(tǒng)操作界面
①管理操作模塊。管理操作模塊分為兩個(gè)部分,也就是用戶管理和地區(qū)管理。其中,用戶管理主要功能就是使管理人員對(duì)用戶信息進(jìn)行更加便捷的操作。如對(duì)用戶賬號(hào)的創(chuàng)建、刪除和修改;在地區(qū)管理中設(shè)置了分組管理功能,以省、市、縣為根據(jù)對(duì)人影指揮平臺(tái)和氣象預(yù)警平臺(tái)實(shí)施分組管理,同時(shí)能夠以省級(jí)PC指揮機(jī)的指令為根據(jù)將下屬地區(qū)PC指揮機(jī)的權(quán)限剝奪掉。②系統(tǒng)設(shè)置操作。系統(tǒng)設(shè)置操作分為兩個(gè)部分:也就是高級(jí)設(shè)置操作和基本設(shè)置操作,通過(guò)基本設(shè)置操作用戶能夠配置服務(wù)器的數(shù)據(jù)庫(kù)的IP地址端口、啟動(dòng)時(shí)是否最小化以及是否開(kāi)機(jī)啟動(dòng)等。高級(jí)設(shè)置操作則將自動(dòng)更新設(shè)置和注冊(cè)信息的配置功能等提供給了用戶。③數(shù)據(jù)操作模塊。數(shù)據(jù)操作模塊可以對(duì)用戶管理人影作業(yè)相關(guān)數(shù)據(jù)進(jìn)行更好的管理。其具有清理日志和過(guò)期數(shù)據(jù)、備份和恢復(fù)人影作業(yè)相關(guān)數(shù)據(jù)、查看離線文件信息和歷史操作記錄等功能[1]。
2.2 系統(tǒng)網(wǎng)絡(luò)與通信模塊
在網(wǎng)絡(luò)接入服務(wù)系統(tǒng)中網(wǎng)絡(luò)通信模塊屬于核心模塊,其可以將數(shù)據(jù)傳輸服務(wù)提供給消息處理模塊,而且還可以對(duì)客戶端和系統(tǒng)的交互起到維護(hù)作用。該模塊的主要作用就是創(chuàng)建和銷毀線程池、內(nèi)存池和對(duì)象池,而且還可以對(duì)客戶端通信和套接字進(jìn)行啟動(dòng)。網(wǎng)絡(luò)通信模塊必須要具備良好的伸縮性和交互性,確保可以以其為基礎(chǔ)更好地架設(shè)系統(tǒng)的其他模塊。
2.3 設(shè)計(jì)和實(shí)現(xiàn)數(shù)據(jù)處理模塊
①CP協(xié)議的無(wú)消息邊界。作為面向連續(xù)字節(jié)流的可靠傳輸協(xié)議,TCP協(xié)議能夠?qū)?shù)據(jù)有效到達(dá)接收端進(jìn)行保障,但并不能保障數(shù)據(jù)的完整性。這是由于在程序設(shè)計(jì)的過(guò)程中,每次只能發(fā)送一個(gè)程序包,而TCP協(xié)議往往要收集到一定量的數(shù)據(jù)才會(huì)進(jìn)行統(tǒng)一發(fā)送,以提高傳輸?shù)乃俾?。這種情況下很容易出現(xiàn)粘包。②消息協(xié)議。為了保障數(shù)據(jù)傳輸?shù)姆€(wěn)定性和準(zhǔn)確性,并將數(shù)據(jù)處理的結(jié)果及時(shí)反饋給氣象業(yè)務(wù)平臺(tái),必須制定與氣象服務(wù)需要相適合的消息協(xié)議。時(shí)序、語(yǔ)義和語(yǔ)法是通訊協(xié)議的三要素。由于氣象業(yè)務(wù)的不同,需要不同的消息協(xié)議,設(shè)計(jì)中要保障消息協(xié)議的可擴(kuò)展性和可移植性。③SON數(shù)據(jù)格式。以字節(jié)流的方式傳輸消息數(shù)據(jù)包,數(shù)據(jù)包是以對(duì)象的形式存在的,一般有兩種方法來(lái)對(duì)業(yè)務(wù)邏輯中的對(duì)象進(jìn)行轉(zhuǎn)換。第一種是對(duì)對(duì)象進(jìn)行序列化,然后向接收方發(fā)送;第二種是建立字節(jié)數(shù)組,然后直接發(fā)送。④數(shù)據(jù)接收模塊。必須對(duì)接收和發(fā)送的流程進(jìn)行科學(xué)的設(shè)計(jì),保障網(wǎng)絡(luò)傳輸?shù)恼_性。網(wǎng)絡(luò)接入服務(wù)器的接收流程見(jiàn)圖1,發(fā)送流程見(jiàn)圖2。
2.4 數(shù)據(jù)庫(kù)
本設(shè)計(jì)使用Oracle lOg系統(tǒng)存儲(chǔ)數(shù)據(jù)作為數(shù)據(jù)庫(kù),主要對(duì)人影作業(yè)指揮過(guò)程中的離線文件、已注冊(cè)的氣象業(yè)務(wù)平臺(tái)信息和服務(wù)器使用人員的信息進(jìn)行存儲(chǔ)。服務(wù)器使用人員和管理人員的密碼、用戶名、部門、姓名、ID等信息主要存儲(chǔ)于人員信息表,已注冊(cè)的氣象業(yè)務(wù)平臺(tái)的等級(jí)、類型、密碼、ID等信息主要存儲(chǔ)于氣象平臺(tái)信息表,客戶端的離線文件請(qǐng)求主要存儲(chǔ)于離線文件表,人工影響天氣決策指揮成功作業(yè)的數(shù)據(jù)包大小和類型、原客戶端信息、作業(yè)起始時(shí)間主要存儲(chǔ)于歷史作業(yè)記錄表,網(wǎng)絡(luò)接入服務(wù)器的一些常規(guī)信息主要存儲(chǔ)于系統(tǒng)信息日志[2]。由于氣象服務(wù)的數(shù)據(jù)量不斷增大,數(shù)據(jù)種類不斷增多,導(dǎo)致氣象服務(wù)終端具有越來(lái)越集中的訪問(wèn)量和更加頻繁的數(shù)據(jù)交互。為了避免系統(tǒng)崩潰,可以繼續(xù)使用負(fù)載均衡技術(shù),對(duì)系統(tǒng)負(fù)載進(jìn)行合理的分配,使服務(wù)器接入的可靠性和實(shí)時(shí)性得到保障。盡管業(yè)務(wù)邏輯層具有很快的處理速度,但是在讀寫數(shù)據(jù)時(shí),處理速度往往很慢,此時(shí)可以用數(shù)據(jù)庫(kù)連接池技術(shù)。也就是在連接池中放入一定數(shù)量的數(shù)據(jù)庫(kù),這樣在用戶訪問(wèn)時(shí)就可以直接取出空閑的數(shù)據(jù)庫(kù)進(jìn)行操作,操作完畢后再將其放回連接池[3]。
圖1 網(wǎng)絡(luò)接入服務(wù)器接收流程
圖2 數(shù)據(jù)發(fā)送流程圖
傳統(tǒng)的氣象服務(wù)系統(tǒng)不具備可移植性、可擴(kuò)展性和可通用性,而且具有傳遞數(shù)據(jù)格式單一和較小的負(fù)載能力等問(wèn)題。本文設(shè)計(jì)的系統(tǒng)能夠充分地滿足現(xiàn)在氣象服務(wù)對(duì)網(wǎng)絡(luò)接入服務(wù)器的需求,具有較高的可行性[4]。
[1]廖宏建,楊玉寶,唐連章.完成端口實(shí)現(xiàn)高性能服務(wù)端通信層的關(guān)鍵問(wèn)題[J].計(jì)算機(jī)應(yīng)用,2012(3):153.
[2]王進(jìn) B/S模式下的三層架構(gòu)模式[J].軟件導(dǎo)刊,2011(3):55.
[3]韓吉,周杰,杜景林.基于Android的氣象WSN監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2014(8):2709-2714.
[4]蔡錦輝.利用3G網(wǎng)絡(luò)實(shí)現(xiàn)移動(dòng)氣象工作站[J].電子技術(shù)與軟件工程,2014(13):58-59.
Talking About Weather Service of the Design and Implementation of a Scalable Network Access Server
Huang He
Public Meteorological Service Center in Hubei Province,Hubei WuHan 430074
This article in view of the present insufficiency of meteorological service network access server. In the current development of meteorological server based on the condition of the designed a scalable web server. The core of the overall framework and scalable web server functions are introduced.
meteorological services;Extensible;network access server
P409
A
1009-6434(2016)07-0142-03
黃河(1983—),男,漢族,湖北省武漢市人,碩士,工程師,從事氣象服務(wù)與應(yīng)用氣象工作。