分配用于多方应用层会话的资格信息的制作方法

文档序号:7591714阅读:190来源:国知局
专利名称:分配用于多方应用层会话的资格信息的制作方法
技术领域
本发明涉及计算机网络,尤其涉及分配用于多方应用层会话的资格信息。
背景和相关领域计算机网络通过使得一个计算机或设备(在下文中两者都被称为“计算系统”)使用电子报文经由网络与另一个计算系统通信来增强我们通信和访问信息的能力。当在计算系统之间传输电子报文时,电子报文常常经过对电子报文中的数据执行操作的协议栈(如,分组化、路由、流量程控制)。开放系统互连(OSI)模型是用于完成协议栈的连网框架的一个例子。
开放系统互连模型将用于将电子报文传输的操作分开为7个不同“层”中,每层被指定来完成数据传输进程中的某些操作。虽然协议栈能潜在地实现每层,但是许多协议栈仅仅实现用于通过网络传输数据的选择性的层。当数据从计算系统处发出时,它在应用层处始发并被向下传递到中间低层,然后到网络上。当数据从网络处被接收时它进入物理层并被向上传递至中间高层,然后最终到达应用层。应用层,是最高层,负责支持应用和终端用户处理,例如,电子会议软件。
协议栈的低层的功能一般从应用层中被抽取出来。即,应用层数据通过低层被传输至应用层和从应用层传输来,而不需要向应用层暴露其低层的功能。抽取可以使它对于不同计算系统处的许多应用层处理来说好象应用层处理是直接被相互连接的(当事实上在相应的协议栈中的低层将数据作为在应用层处理之间传输的数据来处理)。因此,在两个应用层处理之间的通信可被看作逻辑连接而不管使通信容易的底层物理网络。
通常,当计算系统要相互通信时,计算系统先建立通信会话。这可包括在多个不同计算系统处的应用层处理建立多方应用层会话,例如,多方会议会话。为建立多方会议会话,在每个计算系统处的会议应用程序相互逻辑地连接起来。逻辑连接一般导致计算系统被配置成逻辑层次结构的结构,如,T.120会议会话。
被逻辑连接的会议应用然后选择控制计算系统作为逻辑层次结构的根。逻辑层次结构中的其他计算系统可以是叶计算系统(在逻辑层次结构中没有其他计算系统在它们下面的计算系统)或中间计算系统(在逻辑层次结构中根计算系统和叶计算系统之间的计算系统)。控制计算系统使得在逻辑层次结构中其他计算系统之间的会议数据的传输容易。每个中间和叶计算系统维持用于向根计算系统发送会议数据和从根计算系统接收会议数据的(与逻辑连接相关的)链路信息。同样地,控制计算系统维持用于向中间计算系统和叶计算系统发送会议数据和从中间计算系统和叶计算系统接收会议数据的链路信息。
一般而言,会议数据在逻辑层次结构的一个分支中的中间或叶计算系统处始发。中间或叶计算系统沿逻辑层次结构向上将会议数据传输到控制计算系统。控制计算系统然后沿逻辑层次结构向下将会议数据传输到逻辑层次结构中的所有中间和叶计算系统。因此,在一般的会议会话期间,所有会议数据流过控制计算系统。
然而,逻辑层次结构的一个分支中的中间或叶计算系统一般不直接与逻辑层次结构的任何其他分支中的中间或叶计算系统通信。因此,逻辑层次结构的一个分支中的中间和叶计算系统即使有的话也极少需要维持用于逻辑层次结构的其他分支中的中间和叶计算系统的链路信息。因为所有会议数据流过控制计算系统,中间或叶计算系统的故障不影响向包括失效计算系统的相应分支以外的计算系统的会议数据的传输。因此,当中间或叶计算系统失效时,会议数据仍可向其他分支中的计算系统传输。
在逻辑层次结构中不幸的是,控制根计算系统的故障可在多方会议会话的会议数据的传输上有显著不良影响。当控制根计算系统失效时,逻辑层次结构中的其他计算系统过渡到选举模式。在选举模式期间,会议数据的传输被挂起,而其他计算系统试图选举出新的控制根计算系统。
一般被实现来选举出新的根控制计算系统的选举算法可以相当复杂,并且需要几秒的数量级来完成。因为在选举期间没有数据被传输,在选举算法执行期间用户体验被显著降级。也可能是其他计算系统起初就不同意将被选举为根控制计算系统的计算系统。所以,选举算法可被执行许多次,持续直至合适的选举结果达成。这可以加长选举处理并进一步使用户体验降级。还有,也可能是合适的选举结果没有达成(如,选举算法不能自动选举出新的控制计算系统)。因此,需要系统管理员的技能来重置多方会议会话和/或选择新的控制根计算系统。
当多方会议会话的计算系统在选举模式中时,也可防止另外的计算系统加入多方会议会话。可给予在选举模式期间试图加入多方会议会话的用户计算系统一个多方会议会话不存在的假指示。这可以导致即使多方会议会话已建立并且会议数据随后继续被传输(一旦新控制根计算系统被选举出来),用户终止进一步连接至多方会议会话的努力的结果。因此用于分配多方应用层会话的资格信息的系统、方法、计算程序产品,以及数据结构是有利的。
发明的概述本领域当前情况的上述问题由本发明的原理来克服,发明针对用于分配多方应用层会话的资格信息的方法、系统、计算机程序产品、以及数据结构。多方应用层会话,如,多方会议会话,包括许多参与计算机系统。多个不同网络技术(如,以太网、令牌环、802.11等)可将不同参与计算机系统物理地连接至多方会议会话上。在每个参与计算机系统处的会议应用被相互逻辑地链路起来(如,会议应用链路被从物理连接中抽取),导致一逻辑图,如,层次结构的树。可能是一个参与计算机系统处的会议应用被逻辑地链接到多个其他参与计算机系统处的会议应用。
通过向参与多方会议会话的邀请计算机系统发送一个问候报文,加入计算机系统可试图加入多方会议会话(或向多方会议会话表示它仍是激活的)。邀请计算机系统接收问候报文并且更新邀请方链路数据库以指明邀请计算机系统被逻辑地链接到加入计算机系统。邀请方计算机系统向加入计算机系统发送更新的邀请方链路数据库。更新的邀请方链路数据库至少包括指明邀请计算机系统被逻辑地链路至加入计算机系统的邀请方链路状态记录。当邀请计算机系统已参与多方会议会话时,邀请方链路数据库可包括其他参与计算机系统的链路状态记录。
链路状态记录至少包括计算机系统标识符、时间标记以及相邻计算机系统的逻辑链路的列表。因此,当加入计算机系统加入多方会议会话时,加入计算机系统可接收包括其他参与计算机系统和连接其他参与计算机系统的逻辑链路的链路数据库。因此,当一个参与计算机系统失效时,其他参与计算机系统可更容易地从失效中恢复,并且多方会议会话可继续而不明显降低用户体验。
加入计算机系统接收更新的邀请方的链路数据库,并且用来自于邀请方链路数据库的链路状态记录潜在地更新加入方链路数据库。更新加入方链路数据库可包括将加入方链路数据库中的时间标记和接收到的邀请方链路数据库中的时间标记相比较。当接收到的邀请方链路数据库中的链路状态记录是最新的,加入方链路数据库可被来自于接收到的邀请方链路数据库中的链路状态记录更新。当加入方链路数据库没有参与计算机系统的链路状态记录时,来自于接收到的邀请方链路数据库的相应的链路状态记录被用来更新加入方链路数据库。
合适时,加入计算机系统也插入(或更新)加入方链路数据库中的加入方链路状态记录以表示加入计算机系统被逻辑地链接到邀请计算机系统。加入计算机系统向邀请计算机系统发送加入方链路状态记录。邀请计算机系统可向其他参与计算机系统转发接收方链路状态记录(还有更新的邀请方链路数据库)。因此,参与计算机系统连续地向稳定状态过渡,稳定状态中每个参与计算机系统知道其他参与计算机系统和与其他参与计算机系统相关的逻辑链路。
在一些实施例中,修复计算机系统检测到链路数据不再从相邻计算机系统处(如,被表示为被逻辑地链接到修复方链路状态记录中的修复计算机系统的参与计算机系统)被接收。因此,修复计算机系统将相邻计算机系统从相邻计算机系统(如,被包含在修复方链路状态记录中的)的修复计算机系统列表中删除,并且将相邻计算机系统链路状态记录从修复方链路数据库中删除。根据修复方链路数据库中的链路数据,修复计算机系统标识逻辑上不能达到的参与计算机系统的列表。为了修复多方会议会话,修复计算机系统试图加入至少一个逻辑上不能达到的参与计算机系统。
发明的其他特征和优点将在随后描述中被公布,阅读描述或从发明的实践中,部分的其他特征和优点将显而易见。通过后附权利要求书中特别指出的方法和组合,可实现和获得发明的特征和优点。阅读下列描述和后附权利要求书,将更清楚本发明的这些和其他特征,或通过下文中所公布的发明的实践来了解本发明的这些和其他特征。
附图概述为了描述可获得上述和发明的其他优点和特征的方式,将通过参照附图中所说明的发明的特定实施例来描绘以上简述的发明的更特定的描述。要理解的是,这些附图仅仅描绘了发明的典型实施例,并且不因此被认为是发明范围的限制,通过附图的使用将更具体和详细描述和解释发明,图中

