基于频道的消息路由方法转让专利

申请号 : CN201010579769.5

文献号 : CN102546354B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 乐以长高超霖张百春

申请人 : 北京大学北大方正集团有限公司方正国际软件(北京)有限公司

摘要 :

本发明提供了一种基于频道的消息路由方法,包括:消息接收步骤,接收消息发送装置发送的消息,其中,消息包括数据部分以及消息头,消息头包含消息频道标识信息;提取步骤,提取消息频道标识信息,将数据部分存储至与消息频道标识信息对应的预定的消息频道区;转发步骤,从预定的消息频道区提取数据部分,并按照预定消息路由方式将数据部分转发至消息接收装置。在本发明中,消息发送装置与消息接收装置不需要直接连接,当消息接收装置数量增加时,对消息发送装置不会产生较大影响,克服了现有技术中的数据路由方法发送端和接收端直接连接,系统紧耦合,导致系统扩展性不好,实现不够方便灵活的问题。

权利要求 :

1.一种基于频道的消息路由方法,其特征在于,包括:消息接收步骤,接收消息发送装置发送的消息,其中,所述消息包括数据部分以及消息头,消息头包含消息频道标识信息;

提取步骤,提取所述消息频道标识信息,将所述数据部分存储至与所述消息频道标识信息对应的预定的消息频道区;

转发步骤,从预定的消息频道区提取所述数据部分,并按照预定消息路由方式将所述数据部分转发至消息接收装置;

提取所述消息频道标识信息后,验证所述消息发送装置是否具有向所述消息频道标识信息对应的预定的消息频道区发送消息的权限;

当所述消息发送装置具有向所述消息频道标识信息对应的预定的消息频道区发送消息的权限时,将所述数据部分存储至与所述消息频道标识信息对应的预定的消息频道区;

当所述消息发送装置不具有发送消息的权限时,放弃对所述消息执行操作;

所述消息头还包括接收端标识信息以及广播标识信息,所述预定消息路由方式包括点对点模式、订阅模式以及广播模式。

2.根据权利要求1所述的消息路由方法,其特征在于,在所述转发步骤中通过提取所述接收端标识信息以及所述广播标识信息确定所述预定消息路由方式,其中,当所述接收端标识信息非空且广播标识信息为第一信息时,所述预定消息路由方式为点对点模式;

当所述接收端标识信息为空且广播标识信息为第一信息时,所述预定消息路由方式为订阅模式;

当所述接收端标识信息为空且广播标识信息为第二信息时,所述预定消息路由方式为广播模式。

3.根据权利要求2所述的消息路由方法,其特征在于,当预定消息路由方式为所述点对点模式时,所述转发步骤包括:从预定的消息频道区提取所述数据部分,并转发至所述接收端标识信息对应的消息接收装置。

4.根据权利要求2所述的消息路由方法,其特征在于,当预定消息路由方式为所述订阅模式时,所述转发步骤包括:从存储区提取所述预定的消息频道区对应的接收端列表;

从预定的消息频道区提取所述数据部分,按照预定转发次序依次转发至所述接收端列表对应的消息接收装置。

5.根据权利要求4所述的消息路由方法,其特征在于,当存在在线的所述消息接收装置时,所述预定转发次序包括:在线的所述消息接收装置对应的接收端列表的排列次序。

6.根据权利要求4所述的消息路由方法,其特征在于,当所述消息接收装置均不在线时,所述预定转发次序包括:所述接收端列表列出的第一个登录的消息接收装置。

7.根据权利要求2所述的消息路由方法,其特征在于,当所述预定消息路由方式为广播模式且存在在线的所述消息接收装置时,所述转发步骤包括:从存储区提取所述预定的消息频道区对应的接收端列表;

从预定的消息频道区提取所述数据部分,分别转发至所述接收端列表对应的在线的消息接收装置。

8.根据权利要求2所述的消息路由方法,其特征在于,当所述预定消息路由方式为广播模式且存在不在线的所述消息接收装置时,所述转发步骤包括:从存储区提取所述预定的消息频道区对应的接收端列表;

从预定的消息频道区提取所述数据部分,在所述不在线的消息接收装置登录时将所述数据部分转发给该装置。

说明书 :

基于频道的消息路由方法

技术领域

[0001] 本发明涉及数据交换领域,具体而言,涉及一种基于频道的消息路由方法。

背景技术

[0002] 随着现代计算机技术和网络通讯技术的不断发展普及,利用互联网进行数据交换及资源共享已经非常普遍。
[0003] 数据交换是指利用计算机网络,把分散在若干应用系统中的数据进行相互传输和共享,从而提高信息资源的利用率。在网络中,数据的交换和传输通常是通过路由分配来实现的。
[0004] 现有技术中,数据交换路由方法通常是静态的,发送方通过指定接收方的IP(Internet Protocol,网络之间互连通协议)地址等信息来确定发送目标,即由数据发送方指定数据交换路径。
[0005] 但是直接使用IP地址实现数据交换技术实现较复杂,对开发人员要求比较高,而且发送端和接收端直接连接,系统紧耦合,导致系统扩展性不好。若需要增加新的系统(传输节点)时需要通知所有发送端更新地址列表。且群发消息时需要遍历每个目标系统,增加或删除系统均会带来不便。
[0006] 由此可见,现有技术中的数据路由方法技术复杂,而且发送端和接收端直接连接,系统紧耦合,导致系统扩展性不好,实现不够方便灵活。

发明内容

[0007] 本发明旨在提供一种基于频道的消息路由方法,以解决现有技术中的数据路由方法技术复杂,发送端和接收端直接连接,系统紧耦合,导致系统扩展性不好,实现不够方便灵活的问题。
[0008] 为了实现上述目的,本发明提供了一种基于频道的消息路由方法,包括:消息接收步骤,接收消息发送装置发送的消息,其中,消息包括数据部分以及消息头,消息头包含消息频道标识信息;提取步骤,提取消息频道标识信息,将数据部分存储至与消息频道标识信息对应的预定的消息频道区;转发步骤,从预定的消息频道区提取数据部分,并按照预定消息路由方式将数据部分转发至消息接收装置。
[0009] 进一步地,提取步骤还包括:提取消息频道标识信息后,验证消息发送装置是否具有向消息频道标识信息对应的预定的消息频道区发送消息的权限;当消息发送装置具有向消息频道标识信息对应的预定的消息频道区发送消息的权限时,将数据部分存储至与消息频道标识信息对应的预定的消息频道区;当消息发送装置不具有发送消息的权限时,放弃对消息执行操作。
[0010] 进一步地,消息头还包括接收端标识信息以及广播标识信息,预定消息路由方式包括点对点模式、订阅模式以及广播模式,在转发步骤中通过提取接收端标识信息以及广播标识信息确定预定消息路由方式,其中,当接收端标识信息非空且广播标识信息为第一信息时,预定消息路由方式为点对点模式;当接收端标识信息为空且广播标识信息为第一信息时,预定消息路由方式为订阅模式;当接收端标识信息为空且广播标识信息为第二信息时,预定消息路由方式为广播模式。
[0011] 进一步地,当预定消息路由方式为点对点模式时,转发步骤包括:从预定的消息频道区提取数据部分,并转发至接收端标识信息对应的消息接收装置。
[0012] 进一步地,当预定消息路由方式为订阅模式时,转发步骤包括:从存储区提取预定的消息频道区对应的接收端列表;从预定的消息频道区提取数据部分,按照预定转发次序依次转发至接收端列表对应的消息接收装置。
[0013] 进一步地,当存在在线的所述消息接收装置时,所述预定转发次序包括:在线的消息接收装置对应的接收端列表的排列次序。
[0014] 进一步地,当所述消息接收装置均不在线时,所述预定转发次序包括:接收端列表列出的第一个登录的消息接收装置。
[0015] 进一步地,当预定消息路由方式为广播模式且存在在线的消息接收装置时,转发步骤包括:从存储区提取预定的消息频道区对应的接收端列表;从预定的消息频道区提取数据部分,分别转发至接收端列表中在线的消息接收装置。
[0016] 进一步地,当预定消息路由方式为广播模式且存在不在线的消息接收装置时,转发步骤包括:从存储区提取预定的消息频道区对应的接收端列表;从预定的消息频道区提取数据部分,在消息接收装置登录时将所述数据部分转发给该装置。。
[0017] 应用本发明的技术方案,通过提取消息中所包含的消息频道信息,将数据部分存储至与消息频道信息相对应的消息频道区内,并转发至消息接收装置,以实现消息在发送端与接收端之间的路由,即消息发送装置与消息接收装置不需要直接连接,且消息发送装置在发送消息时也不需要指定接收方的IP地址,当消息接收装置数量增加或减少时,对消息发送装置不会产生较大影响,克服了现有技术中的数据路由方法技术实现复杂,发送端和接收端直接连接,系统紧耦合,导致系统扩展性不好,实现不够方便灵活的问题。
[0018] 除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。

