业务数据事件的分析订阅方法及系统的制作方法

文档序号:9727499阅读:301来源:国知局
业务数据事件的分析订阅方法及系统的制作方法
【技术领域】
[0001]本发明涉及数据处理技术,尤其涉及一种业务数据事件的分析订阅方法及系统。
【背景技术】
[0002]在经典的订阅系统中,用户通过订阅系统注册订阅条件,订阅系统根据用户的订阅条件过滤系统中的信息,向用户推送符合用户条件的信息。订阅系统根据过滤条件类型可以分为三种:1.基于消息主题的订阅系统;2.基于消息内容的订阅系统;3.基于消息主题和内容的订阅系统。
[0003]在基于主题的系统中,消息被发布到主题或命名通道上。用户将收到其订阅的主题上的所有消息,并且所有订阅同一主题的订阅者将接收到同样的消息。发布者负责定义订阅者所订阅的消息类别。
[0004]在基于内容的系统中,订阅者定义其感兴趣的消息的条件,只有当消息的属性或内容满足订阅者定义的条件时,消息才会被投递到该订阅者。订阅者负责对消息进行分类。
[0005]在基于消息主题和内容的订阅系统,系统会支持基于主题和基于内容的混合订阅,即发布者发布消息到主题上,而订阅者将基于内容的订阅注册到一个或多个主题上。
[0006]以上三种类型的订阅系统实现都存在一个前提条件:系统收到的信息是有确定的主题和内容的。在实际的应用场景中,用户不仅对信息的内容感兴趣,对信息变化产生的事件更感兴趣。用户不仅需要知道信息的内容,更重要的是要知道发生了什么事件,尤其是某些具有重要意义的事件。
[0007]事件的判断需要比较消息的前后两个状态的数据项,根据数据项的变化来判断是发生了何种事件。现有的订阅系统只能根据信息当前的数据项进行过滤,因此无法根据事件来进行订阅。
[0008]由于事件的不可预知性,在判断事件时不能确定是否有事件发生及有几个事件发生,因此需要对每种事件进行识别。识别的逻辑即比较各个数据项前后是否发生变化。通用的方式通过命令式编程语言如java、c++来实现事件的识别逻辑,需要使用IF语句来判断每个事件,如果事件涉及多个数据项的变化,各个IF语句判断之间会存在关联。采用此种方式,一方面分支会随着事件增长,复杂度呈现非线性增长,非常容易出现逻辑错误,且程序运行的效率比较低;另一方面,每增加一个事件,需要对程序进行重新编译、部署、重启,对业务需求变化响应速度慢。

【发明内容】

[0009]为解决现有存在的技术问题,本发明实施例提供一种业务数据事件的分析订阅方法及系统。
[0010]为达到上述目的,本发明实施例的技术方案是这样实现的:
[0011]—种业务数据事件的分析订阅系统,所述系统包括:数据接收模块、数据建模模块、规则处理模块、结果推送模块。
[0012]其中,所述数据接收模块用于从数据源接收数据,并对数据进行解析和数据正确性验证;
[0013]所述数据建模模块用于对数据接收模块接收到的正确数据进行分析、匹配,并根据数据类型进行建模,生成标准的数据模型;
[0014]所述规则处理模块用于根据数据模型,进行事件分析和识别,并根据对数据进行重新建模;以及,对重新建模后的数据根据用户的订阅规则进行处理和过滤,得到用户需要的信息;
[0015]所述结果推送模块用于对规则处理模块的结果进行格式化处理,生成符合用户需要的格式信息,并将格式化后的信息推送给用户。
[0016]其中,所述数据接收模块,具体用于:首先从数据源接收数据,然后进行数据解析,数据解析后对数据进行验证,如果数据正确,把数据传递到数据建模模块;如果数据错误,重新从数据源接收数据,进行数据接收处理流程。
[0017]其中,所述数据建模模块,具体用于:从数据接收模块接收数据后,首先对数据进行解析,然后对解析后的结果进行重组配对,生成标准数据模型,最后将数据模型传递到所述规则处理模块。
[0018]其中,所述规则处理模块,具体用于:从所述数据建模模块得到标准数据模型后,首先对数据模型进行分析,根据分析的结果进行事件识别,对事件识别的结果和数据模型数据进行重新建模;根据用户的订阅规则,对新的数据模型规则过滤,得到用户需要的信息,并将结果传递到所述结果推送模块。
[0019]其中,所述结果推送模块,具体用于:从所述规则处理模块获得处理后的结果,将结果格式化为用户需要的格式,并根据用户选择发送通道,选定发送通道后,将结果推送给用户。
[0020]其中,所述数据接收模块,用于通过消息中间件WebSphereMQ从数据源接收数据,然后对数据完整性进行验证。
[0021]其中,所述数据建模模块用于对解析后的结果进行重组配对,包括:根据数据的属性到数据库表中查询,基于不同的查询结果采用不同方式将数据存储到数据对象;返回一个结果时,该结果是该数据的上一状态,将结果解析到一个新的数据对象中,将该对象定义为old object,然后将数据对象new object更新到数据库中,覆盖数据表中的数据;返回结果为空时:定义一个old object,其值为空,然后将数据对象new object插入到数据表中。
[0022]其中,所述数据建模模块用于对解析后的结果进行重组配对,包括:根据不同的业务场景,对new object和old object进行重组,将new object和old object分别拆分为以当前业务场景的关键项为基本单元的数据列表,将两个数据列表进行匹配;根据所述匹配的结果,将新旧数据列表中的数据分别填充到组合的数据对象中,该数据对象含有两个属性:old object和new object;通过所述匹配,会得到组合对象列表,每个组合对象为一个新的数据模型,用于事件识别。
[0023]其中,如果数据是旅客预定记录,业务场景是旅客航段预定操作,则将newobject和old object分别拆分为以旅客航段为基本单元的数据列表,将两个数据列表进行匹配;如果数据是航班数据,业务场景为航班航段的操作,则将new object和old object分别拆分为以航段为基本单元的数据列表,将两个数据列表进行匹配。
[0024]其中,所述规则处理模块,具体用于接收到数据建模模块的数据模型后,根据所述数据模型的类型调用不同的规则进行事件判断;对于一个数据模型,可能会判断出0到多个事件,将这些判断产生的事件和数据模型组合成一个新的数据模型,所述新的数据模型含old object、new object和事件列表;将事件名作为数据模型的属性,与数据的其它属性一致,用于用户规则过滤,过滤后的数据模型传输到所述结果推送模块。
[0025]其中,所述结果推送模块,具体用于接收所述规则处理模块的结果,根据数据模型的内容类型确定数据模块的取值。
[0026]其中,所述结果推送模块,具体用于根据数据模型的取值,将其格式化为标准的XML字符串,并向预定的用户推送相应的信息。
[0027]—种业务数据事件的分析订阅方法,所述方法通过上述业务数据事件的分析订阅系统执行。
[0028]其中,所述方法包括:数据接收模块从数据源接收数据,并对数据进行解析和数据正确性验证;数据建模模块对数据接收模块接收到的正确数据进行分析、匹配,并根据数据类型进行建模,生成标准的数据模型;规则处理模块根据数据模型,进行事件分析和识别,并根据对数据进行重新建模;以及,对重新建模后的数据根据用户的订阅规则进行处理和过滤,得到用户需要的信息;结果推送模块对所述规则处理模块的结果进行格式化处理,生成符合用户需要的格式信息,并将格式化后的信息推送给用户。
[0029]其中,所述数据接收模块首先从数据源接收数据,然后进行数据解析,数据解析后对数据进行验证,如果数据正确,把数据传递到数据建模模块;如果数据错误,重新从数据源接收数据,进行数据接收处理流程。
[0030]其中,所述数据建模模块从数据接收模块接收数据后,首先对数据进行解析,然后对解析后的结果进行重组配对,生成标准数据模型,最后将数据模型传递到所述规则处理模块。
[0031]其中,所述规则处理模块从所述数据建模模块得到标准数据模型后,首先对数据模型进行分析,根
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1