CN103166964B - 用于超级计算系统监控的前后端实时通信方法 - Google Patents
用于超级计算系统监控的前后端实时通信方法 Download PDFInfo
- Publication number
- CN103166964B CN103166964B CN201310071181.2A CN201310071181A CN103166964B CN 103166964 B CN103166964 B CN 103166964B CN 201310071181 A CN201310071181 A CN 201310071181A CN 103166964 B CN103166964 B CN 103166964B
- Authority
- CN
- China
- Prior art keywords
- request
- end proxy
- data
- proxy agent
- monitor message
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种用于超级计算系统监控的前后端实时通信方法,其具体流程为:(1)前端代理进行多组件请求融合;(2)前端代理发送请求;(3)后端代理接收请求;(4)后端代理挖掘信息变动,发送响应;(5)前端代理接收响应,更改组件数据集;(6)前端代理关闭,后端代理释放长连接。本发明可以减少前后端通信的长连接数目、降低单次通信数据量、保证监控软件的实时性。
Description
技术领域
本发明主要涉及到WEB监控软件前后端实时通信技术领域,特指一种用于超级计算系统监控的前后端实时通信方法。
背景技术
随着WEB技术的发展和成熟,基于WEB(B/S结构)的应用软件被广泛应用到了各个领域,其由运行在终端上的前端页面和运行在WEB服务器上的后端程序构成,用户通过WEB浏览器远程访问WEB服务器来获取前端页面,通过页面发送请求给后端程序,并接收来自后端的响应,完成交互功能。基于WEB的应用软件具有无需安装、并发性好、维护与升级方便等特点,充分满足了网络时代用户的需求。
超级计算系统WEB监控软件主要用于展示超级计算系统的硬件运行状态和资源使用情况,为管理员及时地发现问题、排除故障提供便利的人机交互接口。为了保证良好的可靠性、可用性和可服务性,超级计算系统对WEB监控软件的实时性要求很高。然而,随着应用需求的不断提升,超级计算系统规模越来越庞大,一个10P级超级计算系统中的主板数目动辄上万;同时,由于主板的构造越来越复杂,主板上各种模块的温度、功耗和电压等物理量都将形成监控信息,因此前后端之间单次通信的数据量也十分庞大。如何既保证监控信息展示的实时性,同时又不影响监控信息的完整性,是目前超级计算系统WEB监控软件面临的主要挑战之一。参见图1,为超级计算系统中监控子系统的体系结构图,其通常的实现方式为监控主板将收集各种主板实时监控信息通过监控网络汇总到管理服务器,并存储在管理服务器的本地数据库中;监控终端利用本地WEB浏览器从管理服务器的WEB服务器上载入监控软件的前端页面,然后通过页面向WEB服务器上的后端程序发送请求,获取监控信息,并显示到页面上。管理员通过WEB监控软件能够直观及时地发现整个系统在运行过程中出现的异常事件和错误信息,了解当前系统的资源使用情况。
参见图2,为现有WEB前后端通信方式的逻辑结构图,前端页面中每个组件和其对应的数据集会向后端程序分别发送请求,通常采用基于AJAX技术的拉模式或者推模式(COMET)。后端在收到请求后,访问数据库(拉模式),或者等待数据库更新(推模式)。当获取到前端需要的信息后,按照前端组件的显示格式将数据发送给前端,完成交互。现有的WEB监控软件的前后端通信方法主要包括基于AJAX查询的“拉模式”和维护COMET长连接的“推模式”。AJAX技术作为一种前后端异步通信方法,首先由WEB前端页面发送异步请求,当收到后端响应的数据后,刷新发出该异步请求的页面元素。由于AJAX技术需要前端发起请求,后端并不主动将更新数据实时地推送给前端,因此不能直接满足监控应用的需求。COMET技术是基于纯浏览器的“后端推”技术的简称,它通过后端维持HTTP长连接,实现更新数据的实时推送,很适合实时监控应用。然而COMET技术在大规模超级计算系统监控中面临网络通信开销过大,前端页面建立的长连接数目受限等问题。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种可以减少前后端通信的长连接数目、降低单次通信数据量、保证监控软件实时性的用于超级计算系统监控的前后端实时通信方法。
为解决上述技术问题,本发明采用以下技术方案:
一种用于超级计算系统监控的前后端实时通信方法,其具体流程为:
(1)前端代理进行多组件请求融合;
前端页面从WEB服务器载入后,前端代理中数据处理子模块收集需要建立长连接的页面组件的ID、所显示监控信息类型以及显示方式,再根据通信协议构造数据请求中内容;
(2)前端代理发送请求;
前端代理的通信子模块获取到数据处理子模块构建好的数据请求内容后,开始向后端代理发送请求;用一条HTTP连接将构建好的数据请求,用另一条HTTP连接周期性地发送“心跳”控制请求;
(3)后端代理接收请求;
后端代理的通信子模块收到请求后,对请求类型进行判断:
(3.1)如果为数据请求,则将线程阻塞,并将数据请求交由后端代理的数据处理子模块来处理;
(3.2)如果为“心跳”控制请求,则立即发送“OK”响应,以通知前端代理目前WEB后端代理运行良好;
(4)后端代理挖掘信息变动,发送响应;
后端代理的数据处理子模块从通信子模块获取到数据请求后,解析请求,并根据前端代理各个显示组件所展示的监控信息,监测相应数据库表格的更新情况,且仅挖掘信息变动后的变动数据发送给前端;
(5)前端代理接收响应,更改组件数据集;
前端代理的通信子模块对接收的响应类型进行判断:
(5.1)如果为“心跳”控制响应,则等待周期到达,继续发送心跳控制请求;
(5.2)如果为数据响应,则先将组装好的数据请求立即发送给后端代理,继续构建新的长连接,再将响应交由前端代理的数据处理子模块来处理;
前端代理的数据处理子模块解析数据响应后,将根据显示组件的需求修改或者添加对应的数据集,从而改变组件在页面上的显示;
(6)前端代理关闭,后端代理释放长连接;
前端代理关闭时,前端代理的通信子模块不再发送“心跳”控制请求,改为发送关闭控制请求;后端代理收到关闭控制请求,则立即结束等待数据库更新线程,释放分配给前端代理的资源。
作为本发明的进一步改进:
所述步骤(1)中,将多个显示组件的数据请求统一由前端代理发出;前端代理将首先调用数据处理子模块对每个需要维护长连接的显示组件的显示需求进行融合,再交由通信子代理来建立连接。
所述步骤(4)的具体流程为:
(4.1)如果发现不存在上一次获取监控信息的副本,说明是页面载入时第一次监控信息获取,因此立即构建相应的SQL查询命令从数据库中获取监控信息,根据前端代理需求量化后,按照协议构造数据响应,交由后端代理的通信子模块发送给前端代理,同时生成该次监控信息的副本;
(4.2)如果存在监控信息副本,则阻塞该线程,直到发现数据库相应表格有更新;一旦发现数据库更新,则立即通过SQL查询命令从数据库中获取新的监控信息,根据前端代理的需求量化,再与上一次的副本进行比较,找出已经修改的监控信息;最后按照协议将这些改变了监控信息构造成数据响应,交由后端代理的通信子模块发送给前端代理,同时生成该次监控信息的副本。
与现有技术相比,本发明的优点在于:
1、本发明的前后端实时通信方法改变了前端页面上每个监控信息展示组件均对应一个长连接的传统模式,将多个页面组件的数据请求统一由前端代理发出,尽可能的减少了前后端维持的长连接数目。
2、本发明针对大规模超级计算系统中后端传输数据量过大的问题,利用提出的前后端通信方法改变了后端严格按照前端页面组件的显示格式来组织数据响应的传统模式,当数据库有更新时,将比较先后两次监控信息,挖掘变动,仅仅将发生改变的状态推送到前端,进一步减少前后端通信的数据量。
3、本发明针对前后端存在单独关闭或出现故障而影响正常监控的问题,采用前后端通信方法改变了原有前后端通信中数据信息和控制信息使用同一HTTP连接的传统模式,而将控制请求和数据请求分开使用不同的HTTP连接。控制请求将不会被阻塞,后端会立即对其做出响应;而当收到数据请求,后端将阻塞线程,等待数据库更新。
附图说明
图1是超级计算系统中监控子系统体系的结构示意图。
图2是现有前后端通信方式的逻辑结构示意图。
图3是本发明的逻辑结构示意图。
图4是本发明前后端通信流程中前端发起请求的时序示意图。
图5是本发明前后端通信流程中后端响应请求的时序示意图。
图6是本发明前后端通信流程中前端处理响应的时序示意图。
图7是本发明前后端通信流程中前端页面关闭的时序示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图3所示,本发明用于超级计算系统监控的前后端实时通信方法,是通过位于终端的前端代理和位于WEB服务器上的后端代理两个程序模块协同实现的,二者之间遵循通信协议进行通信。本发明主要是针对超级计算系统WEB监控软件的前后端通信中存在长连接数目受限和单次通信数据量过大的问题,一方面利用前端代理组合多个前端组件的请求,减少了长连接数目;另一方面通过后端代理挖掘出先后两次实时监控中监控信息的变动,降低了单次通信的数据量,能够有效解决超级计算系统WEB监控软件中监控信息展示的实时性和数据完整性之间的矛盾,提高大规模超级计算系统的可靠性、可用性和可服务性。
本发明在WEB前端代码中构建前端代理,其由前端数据处理子模块和前端通信子模块组成。前端数据处理子模块主要负责在发送数据请求前对前端页面组件的长连接请求进行合并,以及在收到数据响应后将监控信息分发到各个组件的数据集中。前端通信子模块主要负责发送请求和接收响应,具体包括发送数据处理子模块组合后的数据请求、发送周期性“心跳”控制请求以及当WEB前端关闭时发送关闭后端长连接的控制请求。在WEB后端程序中构建后端代理,其由后端数据处理子模块和后端通信子模块组成。后端数据处理子模块主要负责解析收到数据请求、监测后端监控信息数据库的更新情况、发送SQL命令获取后端数据库的监控信息,以及挖掘先后两次数据库监控信息的变动。后端通信子模块则主要负责接收请求和发送响应,具体包括响应“心跳”控制请求和关闭控制请求、受理数据请求、阻塞后端线程。
其中,上述通信协议定义了前后端通信的消息格式,包括由前端页面发起的请求消息格式和后端程序回复的响应消息格式,在代码中通过JSON或XML语言描述实现。
前端页面的请求消息格式具体如下:
RqFn | RqTime | RqData |
后端程序的响应消息格式如下:
RsFn | RsTime | RsData |
本发明的具体流程为:
(1)前端代理进行多组件请求融合;
前端页面从WEB服务器载入后,前端代理中数据处理子模块收集需要建立长连接的页面组件的ID、所显示监控信息类型以及显示方式(刷新和添加),再根据通信协议,利用JSON或XML描述语言来构造数据请求中内容,并将请求内容交给前端代理的通信子模块(参见图4)。
(2)前端代理发送请求;
前端代理的通信子模块获取到数据处理子模块构建好的数据请求内容后,开始向后端代理发送请求。请求方式都是采用AJAX技术,不阻塞当前页面的操作(参见图4)。
用一条HTTP连接将构建好的数据请求,用另一条HTTP连接周期性地发送“心跳”控制请求,周期按用户需求进行设置,假设为T。
(3)后端代理接收请求;
后端代理的通信子模块收到请求后,对请求类型进行判断(参见图5):
(3.1)如果为数据请求,则将线程阻塞,并将数据请求交由后端代理的数据处理子模块来处理。
(3.2)如果为“心跳”控制请求,则立即发送“OK”响应,以通知前端代理目前WEB后端代理运行良好。
(4)后端代理挖掘信息变动,发送响应;
后端代理的数据处理子模块从通信子模块获取到数据请求后,解析请求,并根据前端代理各个显示组件所展示的监控信息,监测相应数据库表格的更新情况(参见图5):
(4.1)如果发现不存在上一次获取监控信息的副本,说明是页面载入时第一次监控信息获取,因此立即构建相应的SQL查询命令从数据库中获取监控信息,根据前端代理需求量化后,按照协议构造数据响应,交由后端代理的通信子模块发送给前端代理,同时生成该次监控信息的副本;
(4.2)如果存在监控信息副本,则阻塞该线程,直到发现数据库相应表格有更新。一旦发现数据库更新,则立即通过SQL查询命令从数据库中获取新的监控信息,根据前端代理的需求量化,再与上一次的副本进行比较,找出已经修改的监控信息。最后按照协议将这些改变了监控信息构造成数据响应,交由后端代理的通信子模块发送给前端代理,同时生成该次监控信息的副本。
(5)前端代理接收响应,更改组件数据集;
前端代理的通信子模块对接收的响应类型进行判断(参见图6):
(5.1)如果为“心跳”控制响应,则等待周期T到达,继续发送心跳控制请求;
(5.2)如果为数据响应,则先将组装好的数据请求立即发送给后端代理,继续构建新的长连接,再将响应交由前端代理的数据处理子模块来处理。
前端代理的数据处理子模块解析数据响应后,将根据显示组件的需求修改或者添加对应的数据集,从而改变组件在页面上的显示。
(6)前端代理关闭,后端代理释放长连接;
前端代理关闭时,前端代理的通信子模块不再发送“心跳”控制请求,改为发送关闭控制请求。后端代理收到关闭控制请求,则立即结束等待数据库更新线程,释放分配给前端代理的资源(参见图7)。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (3)
1.一种用于超级计算系统监控的前后端实时通信方法,其特征在于,具体流程为:
(1)前端代理进行多组件请求融合;即,前端页面从WEB服务器载入后,前端代理中数据处理子模块收集需要建立长连接通信的页面组件的ID、所显示监控信息类型以及显示方式,再根据通信协议构造数据请求中内容;
(2)前端代理发送请求;即,前端代理的通信子模块获取到数据处理子模块构建好的数据请求内容后,开始向后端代理发送请求;用一条HTTP连接构建好的数据请求,用另一条HTTP连接周期性地发送“心跳”控制请求;
(3)后端代理接收请求;即,后端代理的通信子模块收到请求后,对请求类型进行判断:
(3.1)如果为数据请求,则将线程阻塞,并将数据请求交由后端代理的数据处理子模块来处理;
(3.2)如果为“心跳”控制请求,则立即发送“OK”响应,以通知前端代理目前WEB后端代理运行良好;
(4)后端代理挖掘信息变动,发送响应;即,
后端代理的数据处理子模块从通信子模块获取到数据请求后,解析请求,并根据前端代理各个显示组件所展示的监控信息,监测相应数据库表格的更新情况,且仅挖掘信息变动后的变动数据发送给前端代理;
(5)前端代理接收响应,更改组件数据集;即,前端代理的通信子模块对接收的响应类型进行判断:
(5.1)如果为“心跳”控制响应,则等待周期到达,继续发送心跳控制请求;
(5.2)如果为数据响应,则先将组装好的数据请求立即发送给后端代理,继续构建新的长连接通信,再将响应交由前端代理的数据处理子模块来处理;
前端代理的数据处理子模块解析数据响应后,将根据显示组件的需求修改或者添加对应的数据集,从而改变组件在页面上的显示;
(6)前端代理关闭,后端代理释放长连接通信;即,前端代理关闭时,前端代理的通信子模块不再发送“心跳”控制请求,改为发送关闭控制请求;后端代理收到关闭控制请求,则立即结束等待数据库更新线程,释放分配给前端代理的资源。
2.根据权利要求1所述的用于超级计算系统监控的前后端实时通信方法,其特征在于,所述步骤(1)中,将多个显示组件的数据请求统一由前端代理发出;前端代理将首先调用数据处理子模块对每个需要维护长连接通信的显示组件的显示需求进行融合,再交由通信子代理来建立连接。
3.根据权利要求1所述的用于超级计算系统监控的前后端实时通信方法,其特征在于,所述步骤(4)的具体流程为:
(4.1)如果发现不存在上一次获取监控信息的副本,说明是页面载入时第一次监控信息获取,因此立即构建相应的SQL查询命令从数据库中获取监控信息,根据前端代理需求量化后,按照协议构造数据响应,交由后端代理的通信子模块发送给前端代理,同时生成该次监控信息的副本;
(4.2)如果存在监控信息副本,则阻塞该线程,直到发现数据库相应表格有更新;一旦发现数据库更新,则立即通过SQL查询命令从数据库中获取新的监控信息,根据前端代理的需求量化,再与上一次的副本进行比较,找出已经修改的监控信息;最后按照协议将这些改变了监控信息构造成数据响应,交由后端代理的通信子模块发送给前端代理,同时生成该次监控信息的副本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310071181.2A CN103166964B (zh) | 2013-03-06 | 2013-03-06 | 用于超级计算系统监控的前后端实时通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310071181.2A CN103166964B (zh) | 2013-03-06 | 2013-03-06 | 用于超级计算系统监控的前后端实时通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103166964A CN103166964A (zh) | 2013-06-19 |
CN103166964B true CN103166964B (zh) | 2014-05-14 |
Family
ID=48589703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310071181.2A Active CN103166964B (zh) | 2013-03-06 | 2013-03-06 | 用于超级计算系统监控的前后端实时通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103166964B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302008B (zh) * | 2016-08-05 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 数据更新方法和装置 |
CN107491970B (zh) * | 2017-08-17 | 2021-04-02 | 北京三快在线科技有限公司 | 实时反作弊检测监控方法和系统以及计算设备 |
CN109784718A (zh) * | 2019-01-14 | 2019-05-21 | 四川长虹电器股份有限公司 | 一种采用多代理边缘计算的离散制造过程调度系统及方法 |
CN111162879A (zh) * | 2019-12-23 | 2020-05-15 | 五八有限公司 | 一种数据传输方法、装置、电子设备及存储介质 |
CN112099771A (zh) * | 2020-11-18 | 2020-12-18 | 浙江口碑网络技术有限公司 | 一种数据处理方法、装置、电子设备以及存储介质 |
CN112448851A (zh) * | 2020-11-20 | 2021-03-05 | 天翼电子商务有限公司 | 一种分布式系统的弹性心率通信设计方法 |
CN115242764B (zh) * | 2022-07-21 | 2023-10-27 | 平安科技(深圳)有限公司 | 针对前端的多端通信方法、系统、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035880A (zh) * | 2010-11-02 | 2011-04-27 | 中兴通讯股份有限公司 | 一种保持连接的方法及装置 |
CN102387206A (zh) * | 2011-10-20 | 2012-03-21 | 镇江睿泰信息科技有限公司 | 一种Web服务并发请求合成方法及系统 |
CN102868759A (zh) * | 2012-09-28 | 2013-01-09 | 方正国际软件有限公司 | 服务器控制浏览器界面数据刷新的系统及其方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7003528B2 (en) * | 1998-02-13 | 2006-02-21 | 3565 Acquisition, Llc | Method and system for web management |
-
2013
- 2013-03-06 CN CN201310071181.2A patent/CN103166964B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035880A (zh) * | 2010-11-02 | 2011-04-27 | 中兴通讯股份有限公司 | 一种保持连接的方法及装置 |
CN102387206A (zh) * | 2011-10-20 | 2012-03-21 | 镇江睿泰信息科技有限公司 | 一种Web服务并发请求合成方法及系统 |
CN102868759A (zh) * | 2012-09-28 | 2013-01-09 | 方正国际软件有限公司 | 服务器控制浏览器界面数据刷新的系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103166964A (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103166964B (zh) | 用于超级计算系统监控的前后端实时通信方法 | |
CN101252471B (zh) | 一种分布式自动化测试系统及其方法 | |
CN105205766B (zh) | 基于云平台的移动互联网医院就诊系统 | |
CN107122379B (zh) | 收集与本地存储的数据文件相关联的事务数据 | |
CN201682522U (zh) | 会话信息存储系统及应用服务器 | |
US11042503B1 (en) | Continuous data protection and restoration | |
US11579981B2 (en) | Past-state backup generator and interface for database systems | |
US20200019543A1 (en) | Method, apparatus and device for updating data, and medium | |
CN108809972A (zh) | 一种基于开源生态系统的物联网综合实验及应用开发平台及架构 | |
CN104050261A (zh) | 基于Storm的可变逻辑的通用数据处理系统及方法 | |
CN107295064A (zh) | 基于web的组态型远程监控方法、电子设备及存储介质 | |
CN101873005A (zh) | 一种实现电能量均衡采集的方法 | |
CN109032587B (zh) | 一种数据流管理框架、方法、终端设备及存储介质 | |
CN109413140A (zh) | Pacs服务器远程自动升级的方法 | |
CN104156300A (zh) | 日志管理系统和日志管理方法 | |
CN112199442B (zh) | 分布式批量下载文件方法、装置、计算机设备及存储介质 | |
CN105337923A (zh) | 数据分发方法和系统及数据发送装置和数据接收装置 | |
CN103079020A (zh) | 终端控制系统和终端控制方法 | |
CN104615489A (zh) | 一种多节点数据交互的实现方法 | |
CN104517181A (zh) | 一种核电站企业内容管理系统及方法 | |
CN105354328A (zh) | 一种解决NoSQL数据库并发访问冲突的系统及方法 | |
CN114610588A (zh) | 一种数据库性能分析方法、装置、电子设备和存储介质 | |
CN110321120A (zh) | 数据处理方法、数据处理装置及计算机可读存储介质 | |
Khelaifa et al. | A comparative analysis of adaptive consistency approaches in cloud storage | |
Xiao et al. | RETRACTED ARTICLE: Cloud platform wireless sensor network detection system based on data sharing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |