一种管理用户数据的方法及系统与流程

文档序号:12463764阅读:209来源:国知局
一种管理用户数据的方法及系统与流程

本发明属于通信领域,尤其涉及一种管理用户数据的方法及系统。



背景技术:

在互联网时代,很多互联网公司在一款应用产品发展壮大起来后通常会陆续开发出其他多种不同类型的应用产品,以期望获得更多的业务发展机会。而对于一款应用产品来说,用户数流量的多寡是其能否成功的最重要的外部因素之一。因此,各家公司在巩固原来应用产品的用户数的同时,如何将原有应用用户引导至新开发的其他应用产品中就显得非常重要且有价值了。为了实现这一目标,各公司通常会引入一套复杂用户等级成长体系,如通过在线时长积累、完成各类任务获得相应积分、虚拟勋章、升级等等,这样既可以提高用户忠诚度、提高用户粘性和活跃度,又可以借此将新开发的应用推荐给原有应用的用户,达到一举数得的好处。

在技术实现上,同一用户通常通过同一用户账号进行登录/或身份验证,以在多个应用产品间共享一套用户帐号,这样既方便用户进行数据管理,又便于用户操作各种应用。

但是通常一家公司的各款不同应用的服务器是相互独立的,而用户在操作各应用时,各应用服务器需要改变一些共同的用户数据。比如上面说的等级成长数据,如果每个应用服务器都直接的修改共同的用户数据,那各服务器的代码实现势必就会与用户数据间操作耦合在一起,这将给维护和扩展带来很多的不便。

综上所述,各独立的应用服务器在多互联网应用间共同联动同一份用户数据时,需要增加各应用服务器与用户数据间操作的耦合性,很难维护用户数据,不利于应用的扩展。



技术实现要素:

本发明提供一种管理用户数据的方法及系统,能够在多互联网应用间共同联动同一份用户数据时,可以保持各应用服务器自身的独立性,又可以不增加各应用服务器与用户数据间操作的耦合性,从而拥有更好的维护性和扩展性。

为解决上述问题,本发明第一方面提供一种管理用户数据的方法,所述方法包括:

应用服务器当检测到改变用户数据的预设操作时,生成所述改变用户数据的预设操作对应的事件消息;

所述应用服务器将所述消息事件存入消息队列;

用户数据处理服务器获取存入所述消息队列的所述事件消息;其中,所述事件消息由所述用户数据处理服务器预先向所述消息队列订阅;以及

根据所述事件消息修改用户数据库中所述事件消息对应的用户数据。

为解决上述问题,本发明提供第二方面提供一种管理用户数据的系统,所述系统包括:

应用服务器,用于当检测到改变用户数据的预设操作时,生成所述改变用户数据的预设操作对应的事件消息;以及用于将所述消息事件存入消息队列;

用户数据处理服务器,用于获取存入所述消息队列的所述事件消息;其中,所述事件消息由所述用户数据处理服务器预先向所述消息队列订阅;以及用于根据所述事件消息修改用户数据库中所述事件消息对应的用户数据。

上述方案,应用服务器当检测到改变用户数据的预设操作时,生成改变用户数据的预设操作对应的事件消息,并将消息事件存入消息队列;用户数据处理服务器获取存入消息队列的所述事件消息,以及根据事件消息修改预设的用户数据库中所述事件消息对应的用户数据;其中,事件消息由用户数据处理服务器预先向消息队列订阅。由于通过消息队列统一管理改变用户数据的预设操作对应的事件消息,并统一由用户数据处理服务器根据事件消息的内容更新用户数据,因此,能够在多互联网应用间共同联动同一份用户数据时,可以保持各应用服务器自身的独立性,又可以不增加各应用服务器与用户数据间操作的耦合性,从而拥有更好的维护性和扩展性。

附图说明

图1是本发明管理用户数据的系统一实施例的示意图;

图2是本发明管理用户数据的时序图;

图3是本发明管理用户数据的方法一实施例的流程图;

图4是本发明管理用户数据的方法另一实施例的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参阅图1,图1是本发明管理用户数据的系统一实施例的示意图。管理用户数据的系统包括至少两个应用服务器110、用户数据处理服务器120。至少两个应用服务器110各自对应的应用需要共同联动同一份用户数据。应用服务器110与用户数据处理服务器120通过通讯中间件——消息队列(Message Queue,MQ)进行通信。其中,消息队列可以单独存在于消息队列服务器中,消息队列服务器能够分别与应用服务器110以及用户数据处理服务器120进行通信;消息队列也可以存在于应用服务器110以及用户数据处理服务器120中,消息队列为应用服务器110与用户数据处理服务器120的通信通道。

