CN102968339B - 基于云计算架构实现复杂事件处理的系统及其方法 - Google Patents
基于云计算架构实现复杂事件处理的系统及其方法 Download PDFInfo
- Publication number
- CN102968339B CN102968339B CN201210555384.4A CN201210555384A CN102968339B CN 102968339 B CN102968339 B CN 102968339B CN 201210555384 A CN201210555384 A CN 201210555384A CN 102968339 B CN102968339 B CN 102968339B
- Authority
- CN
- China
- Prior art keywords
- event
- node
- event processing
- processing node
- group
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于云计算架构实现复杂事件处理的系统,其中包括事件分发节点、多个事件处理节点、事件处理节点组、事件去重节点、节点管理器。本发明还涉及一种利用该系统实现基于云计算架构进行复杂事件处理的方法。采用该种基于云计算架构实现复杂事件处理的系统及其方法,使得整个系统可以承载高并发、大量的事件数据,保证了输出事件的唯一性,并可以从其对应的事件处理节点组中随机选择一个正常节点进行复制,保证了上层业务的连续性,大大提高了复杂事件处理系统的整体可靠性,满足了大数据流、高并发、高实时性数据分析要求,在系统运行过程中保持业务连续性的条件下,完成对系统处理节点的动态调整,工作性能稳定可靠,适用范围广泛。
Description
技术领域
本发明涉及计算机软件领域,特别涉及企业级高实时事件流分析系统领域,具体是指一种基于云计算架构实现复杂事件处理的系统及其方法。
背景技术
复杂事件处理(Complex Event Processing,CEP)技术是一种新兴的实时数据分析处理技术。传统数据挖掘技术是对海量数据进行事后处理,其特点是数据量庞大、分析逻辑复杂;传统的数据库分析技术是对一定规模的数据进行统计分析,其特点是数据量规模适中,分析逻辑较为简单。而复杂事件处理技术可以针对高速数据流进行实时的分析,具有数据量大,实时性高的特点。复杂事件处理技术可以被应用于实时风险管理、实时产品营销等业务领域。一般地,复杂事件处理系统包括规则开发工具、事件输入流适配器、事件输出流适配器、事件处理引擎、关系型数据库等主要功能模块。
目前复杂事件处理主要包含以下几个核心功能模块:事件处理规则开发工具、事件处理引擎、外部数据库、数据接入接出适配器。复杂事件处理的技术实现主要存在两种模式,一种是传统的数据库或中间件厂商以关系型数据库为核心,对数据库核心进行改造和优化。另一种是基于JVM(Java Virtual Machine)进程的复杂事件处理技术,即在一个进程空间内完成事件的接收、事件的处理、事件的输出。
以关系型数据库为核心的复杂事件处理技术,需要在上层封装所需要的数据接入适配、数据接出适配,其处理过程的本质还是将数据导入到数据库进行类SQL(Structured QueryLanguage)的数据查询。以JVM进程为基础的复杂事件处理技术,除了同样要进行接入、接出数据适配外,需要对事件处理语言EPL(Event Processing Language)进行释义,再对数据流进行业务分析,其特点是处理过程中的业务数据大部分都保存在内存中。
目前CEP引擎的开源实现以EsperTech公司的Esper处理引擎应用较为广泛。
采用关系型数据库为核心的复杂事件处理技术,由于数据库架构的制约,当高实时数据量到达一定规模后,一方面容易产生数据库I/O的瓶颈,另一方面类SQL语言在大数据量的场景中性能优化较为复杂,适应多变的业务需求成本较高。
采用JVM进程为核心的复杂事件处理技术,因为处理过程中相关的业务数据都在内存中,所以I/O操作影响较小,但由于每个进程可分配的内存空间有限,当发生大数据流时,容易造成JVM的内存耗尽,进一步会导致业务的停滞。因此,JVM进程为核心的复杂事件处理技术其性能瓶颈是内存容量。同时需要注意的是,以内存计算为核心的复杂事件处理技术,不具备业务数据的持久化操作,在各种原因发生故障导致进程异常退出时,内存中的数据将发生丢失,这将直接导致上层业务功能的不可用。
发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种能够满足大数据流、高并发、高实时性数据分析要求、保持业务连续性、实现对系统处理节点的动态调整、工作性能稳定可靠、适用范围较为广泛的基于云计算架构实现复杂事件处理的系统及其方法。
为了实现上述的目的,本发明的基于云计算架构实现复杂事件处理的系统及其方法如下:
该基于云计算架构实现复杂事件处理的系统,其主要特点是,所述的系统包括:
事件分发节点,将高速到达的事件流分发到不同的事件处理节点中,并接收节点管理器的通知消息;
多个事件处理节点,包含已有的通用事件处理引擎,接收来自所述的事件分发节点的事件,同时将处理后的新事件传递给事件去重节点,事件处理过程由所述的已有的通用事件处理引擎完成;
事件处理节点组,包含至少二个所述的事件处理节点,且组内的每个事件处理节点完成相同的复杂事件处理业务逻辑;
事件去重节点,对新事件进行整理,去除重复事件所产生的输出事件;
节点管理器,对所述的事件处理节点进行控制,并通知所述的事件分发节点事件处理相应的通知消息。
该基于云计算架构实现复杂事件处理的系统中的通知消息为事件处理节点的新增或者事件处理节点的退出。
该利用上述的系统实现基于云计算架构进行复杂事件处理的方法,其主要特点是,所述的方法包括复杂事件处理操作和复杂事件处理故障恢复操作,所述的复杂事件处理操作包括以下步骤:
(1)所述的事件分发节点进行初始化操作;
(2)所述的事件分发节点对输入事件进行分发操作;
(3)所述的事件处理节点对接收到的事件进行匹配和处理操作;
(4)所述的事件去重节点接收各个所述的事件处理节点输出的事件;
(5)所述的事件去重节点进行事件去重操作;
(6)所述的事件去重节点将产生的事件发送至外部系统,由外部系统进行后续业务处理;
所述的复杂事件处理故障恢复操作,包括以下步骤:
(a)所述的节点管理器将发生故障的事件处理节点的标识发送到所述的事件分发节点;
(b)所述的事件分发节点根据该事件处理节点的标识找到相应的事件处理节点组;
(c)所述的事件分发节点将发生故障的事件处理节点移出该事件处理节点组,即将发生故障的事件处理节点的标识从与其对应的事件处理节点组的标识映射关系中删除;
(d)随机选择发生故障的事件处理节点所对应的事件处理节点组中的一个正常工作的事件处理节点作为被复制节点;
(e)调用所述的被复制节点的对外接口,暂停其业务处理工作;
(f)调用所述的被复制节点的对外接口,读取该被复制节点的业务状态上下文数据C;
(g)调用所述的被复制节点的对外接口,读取该被复制节点当前已经接收的最后一个事件序号N;
(h)调用所述的被复制节点的对外接口,恢复该被复制节点的业务处理工作;
(i)以启动进程的方式,创建新的事件处理节点;
(j)所述的新的事件处理节点进行初始化,设置相应的节点标识;
(k)所述的节点管理器将所述的业务状态上下文数据C写入所创建的该新的事件处理节点中;
(l)所述的节点管理器将记录的当前已经处理的最后一个事件序列号N写入所创建的该新的事件处理节点中;
(m)所述的节点管理器同时将新的事件处理节点标识、URL发送给所述的事件分发节点进行注册;
(n)所述的事件分发节点将所述的新的事件处理标识加入到相应的事件处理节点组中,并更新事件处理节点组标识与事件处理节点标识的映射关系;
(o)所述的节点管理器将事件序列号N、新的事件处理节点标识发送至所述的事件分发节点,通知该事件分发节点发送后续事件;
(p)所述的事件分发节点向所创建的所述的新的事件处理节点发送序号为N的事件以及后续的事件;
(q)所创建的所述的新的事件分发节点对序列号N的及以后的事件进行正常处理。
该实现基于云计算架构进行复杂事件处理的方法中的事件分发节点的初始化操作,包括以下步骤;
(11)加载事件类型,为每个事件实例找到唯一的事件类型;
(12)加载EPL列表,所述的EPL列表中的每条记录均包含EPL唯一标识和EPL语句;
(13)加载事件处理节点组列表,一个事件处理组标识将对应多个事件处理节点URL,所述的事件处理节点组列表中的每条记录均包含事件处理节点组标识和事件处理节点URL;
(14)以事件类型和EPL列表为基础生成事件类型与EPL关系映射表,其中一个事件类型对应到多个EPL语句,同时,一个EPL语句中包含多个事件类型,该事件类型与EPL关系映射表中的每条记录均包含事件类型和EPL唯一标识;
(15)以EPL列表和事件处理节点组为列表生成EPL与事件处理节点组映射关系表,每个EPL语句都唯一对应一个事件处理节点组标识,该EPL与事件处理节点组映射关系表中的每条记录均包含EPL唯一标识和事件处理节点组标识;
(16)根据事件类型与EPL关系映射表和EPL与事件处理节点组映射关系表生成事件类型与事件处理节组映射表,该事件类型与事件处理节组映射表中的每条记录均包含事件类型和事件处理节点组标识;
(17)为每个事件处理节点组初始化事件序号值为0。
该实现基于云计算架构进行复杂事件处理的方法中的事件分发节点对输入事件进行分发操作,包括以下步骤;
(21)所述的事件分发节点收到来自于系统外部的新事件;
(22)根据输入的新事件判断事件所属的事件类型;
(23)根据事件类型,在事件类型与处理节点组映射关系表中找对应的事件处理节点组标识;
(24)获得目标事件处理节点组中的事件序号值N;
(25)将事件序号标记为N;
(26)将目标事件处理节点组中的事件序号值变更为N+1;
(27)根据事件处理节点标识在事件处理节点组列表中查找全部的事件处理节点URL列表;
(28)对内存中的事件进行序列化编码,得到编码后可在网络上进行传输的报文;
(29)对节点处理URL列表中的每个URL进行遍历,将事件报文依次发送到目标URL。
该实现基于云计算架构进行复杂事件处理的方法中的事件处理节点对收到的事件进行匹配和处理,包括以下步骤:
(31)所述的事件处理节点对最后接收到的事件序号x进行初始化;
(32)从网络中接收到事件报文;
(33)对事件报文进行反序列化解码,得到事件的内存对象;
(34)从事件对象中提取事件序号y;
(35)将事件序号y与最后接收事件序号x进行比较,如果y<x,则表明已经接收过该事件,并对事件进行抛弃处理后返回步骤(4);否则,继续执行步骤(36);
(36)根据事件类型,判断本节点的EPL是否包含该事件类型,如果不包含,则抛弃该事件,并结束;否则,接纳该事件;
(37)将最后接收事件序列号x的值更新为x+1;
(38)调用已有复杂事件处理引擎接口,由其执行后续复杂事件处理业务步骤。
该实现基于云计算架构进行复杂事件处理的方法中的事件去重节点的事件去重操作,包括以下步骤:
(41)所述的事件去重节点进行初始化,加载事件处理节点组与事件处理节点映射关系;
(42)从网络中接收到事件报文,并对报文进行反序列化解码,得到事件对象E;
(43)记录来源事件处理节点标识pn;
(44)计算事件E的摘要值ed;
(45)记录来源事件处理节点标识pn、事件摘要值ed二元组;
(46)根据来源事件处理节点标识pn查找对应的事件处理节点组png;
(47)在对应的事件处理节点组png中,通过步骤(48)遍历除事件处理节点pn以外的每个事件处理节点pn’;
(48)查找是否存在事件处理节点pn’、事件摘要值ed二元组,若存在,则抛弃该事件,步骤执行结束;否则继续执行步骤(49);
(49)将该事件作为输出事件,进行序列化编码,得到编码后可在网络上进行传输的报文。
采用了该发明的基于云计算架构实现复杂事件处理的系统及其方法,由于其中能够根据事件处理节点的实际运行负载,并对系统规模进行水平扩展和伸缩,使得整个系统可以承载高并发、大量的事件数据,同时,本发明的系统中设置了事件分发节点,在新事件到达时可以被自动分配至合适一个事件处理组内的多个事件处理节点;并加入了事件去重节点,以保证多个事件处理节点所产生的重复相同事件被去除,从而保证了输出事件的唯一性;另外,所设置的节点管理器可以对系统中的事件处理节点规模进行动态调整,在某个事件处理节点发生故障时,可以从其对应的事件处理节点组中随机选择一个正常节点进行复制,以保证整个事件处理节点组的高可用性,从而保证了上层业务的连续性,大大提高了复杂事件处理系统的整体可靠性,满足了大数据流、高并发、高实时性数据分析要求,在系统运行过程中保持业务连续性的条件下,完成对系统处理节点的动态调整,工作性能稳定可靠,适用范围广泛。
附图说明
图1为本发明的基于云计算架构实现复杂事件处理的系统的整体架构示意图。
图2为本发明的基于云计算架构实现复杂事件处理的方法中的事件分发节点初始化流程示意图。
图3为本发明的基于云计算架构实现复杂事件处理的方法中的事件分发流程示意图。
图4为本发明的基于云计算架构实现复杂事件处理的方法中的事件处理节点的事件序号匹配流程图。
图5为本发明的基于云计算架构实现复杂事件处理方法中的事件去重流程示意图。
图6为本发明的基于云计算架构实现复杂事件处理方法中的事件处理节点状态同步流程示意图。
具体实施方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
请参阅图1所示,该基于云计算架构实现复杂事件处理的系统,其主要特点是,所述的系统包括:
(1)事件分发节点,将高速到达的事件流分发到不同的事件处理节点中,并接收节点管理器的通知消息;该通知消息为事件处理节点的新增或者事件处理节点的退出;
(2)多个事件处理节点,包含已有的通用事件处理引擎,接收来自所述的事件分发节点的事件,同时将处理后的新事件传递给事件去重节点,事件处理过程由所述的已有的通用事件处理引擎完成;
(3)事件处理节点组,包含至少二个所述的事件处理节点,且组内的每个事件处理节点完成相同的复杂事件处理业务逻辑;
(4)事件去重节点,对新事件进行整理,去除重复事件所产生的输出事件;
(5)节点管理器,对所述的事件处理节点进行控制,并通知所述的事件分发节点事件处理相应的通知消息。
再请参阅图2至图6所示,该利用上述的系统实现基于云计算架构进行复杂事件处理的方法,其中包括复杂事件处理操作和复杂事件处理故障恢复操作,所述的复杂事件处理操作包括以下步骤:
(1)所述的事件分发节点进行初始化操作,包括以下步骤;
(11)加载事件类型,为每个事件实例找到唯一的事件类型;
(12)加载EPL列表,所述的EPL列表中的每条记录均包含EPL唯一标识和EPL语句;
(13)加载事件处理节点组列表,一个事件处理组标识将对应多个事件处理节点URL,所述的事件处理节点组列表中的每条记录均包含事件处理节点组标识和事件处理节点URL;
(14)以事件类型和EPL列表为基础生成事件类型与EPL关系映射表,其中一个事件类型对应到多个EPL语句,同时,一个EPL语句中包含多个事件类型,该事件类型与EPL关系映射表中的每条记录均包含事件类型和EPL唯一标识;
(15)以EPL列表和事件处理节点组为列表生成EPL与事件处理节点组映射关系表,每个EPL语句都唯一对应一个事件处理节点组标识,该EPL与事件处理节点组映射关系表中的每条记录均包含EPL唯一标识和事件处理节点组标识;
(16)根据事件类型与EPL关系映射表和EPL与事件处理节点组映射关系表生成事件类型与事件处理节组映射表,该事件类型与事件处理节组映射表中的每条记录均包含事件类型和事件处理节点组标识;
(17)为每个事件处理节点组初始化事件序号值为0;
(2)所述的事件分发节点对输入事件进行分发操作,包括以下步骤;
(21)所述的事件分发节点收到来自于系统外部的新事件;
(22)根据输入的新事件判断事件所属的事件类型;
(23)根据事件类型,在事件类型与处理节点组映射关系表中找对应的事件处理节点组标识;
(24)获得目标事件处理节点组中的事件序号值N;
(25)将事件序号标记为N;
(26)将目标事件处理节点组中的事件序号值变更为N+1;
(27)根据事件处理节点标识在事件处理节点组列表中查找全部的事件处理节点URL列表;
(28)对内存中的事件进行序列化编码,得到编码后可在网络上进行传输的报文;
(29)对节点处理URL列表中的每个URL进行遍历,将事件报文依次发送到目标URL;
(3)所述的事件处理节点对接收到的事件进行匹配和处理操作,包括以下步骤:
(31)所述的事件处理节点对最后接收到的事件序号x进行初始化;
(32)从网络中接收到事件报文;
(33)对事件报文进行反序列化解码,得到事件的内存对象;
(34)从事件对象中提取事件序号y;
(35)将事件序号y与最后接收事件序号x进行比较,如果y<x,则表明已经接收过该事件,并对事件进行抛弃处理后返回步骤(4);否则,继续执行步骤(36);
(36)根据事件类型,判断本节点的EPL是否包含该事件类型,如果不包含,则抛弃该事件,并结束;否则,接纳该事件;
(37)将最后接收事件序列号x的值更新为x+1;
(38)调用已有复杂事件处理引擎接口,由其执行后续复杂事件处理业务步骤;
(4)所述的事件去重节点接收各个所述的事件处理节点输出的事件;
(5)所述的事件去重节点进行事件去重操作,包括以下步骤:
(51)所述的事件去重节点进行初始化,加载事件处理节点组与事件处理节点映射关系;
(52)从网络中接收到事件报文,并对报文进行反序列化解码,得到事件对象E;
(53)记录来源事件处理节点标识pn;
(54)计算事件E的摘要值ed;
(55)记录来源事件处理节点标识pn、事件摘要值ed二元组;
(56)根据来源事件处理节点标识pn查找对应的事件处理节点组png;
(57)在对应的事件处理节点组png中,通过步骤(48)遍历除事件处理节点pn以外的每个事件处理节点pn’;
(58)查找是否存在事件处理节点pn’、事件摘要值ed二元组,若存在,则抛弃该事件,步骤执行结束;否则继续执行步骤(59);
(59)将该事件作为输出事件,进行序列化编码,得到编码后可在网络上进行传输的报文;
(6)所述的事件去重节点将产生的事件发送至外部系统,由外部系统进行后续业务处理;所述的复杂事件处理故障恢复操作,包括以下步骤:
(a)所述的节点管理器将发生故障的事件处理节点的标识发送到所述的事件分发节点;
(b)所述的事件分发节点根据该事件处理节点的标识找到相应的事件处理节点组;
(c)所述的事件分发节点将发生故障的事件处理节点移出该事件处理节点组,即将发生故障的事件处理节点的标识从与其对应的事件处理节点组的标识映射关系中删除;
(d)随机选择发生故障的事件处理节点所对应的事件处理节点组中的一个正常工作的事件处理节点作为被复制节点;
(e)调用所述的被复制节点的对外接口,暂停其业务处理工作;
(f)调用所述的被复制节点的对外接口,读取该被复制节点的业务状态上下文数据C;
(g)调用所述的被复制节点的对外接口,读取该被复制节点当前已经接收的最后一个事件序号N;
(h)调用所述的被复制节点的对外接口,恢复该被复制节点的业务处理工作;
(i)以启动进程的方式,创建新的事件处理节点;
(j)所述的新的事件处理节点进行初始化,设置相应的节点标识;
(k)所述的节点管理器将所述的业务状态上下文数据C写入所创建的该新的事件处理节点中;
(l)所述的节点管理器将记录的当前已经处理的最后一个事件序列号N写入所创建的该新的事件处理节点中;
(m)所述的节点管理器同时将新的事件处理节点标识、URL发送给所述的事件分发节点进行注册;
(n)所述的事件分发节点将所述的新的事件处理标识加入到相应的事件处理节点组中,并更新事件处理节点组标识与事件处理节点标识的映射关系;
(o)所述的节点管理器将事件序列号N、新的事件处理节点标识发送至所述的事件分发节点,通知该事件分发节点发送后续事件;
(p)所述的事件分发节点向所创建的所述的新的事件处理节点发送序号为N的事件以及后续的事件;
(q)所创建的所述的新的事件分发节点对序列号N的及以后的事件进行正常处理。
在实际使用当中,请参阅图1所示,该实现复杂事件处理的系统包括事件分发节点、事件处理节点、事件去重节点、节点管理器。
事件分发节点:第一,可以将高速到达的事件流分发到不同的处理节点中;第二,可以接收节点管理器的通知消息(事件处理节点的新增和退出)。
事件处理节点:主要包含已有的通用事件处理引擎(如Esper),节点可以接收来自事件分发节点的事件,同时将处理后的新事件传递给事件去重节点,事件处理过程由已有的通用事件处理引擎完成。
事件处理节点组:包含多个事件处理节点,同时组内的每个事件处理节点可以完成相同的复杂事件处理业务逻辑。该系统中存在多个事件处理节点组。
事件去重节点:对新事件进行整理,去除重复事件产生输出事件。
节点管理器:第一,具备对事件处理节点的控制能力,如停止、启动;第三,可以通知事件分发节点事件处理节点的增加和退出。
该基于上述的系统实现复杂事件处理在云计算环境中实现的方法,包括复杂事件处理系统的处理操作和复杂事件处理系统的故障恢复操作,复杂事件处理系统的处理操作包括如下步骤:
(1)事件分发节点的初始化操作;
(2)事件分发节点对输入事件进行分发操作;
(3)事件处理节点对接收到的事件进行匹配和处理操作;
(4)事件去重节点接收多个事件处理节点输出的事件;
(5)事件去重节点的事件去重操作;
(6)事件去重节点将产生的事件发送至其他外部系统,由其他系统进行业务处理。所述的复杂事件处理系统的故障恢复操作包括如下步骤:
(501)节点管理器将发生故障的事件处理节点标识发送到事件分发节点;
(502)事件分发节点根据事件处理节点标识找到事件处理组;
(503)事件分发节点将故障节点移出事件处理节点组,即将发生故障的事件处理节点标识从与其对应的事件处理节点组标识映射关系中删除;
(504)随机选择发生故障的事件处理节点组中的一个正常工作的事件处理节点作为被复制节点;
(505)调用被复制节点的对外接口,暂停其业务处理工作;
(506)调用被复制节点的对外接口,读取被复制节点的业务状态上下文数据(记为c);
(507)调用被复制节点的对外接口,读取被复制节点当前已经接收的最后一个事件序号N;
(508)调用被复制节点的对外接口,恢复被复制节点的业务处理工作;
(509)以启动进程的方式,创建新的事件处理节点;
(510)新的事件处理节点进行初始化,设置节点标识;
(511)节点管理器将中业务状态c上下文数据写入新创建的事件处理节点中;
(512)节点管理器将记录的当前已经处理的最后一个事件序列号n写入新创建的事件处理节点中;
(513)节点管理器同时将新的事件处理节点标识、URL发送给事件分发节点进行注册;
(514)事件分发节点将新的事件处理标识加入到事件处理组中,并更新事件处理节点组标识与事件处理节点标识的映射关系;
(515)节点管理器将事件序列号n、新的事件处理节点标识发送至事件分发节点,通知其发送后续事件;
(516)事件分发节点向新创建节点发送序号为n以及后续的事件;
(517)新创建的事件分发节点对序列号n及以后的事件进行正常处理。
由于暂停以恢复被复制事件处理节点、建立的新事件处理节点的过程中,都会产生时间消耗。在此过程中这两个节点所产生的事件将落后于相同事件处理节点组内的其他正常节点,这部分事件可以在通过事件去重节点进行过滤。
请参阅图2所示,所述的事件分发节点的初始化操作,操作包括以下步骤;
(11)加载事件类型,即能够为每个事件实例找到唯一的事件类型;
(12)加载EPL列表,列表中的每条记录都包含:
·EPL唯一标识
·EPL语句
(13)加载事件处理节点组列表,一个事件处理组标识将对应多个事件处理节点URL,列表中的每条记录包含:
·事件处理节点组标识
·事件处理节点URL
(14)以事件类型和EPL列表为基础生成事件类型与EPL关系映射表。一方面,一个事件类型对应到多个EPL语句;另一方面,一个EPL语句中包含多个事件类型。列表中的每条记录包含:
·事件类型
·EPL唯一标识
(15)以EPL列表和事件处理节点组为列表生成EPL与事件处理节点组映射关系表,每个EPL语句都唯一对应一个事件处理节点组标识,每条记录包含:
·EPL唯一标识
·事件处理节点组标识
(16)根据事件类型与EPL关系映射表和EPL与事件处理节点组映射关系表生成事件类型与事件处理节组映射表,每条记录包含:
·事件类型
·事件处理节点组标识
(17)为每个事件处理节点组初始化事件序号值为0。
在事件分发节点初始化后,可以根据事件实例获得事件类型,进而可以查找到事件处理节点组标识。
请参阅图3所示,所述的事件分发节点对输入事件进行分发操作包含以下步骤:
(21)事件分发节点收到来自于系统外部的新事件;
(22)根据输入的新事件判断事件所属的事件类型;
(23)根据事件类型,在事件类型与处理节点组映射关系表中找对应的事件处理节点组标识;
(24)获得目标事件处理节点组中的事件序号值n;
(25)将事件序号标记为n;
(26)将目标事件处理节点组中的事件序号值变更为n+1;
(27)根据事件处理节点标识在事件处理节点组列表中查找全部的事件处理节点URL列表;
(28)对内存中的事件进行序列化编码,得到编码后可在网络上进行传输的报文;
(29)对节点处理URL列表中的每个URL进行遍历,将事件报文依次发送到目标URL。
请参阅图4所示,所述的事件处理节点对收到的事件进行匹配和处理,该过程包含以下步骤:
(31)事件处理节点对最后接收到的事件序号x进行初始化;
(32)从网络中接收到事件报文;
(33)对事件报文进行反序列化解码,得到事件的内存对象;
(34)从事件对象中提取事件序号y;
(35)将事件序号y与最后接收事件序号x进行比较,如果y<x则表明已经接收过该事件,对事件进行抛弃处理,并退出本过程;否则,继续执行;
(36)根据事件类型,判断本节点的EPL是否包含该事件类型,如果不包含,则抛弃该事件,结束本流程;否则,接纳该事件;
(37)将最后接收事件序列号x的值更新为x+1;
(38)调用已有复杂事件处理引擎接口,由其执行后续复杂事件处理业务步骤。请参阅图5所示,所述的事件去重节点的事件去重操作包括以下步骤:
(41)事件去重节点进行初始化,加载事件处理节点组与事件处理节点映射关系;
(42)从网络中接收到事件报文,并对报文进行反序列化解码,得到事件对象(记为E);
(43)记录来源事件处理节点标识(记为pn);
(44)计算事件E的摘要值(记为ed);
(45)记录来源事件处理节点标识(pn)、事件摘要值(ed)二元组;
(46)根据来源事件处理节点标识(pn)查找对应的事件处理节点组(记为png);
(47)在对应的事件处理节点组(png)中,通过步骤(48)遍历除事件处理节点(pn)以外的每个事件处理节点(记为pn’);
(48)查找是否存在事件处理节点(pn’)、事件摘要值(ed)二元组,若存在(表明已经接收过该事件),则抛弃该事件,步骤执行结束;否则继续执行;
(49)将该事件作为输出事件,进行序列化编码,得到编码后可在网络上进行传输的报文。
所述的事件分发节点进行初始化操作,其中:
1.事件类型
以java语言为例:事件类型即每个java对象的类。在java语言中,获得事件所属的事件类型可以用object.getClass().getName()方法获得,其值例如:
com.example.event.TypeA
2.EPL列表
EPL唯一标识:可以通过生成(Universally Unique Identifier,UUID进行标识)。
EPL语句:例如:select*from stream a。其中是a事件类型,stream则代表事件流,类似于SQL语句中的表(Table)。
3.事件处理节点组列表
事件节点处理组标识:可以通过生成(Universally Unique Identifier,UUID进行标识)。
事件处理节点URL:即一般意义上的URL地址。
所述的事件分发过程,其中;
1.根据事件判断事件所属的事件类型:在java语言中可以使用相关方法获得类名称作为事件类型,例如:String type=event.getClass().getName()。
2.根据事件类型在事件类型与处理节点组映射关系表中找对应的事件处理节点组标识:在java语言中可以用HashMap实现映射关系表,记为eventType2NodeGroupMap,nodeGroupId=eventType2NodeGroupMap.get(type)。
3.获得目标事件处理节点组中的事件序号值n:依次执行nodeGroup=nodes.getNodeById(nodeGroupId);sequence=nodeGroup.getSequence()。
4.将事件序号标记为n:在java语言中,可以调用event的相关方法,例如:event.setSeqnece(sequence)。
5.将目标事件处理节点组中的事件序号值增加:在java语言中,可以调用事件处理节点组(nodeGroup)的相关方法:nodeGroup.increaseSequence();
6.根据事件处理节点标识在事件处理节点组列表中查找全部的事件处理节点URL列表:urls=nodeGroup.getNodeUrls()。
7.对内存中的事件进行序列化编码:使用java内置的序列化方法,再进行Base64编码。
所述的事件处理节点对收到的事件进行匹配和处理,其中:
1.事件处理节点对最后接收到的事件序号x进行初始化:即对变量进行复制x=lastSequence,lastSequence值可以存储与数据或者本地文件中在初始化时读取数据;
2.对事件报文进行反序列化解码,得到事件的内存对象:先进行Base64解码,再使用java内置的反序列化方法,得到内存对象;
3.从事件对象中提取事件序号y:y=node.getSequence();
4.将事件序号y与最后接收事件序号x进行比较,如果y<x则表明已经接收过该事件,对事件进行抛弃处理,并退出本过程;否则,继续执行;
5.根据事件类型,判断本节点的EPL是否包含该事件类型,如果不包含,则抛弃该事件,结束本流程;否则,接纳该事件;
6.将最后接收事件序列号x的值更新为x+1:即执行x++;
7.调用已有复杂事件处理引擎接口,由其执行后续复杂事件处理业务步骤:以Esper作为事件处理引擎为例,即调用Esper的发送事件接口。
所述的事件去重节点,其中:
1.进行初始化,加载事件处理节点组与事件处理节点映射关系:以HashMap存储,此处记为node2nodeGroupMap;
2.记录来源事件处理节点标识(记为pn):pn=event.getSourceNodeId();
3.计算事件event的摘要值(记为ed):ed=even.hashCode();
4.记录来源事件处理节点标识(pn)、事件摘要值(ed)二元组:定义一个java类NodeDigest,其中包含两个私有属性pn、ed,并可以通过类的构造方法设置对应值,同时NodeDigest还提供equals(NodeDigest another)方法与另外的一个对象实例进行比较;NodeDigest nd=new NodeDigest(pn,ed)
5.将二元组进行存储,存储介质可以是关系型数据库(记为storage):即storage.push(nd);
6.根据来源事件处理节点标识(PN)查找对应的事件处理节点组(记为PNG):nodeGroup=node2nodeGroup.get(PN);
7.在对应的事件处理节点组(PNG)中,查找是否存在事件处理节点(PN’)、事件摘要值(ED)二元组:即对每一组pn’、ed在storage中查找是否存在boolean exist=storage.find(newNodeDigest(pn’,ed));如果exist值为真,则抛弃该事件;否则向系统外输出该事件。
所述的复杂事件处理在云计算环境中的实现方法具备对事件处理节点组内的某个处理节点进行复制的能力,其中:
1.判断某个事件处理节点是否出现故障的方法,可以是通过脚本定时判断该节点对应的线程是否存在(例如在Linux或者Unix系统中执行ps-ef);也可以通过脚本定时判断该节点所监听的端口是否存在(例如在Linux或者Unix系统中执行netstat-an)。
2.事件处理节点应当区分不同的线程类型,将进行复杂事件处理业务的线程定义为业务线程;将可以对业务线程执行过程进行管理的线程定义为管理线程。
3.事件处理节点中的管理线程,在对业务线程进行暂停执行操作时,可以使用Thread类中的waitFor()方法;在对业务线程进行恢复执行操作时,可以使用Thread类中的notify()方法。
4.事件处理节点中的业务线程所使用的业务状态上下文数据以及当前已经接收的最后一个事件序列号N可以以一个或者一组java类实例的方式在内存中存储。某个事件处理节点成为被复制节点后,用管理线程对业务线程进行暂停操作,可以通过对象序列化的方式将上述数据转换成静态数据(Context,byte[]形式),由对外接口提供这部分数据的读取能力。
5.对被复制节点进行业务状态读取的过程中,首先,由管理线程暂停业务线程,使其业务状态静态化;其次,通过对外接口读取业务状态数据;最后,由管理线程恢复业务线程的业务执行。
6.在复制过程中,新创建的事件处理节点在创建后,可以通过接口调用方式,向其写入业务状态上下文数据以及事件序列号N的静态数据Context。
7.在新创建的事件处理节点收到Context后,可以通对象的反序列化方式将byte[]形式转换成内存对象,即恢复出使用的业务状态上下文数据以及当前已经接收的最后一个事件序列号N所对应的一个或者一组java类实例。
8.当新创建的事件处理节点完成业务状态恢复后,由管理线程启动业务线程,使其进行正常的业务处理。
为了保持平台所提供的业务处理能力的连续性,每个事件处理节点组中至少存在3个事件处理节点,并且组中的每个处理节点完成相同的业务处理逻辑。当组内的某个事件处理节点N1发生故障时,可以通过以下步骤完成被复制节点的选择,以java语言为例:
1.以List类型存储事件处理节点组(nodeGroup)的各事件处理节点的信息,其中故障节点的信息已经被移除。
2.获得事件处理节点组的大小:size=nodeGroup.size()。
3.生成随机数index=new Ramdon().nextInt(size-1)。
4.获得被复制节点的信息:node=nodeGroup.get(index)。
采用了上述的基于云计算架构实现复杂事件处理的系统及其方法,由于其中能够根据事件处理节点的实际运行负载,并对系统规模进行水平扩展和伸缩,使得整个系统可以承载高并发、大量的事件数据,同时,本发明的系统中设置了事件分发节点,在新事件到达时可以被自动分配至合适一个事件处理组内的多个事件处理节点;并加入了事件去重节点,以保证多个事件处理节点所产生的重复相同事件被去除,从而保证了输出事件的唯一性;另外,所设置的节点管理器可以对系统中的事件处理节点规模进行动态调整,在某个事件处理节点发生故障时,可以从其对应的事件处理节点组中随机选择一个正常节点进行复制,以保证整个事件处理节点组的高可用性,从而保证了上层业务的连续性,大大提高了复杂事件处理系统的整体可靠性,满足了大数据流、高并发、高实时性数据分析要求,在系统运行过程中保持业务连续性的条件下,完成对系统处理节点的动态调整,工作性能稳定可靠,适用范围广泛。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (5)
1.一种实现基于云计算架构进行复杂事件处理的方法,其特征在于,该方法利用基于云计算架构实现复杂事件处理的系统实现,该系统包括:
事件分发节点,将高速到达的事件流分发到不同的事件处理节点中,并接收节点管理器的通知消息;
多个事件处理节点,包含已有的通用事件处理引擎,接收来自所述的事件分发节点的事件,同时将处理后的新事件传递给事件去重节点,事件处理过程由所述的已有的通用事件处理引擎完成;
事件处理节点组,包含至少二个所述的事件处理节点,且组内的每个事件处理节点完成相同的复杂事件处理业务逻辑;
事件去重节点,对新事件进行整理,去除重复事件所产生的输出事件;
节点管理器,对所述的事件处理节点进行控制,并通知所述的事件分发节点事件处理相应的通知消息;
所述的方法包括复杂事件处理操作和复杂事件处理故障恢复操作,所述的复杂事件处理操作包括以下步骤:
(1)所述的事件分发节点进行初始化操作;
(2)所述的事件分发节点对输入事件进行分发操作;
(3)所述的事件处理节点对接收到的事件进行匹配和处理操作;
(4)所述的事件去重节点接收各个所述的事件处理节点输出的事件;
(5)所述的事件去重节点进行事件去重操作;
(6)所述的事件去重节点将产生的事件发送至外部系统,由外部系统进行后续业务处理;
所述的复杂事件处理故障恢复操作,包括以下步骤:
(a)所述的节点管理器将发生故障的事件处理节点的标识发送到所述的事件分发节点;
(b)所述的事件分发节点根据该事件处理节点的标识找到相应的事件处理节点组;
(c)所述的事件分发节点将发生故障的事件处理节点移出该事件处理节点组,即将发生故障的事件处理节点的标识从与其对应的事件处理节点组的标识映射关系中删除;
(d)随机选择发生故障的事件处理节点所对应的事件处理节点组中的一个正常工作的事件处理节点作为被复制节点;
(e)调用所述的被复制节点的对外接口,暂停其业务处理工作;
(f)调用所述的被复制节点的对外接口,读取该被复制节点的业务状态上下文数据C;
(g)调用所述的被复制节点的对外接口,读取该被复制节点当前已经接收的最后一个事件序号N;
(h)调用所述的被复制节点的对外接口,恢复该被复制节点的业务处理工作;
(i)以启动进程的方式,创建新的事件处理节点;
(j)所述的新的事件处理节点进行初始化,设置相应的节点标识;
(k)所述的节点管理器将所述的业务状态上下文数据C写入所创建的该新的事件处理节点中;
(l)所述的节点管理器将记录的当前已经处理的最后一个事件序列号N写入所创建的该新的事件处理节点中;
(m)所述的节点管理器同时将新的事件处理节点标识、URL发送给所述的事件分发节点进行注册;
(n)所述的事件分发节点将所述的新的事件处理标识加入到相应的事件处理节点组中,并更新事件处理节点组标识与事件处理节点标识的映射关系;
(o)所述的节点管理器将事件序列号N、新的事件处理节点标识发送至所述的事件分发节点,通知该事件分发节点发送后续事件;
(p)所述的事件分发节点向所创建的所述的新的事件处理节点发送序号为N的事件以及后续的事件;
(q)所创建的所述的新的事件分发节点对序列号N的及以后的事件进行正常处理。
2.根据权利要求1所述的实现基于云计算架构进行复杂事件处理的方法,其特征在于,所述的事件分发节点的初始化操作,包括以下步骤;
(11)加载事件类型,为每个事件实例找到唯一的事件类型;
(12)加载EPL列表,所述的EPL列表中的每条记录均包含EPL唯一标识和EPL语句;
(13)加载事件处理节点组列表,一个事件处理组标识将对应多个事件处理节点URL,所述的事件处理节点组列表中的每条记录均包含事件处理节点组标识和事件处理节点URL;
(14)以事件类型和EPL列表为基础生成事件类型与EPL关系映射表,其中一个事件类型对应到多个EPL语句,同时,一个EPL语句中包含多个事件类型,该事件类型与EPL关系映射表中的每条记录均包含事件类型和EPL唯一标识;
(15)以EPL列表和事件处理节点组为列表生成EPL与事件处理节点组映射关系表,每个EPL语句都唯一对应一个事件处理节点组标识,该EPL与事件处理节点组映射关系表中的每条记录均包含EPL唯一标识和事件处理节点组标识;
(16)根据事件类型与EPL关系映射表和EPL与事件处理节点组映射关系表生成事件类型与事件处理节组映射表,该事件类型与事件处理节组映射表中的每条记录均包含事件类型和事件处理节点组标识;
(17)为每个事件处理节点组初始化事件序号值为0。
3.根据权利要求1所述的实现基于云计算架构进行复杂事件处理的方法,其特征在于,所述的事件分发节点对输入事件进行分发操作,包括以下步骤;
(21)所述的事件分发节点收到来自于系统外部的新事件;
(22)根据输入的新事件判断事件所属的事件类型;
(23)根据事件类型,在事件类型与处理节点组映射关系表中找对应的事件处理节点组标识;
(24)获得目标事件处理节点组中的事件序号值N;
(25)将事件序号标记为N;
(26)将目标事件处理节点组中的事件序号值变更为N+1;
(27)根据事件处理节点标识在事件处理节点组列表中查找全部的事件处理节点URL列表;
(28)对内存中的事件进行序列化编码,得到编码后可在网络上进行传输的报文;
(29)对节点处理URL列表中的每个URL进行遍历,将事件报文依次发送到目标URL。
4.根据权利要求1所述的实现基于云计算架构进行复杂事件处理的方法,其特征在于,所述的事件处理节点对收到的事件进行匹配和处理,包括以下步骤:
(31)所述的事件处理节点对最后接收到的事件序号x进行初始化;
(32)从网络中接收到事件报文;
(33)对事件报文进行反序列化解码,得到事件的内存对象;
(34)从事件对象中提取事件序号y;
(35)将事件序号y与最后接收事件序号x进行比较,如果y<x,则表明已经接收过该事件,并对事件进行抛弃处理后返回步骤(4);否则,继续执行步骤(36);
(36)根据事件类型,判断本节点的EPL是否包含该事件类型,如果不包含,则抛弃该事件,并结束;否则,接纳该事件;
(37)将最后接收事件序列号x的值更新为x+1;
(38)调用已有复杂事件处理引擎接口,由其执行后续复杂事件处理业务步骤。
5.根据权利要求1所述的实现基于云计算架构进行复杂事件处理的方法,其特征在于,所述的事件去重节点的事件去重操作,包括以下步骤:
(41)所述的事件去重节点进行初始化,加载事件处理节点组与事件处理节点映射关系;
(42)从网络中接收到事件报文,并对报文进行反序列化解码,得到事件对象E;
(43)记录来源事件处理节点标识pn;
(44)计算事件E的摘要值ed;
(45)记录来源事件处理节点标识pn、事件摘要值ed二元组;
(46)根据来源事件处理节点标识pn查找对应的事件处理节点组png;
(47)在对应的事件处理节点组png中,通过步骤(48)遍历除事件处理节点pn以外的每个事件处理节点pn’;
(48)查找是否存在事件处理节点pn’、事件摘要值ed二元组,若存在,则抛弃该事件,步骤执行结束;否则继续执行步骤(49);
(49)将该事件作为输出事件,进行序列化编码,得到编码后可在网络上进行传输的报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210555384.4A CN102968339B (zh) | 2012-12-19 | 2012-12-19 | 基于云计算架构实现复杂事件处理的系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210555384.4A CN102968339B (zh) | 2012-12-19 | 2012-12-19 | 基于云计算架构实现复杂事件处理的系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102968339A CN102968339A (zh) | 2013-03-13 |
CN102968339B true CN102968339B (zh) | 2015-06-17 |
Family
ID=47798494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210555384.4A Active CN102968339B (zh) | 2012-12-19 | 2012-12-19 | 基于云计算架构实现复杂事件处理的系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102968339B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092717B (zh) * | 2013-12-13 | 2015-08-12 | 深圳市腾讯计算机系统有限公司 | 消息处理方法及系统、消息目的端设备 |
CN103631662B (zh) * | 2013-12-20 | 2017-09-26 | 普元信息技术股份有限公司 | 复杂事件处理云平台事件分析引擎容量评估的系统及方法 |
CN105302634B (zh) * | 2014-06-04 | 2019-04-26 | 华为技术有限公司 | 事件的并行处理方法及装置 |
CN104113390A (zh) * | 2014-06-20 | 2014-10-22 | 广州市集智信息科技有限公司 | 一种移动网络数据序列化方法 |
CN107688943B (zh) * | 2016-08-04 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及系统 |
CN108628884B (zh) * | 2017-03-20 | 2022-03-25 | 华为技术有限公司 | 一种复杂事件处理方法、系统及其装置 |
CN109614413B (zh) * | 2018-12-12 | 2023-03-24 | 上海金融期货信息技术有限公司 | 一种内存流式计算平台系统 |
CN111025925A (zh) * | 2019-12-05 | 2020-04-17 | 重庆特斯联智慧科技股份有限公司 | 一种基于云计算的智能家居配备系统 |
CN112702270B (zh) * | 2020-12-18 | 2023-05-02 | 深圳赛安特技术服务有限公司 | 基于事件分发机制的节点调用方法、系统及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102281290A (zh) * | 2011-07-18 | 2011-12-14 | 北京邮电大学 | 一种PaaS云平台的仿真系统及方法 |
CN102647452A (zh) * | 2012-03-20 | 2012-08-22 | 广东电子工业研究院有限公司 | 基于大规模云计算平台的自适应资源监控系统及其方法 |
CN102708130A (zh) * | 2011-03-02 | 2012-10-03 | 奥多比公司 | 计算用户微细分以用于要约匹配的可扩展引擎 |
-
2012
- 2012-12-19 CN CN201210555384.4A patent/CN102968339B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708130A (zh) * | 2011-03-02 | 2012-10-03 | 奥多比公司 | 计算用户微细分以用于要约匹配的可扩展引擎 |
CN102281290A (zh) * | 2011-07-18 | 2011-12-14 | 北京邮电大学 | 一种PaaS云平台的仿真系统及方法 |
CN102647452A (zh) * | 2012-03-20 | 2012-08-22 | 广东电子工业研究院有限公司 | 基于大规模云计算平台的自适应资源监控系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102968339A (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102968339B (zh) | 基于云计算架构实现复杂事件处理的系统及其方法 | |
US20150120645A1 (en) | System and Method for Creating a Distributed Transaction Manager Supporting Repeatable Read Isolation level in a MPP Database | |
CN108595664B (zh) | 一种hadoop环境下的农业数据监控方法 | |
CN102937964B (zh) | 基于分布式系统的智能数据服务方法 | |
CN103473696A (zh) | 一种收集、分析和分发网络商业信息的方法和系统 | |
CN106569896B (zh) | 一种数据分发及并行处理方法和系统 | |
CN111610979B (zh) | 一种经过持久化和耦合度优化的api网关及其方法 | |
CN115934855B (zh) | 一种全链路字段级血缘解析方法、系统、设备及存储介质 | |
US20180307736A1 (en) | Efficient Snapshot Generation of Data Tables | |
CN103399894A (zh) | 一种基于共享存储池的分布式事务处理方法 | |
CN111258978B (zh) | 一种数据存储的方法 | |
CN115129736A (zh) | 基于规则引擎的规则事件动态加载与更新方法及相关设备 | |
CN111736964A (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
CN103455335A (zh) | 一种多级分类的Web实现方法 | |
CN113760847A (zh) | 日志数据处理方法、装置、设备及存储介质 | |
CN112800058A (zh) | 一种HBase二级索引的实现方法 | |
CN114398194A (zh) | 数据收集方法、装置、电子设备及可读存储介质 | |
CN113326026B (zh) | 一种微服务业务流程接口的生成方法与终端 | |
CN104052804A (zh) | 一种不同任务拓扑间共享数据流的方法、装置及集群 | |
CN112435022B (zh) | 基于用户实时数据的动态检索系统、及方法 | |
CN110069565B (zh) | 一种分布式数据库数据批量处理的方法及装置 | |
KR101955376B1 (ko) | 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
CN101968747B (zh) | 一种机群应用管理系统及其应用管理方法 | |
CN114556320A (zh) | 切换到最终一致的数据库副本 | |
Borelli et al. | Architectural software patterns for the development of iot smart applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 201203, Shanghai Zhangjiang hi tech park, Pudong New Area, No. 456 blue wave road, 4F Applicant after: PRIMETON INFORMATION TECHNOLOGY CO., LTD. Address before: 201203, Shanghai, Pudong New Area Zhangjiang hi tech park, Blue Road No. 456, 4 floor Applicant before: Primeton Technologies Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: PRIMETON TECHNOLOGIES LTD. TO: PRIMETON INFORMATION TECHNOLOGY CO., LTD. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |