基于网络的协作的方法和系统的制作方法

文档序号:7911733阅读:205来源:国知局
专利名称:基于网络的协作的方法和系统的制作方法
基于网络的协作的方法和系统本发明涉及数据通信,具体涉及建立基于网络的协作的方法和系统。还描述了在已建立的基于网络的协作内使用的数据路径优化的方法。在基于广域网(WAN)的协作领域内发现了本发明的具体应用。术语协作涉及计算机资源的共享,具体涉及通过网络共享桌面计算机资源。近来,由于通过避免参与者往来于地点之间亲自参加会议的必要而获得的成本和时间的节约,通过网络的协作被更广泛地使用。许多协作系统市场上有售,例如由下列公司出售并许可的系统WebEx通信公司,商标为WebEx ;Citrix 系统公司,商标为 GoToMeeting ;微软公司,商标为SharedView ;IBM公司,商标为Sametime ;以及Adobe 系统公司,商标为 Adobe Acrobat Connect Professional。

图1中提供了这些系统的示意图表示,并且这些系统一般通过参考数字1来描述。 这些系统通常基于中央服务器2的使用,希望参与协作会话的任何个人必须经由计算机终端建立到中央服务器2的连接3。到中央服务器2的连接3通常经由因特网4实现。即使许多参与者可能位于同一地点或建筑物5内,但如果不在同一房间,每一计算机终端需要一个连接3。换句话说,对η个计算机终端来说,中央服务器2必须保持η个连接3。已知该方法对于较小数目的参与者来说很有效,但受限于它的可扩容性,在许多情况下,它不允许由数以百计(或更多数目)的参与者使用。实际上,所述协作系统1的瓶颈在于任何地点或建筑物5对它到外部世界的可用带宽都具有上限值。因此,如果在给定地点5的参与者数目较大,那么到外部世界的连接变得堵塞,且对于所有的意图和目的来说,协作系统1变得不可行。因特网协议(IP)多播是基于网络的通信技术,其允许服务器通过IP基础设施 (例如流媒体和网络电视应用)将信息传送到多个计算机终端。它容易扩容到更大的接收群体,因为它不需要谁或多少计算机终端正在接收已传送的信息的任何已知知识。通常,IP 多播系统要求服务器将数据报只发送一次到网络基础设施,即使数据报需要被传递到较大数目的计算机终端。网络中的节点负责复制数据报使得它们到达多个计算机终端。使用多播寻址的最常见的底层协议是用户数据报协议(UDP)。由于其本身的性质,UDP有高效的带宽,然而它是不可靠的,因为信息经常丢失或传递中出现错误。网络堵塞的问题之前在因特网协议(IP)多播领域中已经被认识到了。例如,微软公司名下的美国专利公布US2006/0029092A1描述了用于应用层多播的传送优化的方法。在所描述的方法中,对于视频会议的每一成员来说,表示数据源和视频会议的其他成员 (即从数据源接收视频和音频数据的数据接收者)的数据通信配置的多播树生成了。从每一数据源到各个数据接收者的端到端的传送延迟于是被确定了,每一数据源和各个数据接收者之间的可用带宽也被确定了。多播树中的一个或多个(每一个对应一个数据源)于是根据端到端的传送延迟和针对特定数据源的可用带宽被完善,以优化在视频会议中的数据源的数据通信配置。US2006/0029092A1的美国专利公布所描述的方法使用了许多特征,所述特征如果在协作系统内使用将会限制它的能力。在第一个实例中,所描述的方法受限于它的可扩容性。它要求应用层多播的每一成员确定与所有其他成员的带宽和延迟。因为这是全网络配置过程,所以复杂度(因此努力)是l/2n(n+l),其中η是成员的数目。对于每一其他成员重复该过程,因此当η较大时,该方法很快变得难以处理。基于所描述的方法的任何协作系统将比实际执行有用的数据通信在测试连接上花费更多的时间和带宽。将US2006/0029092A1所描述的方法引入协作系统的第二个基本问题涉及该事实所描述的方法没有选定的数据可以通过其直接在应用层多播的单个成员之间发送的机制。由任何特定的成员传输的信息被发送到应用层多播的所有其他成员。同样在微软公司的名下的编号为US2006/0029092A1的美国专利公布还描述了实现用于多方音-视频会议的应用层路由协议的可选的系统和方法。在此,应用层、每流 (per-stream)路由技术分别控制托管在网络上的会议成员之间的音频数据和视频数据。不同的音频应用层多播(ALM)树由每一成员生成,其根据数据传递路径的最短路径优先选择被动态更新,并且这些路径被用来将音频数据发送到视频会议的其他成员。同样地,不同的视频ALM树每一成员生成,其根据数据传递路径的最宽路径优先选择被动态更新,并且这些路径被用来将视频数据发送到视频会议的其他成员。为每一成员生成的不同的音频和视频ALM树在允许IP多播的网络段中使用IP多播。和US2006/0029092A1 —样,US2007/0086366A1所描述的协议包括许多将限制它
在协作系统内的使用的固有特征。在第一个实例中,所描述的协议使用IP多播,这是可用的,在该实现中不能够传递可靠的数据。数据可靠性的问题还受到协议的动态性质的损害; 实际上,网络不断地重组,这导致不稳定的系统。系统的不稳定性由于希望参与多方音-视频会议的成员的数目的增加而被恶化了。最后,所描述的协议没有选定的数据可以通过其直接在选定的各个成员之间发送的机制。由特定成员发送的任何音频或可视化数据被传送到包括在相关的音频和视频ALM树内的每一个其他成员。在Ghizi软件有限公司的名下的编号7,315,516的美国专利教导了在应用层多播中的多个参与者之间生成中继路径的方法,以允许将预定的数据传送到参与者。所述方法包含生成中继路径的二叉树结构,该中继路径的二叉树结构从具有相对较少跳数的网关开始朝向具有相对较多跳数的网关。所描述的方法有几个缺点,这将再次限制它适用于协作系统。在第一个实例中,所述方法没有考虑实际的链接速度。因此,具有有限能力的网关绝不会变成二叉树结构中的成员,这对网络的效率具有明显的不利影响。该缺点被网关按照它们连接的顺序进行布置的事实恶化了。这意味着所连接的第一网关将位于分布树的顶部。如果这恰巧是具有非常有限的资源的网关,则遍布树的整个分布将被严重影响。在大量资源可利用和因此可使用高得多的‘扇出’的情况下,次理想的二叉树配置的使用是尤其浪费的。与之前所讨论的多播系统一样,由编号7,315,516的美国专利所教导的方法没有便利选定的数据在选定的各个参与者之间发送的机制。因此,本发明的一方面的目的是提供建立基于网络的协作会话的方法,所述方法消除或至少减轻在现有技术中所描述的协作会话的缺点。
本发明的一方面的第二个目的是提供实现基于网络的协作会话的方法,所述方法消除或至少减轻在现有技术中所描述的协作会话的缺点。本发明的一方面的另一目的是提供基于网络的协作的数据路径优化的方法,所述方法消除或至少减轻在现有技术中所描述的网络优化方法的缺点。本发明的一方面的又一目的是提供建立基于网络的协作会话的系统,所述系统消除或至少减轻在现有技术中所描述的协作系统的缺点。术语的定义在下面的描述中,终端指连接到网络的计算机硬件。终端具有托管数据和执行网络的客户端和/或服务器的功能的功能。客户端指在终端上运行以允许用户接收数据并因此参与协作的模块。客户端还可能够为终端提供设备以将数据传送到例如服务器和/或一个或多个其他客户端。客户端可以用软件或固件或软件和固件的组合来实现。服务器指在终端上运行的为协作会话提供数据的模块。服务器还能够为终端提供设备以接收例如来自一个或多个客户端的数据。服务器可以用软件或固件或软件和固件的组合来实现。客户端终端指客户端在其上运行的计算机硬件。服务器终端指服务器在其上运行的计算机硬件。应用网关是可能用硬件、软件或固件或其组合物实现的终端的功能模块。应用网关的主要功能是在位于网络内的服务器和一个或多个客户端之间中继协作会话数据。发明概述根据本发明的第一方面,提供了执行网络中的协作会话的方法,所述方法包括以下步骤提供作为所述协作会话的数据源的服务器终端;提供多个客户端终端,每一客户端终端提供给用户参与协作会话的接入点;以及提供一个或多个应用网关,每一应用网关被配置成在协作会话期间在网络组件之间中继数据;其中所述服务器终端设置有服务器应用网关,在协作会话期间,所述服务器终端向所述服务器应用网关传送数据,服务器应用网关根据所述服务器终端的位置确定;以及每一客户端终端设置有客户端应用网关,在协作会话期间,客户端终端从客户端应用网关接收数据,每一客户端应用网关根据所述客户端终端的位置确定。提供一个或多个应用网关可包含提供一个或多个预定的终端以充当应用网关,该应用网关在下文中被称作静态应用网关。可选地,一个或多个客户端终端或服务器终端可被指示来执行应用网关的功能。该指示可在协作会话之前或期间发生。该应用网关在下文中被称作动态应用网关。协作会话也可使用静态应用网关和动态应用网关的组合。提供静态的或动态的应用网关(如在下面更详细地描述的)避免了到服务器的多个数据连接(即一个客户端一个连接)都传送相同的数据的要求。通过分别基于服务器终端的位置和客户端终端的位置确定服务器应用网关和客户端应用网关(即通过确定哪个应用网关能够将最高的数据吞吐率提供给服务器终端和客户端终端),所述方法向协作会话提供具有较大效率的数据通信的架构。这在具有(例如,通常发现于网络系统的子网络之间的)有限的带宽数据连接的网络内尤其有利。在一些实施方式中,所述方法使用一个应用网关作为服务器应用网关和客户端应用网关。换句话说,数据可直接从服务器终端传送到应用网关,并继续传送到客户端终端。在其他实施方式中,所述方法使用不同的应用网关作为服务器应用网关和客户端应用网关。换句话说,数据可直接从服务器终端传送到服务器应用网关,再中继到客户端应用网关,并继续传送到客户端终端。所述方法可在网络内使用多个客户端应用网关,给所述多个客户端应用网关分配相应的客户端终端。在该实施方式中,服务器应用网关可将数据中继到多个客户端应用网关。可选地,或此外,第一客户端应用网关可将数据中继到第二应用网关,第二应用网关然后可将数据中继到它的各个客户端终端。所述方法可包括将应用网关分配给服务器终端用于协作会话的持续的附加步骤, 以及/或者可包括将应用网关分配给多个客户端终端中的每一个用于协作会话的持续的附加步骤。优选地,提供一个或多个应用网关的步骤包括部署一个或多个静态应用网关。最优选地,部署应用网关来向已确认的客户端终端的相关的子网络提供最优的数据传输速度。可选地,提供一个或多个应用网关的步骤包括将已确认的客户端终端中的一个或多个部署为一个或多个动态应用网关。最优选地,选定被部署为一个或多个动态应用网关的一个或多个已确认的客户端终端被选择来向已确认的客户端终端的相关的子网络提供最优的数据传输速度。使用确定所述一个或多个应用网关的方法提供了动态地建立协作会话的方式。最优选地,向服务器终端提供服务器应用网关的步骤由协作建立控制模块执行。 优选地,协作建立控制模块还执行向客户端终端提供服务器应用网关的步骤。优选地,协作建立控制模块包括web服务器。web服务器可允许协作建立控制模块和多个客户端终端和/或服务器终端之间的通信。优选地,协作建立控制模块还包括用来保留关于所述协作会话的信息的协作数据库。优选地,协作建立控制模块还包括允许协作会话的后台运行功能的实现的守护进程。要注意的重要一点是,协作建立控制模块提供了建立、发起和保持协作会话而无需积极地参与协作会话的方式。因此,协作建立的控制模块不构成系统内的数据流瓶颈。优选地,协作会话由用户向协作建立控制模块提交协作会话请求发起。会话请求优选地包括协作会话的参与用户的身份的详细资料。提供参与用户的详细资料有助于保持协作会话的安全性。可选地,所述会话请求还包括协作会话的预先安排的时间T。。优选地,在提交协作会话请求之后,将会话标识符分配到协作会话。可选地,所述服务器终端位于已确认的客户端终端的相关的子网络的外部。最优选地,在网络中执行协作会话的方法还包括在两个或多个应用网关上执行负载测试的步骤。所述负载测试可允许建立优化的数据通信路径,其能进一步提高协作会话的运行效率。所述负载测试可由协作建立控制模块执行。最优选地,优化的数据通信路径保持建立以用于协作会话的持续。可选地,所述负载测试在协作会话的预先安排的时间T。之前的预定时间Tp执行。可选地,预定时间Tp由下面的表达式Tp = T。-(Ttest χ C)确定,其中Ttest是在协作网络上执行之前的负载测试所用的时间,C是误差因数。误差因数C具有大于1的值,例如 C = 1. 5。优选地,执行网络中的协作会话的方法还包括每一参与客户端向协作建立控制模块提交用户注册请求的步骤。所述方法还可包括服务器向协作建立控制模块提交用户注册请求。为了注册协作会话,用户注册请求可包括有效的会话标识符、有效的用户名和密码。优选地,在服务器向协作建立控制模块提交用户注册请求之后执行负载测试。负载测试可依照本发明的第五方面和它的优选实施方式。优选地,检查用户注册请求以确立用户是否具有加入所述协作会话的所要求的许可。每一用户的验证还有助于保持协作会话的安全性。最优选地,如果确立了用户具有所要求的许可,则给客户端分配客户端标识符。客户端标识符的分配是有利的,因为它允许参与客户端中的每一个将数据直接发送给彼此, 即该数据不需要发送给在协作会话内使用的所有客户端。优选地,建立基于网络的协作会话的方法还包括应用网关向协作建立控制模块提供应用网关的客户端处理能力被耗尽或即将被耗尽的指示的步骤。优选地,当从相关的子网络内的客户端接收到又一有效的用户注册请求时,提交请求的客户端终端被指示来作为第一子网络动态应用网关。用这种方法,子网络内的提交有效的用户注册请求的任何其他客户端经由第一子网络动态应用网关被直接连接到协作会话。可选地,第一子网络动态应用网关向协作建立控制模块提供第一子网络动态应用网关的客户端处理能力被耗尽或即将被耗尽的指示。优选地,当从相关的子网络内的客户端接收到又一有效的用户注册请求时,提交请求的客户端终端被指示作为第二子网络动态应用网关起作用。用这种方法,子网络内的提交有效的用户注册请求的任何其他客户端经由第二子网络动态应用网关被直接连接到协作会话。优选地,执行协作会话的方法还包括多个客户端中的一个选择性地将数据传送到服务器和/或其他多个客户端中的一个或多个的步骤。因此,所描述的协作会话允许服务器和参与客户端中的每一个将数据直接发送给彼此,即该数据不需要发送给协作会话的所有客户端。用这种方法,每一客户端可提交会话控制请求和文件上传请求。优选地,选择性地传送数据的步骤包括将数据传送到客户端应用网关以及随后通过客户端应用网关将数据中继到服务器终端和/或到多个客户端终端中的一个或多个。最优选地,服务器终端和服务器应用网关位于第一子网络内。可选地,客户端应用网关和多个客户端终端中的至少一个位于第二子网络内。优选地,所述网络包括广域网,所述第一子网络和第二子网络包括局域网。最优选地,传送和中继数据的步骤包括使用传输控制协议/因特网协议(TCP/ IP)。
根据本发明的第二方面,提供了一种网络系统,所述系统包括服务器终端,其提供协作会话中的数据源;多个客户端终端,每一个提供给用户参与协作会话的接入点;以及—个或多个应用网关,每一应用网关被配置成在协作会话期间在网络组件之间中继数据;其中所述服务器终端设置有服务器应用网关,在所述协作会话期间,所述服务器终端向所述服务器应用网关传送数据,所述服务器应用网关根据所述服务器终端的位置确定;以及每一客户端终端设置有客户端应用网关,在所述协作会话期间,客户端终端从所述客户端应用网关接收数据,每一客户端应用网关根据所述客户端终端的位置确定。在一些实施方式中,一个应用网关可作为服务器应用网关和客户端应用网关起作用。换句话说,数据可直接从服务器终端传送到应用网关,并且继续传送到客户端终端。在其他实施方式中,服务器应用网关和客户端应用网关可以是不同的应用网关。 换句话说,数据可直接从服务器终端传送到服务器应用网关,再被中继到客户端应用网关, 并继续传送到客户端终端。在网络中可以有多个客户端应用网关,给它们分配相应的客户端终端。因此,服务器应用网关可将数据中继到多个客户端应用网关。可选地,或此外,第一客户端应用网关可将数据中继到第二应用网关,第二应用网关接着可将数据中继到它的各个客户端终端。最优选地,所述网络系统还包括协作建立控制模块。优选地,协作建立控制模块包括web服务器。web服务器可允许协作建立控制模块和多个客户端终端和/或服务器终端之间的通信。优选地,协作建立控制模块还包括用来保留关于协作会话的信息的协作数据库。优选地,协作建立控制模块还包括允许协作会话的后台运行功能的实现的守护进程。本发明的第二方面的实施方式可包括实现本发明的第一方面的优选或可选特征的特征,或者反过来也一样。根据本发明的第三方面,提供了配置用于基于网络的协作会话的网络的方法,所述网络包括服务器和多个客户端,所述方法包括步骤确认所述网络内的终端的一个或多个子网络;以及向所述一个或多个已确认的子网络提供一个或多个应用网关,所述一个或多个应用网关被配置成在协作期间在网络组件之间中继数据。优选地,提供一个或多个应用网关的步骤包括部署一个或多个静态应用网关。最优选地,部署应用网关来提供到已确认的终端的子网络的最优的数据传输速度。可选地,提供一个或多个应用网关的步骤包括将已确认的终端中的一个或多个部署为一个或多个动态应用网关。最优选地,选定被部署为一个或多个动态应用网关的一个或多个已确认的终端被选择来向已确认的终端的子网络提供最优的数据传输速度。使用确定一个或多个应用网关的方法提供了动态地建立协作会话的方式。最优选地,所述终端中的至少一个被配置为提供协作会话的数据源的服务器终端。优选地,所述终端中的两个或多个被配置为客户端终端以提供给用户参与协作会话的接入点。所述方法可包括将应用网关分配给服务器和/或将应用网关分配给多个客户端的附加步骤。所述方法可包括将应用网关分配给服务器用于协作会话的持续的附加步骤,以及 /或者可包括将应用网关分配给多个客户端中的每一个以用于协作会话的持续的附加步
马聚ο最优选地,将所述一个或多个应用网关分配给服务器和/或多个客户端的步骤由协作建立控制模块执行。优选地,协作会话由用户向协作建立控制模块提交协作会话请求发起。所述会话请求优选地包括协作会话的参与用户的身份的详细资料。可选地,所述会话请求还包括协作会话的预先安排的时间T。。优选地,在提交所述协作请求之后,将会话标识符分配到协作会话。最优选地,建立基于网络的协作会话的方法还包括在两个或多个应用网关上执行负载测试或吞吐量测试的步骤。负载测试或吞吐量测试采取分析连接应用网关的路径的吞吐量的形式。具体地,测量在每一地点之间的两个方向上的预定数据量的吞吐量。预定数据量在大小上优选为至少32kb。负载测试可允许建立优化的数据通信路径,所述优化的数据通信路径进一步提高协作会话的操作效率。负载测试可由协作建立控制模块执行。最优选地,优化的数据通信路径保持建立状态以用于协作会话的持续。可选地,所述负载测试在协作会话的预先安排的时间T。之前的预定时间Tp执行。可选地,预定时间Tp由下面的表达式Tp = T。-(Ttest χ C)确定,其中Ttest是在协作网络上执行之前的负载测试所用的时间,C是误差因数。误差因数C具有大于1的值,例如 C = 1. 5。优选地,在服务器向协作建立控制模块提交用户注册请求之后执行所述负载测
试ο负载测试可依照本发明的第五方面和它的优选实施方式执行。优选地,建立基于网络的协作会话的方法还包括连接两个或多个应用网关以在两个或多个已确认的终端的子网络之间建立数据通信路径。最优选地,数据通信路径保持建立状态以用于协作会话的持续。优选地,所述子网络包括位于广域网内的局域网。本发明的第三方面的实施方式可包括本发明的第一方面的优选或可选的特征,或者反过来也一样。根据本发明的第四方面,提供了一种执行协作会话的方法,所述方法包括以下步骤_根据本发明的第三方面配置基于网络的协作会话;以及-经由一个或多个应用网关在服务器和多个客户端之间通信数据。最优选地,通信数据的步骤包括使用传输控制协议/因特网协议(TCP/IP)的步
马聚ο根据本发明的第五方面,提供了在基于网络的协作会话内使用的两个或多个应用网关之间确定优化的数据通信路径的方法,以在网络组件之间中继数据,所述方法包括在两个或多个应用网关上执行负载测试或吞吐量测试的步骤。上述方法提供了优化的通信数据路径,以提供连接网络内的两个或多个应用网关的最有效的布置。最优选地,两个或多个应用网关保持连接状态以用于协作会话的持续。最优选地,负载测试或吞吐量测试包括测量数据路径(优选应用网关之间的所有数据路径)的吞吐量或网络速度的步骤。负载测试可包括测量双向的吞吐量或网络速度。优选地,负载测试还包括从所测量的网络吞吐量或速度生成连接矩阵。负载测试还优选地进一步包括归一化连接矩阵。归一化确保只是在它们所测量的吞吐量或速度中具有轻微不同的连接被有效地认为具有相同的吞吐量或速度。没有归一化,“连锁效应”可能发生,由此数据通信路径趋于在深度上而非宽度上生长,这导致更多的端到端延迟和次理想的数据传输。可选地,负载测试还包括确认两个或多个应用网关的可利用的能力。确认两个或多个应用网关的可利用的能力为负载测试提供建立耗尽容量的应用网关集合的选项。优选地,负载测试还包括定义应用网关的源集合的步骤。最优选地,应用网关的源集合最初被设置为包括服务器终端要连接到其上的应用网关。优选地,所述负载测试还包括清空对应所述源集合的归一化连接矩阵的列的步
马聚ο优选地,所述负载测试还包括确认不包括在所述源集合内、与所述源集合具有最高的吞吐量或速度的数据路径连接的应用网关的步骤。可选地,确认应用网关的步骤还包括检查具有最高吞吐量或速度的数据路径连接的应用网关不包括在耗尽容量的应用网关集合内。可选地,确认应用网关的步骤还包括从服务器终端连接到其上的应用网关中选择具有较小跳数的应用网关。当两个或多个应用网关被确认为与所述源集合具有相同的吞吐量或速度的数据连接时,需要该步骤。优选地,确认应用网关的步骤还包括选择具有最大的可用的连接处理能力的应用网关。当两个或多个应用网关被确认为与所述源集合具有相同的吞吐量或速度的数据连接,且和离服务器终端被连接到的应用网关具有相等的跳数时,需要该步骤。优选地,所述负载测试还包括将确认的应用网关添加到所述源集合的的步骤。可选地,升级已确认的应用网关的可用的连接处理能力。根据本发明的第六方面,提供了在网络中的服务器和多个客户端之间建立基于网络的协作会话的系统,所述系统包括协作建立控制模块,其中协作建立控制模块基于选自服务器终端的位置和多个客户端终端的位置中的至少一个位置,提供了用于确定要在协作会话中使用的一个或多个应用网关的方式。优选地,协作建立控制模块包括web服务器,其允许客户端终端与协作建立控制模块通信。网络服务器优选地包括图形用户界面(WebGUI)、会话调度器和用户认证模块。优选地,协作建立控制模块还包括用来保留关于协作会话的信息的协作数据库。协作建立控制模块优选地还包括允许协作会话的后台运行功能的实现的守护进程。守护进程优选地包括应用网关接口、负载测试器、路径分析器和路由表模块。该结构允许协作会话的建立在OSI参考模型的会话层(层五)内实现。最优选地,用户认证模块允许来自至少一个用户的加入协作会话的请求的详细资料的认证。优选地,会话调度器被用来接收来自用户的希望发起协作会话的协作会话请求。 优选地,会话请求包括被邀请到协作会话的用户的详细资料。将受邀请的用户的详细资料提供给会话调度器有助于保持协作会话的安全性。可选地,会话请求还可包括协作会话的预先安排的时间。优选地,在提交协作请求之后,会话调度器将会话标识符分配到协作会话。优选地,协作数据库存储静态应用网关的预分配组以允许协作建立控制模块确定一个或多个应用网关。最优选地,选定的应用网关被选择来向客户端终端的相关的子网络提供最优的数据传输吞吐量或速度。可选地,会话调度器被用来将客户端终端中的一个或多个部署为一个或多个动态应用网关。最优选地,被选定部署为一个或多个动态应用网关的一个或多个已确认的客户端终端被选择来向客户端终端的相关的子网络提供最优的数据传输吞吐量或速度。可选地,服务器终端位于客户端终端的相关的子网络的外部。最优选地,负载测试器被用来在两个或多个应用网关上执行负载测试或吞吐量测试。负载测试可允许确定优化的数据通信路径,所述优化的数据通信路径进一步提高协作会话的操作效率。可选地,所述负载测试在协作会话的预先安排的时间T。之前的预定时间Tp执行。可选地,预定时间Tp由下面的表达式Tp = Tc-(TtestX C)确定,其中Ttest是在协作网络上执行之前的负载测试所用的时间,C是误差因数。误差因数C具有大于1的值,例如 C = 1. 5。优选地,在服务器向协作建立控制模块提交用户注册请求之后执行所述负载测
试ο负载测试或吞吐量测试可依照本发明的第五方面和它的优选实施方式执行。最优选地,负载测试器指示路径分析器来测量应用网关之间的数据路径中的至少一些的网络速度。路径分析器可测量双向的网络速度,以及/或者可以测量所有的数据路径。数据通信路径的优化考虑双向的网络速度是有利的,因为数据路径的带宽和延迟取决于测量的方向。优选地,负载测试器存储生成自路由表内的所测量的网络吞吐量或速度的连接矩阵。优选地,负载测试器提供处理存储在路由表内的连接矩阵的方式,以为两个或多个应用网关提供优化的数据通信路径。最优选地,会话调度器提供连接两个或多个应用网关的方式,以在客户端终端的相关的子网络之间建立数据通信路径。优选地,所述相关的子网络包括位于广域网内的局域网。优选地,用户认证模块通过检查它包括有效的会话标识符、有效的用户名和密码来认证用户注册请求的详细资料。每一用户的验证还有助于保持协作会话的安全性。最优选地,如果确立用户具有所要求的许可,那么会话调度器为客户端分配客户端标识符和适当的应用网关的详细资料以将客户端连接到协作会话。客户端标识符的分配是有利的,因为它允许服务器终端和参与的客户端终端中的每一个直接向彼此发送数据,即该数据不需要发送到协作会话的所有终端。优选地,应用网关接口为应用网关提供了通知会话调度器应用网关的客户端处理能力被耗尽或将被耗尽的方式。优选地,当用户认证模块从相关的子网络内的客户端接收又一有效的用户注册请求时,会话调度器指示提交请求的客户端终端作为第一子网络动态应用网关起作用。用这种方式,提交有效的用户注册请求的子网络内的任何其他客户端经由第一子网络动态应用网关被直接连接到协作会话。可选地,应用网关接口为第一子网络动态应用网关提供了通知会话调度器第一子网络动态应用网关的客户端处理能力被耗尽或将被耗尽的方式。优选地,当用户认证模块从相关的子网络内的客户端接收又一有效的用户注册请求时,会话调度器指示提交请求的客户端终端作为第二子网络动态应用网关起作用。用这种方式,子网络内的提交有效的用户注册请求的任何其他客户端经由第二子网络动态应用网关被直接连接到协作会话。本发明的第六方面的实施方式可包括本发明的第一、第三和第五方面的优选或可选的特征,或者反过来也一样。根据本发明的第七方面,提供了在网络中的服务器和多个客户端之间建立基于网络的协作会话的方法,所述方法包括以下步骤确认在网络内的终端的一个或多个子网络;以及将一个或多个已确认的子网络内的一个或多个终端部署为被配置成在协作期间在网络组件之间中继数据的应用网关。一个或多个应用网关的使用避免了多个数据连接都传送相同的数据的要求。作为应用网关起作用的一个或多个终端的部署提供了具有更高效率的数据通信的动态架构。这在具有有限的带宽数据连接(例如,如通常发现于网络系统的子网络之间)的网络内是特别有利的。最优选地,选定被部署为一个或多个应用网关的一个或多个终端被选择来向已确认的终端的子网络提供最优的数据传输速度。最优选地,终端中的至少一个被配置为提供协作会话的数据源的服务器终端。优选地,终端中的两个或多个被配置为客户端终端以提供给用户参与协作会话的接入点。所述方法可包括将应用网关分配给服务器,以及/或者将应用网关分配给多个客户端的附加步骤。所述方法可包括将应用网关分配给服务器用于协作会话的持续,以及/或者可包括将应用网关分配给多个客户端中的每一个用于协作会话的持续的附加步骤。最优选地,将一个或多个应用网关分配给服务器和/或多个客户端的步骤由协作建立控制模块执行。优选地,协作会话由用户向协作建立控制模块提交协作会话请求发起。可选地,服务器终端位于已确认的客户端终端的一个或多个子网络的外部。最优选地,建立基于网络的协作会话的方法还包括在两个或多个应用网关上执行负载测试或吞吐量测试的步骤。负载测试可允许建立优化的数据通信路径,所述优化的数据通信路径进一步提高协作会话的操作效率。负载测试可由协作建立控制模块执行。最优选地,优化的数据通信路径保持建立状态以用于协作会话的持续。可选地,所述负载测试在协作会话的预先安排的时间T。之前的预定时间Tp执行。可选地,预定时间Tp由下面的表达式Tp = Tc-(TtestX C)确定,其中Ttest是在所述协作网络上执行之前的负载测试所用的时间,C是误差因数。误差因数C具有大于1的值, 例如C = 1. 5。优选地,在服务器向协作建立控制模块提交用户注册请求之后执行负载测试或吞吐量测试。负载测试或吞吐量测试可依照本发明的第五方面和它的优选实施方式执行。优选地,建立基于网络的协作会话的方法还包括连接两个或多个应用网关以在已确认的终端的相关的子网络之间建立数据通信路径。最优选地,所述两个或多个应用网关保持连接状态以用于协作会话的持续。优选地,所述相关的子网络包括位于广域网内的局域网。本发明的第七方面的实施方式可包括本发明的第一、第三、第五和第六方面的优选或可选的特征,或者反过来也一样。根据本发明的第八方面,提供了一种执行协作会话的方法,所述方法包括以下步骤_根据本发明的第七方面建立基于网络的协作会话;以及-经由一个或多个应用网关在服务器和多个客户端之间通信数据。最优选地,通信数据的步骤包括使用传输控制协议/因特网协议(TCP/IP)的步骤。这样的通信协议提供了数据的有序传递,并因此有助于协作会话满足所期望的安全性和数据传递的可靠性要求。根据本发明的第九方面,提供了装有机器可读指令的计算机装置,用于实现根据本发明的第一方面的执行网络中的协作会话的方法。根据本发明的第十方面,提供了装有机器可读指令的计算机装置,用于实现根据本发明的第三方面的为基于网络的协作会话配置网络的方法。根据本发明的第十一方面,提供了装有机器可读指令的计算机装置,用于实现根据本发明的第四方面的执行协作会话的方法。根据本发明的第十二方面,提供了装有机器可读指令的计算机装置,用于实现根据本发明的第五方面的在基于网络的协作会话内使用的两个或多个应用网关之间确定优化的数据通信路径的方法。根据本发明的第十三方面,提供了装有机器可读指令的计算机装置,用于实现根据本发明的第七方面的在网络中的服务器和多个客户端之间建立基于网络的协作会话的方法。根据本发明的第十四方面,提供了装有机器可读指令的计算机装置,用于实现根据本发明的第八方面的执行协作会话的方法。附图的简要描述尽管所描述的协作会话的方法和系统的方方面面可以以任何数目的不同的计算系统、环境和/或配置实现,但协作会话的实施方式在下面的详细示例性系统架构的上下文中并参考下面的附图进行描述,其中
图1给出了现有技术的协作系统的示意图;图2给出了基于广域网(WAN)的协作会话的示意图,在所述基于广域网的协作会话内,根据本发明的一实施方式的方法优化了数据路径;图3给出了在图2的基于广域网的协作会话内使用的示例的协作建立控制模块的框图;图4给出了用来建立图2的协作会话的第一方法的流程图;图5给出了在图2的广域网内部署应用网关的示意图;图6给出了在图2的广域网内的应用网关之间执行负载测试的示意图表示;图7给出了由图6的负载测试生成的连接矩阵;图8给出了由协作建立控制模块使用的将图7的连接矩阵转换成图2的WAN内的应用网关之间的优化的数据路径的示例性方法;图9给出了在图2的协作会话内使用的客户端认证过程的示意图表示;图10(a)到10(e)给出了为图2的协作会话内的数据传送提供的数据路由的示意性表示;图11给出了在图2的协作会话内部署动态应用网关的示意图表示;以及图12给出了用来建立图2的协作会话的第二方法的流程图。详细描述为了提供对本发明的各个方面的理解,现将描述广域网(WAN)7内的协作会话6。 该协作会话6的示意图表示在图2中给出。在目前所描述的实施方式中,可看出WAN 7包括四个不同的地点5a、5b、5c和5d,其中的每一个包括局域网(LAN)。例如,地点5a、5b、5c 和5d可分别位于格拉斯哥、爱丁堡、伦敦和华盛顿。地点5a、5b、5c和5d借助于四个应用网关8a、8b、8c和8d连接,下面提供进一步的细节。为协作会话6提供数据源的服务器9位于地点5a内。服务器9包括在计算机终端(后文称为服务器终端)上运行的软件。服务器9还能够接收数据。参与协作的许多客户端10位于地点5a、5b、5c和5d中的每一个中。客户端10包括运行在计算机终端(后文称为客户端终端)上的软件以允许用户接收数据并因此参与协作会话6。然而,应该理解,客户端10还能够将数据传送到例如服务器9和/或其他客户端 10中的一个或多个。下面描述协作会话6内的数据路由过程的进一步的细节。应用网关8a、8b、8c和8d的采用解决了进出地点5a、5b、5c和5d的多个连接的问题(如之前所描述的现有技术系统1所需要的,即参与协作的每一用户需要一个连接)。由于从服务器9流出的数据对所有的客户端10来说都是相同的,因此没有必要在地点5a、5b、 5c和5d之间具有多个数据流。数据能简单地在地点5a、5b、5c和5d的LAN内重新分配,从而大大减小了在潜在的瓶颈处所需要的带宽(即到外部世界的物理连接)。此外,由于在地点5a、5b、5c和5d的LAN内可用的带宽通常比整个WAN 7的带宽大得多,因此应用网关8a、8b、8c和8d的采用提供了对可用的网络架构的有效得多的使用。网络内的减小的带宽需求还允许协作会话6使用传输控制协议/因特网协议 (TCP/IP)用于网络内的数据通信。这与传统的应用层多播系统不同,其由于带宽限制而使用用户数据报协议(UDP)。如本领域的技术人员所知,TCP/IP提供通信系统内的数据流的可靠、有序的传递,而没有隐含的握手对话的简单传输协议UDP不能保证可靠性、有序性或数据的完整性。因此使用TCP/IP用于数据的通信允许协作会话6满足期望的安全性和数据传递的可靠性需求。在上面所描述的例子中,只有一个数据流在地点5a、5b、5c和5d之间流动。这导致了高度可扩容的网络架构在该例子中,服务器9完全不知道实际上有8个客户端10,因为它只需要向一个应用网关8a提供数据。除节约带宽外,优化的网络还导致处理能力的显著节约。可采用非常适度的服务器终端(就硬件而言)来托管服务器9并有效地服务多个客户端10。当不但硬件受限制而且可用带宽也受限制时,该因素变得更加重要。例如,通过采用这样的优化网络,对于即使较慢的连接来说,服务例如来自家里或宾馆房间的许多客户端10也是可能的。协作建立控制模块(CECM)在图3中给出了协作建立控制模块(CECM) 11的框图。CECM 11是允许协作会话6 发生的核心结构。从图3可看出CECM 11包括三个功能组件,即web服务器12,其设置有图形用户界面(GUI) 13、会话调度器14和用户认证模块15 ;协作数据库16,其被用来保留应用网关数据、会话数据和客户端数据;以及守护进程17,其设置有路由表18、数据路径分析器19、应用网关接口 20和负载测试器21。CECM 11处理被要求建立、初始化和保持协作会话6的所有的管理功能。网络服务器12为CECM 11提供⑶I 13,而守护进程17实现在后台运行的功能,如负载测试(其细节在下面提供)。更具体地,CECM 11完成协作会话6的以下任务,即1)会话调度;2)用户认证;3)应用网关管理;以及4)会话数据路径计算。下面讨论这些任务中的每一个的更进一步的细节。CECM 11也可充当虚拟大厅。例如,协作会话6可能被安排,以及一个或多个客户端可能希望在服务器9 (已经加入会话6)之前加入。在这些情况下,CECM 11临时充当这些客户端10的集合点,并且然后当服务器9出现以及协作会话6准备开始时,CECM 11将所有的客户端10 “领到”会议厅。然而重要的是,CECM 11并不积极地参与协作会话6,因此不构成如与现有技术的系统1内使用的中央服务器2相关的瓶颈效应。而且,CECMll起着提取网络7的地址的作用。所有的服务器9、客户端10或事实上的应用网关8需要了解网络7的是IP地址或通过例如CECM的cecm. appshare. co. uk的域名系统(DNS)获得的文本别名。在网络内建立协作会话的方法现在讨论用来在WAN 7内的多个客户端10之间建立协作会话6的方法。正如所看到的,用来获得WAN 7内的数据路径优化的方法在减小带宽需求并因此提高协作会话6 的效率方面是很重要的。图4给出了所描述的方法的流程图。步骤1)提供应用网关在WAN 7内建立协作会话6的第一步包含在每一地点5内提供一个或多个应用网关8。如上所述,应用网关8的功能是充当相关的地点5的LAN的输入/输出,以在最大化所能支持的客户端10的数目的同时提高效率。在目前所描述的实施方式中,这包含在地点5a、5b、5c和5d内分配一个或多个终端以执行那一地点的应用网关8的功能。存在应用网关8a、8b、8c和8d能够部署及应该部署以优化性能的关键位置。通常, 每一地点5具有一个或多个到外部世界的物理连接。因此会发现,应用网关8a、8b、8c和8d 越位于靠近输入/输出的物理连接,运行起来就越高效。然而对于目前所描述的协作会话来说,所需要的是在地点5a、5b、5c和5d内提供至少一个应用网关8。这种部署模式在后文被称为静态应用网关8的部署。这种静态部署通常通过使用连续运转的服务器来实现。一旦被选定,应用网关(例如网关8d)被提供有CECM 11的IP地址。开始启动时, 应用网关8d经由应用网关接口 20向CECM 11注册,然后会话调度器14分配给它应用网关标识符,同时提供给它已经注册的所有其他应用网关8a、8b和8c的详细资料。CECM 11还将应用网关8d的详细资料添加到协作数据库,并用新注册的应用网关8d的详细资料更新任何之前注册的应用网关8a、8b和8c。图5给出了在图2的WAN 7内部署应用网关8a、8b、8c和8d的示意图。在目前所描述的例子中,在每一地点5a、5b、5c和5d内只部署了一个静态应用网关8a、8b、8c和8d, 尽管应该意识到为了提高效率,可以在较大的地点5内部署两个或多个应用网关8。然而, 在每一地点5a、5b、5c和5d内只部署一个应用网关8a、8b、8c和8d确保了将只有一个数据流进入或离开每一地点5a、5b、5c和5d。当新的应用网关向CECM 11注册时,优选的是,在所有已注册的应用网关上执行应用网关负载测试,如在下面的步骤3内所详细描述的。用来执行负载测试的时间Ttest 被记录在CECM 11内。了解用来执行最近的负载测试的时间对于确定下一协作会话6的负载测试何时开始来说是有用的参数。步骤2)协作会话的发起过程的第二个步骤包含用户使用客户端10初始化协作会话6。这包含由发起用户使用的客户端10向会话调度器14提供协作会话6的详细资料。这些详细资料包括协作会话6的时间T。和受邀请用户的列表。一接收到会话请求,会话调度器14就分配会话标识符,并将该标识符与协作会话 6的其他详细资料一起存储在协作数据库16内。然后会话调度器14向地点5a、5b、5c和 5d内的应用网关8a、8b、8c和8d提供会话标识符和受邀请的用户的详细资料,根据这些资料用户可以接入协作会话6。步骤3)应用网关的负载测试或吞吐量测试在协作会话6被安排开始的时间之前的时间Tp处,负载测试器21初始化应用网关8a、8b、8c和8d上的负载测试或吞吐量测试22的性能。如在下面更详细描述的,负载测试或吞吐量测试采取了分析连接应用网关8a、8b、8c和8d的路径的吞吐量或速度的形式。, 该测试22在靠近时间T。执行,因为在T。之前的数天、或甚至数小时执行这样的测试没有意义,因为所述网络负载条件在这样的时间标度内变化较大而不是不变化。因此时间Tp根据下面的表达式计算Tp = Tc-(Ttest χ C)(1)其中C是被引入以提供针对已被引入的附加的网络负载的误差的因数,由于负载测试在时间Ttest例如C = 1. 5处执行。
测试22被用来计算协作会话6的应用网关8a、8b、8c和8d之间的最优的数据路径,换句话说,对于特定的协作会话6,应用网关8a、8b、8c和8d应该如何互连。用全网方式完成,如在图6中所示意性描绘的。重要地,负载测试器21使用路径分析器19来测量在每一地点5a、5b、5c和5d之间的两个方向上的预定的数据量的速度或吞吐量。预定的数据量在大小上优选为至少32kb以提供最好的结果。吞吐量或速度的双向测量对于计算应用网关8a、8b、8c和8d之间的有效的数据路径是重要的,即,没有假设在应用网关8a、8b、8c和 8d之间的任何给定的逻辑数据路径在两个方向上都支持相同的带宽和延迟。这么做的原因可能是由于网络基础设施、在特定地点或时间的网络负载,甚至因特网本身工作的方式, 艮口,在点对点连接上的包没有必要采用相同的路径。换句话说,从应用网关8a发送到8b的包可以采用与从应用网关8b发送到8a的包不同的路径。而且,在不同的载体之间的界线交叉的地方,路由选择可取决于CsC (载体支持载体)的策略。在所有的应用网关8a、8b、8c和8d之间的连接的双向测试的结果接着被负载测试器21用来在路由表18内生成吞吐量或数据路径速度(以kb/s测量)的连接矩阵。图7 给出了针对目前所描述的协作会话6的示例性连接矩阵23。值‘X’表示没有连接或已经建立的链接,因此不再被考虑。为了允许计算优化的数据路径,归一化连接矩阵是有益的。也就是说,例如,如果连接A — B是100kb/S而连接A — C是105kb/s,那么这将被视作‘类似的,。通过将下面的等式运用到连接矩阵23的每一个单元C来获得连接矩阵的归一化,即C =取整(10*t/T)(2)其中,t是单元C的所测量的吞吐量或数据路径速度;以及T是连接矩阵的任何一个单元的所测量的最高的吞吐量或数据路径速度。作为上面的归一化过程的结果,相对于所测量的最高的吞吐量或数据路径速度来表示矩阵内的所有值。因此,所测量的最高的吞吐量或数据路径速度被分配数值10,而其他的连接被有效地从0到10分级。归一化确保它们所测量的吞吐量或速度只是轻微不同的连接被认为具有相同的吞吐量或速度。没有归一化,“连锁效应”可能发生,由此数据路径趋于在深度(跳数)而非宽度上生长,这导致更多的端到端延迟和次理想的数据传输。图8 (a)给出了针对目前所描述的协作会话6的归一化的连接矩阵23a。归一化连接矩阵23a的第六列和第七列分别涉及应用网关8a、8b、8c和8d的容量“C”和来自服务器 9位于其内的子网络的应用网关8a、8b、8c和8d的跳数“h”。下面讨论这两个参数的进一步的细节。负载测试过程22的下一步是需要将图8a的归一化的连接矩阵23a转换成在图2 的WAN 7内的应用网关8a、8b、8c和8d之间的优化的数据路径。这通过负载测试器21使用下面的算法或方法来操作存储在路由表18内的归一化的连接矩阵23a来获得,即从归一化的连接矩阵开始包含η行(因而η+2列)。源位于χ处。源集合Y是{χ}容量耗尽集合X是{}
重复清空{Y}中的列找到从源集合{Y}(但不在X中)到不在{Y}中的节点‘b’的最大值如果有多种可能性,选择‘a’使得a(h)最小如果有多种可能性,选择‘a’使得a(c)最大结果是源为‘a’,目标为‘b’使a(c)减 1赋值b(h) = a(h)+l如果a (c) = 0,则将‘a’添加到X,结果它不再是源将节点‘b’添加到{Y},即目标‘b’这时是另一个源直到0({Υ})==η应该意识到,应用网关8离数据源(即服务器9)越远(就跳数而言),连接到该应用网关8的客户端10将经历更多的延迟。因此,为了考虑增加的延迟,上述算法追踪应用网关8离数据源的源跳数“h”的数目。源应用网关8被分配0值。而且,一旦应用网关8进行了一个连接,它服务附加连接的能力被减小。为了考虑服务附加连接的减小的能力,每次从应用网关8建立连接时,上面的算法还对每一应用网关8的固有容量“C”减一。一旦应用网关8耗尽容量,它被添加到容量耗尽集合X。因此,当另一应用网关8将被连接,且在吞吐量或数据路径速度方面有两种或更多可能性时,所述算法首先考虑连接的应用网关8离数据源的源跳数“h”的数目。具有最低的源跳数的连接应用网关8比任何其他的应用网关优先选择。然而,如果有两个或多个具有相同跳数的可能的应用网关8,那么该算法选择在那时表现出最大的可用容量的那一个。通过使用涉及源跳数和容量可用性的上述技术,确保了数据分布树将生长得“更宽”而不是“更深”,因此最小化了端到端的延迟。图8(b)到图8(d)给出了将上述算法或方法实现到归一化的连接矩阵23a的例子。由于在这个例子中服务器9位于地点5a(地点A),这意味着优化的数据路径必须使用地点5a作为根(即源集合Y是{A})来产生。根据上面的讨论,地点5a (地点A)的跳数值被分配为0值。由于地点5a(地点A)不需要连接到它自身,A列的从一到可以为空。这些步骤导致修改的连接矩阵23b,如图8(b)所给出的。下一步需要找到从源地点5a(地点A)到目的地的最理想的链接。连接矩阵23b 产生了来自5a(地点Α)的最有效的链接是到地点5b (地点B)。因此我们发现链接A —B 是最理想的,并且源集合被更改为Y是{A,B}。因为B现在被连接,它从可能的目标集合中移除,这产生了修改的连接矩阵23c,如图8(c)所给出的。应该注意到,地点5a(地点A)的容量减小了 1,而地点5b(地点B)被表示为离数据源一跳。现在,如果源集合Y是{A,B},通过查看两个源,并且考虑现在可能耗尽容量的任何应用网关来寻找到目标的最高值。图8(c)揭示了最高值是从A —C。而且,发现新源并进行连接A —C。已修正的源集合现在是{A,B, C},并且已修正的连接矩阵23d在图8(d) 给出。地点5a(地点A)的容量现在减小了 2,而地点5c(地点C)被表示为离数据源一跳。由于0({A,B,C}) < 0 (nodes),该过程再一次重复。然而,只有一个节点D未连接,并且看到矩阵23d揭示了最好的可用连接是C —D。因此地点5c (地点C)的容量减小了 1,而地点5d(地点D)被表示为离数据源两跳。源集合Y现在是{A,B, C,D},因此完成优化方法,并且路由表18被适当更新。应该注意到,当计算数据路径时,上述算法以及路由表18考虑服务器9 (即实际的数据源)的位置。在上述例子中,服务器9位于地点5a(地点A),然而如果服务器9例如已经位于地点5d(地点D),则最终的数据路径结构将是完全不同的。步骤4)客户端和服务器加入协作会话当服务器9和客户端10希望加入所安排的协作会话6时,它们通过联系CECM 11 来这么做,如图9所示意性给出的。服务器9和客户端10必须提供有效的会话ID及有效的用户名和密码。然后CECM 11使用用户认证模块15来验证服务器9和客户端10的凭证, 接着检查服务器9和客户端10的用户是否具有加入协作会话6所要求的许可。如果服务器9和客户端10的用户具有所要求的许可,那么会话调度器14分别向服务器9和客户端10提供服务器标识符和客户端标识符以及合适的应用网关8a和8c的详细资料,便于它们加入会话6。优选地选择所分配的应用网关为由CECM 11所确定的能够向服务器9和客户端10提供最高的数据吞吐率的一个,尽管可以选定为该客户端特别优化的可选的应用网关(参见下面关于动态应用网关的讨论)。因此服务器9和客户端10能够经由所分配的应用网关8c通过连接来加入会话6。如果这时客户端10试图加入协作会话6,进行检查(步骤5)以看看服务器9是否已经加入会话6。如果服务器9还没有加入,CECM 11通知客户端10主持者还不可用(步骤6)。一旦服务器9加入会话6,CECM 11就通知客户端10,然后会话6开始(步骤7)。用这种方式,CECM 11在缺乏服务器9时为客户端充当虚拟大厅。在协作会话内的数据路由对于协作会话6来说,必须有可能对单个客户端10授予会话控制。反之,对客户端10来说必须有可能将数据流发送给服务器9。这样的数据流的例子将是会话控制请求、 文件上传请求或白板。因此目前所描述的结构能够允许协作会话6内的数据在下列项之间路由1)服务器9和所有的客户端10 ;2)服务器9和单个客户端10 ;3) 一个客户端10和服务器9 ;4) 一个客户端10和另一客户端10 ;以及5) 一个客户端10和多个选定的客户端。这些数据路由的示意性表示在图10中给出。通过使用基于存储在应用网关8内的路由表的路由方法和使用定制的协议头,在目前所描述的协作会话6中获得所述功能。由于每一客户端10具有客户端标识符而服务器9具有服务器标识符,如由CECM 11所分配的,每一应用网关8具有从客户端标识符和服务器标识符到逻辑链接的映射。换句话说,每一应用网关8能确定给定的数据包将在哪个逻辑链接上发送出去。除其他数据外,TCP/IP协议头包含源字段和目的字段。目的字段有两个预定义值。 它们是SERVER和ALL。因此,在目的字段中具有SERVER的任何消息将被发送到协作服务器9,而在目的字段中具有ALL的任何消息被发送到所有的客户端10。源字段总是所分配的发送者的标识符。因此利用目标字段提供用于协作会话6内所需要的路由的方法,因为具有作为目的字段的实际的客户端标识符的任何消息将被直接路由到该客户端10。可选地,多个客户端标识符可以进入目的字段以允许数据被路由到多个客户端10。应该注意到,CECM 11的使用还允许客户端10是网络不可知的。例如,客户端10 不需要知道数据源(即服务器9)的IP地址。这样的例子可以是预先安排的会话6,主持者在宾馆中,且不可能先验地知道他自己的地址。客户端10只需要知道会话ID。然后它们通过联系CECM 11的熟知的IP地址而连接到协作会话6。要注意的另一点是,在客户端10已经加入协作会话6之后,CECM 11将不再与客户端10交互,因此它不涉及任何进一步的通信过程。直接结果是,CECM 11的功能在开放系统互连参考模型(0SI参考模型)的会话层(层五)内实现。这与其实现位于OSI参考模型的层七内的已知的应用层多播系统形成对比。动态应用网关尽管静态部署的应用网关8a、8b、8c和8d大大减小了互连地点5a、5b、5c和5d所需要的带宽,但对地点5a、5b、5c和5d来说,具有太多客户端10而不能支持是有可能的。如之前所讨论的,在这样的情况下,如果可用的话,第二静态应用网关8可以被部署在所述地点5a、5b、5c和5d内。然而,这可能不是在所有情况下都可行。可选的解决方案是使用动态应用网关,如现将参考图11所描述的。静态应用网关 8可在任意点经由应用网关接口 20将静态应用网关8的客户端处理能力已经耗尽或即将耗尽的信号发往CECM 11。从上面所描述的应用网关的选择过程可以看出,CECM 11将知道第二静态应用网关8是否存在于地点5内。如果不是这样的话,在地点5内的另一客户端10 有可能希望连接到协作会话6,那么CECM 11将要求该客户端10充当动态应用网关24。地点5内的希望加入协作会话6的任何其他客户端10则经由动态应用网关24进行连接。应该意识到,当第一动态应用网关24已经耗尽或即将耗尽它自己的客户端处理能力时,该过程可以被延伸。这时第二动态应用网关(没有示出)由CECM 11建立。在缺乏动态应用网关24时,静态应用网关8将必须为六个分开的客户端10服务。 然而,在建立动态应用网关24时,静态应用网关8a这时只有效地必须为三个分开的客户端 10和动态应用网关24服务,三个剩下的客户端10这时直接由动态应用网关24服务。该机制允许地点5a、5b、5c和5d内的流量的动态管理,即所需要的带宽可以被管理和减小。如从图11可清晰地看出,静态应用网关8上的负载和带宽已经从将会是六减少到四。在较大的地点5a、5b、5c和5d内,该方法容易扩容,因为可根据需要创建更多的动态应用网关24。动态协作会话应该意识到,建立协作会话6的可选方法可包含只使用动态应用网关。现将参考图2和图12给出的流程图描述该实施方式的方法。在该实施方式中,第一步涉及用户使用客户端10发起协作会话6。这再一次涉及由发起用户使用的客户端10向会话调度器14提供协作会话6的详细资料。这些详细资料包括协作会话6的时间T。和受邀请的用户的列表。一收到该协作会话请求,会话调度器14就分配会话标识符,并将该标识符和协作会话6的其他详细资料一起存储在协作数据库16 内。会话调度器14接着提供会话标识符和受邀请的用户的详细资料,例如通过发送恰当的电子邮件。当客户端10希望加入所安排的协作会话6时,它们通过联系CECM 11这么做(步骤2),如图9所示意性给出的。客户端10必须提供有效的会话ID及有效的用户名和密码。 然后CECM 11使用用户认证模块15来验证客户端10的凭证,接着检查客户端10的用户是否具有加入协作会话6所要求的许可。如果用户具有所要求的许可,那么会话调度器14向客户端10提供客户端标识符以及合适的动态应用网关(步骤3) 8c的详细资料,便于它们加入会话6。如果客户端10是特定网络内的联系CECM 11的第一终端,那么它被指示来充当动态应用网关,如上面所详细描述的。随后的动态应用网关的分配优选地被选择为由CECM 11所确定的能够向客户端 10提供最高的数据吞吐率的一个。然而,如果该动态应用网关的客户端处理能力已经达到, 那么随后的客户端10将被CECM 11指示来充当又一个动态应用网关。因此客户端10能够经由所分配的动态应用网关8a到8d通过连接来加入会话6。如果这时客户端10试图加入协作会话6,要进行检查以看看服务器9是否已经加入会话6(步骤4)。如果服务器9还没有加入,CECM 11通知客户端10主持者还不可用,并且CECM 11在缺乏服务器9时充当客户端10的虚拟大厅(步骤5)。在该实施方式中,服务器9加入协作会话6的请求类似于之前所描述的。作出该请求也是激活CECM 11以在动态应用网关8a、8b、8c和8d上执行负载测试22,因此优化在它们之间的数据通信路径(步骤6)。负载测试22的方法如之前所描述的。一旦存在服务器9,且负载测试22已经被执行,协作会话6就可以开始了(步骤 7)。应该注意到,如果在协作会话已经开始之后,客户端10提交加入协作会话6的请求, 那么一旦用户的身份被验证,协作会话只分配动态应用网关8a、8b、8c和8d,如之前所描述的。然而,如果需要随后的动态应用网关,比如说,因为LAN内的客户端目前没参与协作会话6,那么执行修改的负载测试以确定新网关如何连接到目前被连接的优化的动态应用网关网络。该修改的负载测试涉及测量目前存在的动态应用网关中的每一个的吞吐量或速度以及将新网关连接到具有最高吞吐量的路径。如果就吞吐量和速度而言,有两种或多种可能性,则考虑所连接的动态应用网关8 离数据源的源跳“h”的数目。具有最低的源跳数的连接的动态应用网关8比任何其他的应用网关优先选择。然而,如果有两个或多个具有相同跳数的可能的动态应用网关8,则选择在那时表现出最大的可用容量的那一个。要注意的重要一点是,一旦负载测试或吞吐量测试已经执行,并且应用网关(静态的或动态的)的优化的连接已经发生,则应用网关网络的结构保持不变以用于协作会话的持续。可以添加其他动态应用网关,但这以不中断最初优化的应用网关网络内的通信路径的方式来完成。通信路径内的中断虽然短暂,但导致中断连接以致任何正在进行的文件传输需要从一开始重新启动。上述基于网络的协作提供了一种系统,该系统是安全的,能保证系统内的可靠的数据传递,并且该系统容易扩容以允许由数以百计的客户端使用。此外,该系统向协作会话内的任意客户端提供将选定的数据直接发送到任何其他选定的单个客户端或多个客户端的能力。正是使用应用网关解决了进入地点和出地点需要多个连接的问题。因为来自主机客户端的数据流对于所有的客户端来说都是相同的,所以没必要具有多个数据流。之后数据在地点的LAN内被重新分配,因而大大减小了 WAN上所需要的带宽。因为LAN内的可用带宽比整个WAN的带宽大得多,所以该方法消除了地点之间的性能瓶颈的影响。应用网关之间的数据通路因而通过使用预会话、源特定的负载测试得到优化。负载测试双向地测量所有的应用网关之间的延迟和吞吐量,来提供用于计算节约这些网关之间的分布路径的的带宽的方法。网络内的减小的带宽要求的一个重要优点是,它允许在网络内使用安全和可靠的数据通信协议,例如传输控制协议/因特网协议(TCP/IP)。这种数据的安全性和可靠性在提供鲁棒的协作系统方面是很重要的。当与已知的现有技术的系统相比较时,静态的和动态的应用网关的使用还为所描述的协作会话提供了显著的灵活度和可扩容度。目前所描述的系统的另一优点是,协作建立控制模块的功能在OSI模型内的会话层(层五)而不是应用层(层七)实现。这是可能的,因为CECM处理建立、发起和保持协作会话所需要的所有的管理功能。然而重要地,这在CECM本身没有积极地参与会话的情况下实现。因此,在目前所描述的系统的复杂度方面有显著的减小,允许创建者将精力集中于功能而不是基础设施。当与在应用层内实现的那些系统相比时,这提供了明显的时间和资源节约。本发明的上述描述是为了说明和描述目的而给出,而不旨在是详尽的或限制本发明到所公开的精确形式。选择和描述所描述的实施方式以最好地解释本发明的原理和它的实际应用,从而允许本领域的其他技术人员最好地利用本发明的各种实施方式和做出各种修改以满足设想的特定用途。因此,在不偏离由所附权利要求所限定的本发明的范围的情况下,可以引入其他修改或改进。本发明还延伸至除了本文明确要求的那些特征之外的特征的组合。
2权利要求
1.一种执行网络中的协作会话的方法,所述方法包括以下步骤提供作为所述协作会话的数据源的服务器终端;提供多个客户端终端,每一客户端终端提供给用户参与所述协作会话的接入点;以及提供两个或多个应用网关,每一应用网关被配置成在所述协作会话期间在网络组件之间中继数据;其中所述服务器终端设置有服务器应用网关,在所述协作会话期间,所述服务器终端向所述服务器应用网关传送数据,所述服务器应用网关根据所述服务器终端的位置确定; 以及每一客户端终端设置有客户端应用网关,在所述协作会话期间,所述客户端终端从所述客户端应用网关接收数据,每一客户端应用网关根据所述客户端终端的位置确定。
2.如权利要求1所述的执行协作会话的方法,其中所述方法包括使用单个应用网关作为服务器应用网关和客户端应用网关的附加步骤。
3.如权利要求1所述的执行协作会话的方法,其中所述方法包括使用不同的应用网关作为服务器应用网关和客户端应用网关的附加步骤。
4.如权利要求1所述的执行协作会话的方法,其中所述方法包括在网络内使用多个客户端应用网关的附加步骤,给所述多个客户端应用网关分配了相应的客户端终端。
5.如前述权利要求中的任何一项所述的执行协作会话的方法,其中所述方法包括使用第一客户端应用网关将数据中继到第二应用网关而所述第二应用网关接着将数据中继到相应的客户端终端的附加步骤。
6.如前述权利要求中的任何一项所述的执行协作会话的方法,其中所述方法包括将应用网关分配给服务器终端用于所述协作会话的持续的附加步骤。
7.如前述权利要求中的任何一项所述的执行协作会话的方法,其中所述方法包括将应用网关分配给所述多个客户端终端中的每一个用于所述协作会话的持续的附加步骤。
8.如前述权利要求中的任何一项所述的执行协作会话的方法,其中提供所述一个或多个应用网关的步骤包括部署一个或多个静态应用网关。
9.如权利要求8所述的执行协作会话的方法,其中部署所述应用网关来向已确认的客户端终端的相关的子网络提供最优的数据传输速度或吞吐量。
10.如前述权利要求中的任何一项所述的执行协作会话的方法,其中提供所述一个或多个应用网关的步骤包括将所述已确认的客户端终端中的一个或多个部署为一个或多个动态应用网关。
11.如权利要求10所述的执行协作会话的方法,其中选定被部署为所述一个或多个动态应用网关的所述一个或多个已确认的客户端终端被选择来向已确认的客户端终端的相关的子网络提供最优的数据传输速度或吞吐量。
12.如前述权利要求中的任何一项所述的执行协作会话的方法,其中向所述服务器终端提供服务器应用网关的步骤由协作建立控制模块执行。
13.如权利要求12所述的执行协作会话的方法,其中所述协作建立控制模块执行向所述客户端终端提供客户端应用网关的步骤。
14.如权利要求12或13所述的执行协作会话的方法,其中所述协作建立控制模块包括 web服务器。
15.如权利要求14所述的执行协作会话的方法,其中所述web服务器允许所述协作建立控制模块与所述多个客户端终端和/或所述服务器终端之间的通信。
16.如权利要求12到15中的任何一项所述的执行协作会话的方法,其中所述协作建立控制模块还包括协作数据库,该协作数据库用来保留关于所述协作会话的信息。
17.如权利要求12到16中的任何一项所述的执行协作会话的方法,其中所述协作建立控制模块还包括守护进程,该守护进程允许所述协作会话的后台运行功能的实现。
18.如权利要求12到17中的任何一项所述的执行协作会话的方法,其中所述协作会话由用户向所述协作建立控制模块提交协作会话请求来发起。
19.如权利要求18所述的执行协作会话的方法,其中所述会话请求包括所述协作会话的参与用户的身份的详细资料。
20.如权利要求18或19所述的执行协作会话的方法,其中所述会话请求包括所述协作会话的预先安排的时间T。。
21.如权利要求18到20中的任何一项所述的执行协作会话的方法,其中,在提交所述协作会话请求之后,将会话标识符分配到所述协作会话。
22.如前述权利要求中的任何一项所述的执行协作会话的方法,其中所述服务器终端位于已确认的客户端终端的相关的子网络的外部。
23.如前述权利要求中的任何一项所述的执行协作会话的方法,其中所述方法还包括在两个或多个应用网关上执行负载测试或吞吐量测试的步骤。
24.如权利要求23所述的执行协作会话的方法,其中所述负载测试由所述协作建立控制模块执行。
25.如权利要求23或24所述的执行协作会话的方法,其中所述负载测试在所述协作会话的所述预先安排的时间T。之前的预定时间Tp执行。
26.如权利要求25所述的执行协作会话的方法,其中所述预定时间Tp由下面的表达式 Tp = Tc-(TtestX C)确定,其中Ttest是在所述协作网络上执行之前的负载测试所用的时间,C 是误差因数。
27.如权利要求26所述的执行协作会话的方法,其中所述误差因数C具有大于1的值。
28.如权利要求12到27中的任何一项所述的执行协作会话的方法,其中所述方法还包括每一参与的客户端向所述协作建立控制模块提交用户注册请求的步骤。
29.如权利要求12到28中的任何一项所述的执行协作会话的方法,其中所述方法还包括服务器向所述协作建立控制模块提交用户注册请求的步骤。
30.如权利要求29所述的执行协作会话的方法,其中所述方法还包括在所述服务器向所述协作建立控制模块提交用户注册请求之后执行负载测试或吞吐量测试的步骤。
31.如权利要求28到30中的任何一项所述的执行协作会话的方法,其中所述用户注册请求需要包括有效的会话标识符、有效的用户名和密码,以便参与的客户端或服务器注册所述协作会话。
32.如权利要求31所述的执行协作会话的方法,其中所述用户注册请求由所述协作建立控制模块检查以确立所述用户是否具有加入所述协作会话所要求的许可。
33.如权利要求32所述的执行协作会话的方法,其中如果确立了所述用户具有所要求的许可,则所述方法还包括向所述客户端分配客户端标识符的步骤。
34.如前述权利要求中的任何一项所述的执行协作会话的方法,其中所述方法还包括应用网关提供所述应用网关的客户端处理能力被耗尽或即将被耗尽的指示的步骤。
35.如权利要求34所述的执行协作会话的方法,其中当从所述相关的子网络内的客户端接收到又一有效的用户注册请求时,提交所述请求的所述客户端终端被指示作为第一子网络动态应用网关起作用。
36.如权利要求35所述的执行协作会话的方法,其中所述方法还包括所述第一子网络动态应用网关提供所述第一子网络动态应用的客户端处理能力被耗尽或即将被耗尽的指示的步骤。
37.如权利要求36所述的执行协作会话的方法,其中当从所述相关的子网络内的客户端接收到又一有效的用户注册请求时,提交该请求的所述客户端终端被指示作为第二子网络动态应用起作用。
38.如前述权利要求中的任何一项所述的执行协作会话的方法,其中所述方法还包括所述多个客户端中的一个选择性地将数据传送到所述服务器和/或其他多个客户端中的一个或多个的步骤。
39.如权利要求38所述的执行协作会话的方法,其中选择性地传送数据的步骤包括将数据传送到所述客户端应用网关以及随后通过所述客户端应用网关将所述数据中继到所述服务器终端和/或所述多个客户端终端中的一个或多个。
40.如前述权利要求中的任何一项所述的执行协作会话的方法,其中所述服务器终端和所述服务器应用网关位于第一子网络内。
41.如权利要求40所述的执行协作会话的方法,其中所述多个客户端终端中的至少一个和所述客户端应用网关位于第二子网络内。
42.如权利要求41所述的执行协作会话的方法,其中所述网络包括广域网,所述第一子网络和所述第二子网络包括局域网。
43.如前述权利要求中的任何一项所述的执行协作会话的方法,其中传送和中继数据的步骤包括使用传输控制协议/因特网协议(TCP/IP)。
44.一种主持协作会话的网络系统,所述系统包括服务器终端,其提供所述协作会话中的数据源;多个客户端终端,每一个提供给用户参与协作会话的接入点;以及两个或多个应用网关,每一应用网关被配置成在协作会话期间在网络组件之间中继数据;其中所述服务器终端设置有服务器应用网关,在所述协作会话期间,所述服务器终端向所述服务器应用网关传送数据,所述服务器应用网关根据所述服务器终端的位置确定; 以及每一客户端终端设置有客户端应用网关,在所述协作会话期间,所述客户端终端从所述客户端应用网关接收数据,每一客户端应用网关根据所述客户端终端的位置确定。
45.如权利要求44所述的网络系统,其中单个应用网关起着服务器应用网关和客户端应用网关的作用。
46.如权利要求44所述的网络系统,其中服务器应用网关和客户端应用网关包括不同的应用网关。
47.如权利要求44到46中的任何一项所述的网络系统,其中所述系统包括所述网络中的多个客户端应用网关,向所述多个客户端应用网关分配了相应的客户端终端。
48.如权利要求44到47中的任何一项所述的网络系统,其中所述系统包括将数据中继到第二应用网关的第一客户端应用网关,所述第二应用网关接着将数据中继到相应的客户端终端。
49.如权利要求44到48中的任何一项所述的网络系统,其中所述网络系统还包括协作建立控制模块。
50.如权利要求49所述的网络系统,其中所述协作建立控制模块包括web服务器。
51.如权利要求50所述的网络系统,其中所述web服务器允许所述协作建立控制模块和所述多个客户端终端和/或所述服务器终端之间的通信。
52.如权利要求49到51中的任何一项所述的网络系统,其中所述协作建立控制模块还包括协作数据库,该协作数据库用来保留关于所述协作会话的信息。
53.如权利要求49到52中的任何一项所述的网络系统,其中所述协作建立控制模块还包括守护进程,该守护进程允许所述协作会话的后台运行功能的实现。
54.一种确定在基于网络的协作会话内使用的两个或多个应用网关之间的优化的数据通信路径以在网络组件之间中继数据的方法,所述方法包括在所述两个或多个应用网关上执行吞吐量测试的步骤。
55.如权利要求54所述的确定优化的数据通信路径的方法,其中所述吞吐量测试包括测量所述应用网关之间的数据路径的网络吞吐量的步骤。
56.如权利要求55所述的确定优化的数据通信路径的方法,其中测量所述应用网关之间的数据路径的网络吞吐量的步骤包括测量所述两个或多个应用网关之间的所有数据路径的网络吞吐量。
57.如权利要求55或56所述的确定优化的数据通信路径的方法,其中所述吞吐量测试还包括测量双向的网络吞吐量的步骤。
58.如权利要求55到57中的任何一项所述的确定优化的数据通信路径的方法,其中所述吞吐量测试还包括根据所测量的网络吞吐量生成连接矩阵。
59.如权利要求58所述的确定优化的数据通信路径的方法,其中所述吞吐量测试还包括归一化所述连接矩阵的步骤。
60.如权利要求54到59中的任何一项所述的确定优化的数据通信路径的方法,其中所述吞吐量测试还包括确认所述两个或多个应用网关的可用的连接处理能力的步骤。
61.如权利要求54到60中的任何一项所述的确定优化的数据通信路径的方法,其中所述吞吐量测试还包括定义应用网关的源集合的步骤。
62.如权利要求61所述的确定优化的数据通信路径的方法,其中所述应用网关的源集合最初被设置成包括服务器终端被连接到其上的应用网关。
63.如权利要求61或62所述的确定优化的数据通信路径的方法,其中所述吞吐量测试还包括清空所述连接矩阵的对应所述源集合的列的步骤。
64.如权利要求61到63中的任何一项所述的确定优化的数据通信路径的方法,其中所述吞吐量测试还包括确认不包括在所述源集合内、具有与所述源集合的最高的吞吐量数据路径连接的应用网关的步骤。
65.如权利要求64所述的确定优化的数据通信路径的方法,其中确认应用网关的所述步骤还包括检查具有最高的吞吐量数据路径连接的所述应用网关不包括在耗尽容量的应用网关集合内。
66.如权利要求64或65所述的确定优化的数据通信路径的方法,其中确认应用网关的步骤还包括选择离所述服务器终端连接的所述应用网关具有较小跳数的应用网关。
67.如权利要求65所述的确定优化的数据通信路径的方法,其中确认应用网关的步骤还包括选择具有最大的可用的连接处理能力的应用网关。
68.如权利要求61到67中的任何一项所述的确定优化的数据通信路径的方法,其中所述吞吐量测试还包括将已确认的应用网关添加到所述源集合的步骤。
69.如权利要求64到68中的任何一项所述的确定优化的数据通信路径的方法,其中所述方法还包括升级所述已确认的应用网关的可用的连接处理能力的步骤。
70.一种装有用于实现如权利要求1到43中的任何一项所述的执行网络中的协作会话的方法的机器可读指令的计算机装置。
71.一种装有用于实现如权利要求54到69中的任何一项所述的确定在基于网络的协作会话内使用的两个或多个应用网关之间的优化的数据通信路径的方法的机器可读指令的计算机装置。
全文摘要
描述了建立基于网络的协作的方法和系统。所述方法包括提供作为协作会话的数据源的服务器终端、允许用户接入以参与协作会话的多个客户端终端以及一个或多个应用网关,所述应用网关被配置成在协作会话期间在网络组件之间中继数据。所述服务器终端和客户端终端都被分配有在协作会话期间向其传送/和接收数据的应用网关,应用网关的分配由网络内的服务器终端和客户端终端的位置确定。还描述了在基于网络的协作内使用的应用网关的数据路径优化的方法。在基于广域网(WAN)的协作领域内发现了本发明的具体应用。
文档编号H04L29/06GK102461115SQ201080025666
公开日2012年5月16日 申请日期2010年4月15日 优先权日2009年4月16日
发明者克里斯·里德, 斯蒂芬·贝汉, 王晓峰, 莱喀格斯·佩特罗普拉基斯 申请人:爱普夏尔有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1