附图说明

[0019] 附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0020] 图1示出了本发明的系统结构示意图一;
[0021] 图2示出了本发明的系统结构示意图二;
[0022] 图3示出了本发明实施例一的流程图;
[0023] 图4示出了本发明实施例二的流程图;
[0024] 图5示出了本发明实施例三的消息发送装置工作流程图;
[0025] 图6示出了本发明实施例三的消息接收装置工作流程图;以及
[0026] 图7示出了本发明实施例三的交换服务器工作流程图。

具体实施方式

[0027] 以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。
[0028] 图1示出了本发明的系统结构示意图一。参见图1,实施本发明消息路由方法的系统包括消息发送装置11,与消息发送装置11连接的交换服务器12以及与交换服务器12直接连接或通过网络连接的多个消息接收装置13。
[0029] 图2示出了本发明的系统结构示意图二。参见图2,实施本发明消息路由方法的系统也可以包括多个消息发送装置11,与多个消息发送装置11连接的交换服务器12以及与交换服务器12直接连接或通过网络连接的多个消息接收装置13。
[0030] 本发明消息路由方法的主要处理过程位于交换服务器12内,虽然图1与图2所示的系统结构有所区别,但具体的消息路由方法相同,并将在以下的实施例中详细介绍。
[0031] 下面结合图3详细说明本发明的实施例一。
[0032] 图3示出了本发明实施例的流程图。如图3所示,基于频道的消息路由方法包括:
[0033] S10,接收消息发送装置发送的消息,即完成消息接收步骤。其中,消息包括数据部分以及消息头,消息头包含消息频道标识信息。
[0034] 具体地,数据交换服务器12接收消息发送装置11发送的消息。消息发送装置11在发送消息时,所发送的消息不仅包括数据部分,还包括消息头,并且消息头包含消息频道信息。
[0035] S12,提取消息频道标识信息,将数据部分存储至与消息频道标识信息对应的预定的消息频道区,即实现提取步骤。
[0036] 具体地,数据交换服务器12从所接收的消息中的消息头部分提取消息频道标识信息,并将该消息的数据部分存储至于所提取的消息频道标识信息对应的消息频道区内。如数据交换服务器所接收的消息A1的消息头中提取的消息频道标识信息为“systems20100706”,则数据交换服务器12会将消息A1的数据部分存储至数据交换服务器12中与“systems20100706”对应的存储区内。
[0037] S14,从预定的消息频道区提取数据部分,并按照预定消息路由方式将数据部分转发至消息接收装置,即完成转发步骤。
[0038] 具体地,数据交换服务器12将消息的数据部分存储在与消息频道标识信息对应的消息存储区后,按照预定的消息路由方式将数据部分发送至消息接收装置13,可以将其只发送给一个消息接收装置,也可将其发送给多个消息接收装置。如数据交换服务器12将消息A1的数据部分存储至与“systems20100706”对应的存储区内后,若预定的消息路由方式是“将频道标识为systems20100706的消息频道区内的数据全部发送至消息接收装置App5与消息接收装置App6”,则数据交换服务器12会根据该消息路由方式将频道标识为“systems20100706”的消息频道区内所有的数据转发至消息接收装置App5与消息接收装置App6。预定的消息路由方式可由消息发送装置11指定,也可由数据交换服务器12根据发送的内容以及用户的需求确定。
[0039] 在本实施例中,通过提取消息中所包含的消息频道信息,将数据部分存储至与消息频道信息相对应的消息频道区内,并转发至消息接收装置,以实现消息在发送端与接收端之间的路由,即消息发送装置与消息接收装置不需要直接连接,且消息发送装置在发送消息时也不需要指定接收方的IP地址,当消息接收装置数量增加或减少时,对消息发送装置不会产生较大影响,克服了现有技术中的数据路由方法技术实现复杂,发送端和接收端直接连接,系统紧耦合,导致系统扩展性不好,实现不够方便灵活的问题。
[0040] 下面结合图4详细说明本发明的实施例二。
[0041] 图4示出了本发明实施例二的流程图。与实施例一不同的是,转发步骤S12包括:
[0042] S121,提取消息频道标识信息。
[0043] S122,验证消息发送装置是否具有向消息频道标识信息对应的预定的消息频道区发送消息的权限,当消息发送装置具有向消息频道标识信息对应的预定的消息频道区发送消息的权限时,转至步骤S123;否则,执行步骤S16,放弃对该消息执行操作。
[0044] S123,将数据部分存储至与消息频道标识信息对应的预定的消息频道区。
[0045] 即在实施例一的步骤S12中,添加验证消息发送装置11是否具有向消息频道标识信息对应的预定的消息频道区发送消息的权限的步骤,以确保整个消息路由过程中数据传输的安全性,防止图1中的消息发送装置11或者图2中的多个消息发送装置11中的某个消息发送装置不具有向消息频道标识信息对应的预定的消息频道区发送消息的权限时,将消息错误发送至数据交换服务器12中,从而导致数据发送错误情况的出现。
[0046] 具体地,数据交换服务器12提取消息频道标识信息后,数据交换服务器器12对消息发送装置11的发送权限进行验证,验证图1或者图2中发送消息的消息发送装置11是否具有向消息频道标识信息对应的预定的消息频道区发送消息的权限,如果该消息发送装置11具有消息发送权限,则执行步骤S123,即执行实施例一原来的存储步骤以及之后的处理步骤S14,但是若该消息发送装置11不具有消息发送权限,则放弃对该消息发送装置发送的消息执行操作,即不执行之后的步骤S14,直接结束该消息的发送过程。
[0047] 例如,图1或图2中的数据交换服务器12接收到消息发送装置11发送的消息A2,且消息A2的消息头包含的消息频道标识信息为“systems20100706”,则数据交换服务器12提取消息标识信息“systems20100706”,并验证消息发送装置11是否有向“systems20100706”对应的消息频道区发送消息的权限。如果图1所示的消息发送装置11或者图2中所示的某个消息发送装置11没有向“systems20100706”对应的消息频道区发送消息的权限,则终止该消息发送装置11发送消息的过程。如果该消息发送装置11有向“systems20100706”对应的消息频道区发送消息的权限,则将该消息的数据部分存储至“systems20100706”对应的消息频道区内。
[0048] 在本实施例中,验证消息发送装置11是否有向消息频道标识信息对应的消息频道区发送消息的权限,可以在数据交换服务器12中完成,或者通过与数据交换服务器12连接的频道权限存储设备进行验证。具体的验证过程可以为:将每个预定频道区对应的消息发送装置的标识信息存储在数据交换服务器12或者频道权限存储设备中,在验证时,获取发送消息的消息发送装置11的标识信息,并与存储的消息发送装置的标识信息进行对比。若相同,则认为该消息发送装置具有向该频道区发送消息的权限;否则,则认为该消息发送装置不具有向该频道区发送消息的权限。当然,还有其他的验证方法,具体的验证方法在现有技术中已有较多介绍,在此不再详细描述。
[0049] 在本发明的上述实施例中,预定消息路由方式包括点对点模式、订阅模式以及广播模式。并且,通过消息头中包含的信息区分这三种消息路由方式。
[0050] 具体地,为了识别这三种预定的消息路由方式,消息头还包括接收端标识信息以及广播标识信息,在转发步骤中通过提取接收端标识信息以及广播标识信息确定预定消息路由方式,以方便地确定消息路由方式。如通过接收端标识信息确定接收消息的消息接收装置,通过广播标识信息确定消息发送的范围,且接收端标识信息可以为消息接收装置的ID(Identity,身份识别码)或者消息接收装置的其它标识信息。
[0051] 其中,当接收端标识信息非空且广播标识信息为第一信息时,预定消息路由方式为点对点模式;当接收端标识信息为空且广播标识信息为第一信息时,预定消息路由方式为订阅模式;当接收端标识信息为空且广播标识信息为第二信息时,预定消息路由方式为广播模式,如第一信息为“false”,第二信息为“true”。
[0052] 例如,设定消息头为8位二进制代码,并设定第1位至第3位中包含消息频道的标识信息,第4位至第7位表示接收端标识信息,第8位表示广播标识信息,当第8位为二进制的“1”时,可以认为广播标识信息为“true”,当第8位为二进制的“0”时,可以认为广播标识信息为“false”。具体的第一信息与第二信息所代表的含义可根据消息路由方式的具体应用环境进行选择,在此不再详细描述选择规则。但为了方便描述,在本发明的实施例中,第一信息指“false”,第二信息指“true”。
[0053] 采用这样设置的方式,发送端可以很方便的指定消息接收者和消息发送的范围。
[0054] 下面将详细描述每种模式下的消息路由方式。
[0055] 当预定消息路由方式为点对点模式时,在执行完消息接收步骤以及提取步骤后,转发步骤包括:从预定的消息频道区提取数据部分,并转发至接收端标识信息对应的消息接收装置。在点对点模式下,即使消息接收端增加新的消息接收装置,对已有的消息接收装置的接收端标识信息也不会有影响,且在发送端不知道新的消息接收装置的标识信息的情况下,消息路由过程仍可执行。
[0056] 例如,若消息发送装置11的标识信息为App1,包括两个消息接收装置13,接收端标识信息分别为App2和App3,且消息路由方式为点对点模式时,具体的消息路由过程如下所示:
[0057] 步骤1、消息发送装置App1在消息头指定向消息频道为“systems20100706”发送消息,指定消息接收者为App2和App3对应的消息接收装置,设置广播标志信息为false,表示非广播消息。
[0058] 步骤2、数据交换服务器12接收到来自App1的消息后,从消息头提取发送端指定的消息频道信息为“systems20100706”、接收端标识信息为App2和App3,广播标志信息为false。
[0059] 步骤3、数据交换服务器12在频道权限存储设备验证App1是否有向消息频道“systems20100706”发送消息的权限,如果没有权限,终止消息发送过程;如果App1有向消息频道“systems20100706”发送消息的权限,则将App1发送的消息的数据部分存储在“systems20100706”对应的消息频道区。
[0060] 步骤4、数据交换服务器12根据所提取的接收端标识信息,判定消息接收标识为App2和App3对应的消息接收装置,根据判定出的消息接收者形成消息路由表,其中,App2和App3为消息路由表的接收终端。且由于接收端标识信息非空,因此表示消息发送装置11指定了具体的消息接收端。
[0061] 步骤5、数据交换服务器12依照消息路由表将消息转发给App2和App3对应的消息接收装置13。
[0062] 步骤6、接收端标识信息为App2和App3的消息接收装置13接收消息。
[0063] 当预定消息路由方式为订阅模式时,执行完消息接收步骤以及提取步骤后,转发步骤包括:从存储区提取预定的消息频道区对应的接收端列表;从预定的消息频道区提取数据部分,按照预定转发次序依次转发至接收端列表对应的消息接收装置。
[0064] 且当存在在线的消息接收装置时,预定转发次序包括:在线的消息接收装置对应的接收端列表的排列次序;当消息接收装置均不在线时,预定转发次序包括:接收端列表列出的第一个登录的消息接收装置。即根据消息发送装置指定的发送范围发送消息,且当消息接收装置不在线时,在交换服务器中对该消息进行保存。采用这种消息路由方式,既不占用消息发送装置的资源,同时又确保消息发送的及时性与可靠性。
[0065] 在本实施例中,接收端列表既可以存储于数据交换服务器12中的存储区内,也可以存储在单独的存储设备中,如与交换服务器12相连接的数据频道权限存储设备或者其它的存储设备。
[0066] 例如,若消息发送装置11的标识为App1,消息路由方式为订阅模式时,具体的消息路由过程如下所示:
[0067] 步骤1、消息发送装置App1在消息头指定消息频道为“systems20100706”、不指定消息接收装置,即指定的接收端标识信息为空,设置广播标志信息为“false”,表示非广播消息。
[0068] 步骤2、数据交换服务器12接收到来自App1的消息后,从消息头提取出发送端指定的消息频道标识信息“systems20100706”,消息接收者为空,广播标志信息为false。
[0069] 步骤3、数据交换服务器12在频道权限存储设备验证App1是否有向所述消息频道“systems20100706”发送消息的权限,如果没有权限,终止消息发送过程;如果App1有向消息频道“systems20100706”发送消息的权限,则将App1发送的消息的数据部分存储在“systems20100706”对应的消息频道区。
[0070] 步骤4、数据交换服务器12根据步骤2提取的消息头信息,判断出消息接收者信息为空。
[0071] 步骤5、数据交换服务器12在频道权限存储设备查询步骤2中的消息频道信息对应的接收端列表,例如查询到对应于“systems20100706”的接收端列表中包括App2、App3和App4三个消息接收端标识,且次序为App2、App3、App4。
[0072] 步骤6、数据交换服务器12根据步骤2提取的消息头信息,得到该消息为非广播消息。
[0073] 步骤7、数据交换服务器12判断接收端标识信息App2、App3和App4对应的消息接收装置是否在线,如果App2和App3在线,则两个在线的接收端轮流接收“systems20100706”对应的消息频道区内的消息。如“systems20100706”对应的消息频道区多个消息均选择订阅模式,则依次先将第一个消息选择App2作为接收者、第二个消息选择App3作为接收者,由于App4不在线,不会将其作为接收者,第三个消息再选择App2,并按照所选择的接收者的次序依次形成每个消息的路由表,其中,路由表的接收终端为每个消息对应的接收者,然后进入步骤9。
[0074] 步骤8、如果App2、App3和App4均不在线,暂时不确定消息接收端,直至App2、App3和App4对应的消息接收装置中的第一个登录的接收端登录后,将其作为消息的接收者放入路由表。假定在App2、App3和App4三个用户均离线,此时标识为App4首先登录系统,那么将App4作为接收者并将其放入路由表。
[0075] 步骤9、数据交换服务器12将消息转发给路由表中的接收装置。
[0076] 步骤10、消息接收装置13是消息路由结果的接收端,执行接收消息的任务。
[0077] 当预定消息路由方式为广播模式且存在在线的消息接收装置时,转发步骤包括:从存储区提取预定的消息频道区对应的接收端列表;从预定的消息频道区提取数据部分,分别转发至接收端列表中在线的消息接收装置,即根据消息发送装置指定的发送范围发送消息。
[0078] 当预定消息路由方式为广播模式时且存在不在线的消息接收装置时,转发步骤包括:从存储区提取预定的消息频道区对应的接收端列表;从预定的消息频道区提取数据部分,在离线消息接收装置登录时将所述数据部分转发给它。即当消息接收装置不在线时,在交换服务器中对该消息进行保存。采用这种消息路由方式,既不占用消息发送装置的资源,同时又确保消息发送的及时性与可靠性。
[0079] 例如,若消息发送装置11的标识信息为App1,消息路由方式为广播模式时,具体的消息路由过程如下所示:
[0080] 步骤1、消息发送装置App1在消息头指定消息频道为“systems20100706”、指定消息接收者为空,设置广播标志为“true”,表示广播消息。
[0081] 步骤2、数据交换服务器12接收到来自App1的消息后,从消息头提取发送端指定的消息频道为“systems20100706”、消息接收者为空,广播标志信息为“true”。
[0082] 步骤3、数据交换服务器12在频道权限存储设备验证App1是否有向所述消息频道“systems20100706”发送消息的权限,如果没有权限,终止消息发送过程;如果App1有向消息频道“systems20100706”发送消息的权限,则将App1发送的消息的数据部分存储在“systems20100706”对应的消息频道区。
[0083] 步骤4、数据交换服务器12根据步骤2提取的消息头信息,判断出接收端标识信息为空。
[0084] 步骤5、数据交换服务器12在频道权限存储设备查询步骤2中的消息频道信息对应的接收端列表,例如查询到对应于“systems20100706”的接收端列表中包括App2、App3和App4三个消息接收端标识。
[0085] 步骤6、数据交换服务器12根据步骤2提取的消息头信息,得到消息为广播消息;
[0086] 步骤7、数据交换服务器12判断接收端标识信息App2、App3和App4对应的消息接收装置是否在线,如果App2和App3在线则这两个接收端同时接收“systems20100706”对应的消息频道区内的消息,并形成消息路由表,其中App2和App3为消息路由表的接收终端;由于App4不在线,在App4登录时将所述数据部分转发给App4。,将其作为消息的接收者放入路由表。
[0087] 步骤8、数据交换服务器12将消息转发给路由表中的接收终端。
[0088] 步骤9、消息接收装置13是消息路由结果的接收端,执行接收消息的任务。
[0089] 在订阅模式以及广播模式下,当消息接收端增加新的消息接收装置时,只需更新存储的接收端列表即可,即便是不对接收端列表进行更新,路由过程仍可执行。
[0090] 在本发明的上述实施例中采用在消息头中添加接收端标识信息来区别消息接收装置,而不是采用接收端IP地址信息来区别消息接收装置,这样当消息接收端增加新的消息接收装置时,就无需通知发送端更新IP地址列表,仅需通知增加新的消息接收装置对应的接收端标识信息即可,甚至在订阅模式以及广播模式下,消息发送装置无需更新IP地址列表,只需更新接收端列表即可。
[0091] 下面结合图5至图7详细描述本发明的实施例三。
[0092] 其中,图5示出了本发明实施例三的消息发送装置工作流程图,图6示出了本发明实施例三的消息接收装置工作流程图,图7示出了本发明实施例三的交换服务器工作流程图。
[0093] 如图5所示,消息发送装置11的工作流程如下所示:
[0094] S501,指定消息频道、接收者及广播标识。即在发送的消息的消息头中给出消息频道标识信息、接收端标识信息以及广播标识信息。
[0095] 具体地,交换服务器12所提取的消息头信息需要由消息发送装置指定。且接收端标识信息及广播标识信息为可选的信息,可以在发送消息时不对这两种信息进行指定。
[0096] S502,发送消息。
[0097] S503,结束。
[0098] 如图6所示,消息接收装置13的工作流程如下所示:
[0099] S601,启动监听线程。
[0100] 具体地,每个消息接收装置13不断监听交换服务器12的信号,等待交换服务器12向其发送消息。
[0101] S602,接收消息。
[0102] S603,结束。
[0103] 如图7所示,交换服务器12的工作流程如下所示:
[0104] S701,接收消息。
[0105] S702,提取消息频道、接收者和广播标识。即从发送的消息的消息头中提取消息频道标识信息、接收端标识信息以及广播标识信息。
[0106] S703,验证频道权限。若具有发送权限,转至步骤S704,否则转至步骤S711。即验证发送消息的消息发送装置是否具有向消息头中指定的消息频道发送消息的权限,若具有权限,则转至步骤S704,若不具有权限,则转至步骤S711。
[0107] S704,接收者是否为空。为空则转至步骤S705,否则转至步骤S706。即判断接收端标识信息是否为空,为空则意味着没有指定消息接收装置,不为空则意味着已指定具体的消息接收装置,且若消息接收端标识消息为空则转至步骤S705,否则转至步骤S706。
[0108] S705,获取消息频道对应的接收端列表。即在不指定消息接收装置时,提取该消息频道信息对应的接收端列表,转至步骤S707。
[0109] S706,将接收者列表作为路由表中的消息接收端。即当消息发送装置指定消息接收装置时,将消息发送装置中指定的消息接收装置的接收端标识信息形成接收者列表,并作为路由表中的消息接收端,转至步骤S710。
[0110] S707,判断是否为广播消息。是则转至步骤S708,否则转至步骤S709。即判断接收的消息的消息头中是否包含广播标识信息,若广播标识信息为true,则转至步骤S708,若广播标识信息为false,则转至步骤S709。
[0111] S708,将接收端列表中所有的接收端标识信息作为路由表中的消息接收端。即接收的消息的消息头中包含广播标识信息时,将接收端列表中所有的接收端标识信息作为为路由表中的消息接收端。
[0112] S709,将接收端列表中的一个接收端标识信息作为路由表中的消息接收端。即接收的消息的消息头中不包含广播标识信息时,将接收端列表中的其中一个接收端标识信息作为为路由表中的消息接收端。具体的实现方法在订阅模式中已有详细介绍,在此不再详细描述。
[0113] S710,向接收装置发送消息。根据之前的判定结果,按照预定的方式发送消息。
[0114] S711,结束。
[0115] 从图5至图7中可以看出,图5所示的流程图、图7中的步骤S701、步骤S702、步骤S703实质上相当于图3与图4中的步骤S10与步骤S12。图7中的步骤S704至步骤S711与图6所示的流程图实质上相当于步骤S14的处理过程。
[0116] 同时,从图5至图7中也可以看出,实施例三中各个装置的工作流程实质上是本发明的实施二中介绍的各个模式下的消息路由过程。例如,执行步骤S701、S702、S703、S704、S706与S710的过程就是在执行点对点模式的消息路由过程;执行步骤S701、S702、S703、S704、S705、S707、S709与S710的过程就是在执行订阅模式的消息路由过程;执行步骤S701、S702、S703、S704、S705、S707、S708与S710的过程就是在执行广播模式的消息路由过程。
[0117] 从以上的描述中,可以看出,本发明上述的实施例实现了如下技术效果:消息发送装置与消息接收装置不需要直接连接,且消息发送装置在发送消息时也不需要指定接收方的IP地址,当消息接收装置数量增加或减少时,对消息发送装置不会产生较大影响,克服了现有技术中的数据路由方法技术实现复杂,发送端和接收端直接连接,系统紧耦合,导致系统扩展性不好,实现不够方便灵活的问题。
[0118] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。