Genesys呼叫系统高可用性云计算监控系统及方法
技术领域
本发明涉及可用性云计算监控系统及方法,尤其是涉及Genesys呼叫系统高可用性云计算监控系统及方法。
背景技术
我国呼叫中心产业从上世纪九十年代中期开始,经过十多年的发展,已经初具规模,形成了一定的地域性和行业分布特点。呼叫中心是充分利用现代通讯与计算机技术,集语音、数据处理、计算机网络和数据库技术于一体,具有操作方式简单、业务种类丰富、服务专业化/智能化,以及能实时显示用户信息等特点,可以自动灵活地处理大量各种不同的电话呼入和呼出业务和服务的运营操作场所。然而分析客户体验以及应用需求可以看出,现有呼叫中心依然存在如下一些问题:
(1) 呼叫中心是车辆位置服务企业所必需的组成部分,然而其建设成本高,运维管理难度大。
(2) 呼叫中心多以特种服务电话号码的方式提供给客户,系统统一管理困难。
(3) 呼叫中心可提供的位置服务种类很多,却难以做到资源的共享利用。
(4) 呼叫中心出现突发事件、故障、遭受攻击时,系统的恢复是以天为单位的问题严重影响用户服务的体验。
云计算技术是当前产业界、科技界、学术界乃至全社会关注的焦点和热点,已被广泛认为是新一代信息技术变革和业务应用变革的核心。作为一种IT基础设施交付和使用模式,云计算技术使信息技术更加简单、易用,能够更好地支持工作、生活的进行。
呼叫系统和云计算平台是两种当前使用及研究广泛的课题,然而学术界和产业界在如何将呼叫系统与云计算平台结合充分利用两者的优势方面依然空白,本发明专利正是立足于这一方面进行研究的。
发明内容
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种Genesys呼叫系统高可用性云计算监控系统,其特征在于,包括:
事件队列层:以事件的形式表示呼叫系统中的任何行为,因而系统中存在各种不同类型的事件,为了对这些事件进行统一的管理和存储而设置了事件队列,事件驱动机制主要分为三个步骤:首先是将事件放入全局的事件队列中,然后按时间顺序从事件队列中取出事件,再通过事件指定的处理对象处理事件,在处理过程中可能会往事件队列中加入新的事件;
调度层:调度层是整个系统的核心,呼叫系统中任何行为都是以事件的形式表示的,系统中存在一个全局事件队列,用于保存系统中的所有事件,调度层主要负责对全局事件队列进行操作,该层能够保证事件有条不紊地被执行,系统中的事件主要分为三种:呼叫感知事件、呼叫策略事件、呼叫执行事件;
逻辑层:逻辑层是整个系统的决策者,由其来决定从事件队列中取出的事件的处理和运行流程,逻辑层在处理事件时调用该事件对应的执行单元,按照一定的流程以确保系统的正常运行;
功能层:功能层是整个系统的底层,根据逻辑层的处理单元制定相应的执行单元,在物理机、虚拟机、Genesys呼叫系统三个层次进行相应处理并与虚拟机管理平台进行交互,以提供对上述几层的支持,该层按功能可以分为三个层次:呼叫感知功能、呼叫策略功能、呼叫执行功能。
在上述的Genesys呼叫系统高可用性云计算监控系统,所述的逻辑层和功能层包括呼叫感知事件模块、呼叫策略事件模块和呼叫执行事件模块;系统根据呼叫感知事件模块感知到的结果生成呼叫感知事件,呼叫策略事件模块针对呼叫感知事件制定应对策略,生成呼叫策略事件,之后根据恢复策略由呼叫执行事件生成呼叫执行事件,交互虚拟机管理平台对虚拟机操作。
在上述的Genesys呼叫系统高可用性云计算监控系统,所述呼叫感知事件模块包括一个感知处理单元和感知执行单元,所述感知处理单元设置在逻辑层,感知执行单元设置在功能层;所述呼叫策略事件模块包括一个策略处理单元和策略执行单元,所述策略处理单元设置在逻辑层,策略执行单元设置在功能层;所述呼叫执行事件模块包括一个执行事件处理单元和一个执行事件执行单元,所述执行事件处理单元设置在逻辑层,执行事件执行单元设置在功能层。
一种Genesys呼叫系统高可用性云计算监控方法,包括以下步骤:
事件驱动步骤:调度层根据事件的优先级及时间戳实现事件调度过程,逻辑层的处理单元完成对事件的分析,并调用功能层的执行单元进行处理,最后由逻辑层向事件队列插入下一步要发生的事件;
基于上述事件驱动步骤,轮询感知步骤和主动监控步骤如下所示:
轮询感知步骤:采用轮询方式监测呼叫系统各个服务的运行状况,根据监测结果由呼叫感知事件模块生成呼叫感知事件,然后按照事件驱动步骤依次由呼叫策略事件模块和呼叫执行事件模块生成呼叫感知事件和呼叫执行事件;
无代理主动监控步骤:该步骤与轮询感知步骤的不同之处是当呼叫服务出现故障时,系统能够主动感知到服务异常并将呼叫策略事件插入到事件队列中,其后续步骤与轮询感知步骤流程类似。
在上述的Genesys呼叫系统高可用性云计算监控方法,所述的步骤1中,事件驱动步骤,包括以下子步骤:
步骤1:将呼叫系统中的事件放入全局的事件队列中;
步骤2:根据事件的优先级和时间戳,调度层从事件队列中取出相应事件;
步骤3:逻辑层处理单元根据事件的参数信息确定事件的类型并调用执行单元进行相应处理,在处理完成后向事件队列中插入下一步要发生的事件;
步骤4:重复步骤1至步骤3,使不断向事件队列中放入、取出事件并处理,整个事件机制保持不间断运行。
在上述的Genesys呼叫系统高可用性云计算监控方法,所述的轮询感知步骤,包括以下子步骤:
步骤1:调度层从事件队列中取出时间戳最小的呼叫感知事件,并将其发送给呼叫感知事件模块;
步骤2:呼叫感知事件模块的感知处理单元通过共享数据库获得相关信息,并使用虚拟机内部进程信息获取方法获取虚拟机内相关进程的信息;如果感知到呼叫应用异常,则构造相应的事件并插入到事件队列中;
步骤3:调度层从事件队列中获取到步骤2中生成的事件后,发送给呼叫策略事件模块;
步骤4:呼叫策略事件模块的策略处理单元查询数据库后获取需要的信息,并构造相应的呼叫策略事件,最后构造一个呼叫感知事件,将其插入到事件队列中;
步骤5:调度层将呼叫策略事件发送到呼叫执行事件模块;
步骤6:呼叫执行事件模块的执行事件处理单元根据收到的呼叫策略事件,构造相应的呼叫执行事件,并把该事件插入消息队列中;
步骤7:调度层将呼叫执行事件发送给虚拟机管理模块;
步骤8:虚拟机管理模块根据接收到的呼叫执行事件对虚拟机进行相关操作,并把执行结果发送到共享数据库中。
在上述的Genesys呼叫系统高可用性云计算监控方法,所述的无代理主动监控事件步骤,包括以下子步骤:
步骤1:当Genesys呼叫系统出现异常时,会产生相应的系统调用(例如服务异常中断系统删除后缀为.snapshot快照日志文件),通过监控系统API调用情况判断呼叫系统状态;
步骤2:如果检测到虚拟机内Genesys应用异常,则采用KVM虚拟机陷入机制使虚拟机管理器报告虚拟机的异常信息;
步骤3:若事件队列与Genesys应用在同一台物理机上,则直接把恢复虚拟机的呼叫策略事件插入到事件队列中;若两者不在同一台物理机上,则Genesys应用(TCP客户端)与事件队列(TCP服务器端)建立网络连接,将异常信息传送到服务器端,并插入到事件队列中;
步骤4:按照离散事件驱动机制的调度过程分析应用异常,呼叫执行事件模块向事件队列中插入呼叫执行事件(恢复一台相同虚拟机);
步骤5:调度层将呼叫执行事件发送给虚拟机管理模块;
步骤6:虚拟机管理模块根据接收到的应用执行事件对虚拟机进行相关操作,并把执行结果发送到共享数据库中。
因此,本发明具有如下优点:通过本系统的高可用性设计,当Genesys呼叫软件出现故障时,本系统能够及时、主动的监测到服务故障并对故障进行处理,从而减少系统的故障恢复时间和用户等待时间,提高系统的稳定性、可用性和故障恢复能力,改善用户满意度。
附图说明
图1本发明的系统框架图。
图2本发明的HA层结构图。
图3本发明的快速备份恢复策略流程图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
1、本发明主要包括:
事件队列层:本发明以事件的形式表示呼叫系统中的任何行为,因而系统中存在各种不同类型的事件,为了对这些事件进行统一的管理和存储而设置了事件队列。事件驱动机制主要分为三个步骤:首先是将事件放入全局的事件队列中,然后按时间顺序从事件队列中取出事件,再通过事件指定的处理对象处理事件,在处理过程中可能会往事件队列中加入新的事件。
调度层:调度层是整个系统的核心,呼叫系统中任何行为都是以事件的形式表示的,系统中存在一个全局事件队列,用于保存系统中的所有事件。调度层主要负责对全局事件队列进行操作,该层能够保证事件有条不紊地被执行。系统中的事件主要分为三种:呼叫感知事件、呼叫策略事件、呼叫执行事件。
逻辑层:逻辑层是整个系统的决策者,由其来决定从事件队列中取出的事件的处理和运行流程。逻辑层在处理事件时调用该事件对应的执行单元,按照一定的流程以确保系统的正常运行。
功能层:功能层是整个系统的底层,根据逻辑层的处理单元制定相应的执行单元,在物理机、虚拟机、Genesys呼叫系统三个层次进行相应处理并与虚拟机管理平台进行交互,以提供对上述几层的支持。该层按功能可以分为三个层次:呼叫感知功能、呼叫策略功能、呼叫执行功能。
2、逻辑层和功能层包括呼叫感知事件模块、呼叫策略事件模块和呼叫执行事件模块;系统根据呼叫感知事件模块感知到的结果生成呼叫感知事件,呼叫策略事件模块针对呼叫感知事件制定应对策略,生成呼叫策略事件,之后根据恢复策略由呼叫执行事件生成呼叫执行事件,交互虚拟机管理平台对虚拟机操作。
2.1、呼叫感知事件模块包括一个感知处理单元和感知执行单元,所述感知处理单元设置在逻辑层,感知执行单元设置在功能层;所述呼叫策略事件模块包括一个策略处理单元和策略执行单元,所述策略处理单元设置在逻辑层,策略执行单元设置在功能层;所述呼叫执行事件模块包括一个执行事件处理单元和一个执行事件执行单元,所述执行事件处理单元设置在逻辑层,执行事件执行单元设置在功能层。
2.11、 呼叫感知事件模块
呼叫感知事件模块通过轮询感知和无代理主动监控两种方式从物理机、虚拟机和Genesys呼叫系统三个层次分析整个系统的运行情况,当调度层从事件队列中取出某一呼叫感知事件后,针对该事件通过查询共享数据库获得事件的相关参数信息进行相应处理。
2.12、呼叫策略事件模块
该模块根据呼叫感知事件模块的结果进行相应处理,若感知的结果是正常的,系统不会进一步处理;若感知结果异常,系统查询共享数据库,根据异常结果制定相应的呼叫执行事件(用于恢复异常),发送给呼叫执行事件模块。
2.13、呼叫执行事件模块
呼叫执行模块根据接收到的呼叫策略事件生成呼叫执行事件,调用虚拟机管理平台接口完成高可用动作。
3.事件队列中的事件类型
3.1、呼叫感知事件
呼叫感知事件中所包含的事件对应系统中的感知动作,呼叫感知模块根据异常信息产生不同的呼叫感知事件,呼叫感知事件包括如下内容:
· 可感知的虚拟机事件
a) MsgServer(Genesys Message Server)、SIPServer(Genesys SIP Server)、SCS(Genesys Solution Control Server)、URS(Genesys Universal Routing Server)等服务因故停止;
b) SIPServer、StatServerReporting(Genesys State Server)、StatServerRouting(Genesys Stat Server)、LogDBServer/ ETL_DB(Genesys DB Server)等服务长时间处于挂起状态;
c) SIPServer、T-Server服务的链接数过大;
d) Flexlm(FLEXlm License Manager)软件使用权过期;
e) 呼叫关联数据、路由分配(到坐席的分配)发生问题;
f) 报表数据无法写入DataMart DB Server报表数据库;
g) Configuration Server无法连接数据库。
· 感知虚拟机硬盘事件
· 感知虚拟机网络事件
· 感知主机事件
· 感知主机剩余内存事件
· 感知进程事件
· 确认进程感知事件
3.2、呼叫策略事件
呼叫策略事件中所包含的事件对应系统中的高可用性策略制定动作,包括检查虚拟机事件、检查虚拟机硬盘事件、检查虚拟机网络事件、检查主机事件、检查主机剩余内存事件、检查进程事件等。
3.3、呼叫执行事件
呼叫执行事件中所包含的事件对应系统中的高可用性策略执行动作,包括实例操作事件、镜像操作事件、模板操作事件、卷操作事件等。
呼叫事件与其执行者的对应关系如下:
事件 |
handler |
function |
Genesys服务状态感知事件 |
呼叫感知事件模块 |
获取当前Genesys服务的状态信息,并构造相应的呼叫停止/挂起策略事件 |
SIPServer、T-Server服务的链接数感知事件 |
呼叫感知事件模块 |
获取当前Genesys服务连接数目,并构造相应的SIPServer、T-Server服务的链接数过大策略事件 |
Flexlm使用权感知事件 |
呼叫感知事件模块 |
获取Flexlm软件使用权,并构造Flexlm(FLEXlm License Manager)软件使用权过期策略事件 |
呼叫数据、路由分配感知事件 |
呼叫感知事件模块 |
获取Genesys服务呼叫数据、路由分配信息,构造呼叫关联数据、路由分配(到坐席的分配)策略事件 |
Server端连接/写入数据库感知事件 |
呼叫感知事件模块 |
获取Server连接/写入状态信息,并构造Server端无法连接或写入数据库策略事件 |
Genesys服务因故停止/挂起状态策略事件 |
呼叫策略事件模块 |
查询共享数据库获取需要的信息,检查并确认Genesys系统状态,构造启动备份虚拟机事件 |
SIPServer、T-Server服务的链接数过大策略事件 |
呼叫策略事件模块 |
查询共享数据库获取需要的信息,检查并确认Genesys系统状态,构造创建多台虚拟机及启动这些已创建虚拟机事件 |
Flexlm(FLEXlm License Manager)软件使用权过期策略事件 |
呼叫策略事件模块 |
查询共享数据库获取需要的信息,检查并确认Genesys系统状态,构建启动备份虚拟机事件 |
呼叫关联数据、路由分配(到坐席的分配)策略事件 |
呼叫策略事件模块 |
查询共享数据库获取需要的信息,检查并确认URS服务故障,构造启动备份虚拟机事件 |
Server端无法连接或写入数据库策略事件 |
呼叫策略事件模块 |
查询共享数据库获取需要的信息,检查并确认数据库故障,构造启动备份虚拟机事件 |
4、下面介绍应用上面的硬件进行提高Genesys呼叫系统可用性的云计算监控方法,包括以下步骤:
4.1、事件驱动步骤:调度层根据事件的优先级及时间戳实现事件调度过程,逻辑层的处理单元完成对事件的分析,并调用功能层的执行单元进行处理,最后由逻辑层向事件队列插入下一步要发生的事件。
基于上述事件驱动步骤,轮询感知步骤和主动监控步骤如下所示:
轮询感知步骤:采用轮询方式监测呼叫系统各个服务的运行状况,根据监测结果由呼叫感知事件模块生成呼叫感知事件,然后按照事件驱动步骤依次由呼叫策略事件模块和呼叫执行事件模块生成呼叫感知事件和呼叫执行事件。
无代理主动监控步骤:该步骤与轮询感知步骤的不同之处是当呼叫服务出现故障时,系统能够主动感知到服务异常并将呼叫策略事件插入到事件队列中,其后续步骤与轮询感知步骤流程类似。
4.2、事件驱动步骤,包括以下子步骤:
步骤1:将呼叫系统中的事件放入全局的事件队列中;
步骤2:根据事件的优先级和时间戳,调度层从事件队列中取出相应事件;
步骤3:逻辑层处理单元根据事件的参数信息确定事件的类型并调用执行单元进行相应处理,在处理完成后向事件队列中插入下一步要发生的事件。
步骤4:重复步骤1至步骤3,使不断向事件队列中放入、取出事件并处理,整个事件机制保持不间断运行。
4.3、轮询感知步骤,包括以下子步骤:
步骤1:调度层从事件队列中取出时间戳最小的呼叫感知事件,并将其发送给呼叫感知事件模块;
步骤2:呼叫感知事件模块的感知处理单元通过共享数据库获得相关信息,并使用虚拟机内部进程信息获取方法获取虚拟机内相关进程的信息。如果感知到呼叫应用异常,则构造相应的事件并插入到事件队列中;
步骤3:调度层从事件队列中获取到步骤2中生成的事件后,发送给呼叫策略事件模块;
步骤4:呼叫策略事件模块的策略处理单元查询数据库后获取需要的信息,并构造相应的呼叫策略事件。最后构造一个呼叫感知事件,将其插入到事件队列中;
步骤5:调度层将呼叫策略事件发送到呼叫执行事件模块;
步骤6:呼叫执行事件模块的执行事件处理单元根据收到的呼叫策略事件,构造相应的呼叫执行事件,并把该事件插入消息队列中;
步骤7:调度层将呼叫执行事件发送给虚拟机管理模块;
步骤8:虚拟机管理模块根据接收到的呼叫执行事件对虚拟机进行相关操作,并把执行结果发送到共享数据库中。
本系统中的呼叫感知事件是由呼叫感知模块根据相关进程标志位构造的,对应关系如下所示:
应用感知事件 |
进程标志位 |
呼叫服务因故停止 |
ImageFileName |
呼叫服务长时间处于挂起状态 |
State |
SIPServer、T-Server服务的链接数过大 |
ActiveThreads |
Flexlm(FLEXlm License Manager)软件使用权过期 |
ImageFileName |
呼叫关联数据、路由分配(到坐席的分配)发生问题 |
ImageFileName |
报表数据无法写入DataMart DB Server报表数据库 |
ImageFileName |
Configuration
Server无法连接数据库 |
ImageFileName |
虚拟机内存使用量超过阈值 |
VirtualSize |
物理机内存使用量超过阈值 |
VirtualSize |
虚拟机CPU使用率超过阈值 |
KernelTime,UserTime |
4.4、无代理主动监控事件步骤,包括以下子步骤:
步骤1:当Genesys呼叫系统出现异常时,会产生相应的系统调用(例如服务异常中断系统删除后缀为.snapshot快照日志文件),通过监控系统API调用情况判断呼叫系统状态;
步骤2:如果检测到虚拟机内Genesys应用异常,则采用KVM虚拟机陷入机制使虚拟机管理器报告虚拟机的异常信息;
步骤3:若事件队列与Genesys应用在同一台物理机上,则直接把恢复虚拟机的呼叫策略事件插入到事件队列中;若两者不在同一台物理机上,则Genesys应用(TCP客户端)与事件队列(TCP服务器端)建立网络连接,将异常信息传送到服务器端,并插入到事件队列中;
步骤4:按照离散事件驱动机制的调度过程分析应用异常,呼叫执行事件模块向事件队列中插入呼叫执行事件(恢复一台相同虚拟机);
步骤5:调度层将呼叫执行事件发送给虚拟机管理模块;
步骤6:虚拟机管理模块根据接收到的应用执行事件对虚拟机进行相关操作,并把执行结果发送到共享数据库中。
8.本系统中服务感知模块中要获取的进程信息包括,如图2所示:
KernelTime //在内核模式运行的时间和
UserTime //在用户态运行的时间和
State //进程所处的状态
VirtualSize //进程的内存使用量
ImageFileName //进程名
ActiveThreads //活跃线程数
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。