本發(fā)明涉及衛(wèi)星通信數(shù)據(jù)發(fā)送,具體為一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng)。
背景技術(shù):
1、北斗短報文通信逐步開始應(yīng)用于日常生活中的各個領(lǐng)域,在不便于網(wǎng)絡(luò)連接的情況下,使用北斗短報文是一項非常便捷的通信手段。用戶在使用瀏覽器對短報文內(nèi)容展示和發(fā)送時,需要進(jìn)行數(shù)據(jù)格式(json轉(zhuǎn)北斗短報文協(xié)議)和傳輸物理設(shè)備(網(wǎng)口轉(zhuǎn)串口)的轉(zhuǎn)換,特別當(dāng)發(fā)送服務(wù)需要進(jìn)行大數(shù)據(jù)量發(fā)送時,不僅需要提升北斗用戶機(jī)與系統(tǒng)的對接便利性,也需要充分利用北斗用戶機(jī)的發(fā)送機(jī)會。
2、在有關(guān)北斗的web服務(wù)系統(tǒng)中,將需要發(fā)送的數(shù)據(jù)按照北斗短報文協(xié)議組裝成為報文是通常web開發(fā)者的痛點(diǎn),在不了解北斗協(xié)議的前提下,無法使用面向?qū)ο蟮乃季S使用北斗用戶機(jī),即使對北斗協(xié)議有所了解后,將需要發(fā)送的數(shù)據(jù)按照北斗短報文協(xié)議組裝數(shù)據(jù),如果使用固定的模式編碼,會大大降低后續(xù)服務(wù)的拓展性,故將北斗用戶機(jī)如何作為一個“對象”融入到web系統(tǒng)中是我們應(yīng)該考慮的問題。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供的發(fā)明目的在于提供一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng),解決上述背景技術(shù)中的問題。
2、為實現(xiàn)以上目的,本發(fā)明通過以下技術(shù)方案予以實現(xiàn):一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng),包括:
3、應(yīng)用服務(wù)模塊,用于接收用戶發(fā)送請求。
4、組包服務(wù)集群模塊,收到上游應(yīng)用服務(wù)模塊提起的組包請求后,將請求中的json數(shù)據(jù)反序列化為java對象。
5、發(fā)送服務(wù)集群模塊,拉取消息隊列中的消息,在收到消息后,對消息中的北斗用戶機(jī)連接信息與北斗用戶機(jī)注冊服務(wù)進(jìn)行二次確認(rèn)。
6、網(wǎng)絡(luò)交換機(jī)模塊,交換機(jī)通過提供多個端口,允許多個設(shè)備同時連接并進(jìn)行數(shù)據(jù)傳輸。
7、北斗用戶機(jī),北斗用戶機(jī)通過串口服務(wù)器或自身網(wǎng)口與網(wǎng)絡(luò)設(shè)備連接,發(fā)送服務(wù)會主動與北斗用戶機(jī)建立通信鏈路。
8、注冊中心模塊?,用于提供數(shù)據(jù)。
9、所述應(yīng)用服務(wù)模塊與組包服務(wù)集群模塊之間信號連接,所述組包服務(wù)集群模塊與發(fā)送服務(wù)集群模塊之間信號連接,所述發(fā)送服務(wù)集群模塊與注冊中心模塊?之間雙向信號連接,所述發(fā)送服務(wù)集群模塊與網(wǎng)絡(luò)交換機(jī)模塊之間信號連接,所述網(wǎng)絡(luò)交換機(jī)模塊與北斗用戶機(jī)之間雙向信號連接。
10、進(jìn)一步的,所述應(yīng)用服務(wù)模塊是一個web服務(wù),用于接收用戶發(fā)送請求,用戶在瀏覽器界面選擇需要發(fā)送的接收方卡號,在輸入框中輸入需要發(fā)送的報文消息,點(diǎn)擊“請求發(fā)送”按鈕即可,應(yīng)用服務(wù)模塊接收到前端頁面的發(fā)送請求后,會對數(shù)據(jù)進(jìn)行長度校驗,校驗通過后,會攜帶發(fā)送的數(shù)據(jù)和發(fā)送方卡號信息向組包服務(wù)集群模塊發(fā)起組包請求。
11、進(jìn)一步的,所述組包服務(wù)集群模塊同樣是一個web服務(wù),采用集群化的方式部署。
12、進(jìn)一步的,所述組包服務(wù)集群模塊收到上游應(yīng)用服務(wù)模塊提起的組包請求后,將請求中的json數(shù)據(jù)反序列化為java對象,取出對象的屬性信息進(jìn)行進(jìn)一步的壓縮,壓縮完成后再結(jié)合發(fā)送方卡號信息和本地緩存的可用北斗用戶機(jī)的卡號信息,根據(jù)北斗短報文協(xié)議重新組包成北斗短報文協(xié)議,協(xié)議頭和crc校驗值計算,組包完成后將數(shù)據(jù)序列化,推送到消息隊列集群中。
13、進(jìn)一步的,所述組包服務(wù)集群模塊與發(fā)送服務(wù)集群模塊之間的發(fā)送消息隊列集群,其他服務(wù)通過發(fā)送消息隊列集群與發(fā)送服務(wù)集群模塊解耦,需要發(fā)送北斗短報文的服務(wù)將數(shù)據(jù)組包后推送到消息隊列,發(fā)送服務(wù)會主動從消息隊列中拉取消息,對消息進(jìn)行二次確認(rèn)后發(fā)送消息。
14、進(jìn)一步的,所述發(fā)送服務(wù)集群模塊的發(fā)送服務(wù)基于java語言開發(fā),支持跨平臺運(yùn)行,使用了netty、springboot、mysql、redis成熟框架或服務(wù)。
15、進(jìn)一步的,所述發(fā)送服務(wù)集群模塊的發(fā)送服務(wù)集成了rabbitmq客戶端代碼,會去拉取消息隊列中的消息,在收到消息后,對消息中的北斗用戶機(jī)的連接信息與北斗用戶機(jī)注冊服務(wù)進(jìn)行二次確認(rèn),對消息中的北斗短報文數(shù)據(jù)進(jìn)行二次校驗,兩項都確認(rèn)無誤后,通過北斗用戶機(jī)連接信息判斷是否已與該北斗用戶機(jī)建立連接。
16、進(jìn)一步的,所述北斗用戶機(jī)如未建立連接,則需要發(fā)送服務(wù)主動發(fā)起到北斗用戶機(jī)的tcp連接,在通信建立成功后,將北斗短報文數(shù)據(jù)發(fā)送到該用戶機(jī),成功發(fā)送的北斗短報文數(shù)據(jù)會存儲在mysql數(shù)據(jù)庫中,留待后續(xù)查詢。
17、進(jìn)一步的,所述北斗用戶機(jī)通過串口服務(wù)器或自身網(wǎng)口與網(wǎng)絡(luò)設(shè)備連接,發(fā)送服務(wù)會主動與北斗用戶機(jī)建立通信鏈路。
18、進(jìn)一步的,所述北斗用戶機(jī)在收到發(fā)送服務(wù)傳遞的數(shù)據(jù)后,啟動發(fā)送流程,在執(zhí)行完發(fā)送流程后會通過同樣的通過鏈路將通信結(jié)果反饋回去,即發(fā)送服務(wù)會收到是否發(fā)送成功的通知,如果是發(fā)送成功反饋,發(fā)送服務(wù)會請求北斗用戶機(jī)注冊服務(wù),通知將已使用的北斗用戶機(jī)信息設(shè)置為暫不可用,下一個發(fā)送周期到來后再設(shè)置為可用,如果發(fā)送失敗,則發(fā)送服務(wù)會重新選擇可用的北斗用戶機(jī)重復(fù)執(zhí)行發(fā)送流程,直到發(fā)送成功為止。
19、本發(fā)明提供了一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng)。具備以下有益效果:
20、可以進(jìn)行協(xié)議的轉(zhuǎn)換和組包,從互聯(lián)網(wǎng)常用的json格式轉(zhuǎn)換組包為北斗短報文協(xié)議,將北斗短報文應(yīng)用系統(tǒng)與組包發(fā)送服務(wù)解耦,提升北斗用戶機(jī)融入web系統(tǒng)開發(fā)的便捷性,引入北斗用戶機(jī)注冊服務(wù),充分利用北斗用戶機(jī)的發(fā)送機(jī)會,提升硬件的資源利用率。
1.一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng),其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng),其特征在于:所述應(yīng)用服務(wù)模塊(1)是一個web服務(wù),用于接收用戶發(fā)送請求,用戶在瀏覽器界面選擇需要發(fā)送的接收方卡號,在輸入框中輸入需要發(fā)送的報文消息,點(diǎn)擊“請求發(fā)送”按鈕即可,應(yīng)用服務(wù)模塊(1)接收到前端頁面的發(fā)送請求后,會對數(shù)據(jù)進(jìn)行長度校驗,校驗通過后,會攜帶發(fā)送的數(shù)據(jù)和發(fā)送方卡號信息向組包服務(wù)集群模塊發(fā)起組包請求。
3.根據(jù)權(quán)利要求1所述的一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng),其特征在于:所述組包服務(wù)集群模塊同樣是一個web服務(wù),采用集群化的方式部署。
4.根據(jù)權(quán)利要求1所述的一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng),其特征在于:所述組包服務(wù)集群模塊收到上游應(yīng)用服務(wù)模塊(1)提起的組包請求后,將請求中的json數(shù)據(jù)反序列化為java對象,取出對象的屬性信息進(jìn)行進(jìn)一步的壓縮,壓縮完成后再結(jié)合發(fā)送方卡號信息和本地緩存的可用北斗用戶機(jī)(5)的卡號信息,根據(jù)北斗短報文協(xié)議重新組包成北斗短報文協(xié)議,協(xié)議頭和crc校驗值計算,組包完成后將數(shù)據(jù)序列化,推送到消息隊列集群中。
5.根據(jù)權(quán)利要求1所述的一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng),其特征在于:所述組包服務(wù)集群模塊(2)與發(fā)送服務(wù)集群模塊(3)之間的發(fā)送消息隊列集群,其他服務(wù)通過發(fā)送消息隊列集群與發(fā)送服務(wù)集群模塊(3)解耦,需要發(fā)送北斗短報文的服務(wù)將數(shù)據(jù)組包后推送到消息隊列,發(fā)送服務(wù)會主動從消息隊列中拉取消息,對消息進(jìn)行二次確認(rèn)后發(fā)送消息。
6.根據(jù)權(quán)利要求1所述的一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng),其特征在于:所述發(fā)送服務(wù)集群模塊(3)的發(fā)送服務(wù)基于java語言開發(fā),支持跨平臺運(yùn)行,使用了netty、springboot、mysql、redis成熟框架或服務(wù)。
7.根據(jù)權(quán)利要求1所述的一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng),其特征在于:所述發(fā)送服務(wù)集群模塊(3)的發(fā)送服務(wù)集成了rabbitmq客戶端代碼,會去拉取消息隊列中的消息,在收到消息后,對消息中的北斗用戶機(jī)(5)的連接信息與北斗用戶機(jī)(5)注冊服務(wù)進(jìn)行二次確認(rèn),對消息中的北斗短報文數(shù)據(jù)進(jìn)行二次校驗,兩項都確認(rèn)無誤后,通過北斗用戶機(jī)(5)連接信息判斷是否已與該北斗用戶機(jī)(5)建立連接。
8.根據(jù)權(quán)利要求1所述的一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng),其特征在于:所述北斗用戶機(jī)(5)如未建立連接,則需要發(fā)送服務(wù)主動發(fā)起到北斗用戶機(jī)(5)的tcp連接,在通信建立成功后,將北斗短報文數(shù)據(jù)發(fā)送到該用戶機(jī),成功發(fā)送的北斗短報文數(shù)據(jù)會存儲在mysql數(shù)據(jù)庫中,留待后續(xù)查詢。
9.根據(jù)權(quán)利要求1所述的一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng),其特征在于:所述北斗用戶機(jī)(5)通過串口服務(wù)器或自身網(wǎng)口與網(wǎng)絡(luò)設(shè)備連接,發(fā)送服務(wù)會主動與北斗用戶機(jī)(5)建立通信鏈路。
10.根據(jù)權(quán)利要求1所述的一種北斗短報文組包發(fā)送服務(wù)集群系統(tǒng),其特征在于:所述北斗用戶機(jī)(5)在收到發(fā)送服務(wù)傳遞的數(shù)據(jù)后,啟動發(fā)送流程,在執(zhí)行完發(fā)送流程后會通過同樣的通過鏈路將通信結(jié)果反饋回去,即發(fā)送服務(wù)會收到是否發(fā)送成功的通知,如果是發(fā)送成功反饋,發(fā)送服務(wù)會請求北斗用戶機(jī)(5)注冊服務(wù),通知將已使用的北斗用戶機(jī)(5)信息設(shè)置為暫不可用,下一個發(fā)送周期到來后再設(shè)置為可用,如果發(fā)送失敗,則發(fā)送服務(wù)會重新選擇可用的北斗用戶機(jī)(5)重復(fù)執(zhí)行發(fā)送流程,直到發(fā)送成功為止。