呈现业务中通知消息任务的处理方法和装置的制作方法

文档序号:7759751阅读:164来源:国知局
专利名称:呈现业务中通知消息任务的处理方法和装置的制作方法
技术领域
本发明涉及通信领域,具体涉及呈现业务中通知消息任务的处理方法和装置。
背景技术
当前,互联网业务的及时通信业务应用越来越广泛,而即时通信业务极大的依赖 于呈现业务。所谓呈现业务(即Presence Service)就是基于某种通信方式(如无线网、 有线网等)或协议(如sip协议、http协议或soap协议等),通过各种特定的接入规则来 实时获取用户所关心的呈现信息(即Presence Information,包括实时状态、通信能力、通 信方式、心情、爱好等等),并将呈现信息实时的展示给用户。呈现业务通过各种终端、各种网络通信方式将用户的呈现信息实时传递给订阅他 或者关注他状态信息的人,它允许用户订阅另一个用户的状态,以使该用户可获取到另一 个用户当前或变更的实时状态信息,也允许用户实时查询另一个用户当前的状态信息。通 过呈现业务,用户可以设定在哪种状态下自己有哪些通信能力以及希望采取哪种通信方 式,也可以订阅他人的通信状态信息,以便主被叫双方在特定的场合选择最适合的通信方 式,从而提高通信效率和通信质量。呈现业务作为即时通信业务的核心功能,它体现了即时 通信业务的时效性和准确性,受到了很大的重视和关注,因此呈现信息将直接影响用户的 体验度和认可度。图1描述了目前实现呈现业务的系统结构,包括客户端或应用服务器、呈现服务 器(Presence Server)禾口呈现 XDMS 月艮务器(Presence XML DocumentManagement System, 呈现ml文件管理服务器),其中呈现服务器包括订阅处理装置、发布处理装置、通知处理 装置和存储装置。客户端或应用服务器称为呈现信息源或者呈现信息观察者,它可以向呈现服务器 发送发布消息(Pulish Message),也可以作为观察者订阅其他用户的呈现信息并接受来自 呈现服务器发来的通知消息(Notify Message) 0订阅处理装置主要是接收客户端或应用服务器发来的订阅消息(Subscribe Message),并根据接入认证规则和被订阅呈现体预置的授权规则(该授权规则存储在XDMS 服务器上)来确认订阅结果并返回订阅结果响应;如果订阅成功,则调用呈现服务器的存 储装置存储订阅关系,并根据被订阅者发布的呈现信息调用呈现服务器的通知处理装置向 订阅的客户端或应用服务器发送呈现信息通知消息。Subscribe、Publish、Notify消息均 为SIP消息。发布处理装置主要是接收客户端或应用服务器发来的发布消息 (PublishMessage),并根据接入认证规则来确认发布结果并返回发布响应结果;如果发布 成功,则调用呈现服务器的存储装置存储发布信息,并在存储装置获取发布者的订阅关系 信息向订阅者发送呈现信息通知信息。通知处理装置作为呈现信息获取的主要渠道,在呈现服务器中起到关键作用。它 供发布处理装置和订阅处理装置调用,向订阅呈现信息的客户端或应用服务器发送呈现通
3知信息。现有的通知处理方式是在呈现信息发布、呈现信息变更、订阅呈现信息、呈现信息 订阅、订阅过期或发布过期等需要发送通知时调用通知处理装置向客户端或应用服务器发 送通知,并且通知消息体过大还需要分割进行分发,因此存在很大的处理压力和不确定性; 根据用户使用量的不同通知消息发送也不同,使用量越大通知处理的量就越大,因此对消 息处理的实时性,呈现信息获取的实时性受到影响。呈现XDMS服务器主要是以XML形式存储呈现体的群组用户、列表用户以及相关授 权规则等。以下结合图1实现呈现业务的系统结构所示,阐述现有技术中呈现信息获取的过 程和方法,如A用户登录即时消息终端后,及时消息终端向呈现服务器发布自己当前的状 态,并对自己的好友、列表和群组等向呈现服务器发起订阅请求,呈现服务器获取A用户的 发布状态和订阅请求后对其进行存储,当作为A用户的好友B用户也登录及时消息终端后, 呈现服务器将向A用户发送B用户的状态通知,这时使A用户立即获取到B用户的实时状 态,这样A用户就可以知道B用户的呈现信息并选择B用户各种通信方式最佳的通信方式 与B用户取得联系。从上述呈现信息获取的过程和方法中可以看出,现有的呈现信息方法存在以下不 足由于所有的订阅和发布都需要发送通知,从现有的呈现业务的系统结构中不难看出,这 样将极大的增加通知处理装置的处理性能和资源压力,造成消息处理瓶颈形成热点效应, 而且如果存在消息过大而需要分发的情况就将更加严重,如此造成的延时会降低呈现系统 的可靠性和用户体验度。