应用服务器110当检测到改变用户数据的预设操作时,生成所述改变用户数据的预设操作对应的事件消息,以及用于将所述消息事件存入消息队列。事件消息用于通知用户数据处理服务器120修改用户数据;事件消息包括待更新的用户数据标识以及更新值。

例如,应用服务器110当检测到第一用户操控应用服务器110的第一应用,并触发改变第一应用中第一用户的用户数据的预设操作,其预设操作对应于更新用户积分时,生成改变第一用户的用户数据的预设操作(更新用户积分)对应的事件消息,以及将该消息事件存入消息队列。其中,该事件消息用于通知用户数据处理服务器120更新第一用户的用户积分;该事件消息包括第一用户的标识、用户积分更新值。第一用户的标识用于查找第一用户对应的用户积分,用户积分更新值用于用户数据处理服务器120将当前的用户积分更新为事件消息中的用户积分更新值。

其中,改变的用户数据与其他应用服务110进行共享或联动。

改变用户数据的预设操作可以是第一用户每天登录一次应用A的服务器,就增加用户积分10;应用A对应的应用服务器110在检测到第一用户登录应用A时,生成一个将第一用户的用户积分增加10的事件消息,并将该事件消息存入消息队列。

改变用户数据的预设操作也可以是第一用户一天累计在应用A的服务器的在线时长达到2小时,就增加用户积分20等等,具体还可以根据实际情况进行设置,此处不做限制。应用A对应的应用服务器110在检测到第一用户登录应用A,且在线时长达到2小时的时候,生成一个将第一用户的用户积分增加20的事件消息,并将该事件消息存入消息队列。

进一步地,用户数据可以是用户成长等级数据,例如,用户的积分,但并不限于此。

进一步地,应用服务器110根据用户输入的需求信息定义需求信息对应的事件消息。

例如,当用户有新的需求要添加时,向相应的应用服务器110中输入需求信息;其中,需求信息用于应用服务器110定义或封装事件消息。

应用服务器110在接收到用户输入的需求信息时,根据需求信息定义需求信息对应的事件消息。

用户数据处理服务器120用于获取存入消息队列的事件消息;其中,所述事件消息由所述用户数据处理服务器预先向所述消息队列订阅。

例如,消息队列在检测到应用服务器110存入新的事件消息时,通知用户数据处理服务器120获取应用服务器110存入消息队列的事件消息;也可以是消息队列在检测到应用服务器110存入新的事件消息时,主动向用户数据处理服务器120推送应用服务器110存入消息队列的事件消息。

其中,用户数据处理服务器120预先向消息队列订阅需要获取的事件消息,用户数据处理服务器120可以分类订阅事件消息。

用户数据处理服务器120可以获取消息队列在确定应用服务器110存入消息队列的事件消息为预先订阅的目标事件消息时,推送的应用服务器110存入消息队列的事件消息。

进一步地,用户数据处理服务器120还用于向所述消息队列订阅事件消息;其中,所述订阅事件消息用于订阅所述应用服务器生成的事件消息。应用服务器110在将生成的消息事件存入消息队列之后,用户数据处理服务器120还具体用于获取存入所述消息队列,且与订阅事件消息匹配的事件消息。

可以理解的是,用户数据处理服务器120可以在应用服务器110生成事件消息前,预先向消息队列订阅;当然,也可以实时增加或更新订阅的事件消息。

进一步地,用户数据处理服务器120还用于获取消息队列在确定该事件消息为订阅请求信息对应的目标事件消息时,向用户数据处理服务器推送的事件消息。

其中,当消息队列处于应用服务器110以及用户数据处理服务器120中时,用户数据处理服务器获取消息队列在确定该事件消息为订阅请求信息对应的目标事件消息时,向用户数据处理服务器推送的事件消息。

当消息队列处于独立的消息队列服务器中时,应用服务器110在将生成的消息事件存入消息队列之后,消息队列服务器当确定应用服务器110存入的事件消息为订阅请求信息对应的目标事件消息时,向用户数据处理服务器推送事件消息。用户数据处理服务器120用于获取消息队列服务器推送的事件消息。

