基於部標JT/T808協議及數據格式的GPS服務器 開發
部標808和809的出台,統一了產品的標准,統一了平台與終端之間的通訊協議,對於GPS運營商而言,只要平台支持部標,那可以選擇任意一家的GPS車載終端,也不會受廠商的制約,GPS運營商在市場競爭過程中將更看重產品的質量及服務,從而也間接地促進市場上產品的穩定性和可靠性。
但是開發部標GPS服務器是一個繁瑣苦逼的活,有各種各樣的GPS終端需要兼容和支持,現在交通部頒發了統一的標准協議和數據格式,大部分車輛的GPS終端都需要支持,軟件也需要支持,否則可能在市場准入的時候就遇到麻煩。
我們開發了一個支持JT/T 808-2011數據格式的健壯的GPS服務器,提供下載。數據庫版本支持Mysql, Sqlserver和Oracle等關系數據庫,可以直接拿來做服務器連接前段GPS客戶端和報表開發。
需要JT 808 源碼+808模擬測試終端+壓力測試工具 的請聯系我購買1200元(2379423771@qq.com), Java版本,基於Netty框架的,參見:
基於Java Netty框架構建高性能的部標808協議的GPS服務器
基於Mina框架的參見:基於Java Mina框架的部標GPS服務器。
T 808源碼很完整,已通過交管平台接入,可以直接使用。如果自己來寫,可能需要很長時間的編寫,由於需要結合終端或模擬終端進行測試,很多測試用例很難測試,如拍照,多媒體上傳,行車記錄儀數據上傳等等,很容易走彎路,浪費了大量的時間,建議直接購買808源碼省時省力。而通過808模擬測試終端可以模擬硬件設備的上傳行為通過TCP或UDP發送數據,幫助檢驗我們的程序是否正確的實現了808協議。
C#版的模擬終端開發-》部標808協議模擬終端的設計和開發
809轉發服務器的設計,參見:基於JT/T809-2011的(已過檢)GPS平台數據交換及轉發服務器
基於Asp.NET MVC框架+SignalR +ActiveMQ + Ali OSS 服務構建蘇標主動安全智能防控平台
試用版,沒有指令下發和報警分析及入庫功能。如果沒有安裝.NET4.0 runtime ,將不能運行,.NET4 runtime 安裝請到微軟網站 : http://www.microsoft.com/zh-cn/download/details.aspx?id=17718
1.支持TCP和UDP兩種傳輸協議, 完整實現808協議的所有命令和消息;主要功能有:
2.基於完成端口的異步通信模式,可以支持大規模運輸車輛的終端並發上傳GPS數據;
3.對於數據包和定位包及服務器終端連接狀態進行在線實時監控,提供在線下發命令接口可以很方便的與終端進行交互,如拍照攝像等;
4.對於GPS數據包進行日志保存,便於調試跟蹤。
5.開發語言采用C# .NET4.0框架, 數據庫框架采用Nhibernate,這樣便於數據庫移植,可以支持Oracle, MySql和MS Sqlserver等多個數據庫。
6.Socket服務器模型采用了基於SocketAsyncEventArgs的SocketServer. SocketAsyncEventArgs是.net提供的關於異步socket類,封裝了IOCP的使用,可以用它方便的實現非阻塞通信(non-blocking IO),同時采用對象池和緩沖區管理,大大減少了對象分配和垃圾收集的工作,對於Server性能和吞吐量有很大提升。單機測試可以並發支持上萬個終端。在設計的時候,接收和發送均采用異步全雙工通信的的形式,滿足了GPS服務器大批量數據上傳和大批量數據應答的特點,互不影響。
7.數據庫版,自動分析GPS數據,形成報警記錄,停車報表,油量記錄和加油漏油記錄、歷史軌跡等多個豐富的報表,直接拿來就可以用。
8.高性能的解析模塊,在大規模連接的情況下,對於上傳的數據包的粘包、斷包仍然需要進行不差毫厘的解析,防止出現丟包的情況,這也是交通部平台過檢所要求的:在5000和1萬個終端連接的情況下,不允許出現連接中斷、丟包的情況。
主界面功能如下圖所示,提供連接和數據包的視圖,對於連接的終端可以批量下發各種命令。
服務器提供了從終端控制、參數設置和行車記錄儀及其他所有808規定的平台下發指令。可以對多個終端下發。
對於JT/T808協議文檔中規定的所有協議,無論是終端上行還是平台下發,都提供了完整的實現。並進行了完整的測試。在多個GPS系統中得到了充分的使用。
GPS服務器連接的特點是基於長連接,高吞吐量的處理特點,
1.很多企業在設計的時候,基於TCP協議開發,服務器所承受的連接都是長連接。
2.由於808協議規定終端發上來的包除了應答包,都要進行應答,很多傻逼終端企業在開發的時候,死板的照抄808協議,不應答不行。這樣就造成了大批量數據上傳和大批量數據應答的情況。實際上定位上傳的數據包完全不應該應答,心跳包就更沒道理去進行應答了。
為了提高終端接入能力和數據分析、入庫能力,將終端消息的處理分成獨立的五級處理模塊,每個處理模塊都是異步獨立的,每個模塊內都含有獨立的處理隊列,互不影響,提高數據的吞吐量和系統的響應能力。
1)第一級:實時數據解析入庫,入庫能力決定了客戶端所看到的實時數據是否延遲;
2)第二級:報警分析並入庫(包括32種808協議規定的報警、停車報警和路線偏移報警),報警分析只有快速分析才能快速的推送到前端客戶端;
3) 第三級:消息應答和指令下發,應答可以有一定的延遲,而不影響整個系統性能。
4)第四級:報表統計,由於油量統計、里程統計、上線率統計,需要定時掃描數據庫,生成每個時段的數據統計提供給報表查詢使用.
5)第五級:日志記錄和顯示
如下圖,采用終端模擬工具,自動生成靜態車輛數據,自動進行並發連接、注冊和鑒權后,開始定位數據上傳。每個車輛的上傳軌跡是獨立不重復的,報警位和狀態位定時反轉,便於測試報警分析和入庫能力。
這樣經過五秒傳一次的模擬的壓力測試后,真實環境就不在話下了。如何進行壓力測試參見:GPS部標監控平台-壓力測試
提供WCF服務接口,使得客戶端和其他第三方系統可以調用,從而能夠對終端下發命令。
代碼提供了命令接口和實時數據服務接口,可以很方便和PHP系統進行集成。
如下是部標平台的GIS客戶端調用808GPS服務器的WCF服務接口,給終端下發各種命令:
如需購買GPS平台源碼+文檔+服務,可以聯系我2379423771@qq.com。
Java平台,參見:
基於Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架構建高性能企業級的部標GPS監控平台
基於Struts+Spring+Hibernate+Ibatis+Quartz+Mina框架構建部標監控平台
.NET平台,參見:基於Asp.NET MVC構建GPS部標平台
Cs客戶端參見:GPS監控CS客戶端設計