图1说明了用于本发明原理的合适的操作环境。
图2A说明了依据本发明的原理的使得便于加入多方会议会话的网络结构的例子。
图2B说明了依据本发明的原理的使得便于修复多方会议会话的网络结构的例子。
图3说明了用于加入多方会议会话的方法的举例的流程图。
图4说明了用于修复多方会议会话的方法的举例的流程图。
较佳实施方式的详细描述本发明的原理提供了分发用于多方应用层会话的资格信息。在多方会议会话中的参与计算机系统间歇地向其他参与计算机系统发送心跳报文来验证先前在参与计算机系统之间建立的逻辑链路。同样地,加入计算机系统可向参与计算机系统发送问候报文(实际上是将加入计算机系统介绍给邀请计算机系统的心跳报文)以试图加入多方会议会话。为响应接收到问候报文,参与计算机系统向发送问候报文的计算机系统(参与的或加入的)返回一个或多个链路状态记录。发送问候报文的计算机系统可使用返回的一个或多个链路状态记录来更新参与计算机系统的链路数据库。每个链路状态记录包括标识参与计算机系统的计算机系统标识符、时间标记、以及参与计算机系统的相邻计算机系统的列表。
在一些实施方式中,修复计算机系统检测到链路数据不再从相邻计算机系统处被接收(如,没有链路状态记录被接收以响应心跳报文)。为响应检测到链路数据不再被接收,修复计算机系统将与相邻计算机系统有关的链路数据从修复方链路数据库中删除。加入计算机系统试图通过连接至至少一个逻辑上不能达到的参与计算机系统来修复多方会议会话。当逻辑链路被建立时,修复方数据库可被传播到其他参与计算机系统。因此,参与计算机系统连续地过渡到稳定状态,在稳定状态中每个参与计算机系统知道其他参与计算机系统之间的逻辑链路。
本发明范围中的实施例包括用于携带或具有存储在其上的计算机可执行指令或数据结构的计算机可读媒体。这样的计算机可读媒体可以是任何可获得的媒体,媒体可被通用或专用计算机系统访问。作为例子,而非限制,这样的计算机可读媒体可包括诸如RAM、ROM、EPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备的物理存储媒体,或任何其他以计算机可执行指令、计算机可读指令或数据结构的形式存在的被用来携带或存储所需程序码装置的,以及可被通用或专用计算机系统访问的媒体。
当信息经由网络或其他通信连接(或者是硬连线的、无线的,或者是硬连线的或无线的组合)被传输或提供给计算机系统时,该连接可被适当地看作是计算机可读媒体。因此,任何这样的连接被适当地称作计算机可读媒体。上述的组合也应被包括在计算机可读媒体的范围内。计算机可执行或计算机可读指令包括,例如,使得通用计算机系统或专用计算机系统完成某些功能或功能组的指令和数据。计算机可执行或计算机可读指令可以是,例如,二进制、诸如汇编语言的中间格式指令,或甚至源码。
在这个描述和下列权利要求中,“计算机系统”被定义为一个或多个软件模块、一个或多个硬件模块、或其组合,它们共同工作来完成电子数据上的操作。例如,计算机系统的定义包括个人计算机的硬件组件、以及软件模块,如个人计算机的操作系统。模块的物理布局不重要。计算机系统可包括经由网络耦合的一个或多个计算机。同样地,计算机系统可包括单个物理设备(如,移动电话或个人数字助理PDA),其中内部模块(如存储器和处理机)一起工作来完成对电子数据的操作。
在这个描述和下列权利要求中,“逻辑通信链路”被定义为使得在两个诸如计算机系统或模块的实体之间的电子数据的传输成为可能的任何通信路径。两个实体之间的通信路径的实际物理表示不重要并且可随时间改变,如,当路由路径被改变时。逻辑通信链路可包括系统总线的部分、局域网、广域网、因特网,及其组合,或便于电子数据的传输的任何其他路径的部分。逻辑通信链路被定义成包括硬连线链路、无线链路、或硬连线链路和无线链路的组合。逻辑通信链路也可包括为使得数据部分对于实现本发明原理的组件来说是可访问的、对部分数据调整或格式化的软件或硬件模块(如代理服务系统、路由器、网关等等)。
在这个描述和下列权利要求中,“模式”被定义为在多个计算机系统之间的共享词汇的表示,它使得多个计算机系统能够根据所表达的共享词汇来处理文档。例如,可扩展标记语言(“XML”)模式可定义和描述使用由XML模式语言的模式构造的一类XML文档。这些模式构造可被用来约束和文档化数据类型、元素以其内容、属性及其数值、实体及其内容、以及标注的含义、使用以及关系,如在XML文档中使用的。因此,可访问XML模式的任何计算机系统可依据XML模式处理XML文档。还有,可访问XML模式的任何计算机系统可编辑或修改被也可访问XML模式的其他计算机系统使用的XML文档。
模式被定义成包括“文档类型定义”(“DTD”),如,以“.dtd”扩展名结尾的DTD文件。模式也可被定义成包括万维网协会(“W3C”)XML模式,如,以“.xsd”扩展名结尾的XML模式文件。然而,用于特定DTD或XML模式的实际文件扩展名是不重要的。模式可被用来实际定义包括逻辑、二进制、八进制、十进制、十六进制、整数、浮点、字符、字符串、用户定义数据类型的任何数据类型,以及用来定义数据结构的这些数据类型的组合。XML元素、属性、以及属性值可由在模式中定义的数据类型来表达。在这个定义和下列权利要求中,“基于模式”指的是由表示在计算机系统标识符字段中表示的参与计算机系统生成表示链路状态记录的数据结构的时间的时间标记字段。
48.存储在一个或多个计算机可读媒体上的表示链路状数据库的数据结构,其特征在于,数据结构还包括表示标识发送链路状态数据库的参与计算机系统的计算机系统标识符的计算机系统标识符字段,参与计算机系统参与多方应用层会话;表示答复间隔值的答复间隔字段,答复间隔字段被用作答复门限的基础,答复门限表明在检测到链路数据不再从相邻计算机系统处被接收到之前,计算机系统标识符字段中表示的参与计算机系统将等候发送链路数据库的响应多长时间;以及表示其他参与计算机系统和计算机系统标识符字段中表示的计算机系统一起参与多方应用层会话的一个或多个链路状态记录的链路状态记录字段。
49.存储在一个或多个计算机可读媒体上的表示定义用于从链路数据库中传输链路数据的格式的模式的数据结构,其特征在于,数据结构还包括定义标识将从链路数据库中传输链路数据的计算机系统的格式的来源字段;定义表示被用作答复门限基础的答复间隔的格式的间隔字段,答复门限表明在检测到链路数据不再从相邻计算机系统处被接收到之前,根据在来源字段中定义的标识格式标识的计算机系统将等侯对发送链路数据的响应多长时间;以及定义表示一个或多个计算机系统具有将依据来源字段中定义的标识格式标识的计算机系统被传输的链路数据的格式的节点类型字段。
50.如权利要求49所述,存储在一个或多个计算机可读媒体上的表示定义用于从链路数据库中传输链路数据的格式的模式的数据结构,其特征在于,节点类型字段包括定义标识计算机系统具有将依据在源字段中定义的标识格式标识的计算机系统被传输的链路数据的节点格式的节点uri字段;定义表示与依据在节点uri字段中定义的节点标识格式定义的计算机系统有关的元数据的格式的名字字段;以及定义表示被逻辑地链路至依据节点uri字段中的计节点uri字段格式定义的计算机系统的一个或多个计算机系统的格式的链路类型字段。
51.如权利要求49所述,存储在一个或多个计算机可读媒体上的表示定义用于从链路数据库传输链路数据的格式的模式的数据结构,其特征在于,链路类型字段包括音数据的设备,整体地放置在一起或分开。为了接收所提供的音频输出信号,音频系统也可被耦合到音频输出接口130。
计算机系统100包括处理单元120,它考虑复杂的和灵活的通用处理能力。处理单元120执行被设计来完成计算机系统100特征的,包括本发明特征的,计算机可执行指令。处理单元120被耦合到系统总线110上,系统总线也互连各种各样其他系统组件,包括系统存储器140。
系统存储器140一般表示种类繁多的易失和/或非易失存储器,并且也可包括以前所讨论的存储器类型。然而,计算机系统100中所用的特定类型的存储器对本发明来说是不重要的。包含一个或多个程序模块的程序码装置可被存储在系统存储器140中。一个或多个程序模块可包括操作系统141、一个或多个应用程序142、其他程序模块143以及程序数据144。
计算机系统100也包括用于从磁硬盘139读取或写入的磁硬盘驱动器127。磁硬盘驱动器127通过大容量存储器接口160被连接至系统总线110。磁硬盘驱动器127和磁硬盘139向计算机系统100提供计算机可执行指令、数据结构、程序模块和其他数据的非易失存储。例如,磁硬盘139可存储一个或多个包括操作系统144、应用程序142、其他程序模块143以及程序数据144的程序模块。
计算机系统100可连接至网络,如,办公室范围网或企业范围网、内联网、和/或因特网。计算机系统100经由这样的网络可与外部源,如,远程计算机系统和/或远程数据库,交换数据。
计算机系统100包括网络接口180,通过该接口计算机系统100从外部源接收数据,和/或向外部源发送数据。如图1所示,网络接口180使得经由逻辑通信链路182和远程计算机系统183的数据交换容易。逻辑通信链路182表示网络的部分,并且远程计算机系统183代表网络的节点。例如,远程计算机系统183可以是试图加入计算机系统100的加入计算机系统。另一方面,远程计算机系统183可以是计算机系统100试图加入的邀请计算机系统。
同样地,计算机系统100包括串行口接口190,通过该接口计算机系统100从外部源接收数据,和/或向外部源发送数据。串行口接口190经由逻辑通信链路159被耦合到调制解调器191,通过逻辑通信链路159计算机系统100从外部源接收数据,和/或向外部源发送数据。如图1所示,串行口接口190和调制解调器191使得经由逻辑通信链路192和远程计算机系统193的数据交换容易。逻辑通信链路192表示网络的一部分,并且远程计算机系统193代表网络的一个节点。例如,远程计算机系统193可以是试图加入计算机系统100的加入计算机系统。另一方面,远程计算机系统193可以是计算机系统100试图加入的邀请计算机系统。
虽然图1表示用于本发明的合适的操作环境,本发明原理可在能够完成本发明原理的任何系统中被使用,必要时具有适当的修改。图1所示的环境仅仅是说明性的,并且决不表示种类繁多的环境的甚至一小部分,本发明原理可在此环境中被实现。
依据本发明,链路数据处理模块、以及相关数据,包括链路数据库、链路状态记录、计算机系统标识符、时间标记、相邻列表、元数据、以及模式,可被存储在与计算机系统100相关的任何计算机可读媒体上并被从与计算机100相关的任何计算机可读媒体中访问。例如,部分这样的模块和部分相关程序数据可被包含在操作系统141、应用程序142、程序模块143和/或程序数据144中,用于在系统存储器140中的存储。
当大容量存储设备,如,磁硬盘139,被耦合到计算机系统100上时,这样的模块和相关程序数据也可被存储到大容量存储设备上。在联网的环境中,有关计算机系统100的描述的程序模块,或其部分,可被存储在远程存储器存储设备中,例如,与远程计算机系统183和/或远程计算机系统193有关的系统存储器、和/或大容量存储设备。这样的模块的执行可被在如前所述的分布式环境中完成。
图2说明了举例的多方会议会话200的网络结构。为了清楚,多方会议会话200被表示为逻辑图。逻辑图表示将参与多方会议会话200的参与计算机系统之间的基础物理连接抽取。还有,尽管没有清楚地描述,参与计算机系统之间的基础物理连接可以是实际任何网络技术的连接(如,令牌环、以太网、IEEE802.11、数字用户线(“DSL”)、异步传送模式(“ATM”)、综合业务数字网(“ISDN”)、以及电缆数据服务接口规范(“DOCSIS”))。每个参与计算机系统可被物理地、不同地连接至多方会议会话200。
参与多方会议会话200的是计算机系统202、203、204、207和208(在下文中称为“参与计算机系统”)。参与计算机系统通过相应的逻辑通信链路211至214以及相应的逻辑通信链路216至219(在下文中简称为“链路”)被链接。在多方会议会话200中描述的每条链路与始发计算机系统和目标计算机系统相联系。没有箭头的链路的一端表明链路的起始端,而有箭头的链路的一端表明链路的终止端。例如,链路216在计算机系统203处始发,并且在计算机系统207处终止。
有可能的是在参与计算机系统之间的基础物理连接根据数据流的方向变化。因此计算机系统可以被多重链接以表示数据流的不同方向。例如,用于从计算机系统203到计算机系统202的数据路径的基础物理连接(链路212)与从计算机系统202到计算机系统203的数据路径的基础物理连接(链路211)可以是不同的。在多方会议会话200中的每个参与计算机系统可包括包含一个或多个链路状态记录的链路数据库以及处理包含在和/或来自于链路状态数据库的链路数据的链路数据处理模块。链路数据可包括表明计算机系统是多方应用层会话的成员以及是多方应用层会话的成员的计算机系统如何被连接的资格控制信息。
多方会议会话200可以是实时会议会话。因此,会议数据、如,音频和视频数据,可以在参与计算机系统之间被传输。会议数据的传输可以发生使得在每个参与计算机系统处的会议参与者可听到和/或看见所有其他会议参与者在干什么。例如,会议数据可被一个参与计算机系统处的会议应用检测到,并且被传输到其他参与计算机系统处的相应的会议应用用于在其他参与计算机系统处重现。
参与计算机系统可不时地向其他参与计算机系统发送心跳报文以验证以前建立的链路仍然存在。为响应接收到心跳报文,发送参与计算机系统可向接收参与计算机系统发送一发送方链路数据库。接收参与计算机系统将发送方链路数据中的时间标记(或版本数字)与接收方链路数据中的时间标记(或版本数字)相比较。当比较的结果是合适的话,接收计算机系统用来自于发送方链路数据库的链路状态记录来更新接收方链路数据库。因此,参与计算机系统连续地向稳定状态过渡,在稳定状态中每个参与计算机系统知道其他参与计算机系统以及与其他计算机系统有关的所有链路。
链路数据库可包括每个参与计算机系统的链路状态记录。例如,表1逻辑地表示用于多方会议会话200中的参与计算机系统的链路数据库的例子

表1
由表1表示的链路数据库可以是在加入计算机系统206试图加入多方会议会话200之前,多方会议会话200中每个参与计算机系统处的链路数据库(如链路数据库238)。表1的每行表示参与计算机系统的链路状态记录。例如,计算机系统207的行表明版本数字“5”以及计算机系统207具有至计算机系统203(链路217)和至计算机系统208的链路(链路218)。
链路状态记录可以是用来维持参与计算机系统的链路数据的数据结构。例如,参与多方会议会话200的每个参与计算机系统可以与相应的链路状态记录联系起来。链路状态记录实际上可以是具有任何格式。然而,下列是表示链路状态记录的举例的链路数据结构1.Link_State_Record2.{3. Computer System Identifier Field,4. Computer System Metadata Field,5. Neighbour List Field,6. Timestamp Field,7.}举例的链路数据结构的行3是表示标识参与计算机系统的计算机系统标识符的“计算机系统标识符字段”。计算机系统标识符值可包括,例如,网络地址(如,互连网协议(“IP”)地址)或统一资源标识符(“URI”)(如,统一资源定位器“URL”))。举例的链路数据结构的行4是表示用来描述行3中标识的参与计算机系统的元数据的“计算机系统元数据字段”。元数据值可包括,例如,用于引用在行3中标识的参与计算机系统的描述性名字。
举例的链路数据结构的行5是表示用于行3中标识的参与计算机系统的相邻计算机系统列表。相邻列表值可包括,例如,标识被连接到行3中标识的参与计算机系统的其他参与计算机系统的多个计算机系统标识符。举例的链路数据结构的行6是表示行3中标识的参与计算机系统生成举例的链路数据结构的时间。时间标记值可包括,例如,绝对时间值(如12;05PM)、差分时间值(如5分钟)、版本数字(如1、2、3等)、或索引值。索引值实际上可以是任何数据类型,如,串、字符、整型、浮点、或甚至用户定义的数据类型。
有可能的是参与多方会议会话200的计算机系统公布一个或多个可被加入计算机系统用来试图加入多方会议会话200的入口点(如,计算机系统地址和路由信息)。例如,计算机系统208可公布可被用来连接至计算机系统208的相关IP地址。还有,根据与计算机系统208相关的网络组件,计算机系统208可公布至计算机系统208的合适路由数据的路由信息。入口点和路由信息可被公布在位于处理链路数据的应用层(如会议应用)之下的协议栈的低层(如,网络层和/或传输层)。因此,在参与计算机系统交换链路数据以建立逻辑链路之前,低层连接数据(如,网络层数据和/或传输层数据)可被计算机系统交换。计算机系统可通过发送和接收低层协议(如,IP,传输控制协议(“TCP”)、用户数据报协议(“UDP”)等等)的电子报文(如,分组、帧等等)来交换低层连接数据。
低层连接数据的交换可包括参与计算机系统和请求加入多方会议会话200的加入计算机系统交换安全信息。安全信息可包括用于验证参与计算机系统以及验证加入计算机系统的公钥。例如,群公钥可被提供给加入计算机系统来验证参与计算机系统。加入计算机系统公钥、名称、以及会话标识符可用群公钥来签名。群公钥签名使得参与计算机系统能够加入计算机系统试图加入多方会议会话200时对它验证和授权。在一些实施方式中,邀请计算机系统的公钥被用来签名加入计算机系统公钥、名字、以及会话标识符。
图3说明了用于加入多方会议会话的方法300的流程图。方法300将关于图2A中描绘的计算机系统来描述。
方法300包括发送问候报文的动作(动作301)。动作301可包括加入计算机系统向邀请计算机系统发送问候报文。例如,如图2A所述,加入计算机系统206向计算机系统208发送问候报文222。问候报文实际上是向参与多方应用层会话的计算机系统介绍未被连接的加入计算机系统的心跳报文。例如,问候报文222可向计算机系统208介绍加入计算机系统206,并且可包括加入多方会议会话200的请求。方法300包括接收问候报文的动作(动作305)。动作305可包括邀请计算机系统接收来自于加入计算机系统的问候报文。例如,如图2A所述,计算机系统208接收来自于加入计算机系统206的问候报文222。
方法300包括更新邀请方链路数据库的动作(动作306)。动作306可包括更新邀请方链路数据库以表明邀请计算机系统被链接到加入计算机系统上。邀请方链路数据库可被更新以响应接收到问候报文。例如,为响应接收到问候报文222,链路数据处理模块248可更新链路数据库238以表明计算机系统208被链接至加入计算机系统206。
更新链路数据库238可包括将计算机系统标识符值增加到合适的相邻列表上(如,包含在与计算机系统208对应的链路状态记录中的相邻列表)以表明加入计算机系统206是计算机系统208的一个相邻。更新链路状态记录也可包括改变时间标记字段的时间标记值,如,通过增加版本数字,以表明链路状态记录被改变。在一些实施方式中,参与计算机系统仅仅被允许更新具有标识参与计算机系统的计算机系统标识符字段值的链路状态记录。因此,当链路状态记录在另一个参与计算机系统处被接收时,包含在链路状态记录中的链路数据是准确的将有更多的机会。
方法300包括发送更新的邀请方链路数据库的动作(动作307)。动作307可包括邀请计算机系统向加入计算机系统发送更新的邀请方链路数据库。邀请方链路数据库至少包括表明邀请计算机系统被链接至加入计算机系统的链路状态记录。例如,计算机系统208在更新了链路数据库238之后向计算机系统208发送链路数据库238以表明计算机系统208被链接至加入计算机系统206上。在一些实施方式中,同步报文被用来传输来自于更新的链路数据库的数据。
应该理解的是本发明不限制于使用任何特定传输协议和格式的报文传输。然而,可用来完成本发明原理的举例的协议被称为简单对象访问协议(“SOAP”)。来自于链路数据库238的链路数据可被包括在SOAP报文中,SOAP报文使用任何数量的低层协议,如,超文本传输协议(“HTTP”)或直接因特网报文封装作为传输。下列表示包含在SOAP包封的报头和/或本体中的以表示包括来自于链路数据库238的链路数据的同步报文的第一个举例的XML指令。
1.<Sync from=“soap//address_208”interval=“3”>
2. <Node uri=“soap//address_202”name=“Node 202”version=“4”>
3.<Link uri=“soap//address_203”>
4. </Node>
5. <Node uri=“soap//address_203”name=“Node 203”version=“3”>
6.<Link uri=“soap//address_202”>
7.<Link uri=“soap//address_204”>
8.<Link uri=“soap//address_207”>
9. </Node>
10. <Node uri=“soap//address_204”name=“Node 204”version=“1”>
11. <Link uri=“soap//address_203”>
12. </Node>
13. <Node uri=“soap//address_207”name=“Node 207”version=“5”>
14.<Link uri=“soap//address_203”>
15.<Link uri=“soap//address_208”>
16. </Node>
17. <Node uri=“soap//address 208”name=“Node 208”version=“1”>
18.<Link uri=“soap//address_207”>
19. </Node>
20. </Sync>
第一个举例的XML指令中的元素(如,在<Sync>和</Sync>之间)可包括一个或多个自由格式的XML文件。同样地,第一个举例的XML指令中的元素可包括依据加入多方会议会话200的计算机系统可访问的XML模式所定义的一个或多个XML文档。当模式(如,XML模式)被用来约束数据结构(如,XML数据结构)中的数据类型的含义时,定义链路数据如何被表示将有更大的灵活性。
第一个举例的XML指令表示加入多方会议会话200的计算机系统的链路状态记录。第一个举例的XML指令的第一行表明所包含的链路状态记录被从计算机系统208处发送(由所包含的URI表明),并且接收链路状态记录的计算机系统(如,加入计算机系统206)应在因特网信息包搜寻协议间隔3中应答。因特网信息包搜寻协议间隔可以是任何单位,如,毫秒、秒或分钟。在基于因特网信息包搜寻协议间隔的特定门限内计算机系统208不能接收来自于接收计算机系统的响应是链路数据不再从接收计算机系统处被接收的一种指示。
每个链路状态记录(如,在行2-4、行5-9、行10-12、行13-16以及行17-19)由相应的“节点”标记(如,在<Node>和(/Node)之间)表示。一定数目的名值对可被用来表示包含在链路状态记录中的链路数据。例如,行14处的名值对表示“uri”属性和“soap//address_207”的相应的uri属性值。值soap//address_207是标识计算机系统207的统一资源标识符(“URI”)(如,在计算机系统标识符字段中所表示的)。因此,将被发送至计算机系统207的链路数据可被发送到URI soap//address_207。行14处的另一个名值对表示Node 207”“name”属性和”相应的名字属性值。值Node207是计算机系统207的描述名(如,在计算机系统元数据字段中所表示的)。因此,当涉及计算机系统207时,描述名Node 207可被使用。
行14处的另一个名值对表示“version”属性和相应的版本属性值“5”。值5是计算机系统207的链路状态记录的版本(如,在时间标记字段中所表示的)。当计算机系统更新相应的链路状态记录时,计算机系统可改变版本属性值(如,通过增加版本属性值)来区分更新链路状态记录和以前的链路状态记录。因此,当计算机系统接收更新的链路数据,如,链路数据库238时,接收计算机系统可将当前链路状态记录的版本数字和接收到的链路状态记录的版本数字相比较以决定最新的链路状态记录。当链路数据库238中的链路状态记录比接收计算机系统处的链路状态更加新时,接收计算机系统处的链路数据库被更新以将最新链路状态记录包括在内。
行14表示从计算机系统207至计算机系统203的链路(链路217),行15处的名值对表示“uri”属性和相应的uri属性值“soap//address_203”。因此,为了向计算机系统203发送链路数据,计算机系统207可向URI soap//address_203发送链路数据。行15表示从计算机系统207至计算机系统208的链路(链路218),行16处的名值对表示“uri”属性和相应的uri属性值“soap//address_208”。因此,为了向计算机系统208发送链路数据,计算机系统207可向URI soap//address_208发送链路数据。行14和15可在相邻列表字段中被共同表示。
其他节点标记的属性以及属性值(在行2-4、行5-9、行10-12、以及行17-19处)表示相应参与计算机系统202、203、204和208的类似的链路数据。在一些实施方式中,第一个举例的XML指令被包含在SOAP包封的报头中,而应用数据(如,会议数据)被包含在SOAP包封的本体部分中。因此,链路数据的更新可以是和会议数据一起传输而不需要生成单独的电子报文。
在一些实施方式中,问候报文(如,与在动作301和305中使用的相似)或其他心跳报文采用同步报文的形式。因此,在试图加入多方应用层会话或重新建立与多方应用层会话的连接时,加入计算机系统或参与计算机系统可向邀请计算机系统或其他参与计算机系统提供链路状态数据。接收以同步报文形式存在的问候或心跳报文的计算机系统可更新相应的链路数据库以将包含在同步报文中链路状态数据包括在内。当加入计算机系统已经和其他计算机系统连接时(如,当两个多方应用层会话将被相互连接时),这可以特别有利。
在一些其他实施方式中,问候报文或其他心跳报文是不包括任何节点标记的SOAP报文。下列表示可被包括在SOAP的报头和/或本体内的以表示问候或心跳报文的第二个举例的指令1. <Sync from=“soap//address_204”interval=“2”>
2. </Sync>
在第二个举例的XML指令中的同步标记中所表示的数据可以与包括链路状态数据(如,一个或多个节点标记)的同步报文(如在第一个举例的XML指令)中所表示的数据是同样的格式。因此,同样的模式可用来约束问候报文、心跳报文、以及同步报文中的数据类型的含义。这促进了问候报文、心跳报文以及同步报文的有效处理。行1处,第二个举例的XML指令表明(由所包括的URI)它们被从计算机系统204处发送并且接收第二个举例的XML指令的计算机系统应在因特网信息包搜寻协议间隔2内应答。
回到图3,方法300包括接收邀请方链路数据库的动作(动作302)。动作302包括加入计算机系统接收来自于邀请计算机系统的邀请方链路数据库。例如,加入计算机系统206可接收来自于计算机系统208的链路数据库。
方法300包括更新加入方链路数据库的动作(动作303)。动作303可包括更新加入方链路数据库以至少表明加入计算机系统被链接到邀请计算机系统。例如,链路数据处理模块246可更新链路数据库236以将表明加入计算机系统206被链接到计算机系统208的链路状态记录据包括在内。依据合适的时间标记值,链路数据处理模块236也可更新链路数据库236以将来自于链路数据库238的其他链路状态记录包括在内。因此,加入计算机系统206知道多方会议会话200中的其他参与计算机系统以及它们相应的链路。
方法300包括发送更新的加入方链路状态记录的动作(动作304)。动作304可包括加入计算机系统向邀请计算机系统发送更新的加入方链路状态记录。加入方链路状态记录可向邀请计算机系统表明加入计算机系统被链接到邀请计算机系统。例如,加入计算机系统206可向计算机系统208发送链路状态记录224。链路状态记录224可向计算机系统208表明加入计算机系统206被链接至计算机系统208。
方法300包括接收加入方链路状态记录的动作(动作308)。动作308可包括邀请计算机系统接收来自于加入计算机系统的加入方链路状态记录。例如,计算机系统208可接收来自于加入计算机系统206的链路状态记录224。链路处理模块248可更新链路数据库238以将链路状态记录224包括在内。加入计算机系统206现在被看作是参与计算机系统。
计算机系统208然后可向其他链路的参与计算机系统(如计算机系统207)发送更新的链路数据库238。这些其他计算机系统然后向多方会议会话200中的其他参与计算机系统(如计算机系统203、202和204)进一步传播(如,通过传输合适的同步报文)更新的链路数据库238。所以,在一个参与计算机系统处的链路数据中的变化最终漫流到其他参与计算机系统处。因此,多方会议会话200连续地过渡到稳定状态使得每个参与计算机系统知道其他参与计算机系统以及与其他参与计算机系统有关的相应的链路。
参与计算机系统可不时地试图重新加入多方会议会话200或向多方会议会话200中的其他计算机系统提供存活性。因此,方法300可在两个参与计算机系统之间被重复。在一些实施方式中,发送计算机系统向接收计算机系统发送发送方同步报文,或,如果没有发送方链路数据更新,则向接收计算机系统发送发送方心跳报文。发送计算机系统也向接收计算机系统表明发送方答复门限值。心跳报文可包括标识参与计算机系统的URI和因特网信息包搜寻协议间隔。
接收方计算机系统接收发送方同步报文或发送方心跳报文,并且通过向发送计算机系统发送接收方同步报文或,如果没有接收方链路数据更新,则发送接收方心跳报文来响应。接收方计算机系统也向发送计算机系统表明接收方答复门限值。当发送计算机系统在发送方答复门限值内接收接收方同步报文或心跳报文时,发送计算机系统将接收计算机系统看作是“存活的”。同样,发送计算机系统通过再次发送发送方同步报文或发送方心跳报文(以及表明另一个发送方答复门限值)以响应接收方同步报文或心跳报文。当接收计算机系统在接收方答复门限值内接收发送方同步报文或发送方心跳报文时,接收计算机系统将发送计算机系统看作是“存活的”。
多方会议会话中的每个参与计算机系统可以相同的方式与其他参与计算机系统交换同步报文和心跳报文。例如,计算机系统203可与计算机系统202、204和207的每个交换包含链路数据的同步报文。因此,在一个参与计算机系统处更新的链路数据被传播到(如通过传输合适的同步报文)其他参与计算机系统。例如,表明加入计算机系统206已加入多方会议会话200的链路数据被从计算机系统208处传播至计算机系统207,至计算机系统203等等。所以,在多方会议会话的任何期间,在参与计算机系统之间可能有一个或多个同步报文以及一个或多个心跳报文在被传输。
有可能的是,在多方会议会话的期间,参与计算机系统离开多方会议会话或失效,或参与计算机系统之间的链路失效。任何这些事件可导致一个参与计算机系统不能接收来自于其他参与计算机系统的链路数据(如在特定的门限内),图2B说明了在计算机系统207失效后的多方会议会话200。用虚线描述计算机系统207以展示来自于计算机系统207的链路数据没有在计算机系统203和208(先前相邻计算机系统)处被接收。同样,在图2B中描述的是连接加入计算机系统206和计算机系统208的链路235和236。这表明加入计算机系统206是参与计算机系统。
图4是用于修复多方会议会话的方法400的流程图。方法400将关于图2B中描绘的计算机系统来描述。方法400包括检测链路数据不再从相邻计算机系统处被接收到的动作(动作401)。动作401可包括修复检测到链路数据不再从相邻计算机系统处被接收的计算机系统。例如,在图2B中计算机系统203和计算机系统208都可检测到链路数据不再从计算机系统207(计算机系统203和计算机系统208的相邻列表中的计算机系统)处被接收到。当答复计时器期满时,可得到检测链路数据不再被接收的结果。例如,计算机系统203可向计算机系统207发送下列第二个举例的XML指令1. <Sync from=“soap//address_203”interval=“4”>
2. .
3. .
4. </Sync>
第二个举例的XML指令的行1表明第二个举例的XML指令被从与计算机系统203有关的URI处发送。行1还表明由行2-4垂直省略号表示的一个或多个链路状态记录有“4”的答复间隔。当计算机系统203在由答复间隔来计算的明确规定的门限内没有接收到来自于计算机系统207的答复时,计算机系统203检测到来自于计算机系统207的链路数据没有被接收到。明确规定的门限可以是,例如,答复间隔与两的乘积。这使得一个间隔用于第二个举例的XML指令的从计算机系统203传播到计算机系统207,一个间隔用于答复链路数据(例,链路数据库)从计算机系统207传播到计算机系统203。
方法400包括将相邻计算机系统从相邻计算机系统的修复计算机系统的列表中删除的动作(动作402)。方法400也包括将相邻计算机系统的链路状态记录从修复方链路数据库中删除的动作(动作403)。例如,当链路处理模块243检测到链路数据不再从计算机系统207处被接收时,链路处理模块243可更新链路数据库233以删除对计算机系统207的引用。同样地,当链路处理模块248检测到链路数据不再从计算机系统207处被接收时,链路处理模块248可更新链路数据库238以删除对计算机系统207的引用。因此,在计算机系统207失效后,合适更新的链路数据库233和238可由表2表示


