CN107087035B - 一种基于SignalR的民用飞机安全运行实时监测方法及监测系统 - Google Patents
一种基于SignalR的民用飞机安全运行实时监测方法及监测系统 Download PDFInfo
- Publication number
- CN107087035B CN107087035B CN201710379118.3A CN201710379118A CN107087035B CN 107087035 B CN107087035 B CN 107087035B CN 201710379118 A CN201710379118 A CN 201710379118A CN 107087035 B CN107087035 B CN 107087035B
- Authority
- CN
- China
- Prior art keywords
- signalr
- real
- time
- aircraft
- redis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于SignalR的民用飞机安全运行实时监测方法及监测系统,属于实时通信和民航飞机安全运行监测技术领域。所述的监测系统包括ADS‑B地面站、SignalR服务器和客户端三部分。所述的监测方法包括ADS‑B地面站获取飞机实时飞行数据;实时数据通信和WebGISgis呈现三个步骤。本发明使用signalrsignalR框架进行实时通信,相比于民航传统的ajax长轮询技术,消耗的CPU和网络资源大幅度减小;通过对SignalR进行全局单例化,大幅度减小服务器内存占用;通过对IuserIdProvider进行扩展并注入会话,解除SignalR连接对ConnectionId的依赖,使得连接可以直接关联用户信息;通过分布式运算和负载均衡优化服务性能,使得系统能够支持大量用户并发操作。
Description
技术领域
本发明属于实时通信和民航飞机安全运行监测技术领域,具体涉及一种基于SignalR的民用飞机安全运行实时监测方法。
背景技术
传统的民航飞机运行实时监测采用ajax长轮询(long polling)技术,由客户端按照固定间隔不断向服务器请求数据来达到伪实时通信效果,无法做到服务器直接向客户端推送数据,消耗CPU和网络资源大。SignalR是一种高效便捷的全双工(full-duplex)通信框架,能够建立基于websocket的异步、永久连接,适合航空安全运行实时监测。然而SignalR进行高频实时通信时有以下缺点:
SignalR使用集线器类(Hub)API来处理服务器到客户端的交互。由于每一次连接都会新建一个Hub实例,因此数据存储、转发、广播等更新机制的实现需要放在另一个单例化、全局性的上下文中,否则在高并发访问下内存中会有大量冗余Hub实例存在,影响系统性能。
SignalR的推送消息是基于连接(Connection)的,SignalR会为每个会话自动生成一个随机新建的ConnectionId,当客户端刷新之后connectionId也随之刷新。但是运行监控系统的消息推送是基于用户的(权限体系),也就是只有登录之后才注册到此Hub,因此需要对SignalR的连接方式进行扩展,使之可以进行基于用户的数据推送。
SignalR为客户端-服务器模式,当同时维护的连接数较多时,服务器性能会显著下降,需要进行分布式运算和负载均衡,使得系统能够支持大量用户并发操作。
发明内容
本发明为了解决现有技术中存在的问题,提供一种基于SignalR的民用飞机安全运行实时监测系统及监测方法,通过使用SignalR技术进行飞机运行的实时监控。
所述的监测系统包括ADS-B地面站、SignalR服务器和客户端三部分。其中ADS-B地面站主要负责获取飞机实时飞行数据,并通过HttpPost方式单向发送到SignalR服务器;SignalR服务器与客户端直接通过Websocket建立全双工通信连接,当飞机实时运行数据更新时直接推送至客户端,同时客户端也可以根据需要对SignalR服务器主动发起数据请求(如用户登录、按照特定条件请求数据等);客户端负责以WebGIS技术将飞机实时信息呈现出来。
所述的监测方法包括如下步骤:
第一步,ADS-B地面站获取飞机实时飞行数据;
第二步,实时数据通信;
第三步,WebGISgis呈现。
本发明的优点在于:
(1)使用signalrsignalR框架进行实时通信,相比于民航传统的ajax长轮询(longpolling)技术,消耗的CPU和网络资源大幅度减小。
(2)通过对SignalR进行全局单例化,大幅度减小服务器内存占用。
(3)通过对IuserIdProvider进行扩展并注入会话,解除SignalR连接对ConnectionId的依赖,使得连接可以直接关联用户信息。
(4)通过分布式运算和负载均衡优化服务性能,使得系统能够支持大量用户并发操作。
(5)通过WebGIS加载实时飞行数据进行直观的可视化显示。
附图说明
图1是本发明的基于SignalR的民用飞机安全运行实时监测系统架构图;
图2是本发明的基于SignalR的民用飞机安全运行实时监测方法流程图;
图3是SignalR全局单例化实现示意图;
图4是Redis负载均衡示意图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
本发明提供一种基于SignalR的民用飞机安全运行实时监测方法,所述的方法通过如下的基于SignalR的民用飞机安全运行实时监测系统实现。如图1所示,所述的系统包括ADS-B地面站、SignalR服务器和客户端三部分,。其中ADS-B地面站主要负责获取飞机实时飞行数据,并通过HttpPost方式单向发送到SignalR服务器;SignalR服务器与客户端直接通过Websocket建立全双工通信连接,当飞机实时运行数据更新时直接推送至客户端,同时客户端也可以根据需要对SignalR服务器主动发起数据请求(如用户登录、按照特定条件请求数据等);客户端负责以WebGIS技术将飞机实时信息呈现出来。
结合图2所示流程图,所述的基于SignalR的民用飞机安全运行实时监测方法包括如下步骤:
第一步,ADS-B地面站获取飞机实时飞行数据;
ADS-B的信息处理与显示主要包括位置信息和其它附加信息的分析提取,然后通过HttpPost请求发送到SignalR服务器。
第二步,实时数据通信;
(2.1)SignalR全局、单例化实现。
如图3所示,首先创建ServerTickerHub类继承Hub类(集线器),用以重写Hub类的连接建立、连接断开等基本事件。然后创建ServerTicker类承担数据更新逻辑,同时采用单例模式创建ServerTicker实例确保内存中只有一个ServerTicker实例存在,再从每个ServerTickerHub类中添加对ServerTicker单一实例的引用,最后为ServerTicker类添加SignalR全局集线器连接上下文对象的引用,使得ServerTicker能够对客户端1~N进行广播。
(2.2)扩展SignalR IUserIdProvider并注入会话。
创建一个MyUserFactory类,继承自IUserIdProvider,实现IUserIdProvider的抽象方法GetUserId,并从浏览器Cookies中获取用户Id。在Starup.cs文件中,将自定义的MyUserFactory类注入到会话设置中,解除SignalR连接对ConnectionId的依赖,使得每一个连接直接与当前登录的用户关联。
(2.3)基于redis的SignalR分布式服务及负载均衡。
如图4所示,通过对redis建立缓冲集群,并对缓冲集群进行合理设计实现分布式服务负载均衡,具体包括:
(a)缓存集群基础配置:确保系统能够随机访问缓存集群中的任意正常Redis节点,在某Redis节点发生故障时,能够自动撤销该Redis节点;Redis节点恢复后,能够自动添加该Redis节点。
(b)节点信息表维护:通过二维表记录集群中每个节点的运行参数、访问量,确保同一集群中权重之和等于100。当缓存节点变化,或者节点的访问权重发生变化,各应用服务器需要重启。
(c)定时器运行:定时器每段时间运行一次,运行时的工作主要是记录运行参数,包括集群中每个节点当前的有效标记、访问区间、累计访问次数等参数,同时对节点信息表进行主动维护;其次是对访问次数进行动态调整,例如当某一节点累计访问次数达到预设最大值时,所有节点访问次数都设为预设最小值。
(d)缓存数据持久化:配置redis缓存数据持久化参数,将缓存数据存入数据库。
第三步,WebGIS呈现。
客户端以OpenLayers3为GIS框架进行飞机实时状态呈现,将飞机作为点状要素展在遥感影像底图上。当客户端接收到飞机实时飞行数据后,将新的实时信息和坐标赋予飞机要素,同时调用PostCompose函数进行地图重绘并刷新飞机要素的位置和信息,实现流畅的飞行动画和实时信息查询。
Claims (2)
1.一种基于SignalR的民用飞机安全运行实时监测方法,其特征在于:所述的监测方法包括如下步骤,
第一步,ADS-B地面站获取飞机实时飞行数据;
第二步,实时数据通信,具体如下:
(2.1)SignalR全局、单例化实现;
首先创建ServerTickerHub类继承Hub类,用以重写Hub类的连接建立、连接断开基本事件;然后创建ServerTicker类承担数据更新逻辑,同时采用单例模式创建ServerTicker实例确保内存中只有一个ServerTicker实例存在,再从每个ServerTickerHub类中添加对ServerTicker单一实例的引用,最后为ServerTicker类添加SignalR全局集线器连接上下文对象的引用,使得ServerTicker能够对客户端1~N进行广播;
(2.2)扩展SignalR IUserIdProvider并注入会话;
创建一个MyUserFactory类,继承自IUserIdProvider,实现IUserIdProvider的抽象方法GetUserId,并从浏览器Cookies中获取用户Id;在Starup.cs文件中,将自定义的MyUserFactory类注入到会话设置中,解除SignalR连接对ConnectionId的依赖,使得每一个连接直接与当前登录的用户关联;
(2.3)基于redis的SignalR分布式服务及负载均衡;
第三步,WebGISgis呈现:
客户端以OpenLayers3为GIS框架进行飞机实时状态呈现,将飞机作为点状要素展在遥感影像底图上;当客户端接收到飞机实时飞行数据后,将新的实时信息和坐标赋予飞机要素,同时调用PostCompose函数进行地图重绘并刷新飞机要素的位置和信息,实现流畅的飞行动画和实时信息查询。
2.根据权利要求1所述的一种基于SignalR的民用飞机安全运行实时监测方法,其特征在于:所述的步骤(2.3),通过对redis建立缓冲集群,并对缓冲集群进行合理设计实现分布式服务负载均衡,具体包括:
(a)缓存集群基础配置:确保系统能够随机访问缓存集群中的任意正常Redis节点,在某Redis节点发生故障时,能够自动撤销该Redis节点;Redis节点恢复后,能够自动添加该Redis节点;
(b)节点信息表维护:通过二维表记录集群中每个节点的运行参数、访问量,确保同一集群中权重之和等于100;当缓存节点变化,或者节点的访问权重发生变化,各应用服务器需要重启;
(c)定时器运行:定时器每段时间运行一次,运行时的工作是记录运行参数,包括集群中每个节点当前的有效标记、访问区间和累计访问次数,同时对节点信息表进行主动维护;其次是对访问次数进行动态调整;
(d)缓存数据持久化:配置redis缓存数据持久化参数,将缓存数据存入数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710379118.3A CN107087035B (zh) | 2017-05-25 | 2017-05-25 | 一种基于SignalR的民用飞机安全运行实时监测方法及监测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710379118.3A CN107087035B (zh) | 2017-05-25 | 2017-05-25 | 一种基于SignalR的民用飞机安全运行实时监测方法及监测系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107087035A CN107087035A (zh) | 2017-08-22 |
CN107087035B true CN107087035B (zh) | 2019-12-03 |
Family
ID=59607685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710379118.3A Active CN107087035B (zh) | 2017-05-25 | 2017-05-25 | 一种基于SignalR的民用飞机安全运行实时监测方法及监测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107087035B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108306953A (zh) * | 2018-01-23 | 2018-07-20 | 江苏微物网络科技有限公司 | 一种用于物联网应用数据呈现的强兼容性实时推送方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6567043B2 (en) * | 1999-03-05 | 2003-05-20 | Rannoch Corporation | Method and apparatus for improving utility of automatic dependent surveillance |
CN102682628A (zh) * | 2012-05-04 | 2012-09-19 | 北京民航天宇科技发展有限公司 | 一种通用航空运行监控系统 |
CN103873564A (zh) * | 2014-02-28 | 2014-06-18 | 浪潮集团山东通用软件有限公司 | 一种在多服务器负载均衡条件下实现SignalR双工通信的方法 |
CN104097784A (zh) * | 2014-08-01 | 2014-10-15 | 莫傲 | 飞机的飞行记录系统及其数据处理方法 |
CN104504938A (zh) * | 2015-01-07 | 2015-04-08 | 江苏理工学院 | 空中交通管制系统的管制方法 |
-
2017
- 2017-05-25 CN CN201710379118.3A patent/CN107087035B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6567043B2 (en) * | 1999-03-05 | 2003-05-20 | Rannoch Corporation | Method and apparatus for improving utility of automatic dependent surveillance |
CN102682628A (zh) * | 2012-05-04 | 2012-09-19 | 北京民航天宇科技发展有限公司 | 一种通用航空运行监控系统 |
CN103873564A (zh) * | 2014-02-28 | 2014-06-18 | 浪潮集团山东通用软件有限公司 | 一种在多服务器负载均衡条件下实现SignalR双工通信的方法 |
CN104097784A (zh) * | 2014-08-01 | 2014-10-15 | 莫傲 | 飞机的飞行记录系统及其数据处理方法 |
CN104504938A (zh) * | 2015-01-07 | 2015-04-08 | 江苏理工学院 | 空中交通管制系统的管制方法 |
Non-Patent Citations (2)
Title |
---|
基于ADS-B 的航空公司飞行监视系统研究;刘坤;《中国优秀硕士学位论文全文数据库工程科技II辑》;20170315(第03期);正文1-7,22-23,34-35页 * |
基于ASP.NET SignalR 的实时Web功能的实现;李燕;《电脑知识与技术》;20160831;第12卷(第24期);正文第1页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107087035A (zh) | 2017-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7072956B2 (en) | Methods and systems for context-aware policy determination and enforcement | |
US7743074B1 (en) | Context aware systems and methods utilizing hierarchical tree structures | |
US6327535B1 (en) | Location beaconing methods and systems | |
US6750883B1 (en) | Identity-based context aware computing systems and methods | |
US7076243B2 (en) | Context aware computing devices having a common interface and related methods | |
EP1269711B1 (en) | Context aware computing devices and methods | |
US7359714B2 (en) | Context-aware and location-aware cellular phones and methods | |
US7421486B1 (en) | Context translation methods and systems | |
US20170344481A1 (en) | Invalidation and refresh of multi-tier distributed caches | |
US10102133B2 (en) | Reducing latency by caching derived data at an edge server | |
US8117547B2 (en) | Environment-interactive context-aware devices and methods | |
Calderoni et al. | Location-aware mobile services for a smart city: Design, implementation and deployment | |
KR101753766B1 (ko) | 그래프 데이터용 분산형 캐시 | |
WO2017106110A1 (en) | Publish-subscribe message transformation | |
CN106155811B (zh) | 资源服务装置、资源调度方法和装置 | |
US8589515B2 (en) | Aggregated widget request processing | |
US10805421B2 (en) | Data caching for cloud services | |
KR20120085630A (ko) | 증강현실을 이용한 광고 서비스 시스템 및 그 방법 | |
JP2014071540A (ja) | 情報配信装置、プログラム及び方法 | |
CN107087035B (zh) | 一种基于SignalR的民用飞机安全运行实时监测方法及监测系统 | |
CN101150591B (zh) | 机场航班信息显示系统 | |
US20100125552A1 (en) | Method and system for updating viewer caches | |
Badidi et al. | Building a data pipeline for the management and processing of urban data streams | |
CN118059480B (zh) | 一种数据处理方法、装置、设备、介质、程序产品及系统 | |
US20230143923A1 (en) | Large scale collaboration of computing applications for vehicle data analysis and response |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |