一种信号系统中代理服务器的实现方法与流程

文档序号:14914830发布日期:2018-07-11 00:26阅读:125来源:国知局

本发明涉及一种铁路信号系统,尤其是涉及一种信号系统中代理服务器的实现方法。



背景技术:

对于已开通运行多年的地铁线路,其使用的信号系统基本比较稳定,在没有重大变更的情况下,用户一般不会同意升级整个信号系统。但是随着延长线的开通、运营列车数的增加等等,又会有新的需求出现。比如,需要更多的可以查看全线站场界面的终端。但是,一般而言,ATS系统中的应用服务器可以连接的终端个数是有限制的。对于一些老版本的ATS系统,应用服务器可连接终端个数只有不到二十个,无法满足系统扩展的需求。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种信号系统中代理服务器的实现方法,在不影响现有系统的基础上,不增加应用服务器的压力情况下,增加了可查看全线站场界面的终端个数。

本发明的目的可以通过以下技术方案来实现:

一种信号系统中代理服务器的实现方法,包括以下步骤:

步骤S1、读取配置文件,获取系统配置参数;

步骤S2、以“终端”的角色与系统中的应用服务器建立连接,并向消息队列中注册与应用服务器连接的网络事件;

步骤S3、以“应用服务器”的角色启动,根据配置文件创建可连接终端的管理线程;

步骤S4、当与应用服务器建立连接产生网络事件之后,响应该网络事件,向应用服务器发送请求以获取当前全站场显示数据;

步骤S5、采用索引唯一定位方式保存车次窗对象,采用分级方式保存站场设备状态数据;

步骤S6、当有终端与代理服务器建立连接并发送请求时,处理其请求报文,完成站场显示数据的转发。

优选地,所述的系统配置参数包括:与代理服务器连接的GPC个数,各GPC的配置参数,代理服务器与应用服务器连接使用的节点名,以及消息队列名称。

优选地,所述的步骤S3中的管理线程的逻辑为:根据配置创建代理服务器与应用服务器的底层通信,创建并注册消息队列,注册网络事件;循环读取处理消息队列内容。

优选地,所述的步骤S4具体为:

步骤S41、向应用服务器发送登录请求报文;

步骤S42、收到应用服务器返回的登录成功消息后,发送车次窗全体请求报文和设备状态全体请求报文;

步骤S43、收到车次窗全体报文和设备状态全体的报文,车次窗使用索引唯一定位方式保存,设备状态全体采用分级方式保存,便于查找管理;

步骤S44、收到车次窗更新和设备状态更新报文,更新内存数据。

优选地,所述的登录请求报文包括用户名和密码。

优选地,所述的步骤S6具体为:

步骤S61、代理服务器启动时,即启动对最多可连接的所有终端的管理;

步骤S62、收到终端建立连接后的登录请求报文,针对登录请求报文中的用户名和密码进行判断,判断通过返回登录成功消息,否则返回登录失败消息;

步骤S63、收到终端的车次窗全体请求报文,将内存中的所有车次窗数据组包发送给对应的终端;

步骤S64、收到终端的设备状态全体请求报文,将内存中分级保存的设备状态数据组包发送给对应的终端;

步骤S65、将车次窗更新和设备状态更新报文及时转发给与代理服务器连接的所有终端。

与现有技术相比,本发明具有以下优点:

1)本发明,对于应用服务器而言,代理服务器只是一个普通的终端,在系统中增加代理服务器完全没有给应用服务器增加任何性能负担;

2)本发明,代理服务器可以连接的终端个数最多为50个,极大地扩充了系统的容量;

3)本发明,代理服务器对车次窗和设备状态进行了数据缓存,终端与代理服务器建立连接时,直接从代理服务器中获取站场数据,减轻了网络流量和应用服务器的负载;

4)本发明,代理服务器根据车次窗和设备状态的更新报文更新缓存数据的同时,将更新报文及时转发给其所有连接的终端,保证的站场界面的及时刷新。

附图说明

图1为代理服务器启动流程图;

图2为代理服务器与应用服务器交互时序图;

图3为代理服务器与终端的交互时序图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

参考图1-3,说明本发明的技术方案。首先参考图1,介绍本发明的系统启动处理过程,包括以下步骤:

步骤100,读取配置文件,获取系统配置参数,包括与代理服务器连接的GPC个数,以及各GPC的配置参数,代理服务器与应用服务器连接使用的节点名,消息队列名称等等;

步骤101,创建并启动commCATS线程,该线程逻辑为:根据配置创建代理服务器与应用服务器的底层通信,创建并注册消息队列,注册网络事件;循环读取处理消息队列内容。主要实现代码如下:

代理服务器与应用服务器之间的通信,由commCATS线程实现,过程参考图2.具体过程如下:

1.与应用服务器连接状态变化时,通信管理层会向commCATS的消息队列中发送一条CONNECTION_RESET消息;

2.代理服务器的commCATS线程读取到该消息后,判断如果是建立连接,则首先先应用服务发送登录请求,并根据登录回函报文进行相应处理,登录成功,则向应用服务器发送加载设备状态全体和车次窗全体的请求报文;如果是断开连接,则清空代理服务器的缓存;主要实现代码如下:

3.收到车次窗全体报文,循环处理每条车次窗更新报文,根据报文更新代理服务器的缓存;车次窗使用车组号做为索引唯一定位方式保存。因为该报文只有在软件初始化/重新初始化时收到,所以针对该报文,每个车次窗的处理都是add过程,只需要在内存中找到一个空闲位置,将该车次窗对象添加进去即可。

4.收到设备状态全体的报文,循环处理每条设备状态更新报文,根据报文更新代理服务器的缓存;设备状态全体采用分级方式保存,所以根据每条报文,首先根据rtuId定位集中站,再根据iconHandle定位到具体设备时,更新其status即可。

5.收到车次窗更新报文,根据车组号索引定位,找到对应的车次窗对象后,根据msgType删除或更新车次窗对象。

6.收到设备状态更新报文,首先根据rtuId定位集中站,再根据iconHandle定位到具体设备时,更新其status。

代理服务器与终端之间的通信过程参考图3.具体过程如下:

1.收到终端的登录请求报文,对用户名和密码进行验证,验证通过,则将该终端的ifLogin设置为true,发送登录回函给终端,并将该终端加入更新列表;

2.收到终端的车次窗全体请求报文,将缓存中所有车次窗组包发送给该终端;

3.收到终端的设备状态全体请求报文,将缓存中所有的设备状态组包发送给该终端;

4.当某个车次窗或设备状态有更新时,及时将更新报文发送给更新列表中的所有终端,以便各终端及时更新界面显示;

5.当代理服务器与应用服务器断开连接时,发送站死消息给更新列表中的所有终端,通知其清除器设备状态显示;同时清空代理服务器缓存,删除所有的车次窗对象,同时发送车次窗删除报文给更新列表中所有终端,达到终端与应用服务器断开连接时界面灰显的效果。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1