方法400包括依据修复方链路数据库中的链路状态记录标识逻辑上不能达到的计算机系统的列表的动作(动作404)。如图2B所述,在计算机系统207失效后,加入计算机系统206和计算机系统208不再被链接到计算机系统203。因此,计算机系统203可将计算机系统206和208标识为逻辑上不能达到的。同样地,计算机系统208可将计算机系统202、203和204标识为逻辑上不能达到的。
方法400包括试图加入至少一个逻辑上不能达到的计算机系统的动作(动作405)。例如,计算机系统203可向计算机系统208发送问候报文,计算机系统208可用链路数据库238应答,并且计算机系统203还可用链路数据库233(所有由链路数据244共同表示)应答。因此,链路数据库233和238可相继被更新以表明计算机系统203和计算机系统208是相邻。来自于链路数据库236和238的更新的链路数据然后可被传播到多方会议会话200中的其他参与计算机系统。
在一些实施方式中,修复计算机系统试图建立至多条逻辑上不能达到的计算机系统或甚至每条逻辑上不能达到的计算机系统的链路。在图2B中,计算机系统203可试图建立至计算机系统208和加入计算机系统206的链路。同样地,计算机系统203可试图建立至计算机系统202、计算机系统203和计算机系统204的链路。在加入先前逻辑上不能达到的计算机系统之后,在先前逻辑上不能达到的计算机系统处的链路数据可表明与其他逻辑上不能达到计算机系统的连接性。所以,尽管参与计算机系统可试图建立至每个逻辑上不能达到的计算机系统的链路,通过参与计算机系统加入其他先前逻辑上不能达到的计算机系统,一些逻辑上不能达到的计算机系统可变成可达到的。当逻辑上不能达到的计算机系统变成可达到的时,参与计算机系统可避免试图加入逻辑上不能达到的计算机系统(因为链路数据将被从其他加入的计算机系统传播到参与计算机系统)。这可导致在多方会议会话200中的参与计算机系统之间的链路的“Web”的结果。
依据下列举例的XML模式,由多方会议会话200中的参与计算机系统交换的链路数据可被定义为1. <?xml version=”1.0”encoding=”utf-8”?>
2.<xsschema id=”MembershipSync”xmlnsxs=http//www.w3.org/2001/XMLschema>
3.
4.<xselement name=”Sync”type=”SyncType”/>
5.
6.<xscomplexType name=”SyncType”>
7.<xssequence>
8. <xselement name=”Node”type=”NodeType”/>
9. minOccurs=”0”10. maxOccurs=”unbounded”/>
11. </xssequence>
12. <xsarrtibute name=”from”type=”xsanyURI”use=”required”/>
13. <xsarrtibute name=”interval”type=”xsshort”14.</xscomplexType>
15.
16.<xscomplexType name=”NodeType”>
17.<xssequence>
18. <xselement name=”Link”type=”LinkType”19.minOccurs=”0”20. maxOccurs=”unbounded”/>
21.</xssequence>
22.<xsarrtibute name=”uri”type=”xsanyURI”use=”required”/>
23.<xsarrtibute name=”name”type=”xsstring”use=”required”/>
24.</xscomplexType>
25.
26.<xscomplexType name=”LinkType”>
27.<xsarrtibute name=”uri”type=”xsanyURI”use=”required”/>
28.</xscomplexType>
29.
30.</xsschema>
行6-14定义“SyncType”数据类型的“Sync“元素。特别是,行7-11定义了SyncType数据类型以将“NodeType”数据类型的零个或多个“Node”元素包括在内,行12定义了SyncType数据类型以将URI数据类型的“from”属性包括在内,以及行13定义了SyncType数据类型以将短整型数据类型的“interval”属性包括在内。
行16-24还定义NodeType数据类型。特别是,行17-21定义了NodeType数据类型以将“LinkType”数据类型的零个或多个“Link”元素包括在内,行22定义了NodeType数据类型以将URI数据类型的“uri”属性包括在内,以及行23定义了NodeType数据类型以将串数据类型的“name”属性包括在内。
行26-28还定义LinkType数据类型。特别是,行27定义了LinkType数据类型以将URI数据类型的uri属性包括在内。
多方会议会话200中的每个参与计算机系统可访问举例的XML模式。因此,多方会议会话200中所包括的每个计算机系统可依据举例的XML模式处理链路数据。
本发明可在其他特定形式中体现而不脱离其精神和必要特性。所描述的实施方式从所有方面考虑都仅仅是说明性的及非限制性的。本发明的范围由后附权利要求书指明,而不是以上描述。所有改变,在权利要求书的等效技术方案的含义和范围之内的,也可包括在发明的范围内。
权利要求
1.在至少包括邀请计算机系统的多方应用层会话中,邀请计算机系统可联网连接到加入计算机系统使得加入计算机系统和邀请计算机系统可通过传输电子报文来通信,加入方应用层在加入计算机系统处处理以加入多方应用层会话的方法,其特征在于,该方法包括向邀请计算机系统发送问候报文的动作;接收来自于邀请计算机系统的邀请方链路数据库的动作,邀请方链路数据库包括指示了邀请计算机系统被逻辑地链接到加入计算机系统的邀请方链路状态记录;更新加入方链路数据库以至少表明加入计算机系统被逻辑地链路至邀请计算机系统来响应接收到邀请方链路数据库的动作;以及向邀请计算机系统发送更新的加入方链路状态记录的动作,更新的加入方链路状态记录表示了加入计算机系统被逻辑地链路至邀请计算机系统。
2.如权利要求1所述的方法,其特征在于,它还包括加入方低协议层,在协议栈中位于加入方应用层处理之下,在发送问候报文之前接收来自于相应的邀请方低协议层的安全信息的动作,安全信息用于和多方应用层会话一起验证。
3.如权利要求1所述的方法,其特征在于,它还包括加入方低协议层,在协议栈中位于加入方应用层处理之下,在发送问候报文之前接收来自于相应的邀请方低协议层的进入点的动作,进入点用于连接至邀请方计算机系统以交换低层连接数据。
4.如权利要求1所述的方法,其特征在于,发送问候报文的动作包括发送包含一个或多个链路状态记录的同步报文的动作。
5.如权利要求1所述的方法,其特征在于,接收邀请方链路数据库的动作包括接收一个或多个链路状态记录的动作,每个链路状态记录表明参与多方应用层会话的计算机系统之间的一条或多条逻辑链路。
6.如权利要求1所述的方法,其特征在于,接收邀请方链路数据库的动作包括接收基于模式的邀请方链路数据库的动作。
7.如权利要求6所述的方法,其特征在于,接收基于模式的邀请方链路数据库的动作包括接收依据XML模式定义的XML指令的动作。
8.如权利要求1所述的方法,其特征在于,更新加入方链路数据库的动作包括将邀请方计算机系统添加到加入计算机系统的相邻列表中的动作。
9.如权利要求1所述的方法,其特征在于,更新加入方链路数据库的动作包括用从邀请计算机系统接收到的链路状态记录的更新版本代替加入链路数据库中的链路状态记录的当前版本的动作。
10.如权利要求1所述的方法,其特征在于,更新加入方链路数据库的动作包括表明加入方应用层处理被逻辑地连接到相应的邀请方应用层处理使得加入方应用层处理和邀请方应用层处理可交换会议数据的动作。
11.如权利要求1所述的方法,其特征在于,向邀请计算机系统发送更新的加入方链路状态记录的动作包括发送基于模式的链路状态记录的动作。
12.如权利要求11所述的方法,其特征在于,发送基于模式的链路状态记录的动作包括发送依据XML模式定义的XML链路状态记录的动作。
13.如权利要求1所述的方法,其特征在于,它还包括接收包含表明邀请计算机系统是加入计算机系统的相邻的链路状态记录的第二个更新的邀请方链路数据库的动作。
14.如权利要求1所述的方法,其特征在于,在加入方计算机系统发送问候报文之前,加入计算机系统和邀请计算机系统都是多方应用层会话中的参与计算机系统。
15.如权利要求1所述的方法,其特征在于,多方应用层会话是多方会议会话。
16.在至少包括邀请计算机系统的多方应用层会话中,邀请计算机系统可联网连接到加入计算机系统使得加入计算机系统和邀请计算机系统可通过传输电子报文来通信,邀请方应用层在邀请计算机系统处处理以邀请加入计算机系统加入多方应用层会话的方法,其特征在于,该方法包括接收来自于加入计算机系统的问候报文的动作;更新邀请方链路数据库以表明邀请计算机系统被逻辑地链路至加入计算机来响应接收到问候报文的动作;向加入计算机系统发送更新的邀请方链路数据库的动作;更新的邀请方链路数据库至少包括表明邀请计算机系统被逻辑地链路至加入计算机系统的邀请方链路状态记录;以及接收来自于加入计算机系统的加入方链路状态记录的动作,加入方链路状态记录表明邀请计算机系统被逻辑地链路至加入计算机系统。
17.如权利要求16所述的方法,其特征在于,它还包括邀请方低协议层,在协议栈中位于邀请方应用层处理之下,在接收问候报文之前向相应的加入方低协议层发送安全信息的动作,安全信息用于和多方应用层会话一起验证。
18.如权利要求16所述的方法,其特征在于,它还包括邀请方低协议层,在协议栈中位于邀请方应用层处理之下,在接收问候报文之前向相应的加入方低协议层公布进入点的动作,安全进入点用于连接至加入方计算机系统以交换低层连接数据。
19.如权利要求16所述的方法,其特征在于,接收来自于加入计算机系统的问候报文的动作包括在明确规定的门限内接收问候报文的动作,该明确规定的门限从先前发送至加入计算机系统的答复间隔中被计算出来。
20.如权利要求16所述的方法,其特征在于,接收来自于加入计算机系统的问候报文的动作包括接收包含一个或多个链路状态记录的同步报文的动作。
21.如权利要求16所述的方法,其特征在于,更新邀请方链路数据库的动作包括将加入计算机系统添加到与邀请计算机系统相对应的相邻列表中的动作。
22.如权利要求16所述的方法,其特征在于,更新邀请方链路数据库的动作包括表明邀请方应用层处理被逻辑地连接到相应的加入方应用层处理使得邀请方应用层处理和加入方应用层处理可交换会议数据的动作。
23.如权利要求16所述的方法,其特征在于,向加入计算机系统发送更新的邀请方链路数据库的动作包括发送一个或多个链路状态记录的动作,每个链路状态记录表明多方应用层会话的计算机系统之间的一条或多条逻辑链路。
24.如权利要求16所述的方法,其特征在于,向加入计算机系统发送更新的邀请方链路数据库的动作包括发送基于模式的邀请方链路数据库的动作。
25.如权利要求16所述的方法,其特征在于,发送基于模式的邀请方链路数据库的动作包括发送依据XML模式定义的XML指令的动作。
26.如权利要求16所述的方法,其特征在于,接收加入方链路状态记录的动作包括接收基于模式的链路状态记录的动作。
27.如权利要求26所述的方法,其特征在于,接收基于模式的链路状态记录的动作包括接收依据XML模式定义的XML链路状态记录的动作。
28.如权利要求16所述的方法,其特征在于,它还包括进一步更新邀请方链路数据库以将加入方链路状态记录包括在内的动作。
29.如权利要求28所述的方法,其特征在于,它还包括向包含在邀请计算机系统的相邻列表中的至少一个计算机系统发送进一步更新的邀请方链路数据库使得加入方链路状态记录被传播到参与多方应用层会话的其他计算机系统的动作。
30.如权利要求16所述的方法,其特征在于,在邀请方计算机系统接收到问候报文之前,邀请计算机系统和接收计算机系统都是多方应用层会话中的参与计算机系统。
31.如权利要求16所述的方法,其特征在于,多方应用层会话是多方会议会话。
32.在具有包含修复计算机系统和相邻计算机系统的多个可网络连接的参与计算机系统的多方应用层会话中,相邻计算机系统是在修复计算机系统的相邻列表中的,用于在修复计算机系统处应用层处理以启动多方应用层会话的修复的方法,其特征在于,它包括检测链路数据不再从相邻计算机系统处被接收到的动作;将相邻计算机系统从修复计算机系统相邻列表中删除的动作;将相邻计算机系统的链路状态记录从修复方链路数据库中删除的动作根据修复方链路数据库中剩余的链路状态记录标识逻辑上不能达到的参与计算机系统的列表的动作;以及为了修复多方会话,试图加入至少一个逻辑上不能达到的参与计算机的动作。
33.如权利要求32所述的方法,其特征在于,检测链路数据不再从相邻计算机系统处被接收到的动作包括答复计时器期满的动作。
34.如权利要求32所述的方法,其特征在于,检测链路数据不再从相邻计算机系统处被接收到的动作包括在明确规定的响应间隔内没有收到心跳报文的动作。
35.如权利要求32所述的方法,其特征在于,根据修复方链路数据库中的链路状态记录标识辑上不能达到的参与计算机系统的列表的动作包括标识一参与计算机系统是不能通过对包含在修复方链路数据库中的链路的任何组合而达到的动作。
36.如权利要求32所述的方法,其特征在于,为了修复多方会话试图加入至少一个逻辑上不能达到的参与计算机系统的动作包括向逻辑上不能达到的参与计算机系统发送问候报文的动作。
37.如权利要求32所述的方法,其特征在于,为了修复多方会话试图加入至少一个逻辑上不能达到的参与计算机系统的动作包括试图加入在逻辑上不能达到的参与计算机系统的列表中被标识的每个逻辑上不能达到的参与计算机系统的动作。
38.在多方应用层会话中使用的计算机程序产品包括至少一个邀请计算机系统,邀请计算机系统可网络连接至加入计算机系统使得加入计算机系统和邀请计算机系统可通过传输电子报文来通信,用于完成在加入计算机系统处加入方应用层处理以加入多方应用层会话的方法的计算机程序产品,其特征在于,它包括计算机可执行的指令存储在其上的一个或多个计算机可读媒体,当被处理机执行时,使得加入计算机系统完成下列向邀请计算机系统发送问候报文;接收来自于邀请计算机系统的邀请方链路数据库,邀请方链路数据库包括表明邀请计算机系统被逻辑地链接到加入计算机系统的邀请方链路状态记录;更新加入方链路数据库以至少表明加入计算机系统被逻辑地链接到邀请计算机系统以响应接收到邀请方链路数据库;以及向邀请计算机系统发送更新的加入方链路状态记录,更新的加入方链路状态记录表明加入计算机系统被逻辑地链路至邀请计算机系统。
39.如权利要求38所述的计算机程序产品,其特征在于,一个或多个计算机可读媒体是物理媒体。
40.在多方应用层会话中使用的计算机程序产品包括至少一个邀请计算机系统,邀请计算机系统可网络连接至加入计算机系统使得加入计算机系统和邀请计算机系统可通过传输电子报文来通信,用于完成在邀请计算机系统处邀请方应用层处理以邀请加入计算机系统加入多方应用层会话的方法的计算机程序产品,其特征在于,它包括计算机可执行的指令存储在其上的一个或多个计算机可读媒体,当被处理机执行时,使得加入计算机系统完成下列接收来自于加入计算机系统的问候报文;更新邀请方链路数据库以表明邀请计算机系统被逻辑地链路至加入计算机系统以响应接收到问候报文;向加入计算机系统发送更新的邀请方链路数据库,更新邀请方链路数据库至少包括表明邀请计算机系统被逻辑地链接到加入计算机系统的邀请方链路状态记录;以及接收来自于加入计算机系统的加入方链路状态记录,加入方链路状态记录表明加入计算机系统被逻辑地链接到邀请计算机系统。
41.如权利要求40所述的计算机程序产品,其特征在于,一个或多个计算机可读媒体是物理媒体。
42.在多方应用层会话中使用的计算机程序产品具有包括修复计算机系统和相邻计算机系统的多个可网络连接的参与计算机系统,相邻计算机系统是在修复计算机系统的相邻列表中的,用于完成应用层在修复计算机系统处处理以启动多方应用层会话的修复的方法的计算机程序产品,其特征在于,它包括计算机可执行指令存储在其上的一个或多个计算机可读媒体,当被处理机执行时,使得加入计算机系统完成下列检测链路数据不再从相邻计算机系统处被接收;将相邻计算机系统从修复计算机系统的相邻列表中删除;将相邻计算机系统的链路状态记录从修复方链路数据库中删除;根据包含在修复方链路数据库中的剩余链路状态记录标识逻辑上不能达到的参与计算机系统列表;以及为了修复多方会话试图加入至少一个逻辑上不能达到的参与计算机。
43.如权利要求42所述的计算机程序产品,其特征在于,一个或多个计算机可读媒体是物理媒体。
44.存储在一个或多个计算机可读媒体上的用于表示链路状态记录的数据结构,其特征在于,它包括下列表示标识参与多方应用层会话的参与计算机系统的计算机系统标识符的计算机系统标识符字段;以及表示被逻辑地链接到在计算机系统标识符字段中标识的参与计算机系统的一个或多个相邻计算机系统的列表的相邻列表字段。
45.如权利要求44所述的存储在一个或多个计算机可读媒体上的表示链路状态记录的数据结构,其特征在于,相邻列表字段包括一个或多个相邻计算机系统标识符字段,每个相邻计算机系统标识符字段表示用于标识相邻计算机系统被逻辑地链接到在计算机系统标识符字段中表示的参与计算机系统的相邻计算机系统标识符。
46.如权利要求44所述的存储在一个或多个计算机可读媒体上的表示链路状态记录的数据结构,其特征在于,数据结构还包括表示用来描述在计算机系统标识符字段中表示的参与计算机系统的元数据的计算机系统元数据字段。
47.如权利要求44所述的存储在一个或多个计算机可读媒体上的表示链路状态记录的数据结构,其特征在于,数据结构还包括表示在计算机系统标识符字段中表示的参与计算机系统生成表示链路状态记录的数据结构的时间的时间标记字段。
48.存储在一个或多个计算机可读媒体上的表示链路状数据库的数据结构,其特征在于,数据结构还包括表示标识发送链路状态数据库的参与计算机系统的计算机系统标识符的计算机系统标识符字段,参与计算机系统参与多方应用层会话;表示答复间隔值的答复间隔字段,答复间隔字段被用作答复门限的基础,答复门限表明在检测到链路数据不再从相邻计算机系统处被接收到之前,计算机系统标识符字段中表示的参与计算机系统将等候发送链路数据库的响应多长时间;以及表示其他参与计算机系统和计算机系统标识符字段中表示的计算机系统一起参与多方应用层会话的一个或多个链路状态记录的链路状态记录字段。
49.存储在一个或多个计算机可读媒体上的表示定义用于从链路数据库中传输链路数据的格式的模式的数据结构,其特征在于,数据结构还包括定义标识将从链路数据库中传输链路数据的计算机系统的格式的来源字段;定义表示被用作答复门限基础的答复间隔的格式的间隔字段,答复门限表明在检测到链路数据不再从相邻计算机系统处被接收到之前,根据在来源字段中定义的标识格式标识的计算机系统将等侯对发送链路数据的响应多长时间;以及定义表示一个或多个计算机系统具有将依据来源字段中定义的标识格式标识的计算机系统被传输的链路数据的格式的节点类型字段。
50.如权利要求49所述,存储在一个或多个计算机可读媒体上的表示定义用于从链路数据库中传输链路数据的格式的模式的数据结构,其特征在于,节点类型字段包括定义标识计算机系统具有将依据在源字段中定义的标识格式标识的计算机系统被传输的链路数据的节点格式的节点uri字段;定义表示与依据在节点uri字段中定义的节点标识格式定义的计算机系统有关的元数据的格式的名字字段;以及定义表示被逻辑地链路至依据节点uri字段中的计节点uri字段格式定义的计算机系统的一个或多个计算机系统的格式的链路类型字段。
51.如权利要求49所述,存储在一个或多个计算机可读媒体上的表示定义用于从链路数据库传输链路数据的格式的模式的数据结构,其特征在于,链路类型字段包括定义标识被逻辑地链路至依据节点uri字段中的节点uri字段格式定义的计算机系统的计算机系统的格式的链路uri字段。
全文摘要
参与计算机系统参与多方会议会话的资格信息通过和一个或多个相邻计算机系统间歇地交换链路数据库而被分配。链路数据库包括一个或多个链路状态记录,每个链路状态记录标识参与计算机系统和被逻辑地链接到参与计算机系统上的相邻计算机系统的列表。当新的计算机系统加入或参与计算机系统离开多方会话时,这个加入或离开的变化被反映到相应的相邻计算机系统的链路数据库中。当相邻计算机系统交换链路数据库时,变化最终被传播到所有参与计算机系统。因此,参与计算机系统连续地过渡到稳定状态,稳定状态中每个参与计算机系统知道其他参与计算机系统和与其他参与计算机系统有关的逻辑链路。
文档编号H04L29/06GK1540921SQ20041003513
公开日2004年10月27日 申请日期2004年4月22日 优先权日2003年4月22日
发明者J·A·泰罗, W·钟, J A 泰罗 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1