基于网关的海量数据处理方法

文档序号:7691426阅读:173来源:国知局
专利名称:基于网关的海量数据处理方法
技术领域
本发明涉及一种海量数据处理方法,尤其涉及一种基于网关的海量数据处理方法。
背景技术
现有集中抄表系统的网关系统,大多只是链接几百个甚至上千个终端(集中器); 为了满足对上万个的终端(集中器)进行通信,处理各个终端的登陆、心跳、下线、通信命令、 告警任务等,还要接收一个主站(或多个主站)的命令并传达给相应的终端,这就要求网关程序的处理能力强、响应速度快、并发性能好;为此需要对网关软件进行很好的设计,其中重要的就是实现海量链接并收、并发的技术,也就是对于上万个终端的命令能同时接收、同时发送。图1所示为现有的网关系统海量数据处理的系统组成示意图,其中一个网关主系统下分了多个网关子系统,如网关子系统A、网关子系统B及网关子系统C,每个网关子系统服务器又管理多个终端。该方案采用多个网关子系统来实现,进行分层处理,并设置网关主系统的配置和多个子系统之间的配置,通过一对多的架构实现对终端的管理。因此,为保证网关主系统的处理速度和性能稳定,在网关服务器上配置多个网关子系统服务器,每个网关子系统服务器又负责不同的多个终端,这种结构设置增加了网关主系统的配置和协调工作,增加网关主系统服务器和网关子系统服务器、通信网络设备的硬件成本,增加服务器的维护数量、通信网络的故障率及故障查找困难性。

发明内容
本发明旨在解决现有技术中网关系统配置和协调工作量大、硬件成本高、故障率多的技术问题,提供一种基于网关的海量数据处理方法,能够有效减少网关系统的配置协调工作量,有效降低其硬件成本及有效减少其故障率。本发明提供一种基于网关的海量数据处理方法,首先,把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针;
其次,终端登陆后产生一个链接,系统就创建一个对象,分配内存空间、给变量赋值、确定接收函数指针及发送函数指针;
再次,接收终端命令后进行报文解析、处理;
最后,接收到上级系统命令后传达给相应的终端,再将终端的应答数据组合报文发送给上级系统。优选地,在步骤把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针之后,具体包括以下步骤
步骤一,创建对象,网关多进程启动; 步骤二,终端同时海量链接、接入的处理;
步骤三,接收报文,对基本命令信息和传输数据信息进行分类并行处理;步骤四,报文解析及记录入库;
步骤五,请求命令下发,送入发送队列,进行并发。优选地,所述步骤三具体包括 终端接入处理并接收报文;
将报文信息分成两类基本命令信息和传输数据信息;
对于传输数据信息,送入接收队列,等待解析;同时并行处理基本命令信息的确认。优选地,所述基本命令信息包括终端的登陆信息、心跳信息、上线信息、下线信息、 流量统计信息及标志信息;所述传输数据信息包含数据信息和事件记录。优选地,所述步骤四具体包括
对接收报文的传输数据信息进行解析,并判断报文解析是否处理,若判断为是,则进入下面的步骤;若判断为否,则继续对报文进行解析处理; 将解析后的信息记录入库并向上级系统上报信息。优选地,所述步骤五具体包括
将解析后的信息记录入库后,形成应答报文,送入发送队列,进行并发。请求下发命令;
当基本命令信息得到确认并确认报文入发送队列时,向终端发送队列并发报文; 判断该终端是否第一次接入,若判断结果为是,则返回所述步骤一;若判断结果为否, 返回所述步骤二。优选地,在所述报文接收的过程中,采用了 Linux下的EPOLL技术来实现一个端口上接入上万个以上的链接,专门使用一个线程来处理同时接入事件,处理临界区数据。优选地,所述报文并发处理的过程,由线程控制发送队列,同时分派给多个终端对象,每个终端对象独立发送。以上所述技术方案,通过对终端进行定义,然后将报文的内容和基本命令信息的确认进行并行处理后再进行报文的解析和记录入库、上报信息,成功实现上万个终端的链接、登陆、心跳、收发报文、告警处理等,整个网关系统完成了多个子系统的工作量,降低了系统通信网络的复杂性,同时有效降低了通信网络设备的硬件成本和服务器的维护数量、 有效降低了通信网络的故障率及故障查找困难性。


