CN102215181A - 基于网关的海量数据处理方法 - Google Patents

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

Info

Publication number
CN102215181A
CN102215181A CN2011101565960A CN201110156596A CN102215181A CN 102215181 A CN102215181 A CN 102215181A CN 2011101565960 A CN2011101565960 A CN 2011101565960A CN 201110156596 A CN201110156596 A CN 201110156596A CN 102215181 A CN102215181 A CN 102215181A
Authority
CN
China
Prior art keywords
terminal
information
message
gateway
processing method
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.)
Pending
Application number
CN2011101565960A
Other languages
English (en)
Inventor
周启华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aerospace Science and Industry Shenzhen Group Co Ltd
Original Assignee
Aerospace Science and Industry Shenzhen Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Aerospace Science and Industry Shenzhen Group Co Ltd filed Critical Aerospace Science and Industry Shenzhen Group Co Ltd
Priority to CN2011101565960A priority Critical patent/CN102215181A/zh
Publication of CN102215181A publication Critical patent/CN102215181A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于网关的海量数据处理方法,首先,把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针;其次,终端登陆后产生一个链接,系统就创建一个对象,分配内存空间、给变量赋值、确定接收发送函数指针;再次,接收终端命令后进行报文解析、处理;最后,接收到上级系统命令后传达给相应的终端,再将终端的应答数据形成报文发送给上级系统。该技术方案有效降低了通信网络设备的硬件成本和服务器的维护数量、有效降低了通信网络的故障率及故障查找困难性。

Description

