Automatedreal-timedatastreamswitchinginasharedvirtualarea...的制作方法

文档序号:7942105阅读:198来源:国知局
专利名称:Automated real-time data stream switching in a shared virtual area ...的制作方法
在共享虚拟区域通信环境中的自动化实时数据流交换
背景技术
当面对面交流不实际时,人们常常依赖一个或多个技术方案以满足他们的交流需 要。这些方案典型地设计成模拟面对面交流的一个或多个方面。传统的电话系统使打电话 者之间的语音交流成为可能。即时消息(也称为“聊天”)通信系统使用户能够通过由即时 消息服务器互连的即时消息计算机客户端实时传送文本消息。一些即时消息系统另外允许 用户在虚拟环境中由用户可控图形对象(称为“化身”)表示。交互式虚拟现实通信系统使 在偏远区域的用户能够在多个实时通道上通信并且通过在共享三维虚拟空间中操纵他们 相应化身彼此互动。对基于化身的虚拟现实通信系统的兴趣随着具有高处理能力和高带宽网络连接 的计算机系统增加的可用性而增长。这样的虚拟现实系统的主要目的是创建用户可以在其 中使用实时数据流(例如音频、视频和文本聊天流)通信和互动的虚拟空间。虚拟空间典型 地由计算机图形规范限定,其描述空间的可视几何构造、映射到可视几何形状上的颜色和 纹理、控制用户在空间内如何机动的碰撞性质和例如回响和吸声性质等空间的听觉性质。在典型的虚拟现实系统中,用户中的每个通过是由系统支持的实时数据流中的一 个或多个的源、汇或源和汇两者的接口通信。默认情况下,虚拟现实系统典型地连接虚拟 空间中表示的每个源到虚拟空间中表示的每个汇,服从全局交换规则、本地用户偏好和在 虚拟空间内的对象的性质中指定的条件。这些条件典型地根据对象之间的相对距离来指 定。例如,一些系统配置使得如果化身之间的间距超过最大阈值距离则实时数据流连接不 建立。另外,一些对象已经设计成影响数据流如何渲染。例如,屏障对象阻碍来自特定方向 的视图和声音。其他对象设计成当用户的化身在这些对象的交互区域内时影响与用户的化 身关联的交互区域。例如,平台适配器对象增加在虚拟平台的互动空间内的化身的音频互 动空间的尺寸,并且表适配器对象折叠位于虚拟表的所有化身的互动空间至跨越虚拟表的 公共互动空间。

发明内容
在一个方面,本发明的特征是在共享虚拟区域的网络节点之间交换实时数据流连 接的方法。根据该方法,查明实时数据流的集。实时数据流使与在虚拟区域中的相应位置 关联的网络节点中的给定的一个能够参与与在虚拟区域中的相应位置关联的网络节点中 的一个或多个其他网络节点的协作通信会话。传递实时数据流的集到给定的网络节点的一 个或多个实时数据流连接至少部分基于给定的网络节点的带宽能力确定。建立给定网络节 点和网络节点中的一个或多个其他网络节点之间的实时数据流连接。根据本发明的该方面的实施例可包括下列特征中的一个或多个。确定实时数据流连接的过程可包括确定用于接收实时数据流中的每个所采用的 相应形式,其中确定的实时数据流中的每个采用未混合实时数据流或得自从其他网络节点 中的网络节点发送的实时数据流的组合的混合实时数据流的形式。确定实时数据流连接的过程可包括确定在其上接收实时流中的每个的网络路由,其中确定的网络路由是直接对等网络路由或由其他网络节点中的一个或多个居间的网络路由。可存储虚拟区域规范。虚拟区域规范包括一个或多个交换规则的说明,每个交换 规则根据虚拟区域中的位置限定相应实时数据流类型的源和该实时数据流类型的汇之间 的相应连接,其中查明和确定中的至少一个基于这些交换规则。得自从其他网络节点中的网络节点发送的实时数据流的一个或多个混合实时数 据流的列表可发送到给定的网络节点。确定实时数据流连接的过程可包括发现其他网络节点中的一个或多个的带宽能 力和基于发现的带宽能力选择一个或多个实时数据流连接。一个或多个确定的实时数据流连接可涉及通过中心网络节点在第一集中的网络 节点之间交换实时数据流和在第二集中的网络节点之间在直接对等网络连接上交换实时 数据流。一个或多个确定的实时数据流连接可涉及发送混合实时数据流到给定网络节点, 该混合实时数据流包括请求的实时数据流数据并且得自从其他网络节点中的网络节点发 送的实时数据流。确定实时数据流连接的过程可包括确定使未混合实时数据流到给定网络节点的 传递最大化的一个或多个实时数据流连接。在另一个方面,本发明的特征是在共享虚拟区域的网络节点之间交换实时数据流 连接的方法。根据该方法,对网络节点中的一个或多个接收网络节点中的每个,确定在其上 发送一个或多个实时数据流的相应的发送集的相应链路。链路中的每个具有相应的链路带 宽。对链路中的每个,在分别分配给在相应的发送集中的一个或多个实时数据流的一个或 多个通道之间分派相应的链路带宽并且在分别分配的通道上发送在相应的发送集中的一 个或多个实时数据流到相应的接收网络节点。根据本发明的该方面的实施例可包括下列特征中的一个或多个。确定相应链路的过程可包括对链路中的每个,查明在相应的发送集中的一个或多 个实时数据流中的每个的一个或多个相应的带宽水平并且基于查明的带宽水平分配相应 的链路带宽给链路。对链路中的每个相应的带宽水平的查明可包括为在相应的发送集中 的实时数据流中的每个识别相应的最小带宽水平;以及从一个或多个识别的相应最小带宽 水平计算相应的最小链路带宽水平。该方法可包括响应于确定对于任意链路可用的带宽不 能满足相应的最小链路带宽水平而使该任意链路掉线。对链路中的每个相应的带宽水平 的查明可包括,对在相应的发送集中的实时数据流中的一个或多个中的每个,识别在从相 应的第一优选的带宽水平到相应的第二优选的带宽水平排序的相应优先等级顺序中的至 少两个相应的带宽水平;并且至少部分基于识别的第一优选带宽水平计算相应的目标链路 带宽水平和至少部分基于识别的第二优选带宽水平计算相应的撤退链路带宽水平。确定 相应链路的过程可包括,对接收网络节点中的每个,尝试以目标链路带宽水平建立到接收 网络节点的相应链路;以及响应于失败以目标链路带宽水平建立到接收网络节点的相应链 路,尝试以撤退链路带宽水平建立到接收网络节点的相应链路。尝试建立相应链路的过程 可包括比较目标链路带宽水平与发送相应的发送集的可用的带宽的当前量和相应的接收 网络节点可用的带宽的当前量。确定相应链路的过程可包括对接收网络节点中的每个尝试以相应的候选链路带宽水平建立到接收网络节点的相应链路;以及响应于失败以相应的候选链路带宽水平建立 到接收网络节点的相应链路,放弃发送数据集中的至少一个可选的实时数据流。确定相应链路的过程可包括对接收网络节点中的每个尝试以相应的候选链路带 宽水平建立到接收网络节点的相应链路;以及响应于失败以相应的候选链路带宽水平建立 到接收网络节点的相应链路,建立用于在由其他网络节点中的一个或多个居间的网络路由 上发送相应的发送集中的一个或多个实时数据流到接收网络节点的链路。确定相应链路的过程可包括对接收网络节点中的每个尝试以相应的候选链路带 宽水平建立到接收网络节点的相应链路;以及响应于失败以相应的候选链路带宽水平建立 到接收网络节点的相应链路,建立传递相应的发送集中的实时数据流中的一个或多个到接 收网络节点的链路,其中采用得自从其他网络节点发送的实时数据流的组合的一个或多个 混合实时数据流的形式。确定相应链路的过程可包括对链路中的每个,采用基于与相应的接收网络节点关 联的属性确定的量分配相应的带宽。对链路中的每个,相应的链路带宽的分派可基于分别与在相应的发送集中的一个 或多个实时数据流关联的一个或多个流优先级等级。链路中的每个可是从发送相应的发送集的相应一个网络节点到相应一个接收网 络节点的相应的单向链路。本发明的特征还是包括存储计算机可读指令的计算机可读存储器和耦合于计算 机可读存储器的处理单元(其可运行以执行指令并且至少部分基于指令的执行可运行以 执行包括上文描述的方法的要素的操作)的设备。本发明的特征另外是存储使计算机执行 包括上文描述的方法的要素的操作的计算机可读指令的计算机可读介质。在另一个方面,本发明的特征是用于在共享虚拟区域的网络节点之间交换实时数 据流连接的网络适配器。该网络适配器包括存储计算机可读指令的计算机可读存储器和耦 合于计算机可读存储器的处理单元,其可运行以执行指令并且至少部分基于指令的执行可 运行以执行包括下列操作的操作。对网络节点中的一个或多个接收网络节点中的每个,处 理单元确定在其上发送一个或多个实时数据流的相应的发送集的相应链路。每个链路具有 相应链路带宽。对链路中的每个,处理单元在分别分配给在相应的发送集中的一个或多个 实时数据流的一个或多个通道之间分派相应的链路带宽并且在分别分配的通道上发送在 相应的发送集中的一个或多个实时数据流到相应的接收网络节点。本发明的其他特征和优势将从包括附图和权利要求的下列说明变得明显。


图1是网络节点的实施例的图解视图,其包括呈现共享虚拟区域的二维描绘的图 形用户界面。图2A是共享虚拟区域通信环境的实施例的图解视图,其中网路节点采用对等架 构通信。图2B是共享虚拟区域通信环境的实施例的图解视图,其中网路节点采用服务器 居间架构通信。图3是共享虚拟区域通信环境的实施例的框图,其包括三个网络节点的源和汇之
8间的实时数据流连接的示范集。图4示出网络节点的实施例的框图,其包括源的示范集和汇的示范集。图5是图形用户界面的实施例的图解视图,其示出包括与相应实时数据流交换规 则关联的分区的虚拟区域的透视图。图6是图形用户界面的实施例的图解视图,其示出在图5中示出的三维虚拟区域 的平面图。图7是在共享虚拟区域通信环境的实施例中连接到区域服务器网络节点和两个 其他区域客户端网络节点的区域客户端网络节点的实施例的框图。图8是在图7中示出的共享虚拟区域通信环境的实施例的图解视图。图9是由区域客户端网络节点和区域服务器网络节点执行的方法的实施例的流 程图。图10是流交换管理器的实施例通过其而处理从区域服务器接收的配置数据的方 法的实施例的流程图。图11示出在图6中示出的虚拟区域的平面图,其中虚拟区域其中有四个化身对象。图12是确定传递要求的数据流数据到区域客户端网络节点的实时数据流连接的 方法的实施例的流程图。图13是在共享虚拟区域的网络节点之间交换实时数据流连接的方法的实施例的 流程图。图14是在共享虚拟区域的网络节点之间交换实时数据流连接的方法的实施例的 流程图。图15是包括具有增强链路管理功能的网络适配器的主机系统的框图。图16是在图15中示出的网络适配器的实施例的框图。图17是确定传递要求的数据流数据到区域客户端网络节点的一个或多个实时数 据流处理拓扑的方法的实施例的流程图。图18是实时数据流处理拓扑的实施例的图解视图。图19是实时数据流处理拓扑的实施例的图解视图。图20是实时数据流处理拓扑的实施例的图解视图。图21是实时数据流处理拓扑的实施例的图解视图。图22是实时数据流处理拓扑的实施例的图解视图。图23是共享虚拟区域通信环境的实施例的框图,其包括根据在虚拟区域规范中 限定的交换规则管理实时数据流连接的网络交换机的实施例。
具体实施例方式在下列说明中,相似标号用于标识相似要素。此外,附图意在采用图解方式图示示 范性实施例的主要特征。附图不意在描绘实际实施例的每个特征也不意在描绘描绘的要素 的相对尺寸,并且不按比例绘制。I .概述本文描述的实施例提供在共享虚拟区域通信环境中交换实时数据流连接的系统和方法。这些实施例使用于连接通过共享虚拟区域通信的网络节点之间的实时数据流的交 换规则能够明确地依赖于虚拟区域的规范。这些实施例允许虚拟区域的设计者不仅控制虚拟区域的形状和外形,而且控制通 信者通过实时数据流互相连接所采用的方式。这样,区域设计者能够优化在共享虚拟区域 的通信者之间为特定的通信目的或为特定的通信环境(例如,个人空间、艺廊、音乐厅、礼 堂、会议室和会所)建立的实时数据流连接。另外,通过使自动交换规则依赖于在虚拟区域中的位置,这些实施例减少在连接 和断开通信者节点中涉及的复杂性并且增加系统的可缩放性(如与基于在虚拟空间内的 对象的属性和性质建立和终止连接的系统和使信号处理功能与流路由、连接和断开功能紧 密关联的系统比较)。II .术语定义“虚拟区域”是计算机管理的空间或场景的表示。虚拟区域可是二维或三维表示。 时常,虚拟区域设计成模拟物理、真实世界空间。例如,使用传统计算机监视器,虚拟区域可 可视化为三维计算机产生空间的二维图形。然而,虚拟区域不需要关联的可视化以实现交 换规则。“虚拟区域规范”是在创建共享虚拟区域通信环境中使用的虚拟区域说明。“分区”是与至少一个规则关联的虚拟区域的区,该规则用于交换(例如,路由、连 接和断开)通过共享虚拟区域通信的网络节点之间的实时数据流。“通信者”是在共享虚拟区域通信会话中通信或另外参与的人。“对象”是在虚拟区域中独立于虚拟区域的几何构造的任何类型的分立要素。对象 典型地具有与虚拟区域的属性和性质分离和不同的属性或性质。“化身”是表示在虚拟区域中的通信者的对象。在虚拟区域中的“位置”指在虚拟区域中点或面积或体积的位置。点典型地由在 虚拟区域中限定点的二维或三维坐标(例如x、y、z)的单个集表示。面积典型地由在虚拟 区域中限定封闭的二维形状的边界的三个或更多共面顶点的三维坐标表示。体积典型地由 在虚拟区域中限定封闭的三维形状的边界的四个或更多不共面顶点的三维坐标表示。“网络节点”是在通信网络中的结点或连接点。示范性网络节点包括但不限于终 端、计算机和网络交换机。“计算机”是根据暂时或永久存储在机器可读介质上的机器可读指令(例如,软 件)处理数据的机器。执行特定任务的这样的指令集称为程序或软件程序。“实时数据流”是采用连续流构建和处理的数据并且设计成接收而不具有延迟或 仅具有感觉不到的延迟;实时数据流包括语音、视频、用户移动、面部表情和其他物理现象 的数字表示以及在计算环境(其可通过快速发送、快速执行或快速发送和快速执行两者获 益)内的数据,其包括例如化身移动指令、文本聊天、实时数据供给(例如,传感器数据、机 器控制指令、事务流和库存配额信息供给)和文件传送。“数据源”(本文简单地称为“源”)是始发数据的装置、装置(例如,计算机)的一 部分或软件中的任何。“数据汇”(本文简单地称为“汇”)是接收数据的装置、装置(例如,计算机)的一 部分或软件中的任何。
“交换规则”是规定必须满足以便连接或断开一个或多个实时数据源和一个或多 个实时数据汇的一个或多个条件的指令。“流混合”是相同类型的两个或更多实时数据流的组合(例如,音频、视频、聊天和 运动数据)。“收发交换机”是通过从网络节点接收模拟或数字信号并且发送接收的信号(或接 收的信号的副本)到一个或多个其他网络节点而交叉连接网络节点(例如,客户端、服务器 和网络装置)的网络装置。“流处理拓扑”是实时数据流(其中每个可是混合流或未混合流)在其上传递到一 个或多个网络节点的网络路由的组织。III.介绍本文描述的实施例提供在共享虚拟区域通信环境中交换实时数据流连接的系统 和方法。通信者典型地从执行具有二维和三维可视化能力的通信软件程序的相应副本的相 应网络节点访问这样的环境。通信软件程序控制在相应网络节点呈现虚拟区域的相应视图 的客户端进程并且建立与其他网络节点的实时数据流连接。通信者典型地在虚拟区域中由 相应化身表示,其响应于由通信者在他们相应网络节点输入的输入指令在虚拟区域各处移 动。通信者的虚拟区域视图典型地从通信者的化身的视角呈现,其增加由通信者体验的投 入水平。每个通信者典型地能够观看在他的或她的化身周围的虚拟区域的任何部分。图1示出网络节点10的实施例,其由包括显示监视器12、计算机鼠标14、键盘16、 扬声器18、20和麦克风22的计算机系统实现。显示监视器12显示图形用户界面24。图形 用户界面24是基于视窗的图形用户界面,其可以包括多个视窗、图标和指针26。在图示的 实施例中,图形用户界面24呈现表示艺廊的共享三维虚拟区域28的二维描绘。通信者在 虚拟区域28中由相应化身30、32、34表示,其中每个化身可具有相应角色(例如,管理者、 艺术家和参观者)。如下文详细说明的,虚拟区域28包括分区36、38、40、42、44,其与支配由在虚拟区 域28中的化身30-34表示的网络节点之间的实时数据流的交换的相应规则关联。(在典型 的通信会话期间,在图1中给分区36-44划界的虚线对于通信者是不可见的,尽管可有与这 样的区域边界关联的可视线索。)交换规则规定在网络节点中的每个上执行的本地连接进 程如何基于在虚拟区域28的分区36-44中的通信者的化身30-34的位置建立与其他网络 节点的通信。在通信会话期间,通信者网络节点中的每个产生实时数据流(例如,运动数据流、 音频数据流、聊天数据流、文件传送数据流和视频数据流)的相应集。例如,每个通信者操 作一个或多个产生运动数据流(其控制他的或她的化身在虚拟区域28中的移动)的输入 装置(例如,计算机鼠标14和键盘16)。另外,在网络节点10的附近本地产生的通信者的 语音和其他声音由麦克风22捕捉。麦克风22产生转换为实时音频流的音频信号。音频流 的相应副本发送到在虚拟区域28中由化身表示的其他网络节点。在这些其他网络节点本 地产生的声音转换为实时音频信号并且发送到网络节点10。网络节点10转换接收的本地 产生的音频流为由扬声器18、20渲染的音频信号。运动数据流和音频流可从通信者节点中 的每个直接或间接发送到其他通信者网络节点。在一些流处理拓扑中,通信者网络节点中 的每个接收由其他通信者网络节点发送的实时数据流的副本。在其他流处理拓扑中,通信
11者网络节点中的一个或多个接收由源(始发)于网络节点中的其他节点的实时数据流得出 的一个或多个流混合。图2A是共享虚拟区域通信环境50的实施例的图解视图,其中三个网路节点52、 54、56采用对等架构通过通信网络58互连。通信网络58可是局域网(LAN)或全球通信网 络(例如,互联网)。网络节点52-56由相应计算机表示。在该架构中,网络节点52-56中的每个发送例如在虚拟区域中的化身移动等状态 变化到其他网络节点中的每个。网络节点中之一(典型地发起通信会话的网络节点)作为 区域服务器工作。在图示的实施例中,网络节点52承担区域服务器的角色。区域服务器网 络节点52维护全局状态信息并且充当其他网络节点54、56的数据服务器。全局状态信息 包括在虚拟区域中的对象中的所有和它们在虚拟区域中相应位置的列表。区域服务器网络 节点52周期性地发送全局状态信息到其他网络节点54、56。区域服务器网络节点52还寄 存并且发送初始化信息到请求加入通信会话的其他网络节点。在该过程中,区域服务器网 络节点52发送虚拟区域规范60的副本到每个加入的网络节点,该副本可存储在本地或远 程数据库中。区域服务器网络节点52还确保如果发生通信故障则其他网络节点54、56可 以同步于全局状态。如下文详细说明的,虚拟区域规范60包括虚拟区域的几何要素的说明和支配网 络节点之间的实时流连接的一个或多个交换规则。几何要素的说明允许在网络节点52-56 上运行的相应通信应用程序用以在相应显示监视器上向通信者呈现虚拟区域的相应视图。 交换规则规定在网络节点52-56中的每个上执行的连接进程如何基于通信者的化身在虚 拟区域中的位置而建立与其他网络节点的通信。图2B是共享虚拟区域通信环境62的实施例的图解视图,其中网络节点52_56 (在 该架构中称为“区域客户端网络节点”)采用由区域服务器64居间的架构通信。在该实施例 中,区域服务器64承担在图2A中示出的对等架构实施例中由网络节点52执行的区域服务 器功能。在这点上,区域服务器64维护全局状态信息并且充当区域客户端网络节点52-56 的数据服务器。如下文详细说明的,该架构允许区域客户端节点52-56之间的实时数据流 交换采用多种拓扑而被处理,包括对等拓扑、完全服务器居间拓扑(其中区域服务器64作 为网络节点52-56之间的通信代理工作)和混合拓扑(其结合对等拓扑和完全服务器居间 拓扑的方面)。图3示出在共享虚拟区域通信环境的实施例中的三个网络节点52-56的源和汇之 间的实时数据流连接的示范集。为了便于图示,在图3中的箭头中的每个表示一个或多个 实时数据流的相应集。根据本文描述的实施例,在图3中示出的连接基于在共享虚拟区域 的规范中限定的交换规则、通信者的化身在共享虚拟区域中的位置和在网络节点52-56中 的每个上可用的特定源和汇而建立。图4示出网络节点52的示范性实施例,其包括源的示范集66和汇的示范集68。 每个源是发起数据的网络节点52的装置或部件并且每个汇是接收数据的网络节点52的装 置或部件。源的集66包括音频源70 (例如,音频捕捉装置,例如麦克风等)、视频源72 (例 如,视频捕捉装置,例如摄像机等)、聊天源74 (例如,文本捕捉装置,例如键盘)、运动数据 源76 (例如,指针装置,例如计算机鼠标等)和“其他”源78 (例如,文件共享源或定制实时 数据流的源)。汇的集68包括音频汇(例如,音频渲染装置,例如扬声器或耳机等)、视频
12汇82 (例如,视频渲染装置,例如显示监视器等)、聊天汇84 (例如,文本渲染装置,例如显示 监视器等)、运动数据汇86 (例如,移动渲染装置,例如显示监视器等)和“其他”汇88 (例 如,用于打印共享文件的打印机,用于渲染与那些已经描述的不同的实时数据流的装置,或 处理实时流用于分析或定制显示的软件)。如由在图4中示出的网络节点实施例示范的,网络节点中的每个可能具有很多种 可用的源和汇。通过使区域设计者能够控制连接如何在源和汇之间建立,本文描述的实施 例向区域设计者提供对通信者在他们在虚拟区域中通信和另外互动时的感觉体验的许多 控制。这样,区域设计者能够为特定通信目的或为特定通信环境(例如,艺廊、音乐厅、礼 堂、会议室和会所)优化虚拟区域。IV .规定虚拟区域A.介绍共享虚拟区域由包括虚拟区域的几何要素的说明和支配网络节点之间的实时流 连接的一个或多个交换规则的规范限定。虚拟区域的几何要素典型地包括虚拟区域的物理几何构造和碰撞几何构造。物理 几何构造描述虚拟区域的形状。物理几何构造典型地由三角形、四边形或多边形的表面构 成。颜色和纹理映射到物理几何构造上以形成虚拟区域的更真实的外形。灯光效果可例如 通过绘制灯到可视几何构造上并且修改靠近灯的纹理、颜色或强度而提供。碰撞几何构造 描述确定对象采用其可以在虚拟区域中移动的方式的不可见表面。碰撞几何构造可与可视 几何构造一致,对应于可视几何构造的更简单的近似,或与设计者的具体应用要求有关。交换规则典型地包括根据在虚拟区域中的位置的用于连接实时数据流的源和汇 的条件的说明。每个规则典型地包括限定规则应用于其中的实时数据流类型和规则应用在 其中的虚拟区域中的位置或多个位置的属性。在一些实施例中,规则中的每个可选地可包 括规定源的要求的角色、汇的要求的角色、流的优先级水平和要求的流处理拓扑的一个或 多个属性。在一些实施例中,如果没有对虚拟区域的特定部分限定的明确的交换规则,一个 或多个隐含或默认交换规则可应用于虚拟区域的那个部分。一个示范性默认交换规则是在 区域内连接每个源到每个兼容汇的规则,服从策略规则。策略规则可全局应用于区域客户 端之间的所有连接或仅应用于与个体区域客户端的相应连接。策略规则的示例是仅允许与 在虚拟区域中彼此的规定距离(或半径)内的相应对象关联的源与兼容汇的连接的接近策 略规则。B.规定虚拟区域的示范性方式1.规定虚拟区域的几何要素可使用很多种不同的三维图形设计工具和游戏级设计编辑程序以规定虚拟区域 的几何要素。一般而言,虚拟区域的几何要素的规范可以采用任何类型的三维描述语言 描述,其包括但不限于 VRML(参见,例如 http://www. web3d. org/x3d/specifications/ vrml)、X3D(参见,例如 http://www. web3d. org/x3d/specifications/x3d)、COLLADA (参 见,例如 http: //www. COLLADA. org)和 U3D (参见,例如 http //www. w3. org)。在一些实施例中,虚拟区域规范根据COLLADA描述虚拟区域的几何要素,COLLADA 是基于XML的数字资产交换模式,其包括“标签”或“要素”(即,由“〈”和“〉”框入的字) 和“属性”(即,属性名= “Value”)。在这些实施例中的一些中,虚拟区域的几何要素的C0LLADA描述使用例如SketchUp (可从美国加利福尼亚Mountain View的Google公司获 得)、Maya或3ds Max (都可从美国加利福尼亚San Rafael的Autodesk获得)等三维图形
工具创建。2.规定与虚拟区域关联的交换规则a. _既述在一些实施例中,虚拟区域规范描述与虚拟区域关联的根据C0LLADA模式的下列 基于XML的扩展的交换规则。下文呈现的模型描述为对C0LLADA的建议扩展-数字资产模 式版本 1. 4. 1 2006 年 4 月规范(可从 http://www. khronos. org/collada/ 获得)。该扩展 在本文中成为“C0LLADA流参考”。b. C0LLADA 流参考根据C0LLADA流参考限定的交换规则指典型地限定在系统级的源和汇。在一些实 施例中,构成C0LLADA基础的XML系统的可扩展性特征用于描述具体应用的流类型。在其 他实施例中,支持的流类型在系统中更新。C0LLADA流参考允许区域开发者对给定区域限定 新的流类型。在这些情况下,如果通信者的系统当进入区域时遇到未知的流类型,系统激活 开发者规定的方法以用处理该流类型必需的信息更新系统并且在通信者的系统内配置适 当的流处理。典型地,在流源类型(例如“语音”等)和实际本地流源(例如,特定麦克风)和 与该源关联的任何信号处理或其他流处理插件(例如,基于语音产生化身移动的压缩器/ 限制器或运动数据流源)之间存在连接。类型“语音”典型地由系统限定使得任何区域设 计者可以使用它,而不要求每个设计者独自限定该类型。在另一方面,优选或要求的规定特 定插件是应用设计的普通部件。C0LLADA流参考使通信者能够指派像语音的流源类型给麦 克风、纪录或音乐源;以及限定处理程序(handler)内的插件。相似的情况对汇起作用。像“语音”的流类型的汇典型地以系统级建立(例如耳 机或麦克风)。可以有由通信者或区域设计者规定的另外的插件(例如,基于距离的衰减器 水平和基于相对位置的立体声声响)。下文限定描述分区和用于连接流源和汇的规则(根据分区)的C0LLADA流参考的要素。i. <zone_mesh (分区 _ 网格)><zone_mesh>标签限定分区的边界。(1)介绍包含或引用足够描述基本几何网格的信息。(2) _既念〈zonejnesh〉的定义与〈mesh (网格)> 相同,除代替完整说明(〈source (源)>、 〈vertices (顶点)>、<polygons (多边形 > 等等)它可简单地指向另一个〈geometry (几何 构造)> 以得到它的形状。后者的情况典型地意味该〈geometry〉的凸壳应该计算以用作分 区边界(由可选的convex_hull_of attribute指示)。这是非常有用的,因为它允许重新使用<meSh>(例如用于渲染的一个)用于流处 理以最小化文档尺寸并且维护到原始〈mesh〉的链路。在该意义上,〈zonejnesh〉类似于用 于物理引擎的C0LLADA<convex_mesh>要素。
要求的体积属性指示分区是网格体积的内部还是外部。描述<convex_mesh>的最小方式是规定它的顶点(通过〈vertices〉要素和它的 对应源)并且让输入者计算该点云的凸壳。(3)属性<zone_mesh>要素具有下列属性
体积文本指示分区边界是网格的外部还是内部 体积。要求的。convex—hull_ofxs:anyURI〈geometry〉的URI字符串,用于计算 其的凸壳。可选的。(4)相关要素<convex_mesh>要素涉及下列要素具体值 在模式中限定的要素的数量母要素 几何构造子要素 参见下列子段其他无(5)子要素如果存在的话,子要素必须按下列顺序出现<source>、〈vertices〉、基本 要素、<extra> (其中基本要素是 <lines>、<linestrips>、<polygons>、<polylist>、 <triangles>、<trifans> 或 <tristrips> 的任意组合)。
名称/示例说明默认具体值〈source〉提供网格的顶点数据的整体1或更多〈vertices〉描述网格顶点属性并且建立它们的 拓扑身份1<lines>包含线基元0或更多<linestrips>包含线带基元0或更多〈polygons〉包含可包含孔的多边形基元0或更多<polylist>包含不可包含孔的多边形基元0或更多〈triangles〉包含三角形基元0或更多<trifans>包含三角扇形基元0或更多
1权利要求
一种在共享虚拟区域的网络节点之间交换实时数据流连接的方法,其中改进包括查明实时数据流的集,所述实时数据流使与在所述虚拟区域(28)中的相应位置关联的网络节点(52、54、56、64、404)中的给定的一个能够参与与在所述虚拟区域(28)中的相应位置关联的所述网络节点(52、54、56、64、404)中的一个或多个其他网络节点的协作通信会话;至少部分基于所述给定的网络节点的带宽能力确定传递实时数据流的所述集到所述给定的网络节点的一个或多个实时数据流连接;以及建立所述给定网络节点和所述网络节点中的一个或多个其他网络节点之间的实时数据流连接。
2.如权利要求1所述的方法,其中所述确定包括确定接收所述实时数据流中的每个所 采用的相应形式,其中所述确定的实时数据流中的每个采用未混合实时数据流或得自从所 述其他网络节点中的网络节点发送的实时数据流的组合的混合实时数据流的形式。
3.如权利要求1所述的方法,其中所述确定包括确定在其上接收所述实时流中的每个 的网络路由,其中所述确定的网络路由是直接对等网络路由或由所述其他网络节点中的一 个或多个居间的网络路由。
4.如权利要求1所述的方法,还包括存储虚拟区域规范(60、180、406),其包括一个或 多个交换规则的说明,每个交换规则根据在所述虚拟区域(28)中的位置限定相应实时数 据流类型的源(66)和该实时数据流类型的汇(68)之间的相应连接,其中所述查明和所述 确定中的至少一个基于所述交换规则。
5.如权利要求1所述的方法,还包括发送得自从所述其他网络节点中的网络节点发送 的实时数据流的一个或多个混合实时数据流的列表到所述给定的网络节点。
6.如权利要求1所述的方法,其中所述确定包括发现所述其他网络节点中的一个或多 个的带宽能力和基于所发现的带宽能力选择所述一个或多个实时数据流连接。
7.如权利要求1所述的方法,其中所述一个或多个确定的实时数据流连接涉及通过中 心网络节点(64、404)在第一集中的网络节点(52、54、56)之间交换实时数据流和在第二集 中的网络节点(52、54、56)之间在直接对等网络连接上交换实时数据流。
8.如权利要求1所述的方法,其中所述一个或多个确定的实时数据流连接涉及发送混 合实时数据流到所述给定网络节点,所述混合实时数据流包括所请求的实时数据流数据并 且得自从所述其他网络节点中的网络节点发送的实时数据流。
9.如权利要求1所述的方法,其中所述确定包括确定使未混合实时数据流到所述给定 网络节点的传递最大化的一个或多个实时数据流连接。
10.一种用于在共享虚拟区域的网络节点之间交换实时数据流连接的设备,其中改进 包括存储计算机可读指令的计算机可读存储器(124、128、405);以及耦合于所述存储器的数据处理单元(122、136、403、407),其可运行以执行所述指令,并 且至少部分基于所述指令的执行可运行以执行操作,包括查明实时数据流的集,所述实时数据流使与在所述虚拟区域(28)中的相应位置关联 的所述网络节点(52、54、56、64、404)中的给定的一个能够参与与在所述虚拟区域(28)中 的相应位置关联的所述网络节点(52、54、56、64、404)中的一个或多个其他网络节点的协作通信会话;至少部分基于所述给定的网络节点的带宽能力确定传递实时数据流的所述集到所述 给定的网络节点的一个或多个实时数据流连接;以及建立所述给定网络节点和所述网络节点中的所述一个或多个其他网络节点之间的实 时数据流连接。
11.一种存储用于在共享虚拟区域的网络节点之间交换实时数据流连接的计算机可读 指令的计算机可读介质,其中改进包括计算机可读指令,其可运行以使计算机执行操作,包 括查明实时数据流的集,所述实时数据流使与在所述虚拟区域(28)中的相应位置关联 的所述网络节点(52、54、56、64、404)中的给定的一个能够参与与在所述虚拟区域(28)中 的相应位置关联的所述网络节点(52、54、56、64、404)中的一个或多个其他网络节点的协 作通信会话;至少部分基于所述给定的网络节点的带宽能力确定传递实时数据流的所述集到所述 给定的网络节点的一个或多个实时数据流连接;以及建立所述给定网络节点和所述网络节点(52、54、56、64、404)中的所述一个或多个其 他网络节点之间的实时数据流连接。
12.—种在共享虚拟区域的网络节点之间交换实时数据流连接的方法,其中改进包括对所述网络节点(52、54、56、64、404)中的一个或多个接收网络节点中的每个,确定在 其上发送一个或多个实时数据流的相应的发送集的相应链路,其中所述链路中的每个具有 相应的链路带宽;以及对所述链路中的每个,在分别分配给在所述相应的发送集中的一个或多个实时数据流 的一个或多个通道之间分派相应的链路带宽并且在所述分别分配的通道上发送在所述相 应的发送集中的一个或多个实时数据流到相应的接收网络节点。
13.如权利要求12所述的方法,其中所述确定包括对所述链路中的每个,查明在所述 相应的发送集中的所述一个或多个实时数据流中的每个的一个或多个相应的带宽水平并 且基于所述查明的带宽水平分配相应的链路带宽给该链路。
14.如权利要求13所述的方法,其中对所述链路中的每个所述查明包括为在所述相应的发送集中的实时数据流中的每个识别相应的最小带宽 水平,以及从一个或多个识别的相应最小带宽水平计算相应的最小链路带宽水平。
15.如权利要求14所述的方法,还包括响应于确定对于任意链路可用的带宽不能满足 相应的最小链路带宽水平而使该任意链路掉线。
16.如权利要求13所述的方法,其中,对所述链路中的每个所述查明包括,对在所述相应的发送集中的一个或多个实时数据流中的每个,识别在 从相应的第一优选的带宽水平到相应的第二优选的带宽水平排序的相应优先等级顺序中 的至少两个相应的带宽水平;以及至少部分基于识别的第一优选带宽水平计算相应的目标链路带宽水平和至少部分基 于识别的第二优选带宽水平计算相应的撤退链路带宽水平。
17.如权利要求16所述的方法,其中所述确定包括,对所述接收网络节点(52、54、56、 64,404)中的每个,尝试以所述目标链路带宽水平建立到该接收网络节点的相应链路,以及响应于失败以所述目标链路带宽水平建立到该接收网络节点的相应链路,尝试以所述 撤退链路带宽水平建立到该接收网络节点的相应链路。
18.如权利要求17所述的方法,其中所述尝试包括比较所述目标链路带宽水平与对于 发送相应的发送集的可用的带宽的当前量和对于相应的接收网络节点可用的带宽的当前 量。
19.如权利要求12所述的方法,其中所述确定包括对所述接收网络节点(52、54、56、 64,404)中的每个,尝试以相应的候选链路带宽水平建立到该接收网络节点的相应链路,以及响应于失败以所述相应的候选链路带宽水平建立到该接收网络节点的相应链路,放弃 所述发送数据集中的至少一个可选的实时数据流。
20.如权利要求12所述的方法,其中所述确定包括对所述接收网络节点(52、54、56、 64,404)中的每个,尝试以相应的候选链路带宽水平建立到该接收网络节点的相应链路,以及响应于失败以所述相应的候选链路带宽水平建立到该接收网络节点的相应链路,建立 用于在由所述其他网络节点中的一个或多个居间的网络路由上发送在所述相应的发送集 中的一个或多个实时数据流到该接收网络节点的链路。
21.如权利要求12所述的方法,其中所述确定包括对所述接收网络节点(52、54、56、 64,404)中的每个,尝试以相应的候选链路带宽水平建立到该接收网络节点的相应链路;以及响应于失败以所述相应的候选链路带宽水平建立到该接收网络节点的相应链路,建立 采用得自从所述网络节点中的其他网络节点发送的实时数据流的组合的一个或多个混合 实时数据流的形式传递在所述相应的发送集中的所述实时数据流中的一个或多个到该接 收网络节点的链路。
22.如权利要求12所述的方法,其中所述确定包括对所述链路中的每个,采用基于与 相应的接收网络节点关联的属性确定的量分配相应的带宽。
23.如权利要求12所述的方法,其中,对所述链路中的每个,相应的链路带宽的分派基 于分别与在所述相应的发送集中的所述一个或多个实时数据流关联的一个或多个流优先 级等级。
24.如权利要求12所述的方法,其中所述链路中的每个是从发送相应的发送集的所述 网络节点(52、54、56、64、404)中的相应的一个到所述接收网络节点中的相应的一个的相 应的单向链路。
25.一种用于在共享虚拟区域的网络节点之间交换实时数据流连接的设备,其中改进 包括存储计算机可读指令的计算机可读存储器(124、128、405);以及耦合于所述存储器的数据处理单元(122、136、403、407),其可运行以执行所述指令,并 且至少部分基于所述指令的执行可运行以执行操作,包括对所述网络节点(52、54、56、64、404)中的一个或多个接收网络节点中的每个,确定在 其上发送一个或多个实时数据流的相应发送集的相应链路,其中所述链路中的每个具有相 应的链路带宽,以及对所述链路中的每个,在分别分配给在所述相应的发送集中的所述一个或多个实时数 据流的一个或多个通道之间分派相应的链路带宽并且在所述分别分配的通道上发送在所 述相应的发送集中的所述一个或多个实时数据流到相应的接收网络节点。
26.一种存储用于在共享虚拟区域的网络节点之间交换实时数据流连接的计算机可读 指令的计算机可读介质(124、128、405),其中改进包括所述计算机可读指令,其可运行以使 计算机执行操作,包括对所述网络节点(52、54、56、64、404)中的一个或多个接收网络节点中的每个,确定在 其上发送一个或多个实时数据流的相应的发送集的相应链路,其中所述链路中的每个具有 相应的链路带宽,以及对所述链路中的每个,在分别分配给在所述相应的发送集中的所述一个或多个实时数 据流的一个或多个通道之间分派相应的链路带宽并且在所述分别分配的通道上发送在所 述相应的发送集中的所述一个或多个实时数据流到相应的接收网络节点。
27.一种用于在共享虚拟区域的网络节点之间交换实时数据流连接的网络适配器 (462),其中改进包括存储计算机可读指令的计算机可读存储器(482);以及耦合于所述计算机可读存储器的处理单元(478),其可运行以执行所述指令,并且至少 部分基于所述指令的执行可运行以执行操作,包括对所述网络节点(464、472)中的一个或多个接收网络节点中的每个,确定在其上发送 一个或多个实时数据流的相应的发送集的相应链路,其中所述链路中的每个具有相应的链 路带宽,以及对所述链路中的每个,在分别分配给在所述相应的发送集中的所述一个或多个实时数 据流的一个或多个通道之间分派相应的链路带宽并且在所述分别分配的通道上发送在所 述相应的发送集中的所述一个或多个实时数据流到相应的接收网络节点。
全文摘要
文档编号H04L12/28GK101953115SQ20088012325
公开日2011年1月19日 申请日期2008年10月16日 优先权日2007年10月24日
发明者Wie Van David, Paul J Brody 申请人:Social Communications Co, Wie Van David, Paul J Brody
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1