CN102843389B - 基于事件驱动的web系统和方法 - Google Patents
基于事件驱动的web系统和方法 Download PDFInfo
- Publication number
- CN102843389B CN102843389B CN201110167365.XA CN201110167365A CN102843389B CN 102843389 B CN102843389 B CN 102843389B CN 201110167365 A CN201110167365 A CN 201110167365A CN 102843389 B CN102843389 B CN 102843389B
- Authority
- CN
- China
- Prior art keywords
- event
- client
- server
- module
- socket
- 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.)
- Ceased
Links
Abstract
本发明提供了一种基于事件驱动的WEB系统和方法,通过在服务器中加入事件注册模块与事件监测模块,从而引入了服务器端基于客户端事件请求驱动的服务流程,从而使得客户端不需周而复始的向服务器端请求数据,仅通过向服务器端注册其所关心的所有事件即可实时获取服务器端的数据和状态变化。通过把客户端的主动查询变为了被动的事件接收,客户端的事件实时性得到显著提高,此外因为没有了原有客户端周期性的查询服务器,大大降低了客户端对硬件性能的要求,也大大降低了服务器端对资源的占用,节约了服务器资源,使得相同硬件配置的服务器能够承载更多的客户端应用。而且最终客户端的业务逻辑实现变得更加简单和容易理解。
Description
技术领域
本发明涉及一种基于计算机的实时通讯系统及其方法,尤其是指一种基于事件驱动的WEB系统和方法。
背景技术
随着通讯技术的不断发展,近些年来基于WEB架构开发的各类业务系统,因为其无需安装客户端软件,且系统开发周期短,可选择的技术多等特点,其开发逐渐成为应用系统的主流。
现有WEB技术架构是由服务器端跟客户端组成,服务器端跟客户端通过网络相连互为通讯,虽架构简单但同样也受限于该种WEB技术架构,到目前为止公开和普遍使用的方法仍然无法真正实现基于事件驱动的系统和方法。如果系统需要实时显示或者触发事件,当前只能采用客户端定时查询的办法。参见图1,以呼叫中心系统的集中控制和调度为例,该类服务流程如下:
1)、客户端A定期(比如每隔1秒)向服务器端发送请求,请求服务器端将所有座席分机的当前状态返回给客户端A;
2)、服务器端收到客户端的请求后,将其所管理的所有分机的当前状态(比如正在振铃、通话中、空闲、不可用等)打包成某种数据码流格式,通过响应客户端请求的方式发送给客户端A;
对于客户端A来说,上述两步骤周而复始,当客户端增加后,例如增加了客户端B、客户端C,则客户端B、客户端C也需以同样的流程向服务器端请求数据而后服务器端再返回相应数据。
可见,现有业务流程中存在以下特点:
1)、服务器端的数据返回是由客户端触发的,只有客户端请求数据,服务器端才会发送响应数据给客户端;
2)、多个客户端需要分别给服务器发送请求数据,否则客户端将得不到服务器端的数据更新状态;
3)、客户端的查询请求周期决定了其数据更新的及时性,如果需要更及时的获取服务器端数据的更新,就需要更加频繁的向服务器端发送查询请求,但这样又同时加重了服务器端的负担,尤其是客户端数据变多时,服务器端的负担将成倍数关系增长,限制了服务器端的系统性能与容量。
这种做法存在以下几个明显的缺点:
1)、系统效率低下。客户端要不断的轮询向服务器查询其所需数据以及状态变化情况,而轮询查询间隔如果时间太短(比如1秒或者更短)将导致客户端和服务器端资源和计算能力被大量占用,尤其是当客户端数量逐渐增多时,服务器端的资源占用情况将成倍数关系迅速增长。而如果查询间隔太长又将导致服务器端的数据更新和状态变化不能实时在客户端进行处理。
2)、系统容量有限。因为客户端的这种不断轮询查询,随着客户端数量的增加,服务器端需要耗费更多的资源和处理能力来进行不断的响应,这将使得服务器端的资源和处理能力被严重浪费,导致整个系统的容量和处理能力受限。
发明内容
本发明的目的在于克服了上述缺陷,提供一种服务器可在事件驱动下主动发送客户端对应数据的基于事件驱动的WEB系统和方法。
本发明的目的是这样实现的:一种基于事件驱动的WEB系统,它包括服务器和经由网络相连的多个远端客户端,其特征在于:所述服务器包括
核心处理模块,用于处理核心业务;
身份验证模块,用于判断发送通讯请求的客户端的身份是否合法;
Socket监听模块,用于监听一个网络的Socket端口号,等待网络中客户端发起通讯请求;
Socket通讯模块、用于向服务器端的特定端口发起Socket连接请求,建立网络中客户端与服务器端的Socket通讯连接;
事件注册模块,用于提供一个对应客户端的管理列表,列表中注册记录客户端所需关注的事件内容;
事件监测模块,用于对应管理列表中事件内容实时监测服务器上对应事件的变动情况,一旦发生变动,就将该变动事件形成数据经由Socket通讯模块发送至对应客户端;
上述身份验证模块与核心处理模块相连;上述Socket监听模块与Socket通讯模块相连并连入外部网络,Socket通讯模块也与外部网络相连,并分别连接事件注册模块、事件监测模块及服务器的身份验证模块;所述事件注册模块、事件监测模块分别连接核心处理模块。
本发明还涉及一种对应上述系统的事件驱动方法,它包括步骤,
A)、监听选定Socket端口号,一旦收到客户端请求则与服务器内发起Socket连接请求,然后建立与客户端的Socket通讯连接;步骤中的Socket通讯连接由Flex或HTML5实现;
B)、获取客户端信息,对其进行身份认证,通过验证则继续,否则返回错误信息;
C)、接收客户端发送的事件注册信息并写入事件注册管理列表中;
所述事件注册管理列表通过链表或hash表方式管理;
D)、保持客户端与服务器的Socket通讯连接,根据事件注册管理列表查询服务器是否发生相应事件,若发生事件则请求服务器将当下对应事件形成数据通过Socket连接发送给客户端;
E)、客户端接收到服务器的事件数据后解析,更新客户端对应数据的状态。
相比于常见的WEB系统和服务方法,本发明的有益效果在于通过在服务器中加入事件注册模块与事件监测模块,从而引入了服务器端基于客户端事件请求驱动的服务流程,从而使得客户端不需周而复始的向服务器端请求数据,仅通过向服务器端注册其所关心的所有事件即可实施获取服务器端的数据和状态变化。通过把客户端的主动查询变为了被动的事件接收,客户端的事件实时性得到显著提高,此外因为没有了原有客户端周期性的查询服务器,大大降低了客户端对硬件性能的要求,也大大降低了服务器端对资源的占用,节约了服务器资源,使得相同硬件配置的服务器能够承载更多的客户端应用。而且最终客户端的业务逻辑实现变得更加简单和容易理解。
附图说明
下面结合附图详述本发明的具体结构:
图1为传统呼叫中心系统的集中控制和调度中心的服务流程图;
图2为本发明基于事件驱动的WEB系统;
图3为本发明WEB系统的基于事件驱动的方法流程图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参阅图2,本发明一种基于事件驱动的WEB系统,它包括服务器和经由网络相连的多个远端客户端。所述服务器包括有核心处理模块、身份验证模块、Socket监听模块、Socket通讯模块、事件注册模块及事件监测模块。其中Socket监听模块与Socket通讯模块相连并连入外部网络,Socket通讯模块也与外部网络相连,Socket通讯模块还分别连接事件注册模块、事件监测模块及身份验证模块;所述事件监测模块连接核心处理模块。
服务器的模块作用如下:
核心处理模块,用于处理核心业务,核心业务包括诸如呼叫中心应用中,各座席对应事件的内容、状态等处理,同时实时更新该类事件内容及事件状态;
身份验证模块,用于判断发送通讯请求的客户端的身份是否合法(例如客户端是否经过注册、是否为系统认可用户等);
Socket监听模块,用于监听一个网络的Socket端口号,等待网络中客户端发起通讯请求;
Socket通讯模块、用于建立服务器端与网络中客户端的Socket通讯连接;
事件注册模块,用于提供一个对应客户端的管理列表,列表中注册记录客户端所需关注的事件内容;
事件监测模块,用于对应管理列表中事件内容实时监测服务器上对应事件的变动情况,一旦发生变动,就将该变动事件形成数据经由Socket通讯模块发送至对应客户端。
此处设置的事件监测模块也可以是设置在服务器外部的,其主要作用是实时更新服务器中的一些关键状态(这些状态是客户端所关心的),需要注意的是事件监测模块应当与服务器在同一个硬件服务器上,以便实现对应服务。
参见图3,本发明还涉及一种对应上述系统的事件驱动方法,它包括步骤:
A)、服务器监听选定Socket端口号,一旦收到来自网络中客户端请求则建立与客户端的Socket通讯连接;步骤中客户端由Flex或HTML5实现Socket通讯连接;
B)、服务器获取客户端信息,对其进行身份认证,通过验证则继续,否则返回错误信息;
C)、服务器接收客户端发送的事件注册信息并写入事件注册管理列表中;
客户端程序向服务器发送注册其所关心的一个或者多个事件(比如在呼叫中心中通常对应为某座席分机的事件内容或事件状态改变情况);
所述事件注册管理列表通过链表或hash表方式管理;
D)、服务器保持与客户端的Socket通讯连接,并根据事件注册管理列表查询服务器是否发生相应事件的变动,若发生事件则请求服务器将当下对应事件形成数据通过Socket连接发送给客户端;
E)、客户端接收到服务器的事件数据后解析,更新客户端对应数据的状态。
实施例:
本实施例是以呼叫中心或者调度机产品的座席分机实时监控与状态显示为例的。一种事件驱动方法,包括步骤:
1)、服务器启动后,监听一个特定的Socket端口号;
2)、客户端程序启动后,通过Flex或者HTML5等可以建立Socket连接的Web技术,向服务器端的特定端口发起Socket连接请求;
3)、服务器端通过某种身份认证来验证客户端的连接合法性,如果连接合法则接受客户端的连接请求;
4)、客户端向服务器端发送事件注册消息,本例中,客户端向服务器端注册分机状态改变事件,注册消息可以如下面所示:
Proxyaction:addcaptureevent
Event:NewState
5)、如果注册成功,服务器端向客户端返回注册成功消息;
6)、服务器端与客户端的Socket连接一直保持,如果服务器端发现有此客户端注册的事件发生,本例中为任意分机的状态发生改变,那么服务器端通过与客户端的Socket连接,将状态改变事件通过码流的形式发送给客户端;
7)、客户端接收到服务器端发来的事件后,根据消息中的信息,更新客户端显示的数据或者状态。
上述方法需要说明的几点:
1)、客户端可以有多个,多个客户端在和服务器端连接后,服务器端通过客户端管理列表对客户端进行管理;
2)、每个客户端可以单独向服务器端注册事件消息,且每个客户端可以同时注册多个事件消息。
综上所述,本发明所提出的WEB系统及基于事件驱动方法与原有技术不同点的改进点包括:
1)、客户端要获取服务器端的数据和状态变化,不需要再周而复始的向服务器端请求数据,而是向服务器端注册其所关心的所有事件;
2)、服务器端在有状态变化时,查询其状态机注册的客户端事件,并主动向注册了此次状态变化事件的客户端发生事件消息,通知客户端的变化;
应此本发明所提出的技术方案具有如下几个显著和有益效果:
1)、因为把客户端的主动查询变为了被动的事件接收,那么客户端的事件实时性得到显著提高;
2)、因为没有了周期性的查询,大大降低了客户端对硬件性能的要求,也大大降低了服务器端对资源的占用,节约了服务器资源,使得相同硬件配置的服务器能够承载更多的客户端应用。
3)、客户端的业务逻辑实现变得更加简单和容易理解。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.一种基于事件驱动的WEB系统,它包括服务器和经由网络相连的多个远端客户端,其特征在于:所述服务器包括
核心处理模块,用于更新事件内容及事件状态;
身份验证模块,用于判断发送通讯请求的客户端的身份是否合法;
Socket监听模块,用于监听网络的Socket端口号,等待网络中客户端发起通讯请求;
Socket通讯模块,用于建立与网络中客户端的Socket通讯连接;
事件注册模块,用于提供一个对应客户端的管理列表,列表中注册记录客户端所需关注的事件内容;
事件监测模块,用于对应管理列表中事件内容实时监测核心处理模块上对应事件的变动情况,一旦发生变动,就将该变动事件形成数据经由Socket通讯模块发送至对应客户端;
上述Socket监听模块与Socket通讯模块相连并连入外部网络,Socket通讯模块也与外部网络相连,Socket通讯模块还分别连接事件注册模块、事件监测模块及服务器的身份验证模块;所述事件监测模块连接核心处理模块。
2.一种用于权利要求1所述系统的事件驱动方法,其特征在于:它包括步骤,
A)、服务器监听选定Socket端口号,一旦收到客户端请求则建立与客户端的Socket通讯连接;
B)、服务器获取客户端信息,对其进行身份认证,通过验证则继续,否则返回错误信息;
C)、服务器接收客户端发送的事件注册信息并写入事件注册管理列表中;
D)、服务器保持与客户端的Socket通讯连接,并根据事件注册管理列表查询是否发生相应事件的变动,若发生事件则请求服务器将当下对应事件形成数据通过Socket连接发送给客户端;
所述步骤D后还包括步骤,客户端接收到服务器的事件数据后解析,更新客户端对应数据的状态;
所述事件注册管理列表通过链表方式管理。
3.如权利要求2所述的事件驱动方法,其特征在于:所述步骤A中客户端通过Flex实现Socket通讯连接。
4.如权利要求2所述的事件驱动方法,其特征在于:所述步骤A中客户端通过HTML5实现Socket通讯连接。
5.如权利要求2所述的事件驱动方法,其特征在于:所述事件注册管理列表通过hash表方式管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110167365.XA CN102843389B (zh) | 2011-06-21 | 2011-06-21 | 基于事件驱动的web系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110167365.XA CN102843389B (zh) | 2011-06-21 | 2011-06-21 | 基于事件驱动的web系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102843389A CN102843389A (zh) | 2012-12-26 |
CN102843389B true CN102843389B (zh) | 2015-08-26 |
Family
ID=47370449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110167365.XA Ceased CN102843389B (zh) | 2011-06-21 | 2011-06-21 | 基于事件驱动的web系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102843389B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716371A (zh) * | 2013-10-31 | 2014-04-09 | 国家电网公司 | 一种Web实时数据主动推送方法 |
CN103929497B (zh) * | 2014-04-30 | 2017-09-15 | 天脉聚源(北京)传媒科技有限公司 | 一种实时推送消息的方法及服务器 |
CN107656809A (zh) * | 2016-07-25 | 2018-02-02 | 武汉票据交易中心有限公司 | 一种票据交易的流程实现方法及相关系统 |
CN111600955B (zh) * | 2020-05-18 | 2023-03-28 | 山东汇贸电子口岸有限公司 | 一种基于WebSocket到前台的处理方法及系统 |
CN113194150B (zh) * | 2021-05-12 | 2023-04-07 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种长连接推送服务处理系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1870508A (zh) * | 2005-05-25 | 2006-11-29 | 中兴通讯股份有限公司 | 一种web网管系统中显示实时数据的方法 |
CN101072385A (zh) * | 2007-06-27 | 2007-11-14 | 蒋晓海 | 一种手机以Socket直连方式实现移动即时通信的方法 |
CN101651707A (zh) * | 2009-09-22 | 2010-02-17 | 西安交通大学 | 一种网络用户行为日志自动获取方法 |
CN101894167A (zh) * | 2010-07-26 | 2010-11-24 | 武汉大学 | 用户事件模型驱动的网络地图服务方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6249570B1 (en) * | 1999-06-08 | 2001-06-19 | David A. Glowny | System and method for recording and storing telephone call information |
CN1976325A (zh) * | 2006-12-13 | 2007-06-06 | Ut斯达康通讯有限公司 | 一种可实现即时消息通信的网络系统及其通讯方法 |
CN101404627B (zh) * | 2008-11-13 | 2011-12-14 | 腾讯科技(深圳)有限公司 | 即时通讯系统更新联系人状态的方法及即时通讯系统 |
-
2011
- 2011-06-21 CN CN201110167365.XA patent/CN102843389B/zh not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1870508A (zh) * | 2005-05-25 | 2006-11-29 | 中兴通讯股份有限公司 | 一种web网管系统中显示实时数据的方法 |
CN101072385A (zh) * | 2007-06-27 | 2007-11-14 | 蒋晓海 | 一种手机以Socket直连方式实现移动即时通信的方法 |
CN101651707A (zh) * | 2009-09-22 | 2010-02-17 | 西安交通大学 | 一种网络用户行为日志自动获取方法 |
CN101894167A (zh) * | 2010-07-26 | 2010-11-24 | 武汉大学 | 用户事件模型驱动的网络地图服务方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102843389A (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102843389B (zh) | 基于事件驱动的web系统和方法 | |
EP1744519B1 (en) | Information exchange system, management server, and method for reducing the network load | |
CN102385582B (zh) | 生产测试数据处理方法、服务器及系统 | |
CN109165024A (zh) | 一种运维平台自动部署和监控服务器系统的方法 | |
US20050278441A1 (en) | Coordinating use of independent external resources within requesting grid environments | |
US8570550B2 (en) | Method and system for remote management of print devices | |
CN113141383B (zh) | 设备信息订阅方法、客户端、服务器、系统及存储介质 | |
CN111478955B (zh) | 微服务注册方法、系统、装置和计算机可读存储介质 | |
CN102906730A (zh) | 用于被管理装置的共享心搏服务 | |
EP2621243B1 (en) | Method and system for configuring and managing third party software, and management server | |
CN110532077B (zh) | 任务处理方法、装置及存储介质 | |
CN102790781A (zh) | 一种中间件、带行业应用中间件的m2m系统及其应用方法 | |
CN112751847A (zh) | 接口调用请求的处理方法、装置、电子设备及存储介质 | |
CN102375894B (zh) | 一种管理不同类型文件系统的方法 | |
CN104750544A (zh) | 应用于分布式系统中的进程管理系统及进程管理方法 | |
JP5517463B2 (ja) | シンクライアントシステム、管理サーバおよびシンクライアント端末 | |
CN104038390A (zh) | 一种基于netlink的linux服务器集群统一外设事件监听方法 | |
CN106681861A (zh) | 一种新环境隔离的配置数据管理方法及系统 | |
CN112199353A (zh) | 一种数据处理方法及电力客户服务平台 | |
CN1697399A (zh) | 基于通用信息模型的网格监控系统 | |
CN110377324B (zh) | 一种信息化平台监控系统和构建方法 | |
CN115562757A (zh) | 数据处理方法、配置中心系统、电子设备及存储介质 | |
US9544214B2 (en) | System and method for optimized event monitoring in a management environment | |
CN100382493C (zh) | 一种实现业务的系统及方法 | |
US7797368B1 (en) | Managing a network of consumer-use computing devices |
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 | ||
IW01 | Full invalidation of patent right |
Decision date of declaring invalidation: 20160905 Decision number of declaring invalidation: 29994 Granted publication date: 20150826 |
|
IW01 | Full invalidation of patent right |