基于网关的海量数据处理方法
技术领域
本发明涉及一种海量数据处理方法,尤其涉及一种基于网关的海量数据处理方法。
背景技术
现有集中抄表系统的网关系统,大多只是链接几百个甚至上千个终端(集中器);为了满足对上万个的终端(集中器)进行通信,处理各个终端的登陆、心跳、下线、通信命令、告警任务等,还要接收一个主站(或多个主站)的命令并传达给相应的终端,这就要求网关程序的处理能力强、响应速度快、并发性能好;为此需要对网关软件进行很好的设计,其中重要的就是实现海量链接并收、并发的技术,也就是对于上万个终端的命令能同时接收、同时发送。
图1所示为现有的网关系统海量数据处理的系统组成示意图,其中一个网关主系统下分了多个网关子系统,如网关子系统A、网关子系统B及网关子系统C,每个网关子系统服务器又管理多个终端。该方案采用多个网关子系统来实现,进行分层处理,并设置网关主系统的配置和多个子系统之间的配置,通过一对多的架构实现对终端的管理。因此,为保证网关主系统的处理速度和性能稳定,在网关服务器上配置多个网关子系统服务器,每个网关子系统服务器又负责不同的多个终端,这种结构设置增加了网关主系统的配置和协调工作,增加网关主系统服务器和网关子系统服务器、通信网络设备的硬件成本,增加服务器的维护数量、通信网络的故障率及故障查找困难性。
发明内容
本发明旨在解决现有技术中网关系统配置和协调工作量大、硬件成本高、故障率多的技术问题,提供一种基于网关的海量数据处理方法,能够有效减少网关系统的配置协调工作量,有效降低其硬件成本及有效减少其故障率。
本发明提供一种基于网关的海量数据处理方法,首先,把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针;
其次,终端登陆后产生一个链接,系统就创建一个对象,分配内存空间、给变量赋值、确定接收函数指针及发送函数指针;
再次,接收终端命令后进行报文解析、处理;
最后,接收到上级系统命令后传达给相应的终端,再将终端的应答数据组合报文发送给上级系统。
优选地,在步骤:把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针之后,具体包括以下步骤:
步骤一,创建对象,网关多进程启动;
步骤二,终端同时海量链接、接入的处理;
步骤三,接收报文,对基本命令信息和传输数据信息进行分类并行处理;
步骤四,报文解析及记录入库;
步骤五,请求命令下发,送入发送队列,进行并发。
优选地,所述步骤三具体包括:
终端接入处理并接收报文;
将报文信息分成两类:基本命令信息和传输数据信息;
对于传输数据信息,送入接收队列,等待解析;同时并行处理基本命令信息的确认。
优选地,所述基本命令信息包括终端的登陆信息、心跳信息、上线信息、下线信息、流量统计信息及标志信息;所述传输数据信息包含数据信息和事件记录。
优选地,所述步骤四具体包括:
对接收报文的传输数据信息进行解析,并判断报文解析是否处理,若判断为是,则进入下面的步骤;若判断为否,则继续对报文进行解析处理;
将解析后的信息记录入库并向上级系统上报信息。
优选地,所述步骤五具体包括:
将解析后的信息记录入库后,形成应答报文,送入发送队列,进行并发。
请求下发命令;
当基本命令信息得到确认并确认报文入发送队列时,向终端发送队列并发报文;
判断该终端是否第一次接入,若判断结果为是,则返回所述步骤一;若判断结果为否,返回所述步骤二。
优选地,在所述报文接收的过程中,采用了Linux下的EPOLL技术来实现一个端口上接入上万个以上的链接,专门使用一个线程来处理同时接入事件,处理临界区数据。
优选地,所述报文并发处理的过程,由线程控制发送队列,同时分派给多个终端对象,每个终端对象独立发送。
以上所述技术方案,通过对终端进行定义,然后将报文的内容和基本命令信息的确认进行并行处理后再进行报文的解析和记录入库、上报信息,成功实现上万个终端的链接、登陆、心跳、收发报文、告警处理等,整个网关系统完成了多个子系统的工作量,降低了系统通信网络的复杂性,同时有效降低了通信网络设备的硬件成本和服务器的维护数量、有效降低了通信网络的故障率及故障查找困难性。
附图说明
图1是现有技术中网关系统的硬件结构示意图。
图2是本发明一种实施例的网关系统的结构示意图。
图3是本发明一种实施例的网关海量数据处理方法的流程图。
图4是本发明另一种实施例的网关海量数据处理方法的流程图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图2所示,本发明的一种实施例的网关系统结构示意图,其中包括一个网关主系统服务器1,与网关主系统服务器1相连接的上万个终端2,所述网关主系统服务器与上万个终端同时进行通讯,处理各个终端的登陆、心跳、下线、上线、通讯命令、告警任务等,还要接受一个主站(或多个主站)的命令并传达给相应的终端。这就要求网关程序的处理能力强、响应速度快、并发性能好,为此需要对网关软件进行很好的设计,其中重要的就是实现海量链接并收、并发的技术,也就是对于上万个终端的命令能同时接收、同时发送。
图3所示为网关系统的一种实施例的海量数据处理方法,首先,把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针;
其次,终端登陆后产生一个链接,系统就创建一个对象,分配内存空间、给变量赋值、确定函数指针;
再次,接收终端命令后进行报文解析、处理;
最后,接收到上级系统命令后传达给相应的终端,再将终端的应答数据组合报文发送给上级系统。
进一步地,结合图3和图4所示,在步骤把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针之后,具体包括以下步骤:
步骤S1,创建对象,网关多进程启动。
先把每个终端定义成一个对象,然后创建对象的结构成员、结构变量、接收函数指针、发送函数指针等,然后网关多进程启动。
步骤S2,终端同时海量链接、接入的处理;网关多进程启动后,终端开始海量链接、接入网关系统。
步骤S3,系统接收报文,处理基本命令信息;网关系统开始接受终端的报文信号,该报文信号具有命令信息和内容数据信息,为了提供网关系统的运行速率和处理速度,将两部分的信息进行并行分开处理,其中内容数据信息通过接收队列,接收报文进行相应处理,而命令信息需要进行确认处理,所述命令信息包括终端的登陆信息、心跳信息、上线信息、下线信息、流量统计信息及标志信息等。
步骤S4,报文解析及处理上报;将接收的报文数据信息进行解析,并将解析后的报文信息进行记录入库、上报信息处理并传送到上级系统。
步骤S5,上级系统请求命令下发,发送队列、并发报文。
作为一种优选实施例,所述步骤S3具体包括:
S301,终端接入处理并接收报文;将报文信息分成两类:第一类是基本命令信息和第二类是传输数据信息;
对于传输数据信息,送入接收队列,等待解析;同时执行步骤S302,并行处理基本命令信息的确认。
作为进一步优选地,所述步骤S4具体包括:
步骤S500,对接收报文的传输数据信息进行解析,并判断报文解析是否处理,若判断为是,则进入,步骤S600;若判断为否,则继续对报文进行解析处理;
步骤S600,将解析后的信息记录入库并向上级系统上报信息。
作为更进一步优选地,所述步骤S5具体包括:
步骤S700,将解析后的信息记录入库后,形成应答报文,送入发送队列,进行并发;
步骤S800,上级系统请求下发命令;
步骤S900,当基本命令信息得到确认并确认报文入发送队列时,向终端发送队列并发报文;
步骤S1000,系统判断该终端是否第一次接入,若判断结果为是,则返回所述步骤一;若判断结果为否,返回所述步骤二。
优选地,在所述步骤S900中,报文并发处理的过程,由系统独立开辟线程控制发送队列,线程控制并发报文是同时分派给多个终端对象进行,每个终端对象独立发送。
所述发送队列并发报文是发送报文执行过程中不需要等待上一报文发送完成才进行发送;所述并发报文是分派给该报文所属终端对象,由终端对象完成发送;所述终端对象为权利要求2所述对象。
在实现报文接收的过程中,采用了Linux下的EPOLL技术来实现一个端口上接入1万个以上的链接,专门使用一个线程来处理同时接入事件,处理临界区数据,确保链接不丢失,海量链接同时接入时速度也明显提高。
在实现报文发送的过程中,由链接对象直接发送,利用各个对象相对独立的特点,可以同时独立发送,在边缘模式下,发送函数就变成了一个可重入的函数。在海量链接同时发送时,使用频率非常之高,必须用互斥量来加锁,防止变量使用冲突。
由于采用面向对象的设计思想,各个对象相对独立又都依赖EPOLL技术,各个对象可以时发送报文;
本发明通过一套先进的算法、先进的处理机制,采用报文并发处理机制,实现上万个终端链接、登录、心跳、收发数据,有效解决了现有技术中网关系统中终端链接、登录、甚至收发报文经常出现等待的技术问题。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.基于网关的海量数据处理方法,其特征在于,
首先,把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针;
其次,终端登陆后产生一个链接,系统就创建一个对象,分配内存空间、给变量赋值、确定接收函数指针及发送函数指针;
再次,接收终端命令后进行报文解析、处理;
最后,接收到上级系统命令后传达给相应的终端,再将终端的应答数据形成报文发送给上级系统。
2.根据权利要求1所述的基于网关的海量数据处理方法,其特征在于,在步骤:把每个终端定义成一个对象,创建对象的结构成员、结构变量、接收函数指针、发送函数指针之后,具体包括以下步骤:
步骤一,创建对象,网关多进程启动;
步骤二,终端同时海量链接、接入的处理;
步骤三,接收报文,对基本命令信息和传输数据信息进行分类并行处理;
步骤四,报文解析及记录入库;
步骤五,请求命令下发,送入发送队列,进行并发。
3.根据权利要求2所述的基于网关的海量数据处理方法,其特征在于,所述步骤三具体包括:
终端接入处理并接收报文;
将报文信息分成两类:基本命令信息和传输数据信息;
对于传输数据信息,送入接收队列,等待解析;同时并行处理基本命令信息的确认。
4.根据权利要求3所述的基于网关的海量数据处理方法,其特征在于,所述基本命令信息包括终端的登陆信息、心跳信息、上线信息、下线信息、流量统计信息及标志信息;所述传输数据信息包含数据信息和事件记录。
5.根据权利要求2所述的基于网关的海量数据处理方法,其特征在于,所述步骤四具体包括:
对接收报文的传输数据信息进行解析,并判断报文解析是否处理,若判断为是,则进入下面的步骤;若判断为否,则继续对报文进行解析处理;
将解析后的信息记录入库并向上级系统上报信息。
6.根据权利要求2所述的基于网关的海量数据处理方法,其特征在于,所述步骤五具体包括:
将解析后的信息记录入库后,形成应答报文,送入发送队列,进行并发;
请求下发命令;
当基本命令信息得到确认并确认报文入发送队列时,向终端发送队列并发报文;
判断该终端是否第一次接入,若判断结果为是,则返回所述步骤一;若判断结果为否,返回所述步骤二。
7.根据权利要求2所述的基于网关的海量数据处理方法,其特征在于,在所述报文接收的过程中,采用了Linux下的EPOLL技术来实现一个端口上接入上万个以上的链接,专门使用一个线程来处理同时接入事件,处理临界区数据。
8.根据权利要求6所述的基于网关的海量数据处理方法,其特征在于,所述报文并发处理的过程,由线程控制发送队列,同时分派给多个终端对象,每个终端对象独立发送。
CN2011101565960A 2011-06-13 2011-06-13 基于网关的海量数据处理方法 Pending CN102215181A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011101565960A CN102215181A (zh) 2011-06-13 2011-06-13 基于网关的海量数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011101565960A CN102215181A (zh) 2011-06-13 2011-06-13 基于网关的海量数据处理方法