图1是现有技术中网关系统的硬件结构示意图。图2是本发明一种实施例的网关系统的结构示意图。图3是本发明一种实施例的网关海量数据处理方法的流程图。图4是本发明另一种实施例的网关海量数据处理方法的流程图。
具体实施例方式为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图2所示,本发明的一种实施例的网关系统结构示意图,其中包括一个网关主
5系统服务器1,与网关主系统服务器1相连接的上万个终端2,所述网关主系统服务器与上万个终端同时进行通讯,处理各个终端的登陆、心跳、下线、上线、通讯命令、告警任务等,还要接受一个主站(或多个主站)的命令并传达给相应的终端。这就要求网关程序的处理能力强、响应速度快、并发性能好,为此需要对网关软件进行很好的设计,其中重要的就是实现海量链接并收、并发的技术,也就是对于上万个终端的命令能同时接收、同时发送。图3所示为网关系统的一种实施例的海量数据处理方法,首先,把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针;
其次,终端登陆后产生一个链接,系统就创建一个对象,分配内存空间、给变量赋值、确定函数指针;
再次,接收终端命令后进行报文解析、处理;
最后,接收到上级系统命令后传达给相应的终端,再将终端的应答数据组合报文发送给上级系统。进一步地,结合图3和图4所示,在步骤把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针之后,具体包括以下步骤
步骤Si,创建对象,网关多进程启动。先把每个终端定义成一个对象,然后创建对象的结构成员、结构变量、接收函数指针、发送函数指针等,然后网关多进程启动。步骤S2,终端同时海量链接、接入的处理;网关多进程启动后,终端开始海量链接、接入网关系统。步骤S3,系统接收报文,处理基本命令信息;网关系统开始接受终端的报文信号, 该报文信号具有命令信息和内容数据信息,为了提供网关系统的运行速率和处理速度,将两部分的信息进行并行分开处理,其中内容数据信息通过接收队列,接收报文进行相应处理,而命令信息需要进行确认处理,所述命令信息包括终端的登陆信息、心跳信息、上线信息、下线信息、流量统计信息及标志信息等。步骤S4,报文解析及处理上报;将接收的报文数据信息进行解析,并将解析后的报文信息进行记录入库、上报信息处理并传送到上级系统。步骤S5,上级系统请求命令下发,发送队列、并发报文。作为一种优选实施例,所述步骤S3具体包括
S301,终端接入处理并接收报文;将报文信息分成两类第一类是基本命令信息和第二类是传输数据信息;
对于传输数据信息,送入接收队列,等待解析;同时执行步骤S302,并行处理基本命令信息的确认。作为进一步优选地,所述步骤S4具体包括
步骤S500,对接收报文的传输数据信息进行解析,并判断报文解析是否处理,若判断为是,则进入,步骤S600 ;若判断为否,则继续对报文进行解析处理; 步骤S600,将解析后的信息记录入库并向上级系统上报信息。作为更进一步优选地,所述步骤S5具体包括
步骤S700,将解析后的信息记录入库后,形成应答报文,送入发送队列,进行并发; 步骤S800,上级系统请求下发命令;步骤S900,当基本命令信息得到确认并确认报文入发送队列时,向终端发送队列并发报文;
步骤S1000,系统判断该终端是否第一次接入,若判断结果为是,则返回所述步骤一; 若判断结果为否,返回所述步骤二。优选地,在所述步骤S900中,报文并发处理的过程,由系统独立开辟线程控制发送队列,线程控制并发报文是同时分派给多个终端对象进行,每个终端对象独立发送。所述发送队列并发报文是发送报文执行过程中不需要等待上一报文发送完成才进行发送;所述并发报文是分派给该报文所属终端对象,由终端对象完成发送;所述终端对象为权利要求2所述对象。在实现报文接收的过程中,采用了 Linux下的EPOLL技术来实现一个端口上接入1 万个以上的链接,专门使用一个线程来处理同时接入事件,处理临界区数据,确保链接不丢失,海量链接同时接入时速度也明显提高。在实现报文发送的过程中,由链接对象直接发送,利用各个对象相对独立的特点, 可以同时独立发送,在边缘模式下,发送函数就变成了一个可重入的函数。在海量链接同时发送时,使用频率非常之高,必须用互斥量来加锁,防止变量使用冲突。由于采用面向对象的设计思想,各个对象相对独立又都依赖EPOLL技术,各个对象可以时发送报文;
本发明通过一套先进的算法、先进的处理机制,采用报文并发处理机制,实现上万个终端链接、登录、心跳、收发数据,有效解决了现有技术中网关系统中终端链接、登录、甚至收发报文经常出现等待的技术问题。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.基于网关的海量数据处理方法,其特征在于,首先,把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针;其次,终端登陆后产生一个链接,系统就创建一个对象,分配内存空间、给变量赋值、确定接收函数指针及发送函数指针;再次,接收终端命令后进行报文解析、处理;最后,接收到上级系统命令后传达给相应的终端,再将终端的应答数据形成报文发送给上级系统。
2.根据权利要求1所述的基于网关的海量数据处理方法,其特征在于,在步骤把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针之后, 具体包括以下步骤步骤一,创建对象,网关多进程启动; 步骤二,终端同时海量链接、接入的处理;步骤三,接收报文,对基本命令信息和传输数据信息进行分类并行处理;步骤四,报文解析及记录入库;步骤五,请求命令下发,送入发送队列,进行并发。
3.根据权利要求2所述的基于网关的海量数据处理方法,其特征在于,所述步骤三具体包括终端接入处理并接收报文;将报文信息分成两类基本命令信息和传输数据信息;对于传输数据信息,送入接收队列,等待解析;同时并行处理基本命令信息的确认。
4.根据权利要求3所述的基于网关的海量数据处理方法,其特征在于,所述基本命令信息包括终端的登陆信息、心跳信息、上线信息、下线信息、流量统计信息及标志信息;所述传输数据信息包含数据信息和事件记录。
5.根据权利要求2所述的基于网关的海量数据处理方法,其特征在于,所述步骤四具体包括对接收报文的传输数据信息进行解析,并判断报文解析是否处理,若判断为是,则进入下面的步骤;若判断为否,则继续对报文进行解析处理; 将解析后的信息记录入库并向上级系统上报信息。
6.根据权利要求2所述的基于网关的海量数据处理方法,其特征在于,所述步骤五具体包括将解析后的信息记录入库后,形成应答报文,送入发送队列,进行并发; 请求下发命令;当基本命令信息得到确认并确认报文入发送队列时,向终端发送队列并发报文; 判断该终端是否第一次接入,若判断结果为是,则返回所述步骤一;若判断结果为否, 返回所述步骤二。
7.根据权利要求2所述的基于网关的海量数据处理方法,其特征在于,在所述报文接收的过程中,采用了 Linux下的EPOLL技术来实现一个端口上接入上万个以上的链接,专门使用一个线程来处理同时接入事件,处理临界区数据。
8.根据权利要求6所述的基于网关的海量数据处理方法,其特征在于,所述报文并发处理的过程,由线程控制发送队列,同时分派给多个终端对象,每个终端对象独立发送。
全文摘要
本发明提供了一种基于网关的海量数据处理方法,首先,把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针;其次,终端登陆后产生一个链接,系统就创建一个对象,分配内存空间、给变量赋值、确定接收发送函数指针;再次,接收终端命令后进行报文解析、处理;最后,接收到上级系统命令后传达给相应的终端,再将终端的应答数据形成报文发送给上级系统。该技术方案有效降低了通信网络设备的硬件成本和服务器的维护数量、有效降低了通信网络的故障率及故障查找困难性。
文档编号H04L12/66GK102215181SQ20111015659
公开日2011年10月12日 申请日期2011年6月13日 优先权日2011年6月13日
发明者周启华 申请人:航天科工深圳(集团)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1