解析用以流化数据的分布式拓扑结构的制作方法

文档序号:6402248阅读:224来源:国知局
专利名称:解析用以流化数据的分布式拓扑结构的制作方法
技术领域
本发明一般涉及流化数据,尤其涉及解析一种用以流化数据的分布式拓扑结构。
背景技术
流化数据为用户提供增加的功能,使得用户可能快速地接收数据。没有流化的情况下,如果需要从一个源设备接收全部数据量,在由客户设备输出它之前,则用户可能在客户设备处呈现数据时经历延迟。通过流化数据,用户所遭遇的延迟可能被减少。可使用数据流来提供数据的“实时”呈现。
要流化数据,通常使用数据信息包,以流化或连续的方式从一个源设备传输数据,用于在数据到达时呈现于客户设备,而与直到包括数据的整个文件可用于客户设备时才呈现数据相反。流化可用于各种类型的数据,诸如视频数据、音频数据、媒体数据等等。视频数据流提供一个被传输的“活动图象”的序列,并在图象到达时被显示。同样,音频数据流提供在音频数据到达时播放的声音数据。媒体数据流既包括音频又包括视频数据。
以前,涉及数据流的使用的外围设备的使用是以本地方式完成的。例如,外围设备,诸如源外围设备(诸如摄像机、话筒和读卡机)和呈现设备(诸如显示监视器和扬声器),是以物理方式附连于单个计算设备,因此由源外围设备流化的数据可由呈现设备呈现。呈现数据可包括将数据转换成适合于由呈现设备以可感知的方式输出的形式,所述方式诸如在显示设备上显示,由音频扬声器播放等等。
如果希望数据流的远程访问,则远程访问受到提供数据的本地方式的限制。例如,要提供对由源外围设备流化的数据的远程访问,则在将数据流至客户设备之前,输出、压缩、解压缩、呈现、捕捉和再压缩数据。然而,当在将数据流至客户设备之前捕捉和再压缩数据时,作为由源外围设备输出的部分数据可能丢失。因此,降低了流至客户设备的数据的品质。这在用户观看和/或收听数据时减少了用户的体验,诸如通过经历在视频数据的显示过程中不连贯的动作和音频数据的不完全的播放所体验到的。另外,由源设备捕捉和再压缩数据是资源密集的,因此将此类功能限制于具有足够处理器和数据存储器资源的设备。而且,捕捉和再压缩呈现的数据可能减缓将数据流至客户设备,因此,限制数据的“实时”性。此外,如果多于一个目的地要求数据流,则进一步增加用于支持多个流的资源量。
因此,存在不断改进数据的流化的需求。

发明内容
描述一种分布式媒体会话,当执行该分布式媒体会话时,它解析分布式拓扑结构,该分布式拓扑结构引用用于将数据从源设备通过网络流至客户设备的软件组件。可将分布式拓扑结构认为是软件组件的构架或设计图,将用该软件组件来将数据从源设备通过网络流至客户设备。因而,当执行分布式拓扑结构的软件组件时,数据从源设备通过网络被流至客户设备。可通过分布式媒体会话的执行,基于分布式拓扑结构建立这些软件组件的分布式软件基础结构。分布式软件基础结构的软件组件的执行允许数据从源设备通过网络被流至客户设备。
当执行分布式媒体会话时,它可提供用于解析分布式拓扑结构的联合(即集中式)机制。例如,当执行分布式媒体会话时,它在解析分布式拓扑结构时可考虑源和客户设备两者的能力。另外,当执行分布式媒体会话时,它提供用于解析分布式拓扑结构的联合机制,使得可由客户设备、源设备和/或第三方设备来执行分布式媒体会话。分布式媒体会话的执行也可提供用于控制的联合机制。例如,在源和客户设备两者上的软件组件可由代表这样的联合机制的单个实体来控制。