用户数据处理服务器120用于根据获取到的事件消息修改预设的用户数据库中所述事件消息对应的用户数据。

例如,用户数据处理服务器120在获取到事件消息时,解析获取到的事件消息,并根据解析结果修改预设的用户数据库中事件消息对应的用户数据。其中,预设的用户数据库可以保存在用户数据处理服务器120,也可以保存在其他服务器(例如,云端服务器)中,此处不做限制。

比如,用户数据处理服务器120解析得到的事件消息对应于将第一用户的用户积分增加10的事件消息时,用户数据处理服务器120将预设的用户数据库中第一用户的用户积分在原来的基础上增加10。

具体地,下面以用户每天登陆一次应用A的服务器,就增加用户积分10的行为内容为例进行说明管理用户数据的系统管理用户数据的具体实现方法。

请一并参阅图2,图2是本发明管理用户数据的时序图。

如图2所示,1)消息队列MQ最先启动,用户等级数据处理服务器S启动后,向消息队列MQ发出用户事件消息的订阅请求,以向消息队列MQ订阅事件消息。其中,消息队列MQ在成功订阅事件消息时,可以向用户等级数据处理服务器S返回订阅成功的消息。

2)用户C登录应用A的服务器;

3)应用A的服务器在检测到用户C登录应用A的服务器时,应用A的服务器触发一个代表“用户每天登录一次应用A的服务器,就增加用户积分10”的事件消息N,并将事件消息发送给消息队列MQ。其中,应用A的服务器可以在用户C成功登录应用A的服务器时,向用户C返回登录成功的消息。

4)消息队列MQ收到应用A的服务器发送的事件消息N后,将其推送给订阅此类事件消息的用户等级数据处理服务器S。

5)用户等级数据处理服务器S收到事件消息N后,进行相应的事件消息处理,解析事件消息N对应的内容;事件消息N对应的内容为:“用户每天登录一次应用A的服务器,就增加用户积分10”。

6)根据解析得到的事件消息N对应的内容修改相应用户C的等级相关数据。其中,用户等级数据处理服务器S获取用户信息数据库中保存的用户C的等级相关数据,并在用户C当前的用户积分的基础上增加10。

上述方案,应用服务器当检测到改变用户数据的预设操作时,生成改变用户数据的预设操作对应的事件消息,并将消息事件存入消息队列;用户数据处理服务器获取存入消息队列的所述事件消息,以及根据事件消息修改用户数据库中所述事件消息对应的用户数据;其中,事件消息由用户数据处理服务器预先向消息队列订阅。由于通过消息队列统一管理改变用户数据的预设操作对应的事件消息,并统一由用户数据处理服务器根据事件消息的内容更新用户数据,因此,能够在多互联网应用间共同联动同一份用户数据时,可以保持各应用服务器自身的独立性,又可以不增加各应用服务器与用户数据间操作的耦合性,从而拥有更好的维护性和扩展性。

请参阅图3,图3是本发明管理用户数据的方法一实施例的流程图。本实施例中的管理用户数据的方法包括以下步骤:

S101:应用服务器当检测到改变用户数据的预设操作时,生成所述改变用户数据的预设操作对应的事件消息。

例如,在启动消息队列以及应用服务器之后,应用服务器当检测到第一用户操控应用服务器的第一应用,并触发改变第一应用中第一用户的用户数据的预设操作,其预设操作对应于更新用户积分时,生成改变第一用户的用户数据的预设操作(更新用户积分)对应的事件消息。其中,该事件消息用于通知用户数据处理服务器更新第一用户的用户积分;该事件消息包括第一用户的标识、用户积分更新值。第一用户的标识用于查找第一用户对应的用户积分,用户积分更新值用于用户数据处理服务器将当前的用户积分更新为事件消息中的用户积分更新值。

其中,改变的用户数据与其他应用服务进行共享或联动。

改变用户数据的预设操作可以是第一用户每天登录一次应用A的服务器,就增加用户积分10;应用A对应的应用服务器在检测到第一用户登录应用A时,生成一个将第一用户的用户积分增加10的事件消息。

改变用户数据的预设操作也可以是第一用户一天累计在应用A的服务器的在线时长达到2小时,就增加用户积分20等等,具体还可以根据实际情况进行设置,此处不做限制。应用A对应的应用服务器在检测到第一用户登录应用A,且在线时长达到2小时的时候,生成一个将第一用户的用户积分增加20的事件消息。

