CN101072386B - 业务服务器、系统消息服务器和消息广播方法 - Google Patents
业务服务器、系统消息服务器和消息广播方法 Download PDFInfo
- Publication number
- CN101072386B CN101072386B CN2007101230532A CN200710123053A CN101072386B CN 101072386 B CN101072386 B CN 101072386B CN 2007101230532 A CN2007101230532 A CN 2007101230532A CN 200710123053 A CN200710123053 A CN 200710123053A CN 101072386 B CN101072386 B CN 101072386B
- Authority
- CN
- China
- Prior art keywords
- message
- user
- lastmsgid
- system message
- read apparatus
- 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
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及网络技术领域,公开消息广播方法。该方法包括:第一业务服务器在接收到负载均衡器分发的携带用户标识的页面访问请求后,向系统消息服务器发送携带所述用户标识的第一查询请求;所述系统消息服务器根据所述第一查询请求,从用户消息列表中获取所述用户标识对应的最后阅读消息标识LastMsgID;根据所述LastMsgID判断是否有所述用户标识对应的未读系统消息,若有,所述第一业务服务器向所述用户终端返回表示用户有未读系统消息的提示信息。本发明还提供相应的业务服务器和系统消息服务器。本发明实施例可以提高消息广播系统对WAP操作的响应速度,并且改善数据库的性能。
Description
技术领域
本发明涉及网络技术领域,尤其涉及业务服务器、系统消息服务器和消息广播方法。
背景技术
在虚拟的网络社区环境中,系统消息广播是一种常见的业务模式,内容服务商可以通过广播方式将系统消息推送(PUSH)给社区中的每一位用户;而近年来,随着无线应用协议(Wireless Application Protocol,简称WAP)技术的不断升温,基于WAP应用的系统广播技术受到越来越多的关注。WAP是一种全球性的开放协议,能够把目前用超文本标记语言(Hypertext MarkupLanguage,简称HTML)描述的网页信息转换成用无线标记语言(WirelessMarkup Language,简称WML)描述的网页信息,显示在支持WAP页面浏览的移动终端或其他手持设备中。
在基于WAP应用的系统广播中,由于系统消息一般是由内容提供商主动推送给用户的,因此若一个用户已阅读过某条系统消息,则不应将该消息重复提示给该用户,以避免由于重复阅读同一条系统消息而引发用户的厌烦心理。以下给出目前较常用的一种基于WAP应用的系统广播的解决方案,该方案实现较简单,较适用于小用户量的情形,该方案包括以下步骤:
A1至A3、在检测到请求访问WAP页面的用户操作后,用户终端向负载均衡器发送携带有用户标识的页面访问请求;负载均衡器将所述页面访问请求分发到第一业务服务器进行处理;第一业务服务器接收到所述页面访问请求后,向数据服务器发送系统消息查询请求,其中携带有所述用户标识;
在本发明中,用户终端主要指支持WAP页面浏览的移动终端或其他手持设备;
一般情况下,WAP系统中配置有多个业务服务器,用于处理WAP相关业务;为平衡各业务服务器的负载,在WAP系统中还会配置一负载均衡器,负责将用户的WAP业务请求平衡分配给各业务服务器进行处理;
A4至A5、数据服务器接收到所述系统消息查询请求后,在数据库中查询该用户是否有未读的系统消息,若有,则向第一业务服务器返回查询响应消息,其中携带表示有所述用户标识对应的未读系统消息的指示信息;第一业务服务器向所述用户终端返回用户终端所请求的WAP页面,以及表示用户有未读系统消息的提示信息;
A6至A7、在检测到请求阅读未读系统消息的用户操作后,用户终端向负载均衡器发送携带有用户标识的消息阅读请求;负载均衡器将所述消息阅读请求分发到第二业务服务器进行处理;第二业务服务器将该请求转发至数据服务器;
由于负载均衡器分配业务时,主要考虑各业务服务器的负载均衡,因此用户终端发起的请求访问WAP页面的业务和请求阅读系统消息的业务极有可能是被分发给不同的业务服务器进行处理;
A8、数据服务器接收到所述消息阅读请求后,在数据库中查找所述用户标识对应的第一条未读系统消息,向第二业务服务器返回包括该系统消息的消息阅读请求响应消息,并将与该用户对应的该系统消息的阅读状态更新为已阅读;
A9、业务服务器向所述用户终端返回该系统消息。
在进行本发明创造过程中,发明人发现上述现有技术至少存在如下问题:由于所有的系统消息以及用户是否阅读系统消息的相关信息都存储在数据库中,因此每收到一个页面访问请求或消息阅读请求,业务服务器都会向数据库进行查询,当用户数量较多时,很容易出现在同一时刻会有很多用户发起访问WAP页面的操作的情形,这样在同一时刻对数据库的操作会非常密集,而且,通常情况下,数据库中除记录上述系统消息以及用户的LastMsgID以外,还会记录大量其他WAP业务相关的信息,数据库的结构通常较为复杂,相应的,向数据库进行查询时的操作也较复杂;综上,密集的访问和复杂的操作均会使得数据库的性能降低或者较易发生故障,进而降低系统对用户WAP操作的响应速度,甚至可能导致整个WAP系统不可用。
发明内容
本发明的实施例要解决的技术问题是提供业务服务器、系统消息服务器、和消息广播方法,可以在用户数量较多时,提高消息广播系统对WAP操作的响应速度。
为解决上述技术问题,本发明的实施例提供以下技术方案:
一种消息广播方法,包括:
第一业务服务器在接收到负载均衡器分发的携带用户标识的页面访问请求后,从所述第一业务服务器存储的用户消息列表中获取所述用户标识对应的最后阅读消息标识LastMsgID,根据所述LastMsgID在所述第一业务服务器存储的系统消息列表中查找是否有与所述用户标识对应的未读系统消息;当所述系统消息列表中有所述用户标识对应的未读系统消息时,向系统消息服务器发送携带所述用户标识的第一查询请求;所述页面访问请求由用户终端发送;
所述系统消息服务器根据所述第一查询请求,从用户消息列表中获取所述用户标识对应的LastMsgID;
根据所述LastMsgID判断是否有所述用户标识对应的未读系统消息,若有,所述第一业务服务器向所述用户终端返回表示用户有未读系统消息的提示信息。
一种业务服务器,包括接收单元、查询请求生成单元、判断单元、发送单元、标识获取单元和查找单元:
接收单元用于接收携带用户标识的页面访问请求;
标识获取单元用于在接收单元接收所述页面访问请求后,从用户消息列表中获取所述用户标识对应的LastMsgID;
查找单元用于根据所述LastMsgID在系统消息列表中查找是否有与所述用户标识对应的未读系统消息,在找到与所述用户标识对应的未读系统消息的情况下,向所述查询请求生成单元输出生成查询请求的控制命令;
查询请求生成单元包括控制命令接收单元和生成单元,控制命令接收单元用于接收所述生成查询请求的控制命令;生成单元用于在控制命令接收单元收到所述生成查询请求的控制命令后,生成携带所述用户标识的标识查询请求,生成携带所述用户标识的标识查询请求;
发送单元用于发送所述标识查询请求;
所述接收单元还用于接收携带所述用户标识对应的LastMsgID的标识查询请求响应消息;
判断单元用于根据所述LastMsgID判断在系统消息列表中是否有与该用户标识对应的未读系统消息,如果有,输出表示有未读系统消息的判断结果;
发送单元还用于在判断单元输出表示有未读系统消息的判断结果时,发送页面访问请求响应消息,其中携带表示有未读系统消息的指示信息。
一种业务服务器,包括接收单元、查询请求生成单元、消息获取单元和发送单元:
接收单元用于接收携带用户标识的页面访问请求;
标识获取单元用于在接收单元接收所述页面访问请求后,从用户消息列表中获取所述用户标识对应的LastMsgID;
查找单元用于根据所述LastMsgID在系统消息列表中查找是否有与所述用户标识对应的未读系统消息,在找到与所述用户标识对应的未读系统消息的情况下,向所述查询请求生成单元输出生成查询请求的控制命令;
查询请求生成单元包括控制命令接收单元和生成单元:控制命令接收单元用于接收所述生成查询请求的控制命令;生成单元用于在控制命令接收单元收到所述生成查询请求的控制命令后,生成携带所述用户标识的标识查询请求;
发送单元用于发送所述标识查询请求;
所述接收单元还用于接收携带所述用户标识对应的LastMsgID的标识查询请求响应消息;
消息获取单元用于根据所述LastMsgID从系统消息列表获取与该用户标识对应的未读系统消息;
发送单元还用于发送页面访问请求响应消息,其中携带所述所获取的未读系统消息。
从以上技术方案可以看出,本发明的实施例具有以下优点:
第一、提高消息广播系统对WAP操作的响应速度:在本实施例中,可以从用户消息列表中获取用户的最后阅读消息标识,进而根据LastMsgID查找是否有用户对应的未读系统消息,由于用户消息列表主要用于存储用户的LastMsgID,与数据库相比,形式更加简单,因此进行查询时的操作也更加简单,因此可以提高消息广播系统对WAP操作的响应速度。
第二、可以改善数据库的性能;由于用户消息列表存储在系统消息服务器中,这样,在有很多用户发起访问WAP页面的情况下,在系统消息服务器就可以获取用户的最后阅读消息标识,这样可以避免对数据库的大量操作,因此可以减轻数据库的负担,减少数据库性能下降或故障情况的发生。
附图说明
图1是本发明实施例四消息广播方法中是否有未读系统消息的查询流程图;
图2是本发明实施例四消息广播方法中系统消息阅读流程图;
图3是本发明实施例五业务服务器的结构图;
图4是本发明实施例六业务服务器的结构图;
图5是本发明实施例七业务服务器的结构图;
图6是本发明实施例八业务服务器的结构图;
图7是本发明实施例九系统消息服务器的结构图;
图8是本发明实施例十系统消息服务器的结构图;
图9是本发明实施例十一系统消息服务器的结构图。
具体实施方式
下面结合附图,对本发明提供的消息广播方法,以及相应的业务服务器和系统消息服务器的推荐实施例进行详细描述。
实施例一、一种消息广播方法,包括:
M1、第一业务服务器在接收到负载均衡器分发的携带用户标识的页面访问请求后,向系统消息服务器发送携带所述用户标识的第一查询请求;
其中,第一业务服务器在接收到所述页面访问请求后,还可以先从自己存储的用户消息列表中获取所述用户标识对应的最后阅读消息标识(以下简称LastMsgID),并根据所述LastMsgID在自己存储的系统消息列表中查找是否有与所述用户标识对应的未读系统消息,当所述系统消息列表中有所述用户标识对应的未读系统消息时,再向系统消息服务器发送携带用户标识的第一查询请求;若所述系统消息列表中没有所述用户标识对应的未读系统消息,则可以直接向所述用户终端返回表示用户无未读系统消息的提示信息;
若向系统消息服务器发送第一查询请求后已达到预定时间,或向系统消息服务器发送第一查询请求达到预定次数后,未收到系统消息服务器的响应消息,也可以直接向所述用户终端返回表示用户无未读系统消息的提示信息;
M2、所述系统消息服务器根据所述第一查询请求,从用户消息列表中获取所述用户标识对应的最后阅读消息标识LastMsgID;
M3、根据所述LastMsgID判断是否有所述用户标识对应的未读系统消息,若有,所述第一业务服务器向所述用户终端返回表示用户有未读系统消息的提示信息;
其中,根据所述LastMsgID判断是否有所述用户标识对应的未读系统消息可以是由所述第一业务服务器执行,也可以是由系统消息服务器根据所述LastMsgID在自己存储的系统消息列表中判断是否有所述用户标识对应的未读系统消息;
M4、第二业务服务器在接收到所述负载均衡器分发的携带所述用户标识的消息阅读请求后,向所述系统消息服务器发送携带所述用户标识的第二查询请求,所述消息阅读请求是所述用户终端在检测到请求阅读所述未读系统消息的用户操作后发送给负载均衡器的;
M5、所述系统消息服务器根据所述第二查询请求,从用户消息列表中获取所述用户标识对应的LastMsgID;
M6、根据所述LastMsgID获取所述用户标识对应的未读系统消息;
其中,可以由所述第一业务服务器,也可以是由系统消息服务器根据所述LastMsgID在自己存储的系统消息列表中获取所述用户标识对应的未读系统消息;
M7、所述第二业务服务器向所述用户终端返回所述未读系统消息;
本实施例中所述的用户消息列表主要用于记录网络用户的LastMsgID;所述的系统消息列表主要用于存储当前可提供给网络用户的所有系统消息。
实施例二、一种消息广播方法,包括:
S1、在检测到请求访问WAP页面的用户操作后,用户终端向负载均衡器发送携带有用户标识的页面访问请求;
S2、负载均衡器将所述页面访问请求分发到第一业务服务器进行处理;
S3、第一业务服务器向系统消息服务器发送携带用户标识的未读消息查询请求;
S4至S6、系统消息服务器从用户消息列表中获取所述用户标识对应的LastMsgID;根据所述LastMsgID判断在系统消息列表中是否有该用户标识对应的未读系统消息,若有,向第一业务服务器返回未读消息查询请求响应,其中携带表示用户有未读系统消息的指示信息;
系统消息服务器中存有用户消息列表,主要用于记录网络用户的LastMsgID;下表1给出用户消息列表的一种可选形式:
表1
用户标识 | 最后阅读消息标识 |
User1 | Msg1 |
User2 | Msg3 |
...... | ...... |
系统消息服务器中还存有系统消息列表,主要用于存储当前可提供给网络用户的所有系统消息;当有新的系统消息发布到数据服务器中的数据库时,数据服务器会将新发表的系统消息的标识、内容以及发布时间一起提供给系统消息服务器,系统消息服务器将上述内容增加到自己的系统消息列表中,这样,可以使得系统消息服务器中的系统消息与数据库中的系统消息保持同步;下表2给出所述系统消息列表的一种可选形式:
表2
消息标识 | 消息内容 | 发布时间 |
Msg1 | ...... | 08:00 |
Msg2 | ...... | 11:15 |
Msg3 | ...... | 14:00 |
...... | ...... | ...... |
在系统消息列表中还可以进一步规定系统消息面向的用户群(如只面向某一地区的用户等),下表3给出系统消息列表的另一种可选形式:
表3
消息标识 | 消息内容 | 发布时间 | 只向深圳用户进行广播 |
Msg1 | ...... | 08:00 | 是 |
Msg2 | ...... | 11:15 |
由于系统消息列表中存储有各系统消息的发布时间,因此,若列表中有系统消息的发布时间晚于LastMsgID对应的系统消息的发布时间,则所述发布时间较晚的系统消息是未读的系统消息;
S7至S8、第一业务服务器向所述用户终端返回所请求的WAP页面,该页面中有表示用户有未读系统消息的提示信息;所述用户终端显示所述包含表示用户有未读系统消息的提示信息的WAP页面;
S9至S10、在检测到请求阅读系统消息的用户操作后,用户终端向负载均衡器发送携带有用户标识的消息阅读请求;负载均衡器将所述消息阅读请求分发到第二业务服务器进行处理;
其中,所述请求阅读系统消息的用户操作可以是指上述WAP页面中表示用户有未读系统消息的提示信息被触发,也可以是消息页面中表示有其他未读消息的提示信息被触发;
S11、第二业务服务器将所述消息阅读请求转发至系统消息服务器;
S12、系统消息服务器从用户消息列表中获取所述用户标识对应的LastMsgID,根据该LastMsgID从系统消息列表中获取该用户的第一个未读系统消息;所述第一个未读系统消息可以是所有未读系统消息中发布时间最早的系统消息;
S13至S15、在用户消息列表中将该用户的LastMsgID更新为所述第一个未读系统消息的标识;根据所述更新后的LastMsgID在系统消息列表中获取标识为LastMsgID的系统消息;向第二业务服务器返回消息阅读请求响应消息,其中包括所述系统消息;
此外,若系统消息服务器判断用户在该第一个未读系统消息之外还有其他未读的系统消息,则还可以在所述消息阅读请求响应消息中携带表示还有其他未读消息的提示信息;
S16至S17、第二业务服务器向用户终端返回包括所述系统消息的消息页面文件;所述用户终端显示所述消息页面;
若系统消息服务器向第二业务服务器返回的消息阅读请求响应消息中还携带表示有其他未读消息的提示信息时,第二业务服务器向用户终端返回所述系统消息外,还可以返回表示有其他未读消息的提示信息。
在本实施例中,由于可以从用户消息列表中获取用户的最后阅读消息标识,进而根据LastMsgID查找是否有用户对应的未读系统消息,由于用户消息列表主要用于存储用户的LastMsgID,与数据库相比,形式更加简单,因此进行查询时的操作也更加简单,因此可以提高消息广播系统对WAP操作的响应速度;此外,由于用户消息列表存储在系统消息服务器中,这样,在有很多用户发起访问WAP页面的情况下,在系统消息服务器就可以获取用户的最后阅读消息标识,这样可以避免对数据库的大量操作,因此可以减轻数据库的负担,减少数据库性能下降或故障情况的发生。
实施例三、一种消息广播方法,包括以下流程:
P1、在检测到请求访问WAP页面的用户操作后,用户终端向负载均衡器发送携带有用户标识的页面访问请求;
P2、负载均衡器将所述页面访问请求分发到第一业务服务器进行处理;
P3、第一业务服务器向系统消息服务器发送携带用户标识的消息标识查询请求;
P4至P5、系统消息服务器从用户消息列表中获取所述用户标识对应的LastMsgID;向第一业务服务器返回消息标识查询请求响应消息,其中携带所获取的LastMsgID;
P6至P8、第一业务服务器根据所述LastMsgID判断在自己存储的系统消息列表中是否有该用户标识对应的未读系统消息,若有,向所述用户终端返回所请求的WAP页面文件,该页面中有表示用户有未读系统消息的提示信息;所述用户终端显示所述包含表示用户有未读系统消息的提示标记的WAP页面;
系统消息服务器和业务服务器中存有系统消息列表,存储当前可提供给网络用户的所有系统消息;当有新的系统消息发布到数据服务器中的数据库时,数据服务器会将新发表的系统消息的标识、内容以及发布时间一起提供给系统消息服务器,系统消息服务器将上述内容增加到自己的系统消息列表中,并提供给系统中各业务服务器;各业务服务器将上述内容增加到自己的系统消息列表中;这样,可以使得各业务服务器中的系统消息与数据库中的系统消息保持同步;
由于系统消息列表中存储有各系统消息的发布时间,因此,若列表中有系统消息的发布时间晚于LastMsgID对应的系统消息的发布时间,则所述发布时间较晚的系统消息是未读的系统消息;
P9至P10、在检测到请求阅读系统消息的用户操作后,用户终端向负载均衡器发送携带有用户标识的消息阅读请求;负载均衡器将所述消息阅读请求分发到第二业务服务器进行处理;
其中,所述请求阅读系统消息的用户操作可以是指上述WAP页面中表示用户有未读系统消息的提示信息被触发,也可以是消息页面中表示有其他未读消息的提示信息被触发;
P11、第二业务服务器将所述消息阅读请求转发至系统消息服务器;
P12至P13、系统消息服务器从用户消息列表中获取所述用户标识对应的LastMsgID;根据该LastMsgID从系统消息列表中获取该用户的第一个未读系统消息;
其中,第一个未读系统消息可以是所有未读系统消息中发布时间最早的系统消息;
P14至P15、在用户消息列表中将该用户的LastMsgID更新为所述第一个未读系统消息的标识;向第二业务服务器返回消息阅读请求响应消息,其中包括所述更新后的LastMsgID;
P16至P19、第二业务服务器将自己存储的用户消息列表中该用户的LastMsgID更新为所述系统消息服务器返回的LastMsgID;根据更新后的LastMsgID在自己存储的系统消息列表中获取标识为LastMsgID的系统消息;向用户终端返回包括所述系统消息的消息页面文件;所述用户终端显示所述消息页面;
此外,若第二业务服务器判断用户在该第一个未读系统消息之外还有其他未读的系统消息,在向用户终端返回的消息页面中还可以有表示有其他未读消息的提示信息。
在本实施例中,判断用户是否有未读系统消息的任务不再是由系统消息服务器完成,而是由业务服务器来完成,这具有以下两方面的优点:第一,由于系统中配置有多个业务服务器,当同一时刻有很多用户发起访问WAP页面的操作时,负载均衡器会将业务分配给各业务服务器分别进行处理,这样,可以降低系统消息服务器性能下降或故障情况的发生;第二、即使系统中有一个或几个业务服务器发生故障,也不会影响其他业务服务器对业务的处理。
实施例四、一种消息广播方法,包括以下流程:
B1至B2、在检测到请求访问WAP页面的用户操作后,用户终端向负载均衡器发送携带有用户标识的页面访问请求;负载均衡器将所述页面访问请求分发到第一业务服务器进行处理;
B3、第一业务服务器判断在本地是否有系统消息列表,若有,执行B5;否则,向系统消息服务器发送消息列表请求;
系统消息列表中存储当前可提供给网络用户的所有系统消息;数据服务器、系统消息服务器和业务服务器中均存有系统消息,当有新的系统消息发布到数据服务器的数据库时,数据服务器会将新发表的系统消息的标识、内容以及发布时间一起提供给系统消息服务器,系统消息服务器将上述内容增加到自己的系统消息列表中,并将其提供给各个业务服务器;各业务服务器将接收到的系统消息相关内容增加到自己的系统消息列表中,这样,可以使得系统消息服务器和各个业务服务器中的系统消息与数据库中的系统消息保持同步;
B4、第一业务服务器若收到系统消息服务器返回的系统消息列表,则在本地保存该列表,执行B5;否则,执行B12;
B5、从本地的用户消息列表中获取与所述用户标识对应的LastMsgID;
在各业务服务器和系统消息服务器中均存有用户消息列表,主要用于记录网络用户的LastMsgID;从后面的流程可以看出,系统消息服务器会根据各业务服务器的消息阅读请求,在一定条件下对自己用户消息列表中相关用户的LastMsgID进行更新,并将更新的结果反馈给发起该请求的业务服务器,而各业务服务器相互之间是独立的,因此,系统消息服务器的用户消息列表中记录的LastMsgID通常是准确的,业务服务器中记录的LastMsgID则有可能不是最新的信息;
B6、第一业务服务器根据所获取的LastMsgID判断在系统消息列表中是否有所述用户标识对应的未读系统消息,若有,向系统消息服务器发送携带用户标识的消息标识查询请求,执行B7;否则,执行B12;
由于系统消息列表中存储有各系统消息的发布时间,因此,若列表中有系统消息的发布时间晚于LastMsgID对应的系统消息的发布时间,则所述发布时间较晚的系统消息是未读的系统消息;
另外,若系统消息列表中对某系统消息的发布还附有其他条件,而该系统消息的发布时间晚于LastMsgID对应的系统消息的发布时间,那么还要进一步判断该用户是否符合所述的其他条件,若符合,则可以确定有该用户未读的系统消息;
当根据本地获取的LastMsgID判断在系统消息列表中有该用户未读的系统消息时,会向系统消息服务器发送携带有用户标识的消息标识查询请求,请求获取该用户的LastMsgID,这主要是由于系统消息服务器的用户消息列表中记录的LastMsgID通常是准确的,而业务服务器中记录的LastMsgID则有可能不是最新的信息;因此,从系统消息服务器获取用户的LastMsgID可以保证该信息的准确性;
另一方面,只有在根据从本地获取的用户的LastMsgID确定有用户未读的系统消息时向系统消息服务器请求获取用户的LastMsgID,而在该用户没有未读系统消息时就不再向系统消息服务器发起操作,这与直接向系统消息服务器请求LastMsgID相比,可以减少对系统消息服务器的操作,从而降低系统消息服务器的负担;
B7、若接收到系统消息服务器返回的该用户的LastMsgID,则执行B8;否则,执行B12;
B8、判断从本地的用户消息列表中获取的该用户的LastMsgID与从系统消息服务器获取的该用户的LastMsgID是否一致,若不一致,将本地的用户消息列表中该用户的LastMsgID更新为从系统消息服务器获取的LastMsgID,执行B9;若一致,执行B10;
B9、根据更新后的LastMsgID再判断在系统消息列表中是否有所述用户标识对应的未读系统消息,若有,执行B10;若没有,执行B12;
B10至B11、向所述用户终端返回所请求的WAP页面文件,该页面中有表示用户有未读系统消息的提示信息;所述用户终端显示所述包含表示用户有未读系统消息的提示信息的WAP页面;
B12至B13、认为该用户没有未读系统消息,只向所述用户终端返回所请求的WAP页面文件;所述用户终端显示该WAP页面,结束流程。
在上述流程中,当根据从本地获取的用户的LastMsgID确定用户没有未读系统消息,以及确定用户有未读系统消息后,向系统消息服务器发送消息标识查询请求而未收到响应消息的情况下,不再向系统消息服务器发起进一步的操作,而是直接认为用户没有未读系统消息,这可能会存在有用户未读消息而被漏掉的情况,可以这样处理的主要原因在于:一方面,可以保证业务的连续性,降低系统发生故障的可能性;另一方面,这些消息在后续的WAP操作中还有机会被看到;再者,考虑系统消息一般是由内容提供商主动推送给用户的,因此有些消息用户即使看不到也不会产生负面影响;
上述B1至B13给出从用户发起访问WAP页面的请求,到用户终端向用户显示所请求的WAP页面的流程,其中包括查询用户是否有未读系统消息的流程,可参考附图1;用户有未读系统消息时,还包括以下的系统消息阅读流程,该流程在B11之后执行,可参考附图2:
C1至C2、在检测到请求阅读系统消息的用户操作后,用户终端向负载均衡器发送携带有用户标识的消息阅读请求;负载均衡器将所述消息阅读请求分发到第二业务服务器进行处理;
其中,所述请求阅读系统消息的用户操作可以是指WAP页面中表示用户有未读系统消息的提示信息被触发,也可以是消息页面中表示有其他未读消息的提示信息被触发;
C3、第二业务服务器将所述消息阅读请求转发至系统消息服务器;
C4、系统消息服务器在用户消息列表中查找所述用户标识,若找到,直接执行C5;若找不到,则在用户消息列表中为该用户标识创建新的表项,并设置该用户的LastMsgID为0(表示所有系统消息均未阅读);
C5、根据该用户标识对应的LastMsgID在本地的系统消息列表中查找所述用户标识对应的第一个未读系统消息,若找到,执行C8;若未找到未读系统消息,执行C6;
其中,第一个未读系统消息可以是所有未读系统消息中发布时间最早的系统消息;若用户的LastMsgID为0,则该用户的第一个未读消息可以是系统消息列表中发布时间最早的消息;
C6、将本地的系统消息列表与数据库中的系统消息进行同步,根据所述LastMsgID在进行同步后的系统消息列表中查找所述用户标识对应的第一个未读系统消息,若找到,执行C8;若仍未找到未读系统消息,执行C7;
其中,系统消息服务器可以向数据服务器发送系统消息更新请求,数据服务器根据该请求向系统消息服务器提供数据库中的系统消息,系统消息服务器根据所述系统消息对自己的系统消息列表进行更新,从而实现本地系统消息与数据库中系统消息的同步;
C7、向第二业务服务器返回表示阅读失败的阅读标志位和LastMsgID,执行C9;
C8、设置该用户的LastMsgID为所查找到的第一个未读消息的标识,向第二业务服务器返回表示阅读成功的阅读标志位和LastMsgID;
C9、第二业务服务器判断系统消息服务器返回的阅读标志位是否表示阅读成功,若是,将系统消息服务器返回的LastMsgID更新到本地的用户消息列表中;否则,执行C14;
C10、在本地的系统消息列表中查找标识为LastMsgID的系统消息,若找到,执行C12;若未找到,执行C11;
C11、将本地的系统消息列表与系统消息服务器中的系统消息列表进行同步,在进行同步后的系统消息列表中重新查找标识为LastMsgID的系统消息,若找到,执行C12;若仍未找到,执行C14;
第二业务服务器可以向系统消息服务器发送系统消息列表请求,系统消息服务器根据该请求向第二业务服务器提供存储的系统消息列表,第二业务服务器根据该系统消息列表对自己的系统消息列表进行更新,从而实现本地的系统消息列表与系统消息服务器中系统消息列表的同步;
C12至C13、向用户终端返回包括查找到的系统消息的消息页面文件;所述用户终端显示所述消息页面;
此外,若第二业务服务器判断用户在该第一个未读系统消息之外还有其他未读的系统消息,在向用户终端返回的消息页面中还可以有表示有其他未读消息的提示信息;
C14、通知用户终端直接返回到前一个WAP页面。
本领域普通技术人员可以理解实现上述消息广播方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,所述的存储介质包括ROM/RAM、磁碟、光盘等。
实施例五、一种业务服务器,参考图3,包括接收单元110、查询请求生成单元120、判断单元130和发送单元140:
接收单元110用于接收携带用户标识的页面访问请求;
查询请求生成单元120用于在接收单元110接收所述页面访问请求后,生成携带所述用户标识的标识查询请求;
发送单元140用于发送所述标识查询请求;
所述接收单元110还用于接收携带所述用户标识对应的LastMsgID的标识查询请求响应消息;
判断单元130用于根据所述LastMsgID判断在系统消息列表中是否有与该用户标识对应的未读系统消息,如果有,输出表示有未读系统消息的判断结果;
发送单元140还用于在判断单元130输出表示有未读系统消息的判断结果时,发送页面访问请求响应消息,其中携带表示有未读系统消息的指示信息。
实施例六、一种业务服务器,参考图4,包括接收单元210、标识获取单元220、查找单元230、查询请求生成单元240、判断单元250和发送单元260:
接收单元210用于接收携带用户标识的页面访问请求;
标识获取单元220用于在接收单元210接收所述页面访问请求后,从用户消息列表中获取所述用户标识对应的LastMsgID;
查找单元230用于根据所述LastMsgID在系统消息列表中查找是否有与所述用户标识对应的未读系统消息,在找到与所述用户标识对应的未读系统消息的情况下,向所述查询请求生成单元240输出生成查询请求的控制命令;
查询请求生成单元240用于生成携带所述用户标识的标识查询请求;具体包括控制命令接收单元241和生成单元242:
控制命令接收单元241用于接收所述生成查询请求的控制命令;
生成单元242用于在控制命令接收单元241收到所述生成查询请求的控制命令后,生成携带所述用户标识的标识查询请求;
发送单元260用于发送所述标识查询请求;
接收单元210还用于接收携带所述用户标识对应的LastMsgID的标识查询请求响应消息;
判断单元250用于根据所述LastMsgID判断在系统消息列表中是否有与该用户标识对应的未读系统消息,如果有,输出表示有未读系统消息的判断结果;
发送单元260还用于在判断单元250输出表示有未读系统消息的判断结果时,发送页面访问请求响应消息,其中携带表示有未读系统消息的指示信息。
实施例七、一种业务服务器,参考图5,包括接收单元310、查询请求生成单元320、消息获取单元330和发送单元340:
接收单元310用于接收携带用户标识的页面访问请求;
查询请求生成单元320用于在接收单元310接收所述页面访问请求后,生成携带所述用户标识的标识查询请求;
发送单元340用于发送所述标识查询请求;
接收单元310还用于接收携带所述用户标识对应的LastMsgID的标识查询请求响应消息;
消息获取单元330用于根据所述LastMsgID从系统消息列表获取与该用户标识对应的未读系统消息;
发送单元340还用于发送页面访问请求响应消息,其中携带所述所获取的未读系统消息。
实施例八、一种业务服务器,参考图6,包括接收单元410、标识获取单元420、查找单元430、查询请求生成单元440、消息获取单元450和发送单元460:
接收单元410用于接收携带用户标识的页面访问请求;
标识获取单元420用于在接收单元410接收所述页面访问请求后,从用户消息列表中获取所述用户标识对应的LastMsgID;
查找单元430用于根据所述LastMsgID在系统消息列表中查找是否有与所述用户标识对应的未读系统消息,在找到与所述用户标识对应的未读系统消息的情况下,向所述查询请求生成单元440输出生成查询请求的控制命令;
查询请求生成单元440用于在接收单元410接收所述页面访问请求后,生成携带所述用户标识的标识查询请求;具体包括控制命令接收单元441和生成单元442:
控制命令接收单元441用于接收所述生成查询请求的控制命令;
生成单元442用于在控制命令接收单元441收到所述生成查询请求的控制命令后,生成携带所述用户标识的标识查询请求;
发送单元460用于发送所述标识查询请求;
接收单元410还用于接收携带所述用户标识对应的LastMsgID的标识查询请求响应消息;
消息获取单元450用于根据所述LastMsgID从系统消息列表获取与该用户标识对应的未读系统消息;
发送单元460还用于发送页面访问请求响应消息,其中携带所述所获取的未读系统消息。
值得说明的是,上述实施例五至实施例八中业务服务器既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现;既可以作为独立的产品销售或使用,也可以存储在一个计算机可读取存储介质中。
实施例九、一种系统消息服务器,参考图7,包括接收单元510、消息标识获取单元520和发送单元530:
接收单元510用于接收携带用户标识的标识查询请求;
消息标识获取单元520用于根据所述标识查询请求从用户消息列表中获取与所述用户标识对应的LastMsgID;
发送单元530用于发送携带所述LastMsgID的标识查询请求响应消息。
实施例十、一种系统消息服务器,参考图8,包括接收单元610、消息标识获取单元620、判断单元630和发送单元640:
接收单元610用于接收携带用户标识的未读消息查询请求;
消息标识获取单元620用于根据所述未读消息查询请求从用户消息列表中获取与所述用户标识对应的LastMsgID;
判断单元630用于根据所述LastMsgID判断在系统消息列表中是否有与该用户标识对应的未读系统消息,如果有,输出表示有未读系统消息的判断结果;
发送单元640用于在判断单元630输出表示有未读系统消息的判断结果时,发送未读消息查询请求响应消息,其中携带所述表示有未读系统消息的指示信息。
实施例十一、一种系统消息服务器,参考图9,包括接收单元710、消息标识获取单元720、消息获取单元730和发送单元740:
接收单元710用于接收携带用户标识的消息获取请求;
消息标识获取单元720用于根据所述消息获取请求从用户消息列表中获取与所述用户标识对应的LastMsgID;
消息获取单元730用于根据所述LastMsgID从系统消息列表获取与该用户标识对应的未读系统消息;
发送单元740用于发送消息获取请求响应消息,其中携带所述所获取的未读系统消息。
值得说明的是,上述实施例九至实施例十一中系统消息服务器既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现;既可以作为独立的产品销售或使用,也可以存储在一个计算机可读取存储介质中。
在本发明的更多实施例中,上述各实施例中所述的用户消息列表,和/或系统消息列表可以存储在RAM中,以提高读写速度,进一步提高系统对WAP操作的响应速度。
以上对本发明实施例所提供的业务服务器、系统消息服务器、消息广播方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种消息广播方法,其特征在于,包括:
第一业务服务器在接收到负载均衡器分发的携带用户标识的页面访问请求后,从所述第一业务服务器存储的用户消息列表中获取所述用户标识对应的最后阅读消息标识LastMsgID,根据所述LastMsgID在所述第一业务服务器存储的系统消息列表中查找是否有与所述用户标识对应的未读系统消息;当所述系统消息列表中有所述用户标识对应的未读系统消息时,向系统消息服务器发送携带所述用户标识的第一查询请求;所述页面访问请求由用户终端发送;
所述系统消息服务器根据所述第一查询请求,从用户消息列表中获取所述用户标识对应的LastMsgID;
根据所述LastMsgID判断是否有所述用户标识对应的未读系统消息,若有,所述第一业务服务器向所述用户终端返回表示用户有未读系统消息的提示信息。
2.如权利要求1所述的消息广播方法,其特征在于,所述第一业务服务器向所述用户终端返回表示用户有未读系统消息的提示信息后还包括:
第二业务服务器在接收到所述负载均衡器分发的携带所述用户标识的消息阅读请求后,向所述系统消息服务器发送携带所述用户标识的第二查询请求,所述消息阅读请求是所述用户终端在检测到请求阅读所述未读系统消息的用户操作后发送给负载均衡器的;
所述系统消息服务器根据所述第二查询请求,从用户消息列表中获取所述用户标识对应的LastMsgID;
根据所述LastMsgID获取所述用户标识对应的未读系统消息;
所述第二业务服务器向所述用户终端返回所述未读系统消息。
3.如权利要求1所述的消息广播方法,其特征在于,所述根据LastMsgID在自己存储的系统消息列表中查找是否有与所述用户标识对应的未读系统消息后还包括:若所述系统消息列表中没有所述用户标识对应的未读系统消息,则直接向所述用户终端返回表示用户无未读系统消息的提示信息。
4.如权利要求2所述的消息广播方法,其特征在于,所述向系统消息服务器发送携带用户标识的第一查询请求后还包括:若向系统消息服务器发送第一查询请求后已达到预定时间,或向系统消息服务器发送第一查询请求达到预定次数后,未收到系统消息服务器的响应消息,则直接向所述用户终端返回表示用户无未读系统消息的提示信息。
5.如权利要求1至4任一项所述的消息广播方法,其特征在于,所述用户消息列表,和/或系统消息列表存储在RAM中。
6.一种业务服务器,其特征在于,包括接收单元、查询请求生成单元、判断单元、发送单元、标识获取单元和查找单元:
接收单元用于接收携带用户标识的页面访问请求;
标识获取单元用于在接收单元接收所述页面访问请求后,从用户消息列表中获取所述用户标识对应的LastMsgID;
查找单元用于根据所述LastMsgID在系统消息列表中查找是否有与所述用户标识对应的未读系统消息,在找到与所述用户标识对应的未读系统消息的情况下,向所述查询请求生成单元输出生成查询请求的控制命令;
查询请求生成单元包括控制命令接收单元和生成单元,控制命令接收单元用于接收所述生成查询请求的控制命令;生成单元用于在控制命令接收单元收到所述生成查询请求的控制命令后,生成携带所述用户标识的标识查询请求,生成携带所述用户标识的标识查询请求;
发送单元用于发送所述标识查询请求;
所述接收单元还用于接收携带所述用户标识对应的LastMsgID的标识查询请求响应消息;
判断单元用于根据所述LastMsgID判断在系统消息列表中是否有与该用户标识对应的未读系统消息,如果有,输出表示有未读系统消息的判断结果;
发送单元还用于在判断单元输出表示有未读系统消息的判断结果时,发送页面访问请求响应消息,其中携带表示有未读系统消息的指示信息。
7.一种业务服务器,其特征在于,包括接收单元、查询请求生成单元、消息获取单元、发送单元、标识获取单元和查找单元:
接收单元用于接收携带用户标识的页面访问请求;
标识获取单元用于在接收单元接收所述页面访问请求后,从用户消息列表中获取所述用户标识对应的LastMsgID;
查找单元用于根据所述LastMsgID在系统消息列表中查找是否有与所述用户标识对应的未读系统消息,在找到与所述用户标识对应的未读系统消息的情况下,向所述查询请求生成单元输出生成查询请求的控制命令;
查询请求生成单元包括控制命令接收单元和生成单元:控制命令接收单元用于接收所述生成查询请求的控制命令;生成单元用于在控制命令接收单元收到所述生成查询请求的控制命令后,生成携带所述用户标识的标识查询请求;
发送单元用于发送所述标识查询请求;
所述接收单元还用于接收携带所述用户标识对应的LastMsgID的标识查询请求响应消息;
消息获取单元用于根据所述LastMsgID从系统消息列表获取与该用户标识对应的未读系统消息;
发送单元还用于发送页面访问请求响应消息,其中携带所述所获取的未读系统消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101230532A CN101072386B (zh) | 2007-06-22 | 2007-06-22 | 业务服务器、系统消息服务器和消息广播方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101230532A CN101072386B (zh) | 2007-06-22 | 2007-06-22 | 业务服务器、系统消息服务器和消息广播方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101072386A CN101072386A (zh) | 2007-11-14 |
CN101072386B true CN101072386B (zh) | 2010-06-23 |
Family
ID=38899332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101230532A Active CN101072386B (zh) | 2007-06-22 | 2007-06-22 | 业务服务器、系统消息服务器和消息广播方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101072386B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101414373B1 (ko) * | 2008-02-13 | 2014-08-06 | 삼성전자주식회사 | 통합 메시징 서비스의 인터워킹 방법 |
CN102143126B (zh) * | 2010-01-29 | 2016-04-13 | 北京邮电大学 | Cpm会谈历史记录的访问方法及消息存储服务器 |
CN102609415A (zh) * | 2011-01-21 | 2012-07-25 | 腾讯科技(深圳)有限公司 | 一种存储阅签、定位消息的方法、装置及定位消息的系统 |
CN102740274B (zh) * | 2011-04-08 | 2015-11-11 | 腾讯科技(深圳)有限公司 | 多终端更新信息提醒同步的方法、装置及系统 |
CN102769579B (zh) * | 2011-05-05 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 一种微博消息的显示方法、微博终端及微博服务器端 |
US9887953B2 (en) | 2011-05-05 | 2018-02-06 | Tencent Technology (Shenzhen) Company Limited | System and method for displaying micro-blog message, micro-blog terminal and server |
CN102986173B (zh) * | 2011-07-12 | 2015-06-03 | 华为技术有限公司 | 消息状态设置方法和cpm业务服务器 |
CN103944799B (zh) * | 2013-01-18 | 2018-05-01 | 阿里巴巴集团控股有限公司 | 消息处理方法及系统 |
US9215201B2 (en) * | 2013-03-13 | 2015-12-15 | Microsoft Technology Licensing, Llc | Providing an unseen message count across devices |
CN104426843B (zh) * | 2013-08-21 | 2017-09-22 | 北大方正集团有限公司 | 微博账号自动授权方法及设备 |
KR20160061681A (ko) * | 2014-11-24 | 2016-06-01 | 삼성전자주식회사 | 메시지 전송 시스템, 메시지 전송 서버, 사용자 단말 장치, 메시지 전송 방법 및 메시지 수신 방법 |
CN105786856A (zh) * | 2014-12-24 | 2016-07-20 | 常熟市盛铭信息技术有限公司 | 一种基于个性配置的web页面展现方法及系统 |
CN106888240A (zh) * | 2015-12-16 | 2017-06-23 | 天脉聚源(北京)科技有限公司 | 一种页面数据发布方法及系统 |
CN106899493B (zh) * | 2017-02-22 | 2020-04-24 | 广东网金控股股份有限公司 | 基于UDP与Https实现的消息推送方法及其装置 |
CN111327719B (zh) * | 2020-02-11 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置、业务服务器及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1403934A (zh) * | 2001-09-06 | 2003-03-19 | 华为技术有限公司 | 对流媒体服务器实现负载均衡的方法和设备 |
CN1853388A (zh) * | 2003-08-07 | 2006-10-25 | 施克莱无线公司 | 高效的新电子邮件发现 |
-
2007
- 2007-06-22 CN CN2007101230532A patent/CN101072386B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1403934A (zh) * | 2001-09-06 | 2003-03-19 | 华为技术有限公司 | 对流媒体服务器实现负载均衡的方法和设备 |
CN1853388A (zh) * | 2003-08-07 | 2006-10-25 | 施克莱无线公司 | 高效的新电子邮件发现 |
Non-Patent Citations (1)
Title |
---|
同上. |
Also Published As
Publication number | Publication date |
---|---|
CN101072386A (zh) | 2007-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101072386B (zh) | 业务服务器、系统消息服务器和消息广播方法 | |
CN103377652B (zh) | 一种用于进行语音识别的方法、装置和设备 | |
EP2065850A1 (en) | Method, system and apparatus for collecting user information | |
CN101247362B (zh) | 即时通信联系人资料的更新方法以及即时通信系统 | |
CN106997557B (zh) | 订单信息采集方法及装置 | |
US20040203956A1 (en) | Method and apparatus for providing wireless messaging | |
CN102609488A (zh) | 客户端及其数据查询方法、服务端和数据查询系统 | |
CN101465917A (zh) | 一种通信终端信息分组的方法及通信终端 | |
CN102932445A (zh) | 网络内容状态的获取方法和装置 | |
KR20190048303A (ko) | 네크워크 상의 사용자의 빅데이터를 이용한 사용자별 맞춤형 상품 추천 방법 및 이에 사용되는 관리 서버 | |
US20060112083A1 (en) | Object relation information management program, method, and apparatus | |
CN107391764B (zh) | 业务数据查询方法 | |
CN111782897A (zh) | 用户权益管理方法、服务器、系统、设备及介质 | |
WO2010046840A1 (en) | Method and node for selecting content for use in a mobile user device | |
US8515929B2 (en) | Online propagation of data updates | |
CN102325098B (zh) | 群信息获取方法和系统 | |
CN101902528A (zh) | 一种存储联系人信息的方法、系统及移动终端 | |
CN113377817A (zh) | 数据处理方法、系统、设备及存储介质 | |
CN102611725B (zh) | 一种存储节点的方法及装置 | |
JP5321302B2 (ja) | データベースアクセスプログラム、データ取得装置及びデータベースアクセス方法 | |
CN103517202A (zh) | 查询指令的获取及下发方法、系统和移动终端及服务器 | |
JP2018517200A (ja) | データ処理方法及び装置 | |
CN112949326A (zh) | 信息查询方法、装置、设备和计算机可读介质 | |
CN113609130B (zh) | 获取网关接入数据的方法、装置、电子设备及存储介质 | |
CN111553776B (zh) | 数据处理方法、装置和电子设备 |
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 |