图1例示了提供流化数据的系统的示例性实现,所述系统包括一父分布式媒体会话(DMS)用于将数据从源设备流至客户设备。
图2例示了一示例性实现,在其中计算环境使用图1的父DMS流化数据。
图3例示了具有子DMS的图1的父DMS的父-子关系的示例性实现。
图4例示了一示例性系统,它描述通过使用图3的子DMS提供使用联合方法的远程访问功能的父DMS。
图5例示了一示例性过程,在其中图1的父DMS建立一分布式软件基础结构,用于将数据从源设备流至客户设备。
图6例示了使用图5的过程解析远程源分布式拓扑结构的示例性实现。
图7例示了进一步从图6的远程源分布式拓扑结构解析的远程源分布式拓扑结构的示例性实现。
图8例示了完全从图7的远程源分布式拓扑结构完全解析的远程源分布式拓扑结构的示例性实现。
图9例示了在图8中所示的示例性实现的控制的层次。
图10例示了通过图5的过程解析的示例性解析的远程汇点分布式拓扑结构。
图11例示了在图10中所示的示例性实现中的控制的层次。
图12例示了在图1的客户设备上执行的代理的示例性实现。
图13例示正在图1的源设备上执行的代理的示例性实现。
图14例示了配置为源代理的图12的代理的示例性实现。
图15例示了配置为汇点代理的图13的代理的示例性实现。
图16例示了包括图14的源代理的远程源分布式拓扑结构的示例性实现。
图17例示了描述如在图16中所示的远程源分布式拓扑结构中的控制的层次的示例性实现。
图18例示了包括图15的汇点代理的远程汇点分布式拓扑结构的示例性实现。
图19例示了描述如在图18中所示远程汇点分布式拓扑结构的控制的层次的示例性实现。
图20例示了一示例性实现,在其中所示的系统包括以通信方式通过图1的网络耦合到源和客户设备的第三方设备。
图21例示了在图20中所示的系统中实现的第三方分布式拓扑结构的示例性实现。
图22例示了在图21所描述的实现中控制的层次的示例性实现。
图23例示了将数据流至图1的客户设备的多个源设备的示例性实现。
图24例示用于图23的系统解析的分布式拓扑结构的示例性实现。
图25例示了一系统的示例性实现,在该系统中分布式媒体会话的执行使用图5的过程,基于源和客户设备与流化的数据交互的能力,以最优化的方式解析分布式拓扑结构。
图26是描述一示例性过程的流程图,在其中建立软件组件的分布式软件基础结构并且将数据从源设备流至客户设备用于由客户设备呈现。
图27例示了示例性操作环境。
遍及本揭示和附图使用相同的数字来引用同样的组件和部件。
具体实施例方式
概述描述了分布式媒体会话(distributed media session)(DMS),当它被执行时,它解析分布式拓扑结构,该分布式拓扑结构引用用于将数据从源设备通过网络流至客户设备的软件组件。可认为分布式拓扑结构是软件的构架或设计图,用该软件组件来将数据从源设备通过网络流至客户设备。当被执行时,DMS可通过发现源设备流化要被呈现的数据的能力并且通过发现客户设备呈现来自源设备的数据流的能力,来解析该分布式拓扑结构。根据这两个发现,DMS建立分布式拓扑结构,该分布式拓扑结构引用适合于将数据从源设备通过网络流至客户设备的软件组件。然后可由DMS使用分布式拓扑结构来建立分布式软件基础结构,当执行分布式软件基础结构时,它允许将数据从源设备通过网络流至客户设备。
当执行DMS时,它可提供联合的,即集中式的机制用于解析分布式拓扑结构。例如,当执行DMS时,它可在解析分布式拓扑结构时考虑源和客户设备两者的能力。另外,DMS提供联合机制用于解析分布式拓扑结构,使得DMS可由客户设备、源设备和/或第三方设备来执行。DMS还可提供联合机制用于控制,使得在源和客户设备两者上的软件组件可由单个实体来控制,诸如由与DMS交互的应用程序和/或DMS本身来控制。
分布式媒体会话(DMS)图1例示流化数据的系统100的示例性实现。系统100包括源设备102和客户设备104,它们通过网络106以通信方式相耦合。网络106可包括局域网(LAN)、广域网(WAN)和因特网之一。
源设备102提供要呈现的数据流。源设备102可包括输出数据的源外围设备108。源外围设备108可配置为摄像机108a、话筒108b、读卡机等等。源设备102也可包括计算设备110,它以通信方式通过机内连接连至源外围设备108,诸如通过使用通用串行总线(USB)端口、IEEE 1394端口、并行端口等等。计算设备110包括用于执行一个或多个软件组件的处理器112和用于存储软件组件与数据的存储器114。源设备102还可包括呈现设备116,用于为与呈现设备116交互的用户提供数据的实际输出。呈现设备116可用各种各样的方式配置,诸如显示设备116a、扬声器116b等等。呈现设备116还以通信方式使用本地连接连至计算设备110。
尽管在图1中所示的源设备102配置为包括以通信方式耦合至计算设备110的源外围设备108,但可用各种各样的方式配置源设备102。例如,源设备102可配置为网络现成的(network-ready)设备,它不包括用以连接至网络106的独立的计算设备110,诸如通过自身包括处理器、存储器和网络硬件组件来配置。在另一个例子中,源设备102可配置为媒体服务器,它经由通过由源设备102执行软件提供的流化协议来提供流。
客户设备104还可包括具有处理器120和存储器122的计算设备118。客户设备104包括呈现设备124,它以通信方式通过本地连接连至计算设备118,用以提供数据的实际输出。与源设备102相似,尽管客户设备104被示为包括独立的计算设备118和独立的呈现设备124,但可用各种各样方式配置客户设备104。例如,客户设备104可配置为网络现成的呈现设备,它不包括计算设备118的全部资源。例如,客户设备104可配置为低资源设备,它具有有限的处理和存储能力,诸如有限量的RAM、无盘驱动器和有限的处理能力。
包括父分布式媒体会话126(父DMS)以允许系统100将数据从源设备102通过网络106流至客户设备104。父DMS 126是可由源设备102、客户设备104和/或在图20中所见到的第三方设备来执行的软件组件。通过父DMS 126的执行,可建立分布式软件基础结构以通过网络106流化数据。当执行父DMS 126时,它可发现源和客户设备102、104两者的能力。根据这些所发现的能力,父DMS 126可解决软件组件跨越客户设备104和源设备102两者的分布。在下面标题为“解析分布式拓扑结构”的章节中将对软件组件的分布进一步讨论。为有助于下面讨论,将进一步对父DMS 126或其它软件组件的执行以完成一个动作的情况进行参考,好象父DMS 126或其它软件组件完成这个动作一样。
图2例示使用分布式媒体会话126来流化数据的计算环境200。可包括父DMS 126作为在图1中所示的源设备102或客户设备104上的执行的操作系统202的一部分,同样可作为在图20中所见到的第三方设备2002的操作系统的一部分。操作系统202提供软件和硬件诸如源外围设备204(1)-204(N)和呈现设备206(1)-206(M)的组织和控制。
父DMS 126可在包括用于数据流的输入和/或输出的本地软件组件210的本地软件基础结构的顶上建立。本地软件组件210可包括设备驱动程序212、用于数据流的输出的播放器214诸如媒体播放器和其它216软件组件。父DMS216可管理这些本地软件组件210,并通过在图1中所示的网络106,既流示数据至这些本地软件组件210,又从它们流回数据。因而,父DMS 126可在不取代它们的情况下补充本地软件组件210。
可包括媒体引擎218以在应用程序208与父DMS 126之间提供接口。使用媒体引擎218来将父DMS 126的能力提供给应用程序208。换言之,媒体引擎218定义应用编程接口(API),因此应用程序208可与父DMS 126交互,并且反之亦然。另外,父DMS 126可使用媒体引擎218来提供用于与本地软件组件210交互的接口。也可使用媒体引擎218来控制各软件组件之间的数据流。例如,媒体引擎218可在本地软件组件210之间路由数据流,启动本地软件组件210的执行等等。
远程访问和联合在分布式软件基础结构的建立与控制中可遭遇另外的复杂化,与本地软件组件210的建立与控制相反,因为在分布式软件基础结构中在两个或多个设备上执行软件组件。另外,可在分布式软件基础结构中使用多种多样的软件组件来流化数据,这使分布式软件基础结构的建立与控制更复杂化。例如,各种各样的软件组件可包括本地软件组件210、媒体引擎218、发送器、接收器等等,将在下面标题为“解析分布式拓扑结构”的章节中更详细地描述它们的使用。
父DMS 126提供联合的,即集中式的方法用于建立适合于在两个或多个设备之间流化数据的分布式软件基础结构。此方法将计划的过程集中起来并且还将软件组件的控制集中起来。父DMS 126可在建立分布式软件基础结构时考虑源和客户设备101、104两者的能力。这允许由父DMS 126一致地建立和控制源和客户设备102、104两者的软件组件。通过使用联合的方法,父DMS 126可提供被优化于源和客户设备的分布式软件基础结构,如将在下面相对于图25进一步讨论的。
虽然可采用联合的方法建立分布式拓扑结构,但可在跨越多个设备的分布式拓扑结构的独立部分中提供建立与控制的元件。例如,可将建立与控制委托给具有用于软件组件的类似主机的设备,这些软件组件用来将数据从源设备102流至客户设备104。这个模型是由父DMS 126通过父-子关系的使用来支持的。不是试图直接控制分布式软件基础结构的所有软件组件,而是父DMS 126可建立,例如例示出它将控制委托给的子DMS 302,如在图3中所示。作为结果的结构可以是简单的单一的父-子关系,如在父DMS 126与子DMS 302之间所示的,或者是更复杂的类似树的结构,它包括若干父-子关系,如在图3中所示。
图4例示将父DMS 126描述为使用联合方法提供远程访问功能的示例性实现。父DMS 126用作父以作为子DMS 302的主导并控制子DMS 302。父DMS 126可通过以它为主导的软件组件通过媒体引擎218提供控制至应用程序208。这样,父DMS 126为应用程序208提供对数据流的远程访问功能。例如,父DMS 126作为子DMS 302的主导,后者包括跨越设备边界404的媒体引擎402,即在不同设备上执行。通过子DMS 302,父DMS 126可跨越设备边界404控制媒体引擎402。因而,子DMS 302为应用程序208通过父DMS 126,甚至在媒体引擎402远程于应用程序208的情况下,提供媒体引擎402的功能。
父DMS 126还可直接主导媒体引擎406。父DMS 126具有主导若干类型的软件组件的能力,包括媒体引擎406、子DMS 302和在图2中所示的、用于与通用即插即用的设备、传统设备等等交互的本地软件组件210。通过主导多个软件组件,父DMS 126可整合在软件组件上的控制。因此,多个软件组件可由应用程序208通过与父DMS 126的交互来控制。
可用各种各样方式配置子DMS 302以提供不同的功能。例如,可创建子DMS302来解决一种情况,即父DMS 126没有直接访问口而一个子DMS 302有访问口的软件组件,例如媒体引擎402。因此,由父DMS 126主导子DMS 302,以提供对软件组件如媒体引擎402的访问。另外,可创建子DMS 302以在一组指定的软件组件上施加控制。例如,可为每种类型被流化的数据如视频数据和音频数据,提供单独的子DMS。
最后,父DMS可提供分布式软件基础结构的至少一部分的整合的控制,如在图4中所示。例如,父DMS 126可分别控制位于每个源和客户设备102、104上的至少一个软件组件。产生子DMS 302的判断是解析分布式拓扑结构的结果,这在后续章节中讨论。
解析分布式拓扑结构图5例示一示例性过程500,在其中父DMS 126建立用于将数据从源设备102流至客户设备104的分布式软件基础结构。在块502,所示的是请求步骤,应用程序208将请求504发送给父DMS 126以流化数据。该请求引用在图1中所示的源和客户设备102、104。
父DMS 126使用请求504解析分布式拓扑结构,该分布式拓扑结构引用适合于将数据从源设备102流至客户设备104的软件组件。要解析分布式拓扑结构,父DMS 126首先发现源设备102与客户设备104分别与流化的数据交互的能力。例如,DMS 126可发现客户设备104呈现数据的能力和源设备102流化要呈现的数据的能力。
可用各种各样的方式发现能力。在块506的例示的实现中,所示的是发现能力的步骤,父DMS 126可检查源设备102找出源软件组件508,它涉及也就是具有来自源设备102的数据的流化,作为特征或结论。同样,父DMS 126可检查客户设备104来找出涉及呈现流至客户设备104的数据的客户软件组件510。检查源和客户设备102、104可包括找出由源和客户设备102、104向父DMS 126暴露例如使之可见的软件组件。
在另一个实现中,父DMS 126可通过查询查找表发现源和客户设备102、104的能力。查找表可返回规定源和/或客户设备102、104的能力的结果。查找表可作为父DMS 126的一部分驻留和/或驻留在图1中所示网络106上的其它地方,诸如驻留在源设备102、客户设备104和/或可通过网络106访问的附加设备(未示出)上。
在块512,所示的是解析分布式拓扑结构的步骤,父DMS 126从所发现的在块506所找出的源和客户设备120、104两者的能力导出分布式拓扑结构514。分布式拓扑结构514是一个引用软件组件的设计图,如蓝图,当执行这些软件组件时,将数据从源设备102流至客户设备104。例如,由父DMS 126在软件组件102中发现的源软件组件508可能是用于在图1中所示的源外围设备108的驱动程序。另外,在客户设备104中发现的客户软件组件510可能是媒体播放器,通过用于在图1中所示的客户设备104的呈现设备124的设备驱动程序提供数据。基于这些发现,父DMS 126可得到附加的软件组件516,在结合源软件组件508与客户软件组件510执行软件组件516时,将数据从源设备102流至客户设备104。基于所发现的源和客户软件组件508、510的能力,父DMS126得到分布式拓扑结构514,因此它包括附加软件组件516。在所例示的例子中,分布式拓扑结构514引用源与客户软件组件508、510连同附加的软件组件516。此时,分布式拓扑结构514提供用于将数据从源设备102流至客户设备104的设计图,但不提供实际的分布式软件基础结构来这么做。
在块518,所示的是建立分布式软件基础结构的步骤,父DMS 126基于分布式拓扑结构514提供附加的软件组件516来建立分布式软件基础结构520。分布式软件基础结构520包括附加的软件组件516和源与客户软件组件508、510。执行分布式软件基础结构520的源、客户和附加的软件组件508、510、516,以将数据从源设备102流至客户设备104。可用各种各样的方式提供附加的软件组件516。例如,可由父DMS 126存储和取回附加的软件组件516,诸如从本地存储器、位于图1的网络106上的存储器等等。
在图5所示的例子中,父DMS 126从包括对源和客户设备102、104的引用的请求504开始。父DMS 126然后从请求504解析块512的分布式拓扑结构514,接着可使用它建立块518的分布式软件基础结构520。可在无需用户介入的情况下自动地由父DMS 126完成在块502、506、512、518描述的步骤。父DMS 126可解析各种各样的分布式拓扑结构,诸如远程源分布式拓扑结构、远程汇点分布式拓扑结构和第三方分布式拓扑结构,在后续章节中将进一步讨论它们每一个。
远程源分布式拓扑结构图6、7和8例示远程源分布式拓扑结构的解析的示例性实现。远程源分布式拓扑结构指一种分布式拓扑结构,其中流化数据的源设备102是远程的,从主导父DMS 126的客户设备104来看,即跨越设备边界404。由客户设备104来执行父DMS 126以解析分布式拓扑结构。应用程序208也在客户设备104上执行。在图7中所示的应用,其中源设备102包括摄像机108a和摄像机软件组件602,并且客户设备104包括呈现设备124和显示软件组件604。
图6例示在图5的过程500的块512解析分布式拓扑结构的示例性实现。父DMS 126首先创建包括摄像机软件组件602和显示软件组件604的分布式拓扑结构606。摄像机软件组件602引用图7的摄像机108a的能力,诸如包括在摄像机108a上的、流化数据的本地软件组件,和摄像机108a的网络地址。同样,可使用显示软件组件604来引用能力,诸如包括在图7的呈现设备124上的是哪一个本地软件组件来呈现数据以及呈现设备124的网络地址。
在图6中所示的分布式拓扑结构606是部分的,因为没有引用将用于提供流化的数据的所有软件组件。如前所述,分布式拓扑结构606是用于分布式软件基础结构的设计图,并且因此不包括将实现的实际软件组件。例如,分布式拓扑结构606引用将由父DMS 126使用以提供用于将数据从摄像机108a流至图7的呈现设备124的分布式软件基础结构的软件组件。可由父DMS 126使用这些引用来提供在分布式拓扑结构606中所引用的软件组件,以建立如相对于图5所述的分布式软件基础结构。
在图7所示的例子中,摄像机108a和呈现设备124不是在本地相互连接的,而是通过在图1所示的网络连接的。如在标题为“远程访问和联合”的章节和图3中所讨论的,联合可涉及通过将控制委托给将控制将被用于在分布式软件基础结构中流化数据的本地软件组件的子DMS 302,来分段分布式拓扑结构606。例如,如在图7中所示,分布式拓扑结构606被分段成包括正在远程源即源设备102上创建的子DMS 702,由设备边界404将该源与客户设备104分开。
子DMS 702包括分布式拓扑结构606的一部分704,它也将经历解析的步骤。例如,对部分704的解析可包括增加对发送器706的引用,发送器706是由父DMS 126通过子DMS 702控制的软件组件。同样,对分布式拓扑结构606的解析也可包括增加对接收器708的引用,这是一个直接由父DMS 126控制的软件组件。发送器706跨越设备边界404流化数据。接收器708接收跨越设备边界404流化的数据。在发送器和接收器706、708之间可用各种各样的方式流化数据。例如,可由发送器706将数据“推”到接收器708,诸如通过将数据流至网络地址。也可由接收器708从发送器706“拉”数据,诸如通过从一网络地址取回数据流。
图8例示在完全被解析时的图6-7的分布式拓扑结构606。在此例中,在分布式拓扑结构606的部分704中引用媒体引擎802来控制将数据从摄像机软件组件602流至发送器706。在分布式拓扑结构606中包括另一个媒体引擎804来控制将数据从接收器708流至显示软件组件604。在图8中所示的箭头描述数据的流化。
图9例示图8所示的分布式拓扑结构606中的软件组件的控制的层次900。解析如在图8中所示的分布式拓扑结构606,使得父DMS 126在分布式拓扑结构的所有软件组件上具有控制。因此,父DMS 126将在根据分布式拓扑结构606建立的分布式软件基础结构上具有控制。例如,父DMS 126通过子DMS 702在摄像机软件组件602、媒体引擎802和发送器706上具有控制。在此例中,子DMS 702驻留在如图7所示的源设备102上。父DMS 126还在如图7所示的接收器708、媒体引擎804和显示软件组件604上具有控制。因而,父DMS 126将在可由分布式拓扑结构606建立的分布式软件基础结构上具有控制,并且可将此控制通过媒体引擎218提供给与父DMS 126交互的应用程序208。
远程汇点分布式拓扑结构图10例示解析的远程源分布式拓扑结构1000的示例性实现。远程汇点分布式拓扑结构1000指一种分布式拓扑结构,从执行父DMS 126的源设备102来看,其中客户设备104是远程的,即跨越设备边界404。由源设备102执行父DMS 126来解析分布式拓扑结构。用于远程汇点情况的分布式拓扑结构实际上是如相对于图6-9所述的远程源情况的镜像图。
解析分布式拓扑结构1002,它引用摄像机软件组件602和摄像机108a的显示软件组件604和呈现设备124,如在图6-9所示的先前的实现中。与以前一样,父DMS 126通过在客户设备104创建子DMS 1004来分段分布式拓扑结构1002,客户设备104跨越设备边界404与主导父DMS 126的源设备102分开。子DMS 1004包括分布式拓扑结构1002的一部分1006。分布式拓扑结构1002引用发送器1008和媒体引擎1010用于包含在源设备102上,并且引用接收器1012和媒体引擎1014用于包含在客户设备104上。
图11例示在图10中所示的远程汇点分布式拓扑结构中引用的软件组件的控制的层次1100。父DMS在可由图10的分布式拓扑结构1002形成的分布式软件基础结构上具有控制。例如,父DMS 126在摄像机软件组件602、媒体引擎1010和发送器1008上具有直接控制。父DMS 126还在包括由如在图10中所示的客户设备104上的子DMS 1004包括的接收器1012、媒体引擎1014和显示软件组件604上具有控制。因而,父DMS在可由分布式拓扑结构1002建立的分布式软件基础结构上具有控制。应用程序208,通过媒体引擎218与父DMS 126交互,然后还可控制由图10的分布式拓扑结构1002形成的分布式软件基础结构。
在远程源分布式拓扑结构和远程汇点分布式拓扑结构两者的前面的实现中,父DMS 126在根据分布式拓扑结构建立的全部分布式软件基础结构上提供控制。然而,可能在有些实例中,不在全部分布式软件基础结构上提供控制,如在下列章节中将讨论的。
供在分布式拓扑结构中使用的源和汇点代理软件组件图12例示代理1202的示例性实现1200。代理1202是一软件组件,父DMS126(未示出)通过该软件组件可为应用程序208提供与具有位于不同设备上的软件组件1204的交互,例如,从应用程序208跨越设备边界404。使用代理1202向应用程序208提供流化的数据,好象通过使用本地软件组件210在本地提供数据一样。因而,应用程序208可从摄像机108a接收流化的数据,好象在客户设备104上执行摄像机108a和其相应的软件组件1204一样。
图13例示代理1202的另外的示例性实现1300。还可使用代理1202接收和流化数据跨越设备边界404至软件组件1302。例如,代理1202可将数据流至软件组件1302用于在呈现设备124上显示,好象软件组件1302是正在源设备102上执行的本地软件组件210。
在父DMS 126(未示出)没有在分布式软件基础结构的全部软件组件上提供控制的实例中,可使用代理1202。因此,通过使用代理1202,在由父DMS 126解析分布式拓扑结构时使用联合模型,但在与图6-11有关的情况下不使用联合模型。
图14例示源代理1402的示例性实现1400。源代理1402包括父DMS 126和接收器1404。使用父DMS 126用于控制驻留在图12中所示的源设备102上的远程软件组件。接收器1404接收由发送器(未示出)流至接收器1206的数据,如前所述。
图15例示汇点代理1502的示例性实现1500。汇点代理1502包括父DMS126,使用它用于控制驻留在如在图13中所示的客户设备104上的软件组件1302。发送器1504流化数据至接收器(未示出),如前所述。不使用父DMS 126来控制正用作数据源的软件组件的情况下,可使用汇点代理1502从软件组件流化数据。
图16例示包括源代理1602的远程源分布式拓扑结构1600的示例性实现。在客户设备104上执行应用程序208和媒体引擎218,如在图6-9所示的远程源分布式拓扑结构中所述。然而,在此实例中,从应用程序208接收流化数据的请求的父DMS 126,将不被用于控制涉及要被流化的数据的源设备102的每个软件组件。换言之,父DMS 126将不在根据分布式拓扑结构建立的全部分布式软件基础结构上施加控制。因此,当解析分布式拓扑结构时,父DMS 126引用源代理1602,以使数据流至不受父DMS 126控制的软件组件。
父DMS 126在软件组件上提供控制,这些软件组件驻留在源设备102上,将数据从源设备102流至主导父DMS 126的客户设备104。例如,父DMS 126可通过使用媒体引擎1608来控制源软件组件1604和发送器1606。发送器1606将数据流至接收器1610,如前所述。然而,父DMS 126在数据的目的地上没有控制,在此实例中将数据的目的地称为汇点1612。汇点1612是一软件组件,被例示为表示不受父DMS 126控制的数据的目的地。因此,父DMS 126仅仅将数据流至汇点1612,在不控制它。应用程序208可与源代理1602交互,好象它是本地软件组件1614,即使父DMS 126控制远程于应用程序208的软件组件,如位于源设备102上的软件组件。
图17例示在图16所示的远程源分布式拓扑结构1600中控制的层次1700。在远程源分布式拓扑结构1600中,父DMS 126在媒体引擎1608、源软件组件1604、发送器1606和接收器1610上提供控制,如前所述。因为父DMS 126不在汇点1612上施加控制,父DMS 126将汇点1612识别为一个出口,在这个出口数据要被流化,但不受控制。
图18例示包括汇点代理1802的远程汇点分布式拓扑结构1800的示例性实现。远程汇点分布式拓扑结构1800与远程源分布式拓扑结构1600相似。在此实现中,在源设备102上执行应用程序208和媒体引擎218,如相对于在图10-11所示的远程汇点分布式拓扑结构所述。
从应用程序208接收流化数据的请求的父DMS 126,在分布式软件基础结构中将不使用它用于控制涉及数据的流化的客户设备104的所有软件组件。因此,在响应该请求时,父DMS 126将引用汇点代理1802,因此可使用一软件组件接收要被流化的数据,父DMS 126在该软件组件上没有控制。
父DMS 126对驻留在客户设备104上的软件组件上提供控制,这些软件组件从源设备102接收流化的数据。例如,父DMS 126可通过使用媒体引擎1808来控制接收器1804和客户软件组件1806。使用发送器1810来流化数据至接收器1804,如前所述。然而,父DMS 126在流化数据的全部软件组件上没有控制,在此实例中被称为原点(origin)1812。因此,父DMS 126在不控制它的情况下仅仅从原点1812接收数据。应用程序208可将汇点代理1802识别为本地软件组件1814。
图19例示在图18所示的远程汇点分布式拓扑结构1800中控制的层次1900。父DMS 126在媒体引擎1808、客户软件组件1806、接收器1804和发送器1810上提供控制。因为父DMS 126不在原点1812上施加控制,父DMS 126将原点1812识别为接收数据的入口,但父DMS 126在其上没有控制。
第三方分布式拓扑结构图20例示一示例性实现,其中所示的系统2000包括以通信方式通过网络106耦合至源和客户设备102、104的第三方设备2002。在前面的实现中,在所述的分布式拓扑结构中或者由源设备102或者由客户设备104提供解析与控制。也可使用第三方设备2002通过使用由父DMS 126提供的联合方法执行父DMS 126。因此,可使用第三方设备2002解析分布式拓扑结构以将数据从源设备102流至客户设备104。
图21例示第三方分布式拓扑结构2100的示例性实现。第三方设备2002执行父DMS 126,它通过媒体引擎218从应用程序208接收将数据从源设备102流至客户设备104的请求。父DMS 126创建第一子DMS 2102来解析包括源设备102的分布式拓扑结构的一部分。第一子DMS 2102还在包括在源设备102上的软件组件上提供控制。父DMS 126还创建第二子DMS 2104来解析客户设备104的分布式拓扑结构的一部分。第二子DMS 2104在包括在客户设备104上的软件组件上提供控制。
第一子DMS 2102引用由媒体引擎2110控制的源软件组件2106和发送器2108。第二子DMS 2104引用由媒体引擎2116控制的接收器2112和客户软件组件2114。图22例示在图21所示的第三方分布式拓扑结构2100中控制的层次2200。层次2200表明父DMS 126在第一子DMS 2102与第二子DMS 2104上提供控制。第一子DMS 2102在源软件组件2106、发送器2108和媒体引擎2100上提供控制。第二子DMS 2104在接收器2112、客户软件组件2114和媒体引擎2116上提供控制。
可用各种各样的方式配置第三方控制分布式拓扑结构2100。在图21所示的例子中,父DMS 126在位于源和客户设备102、104上的软件组件上提供控制。图20的第三方设备2002也可执行父DMS 126来解析或者由源设备102或者由客户设备104提供控制的分布式拓扑结构。而且,应该注意,在图21所例示的实现中,在不通过第三方设备2002流化的情况下,将数据从源设备102流至客户设备104。这样,第三方设备2002可解析在实际上自己没有流化数据的情况下流化数据的分布式拓扑结构。在另外的实现中,通过第三方设备2002将数据从源设备102流至客户设备104。
具有多个流的分布式拓扑结构尽管相对于单个数据流描述前面的实现有助于讨论,但父DMS 126可流化多个数据流。例如,可使用多个源设备,其中每个源设备将数据流至单个客户设备。另外,单个源设备可将数据的多个流流至一个或多个客户设备。同样,多个客户设备可从一源设备接收单个数据流。虽然将要讨论流化数据的多个流的使用的单个例子,但先前讨论的每个分布式拓扑结构和分布式软件基础结构可支持多个数据流。
图23例示系统2300的示例性实现,在系统2300中多个源设备将数据流至客户设备104。系统2300可包括第一源设备2302,它配置为网络现成的摄像机,例如,它包含使它能够以通信的方式耦合到网络106的功能。系统2300还包括配置为网络现成的音频输入设备的第二源设备2304,诸如网络现成的话筒。第一源设备2302流化视频数据和第二源设备2304流化音频数据,由客户设备104使用。可用各种各样的方式来配置第一和第二源设备2302、2304,诸如通用即插即用(UPnP)设备。
图24例示用于在图23的系统2300中使用的分布式拓扑结构的示例性实现。客户设备104包括应用程序208,它请求从第一和第二源设备2302、2304流化数据用于在客户设备104呈现。父DMS 126通过媒体引擎218接收请求并且解析分布式拓扑结构用于流化音频和视频数据。
父DMS 126创建第一子DMS 2402来解析第一源设备2302的分布式拓扑结构的一部分。第一子DMS 2402还提供包括在第一源设备2302上的软件组件的控制。另外,父DMS 126创建第二子DMS 2404来解析第二源设备2302的分布式拓扑结构的一部分。第二子DMS 2404还提供包括在第二源设备2302上的软件组件的控制。
第一子DMS 2402引用由媒体引擎2410控制的摄像机软件组件2406和发送器2408。第二子DMS 2404引用由媒体引擎2416控制的音频软件组件2412和发送器2414。父DMS 126可控制第一和第二子DMS 2402、2404来协调音频和视频数据的流至客户设备104。
以优化的方式解析分布式拓扑结构图25例示系统2500的示例性实现,在系统2500中,父DMS 126以优化的方式基于源和客户设备102、104与流化的数据交互的能力来解析分布式拓扑结构。要在本地呈现数据,源设备102可从所包括的源外围设备108产生原始数据流2502,即还没有经过处理或受过分析的数据。压缩原始数据2502以形成压缩的数据2504,因此可按有效方式来传输和存储数据。要与压缩的数据交互,源设备102解压缩压缩的数据2504以获得解压缩的数据2506。然后解压缩的数据2506经历呈现步骤以形成呈现数据2508,即适合于以实际形式输出用于与用户交互的数据(诸如被显示的、由音频设备播放的等等)。
父DMS 126通过发现源设备102和客户设备104之间的能力,可以提供最佳的分布式软件拓扑结构。例如,如图25所示,父DMS 126可以解析这样一种分布式拓扑结构,在这种分布式拓扑结构中,从源数据2502获得的压缩数据2504流入客户设备104。随后,客户设备104会对压缩数据2504进行解压缩,以形成解压缩的数据2510。解压缩数据2510接着形成呈现数据2512,由呈现设备124使用。
可使用分布式拓扑结构的优化来提供分布用于流化数据资源的分布式软件基础结构。例如,不为源设备102提供足以解压缩和呈现的硬件和软件资源,而可由客户设备104来提供此功能性。另外,压缩的数据2504可用加密的方式来压缩。通过提供压缩的数据2504的加密,数据保持被编码,因此可安全地在网络106上流化数据。
示例性过程图26是描述示例性过程2600的流程图,在该过程中建立将数据从源设备102流至客户设备104的软件组件的分布式软件基础结构。在块2602,由应用程序208发送请求。该请求可包括将流化的数据从源设备102传送至客户设备104的指令。可认为该请求是部分拓扑结构,在其中它不包括用于建立分布式软件基础结构以流化数据的软件组件的说明。
在块2604,父DMS 126接收包括源设备102和客户设备104的部分拓扑结构的请求。在块2606,父DMS 126解析分布式拓扑结构。分布式拓扑结构是一设计图,它引用适合于将数据从源设备102通过网络流至客户设备104的软件组件。
在块2608,父DMS 126首先开始通过发现源和客户设备102、104与流化的数据交互的能力来解析分布式拓扑结构。能力可包括用于流化要被呈现的数据的软件组件和分别由源与客户设备102、104呈现数据流的软件组件。可用各种各样方式发现这些能力。例如,父DMS 126可检查源与客户设备102、104来确定包括哪个软件组件涉及流化数据。父DMS 126也可查询包括源与客户设备102、104的能力的说明的查找表。
在块2610,父DMS 126得到分布式拓扑结构,该分布式拓扑结构引用适合于满足请求的多个软件组件。分布式拓扑结构可引用已经包括在源与客户设备102、104上的软件组件,以及引用要被包括以将数据从源设备102流至客户设备104的附加的软件组件。
在块2612,父DMS 126根据分布式拓扑结构建立分布式软件基础结构,它包括由分布式拓扑结构引用的软件组件。例如,父DMS 126可基于解析的分布式拓扑结构提供附加的软件组件来建立分布式软件基础结构。因而,父DMS 126使用分布式拓扑结构作为设计图来提供由分布式拓扑结构引用的软件组件。在块2614,源设备102通过网络使用分布式软件基础结构流化数据至客户设备104。在块2616,客户设备104呈现数据。
示例性操作环境在此所述的各种组件和功能性可由许多独立的计算机实现。图27所示的计算机环境2700的典型例子的组件包括由参考数字2702所指示的计算机。在各种实现中,源设备102、客户设备104和/或第三方设备2002可配置为计算机2702。图27所示的组件只是例子,而不是想要建议有关本发明的功能性的范围的任何限制;本发明不必依赖于图27所示的部件。
通常,可以使用各种不同的通用或专用计算系统配置。众所周知的可适用于本发明使用的计算系统、环境和/或配置的例子,包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子产品、网络PC、网络现成的设备、小型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境等等。
计算机的功能性在许多情况下是由诸如软件组件之类由计算机执行的计算机可执行指令来体现的。通常,软件组件包括完成特定的任务或实现特定抽象的数据类型的例程、程序、对象、组件、数据结构等等。也可由通过通信网络链接的远程处理设备完成任务。在分布式计算环境中,软件组件可位于本地或远程两者的计算机存储介质中。
在不同时间将指令和/或软件组件存储在或者是计算机的一部分或者是可以由计算机读取的各种计算机可读介质。例如,程序一般分布在软盘、CD-ROM、DVD或某种形式的通信介质诸如调制的信号上。从那里,将它们安装或加载到计算机的辅助存储器中。在执行时,至少部分地将它们加载到计算机的主电子存储器中。
为了说明,程序和其它可执行程序组件诸如操作系统在此被例示为分立的块,尽管可认识到,这样的程序和组件在不同时间驻留在计算机的不同存储组件中,并且由计算机的数据处理器执行。
参考图27,计算机2702的组件可包括,但不限于处理单元2704、系统存储器2706和将包括系统存储器在内的各种系统组件耦合到处理单元2704的系统总线2708。系统总线2708可以是任何若干类型的总线结构,包括存储器总线或存储控制器、外围总线和使用任何各种各样总线结构的局部总线。作为例子但非限制性地,这样的结构包括工业标准结构(ISA)总线,微通道结构(MCA)总线,增强型ISA(EISA)总线,视频电子标准协会(VESA)局部总线和也被称为夹层(Mezzanine)总线的外设部件互连(PCI)总线。
计算机2702一般包括各种各样的计算机可读介质。计算机可读介质可以是任何可由计算机2702访问的可用的介质,并包括易失性和非易失性介质、可移动和不可移动的介质。作为例子而非限制性地,计算机可读介质可包括计算机存储介质和通信介质。“计算机存储介质”包括易失性和非易失性、可移动和不可移动的介质,这是以任何用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的方法或技术实现的。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字通用盘(DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储器或其它磁存储设备或任何可以存储要求的信息并且可由计算机2702访问的其它介质。通信介质一般体现在调制的数据信号诸如载波或其它传输机制中的计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。术语“调制的数据信号”指具有以将信息编码到信号中的方式设置或改变的一个或多个其特性的信号。作为例子而非限制性地,通信介质包括有线介质,诸如有线的网络或直接线连接,并包括无线介质,诸如声音、RF、红外线、和其它无线介质。任何上述的组合也应该包括在计算机可读介质的范围之内。
系统存储器2706包括易失性和/或非易失性存储器诸如只读存储器(ROM)2710和随机存取存储器(RAM)2712形式的计算机存储介质。一般存储在ROM 2710中的有基本输入/输出系统2714(BIOS),包含如在启动过程中帮助在计算机2702内的元件之间传送信息的基本例程。RAM 2712一般包含可由处理单元2704立即访问的和/或正在运行的数据和/或软件组件。作为例子但非限制性地,图27例示操作系统2716、应用程序2718、软件组件2720和程序数据2722。
计算机2702还可包括其它可移动/不可移动的、易失性/非易失性计算机存储介质。仅作为例子,图27例示读写不可移动的非易失性磁介质的硬盘驱动器2724、读写可移动的非易失性磁盘2728的磁盘驱动器2726,和读写可移动的非易失性光盘2732诸如CD-ROM或其它光介质的光盘驱动器2730。可以在示例性操作环境中使用的其它可移动/不可移动的、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字通用盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器2724一般通过不可移动的存储器接口诸如数据介质接口2734连接至系统总线2708,并且磁盘驱动器2726与光盘驱动器2730一般通过可移动的存储接口连接至系统总线2708。
上面讨论并且在图27中例示的驱动器及其相关联的计算机存储介质为计算机2702提供计算机可读指令、数据结构、软件组件和其它数据。在图27中,例如,硬盘2724被例示为存储操作系统2716’、应用程序2718’、软件组件2720’和程序数据2722’。注意,这些组件可以与操作系统2716、应用程序2718、软件组件2720和程序数据2722相同,或者与它们不同。这里为操作系统2716’、应用程序2718’、软件组件2720’和程序数据2722’给出不同的数字是为了说明,至少它们是不同的拷贝。用户可通过输入设备诸如键盘2736和通常被称为鼠标、轨迹球或触摸板的定点设备(未示出)将命令和信息输入计算机2702。其它输入设备可包括源外围设备(诸如提供流化的数据的话筒2738或摄像机2740)、游戏杆、游戏垫、卫星天线、扫描仪等等。这些或其它输入设备常常通过耦合至系统总线的输入/输出(I/O)接口2742连接至处理单元2702,但可通过其它接口和总线结构诸如并行端口、游戏端口或通用串行总线(USB)来连接。也可通过接口诸如视频适配器2746将监视器2744或其它类型的显示设备连接至系统总线2708。除监视器2744之外,计算机也可包括其它外围呈现设备(例如扬声器)和一个或多个打印机2748,它们可通过I/O接口2742来连接。
计算机可在使用逻辑连接至一个或多个远程计算机诸如远程设备2750的网络化环境中运行。远程设备2750可以是个人计算机、网络现成的设备、服务器、路由器、网络PC、对等设备或其它通用网络节点,并且一般包括相对于计算机2702描述的上述许多或所有元件。图27所示逻辑连接包括局域网(LAN)2752和广域网(WAN)2754。尽管图27所示的WAN 2754是因特网,但WAN2754也可包括其它网络。这样的网络环境在办公室、企业级计算机网络、内部互联网等等中是很普通的。
当在LAN网络环境中使用时,计算机2702通过网络接口和适配器2756连接至LAN 2752。当在WAN网络环境中使用时,计算机2702一般包括调制解调器2758或其它装置,用于在因特网2754上建立通信。调制解调器2758,可以是内置的或外置的,可通过I/O接口2742或其它适当的机制连接至系统总线2708。在网络化环境中,相对于计算机2702所描述的程序模块或其部分可存储在远程设备2750中。作为例子而非限制,图27例示远程软件组件2760为驻留在远程设备2750。将意识到,所示的网络连接是示例性的,并且可使用计算机之间建立通信链接的其它装置。
结论尽管已经以专用于结构的特征和/或方法行为的语言描述了本发明,但要理解,在所附权利要求书中定义的本发明不必限制于所述的特定特征或行为。相反,特定的特征和行为是作为实现所主张的本发明的示例性形式而被揭示的。
权利要求
1.一种方法,其特征在于,包括请求要从源设备通过网络流至客户设备的数据;以及根据所述请求解析一分布式拓扑结构,其中所述分布式拓扑结构引用多个软件组件,当执行所述软件组件时满足所述请求;以及所述多个软件组件中的至少一个可在下列每个设备上执行所述源设备;以及所述客户设备。
2.如权利要求1所述的方法,其特征在于,所述解析的步骤还包括发现所述客户设备呈现数据流的能力;发现所述源设备流化要被呈现的数据的能力;以及从两者所述的能力得到所述分布式拓扑结构。
3.如权利要求1所述的方法,其特征在于,所述分布式拓扑结构是从由下列分布式拓扑结构组成的组中选择的远程汇点分布式拓扑结构;远程源分布式拓扑结构;以及第三方分布式拓扑结构。
4.如权利要求1所述的方法,其特征在于,还包括根据所述分布式拓扑结构建立分布式软件基础结构,其中所述分布式软件基础结构包括所述多个软件组件。
5.如权利要求1所述的方法,其特征在于,还包括根据优化的分布式拓扑结构建立分布式软件基础结构,使得所述分布式软件基础结构配置为,在数据被流化之前不用所述源设备呈现所述数据的情况下,将数据从所述源设备流至所述客户设备。
6.如权利要求1所述的方法,其特征在于所述请求还请求将数据从一附加的源设备流至所述客户设备;以及所述解析的步骤解析所述分布式拓扑结构,使得所述多个软件组件在被执行时,满足分别将数据从所述源设备与所述附加的源设备流至所述客户设备的请求。
7.如权利要求1所述的方法,其特征在于所述请求还请求将数据从所述源设备流至一附加的客户设备;以及所述解析的步骤解析所述分布式拓扑结构,使得所述多个软件组件在被执行时,满足将数据从所述源设备流至所述客户设备与所述附加的客户设备的每一个的请求。
8.如权利要求1所述的方法,其特征在于,所述分布式软件基础结构包括一分布式媒体会话,所述分布式媒体会话提供用于控制的联合机制,由此所述至少一个可在所述源设备上执行的软件组件可由所述分布式媒体会话控制;以及所述至少一个可在所述客户设备上执行的软件组件可由所述分布式媒体会话控制。
9.如权利要求1所述的方法,其特征在于,所述解析的步骤是在没有用户介入的情况下在从由下列设备组成的组中选择的一设备上执行的所述源设备;所述客户设备;以及第三方设备。
10.包括计算机可执行指令的一个或多个计算机可读介质,当所述指令被执行时,完成如权利要求1所述的方法。
11.一种方法,其特征在于,包括接收将数据从源设备通过网络流至客户设备的请求;以及解析分布式拓扑结构,所述分布式拓扑结构引用满足所述请求的软件组件,其中所述分布式拓扑结构是根据下列能力解析的所述客户设备呈现数据流的能力;以及所述源设备流化要被呈现的数据的能力;以及根据所述分布式拓扑结构建立分布式软件基础结构,所述分布式软件基础结构包括所述被引用的软件组件,其中所述软件组件中的至少一个可在下列设备的每一个上执行所述源设备;以及所述客户设备。
12.如权利要求11所述的方法,其特征在于,所述分布式拓扑结构是从由下列分布式拓扑结构组成的组中选择的远程汇点分布式拓扑结构;远程源分布式拓扑结构;以及第三方分布式拓扑结构。
13.如权利要求11所述的方法,其特征在于,所述解析的步骤还包括发现所述客户设备呈现数据流的能力;发现所述源设备流化要被呈现的数据的能力;以及从所述两者的能力得到所述分布式拓扑结构,其中所述分布式拓扑结构引用所述软件组件。
14.如权利要求11所述的方法,其特征在于,所述建立的步骤还包括,根据优化的分布式拓扑结构建立分布式软件基础结构,使得所述分布式软件基础结构配置为,在数据被流化之前不用所述源设备呈现所述数据的情况下,将数据从所述源设备流至所述客户设备。
15.如权利要求11所述的方法,其特征在于,所述分布式拓扑结构引用分布式媒体会话,所述分布式媒体会话为联合机制提供控制,使得所述至少一个可在所述源设备上执行的软件组件可由所述分布式媒体会话控制;以及所述至少一个可在所述客户设备上执行的软件组件可由所述分布式媒体会话控制。
16.如权利要求11所述的方法,其特征在于,所述接收和解析的步骤在没有用户介入的情况下在从由下列设备组成的组中选择的一设备上执行所述源设备;所述客户设备;以及第三方设备。
17.包括计算机可执行指令的一个或多个计算机可读介质,所述指令在被执行时,执行如在权利要求11所述的方法。
18.一种方法,其特征在于,包括发现客户设备呈现数据流的能力;发现源设备流化要被呈现的数据的能力;以及从两者所述的能力得到分布式拓扑结构,其中所述分布式拓扑结构引用多个软件组件来满足所述请求;以及由所述分布式拓扑结构引用的软件组件中的至少一个可在下列设备的每一个上执行所述源设备;以及所述客户设备。
19.如权利要求18所述的方法,其特征在于,所述分布式拓扑结构是从由下列分布式拓扑结构组成的组中选择的远程汇点分布式拓扑结构;远程源分布式拓扑结构;以及第三方分布式拓扑结构。
20.如权利要求18所述的方法,其特征在于,还包括根据所述分布式拓扑结构建立分布式软件基础结构,所述分布式软件基础结构包括所述的软件组件。
21.如权利要求18所述的方法,其特征在于所述发现所述客户设备的能力的步骤还包括,检查所述客户设备以找到呈现数据流的软件组件;以及所述发现源设备的能力的步骤还包括检查所述源设备以找到流化数据的软件组件。
22.如权利要求18所述的方法,其特征在于,所述分别发现客户和源设备的能力的步骤还包括查询一查找表,所述查找表包括所述客户设备呈现数据流的能力;以及所述源设备流化要被呈现的数据的能力。
23.如权利要求18所述的方法,其特征在于,所述分布式拓扑结构引用分布式媒体会话,所述分布式媒体会话提供联合机制用于控制,使得所述至少一个可在所述源设备上执行的软件组件可由所述分布式媒体会话控制;以及所述至少一个可在所述客户设备上执行的软件组件可由所述分布式媒体会话控制。
24.如权利要求18所述的方法,其特征在于,所述接收和解析的步骤在没有用户介入的情况下在从由下列设备组成的组中选择的一设备上执行所述源设备;所述客户设备;以及第三方设备。
25.包括计算机可执行指令的一个或多个计算机可读介质,所述指令在被执行时,完成如权利要求18所述的方法。
26.一种方法,其特征在于,包括接收将数据从源设备流至客户设备的请求;发现所述客户设备呈现数据流的能力;发现所述源设备流化要被呈现的数据的能力;从两者所述的能力得到分布式拓扑结构以满足所述请求,其中所述分布式拓扑结构引用多个软件组件;根据所述分布式拓扑结构建立分布式软件基础结构,其中所述分布式软件基础结构包括由所述分布式拓扑结构引用的所述软件组件;通过网络将数据从所述源设备流至所述客户设备;由所述客户设备呈现数据。
27.一个分布式媒体会话,其特征在于,包括具有指令的软件组件,所述指令在被执行时,指示下列行为解析分布式拓扑结构,所述分布式拓扑结构引用多个软件组件,所述软件组件在被执行时,满足将数据从源设备流至客户设备的请求;以及根据所述分布式拓扑结构,建立分布式软件基础结构,所述分布式软件基础结构包括所述软件组件,其中所述软件组件中的至少一个可在下列设备的每一个上执行所述源设备;以及所述客户设备。
28.如权利要求27所述的分布式媒体会话,其特征在于,所述解析的步骤还包括发现所述客户设备呈现数据流的能力;发现所述源设备流化要被呈现的数据的能力;以及从两者所述的能力得到所述分布式拓扑结构。
29.如权利要求27所述的分布式媒体会话,其特征在于,所述分布式拓扑结构是从由下列分布式拓扑结构组成的组中选择的远程汇点分布式拓扑结构;远程源分布式拓扑结构;以及第三方分布式拓扑结构。
30.如权利要求27所述的分布式媒体会话,其特征在于,所述建立的步骤还包括提供至少一个由所述分布式拓扑结构引用的附加的软件组件。
31.如权利要求27所述的分布式媒体会话,其特征在于,所述解析的步骤还包括优化所述分布式拓扑结构,使得根据所述分布式拓扑结构建立的分布式软件基础结构配置为,在数据被流化之前所述源设备没有呈现数据的情况下,将数据从所述源设备流至所述客户设备。
32.包括计算机可执行指令的计算机可读介质,所述指令在被执行时,指示计算设备完成下列行为在没有用户介入的情况下,解析分布式拓扑结构,所述分布式拓扑结构引用多个软件组件,所述软件组件在被执行时,通过网络将数据从源设备流至客户设备,其中所述多个软件组件中的至少一个可在下列设备的每一个上执行所述源设备;以及所述客户设备。
33.如权利要求32所述的计算机可读介质,其特征在于,所述解析的步骤还包括发现所述客户设备呈现数据流的能力;发现所述源设备流化要被呈现的数据的能力;以及从所述两者的能力得到所述分布式拓扑结构。
34.如权利要求32所述的计算机可读介质,其特征在于,所述分布式拓扑结构是从由下列分布式拓扑结构组成的组中选择的远程汇点分布式拓扑结构;远程源分布式拓扑结构;以及第三方分布式拓扑结构。
35.如权利要求32所述的计算机可读介质,其特征在于,还包括根据所述分布式拓扑结构建立分布式软件基础结构。
36.如权利要求32所述的计算机可读介质,其特征在于,还包括根据优化的分布式拓扑结构建立分布式软件基础结构,使得所述分布式软件基础结构配置为在数据被流化之前,在所述源设备没有呈现数据的情况下,将数据从所述源设备流至所述客户设备。
37.包括计算机可执行指令的计算机可读介质,所述指令在被执行时,指示计算设备以完成下列行为发现客户设备呈现数据流的能力;发现源设备流化要被呈现的数据的能力;以及在没有用户介入的情况下,从两者所述的能力得到分布式拓扑结构,其中所述分布式拓扑结构引用多个软件组件,所述软件组件在被执行时,将数据从所述源设备流至所述客户设备;以及由所述分布式拓扑结构引用的多个软件组件中的至少一个可在下列设备的每一个上执行所述源设备;以及所述客户设备。
38.如权利要求37所述的计算机可读介质,其特征在于,还包括根据所述分布式拓扑结构建立包括所述多个软件组件的分布式软件基础结构。
39.一个系统,其特征在于,包括用于流化要被呈现的数据的源设备;用于呈现数据流的客户设备;分布式媒体会话,在被执行时,使下列动作被完成解析分布式拓扑结构,所述分布式拓扑结构引用多个软件组件,所述多个软件组件在被执行时,将数据通过网络从所述源设备流至所述客户设备;以及根据所述分布式拓扑结构建立分布式软件基础结构,所述分布式软件基础结构包括所述软件组件,其中所述软件组件中的至少一个可在下列设备上的每一个上执行所述源设备;以及所述客户设备。
40.如权利要求39所述的系统,其特征在于,所述源设备是从由下列设备组成的组中选择的在本地连接至源外围设备的计算设备;以及用于流化要被呈现的数据的网络现成的设备。
41.如权利要求39所述的系统,其特征在于,所述客户设备是从由下列设备组成的组中选择的在本地连接至呈现设备的计算设备;以及适合于呈现数据的网络现成的设备。
42.如权利要求39所述的系统,其特征在于,所述解析的步骤还包括发现客户设备呈现数据流的能力;发现源设备流化要被呈现的数据的能力;以及从两者所述的能力得到分布式拓扑结构。
43.如权利要求39所述的系统,其特征在于,所述分布式拓扑结构是从由下列分布式拓扑结构组成的组中选择的远程汇点分布式拓扑结构;远程源分布式拓扑结构;以及第三方分布式拓扑结构。
44.如权利要求39所述的系统,其特征在于,所述建立的步骤还包括提供至少一个由所述分布式拓扑结构引用的软件组件。
45.如权利要求39所述的系统,其特征在于,所述建立的步骤还包括根据优化的分布式拓扑结构建立分布式软件基础结构,使得所述分布式软件基础结构配置为,在数据被流化之前,在所述源设备没有呈现数据的情况下,将数据从所述源设备流至所述客户设备。
46.如权利要求39所述的系统,其特征在于,所述分布式媒体会话的执行是由下列设备之一完成的所述源设备;所述客户设备;以及第三方设备。
47.一个系统,其特征在于,包括包括软件组件的源设备,所述软件组件在由所述源设备执行时,流化要被呈现的数据;包括软件组件的客户设备,所述软件组件在由所述客户设备执行时,呈现数据流;以及分布式媒体会话,在或者由所述源设备或者由所述客户设备执行时,提供联合机制用于控制下列组件所述软件组件,当由所述源设备执行时,流化要被呈现的数据;以及所述软件组件,在由所述客户设备执行时,呈现数据流。
48.如权利要求47所述的系统,其特征在于,所述源设备是从由下列设备组成的组中选择的在本地连接至源外围设备的计算设备;以及用于流化要被呈现的数据的网络现成的设备。
49.如权利要求47所述的系统,其特征在于,所述客户设备是从由下列设备组成的组中选择的在本地连接至呈现设备的计算设备;以及适合于呈现数据的网络现成的设备。
50.一个系统,其特征在于,包括网络;源设备,配置为压缩数据;以及在没有呈现所述压缩的数据的情况下,流化所述压缩的数据;以及客户设备,以通信方式通过网络连接至所述源设备,其中所述客户设备配置为通过所述网络从所述源设备接收流化的数据;解压缩所述接收的数据;以及呈现所述解压缩的数据。
51.如权利要求50所述的系统,其特征在于,所述源设备是从由下列设备组成的组中选择的在本地连接至源外围设备的计算设备;以及用于流化要被呈现的数据的网络现成的设备。
52.如权利要求50所述的系统,其特征在于,所述客户设备是从由下列设备组成的组中选择的在本地连接至呈现设备的计算设备;以及适合于呈现数据的网络现成的设备。
全文摘要
描述了分布式媒体会话,当它被执行时,根据将数据从源设备通过网络流至客户设备的请求,解析分布式拓扑结构。分布式拓扑结构引用多个软件组件,当它们被执行时,满足请求。多个软件组件中的至少一个可在源设备和客户设备的每一个上执行。
文档编号G06F13/38GK1669015SQ03801870
公开日2005年9月14日 申请日期2003年8月20日 优先权日2003年7月11日
发明者K·A·德比克, T·A·汤顿, T·D·百特博雷, N·Y·阿博杜, A·A·格里高罗维奇, D·A·沙瑟, R·Y·阿亚拉, E·P·奥力维拉 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1