发明内容
本发明所要解决的技术问题是解决现有的呈现业务,资源压力大,从而降低呈现 系统可靠性的问题。为了解决上述技术问题,本发明所采用的技术方案是提供一种呈现业务中通知消 息任务的处理方法,将通知消息任务动态地分配到多个通知消息堆栈单元中,与多个通知 消息堆栈单元一一对应的通知消息处理单元分别同时取出通知消息堆栈单元中栈底的通 知消息任务后进行处理并发送,所述各个通知消息处理单元为独立的线程不停地运行。在上述方法中,每个通知消息堆栈单元均为独立的内存单元,采用FIFO堆栈的方 式存、取通知消息任务。在上述方法中,以每个通知消息堆栈单元中未处理的通知消息任务的个数是否为 最少来确定该通知消息堆栈单元是否为优先通知消息堆栈单元的判断结果,新收到的通知 消息任务分配到优先消息堆栈单元中。在上述方法中,系统初始化时通过读取用户设置的配置文件设定通知消息堆栈单 元和通知消息处理单元的分配数量以及通知消息的发送速率。本发明还提供了一种呈现业务中通知消息任务的处理装置,包括多个通知消息堆栈单元,采用FIFO堆栈的方式存、取通知消息任务;多个通知消息处理单元,分别与多个通知消息堆栈单元一一对应,所述通知消息 处理单元为一个独立的线程不停地扫描获取通知消息堆栈单元栈底的通知消息任务并进 行处理和发送;
通知消息初始化单元,根据配置参数生成多个通知消息堆栈单元和通知消息处理 单元,初始化所述通知消息堆栈单元和通知消息处理单元,并启动通知消息处理单元;通知消息分配单元,根据分配策略动态地将新接收到通知消息任务分配给优先通 知消息堆栈单元;所述分配策略是指,各个通知消息堆栈单元中当前未处理的通知消息任务的个数 最少的一个为优先通知消息堆栈单元。在上述装置中,通知消息初始化单元通过读取用户设置的配置参数设定通知消息 堆栈单元与通知消息处理单元的数量以及通知消息的发送速率。在上述装置中,如果通知消息堆栈单元中当前未处理的通知消息任务的个数最少 的有多个,则采用优先就近原则设置其中首个为优先通知消息堆栈单元。与现有方法或系统相比,本发明在进行呈现信息通知处理过程中,对呈现信息通 知任务进行了分流,实现了多通道同时处理呈现信息通知任务,提高了通知消息处理的时 效性,减少了由于呈现信息通知任务堵塞而造成的延时。与现有方法或系统相比,本发明根据实际呈现信息处理情况配置通知消息处理单 元的数量改善通知消息处理的效率和性能瓶颈。与现有方法或系统相比,本发明可配置呈现信息通知处理其他参数,如通知消息 处理速率等,使通知消息处理实现动态化,个性化的要求。


图1是现有呈现业务的系统结构示意图;图2是本发明提供的呈现业务的通知消息任务处理装置一种具体实施例示意图;图3是基于堆栈的FIFO算法的实现示意图;图4为应用本发明呈现业务的通知消息任务处理装置的呈现业务系统示意图。
具体实施例方式本发明的基本技术思想是通过对通知消息任务采用多通道多线程的处理方式和 负载均衡的设计思想,将通知消息任务动态分配到各个通道对应的通知消息堆栈中,各通 道同时进行通知消息任务的处理,具有多线程多任务处理的高效快捷特点,而且可以方便 地对通道数量和发送速率等个性化参数进行配置,极大地提高了呈现系统的可靠性和用户 体验度。下面结合附图对本发明做出详细的说明。图2为本发明提供的呈现业务中通知消息任务的处理装置的一种具体实施例示 意图,如图2所示,该装置包括通知消息初始化单元、通知消息分配单元以及多个通知消息 堆栈单元和与其一一对应的通知消息处理单元。多个通知消息堆栈单元组成通知消息堆栈 单元集合,多个通知消息处理单元组成通知消息处理单元集合。所述通知消息初始化单元通过读取用户设置的配置文件获得通知消息堆栈单元 与通知消息处理单元的分配数量以及发送速率等个性化参数,并根据所述分配数量设置多 个通知消息堆栈单元以及与其一一对应的通知消息处理单元,然后将上述多个通知消息堆 栈单元以及通知消息处理单元进行初始化并启动消息处理单元。
所述通知消息分配单元,根据分配策略动态地将新收到的通知消息任务向优先通 知消息堆栈单元分配,所述分配策略是指,各个通知消息堆栈单元中未处理的通知消息任 务的个数最小的通知消息堆栈单元置为优先通知消息堆栈单元。如果通知消息堆栈单元中 当前未处理的通知消息任务的个数最少的有多个,则采用优先就近原则设置其中首个为优 先通知消息堆栈单元。所述多个通知消息堆栈单元,为一块内存中划分出的多个内存单元;每个通知消 息堆栈单元采用FIFO堆栈的方式依次存放通知消息分配单元分配来的通知消息任务;所述多个通知消息处理单元,分别并行处理与之对应的通知消息堆栈单元中栈底 的通知消息任务,每个通知消息处理单元的实现逻辑相同,但各自为独立的消息任务处理 通道。图4为应用上述装置的呈现系统示意图。通知处理模块的工作流程如下呈现服务器启动并运行后,调用通知消息初始化单元对通知消息堆栈单元和通知 消息处理单元进行初始化,即通知消息初始化单元通过读取用户设置的配置文件获取通知 消息堆栈单元和处理单元的分配数量以及发送速率等个性化属性参数,并根据这些分配数 量设置多个通知消息堆栈单元以及与其一一对应的通知消息处理单元,然后将上述多个通 知消息堆栈单元以及通知消息处理单元进行初始化以便通知消息分配单元在分配处理通 知消息任务时调用。观察者订阅呈现者呈现信息的具体逻辑控制处理流程如下观察者向呈现服务器发送对呈现者的订阅请求,呈现服务器的订阅处理模块从 发布处理模块中取出观察者订阅的呈现者的呈现信息数据,并将呈现信息通知消息任务 和相关数据传入通知消息分配单元;传入的通知消息任务相关数据包括基于SIP协议的 Request (包括URI全球唯一标示信息和资源标示信息)会话、通知消息类型(包括呈现信 息发布、呈现信息修改、呈现信息订阅与取消订阅等等)、呈现信息订阅者与被订阅者的订 阅关系、被订阅者的呈现信息等。通知消息分配单元根据分配策略将通知消息任务和相关数据分配到优先的通知 消息堆栈单元,通知消息堆栈单元采用FIFO堆栈方式处理,如图3所示;通知消息处理单元不停的在对应的通知消息堆栈中取出栈顶的通知消息任务和 相关数据,并对通知消息任务和相关数据进行处理后向指定的观察者发送通知消息。呈现者发布呈现信息的具体逻辑控制处理流程如下呈现者向呈现服务器发送自己当前的呈现信息,呈现服务器的发布处理模块向订 阅处理模块取出订阅自己呈现信息的所有观察者,并将呈现信息通知消息任务和相关数据 传入通知消息分配单元;传入的通知消息任务相关数据包括基于SIP协议的Request (包括 URI全球唯一标示信息和资源标示信息)会话、通知消息类型(包括呈现信息发布、呈现信 息修改、呈现信息订阅与取消订阅等等)、呈现信息订阅者与被订阅者的订阅关系、被订阅 者的呈现信息等;通知消息分配单元根据分配策略将通知消息任务和相关数据分配到优先的通知 消息堆栈单元,通知消息堆栈单元采用FIFO堆栈方式处理;通知消息处理单元不停的在对应的通知消息堆栈中取出栈底的通知消息任务和相关数据,并对通知消息任务和相关数据进行处理后向呈现者的对应观察者发送通知消 肩、ο本发明还提供了一种呈现业务的通知消息任务处理方法,将通知消息任务动态地 分配到由多个通知消息处理单元控制通知消息任务发送的通知消息堆栈单元中,上述多个 处理单元同时进行通知消息任务的处理。下面以SIP协议为例并结合图4对该方法的具体应用进行详细的说明,该应用主 要包括如下步骤S101,呈现信息系统的通知处理装置启动后,通过读取用户设置的配置文件获取 通知消息堆栈单元与通知消息处理单元的分配数量以及其他个性化参数,如通知消息处理 速率等(通知消息处理延时实现通知消息发送时间间隔),并根据所述分配数量设置多个 通知消息堆栈单元以及与其一一对应的通知消息处理单元,然后将上述多个通知消息堆栈 单元以及通知消息处理单元进行初始化并启动消息处理单元;其中,每个通知消息处理单元为一个独立的线程通道不停地运行,不停的扫描获 取通知消息堆栈中栈底的通知消息任务进行通知消息处理,而配置参数中的消息处理速率 可以根据设计需要控制其扫描的频率来控制处理速率。每个通知消息堆栈单元为各个独立的内存存储块,它采用FIFO堆栈的方式依次 存放通知消息分配单元分配来的通知消息任务和相关数据。S102,订阅处理装置或发布处理装置将通知消息任务和相关数据传入通知处理装 置。传入的通知消息任务和相关数据包括基于SIP协议的Request (包括URI全球唯一标示 信息和资源标示信息)会话、通知消息类型(包括呈现信息发布、呈现信息修改、呈现信息 订阅与取消订阅等等)、呈现信息订阅者与被订阅者的订阅关系、被订阅者的呈现信息等;其中,呈现信息订阅者与被订阅者的订阅关系用于在处理通知消息时向对该被订 阅者的所有的订阅者发送被订阅者的呈现信息通知消息;所述订阅者根据接收到的被订阅 者的呈现信息了解被订阅者。基于SIP协议的Request会话是指基于SIP协议的一种会话 请求。S103,通知处理装置中的通知消息分配单元立即获取当前所有通知消息堆栈单元 中的未处理呈现信息通知任务的数量,选择出其中未处理的呈现信息通知任务数量最少的 通知消息堆栈单元置为优先通知消息堆栈单元,并将传入的呈现信息通知任务存入到该呈 现信息堆栈单元中。如果在进行选择通知信息堆栈时遇到未处理的呈现信息通知任务数量 一样,则默认选择第一个或随意选择一个置为优先通知消息堆栈单元。S104,作为独立线程运行的通知消息处理单元,不停的在对应的通知消息堆栈单 元中获取通知消息任务。基于堆栈的原理,通知消息处理单元每次访问通知消息堆栈只能 从堆栈的栈底取出通知消息任务,在栈顶设置并存储通知消息任务。获取一个通知消息任 务后,通知消息堆栈中的该任务就被删除。S105,通知消息处理单元获取到通知消息任务后,根据通知消息任务的呈现信息 相关数据(包括订阅者、被订阅者、呈现信息订阅关系、被订阅者呈现信息),按照SIP协议 的Notify Message要求组装成通知消息。S106,通知消息处理单元根据组装的通知消息将被订阅者的呈现信息向与其相关 呈现信息订阅关系中的订阅者发送呈现信息通知消息。
7
以上所述,仅为本发明较佳的具体实施方式
,当然,本发明还可有其他多种实施 例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的 技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明 的保护范围应该以权利要求的保护范围为准。
权利要求
呈现业务中通知消息的处理方法,其特征在于将通知消息任务动态地分配到多个通知消息堆栈单元中,与多个通知消息堆栈单元一一对应的通知消息处理单元分别同时取出通知消息堆栈单元中栈底的通知消息任务后进行处理并发送,所述各个通知消息处理单元为独立的线程不停地运行。
2.如权利要求1所述的呈现信息中通知消息的处理方法,其特征在于每个通知消息堆 栈单元均为独立的内存单元,采用FIFO堆栈的方式存、取通知消息任务。
3.如权利要求1所述的呈现信息中通知消息处理的方法,其特征在于以每个通知消息 堆栈单元中未处理的通知消息任务的个数是否为最少来确定该通知消息堆栈单元是否为 优先通知消息堆栈单元的判断结果,新收到的通知消息任务分配到优先消息堆栈单元中。
4.如权利要求1所述的呈现信息中通知消息的处理方法,其特征在于初始化时通过读 取用户设置的配置文件设定通知消息堆栈单元和通知消息处理单元的分配数量以及通知 消息的发送速率。
5.呈现业务中通知消息的处理装置,其特征在于包括多个通知消息堆栈单元,采用FIFO堆栈的方式存、取通知消息任务;多个通知消息处理单元,分别与多个通知消息堆栈单元一一对应,所述通知消息处理 单元为一个独立的线程不停地扫描获取通知消息堆栈单元栈底的通知消息任务并进行处 理和发送;通知消息初始化单元,根据配置参数生成多个通知消息堆栈单元和通知消息处理单 元,初始化所述通知消息堆栈单元和通知消息处理单元,并启动通知消息处理单元;通知消息分配单元,根据分配策略动态地将新接收到通知消息任务分配给优先通知消 息堆栈单元;所述分配策略是指,各个通知消息堆栈单元中当前未处理的通知消息任务的个数最少 的一个为优先通知消息堆栈单元。
6.如权利要求5所述的呈现业务中通知消息的处理装置,其特征在于通知消息初始化 单元通过读取用户设置的配置参数设定通知消息堆栈单元与通知消息处理单元的数量以 及通知消息的发送速率。
7.如权利要求5所述的呈现业务中通知消息的处理装置,其特征在于如果通知消息堆 栈单元中当前未处理的通知消息任务的个数最少的有多个,则采用优先就近原则设置其中 首个为优先通知消息堆栈单元。
全文摘要
本发明公开了一种呈现业务中通知消息任务的处理方法和装置,该方法中,将通知消息任务动态地分配到多个通知消息堆栈单元中,与多个通知消息堆栈单元一一对应的通知消息处理单元分别同时取出通知消息堆栈单元中栈的通知消息任务后进行处理并发送,所述各个通知消息处理单元为独立的线程不停地运行。本发明在进行呈现信息通知处理过程中,对呈现信息通知任务进行了分流,实现了多通道同时处理呈现信息通知任务,提高了通知消息处理的时效性,减少了由于呈现信息通知任务堵塞而造成的延时。
文档编号H04W4/12GK101917525SQ201010281608
公开日2010年12月15日 申请日期2010年9月15日 优先权日2010年9月15日
发明者刘焱青, 沈琼霞, 石磊, 郭湘南 申请人:烽火通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1