Publications (1)

Publication Number Publication Date
CN102215181A true CN102215181A (zh) 2011-10-12

Family

ID=44746317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011101565960A Pending CN102215181A (zh) 2011-06-13 2011-06-13 基于网关的海量数据处理方法

Country Status (1)

Country Link
CN (1) CN102215181A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660524A (zh) * 2018-12-04 2019-04-19 贵州电网有限责任公司 一种基于Linux内核的epoll大并发数据通信接系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1852209A (zh) * 2006-05-31 2006-10-25 北京和利时系统工程股份有限公司 一种分布式控制系统中的远程过程调用方法及系统
US20090222655A1 (en) * 2006-02-03 2009-09-03 Gemplus Remote access to a mass memory and a security memory in a portable communicating object
CN101583074A (zh) * 2009-06-18 2009-11-18 杭州网间信息技术有限公司 基于3g通信远程数据采控网关

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090222655A1 (en) * 2006-02-03 2009-09-03 Gemplus Remote access to a mass memory and a security memory in a portable communicating object
CN1852209A (zh) * 2006-05-31 2006-10-25 北京和利时系统工程股份有限公司 一种分布式控制系统中的远程过程调用方法及系统
CN101583074A (zh) * 2009-06-18 2009-11-18 杭州网间信息技术有限公司 基于3g通信远程数据采控网关

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660524A (zh) * 2018-12-04 2019-04-19 贵州电网有限责任公司 一种基于Linux内核的epoll大并发数据通信接系统

Similar Documents

Publication Publication Date Title
CN106844198B (zh) 一种分布式调度自动化测试平台及方法
CN101873005B (zh) 一种实现电能量均衡采集的方法
CN112565415B (zh) 一种基于云边协同的跨地域资源纳管系统和纳管方法
CN112118315A (zh) 数据处理系统、方法、装置、电子设备和存储介质
CN105024855A (zh) 分布式集群管理系统和方法
CN103138995A (zh) 服务器性能测试的方法和装置
CN109412878A (zh) 多租户业务接入实现方法、装置及电子设备
US20110113014A1 (en) Methodology of Applying Storage and Logistics Center Model to Achieve Business Data Exchange between Systems
CN101022367A (zh) 网络管理的方法和系统
CN103607302A (zh) 故障信息上报方法、监控设备及管理设备
CN103095688A (zh) 客户端控制方法和服务器
CN108924228B (zh) 基于边缘计算的工业互联网优化系统
CN111797173B (zh) 联盟链共享系统、方法、装置、电子设备及存储介质
CN103188160A (zh) 一种流量控制方法和转发单元
CN103067486A (zh) 基于PaaS平台的大数据处理方法
CN112751936A (zh) 联盟链系统及联盟链系统部署方法
CN102215181A (zh) 基于网关的海量数据处理方法
CN116304390A (zh) 时序数据处理方法、装置、存储介质及电子设备
CN104486250A (zh) 一种面向Deadline满足时间确定性的调度方法
CN204425400U (zh) 应用服务器系统
CN111510440A (zh) 一种数据交换方法及系统
CN105429795A (zh) 一种告警监控系统及方法
CN112134833B (zh) 一种虚实融合的流欺骗防御方法
CN115499432A (zh) 家庭终端算力资源管理系统及算力资源调度方法
CN114237914A (zh) 一种基于混合云管理调度系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20111012