进一步地,用户数据可以是用户成长等级数据,例如,用户的积分,但并不限于此。

S102:所述应用服务器将所述消息事件存入消息队列。

应用服务器将生成的消息事件存入消息队列。

S103:用户数据处理服务器获取存入所述消息队列的所述事件消息;其中,所述事件消息由所述用户数据处理服务器预先向所述消息队列订阅。

例如,消息队列在检测到应用服务器存入新的事件消息时,通知用户数据处理服务器获取应用服务器存入消息队列的事件消息;也可以是消息队列在检测到应用服务器存入新的事件消息时,主动向用户数据处理服务器推送应用服务器存入消息队列的事件消息。

其中,用户数据处理服务器预先向消息队列订阅需要获取的事件消息,用户数据处理服务器可以分类订阅事件消息。

用户数据处理服务器可以获取消息队列在确定应用服务器存入消息队列的事件消息为预先订阅的目标事件消息时,推送的应用服务器存入消息队列的事件消息。

S104:用户数据处理服务器根据所述事件消息修改用户数据库中所述事件消息对应的用户数据。

例如,用户数据处理服务器在获取到事件消息时,解析获取到的事件消息,并根据解析结果修改用户数据库中事件消息对应的用户数据。其中,预设的用户数据库可以保存在用户数据处理服务器,也可以保存在其他服务器(例如,云端服务器)中,此处不做限制。

比如,用户数据处理服务器解析得到的事件消息对应于将第一用户的用户积分增加10的事件消息时,用户数据处理服务器将预设的用户数据库中第一用户的用户积分在原来的基础上增加10。

上述方案,应用服务器当检测到改变用户数据的预设操作时,生成改变用户数据的预设操作对应的事件消息,并将消息事件存入消息队列;用户数据处理服务器获取存入消息队列的所述事件消息,以及根据事件消息修改用户数据库中所述事件消息对应的用户数据;其中,事件消息由用户数据处理服务器预先向消息队列订阅。由于通过消息队列统一管理改变用户数据的预设操作对应的事件消息,并统一由用户数据处理服务器根据事件消息的内容更新用户数据,因此,能够在多互联网应用间共同联动同一份用户数据时,可以保持各应用服务器自身的独立性,又可以不增加各应用服务器与用户数据间操作的耦合性,从而拥有更好的维护性和扩展性。

请参阅图4,图4是本发明管理用户数据的方法另一实施例的流程图。本实施例中的管理用户数据的方法包括以下步骤:

S201:用户数据处理服务器向消息队列订阅事件消息;其中,所述订阅事件消息用于订阅应用服务器生成的事件消息。

例如,用户数据处理服务器在正常工作时,向消息队列订阅事件消息;其中,订阅事件消息用于订阅应用服务器生成的事件消息,以使得应用服务器在将生成的消息事件存入消息队列之后,用户数据处理服务器能够获取存入消息队列,且与订阅事件消息匹配的事件消息。

可以理解的是,事件消息是应用服务器根据改变用户数据的预设操作生成的,当应用服务器根据用户输入新的需求信息定义/封装新的需求信息对应的事件消息时,用户数据处理服务器能够向消息队列订阅应用服务器新的需求信息对应的事件消息。

可以理解的是,用户数据处理服务器可以在应用服务器生成事件消息前,预先向消息队列订阅;当然,也可以实时增加或更新订阅的事件消息。用户数据处理服务器可以分类订阅事件消息。

S202:应用服务器当检测到改变用户数据的预设操作时,生成所述改变用户数据的预设操作对应的事件消息。

例如,在启动消息队列以及应用服务器之后,应用服务器当检测到第一用户操控应用服务器的第一应用,并触发改变第一应用中第一用户的用户数据的预设操作,其预设操作对应于更新用户积分时,生成改变第一用户的用户数据的预设操作(更新用户积分)对应的事件消息。其中,该事件消息用于通知用户数据处理服务器更新第一用户的用户积分;该事件消息包括第一用户的标识、用户积分更新值。第一用户的标识用于查找第一用户对应的用户积分,用户积分更新值用于用户数据处理服务器将当前的用户积分更新为事件消息中的用户积分更新值。

其中,改变的用户数据与其他应用服务进行共享或联动。

