一种可扩展的即时通信系统及扩展即时通信系统的方法

文档序号:7703535阅读:328来源:国知局
专利名称:一种可扩展的即时通信系统及扩展即时通信系统的方法
技术领域
本发明属于通信领域,尤其涉及一种可扩展的即时通信系统及扩展即时通 信系统的方法。
背景技术
即时通信领域主要分为个人即时通信和企业即时通信两种个人即时通信 的用户群较广,主要关注聊天、视频、收发文件等普通功能;相对于个人即时
通信软件,企业即时通信系统的使用场合主要是企业内部的即时通信,往往需 要和其他系统如办/>系统、企业管理系统相互融合。
由于各企业的业务情况不可能一致,对企业即时通信系统的功能要求也千 变万化, 一套功能相同的企业即时通信系统不可能满足所有企业的需求。同时, 针对每个企业开发单独的企业即时通信系统需要耗费大量的人力财力。因此, 一个成熟的企业即时通信系统需要具有良好的扩展能力,允许用户在系统框架 之上进行扩展性的开发以满足自身的业务需求,而现有企业即时通信系统不便 于扩展。

发明内容
本发明实施例的目的在于提供一种可扩展的即时通信系统,旨在解决现有 企业即时通信系统不便于扩展的问题。
本发明实施例是这样实现的, 一种可扩展的即时通信系统,所述系统包括
应用服务器和通信服务器;
所述应用服务器用于所述通信服务器与扩展功能的应用单元之间的通信, 存储应用单元的属性,向所述通信服务器发送包含相应应用单元属性的启动命令或包含唯一标识各应用单元的应用标识的停止命令,并根据存储的应用单元 的属性向相应应用单元转发其关注的消息;
所述通信服务器用于客户端与所述应用服务器之间的通信,根据接收到的 所述启动命令或停止命令,向所述应用服务器转发或停止转发相应应用单元关 注的消息。
本发明实施例的另一目的在于提供一种扩展即时通信系统的方法,所述方
法包括下述步骤
应用服务器存储应用单元的属性;
应用服务器向通信服务器发送包含相应应用单元属性的启动命令或包含唯 一标识各应用单元的应用标识的停止命令;
通信服务器根据接收到的所述启动命令或停止命令,向应用服务器转发或 停止转发相应应用单元关注的消息;
应用服务器根据存储的应用单元的属性,把接收到的消息转发给关注该消 息的应用单元。
在本发明实施例中,通过应用服务器和通信服务器转发实现扩展功能的应 用单元关注的消息,实现了一种可扩展的即时通信系统,便于用户针对自己的 情况对即时通信系统进行扩展
1. 开发基于应用服务器的应用扩展,监控系统消息,可以轻松实现即时通 信(InstantMessaging, IM)消息监控、短信网关、考勤系统等功能。
2. 若应用单元关注自定义消息,并利用客户端插件响应该消息,则可以形 成一条属于用户自己的消息通道,能进一步获得更大的扩展空间;
3. 实现扩展功能的应用单元只需要连接应用服务器,而无需关注通信服务 器的通信逻辑,安全性高。


