遍布式实时框架的制作方法

文档序号:6595775阅读:272来源:国知局
专利名称:遍布式实时框架的制作方法
遍布式实时框架
背景技术
高速网络和计算机处理资源的进步已经导致各种不同实时软件应用的扩增,这些实时软件应用包括实时通信系统(例如,文字聊天、语音、以及视频通信系统)和要求快速响应时间的实时数据流送系统(例如,在线金融交易系统)。实时软件应用在由计算机操作系统创建的应用环境中工作于计算机之上。计算机操作系统通常在实时软件应用程序和计算机系统硬件之间提供标准化的、一致性应用编程接口(API)。API通常允许实时软件应用通过一组低级原语以标准化方式与计算机系统硬件接口或访问计算机系统硬件。这些低级原语必须通过低级管路代码被集成到支持实时软件应用所要求的实时功能性的较高级别的功能性。计算机操作系统所提供的最小开发支持对实时软件应用的开发者施加了相当的负担;不仅是编写底层管路代码所需的大量精力,而且直接与低级原语交互的布线代码固有的复杂性不可避免地增加了开发实时软件应用所需的时间。
发明概要在一方面,本发明的特征在于一种方法,根据该方法,基于与软件应用和计算机数据文件的至少一者相关联的连接规则中对虚拟区域的指定来确定该虚拟区域的实例。查明与该虚拟区域的实例相关联的一个或多个网络节点。在由该虚拟区域的实例定义的上下文中经由与这些网络节点的至少一个网络节点的至少一个网络连接发起至少一个实时数据流的传递。在另一方面,本发明的特征在于一种方法,根据该方法,将连接规则中对至少一个连接目标的指定解析为至少一个相应网络节点连接句柄,其中该连接规则与软件应用和计算机数据文件的至少一者相关联。经由与分别关联于该至少一个相应网络节点连接句柄的至少一个网络节点的至少一个网络连接发起至少一个实时数据流的传递。在另一方面,本发明的特征在于一种方法,根据该方法,发布应用编程接口(API)。 该API声明执行包括基于连接规则管理实时数据流的网络连接的操作的功能。连接规则的每一条包括对虚拟区域的相应指定和对与该虚拟区域相关联的一个或多个连接目标的相应指定中的至少一者。响应于对该API的调用,基于这些连接规则中与软件应用和计算机数据文件的至少一者相关联的相应一条连接规则以及该虚拟区域中的至少一个位置来管理与至少一个网络节点的实时数据流连接。在另一方面,本发明的特征在于一种方法,根据该方法,用根据与软件应用和该软件应用能对其操作的数据文件中的至少一者相关联的连接规则在虚拟区域的实例所定义的上下文中建立与至少一个连接目标的网络连接的调用来调用应用编程接口(API)。连接规则包括对虚拟区域的相应指定和对与该虚拟区域相关联的一个或多个连接目标的相应指定。用基于该虚拟区域实例中的位置经由该网络连接关于该连接目标发起至少一个实时数据流的传递的调用来调用该API。在另一方面,本发明的特征在于一种方法,根据该方法,响应于包括软件应用和计算机数据文件的至少一者中的位置的定义的应用编程接口(API)的调用执行至少以下操
9作确定与该位置定义相关联且包括对虚拟区域的指定的连接规则;建立与主存该虚拟区域的实例并发布描述该虚拟区域实例的当前状态的状态数据的网络基础设施服务的会话; 订阅该状态数据;以及呈现该状态数据的人类可感知视图。在一方面,本发明的特征在于一种方法,根据该方法,响应于包括软件应用和计算机数据文件的至少一者中的位置的定义的应用编程接口(API)调用执行至少以下操作确定与该位置定义相关联且包括对至少一个连接目标的指定的连接规则;建立与管理网络节点的连接句柄分布的网络基础设施服务的会话;向该网络基础设施服务声明连接至该连接对象中指定的连接目标中的一个或多个连接目标的意图;从该网络基础设施服务接收至少一个相应网络节点连接句柄;以及经由与关联于该至少一个相应网络节点连接句柄的网络节点的至少一个网络连接发起至少一个实时数据流的传递。在一方面,本发明的特征在于一种方法,根据该方法,响应于包括软件应用和计算机数据文件的至少一者中的位置的定义的应用编程接口(API)调用执行至少以下操作确定与该位置定义相关联且包括对至少一个连接目标的指定的连接规则;建立与管理网络节点之间的存在性数据的交换的网络基础设施服务的会话;以及向该网络基础设施服务声明向分别对应该至少一个连接目标的网络节点中的至少一个网络节点输出包括该位置的定义的存在性数据的意图。本发明的特征还在于用于实现上述的发明方法的装置和存储致使计算机实现上述发明方法的计算机可读指令的计算机可读介质。本发明的其他特征和优点将因为包括附图和权利要求的以下描述而变得显而易见。附图简述

图1是包括遍布式实时框架和网络基础设施服务环境的操作环境的实施例的图
7J\ ο图2是由图1的遍布式实时框架的实施例执行的方法的实施例的流程图。图3是图1的遍布式实时框架和网络基础设施服务环境在由虚拟区域实例所定义的通信上下文中建立实时通信的实施例的框图。图4是包括呈现共享虚拟区域的二维描绘的图形用户界面的网络节点的实施例的图示。图5A是计算机数据文件的实施例的框图。图5B是存储对图5A中计算机数据文件的区段进行定义的记录的计算机数据文件区段定义数据库的实施例的图示。图6A是软件应用文件的实施例的框图。图6B是存储对图6A中软件应用的区段进行定义的记录的软件应用区段定义数据库的实施例的图示。图7A是具有被映射至图6A中的软件应用的区段的地带的抽象虚拟空间的实施例的图示。图7B是具有被映射至图6A中的软件应用的区段的地带的两个视觉虚拟空间的实施例的图示。图8是包含具有指向连接对象数据库的实施例中的相应记录的连接对象标识符
10的记录的连接对象关联数据库的实施例的图示。图9是连接对象数据库的实施例的图示。图10是在图1的操作环境的实施例中连接至三个其他网络节点的网络节点的实施例的框图。图11是登录到图1的网络基础设施服务环境的实施例的方法的实施例的流程图。图12是由图1的遍布式实时框架的实施例实现的方法的实施例的流程图。图13是由图1的遍布式实时框架的实施例在经由会合服务的实施例查明连接目标时所实现的方法的实施例的流程图。图14是由图1的遍布式实时框架的实施例在经由区域服务的实施例查明连接目标时所实现的方法的实施例的流程图。图15是图10中所示的操作环境的实施例的图示。图16是操作系统的实施例以及图1的遍布式实时框架的实施例的图示。图17是由图1的遍布式框架的区域连接服务的实施例实现的方法的实施例的流程图。图18是由区域进入服务、流交换服务、和流处置器服务的实施例在图1的遍布式框架的实施例中实现的方法的实施例的流程图。图19是由流交换服务的实施例在图1的遍布式框架的实施例中实现的方法的实施例的流程图。图20是由流交换服务的实施例在图1的遍布式框架的实施例中实现的方法的实施例的流程图。图21是由流交换服务的实施例在图1的遍布式框架的实施例中实现的方法的实施例的流程图。图22是由目标连接服务的实施例在图1的遍布式框架的实施例中实现的方法的实施例的流程图。发明具体描述以下描述中,相同的附图标记被用于标识相同的要素。此外,示图旨在以图示方式来解说示例性实施例的主要特征。示图无意描绘实际实施例的每一项特征或所描绘要素的关系尺度,并且不是成比例绘制的。I.术语定义“计算机”是根据临时或持久地存储在计算机可读介质上的计算机可读指令来处理数据的任何机器、设备、或装置。“计算机操作系统”是管理和协调任务的执行以及计算与硬件资源的共享的计算机系统的软件组件。“软件应用”(也称作软件、应用、计算机软件、 计算机应用、程序、以及计算机程序)是计算机能够解读并执行以进行一项或多项具体任务的指令集。“应用编程接口”(或API)是操作系统、库、或服务提供以支持软件应用作出的请求的功能(或规程)声明集。API指定该接口中指定的标识符的接口和行为。API的实现指提供该API描述的功能性的软件应用代码。“计算机数据文件”是持久地存储数据以供软件应用使用的信息块。“交互空间”是针对软件应用和计算机数据文件中的至少一者中的每个有一维度且具有与该软件应用和/或数据文件的不同区段(例如,计算机数据文件中的章节或演示
11幻灯片、和软件应用的不同功能或进入点)相对应的“位置”的抽象空间。“用户关于交互空间的当前焦点”是该软件应用和/或计算机数据文件中当前在用户的网络节点上活跃着的区段。“数据库”是以能够被计算机搜索的标准化格式呈现的组织化的记录集合。数据库可以存储在单个计算机可读数据存储介质上,或者可以跨多个计算机可读数据存储介质分布。“数据阱”(本文中简称为“阱”)是接收数据的设备(例如,计算机)、设备的一部分、或软件中的任一者。“数据源”(本文中简称为“源”)是始发数据的设备(例如,计算机)、设备的一部分、或软件中的任一者。“框架”是一组可重用、协同操作的高级功能的类和支配低级功能(例如,操作系统原语和内核原语)可被组合的方式的协议,包括定义这些原语可如何由软件应用调用且框架如何响应此类调用的规则。“网络节点”是通信网络中的结或连接点。示例性网络节点包括但不限于终端、计算机、以及网络交换机。“网络连接”是两个通信网络节点之间的链接。“连接规则”指定虚拟区域和连接目标中的至少一者,并且包括指导适当配置的软件应用或服务在发起网络连接时的行为的一个或多个连接条件的任选集合。“连接目标” 是指可被用于建立与网络节点上的通信者、资源、或服务的网络连接的标识符或连接句柄 (例如,统一资源标识符(URI))。“连接条件”指定影响网络连接的建立、网络连接的管理、 或对跨网络连接传递的数据的处理的一个或多个参数。例如,连接条件可描述在尝试或建立网络连接之前应该满足的关于操作环境的谓词。“对象”是虚拟区域中可有用地与该虚拟区域的几何体系区分对待的任何类型的离散要素。示例性的对象包括门、门户、窗口、察看屏、以及扩音器。对象典型地具有与虚拟区域的属性和特性分离且不同的属性和特性。“化身”是代表虚拟区域中的通信者的对象。“存在性”是指联网实体(例如,通信者、服务、或设备)进行通信的能力或意愿,其中此类意愿影响在网络上检测和获得关于该实体的状态的信息的能力以及连接到该实体的能力。“实时数据流”是以连续流的形式进行结构化和处理并且被设计成无延迟或者只有察觉不到的延迟地接收的数据。实时数据流可落入从较高优先级的硬实时数据流(例如,语音流)到较低优先级的软实时数据流(例如,屏幕共享数据流)的不同优先级类别。 实时数据流包括语音、视频、用户移动、面部表情及其他物理现象的数字表示,以及计算环境内可得益于迅速传输、迅速执行、或迅速传输和迅速执行两者的数据,例如包括化身移动指令、文字聊天、实时数据馈送(例如,传感器数据、机器控制指令、交易流以及股票报价信息馈送)、以及文件传递。“流混合”是相同或语义一致类型(例如,音频、视频、聊天、和运动数据)的两个或更多个实时数据流的组合。例如,语音流集可能被混合进单个语音流或语音流可能被混合进视频流的音频部分。“交换规则”是依照一个或多个条件先例指定一个或多个实时数据源与一个或多个实时数据阱的连接或断开的指令。
12
“虚拟区域”(也被称作“区域”或“场所”)是由计算机管理的空间或场景的表示。 虚拟区域通常是一维、二维、或三维的表示;尽管在一些实施例中虚拟区域也可对应于单个点。虚拟区域经常被设计成模拟物理、真实世界的空间。例如,使用传统的计算机监视器, 虚拟区域可被视觉化为由计算机生成的三维空间的二维图形。然而,虚拟区域并不要求相关联的用以实现交换规则的视觉化。虚拟区域通常是指虚拟区域模式的实例,其中模式以变量的形式来定义虚拟区域的结构和内容,而实例以已从特定上下文解析出的值的形式来定义虚拟区域的结构和内容。“虚拟区域规范”是在创建共享虚拟区域通信环境时使用的虚拟区域描述。“虚拟通信环境”是包括至少一个虚拟区域并且支持通信者之间的实时通信的由计算机管理的空间的表示。“地带”是虚拟区域中与至少一个交换规则或支配规则相关联的区划。交换规则控制通过共享的虚拟区域通信的网络节点之间的实时数据流的交换(例如,路由、连接、和断开)。支配规则控制通信者对资源(例如,区域、区域的区划、或该区域或区划的内容)的访问,该访问的范围、以及该访问的后继结果(例如,必须记录关于该访问的审计记录的要求)。虚拟区域中的“位置”是指该虚拟区域中的点或面积或体积的定位。点典型地是由定义虚拟区域中的点的一维、二维、或三维坐标(例如,x、y、z)单个集合表示的。面积典型地由定义虚拟区域中闭合的二维形状的边界的三个或更多个共面顶点的三维坐标来表示的。体积通常由定义虚拟区域中的三维形状的闭合边界的四个或更多个非共面顶点的三维坐标来表示。“通信者”是在网络连接上与其他人通信或以其他方式交互的人,其中该通信或交互可以发生或者也可以不发生在共享的虚拟区域的上下文中。“用户”是正在操作特定网络节点的通信者,该特定网络节点出于描述性目的而定义了一特定观点。“谓词”是规则的条件部分。如本文所使用,术语“包括”意指包括但不限于,而“包含”意指包含但不限于。II.引言本文描述的实施例提供了一种通过显著降低在其中网络节点之间的实时连接是遍布式的新操作环境范例中开发实时软件应用所需的精力和时间的高级功能来支持实时软件应用的执行的遍布式实时框架。该遍布式实时框架响应于用户输入处置连接至通信者、虚拟区域、和其他网络资源、以及交换这些连接的复杂任务,并由此使得软件应用开发者能集中精力于开发高级实时软件应用功能性。在一些实施例中,遍布式实时框架提供将传统操作系统功能(例如,进程管理功能、文件管理功能、存储器管理功能、存储管理功能、设备管理功能、和网络管理功能)与实时功能(例如,实时调度功能、实时连接功能、和实时数据流处置功能)相集成的功能。在一些实施例中,遍布式实时框架包括普通遍布式实时任务的预编码解决方案的库、支持这些任务的执行的内核、以及用于配置和构建能够利用该框架所提供的功能的应用的工具。以此方式,遍布式实时框架在与传统操作系统原语的对等关系中带来实时高级功能和原语的集合。遍布式实时框架的一些实施例使得软件应用设计者能定义软件应用或计算机数
13据文件中位置的语义并将这些位置语义与虚拟区域和连接目标中的至少一者相关联。这些实施例包括可被软件应用调用从而将位置用作空间网络连接系统中的交换隐喻的功能。这些特征允许软件应用或计算机数据文件中的位置被用来例如驱动对虚拟区域的连接、虚拟区域的进入、对通信者和实时数据流的其他源或阱的连接、以及与通信者及网络资源和服务有关的存在性数据的确定。III.概览A.遍布式实时(PRT)框架图1示出了基于计算机数据文件观和软件应用30的至少一者中的位置以及基于与软件应用观和计算机数据文件的至少一者相关联的一个或多个连接规则32来管理与各种不同网络节点14、16、18、20、22、24J6的网络连接的遍布式实时(PRT)框架12的实施例。连接规则32中的每一条指定虚拟区域和连接目标中的至少一者,并且包括指导适当配置的软件应用或服务在管理网络连接时的行为的一个或多个连接条件的任选集合。图2示出了由PRT框架12实现的方法的示例性实施例。根据此方法,PRT框架12 发布声明执行包括基于连接规则32管理实时数据流的网络连接的操作的功能的应用编程接口(API)(图2,框34)。连接规则32的每一条包括对虚拟区域的相应指定和对与该虚拟区域相关联的一个或多个连接目标的相应指定中的至少一者。响应于对API的调用36,PRT 框架12基于连接规则32中与软件应用30和计算机数据文件观的至少一者相关联的相应一条连接规则以及虚拟区域中的至少一个位置来管理与至少一个网络节点的实时数据流连接(图2,框38)。在图1所示的示例性实施例中,计算机数据文件观包含三个区段(S1、S2、S3),每个区段被定义为计算机数据文件观中的相应位置(例如,word处理文档中的相应段落或章节);软件应用30包含六个区段(S4、S5、S6、S7、S8、S9),每个区段被定义为软件应用30中的相应位置(例如,软件应用的相应功能或进入点)。计算机数据文件观的区段(S1-S3) 中的每个区段以及软件应用30的区段(S4-S9)中的每个区段与连接规则32中的至少一条规则相关联。这样,PRT框架12能够以实时方式将区段S1-S9中的每个区段连接至虚拟区域或一个或多个连接目标、或者这两者,包括将存在性信息输出给相关联的连接目标、邀请相关联的连接目标参与相关联的虚拟区域中的通信会话、以及建立与相关联的连接目标的实时连接。例如,在针对图1中所示的实施例实现图2的方法时,PRT框架12基于计算机数据文件观和软件应用30的至少一者中的所报告位置、以及基于与所报告位置相关联的连接规则来管理与网络节点1416中的一个或多个网络节点的相应实时数据流连接。当所报告位置是Sl时,PRT框架12根据与位置Sl相关联的连接规则来管理与网络节点14 (数据源 1 ;例如,实时股票报价服务)的实时数据流网络连接。当所报告位置是S2时,PRT框架12 根据与位置S2相关联的连接规则来管理与网络节点16、18、和20(生意联系人)的视频会议网络连接。当所报告位置是S8时,PRT框架12根据与位置S8相关联的连接规则来管理与网络节点22 (数据源2;例如,实时音乐或视频流送服务)的实时数据流连接。当所报告位置是S9时,PRT框架12根据与位置S9相关联的连接规则来管理与网络节点24 J6 (朋友)的语音和文字聊天网络连接。因此,PRT框架12通过连接规则与软件应用、计算机数据文件、及其部分的关联使
14得软件应用开发者能构造可在遍布式实时连接环境中操作的软件应用。PRT框架12如连接规则所要求的那样管理实时连接和实时数据流处理,并由此允许软件应用开发者能集中精力于生成能够利用这种遍布式网络连接的新范例的软件应用的增值任务。B.操作环境如在图1和3中所示,PRT框架12在包括网络42和网络基础设施服务环境43的操作环境40的上下文中操作。1.网络环境网络42可包括局域网(LAN)、城域网(MAN)、和广域网(WAN)(例如,因特网)中的任意一者。网络42通常包括数个不同的计算平台和支持诸网络节点之间各式各样不同媒体类型(例如,文本、语音、音频、及视频)的传输的输送设施。PRT框架12通常在包括软件和硬件资源的网络节点上操作,软件和硬件资源与管理策略、用户偏好(包括关于用户的存在性的输出以及用户与区域和连接目标的连接的偏好)、以及其他设置一起定义了影响对与其他网络节点的实时连接的管理的本地配置58。 网络节点之间的网络连接可以各种不同的流处置拓扑来安排,包括对等架构、服务器仲裁架构、以及组合了对等及服务器仲裁架构的诸方面的混合式架构。这些类型的示例性拓扑在提交于2007年10月M日的美国申请号11/923,629和11/923,634中记载。2.基础设施服务环境网络基础设施服务环境43提供与PRT框架12协同操作以管理与网络节点1446 的网络连接的一个或多个网络基础设施服务。网络基础设施服务可在单个网络节点上运行或者可以跨多个网络节点分布。网络基础设施服务通常在一个或多个专用网络节点(例如,服务器计算机或执行诸如路由和交换之类的边服务的网络设备)上运行。然而,在一些实施例中,网络基础设施服务中的一个或多个在通信者的网络节点中的至少一个上运行。 在一些实施例中,网络基础设施服务中的一个或多个服务运行于一个或多个虚拟机上,这一个或多个虚拟机可能正在相同的物理硬件上运行。包括在该示例性操作环境40中的网络基础设施服务有安全服务44、区域服务46、会合服务48、和交互服务50。安全服务44控制通信者对操作环境40的资源的访问。安全服务44所实现的访问控制方法通常基于能力(其中访问被授予具有适当能力或许可的实体)或访问控制列表 (其中访问被授予身份在该列表上的实体)。在安全服务44已授权一特定通信者访问之后, 该通信者通常使用由另一网络基础设施服务提供的功能性在操作环境40中交互。区域服务46主存虚拟区域。在此过程中,区域服务46管理依照请求方实体的能力对虚拟区域的连接、维护虚拟区域的全局状态信息、以及充当参与由虚拟区域定义的上下文中的共享通信会话的网络节点的数据服务器。全局状态信息包括该虚拟区域中的所有对象以及它们在该虚拟区域中的各自相应位置的列表。区域服务46向参与的网络节点周期性地发送全局状态信息。区域服务46还注册请求加入通信会话的其他网络节点并向它们传送初始化信息。在此过程中,区域服务46向每个加入的网络节点传送可存储于本地或远程数据库中的虚拟区域规范的副本。区域服务46还确保参与的网络节点在发生通信故障的情况下能够同步到全局状态。会合服务48管理存在性信息的收集、存储和分发,并(例如,通过管理连接句柄的分发)为网络节点提供用以依照请求方实体的能力彼此通信的机制。会合服务48通常将
15存在性信息存储在存在性数据库中。交互服务50维护记录通信者之间的交互的交互数据库,并支持依照请求方实体的能力对交互数据库的查询。对于通信者之间的每次交互,操作环境43中的一项或多项服务(例如,区域服务46)将交互数据传送给交互服务50。作为响应,交互服务50在关系数据库中生成一项或多项相应的交互记录。每个交互记录描述交互的上下文。例如,在一些实施例中,交互记录包含每个通信者的标识符、交互场所的(例如,虚拟区域实例)标识符、 对交互场所的层次的描述(例如,对该交互地与一更大区域有何关系的描述)、交互的开始和结束时间、以及在交互期间共享的所有文件和其他流的列表。因此,对于每次实时交互, 交互服务50跟踪其何时发生、在何处发生、以及在所涉及(例如,进入和退出)的通信者、 被激活/抑活的对象、和共享的文件方面在交互期间发生了什么。交互服务50能够以基于场所的分类次序(例如,最频繁或最近)呈现对交互数据库记录的查询结果。查询结果可被用于驱动通信者在哪些虚拟区域中已遇见的何人的频率排序、以及在不论虚拟区域的情况下该通信者已遇见的何人的排序和对该通信者最经常出入的虚拟区域的排序。查询结果还可被软件应用开发者用作基于关系使某些任务自动化的启发式系统的一部分。这种类型的启发式操作示例是默认准许已经拜访一特定虚拟区域5 次以上的通信者进入而无需敲门的启发式操作、或者允许在一特定时间存在于一区域中的通信者修改和删除由在该同一时间存在于该同一区域中的另一通信者创建的文件的启发式操作。对交互数据库的查询可与其他搜索相结合。例如,对交互数据库的查询可与针对使用在网络基础设施服务环境43的域之外的通信系统(例如,Skype、Faceb00k、以及Flickr) 与联系人交互而生成的联系人历史数据的查询相结合。3.虚拟区域参照图3,在一些实施例中,PRT框架12管理在虚拟区域的实例56所定义的通信上下文M中与网络节点的实时连接。虚拟区域实例56可对应关于抽象坐标(例如,由相关联的计算机数据文件或软件应用中的位置定义的坐标、或者在其中消费者服务数据库为区域的实施例中,该数据库中的每条记录构成地带)所定义的抽象虚拟空间。替换地,虚拟区域实例56可对应关于与特定视觉化相关联的一维、二维、或三维几何坐标所定义的视觉虚拟空间。抽象虚拟区域可以与相应视觉化相关联或者也可不相关联,而视觉虚拟区域与相应视觉化相关联。通信者通常从执行相应计算环境的相应网络节点访问虚拟区域实例56,相应计算环境能确定在该虚拟区域中的运动并建立与其他网络节点的实时数据流连接。通信者通常在具有相关联的视觉化的虚拟区域中由相应的化身来表示。化身响应于由通信者在其各自相应的网络节点处输入的输入命令来关于虚拟区域移动。通信者看到的具有相关联的视觉化的虚拟区域实例的视图通常是从该通信者的化身的观点呈现的,且每个通信者通常能够观看到他或她的化身周围的视觉虚拟区域的任何部分,从而增强了通信者身临其境的程度。图4示出了由计算机系统60实现的示例性网络节点的实施例。计算机系统60包括显示监视器62、计算机鼠标64、键盘66、扬声器68、70、以及话筒72。显示监视器62显示图形用户界面74。图形用户界面74是基于窗口的图形用户界面,其能包括多个窗口、图标、和指针76。在所解说的实施例中,图形用户界面74呈现对与表示艺廊的三维可视化相
16关联的共享虚拟区域78的二维描绘。通信者在该虚拟区域78中由各自相应的化身80、82、 84来表示,每个化身可在该虚拟区域78的上下文中具有各自相应的角色(例如,馆长、艺术家、和游客)。如下文详细解释的,虚拟区域78包括地带86、88、90、92、94,这些地带与支配由虚拟区域78中的化身80-84所表示的网络节点之间的实时数据流的交换的相应规则相关联。 (在典型的通信会话期间,图4中划界出地带86-94的虚线对于通信者而言是不可见的,尽管可以有与此类地带边界相关联的视觉线索。)交换规则规定在每一个网络节点上执行的本地连接过程如何基于通信者的化身80-84在虚拟区域78的地带86-94中的位置来建立与其他网络节点的通信。在通信会话期间,每个通信者网络节点生成相应的一组实时数据流(例如,运动数据流、音频数据流、聊天数据流、文件传递数据流、以及视频数据流)。例如,每个通信者操纵一个或多个生成运动数据流的输入设备(例如,计算机鼠标64和键盘66),这控制他或她的化身在虚拟区域78中的移动。此外,在计算机系统60附近本地生成的通信者的语音和其他声音由话筒72捕获。话筒72生成可被转换为实时音频流的音频信号。音频流的相应副本被传送给由虚拟区域78中的化身表示的其他网络节点。在这些其他网络节点本地生成的声音被转换成实时音频信号并被传送给计算机系统60。计算机系统60将其他网络节点生成的音频流转换为由扬声器68、70呈现的音频信号。运动数据流和音频数据流可直接或间接从每一个通信者节点传送至其他通信者网络节点。在一些流处置拓扑中,每个通信者网络节点接收由其他通信者网络节点传送的实时数据流的副本。在其他流处置拓扑中, 一个或多个通信者网络节点接收从源自(发源于)其他一些网络节点的实时数据流导出的一个或更多个流混合。虚拟区域由包括对该虚拟区域的几何要素的描述以及一个或多个规则(包括交换规则和支配规则)的规范来定义。交换规则支配网络节点之间的实时流连接。支配规则控制通信者对诸如虚拟区域本身、具有虚拟区域的区划、以及虚拟区域内的对象之类的资源的访问。在一些实施例中,虚拟区域的几何要素根据C0LLADA—2006年4月数字资产计划版本1. 4. 1规范(可从http://www. khronos. orR/collada/得到)进行了描述,而交换规则根据在美国申请号11/923,629和11/923,634中描述的C0LLADA流参考规范进行了描述。虚拟区域的几何要素通常包括虚拟区域的物理几何体系和碰撞几何体系。物理几何体系描述虚拟区域的形状。物理几何体系通常由三角形、四边形、或多边形的表面形成。 颜色和纹理被映射到物理几何体系上以创建虚拟区域的更真实表观。例如可通过在视觉几何体系上描绘灯光并修改灯光附近的纹理、颜色、或亮度来提供灯光效果。碰撞几何体系描述确定对象可在虚拟区域中移动的方式的不可见表面。碰撞几何体系可与视觉几何体系一致、对应于视觉几何体系的更简单的近似、或者与对虚拟区域设计者的因应用而异的要求有关。交换规则通常包括对用于按照虚拟区域中的位置来连接实时数据流的源和阱的条件的描述。每个规则通常包括定义该规则所适用的实时数据流类型以及该规则在该虚拟区域中所适用的(诸)位置的属性。在一些实施例中,每个规则任选地可包括指定源的所要求角色、阱的所要求角色、流的优先级别、和所请求的流处置拓扑的一个或多个属性。在
17一些实施例中,如果没有为虚拟区域的特定部分定义显式交换规则,则可向虚拟区域的该部分应用一个或多个隐式或缺省交换规则。一个示例性缺省交换规则是依照策略规则的、 将区域内的每个源连接至每个相兼容的阱的规则。策略规则可全局地适用于区域客户端之间的所有连接、或者仅适用于与个体区域客户端的相应连接。策略规则的示例是接近度策略规则,该规则仅允许源与关联于虚拟区域中彼此在规定距离(或半径)内的相应对象的兼容阱的连接。在一些实施例中,支配规则与虚拟区域相关联以控制谁能访问该虚拟区域、谁能访问其内容、对该虚拟区域的内容的访问的范围是什么(例如,用户关于该内容能做什么)、以及访问这些内容的后继结果是什么(例如,记录跟踪,诸如审计日志、和支付要求)。 在一些实施例中,整个虚拟区域或该虚拟区域的地带与“支配网格”相关联。在一些实施例中,支配网格是用类似于在美国申请号11/923,629和11/923,634中描述的地带网格的实现的方式来实现的。支配网格使得软件应用开发者能够将支配规则与虚拟区域或虚拟区域的地带相关联。这避免了为虚拟区域中的每个文件创建个体许可的需求并且避免了处理在需要根据上下文不同地对待同一文档时可能产生的复杂度的需求。在一些实施例中,虚拟区域与将该虚拟区域的一个或多个地带与数字版权管理 (DRM)功能相关联的支配网格相关联。DRM功能控制对虚拟区域或该虚拟区域内的一个或多个地带或该虚拟区域内的对象中的一者或多者的访问。每次通信者越过该虚拟区域内的支配网格边界时DRM功能被触发。DRM功能确定该触发动作是否被许可,并且如果许可,则确定所许可动作的范围、是否需要支付、以及是否需要生成审计记录。在虚拟区域的示例性实现中,相关联的支配网格被配置成使得如果通信者能够进入该虚拟区域,则他或她能够对与该虚拟区域相关联的所有文档执行动作,包括操控文档、查看文档、下载文档、删除文档、修改文档和重新上载文档。这样,虚拟区域可变成在由该虚拟区域定义的上下文中共享和讨论的信息的储存库。关于虚拟区域的规范的附加细节在美国申请号61/042714 (提交于2008年4月4 日)、11/923,629(提交于 2007 年 10月 M 日)、和 11/923,634 (提交于 2007 年 10 月 M
日)中记载。4.软件应用和计算机数据文件中的位置遍布式实时框架12的一些实施例使软件应用设计者能定义软件应用或计算机数据文件中的位置的语义。通过与相应连接规则的关联,这些位置定义可被用于例如驱动对虚拟区域的连接、虚拟区域的进入、对通信者和实时数据流的其他源或阱的连接、以及与通信者、网络资源和网络服务有关的存在性数据的确定。如上所述,计算机数据文件是持久地存储供软件应用使用的数据的任何信息块 (例如,被用作软件应用的输入、和/或被编写为软件应用的输出的信息)。计算机数据文件可被设计成与包括消费者和企业软件应用在内的任何类型的软件应用联用,并且可以任何类型的开放或封闭式数据文件格式存储。计算机数据文件包括一个或多个组件,这些组件的内容和结构至少部分地取决于存储在该计算机数据文件中的数据的类型和用途以及取决于用于创建它的软件。例如,用于桌面发布软件应用的计算机数据文件通常具有与诸如排列成句、段落、标题和块的文本、图、表、行/列、页、绘图片、演示幻灯片、及电子数据表之类的预定义区段或数据类别、或者诸如安全特征或认证特征之类的功能特征相对应的组
18件。软件应用开发者或最终用户可定义计算机数据文件中包括该计算机数据文件的一个或多个组成组件的一个或多个区段。区段可包括整个计算机数据文件或该计算机数据文件的部分、并且可与另一区段整个或部分地交迭。图5A示出了包括数据文件容器97的示例性计算机数据文件96,该数据文件容器 97保持有组件A、B、C、D、组件B的子组件B (1)、B⑵、和B (3)、以及组件C的子组件C(I)、 C (2)和C(3)的分等级排列。计算机数据文件96被划分成三个区段(Si、S2、S3),每个区段与计算机数据文件96的组件和子组件中的一个或多个相关联。例如,区段Sl与子组件 B(I)相关联,区段S2与组件C相关联,以及区段S3与子组件(Β; )和组件C相关联。计算机数据文件的组件与区段之间的关联可以各种不同的数据结构格式进行存储。例如,图5B示出了包含定义计算机数据文件96中的区段的记录的示例性计算机数据文件区段定义数据库98。区段定义记录通过记录标识符和计算机数据文件96的标识符进行索引。在一些实施例中,PRT框架12提供允许软件应用开发者用可由最终用户用于在计算机数据文件区段定义数据库98中创建记录的一个或多个对话框来设计软件应用的功能。如上所述,软件应用是在已被载入到存储介质(例如,硬盘驱动器、存储器、或随机存取存储器)中后计算机能够解读和执行的指令集。软件应用包括其内容和结构至少部分地取决于该软件应用及其设计架构的功能性的一个或多个逻辑组件(例如,硬连线的、 临时的、上下文的、查找表组件)或功能组件(例如,功能或进入点)。例如,一些软件应用使用由数个组件构成的组件化架构,每个组件可被包含在单独的库中并且可显露使其能被主可执行件所主存的相应接口集合。软件应用开发者可定义软件应用的包括该软件应用的一个或多个组件的一个或多个区段。区段可包括整个软件应用或该软件应用的部分、并且可与另一区段整个或部分地交迭。图6A示出了包括应用容器100的示例性软件应用99,该应用容器100保持有组件 E、F、组件E的子组件E(I)、E(2)、和E (3)、组件F的子组件F(I)、F(2)、子组件F(I)的子组件F(i)和F (ii)、以及子组件F (2)的子组件F(iii)的分等级排列。软件应用100被划分成六个区段(S4、S5、S6、S7、S8、S9),每个区段与软件应用99的组件和子组件中的一个或多个相关联。例如,区段S4与子组件B(I)相关联,区段S5与组件F相关联,区段S6与子组件F(I)相关联,区段S7与子组件FQ)相关联,区段S8与子组件F(ii)和F(iii)相关联,以及区段S9与子组件E (3)和F(i)相关联。软件应用的组件与区段之间的关联可以各种不同的数据结构格式进行存储。例如,图6B示出了包含定义软件应用99中的区段的记录的示例性软件应用区段定义数据库 102。区段定义记录通过记录标识符和软件应用99的标识符进行索引。在一些实施例中, PRT框架12提供允许软件应用开发者在软件应用区段定义数据库102中创建数据库记录的一个或多个对话框。参照图7A和7B,在一些实施例中,计算机数据文件或软件应用的这一个或多个区段与虚拟区域的相应地带相关联。例如,在一些实施例中,计算机数据文件或软件应用的这一个或多个区段与关于一维或多维抽象拓扑空间中的坐标所定义的抽象虚拟区域的相应地带相关联,该抽象拓扑空间具有至相关联的计算机数据文件或软件应用中的位置的一对一映射。例如,图7A示出了软件应用99的区段S4-S9至具有直接映射到软件应用99的相应的组件和子组件的坐标
19的二维拓扑空间中的相应坐标的示例性映射。在其他实施例中,计算机数据文件或软件应用的这一个或多个区段与一个或多个视觉虚拟区域的相应地带相关联,每个视觉虚拟区域可关于与相应视觉化相关联的一维、 二维、或三维几何坐标来定义。例如,图7B示出了软件应用99的区段S4-S9至两个视觉虚拟区域104和78的相应坐标的示例性映射。在此示例中,区段S4与关联于会议室的三维视觉化的视觉虚拟区域104相关联,以及区段S5-S9与关联于艺廊的三维视觉化的视觉虚拟区域78的相应地带相关联。5.连接规则PRT框架12提供使得软件应用开发者能纳入允许最终用户将计算机数据文件或软件应用与一个或多个连接规则相关联的软件应用协议(例如,对话框和类似物)的功能。 计算机数据文件或软件应用可以各种不同方式与连接规则相关联。在一些实施例中,计算机数据文件通过在由操作系统的文件管理器服务所管理的属性数据库中(例如,在可与该计算机数据文件在操作系统的文件系统级上相关联的可扩展文件属性中)存储连接规则或对该连接规则的参引而与该连接规则相关联。在一些实施例中,软件应用通过在软件应用文件的头部(例如,描述该软件应用应如何通过操作系统的程序加载器服务被载入存储器中的头部或片段)中存储连接规则或对该连接规则的参引而与该连接规则相关联。在一些实施例中,计算机数据文件或软件应用通过在由该计算机数据文件或软件应用的标识符索引的单独的数据库记录中存储连接规则或对该连接规则的参引而与该连接规则相关联。在所解说的实施例中,计算机数据文件和软件应用与各自封装一个或多个连接规则和一个或多个任选方法的可重用连接对象的实例相关联。每个连接规则指定虚拟区域和连接目标的至少一者,并包括影响网络连接的建立、网络连接的管理、或对跨网络连接所传递的数据的处理的一个或多个连接条件的任选集合。封装在连接对象中的方法类型包括例如调用PRT框架12的功能的方法和显露可由PRT框架12、操作系统使用、或可在图形界面中呈现给用户的连接规则的方法。计算机数据文件或软件应用的区段通常通过连接对象关联数据库中的相应记录来与相应的连接对象的实例相关联,该连接对象关联数据库用该计算机数据文件或软件应用的标识符及相关联的区段的标识符对每条记录进行索引。图8示出了示例性连接对象关联数据库106,其针对计算机数据文件或软件应用的每个区段包括将该区段与对在连接对象数据库108中索引的一个或多个相应连接对象的一个或多个参引(例如,01、02、03、04 等等)相关联的相应记录。图9示出了连接对象数据库108的实施例110,其针对每个连接对象包括可能属性 (或字段)的示例性集合,该可能属性(或字段)的示例性集合是通过其值对应于该连接对象的标识符(例如,01)的对象ID属性关键字进行索引的。包括在连接对象数据库108中的示例性属性有区域指定属性、连接目标指定属性、和连接条件属性。区域指定属性包含标识或者可被用于标识虚拟区域的实例的区域指定值。例如, 区域指定值可对应于标识虚拟区域模式的模式标识符(例如,模式_ID)、标识虚拟区域的实例的区域标识符(例如,区域_ID)、返回虚拟区域实例的标识符的对交互数据库的查询、 以及对另一区域(例如,相关联软件应用或计算机数据文件的域之外的虚拟区域)的参引中的任何一者。
20
连接目标指定属性包含标识或可被用于标识一个或多个连接目标的一个或多个连接目标指定。例如,连接目标指定可包括标识单个通信者的信息、标识通信者群的信息、 以及与至少一个通信者相关联的角色的定义中的至少一者。连接目标指定可对应于一个或多个具体连接目标(例如,固定的网络资源和具体通信者)以及返回连接目标的标识符的一个或多个查询的标识符。示例性查询包括对会合服务48关于当前在指定虚拟区域实例中的任何连接目标的查询、对会合服务48关于当前处在指定虚拟区域实例中的具体连接目标的查询、对会合服务48关于与一个或多个属性(例如,特定角色属性值或特定群标识符值)相关联的连接目标的查询、以及对交互服务50关于已经与该用户交互并且任选地与一个或多个其他属性相关联的连接目标(例如,与指定虚拟区域实例或诸如特定角色属性值或群标识符值之类的指定属性值相关联的连接目标)的查询。连接条件属性包含指定一个或多个连接条件的一个或多个连接条件定义。每个连接条件指定影响在连接至相关联连接规则中所指定的虚拟区域实例或连接目标时PRT框架12的操作的一个或多个参数。例如,连接目标可指定影响网络连接的建立、网络连接的管理、对跨网络连接传递的数据的处理以及将与连接相关的信息向用户的呈现中的任何一者的一个或多个参数。一些连接条件描述在尝试或建立网络连接之前应当满足的关于当前连接上下文的谓词。此类示例性条件包括限制何时准许网络连接的连接条件、将网络连接的建立限制在满足指定资源要求的网络节点的条件、将网络连接的建立限制在满足指定节点配置要求的网络节点的条件、将网络连接的建立限制在满足指定网络节点位置要求的网络节点的条件、以及将网络连接的建立限制在满足指定连接目标可用性要求的时间的条件。其他连接条件包括关于虚拟区域的实例化行为的条件(例如,每次运行软件应用时应当实例化虚拟区域模式的新实例)、以及关于查询结果所应当被处置的方式的条件 (例如,在图形界面中将结果呈现给用户或者只有在响应于查询返回了单个所标识的连接目标时才自动连接至连接目标)。取决于操作环境的实现,可通过各种不同的功能和服务来添加、修改、或删除连接对象及其组成连接规则。例如,在一些实施例中,连接规则可通过软件应用开发者、本地系统管理员、最终用户、PRT框架12、或网络基础设施服务环境43中的一个或多个网络基础设施服务来添加、修改、或删除。IV.系统架构A.概览1.引言通信者通常从网络节点连接到网络42 (参见图1),网络节点通常由通用计算机系统或专用通信计算机系统(或诸如网络使能的视频游戏控制台等的“控制台”)来实现。网络节点执行建立与其他网络节点的实时数据流连接的通信过程且通常执行呈现用户所进入的每个虚拟区域的视图的视觉化呈现过程。在一些实施例中,多个通信者可共享单个网络节点。图10示出了由计算机系统120实现的网络节点的实施例,该计算机系统120包括处理单元122、系统存储器124、和将处理单元122连接至计算机系统120的各种组件的系统总线126。处理单元122可包括一个或多个数据处理器,每个数据处理器可以是任一
21种商业上可用的计算机处理器的形式。系统存储器1 可包括存储包含计算机系统120的启动例程的基本输入/输出系统¢10 的只读存储器(ROM),并还可包括随机存取存储器 (RAM)。系统总线1 可以是存储器总线、外围总线或本地总线,并且可与任何总线协议(包括PCI、VESA、MicroChannel、ISA和EISA)兼容。计算机系统120还包括连接至系统总线 126并包含一个或多个提供对数据、数据结构和计算机可执行指令的非易失或持久存储的计算机可读介质盘的持久存储存储器128(例如,硬盘驱动器、软盘驱动器、CD ROM驱动器、 磁带驱动器、闪存设备、以及数字视频盘)。用户可使用一个或多个输入设备130(例如,一个或多个键盘、计算机鼠标、话筒、 摄像头、操纵杆、物理运动传感器(诸如Wii输入设备)、以及触摸垫等)与计算机系统120 交互(例如,输入命令或数据)。信息可通过在显示监视器132上呈现给通信者的图形用户接口(⑶I)来呈现,这由显示控制器134控制。计算机系统120还可包括其他输入/输出硬件136(例如,外围输出设备,诸如扬声器和打印机)。计算机系统120通过网络适配器 138(也称为“网络接口卡”或NIC)连接至其他网络节点138、140、142。若干程序模块可被存储在系统存储器124中,包括操作系统(0 144(例如,可向美国华盛顿雷蒙德的微软公司购买的Windows XP 操作系统)、PRT框架12、驱动程序 146 (例如,⑶I驱动程序)、网络协议148、PRT知晓型软件应用150、通过垫片巧4连接至 PRT框架12的PRT无知型软件应用152、以及数据(例如,输入数据、输出数据、程序数据、 注册表156、以及连接规则32)。在一些实施例中,垫片IM是通过扩展模块(例如,插件) 或宏来实现的。2.操作系统操作系统144通过提供用于创建计算机系统120上的运行时执行环境的基础操作系统服务来主存软件应用。通常由操作系统提供的示例性类型的服务是资源管理、文件管理、安全性、认证、验证、通知、以及用户接口(例如、窗口化、菜单、对话等)。与计算机系统120的资源(例如,存储器、处理器、以及I/O设备)的管理有关的服务通常由内核实现。文件管理可由内核实现、或可由单独的文件系统管理器(例如,在一些Microsoft Windows 操作系统中提供的可安装文件系统)实现。在打开文件(例如, 计算机数据文件或软件应用文件)的过程中,文件系统管理器通常调用适当的文件系统驱动程序,该文件系统驱动程序查找映射出文件在磁盘上的存储位置的该文件在数据库(例如,文件分配表格,诸如FAT、FAT98、VFAT、MFT以及⑶FS)中的磁盘存储位置。其他操作系统功能(诸如安全性、认证、验证、通知、以及用户接口)可由操作系统的一个或多个其他组件(例如,一些Microsoft Windows 操作系统中的执行服务层)提供。通常由内核提供的示例性类型的服务是进程管理、存储器管理、设备管理、以及系统调用处置。进程管理包括运行应用并向计算机系统的硬件组件提供应用编程接口(API)。 在运行软件应用的过程中,内核通常在存储器中建立用于该软件应用的地址空间、在该地址空间中加载包含该软件应用代码的文件、以及执行加载的软件应用代码。存储器管理涉及管理软件应用对系统存储器1 的访问。设备管理涉及提供通过设备驱动程序对硬件设备的访问。系统调用处置涉及向用户模式软件应用提供显露内核服务的API。通过调用该 API (例如,通过进程间通信机制和系统调用),软件应用可向内核请求服务、传递参数、以及接收响应于请求由服务生成的结果。
22
操作系统144通常将硬件和软件配置信息、用户偏好、以及设置信息存储在注册表156中。例如,注册表156通常包含以下信息引导和配置系统所需的参数;控制操作系统144的操作的系统范围的软件设置;安全数据库、以及每用户简档设置。在一些实施例中,连接规则32被存储在注册表156而非单独的数据库中。3.网络协、议网络协议148控制或使能计算机系统120和其他网络节点之间的连接、通信、和数据传递。示例性的网络协议类型包括传输控制协议/网际协议(TCP/IP)、用户数据报协议 /网际协议(UDP/IP)、和实时传输协议(RTP)。TCP/IP包括TCP部分和IP部分。协议的TCP部分提供通过将消息分裂成较小分组、在通信网络另一端重新装配分组、以及重新发送任何在路上丢失的分组来提供传输功能。协议的IP部分通过向数据分组分配目的地网络的地址以及目的地网络上的目的节点的地址来提供路由功能。使用TCP/IP传递的每个数据分组包括包含TCP和IP信息的头部。 IP不向通信栈的上层提供分组递送的保证。另一方面,TCP以有保证的按序分组递送提供面向连接的、端对端传输服务。这样,TCP协议提供可靠的传输层连接。在不要求可靠递送的条件下可以使用UDP来代替TCP。例如,在由于没有时间重传或者整体数据质量的任何降级是可接受的原因而简单地忽略丢失的数据分组的情况下,可将UDP/IP用于实时音频和视频话务。RTP定义用于通过网络连接递送音频和视频的标准化分组格式。各种网络协议可被用于在网络节点之间传送和接收RTP数据,包括对等连网框架、单独使用TCP插口或与 UDP连用的中央服务器、以及多播协议。4.设备驱动程序设备驱动程序146通常由使其他软件应用(例如,用户模式软件应用和操作系统) 与连接至计算机系统120的硬件设备交互的软件应用实现。设备驱动程序通常为可被其他软件应用调用的功能提供API,以便转换在软件应用和硬件设备之间传递的命令和数据。5. PRT 框架PRT框架12包括PRT API和PRT内核。PRT API显露显著降低在其中网络节点之间的实时连接是遍布式的新操作环境范例中开发实时软件应用所需的精力和时间的高级功能。这些功能中的一些功能使用计算机数据文件和软件应用的至少一者中的位置来控制对虚拟区域的连接、虚拟区域的进入、对通信者和实时数据流的其他源或阱的连接、以及与通信者及网络资源和服务有关的存在性数据的确定。PRT内核包括控制计算机系统120和其他网络节点138、140、142之间的实时数据流的交换的服务。在一些实施例中,PRT内核还包括控制虚拟区域和该虚拟区域中的对象的相应视图在显示监视器132上的呈现的进程。在这一点上,PRT内核与同驱动程序148通信的操作系统功能接口以转换来往于显示控制器134和用户输入130的命令和数据,从而呈现虚拟区域的视图并允许通信者控制在该虚拟区域中的交互。PRT API和PRT内核的实现包括并不限于任何特定的硬件、固件、或软件配置的一个或多个分立模块或分立库(例如,动态链接库)。一般来说,这些模块可在任何计算或数据处理环境中实现,包括在数字电子电路(例如,应用专用集成电路,诸如数字信号处理
23器(DSP))中或在计算机硬件、固件、设备驱动程序、或软件中。在一些实施例中,模块的功能性被组合进单个数据处理组件中。在一些实施例中,一个或多个模块的每一者的相应功能性由多个数据处理组件的相应集合执行。在一些实现中,用于实现PRT API和PRT内核的实施例所执行的方法的进程指令(例如,计算机可读代码,诸如计算机软件),以及它们生成的数据被存储在一个或多个计算机可读介质上。适用于有形地表达这些指令和数据的存储设备包括所有形式的非易失性计算机可读存储器,包括例如半导体存储设备(诸如 EPROM、EEPROM和闪存设备)、磁盘(诸如内部硬盘和可移动硬盘)、磁光盘、DVD-ROM/RAM以及 CD-ROM/RAM。6.示例性系统级功能性PRT框架12与网络基础设施服务环境43协作以管理计算机系统120与其他网络节点138、140、142之间的网络连接。在管理网络连接的过程中所涉及的示例性系统级功能性有登录网络基础设施服务环境43和执行基于连接规则的PRT框架操作,后者包括经由会合服务48和区域服务46中的至少一者来确定虚拟区域的实例和查明连接目标。a.登录网络基础设施服务环境在一些实施例中,一旦每次启动PRT框架12就执行关于网络基础设施服务环境43 的认证。该认证过程通常基于在该PRT框架12被安装在计算机系统120上时安全地发给用户的凭证。该凭证通常是由证书机构签发的证书。该证书包含私钥和公钥。PRT框架12 创建仅包含该公钥的新凭证并将该私钥安全地存储在计算机系统120上。计算机PRT框架 12使用该私钥创建签名以加密用户提供的口令的摘要,并将该签名传送给安全服务44。安全服务44恢复该摘要并将其存储为该用户的标识秘密。图11示出了在安全服务44已接收到该用户的标识秘密之后PRT框架12登录到网络基础设施服务环境43的方法的实施例。根据此方法,PRT框架12建立与安全服务44 的会话,并将用户的凭证发送给安全服务44(图11,框160)。安全服务认证接收自PRT框架12的凭证(图11,框162)。若用户的凭证通过认证,则安全服务向PRT框架12发送认证令牌;否则,安全服务通知PRT框架12该认证失败(图11,框164)。若认证失败(图11, 框166),则PRT框架12通知该用户并且登录过程停止(图11,框168)。若对用户凭证的认证成功(图11,框166),则PRT框架12验证接收自安全服务44的令牌(图11,框170)。 若令牌有效(图11,框170),则PRT框架在继续行动之前等待软件应用或操作系统调用对 PRT API的调用(图11,框172)。在经过核实之后,安全服务令牌可以向任何网络基础设施服务对用户进行认证。在一些实施例中,PRT框架12可以在等待PRT API的调用的同时执行后台任务(例如,高速缓存交互数据和其他资源从而提高PRT框架12在管理连接和执行其他任务时的响应性)。b.基于连接规则的PRT框架操作i.概览连接规则可以与关于软件应用和计算机数据文件的至少一者所定义的交互空间中的至少一个相应区段的定义相关联。PRT框架可至少部分基于关于该交互空间中的该至少一个区段的当前焦点确定连接规则,并随后根据该连接规则来关于一个或多个网络节点发起一个或多个实时数据流的传递。在这些实施例中,PRT框架12通过通常包括对软件应用和计算机数据文件的至少一者中的位置的定义的PRT API调用来调用。位置定义可以由例如PRT知晓型软件应用来提供,该PRT知晓型软件应用确定用户关于由软件应用和计算机数据文件的至少一者所定义的交互空间的当前焦点。替换地,位置定义可以由操作系统服务(例如,程序加载器服务或文件管理器服务)来提供,该操作系统服务从与软件应用和计算机数据文件的至少一者相关联的元数据(例如,在软件应用文件的头部中或者在与计算机数据文件相关联的文件属性数据库中)或从控制窗口化环境的操作系统的用户接口服务确定位置定义。图12示出了由PRT框架12响应于包括软件应用和计算机数据文件的至少一者中位置定义的PRT API所实现的方法的实施例。根据此方法,PRT框架12检索与该软件应用和该计算机数据文件的至少一者相关联的一条或多条连接规则(图12,框174)。在一些实施例中,PRT框架12从连接对象关联数据库106(参见图8)中查询与该软件应用或计算机数据文件中对应于包含在该PRT API 呼叫中的该位置定义的区段相关联的至少一个连接对象的标识符。PRT框架12从连接对象数据库108(参见图8)中检索对应该连接对象标识符的连接对象,并确定在该连接对象中定义的至少一条连接规则。如上文所解释的,连接规则指定虚拟区域和连接目标中的至少一者,并且可包括指导适当配置的软件应用或服务在管理网络连接时的行为的一个或多个任选的连接条件。 若在连接规则中指定了虚拟区域,则PRT框架12基于该虚拟区域指定来确定虚拟区域实例 (图12,框176)。PRT框架12根据连接规则查明一个或多个连接目标(图12,框178)。例如,连接目标可通过其在连接规则中的指定或者通过其与虚拟区域实例的关联来查明(例如,所查明的连接目标是那些与当前处在该虚拟区域实例中的对象相关联的目标)。若连接规则指定一个或多个连接目标而未指定虚拟区域,则PRT框架12通常经由会合服务48来查明连接目标。若连接规则指定虚拟区域,则PRT框架12通常经由区域服务46和会合服务48中的一者或两者来查明连接目标。在已经查明连接目标之后,PRT框架12发起与这些连接目标中的一个或多个的相应实时数据流连接(图12,框180)。ii.经由会合服务查明连接目标图13示出了在通过会合服务48连接至连接目标的过程中PRT框架12所实现的方法的实施例。根据图13的方法,PRT框架12将连接规则中对至少一个连接目标的指定解析为至少一个相应节点连接句柄(图13,框18 。在此过程中,PRT框架12用接收自安全服务 44的令牌向会合服务48对用户进行认证。在该用户已经过认证之后,PRT框架12建立与会合服务48的会话。PRT框架12随后向会合服务48传送对与连接规则中的连接目标指定相对应的每个连接目标的相应连接句柄的请求。会合服务48标识对应连接目标指定的一个或多个连接目标。若连接规则以目标标识符指定具体连接目标,则会合服务48从存在性数据库中查询对应所指定的目标标识符的连接目标的状态和能力要求。若连接规则以一个或多个属性值的集合来指定连接目标,则会合服务48从存在性数据库中查询与具有匹配所指定的属性值的属性值的连接目标相关联的状态和能力要求。会合服务48将该用户的能力与关联于所标识的连接目标中的每个连接目标的能力要求相比较。会合服务48向PRT框架12传送所标识的连接目标中其能力要求得到满足的每个连接目标的相应连接句柄。在从会合服务48接收到查询结果之后,PRT框架12确定连接规则中所包含的任何连接条件的适用性。例如,连接规则可包括关于会合服务48返回的查询结果所应被处置的方式的条件。例如,连接条件可指定PRT框架12应在图形界面中向用户呈现结果以使得用户能选择匹配的连接目标当中他或她想要与其通信的一个或多个连接目标。在另一示例中,连接条件可指定PRT框架12应自动连接至其连接句柄在查询结果中被返回的连接目标。连接规则还可包括描述在进行网络连接之前应当满足的关于当前连接环境的谓词的连接条件。此类示例性条件包括限制何时准许网络连接的连接条件、将网络连接的建立限制在满足指定资源要求的网络节点的条件、将网络连接的建立限制在满足指定节点配置要求的网络节点的条件、将网络连接的建立限制在满足指定网络节点位置要求的网络节点的条件、以及将网络连接的建立限制在满足指定连接目标可用性要求的时间的条件。回顾图13,在将对连接目标的指定解析为至少一个相应连接句柄(图13,框182) 之后,PRT框架12经由依照连接规则中所指定的任何适用的连接条件的、与关联于该连接句柄的网络节点的至少一个网络连接发起至少一个实时数据流的传递(图13,框184)。如上文所解释的,PRT框架12和其他网络节点之间的连接可以是对等连接或服务器仲裁的连接。关于对等连接,连接目标网络节点和PRT框架12通常彼此认证,并且随后建立链路,经由该链路向或从该连接目标传送至少一个实时数据流。链路通常是单向的且由发射方请求并被接收方接受或拒绝。iii.经由区域服务查明连接目标图14示出了在通过区域服务46连接至虚拟区域的过程中PRT框架12所实现的方法的实施例。根据图14的方法,PRT框架12基于连接规则中对虚拟区域的指定来确定虚拟区域的实例(图14,框186)。在此过程中,PRT框架12通过用户接收自安全服务44的令牌向区域服务46对用户进行认证。在该用户已经过认证之后,PRT框架12建立与区域服务46 的会话。PRT框架12随后向区域服务46传送对连接至连接规则中所指定的该虚拟区域的实例的请求。区域服务46确定与连接规则中对虚拟区域的指定对应的虚拟区域的实例。此过程通常取决于指定虚拟区域的方式(例如,通过模式标识符、虚拟区域实例标识符、或通过一个或多个查询属性)。若连接规则通过对模式标识符的参引来指定虚拟区域,则区域服务46检索对应该模式标识符的模式,并创建具有相关联的虚拟区域实例标识符的所检索模式的实例。若用户的能力满足与该虚拟区域实例相关联的能力要求,则区域服务46向PRT框架12返回配置数据。该配置数据通常包括该虚拟区域实例的定义以及当前在该虚拟区域实例中的对象的注册。若连接规则通过对实例标识符的参引来指定虚拟区域,则区域服务46确定所标识的虚拟区域实例的状态。若该虚拟区域实例可用(例如,当前正运行)并且该用户的能力满足与该虚拟区域实例相关联的能力要求,则区域服务46向PRT框架12返回配置数据, 其中该配置数据通常包括该虚拟区域实例的定义以及当前处在该虚拟区域实例中的对象的注册。若该虚拟区域实例不可用(例如,该虚拟区域实例当前没有运行或者不能接受任
26何新通信者)但该用户的能力满足与该虚拟区域实例相关联的能力要求,则区域服务46可基于该原始实例的模式创建该虚拟区域的新实例并向PRT框架12返回配置数据,其中该配置数据包括该新虚拟区域实例的定义和当前处在该新虚拟区域实例中的对象的注册。若连接规则用一个或多个查询属性值的集合来指定虚拟区域,则区域服务46向交互服务50传送查询交互数据库中所有具有与所指定的属性值匹配的属性的虚拟区域实例的请求。区域服务46确定与在交互服务50所返回的查询结果中标识的虚拟区域实例相关联的状态和能力要求。区域服务46向PRT框架12传送所标识的虚拟区域中其能力要求得到满足的每个虚拟区域的相应标识符。在从区域服务46接收到查询结果之后,PRT框架 12确定连接规则中所包含的任何连接条件的适用性。例如,连接规则可包括关于区域服务 46返回的查询结果所应被处置的方式的条件。例如,连接条件可指定PRT框架12应在图形界面中向用户呈现结果以使得用户能选择匹配的虚拟区域实例当中他或她想要进入哪一个。在另一示例中,连接条件可指定PRT框架12应让用户自动进入这些虚拟区域实例当中基于指定准则(例如,最经常到访)的一个虚拟区域实例。回顾图14,在确定虚拟区域实例(图14,框186)之后,PRT框架12查明与该虚拟区域的实例相关联的一个或多个网络节点(图14,框188)。在此过程中,PRT框架12读取接收自区域服务46的对象注册,以确定与当前处在该虚拟区域实例中的对象相关联的网络节点。在一些实施例中,PRT框架12还如在先前小节中描述的经由会合服务48查明与连接规则中所指定的连接目标相关联的网络节点。PRT框架12在该虚拟区域的实例所定义的上下文中经由与所查明的网络节点中的至少一个网络节点的至少一个网络连接发起至少一个实时数据流的传递(图14,框 190)。PRT框架12和其他网络节点之间的连接可以是对等连接或服务器仲裁的连接。关于对等连接,连接目标网络节点和PRT框架12通常彼此认证,并且随后建立链路,经由该链路向或从该连接目标传送至少一个实时数据流。链路通常是单向的且由发射方请求并被接收方接受或拒绝。如上所解释的,每个实时数据流连接的发起都依照在连接规则中所指定的任何适用的连接条件。例如,连接规则可包括描述在进行网络连接之前应当满足的关于当前连接上下文的谓词的连接条件。此类示例性条件包括限制何时准许网络连接的连接条件、将网络连接的建立限制在满足指定资源要求的网络节点的条件、将网络连接的建立限制在满足指定节点配置要求的网络节点的条件、将网络连接的建立限制在满足指定网络节点位置要求的网络节点的条件、以及将网络连接的建立限制在满足指定连接目标可用性要求的时间的条件。B.示例性系统架构实施例1.引言图15示出了图10的操作环境的实施例,其包括计算机系统120的实施例200和网络节点140的实施例202。网络节点202(节点C)主存区域服务46。区域服务46维护全局状态信息,并且网络节点202充当网络节点200、138、142的数据服务器。区域服务46所维护的全局状态信息有虚拟区域的当前描述204、虚拟区域中的对象的当前注册206、以及当前正由网络节点 202生成的任何流混合的列表208。
对象注册206通常包括针对虚拟区域中的每个对象的相应对象标识符(例如, 唯一标识该对象的标签)、使得能建立与关联于该对象的网络节点的网络连接的连接句柄 (例如、URI,诸如IP地址)、以及标识与该对象相关联的实时数据源和阱(例如,与该对象相关联的网络节点的源和阱)的接口数据。对象注册206还通常包括针对每个对象的一个或多个任选角色标识符,该任选角色标识符可由通信者或区域服务46明确指派给对象,或者可从对象的其他属性中推断出。在一些实施例中,对象注册206还包括每个对象在虚拟区域中的当前位置,这由区域服务46从对接收自与虚拟区域中的对象相关联的网络节点的实时运动数据流的分析中确定。在这一点上,区域服务46从与虚拟区域中的对象相关联的网络节点接收实时运动数据流、并基于运动数据来跟踪进入虚拟区域、离开虚拟区域和在虚拟区域中来回走动的通信者的化身和其他对象。区域服务46根据被跟踪对象的当前位置来更新对象注册206。计算机系统200包括PRT框架12的实施例210。除了其他功能以外,PRT框架210 还管理与其他网络节点的实时数据流连接。在此过程中,PRT框架210维护包括接口数据 212、地带列表214以及当前处在虚拟区域中的对象的位置216的配置数据集。针对与计算机系统200相关联的每个对象,接口数据212包括与该对象相关联的实时数据流类型的所有源和阱的相应列表。地带列表214是当前被与计算机系统200相关联的化身占据的虚拟区域中的所有地带的注册。当用户首次进入一虚拟区域时,PRT框架210通常用从网络节点202下载的位置初始化信息来初始化当前对象位置数据库216。此后,PRT框架210用从对接收自例如计算机鼠标218和网络节点138、202、142中的一者或多者的实时运动数据流的分析所确定的虚拟区域中对象的当前位置来更新当前对象位置数据库216。PRT框架210 所维护的配置数据还分别包括对象注册206、流混合列表208、以及虚拟区域规范204的副本220、222、224 ;这些副本220、220、和222通常是从区域服务46下载而来并且表示这些数据的本地高速缓存。在一些实施例中,对象位置216被纳入到对象注册220中。2.操作系统图16示出操作系统144的实施例230。操作系统230包括OS API 2;34和OS内核236。OSAPI 2;34显露由操作系统230 所提供的功能,包括文件管理器服务238、用户接口服务M0、以及由OS内核236的服务所提供的功能。文件管理器服务238管理存储和检索与计算机数据文件和软件应用文件相关联的文件和元数据(例如,文件属性)。用户接口服务240管理窗口化环境,包括对话框和图形在显示器132上的呈现。在图16中所示的说明性环境中,OS内核236包括程序加载器服务M2、设备管理器服务M4、和存储器管理器服务M6。程序加载器服务242管理软件应用的执行(例如,将软件应用的至少一个可执行件加载到存储器中、准备该可执行件以供执行、以及执行该备好的可执行件)。设备管理器服务244管理通过设备驱动程序对硬件设备的访问。存储器管理器服务246管理对计算机系统存储器IM和持久存储存储器1 的访问。3. PRT 框架a.引言图16还示出PRT框架12的实施例232。PRT框架232包括PRT API 250、PRT非内核服务的集合、以及包括PRT内核服务的集合的PRT内核252。PRT API 250显露PRT框架232所提供的所有服务。PRT非内核服务包括连接对象管理器服务253、区域连接服务254、区域进入服务255、目标连接服务256、以及输出存在性服务沈0。在实施其相应功能性的过程中,PRT非内核服务2M-260还能够根据需要调用PRT内核252和操作系统230的服务。PRT内核服务包括登录管理器服务沈2、 会话管理器服务264、流交换服务沈6、流处置器服务沈8、实时调度器服务270、视觉化引擎服务272、以及带宽监视器服务274。在执行其相应功能时,PRT内核服务沈2_274也能调用操作系统250的服务。服务254-274中至少一些的实现涉及将传统操作系统功能(例如, 进程管理功能、文件管理功能、存储器管理功能、存储管理功能、设备管理功能、和网络管理功能)与内核所提供的实时功能(例如,实时调度功能、实时连接功能、和实时数据流处置功能)相集成。这样,实时原语和传统操作系统原语以对等关系被显露给软件应用开发者。b. PRT内核服务每次PRT框架232启动(通常是在计算机系统200启动时),登录管理器服务262 实现登录到网络基础设施服务环境43的过程。在一些实施例中,登录管理器服务262如上文结合图1所描述地通过安全服务44来执行登录网络基础设施服务环境43的功能。登录管理器服务262通常还处置网络基础设施服务环境43的退出。会话管理器服务264管理计算机系统120与其他网络节点中的目标网络节点之间的会话。响应于会话管理器服务264的调用(通过进程间通信机制或通过系统呼叫),会话管理器服务264与该目标网络节点协商链路。在此过程中,会话管理器服务264通常向该目标网络节点对该用户进行认证(例如,基于接收自安全服务44的安全令牌),协商流传输协议、并协商流加密协议。会话管理器服务264与目标网络节点之间的消息传输可以根据各种不同的消息接发范例来执行。在一些实施例中,消息是根据发布/订阅模型来异步地交换的,其中消息被分段成类、订户表达对一个或多个消息类的兴趣、并且发布者仅传送对应被订阅的类的消息。在一些实施例中,会话管理器服务264还可提供用于重新建立不正常中断的连接的连接恢复机制。流交换服务266根据虚拟区域所定义的交换规则来管理网络连接的交换。流交换服务266处置与计算机系统200相关联的化身和任何其他对象进出虚拟区域。流交换服务 266还自动确定如何交换(例如,路由、连接和断开)计算机系统200与其他网络节点138、 202,142之间的实时数据流。流交换服务266基于虚拟区域规范中包含的交换规则、虚拟区域中化身和其他对象的当前位置、以及与虚拟区域中的化身和其他对象相关联的实时数据流类型来作出这些确定。在这些实施例中,流交换服务266还在这些确定中考虑计算机系统200(如由带宽监视器服务274确定的)和其他网络节点138、202、142中任何一者的上载及下载带宽约束。另外,流交换服务266响应于事件(例如,上载或下载带宽故障、和进入或退出虚拟区域的请求)、或周期性地、或者既响应于事件又周期性地来重新评估当前的连接集合。作为对当前连接重新评估的结果,流交换服务266可例如采取以下动作中的任何动作向网络节点202请求流混合,丢弃来自网络节点202的流混合、断开与其他网络节点138、142中的一个或多个节点的一个或多个直接链路、或者形成与其他网络节点138、 142中的一个或多个节点的一个或多个直接链路。流处置器服务268包括用于处理在计算机系统200和其他网络节点之间传递的每种类型的实时数据流(例如,运动数据流、音频数据流、聊天数据流、文件传递数据流、以及视频数据流)的相应流处置器服务。实时数据流处理通常包括对实时数据流施加变换。在一些实施例中,当实时数据流正在共享虚拟区域的上下文中进行处理时,流处置器服务268 根据虚拟区域规范所定义的流处理配置来处理该实时数据流。在一些实施例中,流处置器服务沈8中的一个或多个服务包括根据虚拟区域规范所定义的流处理配置将流处理对象的集合装配成有向图的管理器。一些实施例包括聊天流处置器服务,该服务提供用于接收自计算机系统200的本地文字输入设备(例如,键盘)的传出文本消息的接口和用于接收自其他网络节点138、 202、142的传入聊天流的接口。聊天流处置器服务处理由通信者通过文字输入设备输入到实时聊天流中的文本消息并将该实时聊天流传给设备管理器服务对4,后者将该聊天流转换成可经由网络42被传送给其他网络节点138、202、142的格式。聊天流处置器服务还处理传入的文本流并将经处理的文本流传给设备管理器服务M4,后者将该文本流转换成可在显示监视器132上呈现的信号。一些实施例包括处理接收自其他网络节点138、202、142的传入音频信号的音频流处置器服务。音频流处置器服务将经处理的传入音频信号传给设备管理器服务M4,后者将音频信号转换成可由通信者的耳机观2中的扬声器278、280呈现的格式。音频流处置器服务还处理由耳机282中的话筒284生成的传出音频信号。音频流处置器服务将经处理的传出音频信号传给设备管理器服务M4,后者将音频信号转换成可经由网络42被传送给其他网络节点138、202、142的格式。一些实施例包括处理接收自其他网络节点138、202、142的传入视频信号的视频流处置器服务。视频流处置器服务将经处理的传入视频信号传给设备管理器服务M4,后者将视频信号转换成可由显示器132以及通信者的耳机282中的扬声器278、280呈现的格式。视频流处置器服务还处理例如由附连到计算机系统200的本地相机生成的传出视频信号。视频流处置器服务将经处理的传出视频信号传给设备管理器服务M4,后者将视频信号转换成可经由网络42被传送给其他网络节点138、202、142的格式。一些实施例包括处理接收自其他网络节点138、202、142的传入运动数据信号的运动数据流处置器服务。运动数据流处置器服务将经处理的传入运动数据信号传给视觉化引擎服务272。视觉化引擎服务272利用运动数据信号更新显示器132上共享虚拟区域通信会话的呈现。运动数据流处置器服务还处理由用户输入设备生成的传出运动数据信号。 运动数据流处置器服务将经处理的传出运动数据信号传给设备管理器服务对4,后者将运动数据信号转换成可经由网络42被传送给其他网络节点138、202、142的格式。一些实施例包括处理接收自其他网络节点138、202、142的文件信号的文件传递流处置器服务。文件传递流处置器服务将经处理的文件信号传给存储器管理器服务M6,后者将文件信号转换成可在持久存储存储器1 中存储的格式。文件流处置器服务还调用存储器管理器服务M6以从持久存储存储器1 检索计算机数据文件、将该计算机数据文件处理成文件信号流、并将经处理的文件信号传给设备管理器服务M4,后者将该文件信号转换成可经由网络42传送给其他网络节点138、202、142的格式。视觉化引擎服务272在显示监视器132上呈现对该虚拟区域及该虚拟区域中任何对象的视图。在此过程中,视觉化引擎服务272读取虚拟区域规范数据224、对象注册220、 以及当前对象位置数据库216。在一些实施例中,视觉化引擎服务272还读取包含呈现通信者在虚拟区域中的化身所需要的图像的通信者化身数据库对8。基于此信息,视觉化引擎服务272以虚拟区域内通信者化身的视点(位置和取向)生成虚拟区域和该虚拟区域内的对象的一维、二维或三维表示(即,图像)。视觉化引擎服务272随后将虚拟区域的表示传给操作系统230的设备管理器服务M4,后者控制虚拟区域的图像在显示监视器132上的呈现。在一些实施例中,视觉化引擎服务272确定通信者的化身的可视性以将必须交换、处理和呈现的数据量限于该虚拟区域在显示监视器132上可见的那部分。用户可通过从输入设备(例如,计算机鼠标218)向操作系统230的用户接口服务 240传送命令来控制所呈现的虚拟区域的视图或化身在虚拟区域中的位置。视觉化引擎服务272根据当前对象位置数据库216中经更新的位置来更新虚拟区域的视图和虚拟区域中对象的位置,并重新呈现虚拟区域的图形表示的经更新版本以在显示监视器132上进行呈现。视觉化引擎服务272可周期性地或者仅响应于虚拟区域中一个或多个对象的移动来更新所呈现的图像。实时调度器服务270管理其他PRT内核服务(例如,流处置器服务)所执行的任务的调度,以达成实时性能。例如,在一些实施例中,实时调度器服务270至少部分基于处理性能与性能目标之间的比较来调度任务。在一些实施例中,实时调度器服务270是由管理PRT框架任务的执行的内核模式或驱动程序进程来实现的。在一些实施例中,实时调度器服务270另外以提供确定性执行和阻挡时间的方式管理操作系统任务(例如,调度和存储器管理)以及同步原语(例如,信号量以及信号和消息传递机制)的执行。在一些实施例中,实时调度器服务270根据基于优先级或基于比例共享的调度模型在一个或多个执行的软件应用之间基于其相应的资源要求来复用计算机系统200的资源。在这些实施例中,每个资源通常与控制任务访问该资源的顺序的相应调度器相关联。此类示例性调度器包括复用对处理单元122中的一个或多个处理器的访问的处理器调度器、 复用持久存储存储器128的带宽的存储器调度器、以及复用网络适配器138的链路带宽的网络调度器。全局调度器通常设置诸个体调度器的策略。在一些实施例中,实时调度器服务270是由尽其所能满足实时软件应用期限但不保证实时软件应用将满足这些期限的尽力型实时调度进程来实现的。在这些实施例中的一些实施例中,实时调度器服务270用作获得高优先级线程并尝试通过一个或多个流处置器服务268来保证指定的处理速率(例如,目标帧速率)的用户模式进程。在这些实施例中的一些实施例中,实时调度器服务270监视由流处置器服务268之一所执行的至少一个处理任务的性能,并至少部分基于关于固定或自适应性能目标所测得的性能来调度该些处理任务。例如,实时调度器服务270可自适应地修改所监视的流处置器服务的配置以满足向设备驱动程序(例如,音频驱动程序)递送的数据的目标帧速率。c. PRT非内核服务在图16中所示的说明性环境中,PRT框架232的非内核服务包括连接对象管理器服务253、区域连接服务254、区域进入服务255、目标连接服务256、以及输出存在性服务 2600连接对象管理器服务253提供用于响应于PRT API调用来管理连接对象和实例化连接对象的功能。区域连接服务邪4提供用于连接至虚拟区域的功能。区域进入服务255提供用于进入虚拟区域的功能。目标连接服务256提供用于连接至连接目标的功能。输出存在性服务260提供用于向其他网络节点输出存在性信息的功能。PRT非内核服务中的每个服务通常可由来自软件应用、其他PRT框架服务、以及操作系统服务中的任何一者的调用来调用。PRT框架232的非内核服务所提供的功能在以下小节中描述。i.管理连接对象连接对象管理器服务253提供用于管理连接对象的功能,包括添加连接对象、修改连接对象、以及删除连接对象。在这一点上,连接对象管理器服务253通过调用操作系统 230的用户接口服务240以创建允许用户(例如,通信者或本地系统管理员)添加、修改、和删除连接对象及其与计算机数据文件和软件应用的相应关联的对话框及类似物来响应对 PRT API250的一些连接对象管理相关的软件应用调用。在一些实施例中,软件应用可包括允许用户管理与计算机数据文件(例如,由桌面发布软件应用产生的文档文件)或软件应用的区段相关联的连接对象的工具。这些工具可包括用于将新连接对象实例与该计算机数据文件或软件应用相关联的命令、用于修改与该计算机数据文件或软件应用相关联的连接对象实例的命令、和用于删除与该计算机数据文件或软件应用相关联的连接对象实例的命令。响应于选择将新连接对象实例与该计算机数据文件或软件应用的区段(例如,对应于用户的当前注意力焦点的区段)相关联的命令,软件应用对PRT API 250作出调用连接对象管理器服务253的调用。连接对象管理器服务253实例化一新连接对象实例,并通过在连接对象关联数据库中创建由所指定区段的标识符和该计算机数据文件或软件应用的标识符进行索引的记录而将该新连接对象实例与该计算机数据文件或软件应用的该所指定区段相关联。该连接对象可以是与该调用软件应用或计算机数据文件相关联的默认连接对象的实例,或者可以是在PRT API调用中指定的特定连接对象。在实例化该新连接对象实例之后,连接对象管理器服务253调用用户接口服务MO以创建允许用户指定该连接对象实例的属性的值的对话框。响应于选择修改与该计算机数据文件或软件应用的区段(例如,对应于用户的当前注意力焦点的区段)相关联的连接对象实例的命令,软件应用对PRT API 250作出调用连接对象管理器服务253的调用。连接对象管理器服务253查询将该计算机数据文件或软件应用的每个区段与至少一个相应连接对象实例相关联的连接对象关联数据库。该查询返回连接对象实例标识符。连接对象管理器服务253实例化对应该连接对象标识符的连接对象实例。在实例化该连接对象实例之后,连接对象管理器服务253调用用户接口服务240 以创建允许用户添加、修改、或删除该连接对象实例的属性的值的对话框。响应于选择删除与该计算机数据文件或软件应用的区段(例如,对应于用户的当前注意力焦点的区段)相关联的连接对象实例的命令,软件应用对PRT API 250作出调用连接对象管理器服务253的调用。连接对象管理器服务253查询将该计算机数据文件或软件应用的每个区段与至少一个相应连接对象实例相关联的连接对象关联数据库。该查询返回对应于与该计算机数据文件或软件应用的该区段相关联的连接对象实例的连接对象标识符。连接对象管理器服务253调用用户接口服务MO以创建确认用户删除所标识的连接对象实例的意图的对话框。ii.基于计算机数据文件或软件应用中的位置来处置关于实时连接的PRT API调用
连接对象管理器服务253通常还处置来自软件应用和操作系统服务(例如,程序加载器服务242和文件管理器服务238)的包含计算机数据文件或软件应用中的指定位置的初始PRT API调用。在此过程中,连接对象管理器服务253查询将该计算机数据文件或软件应用的每个区段与至少一个相应连接对象实例相关联的连接对象关联数据库。该查询返回对应于与在该PRT API调用中所指定的该计算机数据文件或软件应用中的该位置相关联的连接对象实例的连接对象标识符。连接对象管理器服务253实例化对应该连接对象标识符的连接对象实例。在实例化该连接对象实例之后,连接对象管理器服务253调用根据所实例化的连接对象实例的属性值建立与虚拟区域或连接目标的连接的其他PRT服务中的一个或多个服务。iii.连接至虚拟区域图17示出由PRT框架232的区域连接服务2M响应于请求连接至虚拟区域的PRT API调用实现的方法的实施例。根据图17的方法,区域连接服务2M确定对虚拟区域的指定(图17,框四0)。在一些实施例中,区域连接服务254由软件应用、操作系统服务、和PRT框架服务中的任意一者用包括虚拟区域指定的PRT API调用进行调用。例如,连接对象管理器服务253可用包括连接对象管理器服务253从与计算机数据文件或软件应用相关联的连接对象的实例提取出的虚拟区域指定的PRT API调用来调用区域连接服务254。区域连接服务邪4建立与主存该指定的虚拟区域的网络基础设施服务的会话(图 17,框四幻。在此过程中,区域连接服务2M调用会话管理器服务沈4以上述方式建立与区域服务46的会话。区域连接服务2M随后向区域服务46传送对连接至该指定的虚拟区域的请求。区域服务46确定从区域连接服务邪4接收到的请求中指定的虚拟区域的实例。如上文所解释的,此过程通常取决于指定虚拟区域的方式(例如,通过模式标识符、虚拟区域实例标识符、或通过一个或多个查询属性)。在确定虚拟区域实例的实例后,区域服务46确定用户能力是否满足与虚拟区域实例相关联的能力要求。如果用户能力符合能力要求,则区域服务46传送指示状态数据的可用性的消息(例如,当前在虚拟区域实例中的对象的列表、以及与这些对象相关联的通信者的名称),该状态数据描述虚拟区域实例的当前状态。区域连接服务2M订阅状态数据(图17,框四4)。响应于该订阅请求,区域服务向会话管理器服务264和区域服务46之间的链路上的信道发布该状态数据。区域连接服务邪4调用操作系统230的用户接口服务MO以呈现该状态数据的人类可感知的视图(图17,框四6)。例如,区域连接服务邪4可调用接口服务240以在显示器 I32上呈现与当前在区域内的对象相关联的每个通信者的表示。在一些实施例中,通信者可由图标、缩略图、或可选地用该通信者名称标记的其他图形来表示。在一些实施例中,状态数据在触发区域连接服务254的调用的软件应用的图形界面中呈现。在一些实施例中,状态数据在提交于2008年4月4日的美国专利申请No. 61/042714中描述的抬头显示(HUD) 接口的实施例中呈现。iv.进入虚拟区域在已经建立与虚拟区域实例的连接后,触发区域连接服务254的调用的软件应用可给予用户请求进入虚拟区域实例内的选项或可代表该用户自动请求进入该虚拟区域实例内。
图18示出了由PRT框架232的区域进入服务255、流交换服务266和流处置器服务沈8响应于请求进入虚拟区域的I3RT API调用来实现的方法的实施例。根据图18的方法,区域进入服务255向主存虚拟区域的网络基础设施服务声明进入该虚拟区域的意图(图18,框四8)。在此过程中,区域进入服务255向区域服务46发送包含该声明的消息。该消息可在与区域服务46的现有链路的信道上发送,或者在由会话管理器264建立的与区域服务的新链路上发送。作为相应,区域服务46确定用户能力是否满足与虚拟区域实例相关联的能力要求。若用户的能力满足能力要求,则区域服务46向区域进入服务255返回配置数据,该配置数据根据该虚拟区域实例的规范包括该虚拟区域实例的定义、当前在该虚拟区域实例中的对象的注册、以及与该虚拟区域中的对象相关联的实时数据流源和阱的集合。流交换服务266经由与至少一个实时数据流源的至少一个网络连接发起至少一个实时数据流的传递,其中该至少一个实时数据流源分别与虚拟区域中的至少一个对象相关联(图18,框300)。在此过程中,流交换服务266基于从区域服务46接收的配置数据查明与虚拟区域的实例相关联的一个或多个网络节点。流交换服务266随后经由与至少一个查明的网络节点的至少一个网络连接发起至少一个实时数据流的传递。流交换服务266和其他网络节点之间的连接可以是对等连接或服务器仲裁的连接。关于对等连接,连接目标网络节点和会话管理器服务264通常彼此认证,并且随后建立链路,经由该链路向或从该连接目标传送至少一个实时数据流。链路通常是单向的且由发射方请求并被接收方接受或拒绝。在解说性实施例中,流处置器服务268根据虚拟区域实例的规范中的至少一个流处置定义来处理发起的实时数据流(图18,框30 。在此过程中,流处置器服务沈8中的一个或多个服务包括根据虚拟区域规范所定义的流处理配置将流处理对象的集合装配成有向图的管理器。图19示出一种方法的实施例,根据该方法,流交换服务沈6的实施例处理接收自区域服务46的配置数据以确定当用户进入虚拟区域或穿过虚拟区域的地带之间的边界时要建立的一组要求的实时数据流连接。如上文所解释的,该配置数据包括虚拟区域规范 204(参见图15)的副本和经更新的对象注册206(参见图1 的副本。在一些实施例中,配置数据附加包括流混合列表208(参见图15),其标识区域服务46当前正在产生的网络节点 138、142所生成的实时数据流的混合(或组合)。流交换服务266用接收自区域服务46的对象注册206的副本来初始化本地对象注册220 (参见图15)(图19,框304)。流交换服务266还用接收自区域服务46的流混合列表208的副本来初始化本地流混合列表222(参见图1 (图19,框306)。流交换服务266 另外用接收自区域服务46的虚拟区域规范204的副本来初始化本地虚拟区域规范高速缓存224(参见图15)(图19,框308)。流交换服务266从虚拟区域规范对4和虚拟区域实例中该用户化身的位置来构建被占据地带的列表214(参见图1 (图19,框310)。在此过程中,流交换服务266从包含虚拟区域实例中化身当前位置的坐标的当前对象位置数据库216中检索用户化身在虚拟区域实例中的当前位置。这些坐标是从接收自输入设备(诸如计算机鼠标218)的实时运动数据流来确定的。流交换服务266随后比较用户化身的当前位置和虚拟区域规范224中
34的地带定义。流交换服务266根据虚拟区域规范当中与通信者的化身的当前位置一致的所有地带来汇编被占据地带的列表214。例如,在一些实施例中,被占据地带列表214包括其网格包含用户化身的当前位置的所有地带。流交换服务266确定针对被占据地带列表214中的地带和目标支持特征列表所定义的目标实时数据流类型集合,该目标支持特征列表考虑客户端的分类(例如,纯语音客户端对全特征客户端)(图19,框31 。流交换服务沈6随后从该目标实时数据流类型集合、对象在虚拟区域实例中的位置、以及虚拟区域规范224中定义的交换规则来确定所需要的实时数据流数据集合(图19,框314)。关于确定目标实时数据流类型集合的过程和确定所需要的实时数据流数据集合的过程的附加细节在皆提交于2007年10月M日的美国申请 No. 11/923,629 和 11/923,634 中描述。在一些示例性实施例中,在流交换服务沈6已经确定使用户能参与与在共享虚拟区域实例中其他网络节点的协作通信会话的实时数据流数据集合(图19,框314)后,流交换服务266确定将导致向计算机系统200递送该需要的数据流数据的实时数据流连接。在这些实施例中的一些实施例中,流交换服务266确定实时数据流处置拓扑,该处置拓扑至少部分基于计算机系统200的带宽能力将实时数据流集合递送给计算机系统 200。在此过程中,流交换服务266确定从未混合的实时数据流以及从实时数据流的组合导出的流混合中接收每个实时数据流的相应形式。流交换服务266还确定在其上从直接对等网络路由和由一个或更多个其他网络节点仲裁的网络路由接收每个实时流的网络路由。在已确定流处置拓扑之后,流交换服务266根据所确定的流处置拓扑在计算机系统200和其他网络节点之间建立实时数据流连接。图20示出在确定向计算机系统200传递所需要数据流数据的实时数据流连接的拓扑的过程中流交换服务266所实现的方法的实施例。根据该方法,流交换服务266确定计算机系统200是否具有直接从其他网络节点接收所需要的实时数据流数据集合316的足够带宽(图20,框318)。在此过程中,其他网络节点向计算机系统200传送链路请求。该链路请求指示对传送计算机系统200所需的相应实时数据流集合的相应带宽要求。流交换服务266将建立所要求的直接连接所需的总体带宽与带宽监视器服务274(参见图16)所报告的计算机系统200当前可用的下载带宽作比较。如果可用带宽至少等于总体要求带宽,则流交换服务沈6建立与提供所需要的实时数据流数据的其他网络节点的直接连接(图20,框320)。在此过程中,会话管理器服务 264创建计算机系统200和一个或多个其他网络节点138、202、142之间的插口(例如,TCP 插口或性能最优化的专用实时插口)。针对每种实时数据流类型,所创建的插口通常包括一个承载实时数据流的插口和一个用于承载与相关联实时数据流分组的传送和接收相关联的控制信息(例如,服务质量信息)的插口。流处置器服务268处理实时数据流,包括对其进行加密、对其进行记录、以及根据需要将经处理的数据流递送给视觉化引擎服务272、操作系统用户接口服务M0、和操作系统设备管理器服务M4以便在用户界面中呈现和在网络42上进行传输。如果可用带宽小于所要求带宽(图20,框318),则流交换服务266检查流混合列表222(参见图15)以确定区域服务46是否正在生成提供所要求实时数据流数据的流混合
35(图20,框322)。如果所需的流混合可用,则流交换服务266与区域服务46建立在其上所需实时数据流混合的副本从区域服务器46传送到计算机系统200的连接(图20,框324)。 如果所需流混合不可用,则流交换服务266向区域服务46发送流混合请求(图20,框326)。 如果可能,区域服务46响应于流混合请求生成所需流混合。v.连接至连接目标图21示出由PRT框架232的目标连接服务256响应于请求连接至连接目标的PRT API调用实现的方法的实施例。根据图21的方法,目标连接服务256确定对至少一个连接目标的指定(图21,框 330)。在一些实施例中,目标连接服务256由软件应用、操作系统服务、和PRT框架服务中的任意一者用包括连接目标指定的PRTAPI调用进行调用。例如,连接对象管理器服务253 可用包括连接目标指定的PRT API调用来调用目标连接服务256,该连接目标指定是连接对象管理器服务253从与计算机数据文件或软件应用相关联的连接对象的实例提取出的。目标连接服务256建立与管理网络节点的连接句柄分布的网络基础设施服务的会话(图21,框33 。在此过程中,区域目标连接服务256调用会话管理器服务沈4以上述方式建立与会合服务48的会话。目标连接服务256向网络基础设施服务声明连接至对应于该连接目标指定的一个或多个连接目标的意图(图21,框334)。会合服务48标识对应连接目标指定的一个或多个连接目标。若连接规则以目标标识符指定具体连接目标,则会合服务48从存在性数据库中查询与所指定的目标标识符对应的连接目标的状态和能力要求。若连接规则以一个或多个属性值的集合来指定连接目标,则会合服务48从存在性数据库中查询与具有匹配所指定的属性值的属性值的连接目标相关联的状态和能力要求。会合服务48将该用户的能力与关联于所标识的连接目标中的每个连接目标的能力要求相比较。会合服务48向连接服务256传送所标识的连接目标中其能力要求得到满足的每个连接目标的相应连接句柄。在从网络基础设施服务接收到至少一个相应网络节点连接句柄(图21,框336) 后,目标连接服务256调用流交换服务沈6以经由与关联于该至少一个相应网络节点连接句柄的网络节点的至少一个网络连接发起至少一个实时数据流的传递(图21,框338)。流交换服务266和其他网络节点之间的连接可以是对等连接或服务器仲裁的连接。关于对等连接,连接目标网络节点和会话管理器服务264通常彼此认证,并且随后建立链路,经由该链路向或从该连接目标传送至少一个实时数据流。链路通常是单向的且由发射方请求并被接收方接受或拒绝。vi.输出存在性图22示出了输出存在性服务沈0响应于请求向一个或多个连接目标输出存在性信息的PRT API呼叫所实现的方法的实施例,该存在性信息描述计算机数据文件或软件应用的至少一者中用户的当前位置。根据图22的方法,输出存在性服务260确定至少一个连接目标的指定(图22,框 340)。在一些实施例中,输出存在性服务沈0由软件应用、操作系统服务、和PRT框架服务中的任意一者用包括连接目标指定和对用户位置的定义的PRT API调用进行调用。例如,连接对象管理器服务253可用包括连接目标指定的PRT API调用来调用输出存在性服务沈0, 该连接目标指定是连接对象管理器服务253从与计算机数据文件或软件应用相关联的连
36接对象的实例提取出的。输出存在性服务260建立与管理网络节点间的存在性数据的交换的网络基础设施服务的会话(图22,框34 。在此过程中,输出存在性服务260调用会话管理器服务沈4 以上述方式建立与会合服务48的会话。输出存在性服务沈0向网络基础设施服务声明向与连接目标指定对应的至少一个网络节点输出描述该用户的位置的存在性数据的意图(图21,框334)。响应于该声明, 会合服务48标识对应连接目标指定的一个或多个连接目标。若连接规则以目标标识符指定具体连接目标,则会合服务48从存在性数据库中查询与所指定的目标标识符对应的连接目标的状态和能力要求。若连接规则以一个或多个属性值的集合来指定连接目标,则会合服务48从存在性数据库中查询与具有匹配所指定的属性值的属性值的连接目标相关联的状态和能力要求。会合服务48将该用户的能力与关联于所标识的连接目标中的每个连接目标的能力要求相比较。会合服务48向所标识的连接目标中其能力要求得到满足的每个连接目标传送用户的存在性数据。d.调用PRT框架功能PRT框架232的功能是通过对PRT API 250的调用来调用的。这些调用可以各种不同方式来生成。在所解说的实施例中,对PRT API 250的调用可以由在计算机系统200或远程网络节点上执行的软件应用、在计算机系统200或远程网络节点上执行的操作系统、 和网络基础设施服务中的任何一者作出。在一些实施例中,软件应用开发者设计软件应用调用PRT API 250以建立用于运行该软件应用的实时应用环境。在这一点上,软件应用可被设计成在该应用的一个或多个特定位置上(例如,在启动时或者在该软件应用的特定功能被调用时)、或者用户每次越过该软件应用的区段之间的边界时调用PRT API 250。在这些实施例中,软件应用通常用包括该软件应用和该软件应用正在处理的计算机数据文件的至少一者中的当前区段的定义的调用来调用PRT API 250。在这些实施例中的一些实施例中,软件应用被配置成用建立与至少一个连接目标的网络连接的调用来调用PRT API 250。例如,软件应用可用计算机数据文件或软件应用中的指定位置来调用连接对象管理器服务253。连接对象管理器服务253实例化与该计算机数据文件或软件应用中的位置相关联的连接对象实例。连接对象通常包括对虚拟区域的相应指定和对与该虚拟区域相关联的一个或多个连接目标的相应指定。软件应用可向用户呈现进入该虚拟区域或连接至这些连接目标中的一个或多个连接目标的选项。若用户选择进入虚拟区域或连接至连接目标,则软件应用用基于虚拟区域实例中的位置关于该连接目标在网络连接上发起对至少一个实时数据流的传递的PRT API调用来调用PRT API 250。例如,响应于该PRT API调用,连接对象管理器服务253调用根据所实例化的连接对象实例的属性值建立与虚拟区域或连接目标的连接的一个或多个其他PRT服务(例如,区域连接服务2M或目标连接服务256)。操作系统230和PRT框架232的诸服务中的一个或多个服务将实时数据流处理成可作为人类可感知输出进行呈现的格式(例如,显示器132上的视觉图像或通过扬声器278J80的音频输出)。在一些实施例中,PRT API 250在计算机操作系统实现的调用该软件应用或打开该计算机数据文件的方法中被调用。
37
例如,PRT API 250可在打开计算机数据文件的过程中被操作系统230的文件管理器服务240调用。在一些实施例中,此过程包括基于软件应用与关联于计算机数据文件的文件扩展名的关联性标识相关联的软件应用,并执行该相关联的软件应用以打开该计算机数据文件。在这些实施例中的一些实施例中,操作系统的PRT知晓型文件管理器服务管理(例如,在可与计算机数据文件在操作系统的文件系统级上相关联的扩展文件属性中的)文件属性数据库,该数据库包括指示相关联的计算机数据文件是否配置有PRT特征的 PRT启用属性。响应于打开计算机数据文件的请求,文件管理器服务238读取文件属性数据库。若PRT启用属性值指示该计算机数据文件配置有PRT特征,则文件系统管理器服务用包括该计算机数据文件的标识符的对PRT API 250的调用来调用连接对象管理器服务253。 在这些实施例中的一些实施例中,文件属性数据库另外包括对该计算机数据文件中的初始位置的任选定义。在这些实施例中,文件管理器服务238在该TOTAPI调用中将该初始位置定义传递给连接对象管理器服务253。连接对象管理器服务253使用该初始位置定义来确定与该计算机数据文件相关联的连接对象。PRT API 250还可由操作系统230的程序加载器服务242在为软件应用创建初始操作环境的过程中调用。在一些实施例中,此过程包括将该软件应用的至少一个可执行件加载到存储器中,准备该可执行件,并执行备好的可执行件。在这些实施例中的一些实施例中,软件应用文件还可与能被PRT知晓型文件管理器服务读取的PRT启用属性相关联。在这些实施例中,运行该软件应用的用户请求触发文件系统管理器服务以用包括该计算机数据文件的标识符和任选地包括初始位置定义的对PRT API 250的调用来调用连接对象管理器服务253。在一些实施例中,软件应用开发者在软件应用文件的头部(例如,描述该软件应用应如何通过操作系统的程序加载器服务被载入存储器中的头部或片段)中纳入PRT启用属性或对连接对象的参引。在这些实施例中的一些实施例中,软件应用头部另外包括对该软件应用中的初始位置的任选定义。在这些实施例中,软件应用头部中的命令行可指令程序加载器服务用包括该计算机数据文件的标识符和任选地包括初始位置定义的对PRT API 250的调用来调用连接对象管理器服务253。若该软件应用头部存储了对连接对象数据库中被索引的连接对象的参引,则该软件应用头部中的命令行可指令程序加载器服务用包含该连接对象参引的调用来调用连接对象管理器服务253。V.示例性应用遍布式实时框架12支持各种能够利用其中网络节点之间的实时连接是遍布式的新操作环境范例的实时软件应用的开发。在第一实施例中,个人信息管理器软件应用(例如,Microsoft Outlook 软件应用)(原始地或者通过插件模块或宏)被设计成利用PRT 框架12所提供的功能性。在此实施例中,该个人信息管理器软件应用包括电子邮件任务、 日历任务、和联系人管理任务。每项任务被定义为单独的区段并与相应的连接对象相关联。 对应于电子邮件任务的区段例如可以与一连接对象相关联,该连接对象指定在读取发送至或发送自指定工作群中的任何联系人的电子消息时,PRT框架12应连接至与该工作群相关联的指定虚拟区域并向该工作群中当前不在该虚拟区域中的联系人输出存在性信息。在该第一实施例中,当用户的注意力集中在电子邮件任务中的电子邮件消息上时,该个人信息管理器软件应用用包括与该电子邮件任务和该电子邮件消息的发送人和接收人的列表对应的位置定义的PRT API调用来调用连接对象管理器服务253。连接对象管
38理器服务253基于该位置定义检索与该电子邮件功能相关联的连接对象。连接对象管理器服务253调用区域连接服务254,后者尝试依照用户的偏好和该虚拟区域的能力要求来连接至该连接对象中指定的虚拟区域。连接对象管理器服务253还调用目标连接服务256,后者尝试依照用户的偏好和该虚拟区域的能力要求向工作群中当前不在该虚拟区域中的联系人输出存在性信息。这样,个人信息管理器软件应用的电子邮件任务可利用PRT框架12 的功能来基于用户集中在电子邮件任务的注意力为用户提供与相关联系人的实时连接。该个人信息管理器软件应用的其他任务也可被设计成利用PRT框架12的功能性。在第二实施例中,网页浏览器软件应用(例如,Microsoft hternet Explorer 软件应用,Firefox 软件应用、和Mfari 软件应用)(原始地或者通过插件模块或宏)被设计成利用PRT框架12所提供的功能性。在此实施例中,该网页浏览器软件应用包括允许用户在不同的网页之间切换而无需切换顶层窗口的选项卡式文档界面。一个或多个网页(例如,默认的主网页和消费者服务网页)与相应的连接对象相关联。对应于主网页的区段例如可以与一连接对象相关联,该连接对象指定当在网页浏览器软件应用的选项卡中查看主网页时,PRT框架 12应连接至与该用户相关联的指定虚拟区域(例如,该用户的个人虚拟区域或与该用户的工作群相关联的虚拟区域)。对应于消费者服务网页的区段可以与一连接对象相关联,该连接对象指定当在网页浏览器软件应用的选项卡中查看消费者服务网页时,PRT框架12应连接至指定的消费者服务虚拟区域并自动连接至该消费者服务虚拟区域中具有与消费者服务代表对应的角色属性值的任何通信者。在该第二实施例中,当用户的注意力集中在呈现默认主网页的选项卡上时,网页浏览器软件应用用包括与该默认主页面文档对应的位置的定义的PRT API调用来调用连接对象管理器服务253。连接对象管理器服务253基于该位置定义检索与该默认主页面文档相关联的连接对象。连接对象管理器服务253调用区域连接服务254,后者尝试依照用户的偏好和该虚拟区域的能力要求来连接至该连接对象中指定的虚拟区域。当用户的注意力集中在呈现消费者服务网页的选项卡上时,网页浏览器软件应用用包括与该消费者服务页面文档对应的位置的定义的PRT API调用来调用连接对象管理器服务253。连接对象管理器服务253基于该位置定义检索与该默认主页面文档相关联的连接对象。连接对象管理器服务253调用区域连接服务254,后者尝试依照用户的偏好和该虚拟区域的能力要求来连接至该连接对象中指定的虚拟区域。若虚拟区域的当前占用者中有任何人具有消费者服务代表角色属性值,则连接服务2M调用区域进入服务255,后者尝试依照该用户的偏好和该虚拟区域的能力要求来进入该虚拟区域。若区域进入尝试成功,则流交换服务沈6自动发起与关联于该虚拟区域中的对象(例如,化身)的网络节点的连接。在第三实施例中,电子数据表软件应用(例如,Microsoft Excel⑧软件应用) (原始地或者通过插件模块或宏)被设计成利用PRT框架12所提供的功能性。在此实施例中,该电子数据表软件应用包括允许用户在不同的工作表之间切换而无需切换顶层窗口的选项卡式工作表界面。一个或多个工作表(例如,股票分析工作表)与相应的连接对象相关联。对应股票分析工作表的区段例如可以与一连接对象相关联,该连接对象指定当在该电子数据表软件应用的选项卡中查看该股票分析工作表时,PRT框架12应连接至与该用户相关联的指定虚拟区域(例如,与指定类型的金融分析相关联的虚拟区域)和连接至指定数据源连接目标(例如,在线股票报价服务)以请求特定数据或数据类型(例如,关于该股
39票分析工作表上所列的一组股票的实时股票报价信息)。在该第三实施例中,当用户的注意力集中在呈现股票分析工作表的选项卡上时, 电子数据表软件应用用包括与该股票分析工作表对应的位置的定义的PRT API调用来调用连接对象管理器服务253。连接对象管理器服务253基于该位置定义检索与该股票分析数据表相关联的连接对象。连接对象管理器服务253调用区域连接服务254,后者尝试依照用户的偏好和该虚拟区域的能力要求来连接至该连接对象中指定的虚拟区域。连接对象管理器服务253还调用目标连接服务256,后者尝试连接至指定的数据源并检索所请求的数据或数据类型。若连接尝试成功,则流处置器服务268可被配置成装配实时处理对象的有向图以根据实时处理规范来对实时股票报价信息执行变换,实时处理规范可以由股票分析工作表或由该虚拟区域提供。VI.结论本文描述的实施例为支持实时软件应用的执行的遍布式实时框架提供显著降低在其中网络节点之间的实时连接是遍布式的新操作环境范例中开发实时软件应用所需的精力和时间的高级功能。该遍布式实时框架响应于用户输入处置连接至通信者、虚拟区域、 和其他网络资源、以及交换这些连接的复杂任务,并由此使得软件应用开发者能集中精力于开发高级实时软件应用功能性。其他实施例也在权利要求的范围之内。
40
权利要求
1.一种计算机实现的方法,包括基于与软件应用08)和计算机数据文件(30)的至少一者相关联的连接规则(32)中对虚拟区域的指定来确定所述虚拟区域的实例(56);查明与所述虚拟区域的所述实例(56)相关联的一个或多个网络节点(16-26);以及在由所述虚拟区域的所述实例(56)定义的上下文中经由与所述网络节点(16-26)的至少一个网络节点的至少一个网络连接发起至少一个实时数据流的传递。
2.如权利要求1所述的方法,其特征在于,所述确定、所述查明、和所述发起是在计算机(60)上于调用所述软件应用08)的计算机操作系统实现的方法中执行的。
3.如权利要求2所述的方法,其特征在于,在所述计算机操作系统实现的方法中还包括实例化一个或多个对象,所述对象包括执行操作的一个或多个方法,所述操作包含执行所述软件应用08)。
4.如权利要求3所述的方法,其特征在于,所述执行软件应用包括将所述软件应用 (28)的至少一个可执行件加载到存储器中,准备所述可执行件,并执行备好 的可执行件。
5.如权利要求1所述的方法,其特征在于,所述确定、所述查明、和所述发起是在计算机(60)上于打开所述计算机数据文件(30)的计算机操作系统实现的方法中执行的。
6.如权利要求5所述的方法,其特征在于,在所述计算机操作系统实现的方法中还包括实例化一个或多个对象,所述对象包括执行操作的一个或多个方法,所述操作包含用相关联的软件应用08)打开所述计算机数据文件(30)。
7.如权利要求6所述的方法,其特征在于,所述打开包括基于所述软件应用08)与关联于所述计算机数据文件(30)的文件扩展名的关联性标识所述相关联的软件应用(观), 并执行所述相关联的软件应用08)以打开所述计算机数据文件(30)。
8.如权利要求1所述的方法,其特征在于,所述确定、所述查明、和所述发起是在计算机上响应于对应用编程接口(API)的至少一个调用通过所述API的实现来执行的。
9.如权利要求8所述的方法,其特征在于,还包括响应于对所述API的所述至少一个调用,实例化一个或多个对象,所述对象包括执行包括所述确定、所述查明、和所述发起的操作的一个或多个方法。
10.如权利要求1所述的方法,其特征在于,所述确定包括调用与所述软件应用08)和所述计算机数据文件(30)的至少一者相关联的一个或多个连接对象,并且所述连接对象中的每一个包括一个或多个连接规则的相应集合。
11.如权利要求10所述的方法,其特征在于,所述调用包括查询数据库(106),所述数据库包括各自将所述软件应用08)和所述计算机数据文件(30)的至少一者与所述连接对象中的至少一个连接对象相关联的一条或多条记录的。
12.如权利要求11所述的方法,其特征在于,所述查询包括用包括所述软件应用08) 和所述计算机数据文件(30)的至少一者的标识符的询问来查询所述数据库(106)。
13.如权利要求12所述的方法,其特征在于,所述询问还包括关于所述软件应用08) 和所述计算机数据文件(30)的至少一者的位置的定义。
14.如权利要求1所述的方法,其特征在于,所述确定包括查询通过关于所述软件应用 (28)和所述计算机数据文件(30)的至少一者的位置来索引所述连接规则(3 的数据库。
15.如权利要求1所述的方法,其特征在于,所述连接规则(32)与关于所述软件应用(28)和所述计算机数据文件(30)的至少一者所定义的交互空间中的至少一个相应区段的定义相关联,并且所述发起包括根据所述连接规则(3 和所述交互空间中的指定位置来关于所述网络节点中的一个或多个网络节点发起一个或多个实时数据流的传递。
16.如权利要求15所述的方法,其特征在于,还包括接收用户关于所述交互空间的当前焦点的定义,其中所述确定包括至少部分基于关于所述交互空间中的所述至少一个区段的所述当前焦点来确定所述连接规则(32),所述查明包括查明与所述当前焦点相关联的所述网络节点(16-26)中的一个或多个网络节点,以及所述发起包括根据被确定与所述当前焦点相关联的所述一个或多个连接规则(32),关于被查明为与所述当前焦点相关联的所述网络节点(16-26)中的一个或多个网络节点,发起实时数据流的相应传递。
17.如权利要求1所述的方法,其特征在于,所述确定包括将所述虚拟区域指定传给用于至少部分地将所述虚拟区域指定解析为所述虚拟区域实例(56)的定义的网络基础设施服务(43)。
18.如权利要求1所述的方法,其特征在于,所述连接规则(32)另外包括对一个或多个连接目标的连接目标指定,且所述查明包括将所述指定解析为所述一个或多个网络节点 (16-26)的至少一个网络节点的相应连接句柄。
19.如权利要求18所述的方法,其特征在于,所述解析包括将所述连接目标指定传给管理所述一个或多个网络节点的连接句柄分布的网络基础设施服务G3)。
20.如权利要求18所述的方法,其特征在于,所述连接目标指定包括标识单个通信者的信息、标识通信者群的信息、以及与至少一个通信者相关联的角色的定义中的至少一者。
21.如权利要求1所述的方法,其特征在于,所述查明包括向网络基础设施服务G3)声明进入所述虚拟区域的意图并从所述网络基础设施服务^幻接收与所述虚拟区域中对象相关联的网络节点的列表。
22.如权利要求1所述的方法,其特征在于,所述连接规则(32)另外包括一个或多个连接条件,并且所述方法还包括响应于满足所述一个或多个连接条件的相应确定来建立所述至少一个网络连接。
23.如权利要求22所述的方法,其特征在于,所述连接规则(32)包括限制何时准许所述建立的连接条件。
24.如权利要求22所述的方法,其特征在于,所述连接规则(32)包括将所述建立限于满足指定资源要求的网络节点的条件。
25.如权利要求22所述的方法,其特征在于,所述连接规则(32)包括将所述建立限于满足指定节点配置要求的网络节点的条件。
26.如权利要求22所述的方法,其特征在于,所述连接规则(32)的至少一条包括将所述建立限于满足指定网络节点位置要求的网络节点的条件。
27.如权利要求22所述的方法,其特征在于,所述连接规则(32)的至少一条包括将所述建立限于满足指定连接目标可用性要求的时间的条件。
28.如权利要求1所述的方法,其特征在于,还包括将所述实时数据流处理成人类可感知的输出。
29.如权利要求观所述的方法,其特征在于,还包括至少部分基于相对于性能目标对所述处理测得的性能来调度在所述处理中执行的至少一项任务。
30.如权利要求1所述的方法,其特征在于,所述确定、所述查明、和所述发起是在至少一台计算机(60)上执行的。
31.存储在由计算机(60)执行时致使所述计算机(60)执行包括以下动作的操作的计算机可读指令的至少一个计算机可读介质(124、128)基于与软件应用08)和计算机数据文件(30)的至少一者相关联的连接规则(32)中对虚拟区域的指定来确定所述虚拟区域的实例(56);查明与所述虚拟区域的所述实例(56)相关联的一个或多个网络节点(16-26);以及在由所述虚拟区域的所述实例(56)定义的上下文中经由与所述网络节点的至少一个网络节点的至少一个网络连接发起至少一个实时数据流的传递。
32.一种装置,包括存储计算机可读指令的计算机可读存储器(124、128);以及耦合至存储器的数据处理单元(122),用于执行所述指令,并至少部分地基于所述指令的所述执行来执行操作,所述操作包括基于与软件应用08)和计算机数据文件(30)的至少一者相关联的连接规则(32)中对虚拟区域的指定来确定所述虚拟区域的实例(56),查明与所述虚拟区域的所述实例(56)相关联的一个或多个网络节点(1616),以及在由所述虚拟区域的所述实例(56)定义的上下文中经由与所述网络节点的至少一个网络节点的至少一个网络连接发起至少一个实时数据流的传递。
33.一种计算机实现的方法,包括将与软件应用08)和计算机数据文件(30)的至少一者相关联的连接规则(3 中对至少一个连接目标的指定解析为至少一个相应网络节点连接句柄(182);以及经由与分别关联于所述至少一个相应网络节点连接句柄的至少一个网络节点的至少一个网络连接发起至少一个实时数据流的传递(184)。
34.如权利要求33所述的方法,其特征在于,所述解析(182)和所述发起(184)是在计算机(60)上于调用所述软件应用08)的计算机操作系统实现的方法中执行的。
35.如权利要求33所述的方法,其特征在于,所述解析(182)和所述发起(184)是在计算机(60)上于打开所述数据文件(30)的计算机操作系统实现的方法中执行的。
36.如权利要求33所述的方法,其特征在于,所述解析(182)和所述发起(184)是在计算机上响应于对应用编程接口(API)的至少一个调用通过所述API的实现来执行的。
37.如权利要求36所述的方法,其特征在于,还包括响应于对所述API的所述至少一个调用,实例化一个或多个对象,所述对象包括执行包括所述解析(18 和所述发起(184) 的操作的一个或多个方法。
38.如权利要求33所述的方法,其特征在于,所述发起(184)是在由与所述软件应用 (28)和所述计算机数据文件(30)的至少一者相关联的虚拟区域所定义的上下文中执行的。
39.如权利要求33所述的方法,其特征在于,所述确定包括查询数据库,所述数据库包括通过关于所述软件应用08)和所述计算机数据文件(30)的至少一者的位置来索引的所述连接规则(32)。
40.如权利要求33所述的方法,其特征在于,所述连接规则(32)与关于所述软件应用 (28)和所述计算机数据文件(30)的至少一者所定义的交互空间中的至少一个相应区段的定义相关联,并且所述发起包括根据所述连接规则(3 和所述交互空间中的指定位置来关于所述网络节点中的一个或多个网络节点发起一个或多个实时数据流的传递。
41.如权利要求33所述的方法,其特征在于,所述解析(18 包括将所述连接目标指定传给管理所述一个或多个网络节点的连接句柄分布的网络基础设施服务,并从所述网络基础设施服务接收所述至少一个相应网络节点连接句柄。
42.如权利要求33所述的方法,其特征在于,所述连接目标指定包括标识单个通信者的信息、标识通信者群的信息、以及与至少一个通信者相关联的角色的定义中的至少一者。
43.如权利要求33所述的方法,其特征在于,所述连接规则(32)另外包括一个或多个连接条件,并且所述方法还包括响应于满足所述一个或多个连接条件的相应确定来建立所述至少一个网络连接。
44.存储在由计算机(60)执行时致使所述计算机(60)执行包括以下动作的操作的计算机可读指令的至少一个计算机可读介质(124、128)将与软件应用08)和计算机数据文件(30)的至少一者相关联的连接规则(3 中对至少一个连接目标的指定解析为至少一个相应网络节点连接句柄(182);以及经由与分别关联于所述至少一个相应网络节点连接句柄的至少一个网络节点的至少一个网络连接发起至少一个实时数据流的传递(184)。
45.一种装置,包括存储计算机可读指令的计算机可读存储器(1对、1观);以及耦合至存储器的数据处理单元(122),用于执行所述指令,并至少部分地基于所述指令的所述执行来执行操作,所述操作包括将与软件应用08)和计算机数据文件(30)的至少一者相关联的连接规则(3 中对至少一个连接目标的指定解析为至少一个相应网络节点连接句柄(182),以及经由与分别关联于所述至少一个相应网络节点连接句柄的至少一个网络节点的至少一个网络连接发起至少一个实时数据流的传递(184)。
46.一种计算机实现的方法,包括发布(34)声明执行操作的功能的应用编程接口(API),所述操作包括基于连接规则 (32)管理实时数据流的网络连接,每条连接规则(3 包括对虚拟区域的相应指定和对与所述虚拟区域相关联的一个或多个连接目标的相应指定中的至少一者;以及响应于对所述API的调用,基于所述连接规则(32)中与软件应用08)和计算机数据文件(30)的至少一者相关联的相应一条连接规则以及所述虚拟区域中的至少一个位置来管理(38)与至少一个网络节点的实时数据流连接。
47.如权利要求46所述的方法,其特征在于,所述管理(38)是响应于所述软件应用 (28)对所述API的调用来执行的,并且基于与所述软件应用08)和所述软件应用08)能对其操作的计算机数据文件(30)中的至少一者相关联的连接规则(32)。
48.如权利要求46所述的方法,其特征在于,所述管理(38)是响应于加载器操作系统组件对所述API的调用来执行的,所述加载器操作系统组件执行包括将软件应用08)的至少一个可执行件加载到存储器中、准备所述可执行件以供执行以及执行备好的可执行件的操作。
49.如权利要求46所述的方法,其特征在于,所述管理(38)是响应于文件管理器操作系统组件对所述API的调用来执行的,所述文件管理器操作系统组件执行包括打开计算机数据文件(30)的操作。
50.如权利要求46所述的方法,其特征在于,所述管理(38)包括经由所述实时数据流连接发起至少一个实时数据流的传递并处理所述实时数据流。
51.如权利要求50所述的方法,其特征在于,所述管理(38)包括基于所述相应连接规则(3 中对所述虚拟区域的指定来确定所述虚拟区域的实例(56)、查明与所述虚拟区域实例相关联的一个或多个网络节点(1616)、以及在所述虚拟区域的所述实例(56)定义的上下文中发起所述实时数据流的传递。
52.如权利要求50所述的方法,其特征在于,所述管理(38)包括将所述相应连接规则 (32)中对至少一个连接目标的指定解析为至少一个相应网络节点连接句柄、并关于与所述至少一个相应网络节点连接句柄相关联的网络节点发起所述实时数据流的传递。
53.如权利要求50所述的方法,其特征在于,所述处理包括通过为计算机硬件装置提供接口的驱动程序来处理所述实时数据流。
54.如权利要求50所述的方法,其特征在于,还包括至少部分基于相对于性能目标对所述处理测得的性能来调度在所述处理中执行的至少一项任务。
55.如权利要求50所述的方法,其特征在于,所述发布(34)和对所述实时数据流连接的所述管理(38)是在至少一台计算机(60)上执行的。
56.存储在由计算机(60)执行时致使所述计算机(60)执行包括以下动作的操作的计算机可读指令的至少一个计算机可读介质(124、128)发布(34)声明执行操作的功能的应用编程接口(API),所述操作包括基于连接规则 (32)管理实时数据流的网络连接,每条连接规则(3 包括对虚拟区域的相应指定和对与所述虚拟区域相关联的一个或多个连接目标的相应指定中的至少一者;以及响应于对所述API的调用,基于所述连接规则(32)中与软件应用08)和计算机数据文件(30)的至少一者相关联的相应一条连接规则以及所述虚拟区域中的至少一个位置来管理(38)与至少一个网络节点的实时数据流连接。
57.一种装置,包括存储计算机可读指令的计算机可读存储器(1对、1观);以及耦合至存储器的数据处理单元(122),用于执行所述指令,并至少部分地基于所述指令的所述执行来执行操作,所述操作包括发布(34)声明执行操作的功能的应用编程接口(API),所述操作包括基于连接规则 (32)管理实时数据流的网络连接,每条连接规则(3 包括对虚拟区域的相应指定和对与所述虚拟区域相关联的一个或多个连接目标的相应指定中的至少一者;以及响应于对所述API的调用,基于所述连接规则(32)中与软件应用08)和计算机数据文件(30)的至少一者相关联的相应一条连接规则以及所述虚拟区域中的至少一个位置来管理(38)与至少一个网络节点的实时数据流连接。
58.一种计算机实现的方法,包括用根据连接规则(32)在虚拟区域的实例(56)所定义的上下文中建立与至少一个连接目标的网络连接的调用来调用应用编程接口(API),所述连接规则(32)与软件应用08)和所述软件应用08)能对其操作的数据文件中的至少一者相关联并且包括对所述虚拟区域的相应指定和对与所述虚拟区域相关联的一个或多个连接目标的相应指定;用基于所述虚拟区域实例中的位置、经由所述网络连接、关于所述连接目标发起至少一个实时数据流的传递的调用来调用所述API ;以及呈现从所述实时数据流导出的人类可感知的输出。
59.如权利要求58所述的方法,其特征在于,所述调用是由所述软件应用08)来执行的。
60.存储在由计算机(60)执行时致使所述计算机(60)执行包括以下动作的操作的计算机可读指令的至少一个计算机可读介质(124、128)用根据连接规则(32)在虚拟区域的实例(56)所定义的上下文中建立与至少一个连接目标的网络连接的调用来调用应用编程接口(API),所述连接规则(32)与软件应用08)和所述软件应用08)能对其操作的数据文件中的至少一者相关联并且包括对所述虚拟区域的相应指定和对与所述虚拟区域相关联的一个或多个连接目标的相应指定;用基于所述虚拟区域实例中的位置、经由所述网络连接、关于所述连接目标发起至少一个实时数据流的传递的调用来调用所述API ;以及呈现从所述实时数据流导出的人类可感知的输出。
61.一种装置,包括存储计算机可读指令的计算机可读存储器(124、128);以及耦合至存储器的数据处理单元(122),用于执行所述指令,并至少部分地基于所述指令的所述执行来执行操作,所述操作包括用根据连接规则(3 在虚拟区域的实例(56)所定义的上下文中建立与至少一个连接目标的网络连接的调用来调用应用编程接口(API),所述连接规则 (32)与软件应用08)和所述软件应用08)能对其操作的数据文件中的至少一者相关联并且包括对所述虚拟区域的相应指定和对与所述虚拟区域相关联的一个或多个连接目标的相应指定;用基于所述虚拟区域实例中的位置、经由所述网络连接、关于所述连接目标发起至少一个实时数据流的传递的调用来调用所述API ;以及呈现从所述实时数据流导出的人类可感知的输出。
62.一种计算机实现的方法,包括响应于包括软件应用08)和计算机数据文件(30)的至少一者中的位置的定义的应用编程接口(API)调用,确定与所述位置定义相关联且包括对虚拟区域的指定的连接规则(3 (290), 建立与网络基础设施服务的会话092),所述网络基础设施服务的会话主存所述虚拟区域的实例(56)并发布描述所述虚拟区域实例的当前状态的状态数据, 订阅所述状态数据094),以及呈现所述状态数据的人类可感知视图096)。
63.如权利要求62所述的方法,其特征在于,还包括向所述网络基础设施服务声明进入所述虚拟区域实例(56)的意图。
64.如权利要求63所述的方法,其特征在于,还包括经由与分别关联于所述虚拟区域中的至少一个对象的至少一个实时数据流源的至少一个网络连接发起至少一个实时数据流的传递。
65.如权利要求64所述的方法,其特征在于,还包括根据所述虚拟区域实例(56)的规范中的至少一个流处置定义来处理所述至少一个实时数据流。
66.一种计算机实现的方法,包括响应于包括软件应用08)和计算机数据文件(30)的至少一者中的位置的定义的应用编程接口(API)调用,确定与所述位置定义相关联且包括对至少一个连接目标的指定的连接规则(32) (330),建立与管理网络节点的连接句柄分布的网络基础设施服务的会话(332), 向所述网络基础设施服务声明连接至所述连接对象中指定的所述连接目标中的一个或多个连接目标的意图(334),从所述网络基础设施服务接收至少一个相应网络节点连接句柄(336),以及经由与关联于所述至少一个相应网络节点连接句柄的网络节点的至少一个网络连接发起至少一个实时数据流的传递(338)。
67.一种计算机实现的方法,包括响应于包括软件应用08)和计算机数据文件(30)的至少一者中的位置的定义的应用编程接口(API)调用,确定与所述位置定义相关联且包括对至少一个连接目标的指定的连接规则(32) (340),建立与管理网络节点之间的存在性数据的交换的网络基础设施服务的会话(342),以及向所述网络基础设施服务声明向分别与所述至少一个连接目标对应的所述网络节点中的至少一个网络节点输出包括所述位置定义的存在性数据的意图(344)。
全文摘要
遍布式实时框架(12)通过显著降低在其中网络节点(16-26)之间的实时连接是遍布式的新操作环境范例中开发实时软件应用所需的精力和时间的高级功能来支持实时软件应用的执行。该遍布式实时框架(12)响应于用户输入处置连接至通信者、虚拟区域、和其他网络资源、以及交换这些连接的复杂任务,并由此使得软件应用开发者能集中精力于开发高级实时软件应用功能性。
文档编号G06F3/048GK102362268SQ200980150168
公开日2012年2月22日 申请日期2009年12月4日 优先权日2008年12月5日
发明者D·范威尼, J·阿尔特梅尔 申请人:社会传播公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1