改变用户数据的预设操作可以是第一用户每天登录一次应用A的服务器,就增加用户积分10;应用A对应的应用服务器在检测到第一用户登录应用A时,生成一个将第一用户的用户积分增加10的事件消息。

改变用户数据的预设操作也可以是第一用户一天累计在应用A的服务器的在线时长达到2小时,就增加用户积分20等等,具体还可以根据实际情况进行设置,此处不做限制。应用A对应的应用服务器在检测到第一用户登录应用A,且在线时长达到2小时的时候,生成一个将第一用户的用户积分增加20的事件消息。

进一步地,用户数据可以是用户成长等级数据,例如,用户的积分,但并不限于此。

进一步地,管理用户数据的方法还包括:所述应用服务器根据用户输入的需求信息定义所述需求信息对应的事件消息。

例如,当用户有新的需求要添加时,向相应的应用服务器中输入需求信息;其中,需求信息用于应用服务器定义或封装事件消息。

应用服务器在接收到用户输入的需求信息时,根据需求信息定义需求信息对应的事件消息。

S203:所述应用服务器将所述消息事件存入消息队列。

应用服务器将生成的消息事件存入消息队列。

S204:所述用户数据处理服务器获取存入所述消息队列,且与所述订阅事件消息匹配的事件消息。

在应用服务器将消息事件存入消息队列之后,用户数据处理服务器获取存入消息队列,且与订阅事件消息匹配的事件消息。其中,事件消息由用户数据处理服务器预先向消息队列订阅。

例如,消息队列在检测到应用服务器存入新的事件消息时,通知用户数据处理服务器获取应用服务器存入消息队列的事件消息;也可以是消息队列在检测到应用服务器存入新的事件消息时,主动向用户数据处理服务器推送应用服务器存入消息队列的事件消息。

进一步地,步骤S204包括:用户数据处理服务器获取所述消息队列在确定所述事件消息为所述订阅请求信息对应的目标事件消息时,向所述用户数据处理服务器推送的所述事件消息所述事件消息。

例如,应用服务器在将生成的消息事件存入消息队列之后,消息队列判断应用服务器存入消息队列的事件消息是否为用户数据处理服务器预先订阅的目标事件消息,如果消息队列确认应用服务器存入消息队列的事件消息为用户数据处理服务器预先订阅的目标事件消息。其中,事件消息由用户数据处理服务器预先向消息队列订阅。消息队列可以处于消息队列服务器,也可以处于应用服务器与用户数据处理服务器中,作为应用服务器与用户数据处理服务器之间的通信通道。

当确定应用服务器存入的事件消息为订阅请求信息对应的目标事件消息时,向用户数据处理服务器推送事件消息。用户数据处理服务器获取消息队列推送的事件消息。

S205:所述用户数据处理服务器根据所述事件消息修改用户数据库中所述事件消息对应的用户数据。

例如,用户数据处理服务器在获取到事件消息时,解析获取到的事件消息,并根据解析结果修改/更新用户数据库中事件消息对应的用户数据。其中,预设的用户数据库可以保存在用户数据处理服务器,也可以保存在其他服务器(例如,云端服务器)中,此处不做限制。

比如,用户数据处理服务器解析得到的事件消息对应于将第一用户的用户积分增加10的事件消息时,用户数据处理服务器将预设的用户数据库中第一用户的用户积分在原来的基础上增加10。

上述方案,应用服务器当检测到改变用户数据的预设操作时,生成改变用户数据的预设操作对应的事件消息,并将消息事件存入消息队列;用户数据处理服务器获取存入消息队列的所述事件消息,以及根据事件消息修改用户数据库中所述事件消息对应的用户数据;其中,事件消息由用户数据处理服务器预先向消息队列订阅。由于通过消息队列统一管理改变用户数据的预设操作对应的事件消息,并统一由用户数据处理服务器根据事件消息的内容更新用户数据,因此,能够在多互联网应用间共同联动同一份用户数据时,可以保持各应用服务器自身的独立性,又可以不增加各应用服务器与用户数据间操作的耦合性,从而拥有更好的维护性和扩展性。

当应用服务器根据用户输入新的需求信息定义/封装新的需求信息对应的事件消息时,用户数据处理服务器能够向消息队列订阅应用服务器新的需求信息对应的事件消息,便于管理与各应用服务器相关联的用户数据,能够提高对各应用服务器的维护效率,更便于扩展。

本发明各实施例中的消息队列可以是rabbitMQ、activeMQ。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1