图l是本发明实施例提供的可扩展的即时通信系统的结构图;图2是本发明实施例提供的应用单元生命周期的状态图3是本发明实施例提供的可扩展的即时通信系统中消息的流向示意图4是本发明实施例提供的企业即时通信系统的示意图5是本发明实施例提供的扩展即时通信系统的方法的实现流程图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,通过应用服务器和通信服务器转发实现扩展功能的应 用单元关注的消息。
图1示出了本发明实施例提供的可扩展的即时通信系统的结构,为了便于 说明仅示出了与本发明实施例相关的部分,其中
应用单元101,处理扩展功能关注的消息。应用单元101可以关注系统定 义的消息,也可以关注自己定义的消息,从而建立自己的处理逻辑,实现扩展 功能。当然,对于还没有进行扩展的即时通信系统,可以不包括应用单元101。
应用服务器102,用于应用单元101与通信服务器103之间的通信,存储 应用单元的属性,向通信服务器103发送包含相应应用单元属性的启动命令或 包含应用标识的停止命令,并根据存储的应用单元的属性向相应应用单元101 转发其关注的消息。其中,应用标识唯一标识各应用单元。应用单元101与应 用服务器102直接通过TCP协议进行通信。当然,应用单元101与应用服务器 102之间也可以根据需要采用其他的通信协议进行通信。
通信服务器103,用于客户端与应用服务器102之间的通信,根据接收到 的启动命令或停止命令,向应用服务器102转发或停止转发相应应用单元101 关注的消息。通信服务器103根据启动的应用单元的属性将从服务器或客户端 接收到数据转发到其他相应服务器或客户端,本身不做处理。通信服务器103
6与应用服务器102、客户端和其他服务器直接通过UDP等网络协议进行通信。
在本发明实施例中,可扩展的即时通信系统可以根据需要构建多个应用单 元101,负责其关注消息的处理逻辑,实现相应功能的扩展。应用服务器102 管理着若干个应用单元101,并且应用服务器102只向启动的应用单元101转 发其关注的消息。需要启动的每个应用单元101必须先在应用服务器102注册 其关注的消息,应用服务器102又向通信服务器103注册启动的应用单元101 关注的消息。当通信服务器103收到一个消息时,会4企索哪个(或多个)应用 服务器102关注这个消息,然后将消息转给相应的应用服务器102,由该应用 服务器102进一步将消息转发给关注该消息的应用单元101。
应用单元101中存储应用服务器102的IP地址和端口 , 4艮据存储的IP地 址和端口与应用服务器102建立通信,启动后的应用单元101接收应用服务器 102转发的消息,并经应用服务器102转发其需要向外输出的消息。应用单元 101的生命周期中有未注册、已注册、运行、停止四种状态,图2为应用单元 生命周期的状态图。
应用服务器102包括第一存储单元1021、管理单元1022、过滤单元1023,
其中,
第一存储单元1021,存储已注册应用单元的属性,包括
1. 地址,可以为应用单元101的IP地址和端口 。
2. 应用标识,唯一标识各应用单元101,以便于应用服务器102管理和消息 的转发, 一般可以用全局唯一标识符(Global Unique Identifier, GUID),当然, 为方便记忆,也可以使用助记符等。
3. 优先级,标识应用单元101获得关注消息的优先级,若有多个应用单元 101关注同一个消息,则优先级高的应用单元101将获得优先处理该消息的机 会。
4. 消息过滤方式,至少支持两种动作拷贝和抽取。拷贝只是从消息队列 中拷贝相应消息,抽取则是从消息队列中取出相应消息并从队列中删除该消息。在有多个应用关注同一个消息时,拷贝使多个应用单元101都有机会处理消息。若某一个应用单元101抽取了消息,则其他应用单元101都将失去这个消息。
5.关注的消息,指定应用单元101要关注哪些消息,可以是系统消息,也可以是自定义消息。
管理单元1022,接收包含应用标识的启动信息或停止信息,并根据接收到的信息启动或停止相应已注册的应用单元101,向通信服务器103发送包含相应应用单元属性的启动命令或包含相应应用标识的停止命令。
第一过滤单元1023,根据第一存储单元1021存储的应用单元的属性,向启动的相应应用单元101转发其关注的消息和向通信服务器103转发来自应用单元101的消息。
这里, 一个应用单元101只能向应用服务器102注册一次,管理单元1022可以接收用户输入的包含应用标识的启动或停止信息,也可以接收由应用服务器102的其他单元自动产生的包含应用标识的启动或停止信息。管理单元1022存储已注册的各应用单元101的状态,接收到启动信息时,才艮据包含的应用标识将状态为已注册且未运行的相应应用单元的状态4务改为启动,并向通信服务器103发送包含相应应用单元属性的启动命令;接收到停止信息时,根据包含的应用标识将状态为启动的相应应用单元的状态修改为停止,并向通信服务器103发送包含相应应用单元应用标识的停止命令。同样,应用服务器102不允许重复启动或停止同一个应用单元101,如果要启动或停止的应用单元101没有注册,则管理单元1022不理会相应启动或4f止信息。
另外,通信服务器103包括
第二存储单元1031,存储接收到的应用单元的属性。
控制单元1032,将接收到的启动命令中包含的应用单元的属性保存到第二存储单元1031中,根据接收到停止命令中包含的应用标识删除第二存储单元1031中存储的相应应用单元的属性。
第二过滤单元1033,根据第二存储单元1031中存储的应用单元的属性,向应用服务器102转发相应应用单元101关注的消息和接收来自应用服务器 102的消息。
第二存储单元1031为内存,控制单元1032接收到启动命令时,将其中包 含的应用单元的属性保存到内存中,第二过滤单元1033即启动对应用单元101 关注消息的过滤;控制单元1032接收到停止命令时,根据其中包含的应用标识 删除内存中存储的相应应用单元的属性,第二过滤单元1033即停止对该应用单 元101关注消息的过滤。当有某应用单元101关注的消息到来时,第二过滤单 元1033才艮据内存中存储的应用单元属性,向应用服务器102转发该应用单元 101关注的消息。当然,通信服务器103也不允许重复启动或停止对相应应用 单元101关注消息的过滤。并且,如果通信服务器103停止服务,则停止对相 应应用单元101关注消息的过滤。
基于应用服务器102的应用扩展,通过应用单元101可以扩展监控系统消 息、IM消息监控、短信网关、考勤系统等功能。进一步地,应用单元101可以 处理自定义的消息,并利用客户端插件响应应用单元101发送消息,则可以形 成一条属于用户自己的消息通道,能进一步获得更大的扩展空间。
可扩展的即时通信系统中消息的流向示意图如图3所示,通信服务器负责 客户端与应用服务器之间的通信,根据内存中存储的应用单元的属性将接收到 的应用单元关注的消息转发给应用服务器,转发应用服务器输出的消息。应用 服务器负责应用单元与通信服务器之间的通信,并根据存储的应用单元的属性 将接收到的应用单元关注的消息转发给启动的相应应用单元,转发应用单元输 出的信息。例如,应用单元1关注消息1,则通信服务器将客户端1发送的消 息1转发给客户端2、客户端3和应用服务器,应用服务器接收到通信服务器 转发的客户端1的消息1时,要再进行一次过滤,将消息l转发到关注这条消 息的启动的应用单元1,由应用单元1负责处理这条消息。
为了提高应用单元101向应用服务器102注册、注销的灵活性,作为本发 明的一个优选实施例,应用单元101向应用服务器102发送包含其属性的注册信息或包含其应用标识的注销信息;管理单元1022将"l妄收到的注册信息中的属 性保存到第一存储单元1021,根据接收到的注销信息中的应用标识删除第一存 储单元1021中存储的相应应用单元的属性。
本发明实施例提供的可扩展的即时通信系统可以为企业即时通信系统,通 过服务器软件开发工具包(Server Software Development Kit, Server SDK)增加 服务器应用(即上述应用单元)到服务体系中,服务器应用可以向可扩展的即 时通信系统中任意一个客户端收发数据,也可以通过应用服务器和通信服务器 与其他服务器通信,其系统示意图如图4所示。进一步地,还可以根据需要在 可扩展的即时通信系统中设置多个应用服务器,以适应应用单元数量加大的情 况。
同样,客户端也可以通过客户端软件开发工具包(Client Software Development Kit, Client SDK ),以客户端插件或网页应用等方式扩展功能。
图5示出了本发明实施例提供的扩展即时通信系统的方法的实现流程,详 述如下
在步骤S501中,应用服务器存储应用单元的属性;
在步骤S502中,应用服务器向通信服务器发送包含相应应用单元属性的启 动命令或包含唯一标识各应用单元的应用标识的停止命令;
在步骤S503中,通信服务器根据接收到的所述启动命令或停止命令,向应 用服务器转发或停止转发相应应用单元关注的消息;
在步骤S504中,应用服务器根据存储的应用单元的属性,把接收到的消息 转发给关注该消息的应用单元。
在本发明实施例中,即时通信系统的应用服务器存储已注册应用单元的属 性,并根据存储的应用单元的属性,把接收到的消息转发给关注该消息的应用 单元;即时通信系统的通信服务器根据接收到的启动命令或停止命令,向应用 服务器转发或停止转发相应应用单元关注的消息;应用单元处理扩展功能关注 的消息,通过增加应用单元实现即时通信系统相应功能的扩展,其实现方式如上所述,不再赘述。
为了提高应用单元向应用服务器注册、注销的灵活性,作为本发明的一个 优选实施例,扩展即时通信系统的方法还包括
应用单元向应用服务器发送包含其属性的注册信息或包含其应用标识的注
销信息;
应用服务器保存接收到的注册信息中的属性或根据接收到的注销信息中的 应用标识删除存储的相应应用单元的属性。
在本发明实施例中,通过应用服务器和通信服务器转发实现扩展功能的应 用单元关注的消息,实现了一种可扩展的即时通信系统,便于用户针对自己的 情况对即时通信系统进行扩展
1. 开发基于应用服务器的应用扩展,监控系统消息,可以轻松实现IM消息 监控、短信网关、考勤系统等功能。
2. 若应用单元关注自定义消息,并利用客户端插件响应该消息,则可以形 成一条属于用户自己的消息通道,能进一步获得更大的扩展空间;
3. 实现扩展功能的应用单元只需要连接应用服务器,而无需关注通信服务 器的通信逻辑,安全性高。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。
权利要求
1、一种可扩展的即时通信系统,其特征在于,所述系统包括应用服务器和通信服务器;所述应用服务器用于所述通信服务器与扩展功能的应用单元之间的通信,存储应用单元的属性,向所述通信服务器发送包含相应应用单元属性的启动命令或包含唯一标识各应用单元的应用标识的停止命令,并根据存储的应用单元的属性向相应应用单元转发其关注的消息;所述通信服务器用于客户端与所述应用服务器之间的通信,根据接收到的所述启动命令或停止命令,向所述应用服务器转发或停止转发相应应用单元关注的消息。
2、 如权利要求l所述的系统,其特征在于,所述系统还包括 应用单元,用于处理扩展功能关注的消息。
3、 如权利要求l所述的系统,其特征在于,所述应用服务器包括 第一存储单元,用于存储已注册应用单元的属性;管理单元,用于接收包含应用标识的启动信息或停止信息,并根据接收到 的信息启动或停止相应已注册的应用单元,向所述通信服务器发送包含相应应 用单元属性的启动命令或包含相应应用标识的停止命令;以及第一过滤单元,用于才艮据所述第一存储单元存储的应用单元的属性,向启 动的相应应用单元转发其关注的消息和向所述通信^^务器转发来自应用单元的 消息。
4、 如权利要求3所述的系统,其特征在于,所述应用单元的属性包括应用 单元的地址、唯一标识各应用单元的应用标识、应用单元获得关注消息的优先 级、从消息队列中拷贝或抽取消息的消息过滤方式和关注的消息。
5、 如权利要求l所述的系统,其特征在于,所述通信服务器包括 第二存储单元,用于存储接收到的应用单元的属性;控制单元,用于将接收到的启动命令中包含的应用单元的属性保存到所述第二存储单元中,根据接收到停止命令中包含的应用标识删除所述第二存储单元中存储的相应应用单元的属性;以及第二过滤单元,用于根据所述第二存储单元中存储的应用单元的属性,向所述应用服务器转发相应应用单元关注的消息和接收来自所述应用服务器的消 台
6、 如权利要求2所述的系统,其特征在于,所述应用单元还向所述应用服 务器发送包含其属性的注册信息或包含其应用标识的注销信息。
7、 如权利要求3所述的系统,其特征在于,所述管理单元还将接收到的注 册信息中的属性保存到所述第一存储单元,根据接收到的注销信息中的应用标 识删除所述第一存储单元中存储的相应应用单元的属性。
8、 如权利要求l所述的系统,其特征在于,所述系统包括多个所述应用服 务器。
9、 一种扩展即时通信系统的方法,其特征在于,所述方法包括下述步骤 应用服务器存储应用单元的属性;应用服务器向通信服务器发送包含相应应用单元属性的启动命令或包含唯 一标识各应用单元的应用标识的停止命令;通信服务器根据接收到的所述启动命令或停止命令,向应用服务器转发或 停止转发相应应用单元关注的消息;应用服务器根据存储的应用单元的属性,把接收到的消息转发给关注该消 息的应用单元。
10、 如权利要求9所述的方法,其特征在于,所述方法还包括应用单元向应用服务器发送包含其属性的注册信息或包含其应用标识的注 销信息;应用服务器保存接收到的注册信息中的属性或根据接收到的注销信息中的 应用标识删除存储的相应应用单元的属性。
全文摘要
本发明适用于通信领域,提供了一种可扩展的即时通信系统,所述系统还包括应用服务器和通信服务器;所述应用服务器用于所述通信服务器与扩展功能的应用单元之间的通信,存储应用单元的属性,向所述通信服务器发送包含相应应用单元属性的启动命令或包含唯一标识各应用单元的应用标识的停止命令,并根据存储的应用单元的属性向相应应用单元转发其关注的消息;所述通信服务器用于客户端与所述应用服务器之间的通信,根据接收到的所述启动命令或停止命令,向所述应用服务器转发或停止转发相应应用单元关注的消息。在本发明中,通过应用服务器和通信服务器转发应用单元关注的消息,便于用户针对自己的情况对系统进行扩展。
文档编号H04L12/58GK101478503SQ200910104949
公开日2009年7月8日 申请日期2009年1月6日 优先权日2009年1月6日
发明者王延正 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1