CN102037710B - 用于远程处理多媒体插件调用的方法和系统 - Google Patents
用于远程处理多媒体插件调用的方法和系统 Download PDFInfo
- Publication number
- CN102037710B CN102037710B CN200980117887.XA CN200980117887A CN102037710B CN 102037710 B CN102037710 B CN 102037710B CN 200980117887 A CN200980117887 A CN 200980117887A CN 102037710 B CN102037710 B CN 102037710B
- Authority
- CN
- China
- Prior art keywords
- unit
- plug
- behalf
- multimedia plug
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2876—Pairs of inter-processing entities at each side of the network, e.g. split proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1096—Supplementary features, e.g. call forwarding or call holding
Abstract
本发明涉及用于远程提供发布到多媒体插件的调用的方法和系统。服务器上执行的代理插件可以拦截服务器上的容器应用发布的对于多媒体插件的调用。代理插件随后将该拦截的调用传送给客户机上执行的插件。客户机上的多媒体插件可以接收容器应用发布的调用,并且相应地产生图形或者多媒体内容。当产生多媒体或者图形内容时,多媒体插件可以在客户机上的插件窗口中显示产生的内容。在一些实例中,代理插件响应于容器应用发布的调用而不是将该调用转发给多媒体插件。在那些示例中,代理插件从高速缓存器获取内容并且使用获取的内容来响应容器应用调用。
Description
相关申请
本专利申请要求2008年5月19日提交的美国临时专利申请61/054325号的优先权,该申请公开内容认为是本申请公开内容的一部分并且通过引用全部包含于此。
技术领域
本发明总的涉及提供对于计算资源的远程访问。具体地,本申请涉及用于提供对多媒体插件的远程访问或者启用远程执行多媒体插件的系统和方法。
背景技术
一些远程表示系统在位于中央的宿主服务器上执行应用并且将那些应用的图形或者音频输出发送给位于远程的客户机装置。对于诸如字处理器的许多应用,服务器资源的消耗相对低。这会导致服务器的CPU上的相对小的负载以及应用所产生的低水平的网络业务量。由于通过要求大量网络带宽或者服务器处理性能(诸如大量服务器的CPU周期)使得这样的应用不会引发显著的性能下降,所以这样的应用可以寄载在单个服务器上。然而,处理大的媒体文件(诸如视频、动画或者音频应用)的应用消耗显著多的资源和带宽,从而导致用户体验的延迟和降级。
一些系统通过降低图形输出来提供对服务器和客户机之间的图形插件的远程访问。其他远程表示系统将视频的渲染从服务器机器重新定位到客户机机器。然而,这些系统不能用来提供对共享复杂界面的图形插件和应用的远程访问。这样的系统还不能用来启用执行图形内容的插件的远程执行。其他系统提供对机器之间流式传输或者共享的应用的远程访问,而不能远程访问设计为完全在单个机器上执行的应用。
存在一种需要,使得远程访问系统的用户可以运行资源需求应用,该远程访问系统不被设计为在位于中央的宿主服务器上被远程访问或者控制且不削弱用户体验、图形输出的质量或者严重削弱服务器的可扩缩性。
发明内容
广义来说,此处描述的方法和系统是用于远程处理多媒体插件的方法和系统的实施例。存在资源密集的许多应用或者插件并且因此当其执行时使用显著数量的计算资源。寄载用户通过客户机远程访问的应用的服务器可能必须执行这些资源密集型应用的许多示例,这些资源密集型应用在远程提供给客户机器时削弱服务器的性能并且消耗大量的带宽。需要一种方法和系统来远程提供对于这些资源密集型应用的访问,但不会使用大量服务器的资源。此处描述的方法和系统用于远程提供对于客户机上执行的大体类似的多媒体插件的多媒体插件调用。远程处理对于客户机上执行的插件的调用消除了插件在服务器上执行的需求,从而为客户机提供插件内容并且同时降低了对服务器资源的压力。
在一个实例中,此处描述用于远程处理从服务器到客户机的多媒体插件调用的方法的实施例。在服务器上执行并且和客户机上执行的多媒体插件对应的代理多媒体插件拦截服务器上执行的容器应用发布的调用。发布的调用从多媒体插件请求内容。代理多媒体插件确定该代理多媒体插件是否能够响应于该调用,并且响应于代理多媒体插件不能响应于该调用的确定,将该调用传送给客户机上执行的多媒体插件。客户机上的多媒体插件通过产生图形内容并且显示图形内容来响应于该调用。
在一个实施例中,该方法包括服务器上执行的递送应用将该调用从服务器传送到客户机。在另一个实施例中,调用从服务器传送给客户机上执行的代理容器应用。代理容器应用在接收到该调用时可以将该调用发布给客户机上执行的多媒体插件。
在一些实施例中,显示该图形内容可以包括在客户机上的插件窗口中显示该图形内容。
在一些实施例中,从多媒体插件请求内容可以包括请求访问多媒体插件中的多媒体插件接口。
在一些实施例中,该方法包括将该调用或者任一请求通过表示层协议在服务器和客户机之间的虚拟信道上传输。在其他实施例中,确定代理多媒体插件能够响应该调用可以导致代理多媒体插件使用请求的内容来响应容器应用调用。在一些实施例中,该请求的内容可以包括保存在服务器上的高速缓存器中的内容。
在其他实施例中,代理容器应用可以拦截多媒体插件发布的调用,其中该调用从容器应用请求内容。代理容器应用可以确定代理容器应用能够响应于发布的调用,并且代理容器应用可以使用请求的内容来响应多媒体插件调用。在一些实施例中,请求的内容包括保存在客户机上高速缓存器中的内容。
在一些实施例中,多媒体插件可以产生多媒体内容。在其他实施例中,多媒体插件显示多媒体内容。在一些实施例中,多媒体插件可以是控件,而在其他实施例中,代理多媒体插件是代理控件。
在一个实施例中,代理多媒体插件获得和代理多媒体插件关联的窗口数据,并且将该窗口数据传送给客户机上的多媒体插件。多媒体插件随后接收所传送的窗口数据,并且基于所接收的窗口数据来改变多媒体插件和代理容器之间的至少一个接口。
在一些实施例中,代理多媒体插件获得容器应用中的脚本产生的脚本接口,并且将脚本接口传送给代理容器应用。在其他实施例中,代理容器应用获得多媒体插件中的脚本所产生的脚本接口,并且将该脚本接口传送给代理多媒体插件。在一些实施例中,拦截调用包括拦截用于脚本接口的调用。
在一个实施例中,多媒体插件经由客户机上执行的浏览器应用来访问网络资源并且将所访问的网络资源下载到多媒体插件。
在其他实施例中,拦截对于多媒体插件产生的网络资源的请求并且将其通过表示层协议在客户机和服务器之间的虚拟信道上重定向到服务器。来自服务器的所请求的资源被接收并且转发到多媒体插件。
在一些方面,以上所述的过程和方法可以由计算机可读媒介来执行,该计算机可读媒介具有处理器可执行的指令来执行上述方法。
在其他方面,此处描述用于远程处理从服务器到客户机的多媒体插件调用的系统。该系统包括执行容器应用和与客户机上执行的多媒体插件对应的代理多媒体插件的服务器。代理多媒体插件可以:拦截容器应用发布的调用,该调用从多媒体插件请求内容;确定代理多媒体插件是否能够响应该调用;响应于代理多媒体插件不能响应该调用的确定来将该调用传送给多媒体插件。多媒体插件可以接收该调用,并且响应于接收该调用来产生图形内容。多媒体插件还可以显示图形内容。
附图说明
下面附图描述了此处描述的方法和系统的特定示例性实施例,其中类似的附图标记表示类似的部件。这些所描述的实施例可以理解为所描述的方法和系统的示例性说明,而不意于以任何方式进行限定。
图1A描述提供对可以执行应用程序的计算装置的远程访问的网络环境的实施例;
图1B和1C描述计算装置的实施例;
图1D示出描述服务器群组的实施例的框图;
图2示出描述用于远程处理多媒体插件调用的系统的实施例的框图;
图3A示出描述用于远程调用多媒体插件的过程的实施例的流程图;
图3B示出描述用于响应对于多媒体插件的远程调用的过程的实施例的流程图;
图4示出描述用于响应调用的过程的实施例的流程图;
图5示出描述允许远程处理对插件的调用的过程的实施例的流程图;
图6示出描述用于获取并且远程提供插件窗口数据的过程的实施例的流程图;
图7示出描述用于远程提供脚本接口的过程的实施例的流程图;
图8示出描述用于获取网络资源的过程的实施例的流程图。
具体实施方式
图1A示出包括与服务器106A-106N通信的一个或多个客户机器102A-102N,和安装在客户机器102A-102N和服务器106A-106N之间的网络104的计算环境101的一个实施例。在一些实施例中,客户机器102A-102N可以称之为单个客户机器102或者单组客户机器102,而服务器可以称之为单个服务器106或者单组服务器106。一个实施例包括和超过一个服务器106通信的单个客户机器102,另一个实施例包括和超过一个客户机器102通信的单个服务器106,而另一个实施例包括和单个服务器106通信的单个客户机器102。
在一些实施例中,计算环境中的客户机器102称之为以下名词术语中的任意一个:客户机器102、客户机、客户计算机、客户机装置、客户机计算装置、本地机器、远程机器、客户机节点、端点、端点节点或者第二机器。在一些实施例中,服务器106可以称之为以下名词术语中的任意一个:服务器、本地机器、远程机器、服务器群组、宿主计算装置或者第一机器。
在一些实施例中,客户机器102可以执行、操作或以其他方式提供应用,所述应用可以是以下任一种:软件;程序;可执行指令;web浏览器、基于web的客户机;客户机-服务器应用;瘦-客户机的计算客户机;ActiveX控件;或Java小程序;与基于互联网协议的语音(VoIP)通信相关的软件,例如软IP电话;流式传输视频和/或音频的应用;促进实时数据通信的应用;HTTP客户机;FTP客户机;Oscar客户机;Telnet客户机;或可以在客户机器102上执行的任意其它类型和/或形式的可执行指令。在其他实施例中,可以包括具有基于服务器或基于远程的应用和代表客户机器102在服务器106上执行的应用的计算环境101。此外,计算环境101的另外的实施例包括配置为使用瘦-客户机或远程显示协议来显示输出图形数据到客户机器102的服务器106,其中,所使用的协议可以是以下任一协议:由位于Ft.Lauderdale,Florida的Citrix Systems公司出品的独立计算架构(ICA)协议或由位于Redmond,Washington的微软公司出品的远程桌面协议(RDP)。
在一个实施例中,客户机器102可以是虚拟机器102C,诸如Xensolutions、Citrix System、IBM、VMware出品的虚拟机器,或者可以执行此处描述的方法和系统的任意其它虚拟机器。
在一些实施例中,计算环境101可以包括超过一个的服务器106A-106N,其中该服务器106A-106N:作为单个服务器106实体组合在一起;在服务器群组106中逻辑组合在一起;在服务器群组106中地理上分散并且逻辑组合在一起;在服务器群组106中彼此位置接近并且逻辑组合在一起。在一些实施例中,服务器群组106中的地理上分散的服务器106A-106N可以使用WAN、MAN或者LAN来通信,其中不同地理区域的特征在于:不同的洲、同一洲的不同区域、不同国家、不同州、不同城市、不同校园、不同房间、或者前述地理位置的任意组合。在一些实施例中,服务器群组106可以管理为单个实体或者在其他实施例中可以包括多个服务器群组106。计算环境101可以包括在单个服务器群组106中组合在一起的超过一个的服务器106A-106N,其中服务器群组106是不同种类的,使得一个服务器106A-106N可以根据第一类型的操作系统平台(例如,由位于Redmond,Washington的微软公司出品的WINDOWS NT)来进行操作,而一个或多个其它的服务器106A-106N可以根据第二类型的操作系统平台(例如,Unix或Linux)来进行操作;超过一个的服务器106A-106N可以配置为根据第一类型的操作系统平台(例如,WINDOWSNT)来操作,而另一个的服务器106A-106N配置为根据第二类型的操作系统平台(例如,Unix或Linux)来操作;或者超过一个的服务器106A-106N可以配置为根据第一类型的操作系统平台(例如,WINDOWS NT)来操作,而超过一个的其他服务器106A-106N配置为根据第二类型的操作系统平台(例如,Unix或Linux)来操作。
在一些实施例中,计算环境101可以包括一个服务器106或者多个服务器106,来提供以下任一服务器类型的功能性:文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟服务器、部署服务器、SSL VPN服务器、防火墙、web服务器、应用服务器或者作为主应用服务器;配置为用作活动目录的服务器106;配置为用作应用加速应用的服务器106,该应用加速应用提供防火墙功能性、应用功能性或者负载平衡功能性;或者配置为用作服务器106的其它类型的计算机器。在一些实施例中,服务器106可以包括远程验证拨入用户服务,使得服务器106是RADIUS服务器。在服务器106包括设备的计算环境101的实施例中,服务器106可以是以下任一公司制造的设备:Citrix应用网络公司,Silver Peak System公司,Riverbed技术公司,F5网络公司或者Juniper网络公司。一些实施例包括具有以下功能性的服务器106:第一服务器106A接收来自客户机器102的请求,将该请求转发给第二服务器106B,并且使用来自第二服务器106B的响应来响应客户机器产生的请求;获取可用于客户机器102的应用的列举以及和服务器106相关的地址信息,该服务器106寄载通过应用的列举来识别的应用;使用web接口将响应呈现给客户机请求;和客户机102直接通信来为客户机102提供对所识别应用的访问;接收诸如显示数据的输出数据,该输出数据通过执行服务器106上识别的应用来产生。
该服务器106可以配置为执行以下任一应用:提供瘦-客户机计算的应用或远程显示表示应用,Citrix Systems公司的例如METAFRAME或CITRIX PRESENTATION SERVER的Citrix ACCESS SUITE的任意部分,微软公司出品的MICROSOFT WINDOWS终端服务,或Citrix Systems公司开发的ICA客户机。另一个实施例包括配置为运行应用的服务器106,使得服务器可以用作诸如以下任一应用服务器类型的应用服务器:提供例如微软公司出品的MICROSOFT EXCHANGE的电子邮件服务的电子邮件服务器,web或Internet服务器,桌面共享服务器、或协作服务器。其他实施例包括执行以下任一类型的所寄载服务器应用的服务器106:CitrixOnline Division公司提供的GOTOMEETING、由位于SantaClara,California的WebEx公司提供的WEBEX、或由微软公司提供的Microsoft Office LIVE MEETING。
在一个实施例中,服务器106可以是虚拟机器106B,诸如CitrixSystems、IBM、VMware出品的虚拟机器,或者可以执行此处描述的方法和系统的任意其它虚拟机器。
在一些实施例中,客户机器102可以用作寻求对服务器106提供的资源的访问的客户机节点,或者用作为其他客户机102A-102N提供对所寄载资源访问的服务器106。计算环境101的一个实施例包括提供主节点的功能性的服务器106。客户机器102和一个服务器106或者多个服务器106A-106N之间的通信可以经由以下方法建立:客户机器102和服务器群组106中的服务器106A-106N之间的直接通信;客户机器102使用程序邻近应用以与服务器群组106中的服务器106a-106n进行通信;或者客户机器102使用网络104与服务器群组106中的服务器106A-106N进行通信。计算环境101的一个实施例包括客户机器102,该客户机器102使用网络104来请求执行服务器群组106中的服务器106A-106N寄载的应用,并且使用网络104来接收来自服务器106A-106N的表示应用执行的图形显示输出。在其他实施例中,主节点提供所要求的识别并提供与寄载被请求的应用的服务器106相关的地址信息的功能性。其他实施例包括可以是以下任一个的主节点:服务器群组106中的服务器106A-106N,连接到服务器群组106但不包括在服务器群组106中的远程计算机器;连接到客户机102但不包括在客户机器102的组中的远程计算机器,或者客户机器102。
客户机器102和服务器106之间的网络104是数据在客户机器102和服务器106之间传送的连接。虽然图1A中描述了将客户机器102连接到服务器106的网络104,但是其他实施例包括具有安装在和服务器106相同的网络上的客户机器102的计算环境101。其他实施例包括具有可以是以下任一的网络104的计算环境101:局域网(LAN)、城域网(MAN)、广域网(WAN);包括位于客户机器102和服务器106之间的多个子网络104’的主网络104;具有专用子网104’的主公用网络104;具有公用子网104’的主专用网络104;或者具有专用子网104’的主专用网络104。其他实施例包括可以是以下任意网络类型的网络104:点到点网络、广播网、远程通信网、数据通信网、计算机网络、ATM(异步传送模式)网络、SONET(同步光学网络)网络、SDH(同步数字体系)网络、无线网络、有线网络,包括无线链路的网络104,其中该无线链路可以是红外信道或卫星频带、或者可以将数据从客户机器102传送到服务器106或者反向传送来实现此处描述的方法和系统的任意其它网络类型。在多个实施例中网络拓扑可以不同,可能的网络拓扑包括:总线型网络拓扑、星型网络拓扑、环型网络拓扑、基于转发器的网络拓扑,分层星型网络拓扑,或者可以将数据从客户机器102传送到服务器106或者反向传送来实现此处描述的方法和系统的任意其它网络拓扑。附加的实施例可以包括利用以下任一协议在移动装置之间通信的移动电话网络的网络104:AMPS、TDMA、CDMA、GSM、GPRS UMTS、或者能够在移动装置之间传送数据来实现此处描述的方法和系统的任意其它协议。
图1B中示出计算装置100的实施例,其中图1A中所示的客户机器102和服务器106可以布置为此处示意和描述的计算装置100的任意实施例,和/或在其上执行。计算装置100中包括和以下部件通信的系统总线150:中央处理单元121;主存储器122;存储装置128;输入/输出(I/O)控制器123;显示装置124A-124N;安装装置116;和网络接口118。在一个实施例中,存储装置128包括操作系统、软件例程和客户机代理120。在一些实施例中,I/O控制器123还连接键盘126和点击装置127。其他实施例可包括I/O控制器123,该I/O控制器123连接到多个输入/输出装置130A-130N。
图1C中示出计算装置100的一个实施例,其中图1A中所示的客户机器102和服务器106可以布置为在此处示意和描述的计算装置100的任意实施例,和/或在其上执行。计算装置100中包括和以下部件通信的系统总线150:桥接器170和第一I/O装置130A。在另一个实施例中,桥接器170还和中央处理单元121相通信,其中中央处理单元121还和第二I/O装置130B、主存储器122以及高速缓存器140相通信。中央处理单元121中包括I/O端口、存储器端口103和主处理器。
计算机器100的实施例可包括特征在于以下任一部件配置的中央处理单元121:响应并处理取自主存储器单元122的指令的逻辑电路;例如Intel公司出品的、Motorola公司出品的、位于Santa Clara,California的Transmeta公司出品的微处理器单元;例如国际商业机器公司出品的RS/6000处理器;例如Advanced Micro Devices公司出品的处理器;或者能够执行此处描述的方法和系统的逻辑电路的任意其它组合。中央处理单元122的其他实施例可以包括以下任意组合:微处理器、微控制器、具有单处理核的中央处理单元,具有双处理核的中央处理单元,或者具有多处理核的中央处理单元。
计算机器100的一个实施例包括经由被称为背端总线的次级总线来与高速缓存器140通信的中央处理单元121,而计算机器100的其他实施例包括经由系统总线150与高速缓存器进行通信的中央处理单元121。在一些实施例中,中央处理单元还可使用本地系统总线150来与多类I/O装置130A-130N进行通信。在一些实施例中,本地系统总线150可以是以下任一类型的总线:VESA VL总线、ISA总线、EISA总线、微通道架构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。计算机器100的其他实施例包括是视频显示器124的I/O装置130A-130N,其可以经由高级图形端口(AGP)来与中央处理单元121进行通信。计算机器100的其他版本包括经由以下任一连接连接到I/O装置130A-130N的处理器121:HyperTransport、Rapid I/O或InfiniBand。计算机器100的其他实施例包括通信连接,其中,处理器121使用本地互连总线与一个I/O装置130A进行通信,并且通过直接连接与第二I/O装置130B进行通信。
计算装置100的一些实施例中包括主存储单元122和高速缓存器140的每一个。在一些实施例中,高速缓存器140可以是以下任一类型的存储器:SRAM、BSRAM或者EDRAM。其他实施例包括可以是以下任一类型的存储器的高速缓存器140和主存储器单元122:静态随机存取存储器(SRAM)、突发式SRAM或同步突发式SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页面模式DRAM(FPM DRAM)、增强型DRAM(EDRAM)、扩展数据输出RAM(EDO RAM)、扩展数据输出DRAM(EDO DRAM)、突发式扩展数据输出DRAM(BEDO DRAM)、增强型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)、Difect Rambus DRAM(DRDRAM)、或铁电RAM(FRAM),或者可以执行此处描述的方法和系统的任意其它类型的存储器设备。在一些实施例中,主存储器单元122和/或高速缓存器140可以包括可以保存数据并且允许中央处理单元121直接访问任意存储位置的一个或者多个存储器装置。另外的实施例包括可以经由以下任一个来访问主存储器122的中央处理单元121:系统总线150,存储器端口103,或者允许处理器121访问存储器122的任意其它连接、总线或者端口。
计算装置100的一个实施例提供对以下任一安装装置116的支持:用于接收像3.5英寸、5.25英寸磁盘或ZIP磁盘这样的软盘的软盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、多种格式的磁带驱动器、USB装置、可引导媒介、可引导CD、像的GNU/Linux发行版的可引导CD、硬盘驱动器或适于安装应用或软件的任意其它装置。在一些实施例中,应用可以包括客户机代理120或者客户机代理120的任意部分。计算装置100还可以包括存储装置128,例如可以为一个或多个硬盘驱动器或独立磁盘的冗余阵列,其中,存储装置配置为保存操作系统、软件、程序应用或者至少一部分客户机代理120。计算装置100的其它实施例包括用作存储装置128的安装装置116。
此外,计算装置100可以包括通过多种连接来接口连接到局域网(LAN)、广域网(WAN)或者因特网的网络接口118,所述多种连接包括但不限于标准电话线、LAN或WAN链路(例如,802.11、T1、T3、56kb、X.25、SNA、DECNET)、宽带连接(例如,ISDN、帧中继、ATM、吉比特以太网、SONET上的以太网)、无线连接或上述任意或所有连接的一些组合。还可以使用多种通信协议(例如,TCP/IP、IPX、SPX、NetBIOS、以太网、ARCNET、SONET、SDH、光纤分布数据接口(FDDI)、RS232、RS485、IEEE802.11、IEEE802.11a、IEEE802.11b、IEEE802.11g、CDMA、GSM、WiMax和直接异步连接)建立连接。计算装置100的一个版本包括可以经由以下任意类型和/或形式的网关或者隧道协议来和附加的计算装置100’通信的网络接口118:诸如安全套接字层(SSL)或者传输层安全协议(TLS)或者Citrix Systems公司出品的Citrix网关协议。网络接口118的版本可以包括以下任一个:内置网络适配器、网络接口卡、PCMCIA网卡、插件总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适于将计算装置100接口连接到可以通信并执行此处所描述的方法和系统的网络的任意其它装置。
计算装置100的实施例包括以下任一的I/O装置130A-130N:键盘126、指示装置127、鼠标、轨道垫、光学笔、轨道球、麦克风、绘画板、视频显示器、扬声器、喷墨打印机、激光打印机和染料升华打印机,或者可以执行此处描述的方法和系统的任意其它输入/输出装置。在一些实施例中,I/O控制器123连接到多个I/O装置130A-130N来控制一个或多个I/O装置。I/O装置130A-130N的一些实施例可配置为提供存储装置或安装介质116,而其它实施例中,可以提供通用串行总线(USB)接口以接收诸如由Twintech Industry公司出品的USB闪存驱动器系列装置的USB存储装置。I/O装置130的其它实施例可以是在系统总线150和外部通信总线之间的桥接器,所述外部通信总线例如:USB总线、Apple Desktop总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire 800总线、以太网总线、AppleTalk总线、吉比特以太网总线、异步传送模式总线、HIPPI总线、超HIPPI总线、SerialPlus总线、SCI/LAMP总线、FibreChannel总线或串行附加小型计算机系统接口总线。
在一些实施例中,计算装置100可以连接到多个显示装置124A-124N,在其它实施例中,计算装置100可以连接到单个显示装置124,但在其他实施例中,计算装置100连接到相同或不同的类型或形式的显示的显示装置124A-124N。显示装置124A-124N的实施例可以由以下来支持和启用:一个或者多个I/O装置130A-130N,I/O控制器123,I/O装置130A-130N和I/O控制器123的组合,可以支持显示装置124A-124N的硬件和软件的组合,任意类型和/或形式的视频适配器、视频卡、驱动器和/或库,以接口连接、通信、连接或以其他方式使用显示装置124a-124n。在一些实施例中,计算装置100可以配置为使用一个或者多个显示装置124A-124N,这些配置包括:包括多个连接器以接口连接多个显示装置124a-124n;包括多个视频适配器,每个视频适配器连接到一个或多个显示装置124A-124N;包括被配置来支持多个显示器124A-124N的操作系统;使用计算装置100中包括的电路和软件来连接和使用多个显示装置124A-124N;并且执行主计算装置100和多个次级计算装置上的软件来使得主计算装置100使用次级计算装置的显示器作为主计算装置100的显示装置124A-124N。计算装置100的其它实施例可以包括多个次级计算装置提供的并且经由网络连接到主计算装置100的多个显示装置124A-124N。
在计算机器100的一些实施例中,可以包括操作系统来控制任务调度和对系统资源的访问。计算装置100的实施例可以运行以下任一操作系统:任意一种版本的微软WINDOWS操作系统,例如WINDOWS 3.x、WINDOWS95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3.51、WINDOWS NT 4.0、WINDOWS CE、WINDOWS XP和WINDOWS VISTA,不同版本的Unix和Linux操作系统,苹果计算机出品的任意版本的MAC OS,国际商业机器公司出品的OS/2,任意嵌入式操作系统,任意实时操作系统、任意开源操作系统、任意专用操作系统、用于移动计算装置的任意操作系统、或者可以运行在计算装置上并执行此处所描述的操作的任意其它操作系统。计算机器100的一个实施例具有安装在其上的多个操作系统。
计算机器100可以被嵌入到以下任一计算装置:计算工作站、台式计算机、膝上型或笔记本计算机、服务器、便携计算机、移动电话、便携通信装置、媒体播放装置、游戏系统、移动计算装置、苹果公司出品的IPOD系列产品的任意一个,索尼公司出品的PLAYSTATION系列产品的任意一个,任天堂公司出品的Nintendo系列产品的任意一个,或者微软公司出品的XBOX系列产品的任意一个,或者可以通信并具有执行此处所描述的方法和系统的足够的处理器能力和存储容量的任意其它类型和/或形式的计算、通信或者媒体装置。在其它实施例中,计算机器100可以是诸如以下任一个移动装置的移动装置:JAVA使能的蜂窝电话或者个人数字助手(PDA),诸如摩托罗拉公司出品的i55sr、i58sr、i85s、i88s、i90c、i95cl、或者im1100,Kyocera出品的6035或者7135,三星电子公司出品的i300或者i330,Palm公司出品的TREO180、270、600、650、680、700p、700w或者750智能电话,具有与之相符的输入装置、不同的处理器以及操作系统的任意计算装置,或者可以执行此处描述的方法和系统的任意其它移动计算装置。计算环境101的其他实施例包括可以是以下任一个的移动计算装置100:任一系列的黑莓电话,或者Reserch InMotion Limited出品的其他便携装置,Apple计算机出品的iPhone,任一便携或者智能电话,Pocket PC、Pocket PC电话或者其它支持微软Windows移动软件的便携移动装置。
现在参考图1D,服务器106一起包括群组38或者服务器群组,其中每个服务器106可以包括网络侧接口202和群组侧接口204。网络侧接口202可以和一个或者多个客户机102或网络104相通信。网络104可以是WAN、LAN或者如上述那些网络的任意其它实施例的网络。
每个服务器106具有和群组38中其他服务器106的一个或者多个群组侧接口204相连接的群组侧接口204。在一个实施例中,每个群组侧接口204互连到其它群组侧接口204,使得群组38中的服务器106可以互相通信。在每个服务器106上,群组侧接口204和网络侧接口202通信。群组侧接口204还可以和永久存储器230相通信(如箭头220所示)并且在一些实施例中和动态存储器240相通信。当存在这些时,服务器106、永久存储器230和动态存储器240的组合总地称之为群组38。在一些实施例中,服务器106和永久存储器230通信,而其他服务器106’和服务器106通信来访问保存在永久存储器中的信息。
永久存储器230可以物理实现在磁盘、磁盘群组、独立磁盘冗余阵列(RAID)、可擦写密致盘、或者允许数据读写并且在存储装置断电时保持所写数据的任意其它装置。单个物理装置可以为多个永久存储器提供存储装置,即单个物理装置可以用来为超过一个群组38提供永久存储器230。永久存储器230保持和群组38中每个服务器106相关的静态数据以及群组38中所有服务器106所使用的全局数据。在一个实施例中,永久存储器230可以保持轻量目录访问协议(LDAP)数据模型中的服务器数据。在其他实施例中,永久存储器230将服务器数据保存在ODBC兼容数据库中。为了便于描述,术语“静态数据”是指不频繁改变的数据,即数据仅基于每小时、每天、或者每周改变,或者数据从不改变。每个服务器使用永久存储子系统来从永久存储器230读取数据或者将数据写到永久存储器230。
出于可靠性的考虑永久存储器230保存的数据可以物理或者逻辑地被复制。例如,可以使用一组冗余、镜像磁盘提供物理冗余,每一个磁盘提供一份数据备份。在其他实施例中,可以使用标准数据库技术来复制数据库自身,以提供数据库的多个备份。在进一步的实施例中,可以同时使用物理和逻辑复制。
可以以多种方式嵌入动态存储器240(即所有记录表的集合)。在一个实施例中,动态存储器240集中式的,即所有的运行时数据保存在群组38中的一个服务器106的存储器中。该服务器在寻求对运行时数据的访问时如同群组38中所有其他服务器106与之通信的主网络节点一样操作。在另一个实施例中,群组38中的每个服务器106保持动态存储器240的完整备份。这里,每个服务器106和每个其他服务器106相通信,来保持其动态存储器240最近的备份。
在另一个实施例中,每个服务器106维持其自身运行时数据并且当寻求从其他服务器106获取运行时数据时和该其他服务器106相通信。因此,例如尝试寻找客户机102所请求的应用程序的服务器106可以直接和群组38中的每个其他服务器106相通信,来找到寄载所请求应用程序的一个或者多个服务器。
对于具有大量服务器106的群组38,这些实施例所产生的网络业务量可以变得巨大。在一个实施例中,通过将群组38中的服务器106的子集(典型地是两个或者更多个服务器)指定为“收集器点”,减轻巨大的网络业务量。总的来说,收集器点是收集运行时数据的服务器。每个收集器点保存从群组38中某个其他服务器106收集的运行时数据。群组38中的每个服务器106可以如同收集器点一样操作,并且随后可以被指定为收集器点。在一个实施例中,每个收集器点保存整个动态存储器240的备份。在另一个实施例中,每个收集器点保存动态存储器240的一部分,即其保持特定数据类型的运行时数据。服务器106保存的数据类型可以根据一个或者多个标准来预先确定。例如,服务器106可以基于它们的启动顺序来保存不同类型的数据。此外,服务器106所保存的数据类型可以通过管理员使用管理工具(未示)来配置。在这些实施例中,动态存储器240分布在群组38中的两个或者更多个服务器106之间。
未指定为收集器点的服务器106知道群组38中指定为收集器点的服务器106。未指定为收集器点的服务器180在递送和请求运行时数据时可以和特定收集器点通信。随之,在收集器点寻求访问运行时数据时,因为群组38中的每个服务器106和单个收集器点服务器106相通信,而不是与每个其他服务器106相通信,所以收集器点减轻网络业务量。
对于超过一类的数据,每个服务器106可以如同收集器点一样操作。例如,服务器106”可以如同收集器点操作,用于特许信息和用于承载信息。在这些实施例中,每个收集器点可以积累不同类型的运行时数据。例如,为了说明该情况,服务器106”’可以收集特许信息,而服务器106”收集承载信息。
在一些实施例中,每个收集器点保存在群组38中的所有服务器106之间共享的数据。在这些实施例中,特定类型数据的每个收集器点和群38中用于该类数据的每个其它收集器点交换由收集器点收集的数据。因此,在完成这样的数据的交换之后,每个收集器点106”和106处理相同的数据。在这些实施例中,每个收集器点106和106”还保持每个其它收集器点对运行时数据的任意并列更新。
浏览可以使得客户机102来查看群组38、服务器106以及群组38中的应用并且来访问可用的信息,诸如通过群组38的会话。每个服务器106包括ICA浏览子系统260来为客户机102提供浏览性能。在客户机102和任一服务器106的ICA浏览器子系统260建立连接之后,该浏览器子系统支持各种客户机请求。这样的客户机请求包括:(1)列举群组中服务器的名称,(2)列举群组中公布的应用的名称,(3)将服务器名称和/或应用名称解析为对于客户机102有用的服务器地址。ICA浏览器子系统260还支持运行程序邻居应用的客户机102作出的请求,程序邻居应用在请求时为客户机102提供授权用户的群组38中的那些应用的视图。ICA浏览器子系统260将所有的上述客户机请求转发给服务器106中的合适的子系统。
在一个实施例中,群组38中具有程序邻居子系统270的每个服务器106可以为客户机102的用户提供群组38中的应用的视图。对于客户机102的用户已经授权访问的那些应用,程序邻居子系统270可以限制那些应用的视图。典型地,该程序邻居服务将应用程序作为图标的列表或者组呈现给用户。
程序邻居子系统270提供的功能性可以适用于两类客户机,(1)程序邻居启用的客户机,可以访问直接来自客户机桌面的功能性,和(2)非程序邻居启用的客户机(例如,旧有客户机),可以通过运行服务器上的程序邻居启用的桌面来访问功能性。
程序邻居启用的客户机和程序邻居子系统270之间的通信可以出现在ICA虚拟信道的顶部上建立的专用虚拟信道上。在其他实施例中,使用XML服务来产生通信。在其中一个这样的实施例中,程序邻居启用的客户机和XML子系统相通信,诸如以下结合图6描述的XML服务516,在服务器106上提供程序邻居功能性。
在一个实施例中,程序邻居启用的客户机与具有程序邻居子系统270的服务器之间不存在连接。对于该实施例,客户机102发送请求到ICA浏览器子系统260来建立到服务器106的ICA连接,用来识别可用于客户机102的应用。客户机102随后运行获得用户的证书的客户机侧对话。ICA浏览器子系统260接收该证书并且将其发送到程序邻居子系统270。在一个实施例中,程序邻居子系统270将该证书发送给用户管理子系统用于验证。用户管理子系统可以返回表示用户所属账户列表的一组不同的名称。验证时,程序邻居子系统270建立程序邻居虚拟信道。该信道保持开放,直到完成应用过滤。
程序邻居子系统270随后从和那些账户相关的通用应用子系统524请求程序邻居信息。该通用应用子系统524从永久存储器230获取程序邻居信息。当接收到程序邻居信息时,程序邻居子系统270格式化并且通过程序邻居虚拟信道返回程序邻居信息给客户机。随后关闭部分ICA连接。
对于程序邻居启用的客户机和服务器建立部分ICA连接的另一个例子中,考虑选择群组38的客户机102的用户。群组38的选择将请求从客户机102发送给ICA浏览器子系统260来建立和所选群组38中的其中一个服务器106的ICA连接。ICA浏览器子系统260将请求发送给程序邻居子系统270,其选择群组38中的服务器106。和服务器106相关的地址信息被识别并且通过ICA浏览器子系统260返回给客户机102。客户机102可以随后连接到对应于所接收地址信息的服务器106。
在另一个实施例中,程序邻居启用的客户机102在建立程序邻居虚拟信道时建立ICA连接,并且只要ICA连接存在就一直保持开放。通过此程序邻居虚拟信道,程序邻居子系统270将程序邻居信息更新推送到客户机102。为了获取该更新,程序邻居子系统270预定来自通用应用子系统524的事件,来允许程序邻居子系统270检测所公布应用的变化。
图2中所示为描述用于远程处理多媒体插件的系统的实施例的框图。该系统可以包括在虚拟通信信道255上经由表示层协议和远程计算机器102通信的本地计算机器106。本地计算机器106上执行的是容器应用205、插件215和代理插件210,其中插件215和代理插件210可以和容器应用205相通信。应用/桌面递送系统220和容器应用205以及代理插件210相通信,该应用/桌面递送系统220可以在虚拟通信信道上和在远程计算机器102上执行的客户机代理230相通信。应用显示窗口250和代理容器应用235与客户机代理230相通信。代理容器应用235还与应用显示窗口250以及插件240相通信。本地计算机器106和远程计算机器102上都包括高速缓存存储器225和245。
进一步参考图2并且更详细地,在一个实施例中,本地计算机器106可以是上述任意计算机器。在一个实施例中,本地计算机器106是服务器。在其他实施例中,本地计算机器106可以称之为第一计算机器或者第二计算机器。在一些实施例中,本地计算机器106可以是服务器106,该服务器106可以是应用服务器、服务器群组中的服务器或者能够提供内容到服务器106所连接的客户机的任意其它类型的服务器中的任意一个。在大部分实施例中,本地计算机器106可以通过诸如此处描述的任意网络的网络104和远程计算机器102相通信。
在一些实施例中,远程计算机器102可以是上述任一计算机器。在一个实施例中,远程计算机器102是客户机102,而在其它实施例中,远程计算机器102可以是第一计算机器或者第二计算机器。在一些实施例中,客户机102可以是便携式计算装置,诸如此处描述的任意便携装置。远程计算机器102可以通过诸如此处描述的任意网络的网络104和本地计算机器106相通信。
在一些实施例中,虚拟通信信道255是ICA信道。因此在这些实施例中,本地计算机器106和远程计算机器102之间通过虚拟通信信道255的通信使用诸如CITRIX SYSTEMS出品的ICA协议的表示层协议来产生。在一些实施例中,本地计算机器106和远程计算机器102可以通过RDP、PCAnywhere或者任意其它表示层协议来通信。在一些实施例中,在诸如此处描述的任意网络的网络104上建立虚拟通信信道255。通信信道255可以是远程计算机器102和本地计算机器106之间的虚拟信道、虚拟通信信道、信道、虚拟通信连接或者任意其它通信连接。
应用/桌面递送系统220和客户机代理230可以促进虚拟通信信道255上的通信。应用/桌面递送系统220在本地计算机器106上执行并且操作来从本地计算机器106通过通信信道255发送信息到远程计算机器102。更具体地,应用/桌面递送系统220可以从容器应用205接收图形应用输出并且将该图形应用输出发送给远程计算机器102上执行的客户机代理230。随后客户机代理230可以在远程计算机器102上执行的应用显示窗口250中显示所接收的图形应用输出。在一些实施例中,应用/桌面递送系统220可以从本地计算机器106上的代理插件210接收调用、请求和其他信息并且将调用、请求和其他信息发送给客户机代理230,客户机代理230将调用、请求或信息转发给代理容器应用235。
虽然图2中示出了和容器应用205相通信的应用/桌面递送系统220,但是其他实施例中包括从本地计算机器106上执行的任意数量个应用接收图形应用输出的应用/桌面递送系统220。应用/桌面递送系统220接收图形应用输出并且将该输出发送给客户机代理230,客户机代理230随后将输出转发给合适的应用显示窗口250,在该处显示该输出。
在一些实施例中,应用/桌面递送系统220和本地计算机器106上的其它应用或者存储仓库通信。在一个实施例中,代理插件210可以将以下任意内容转发给应用/桌面递送系统220:插件216发布的调用,对于容器应用205发布的媒体和多媒体内容的请求,代理插件210获取的窗口信息,代理插件210获取的脚本接口,保存在高速缓存器225中的图形输出,保存在高速缓存器225中的图形命令或者窗口信息,以及本地计算机器106上执行的对象发布的任意其它保存的信息或者请求。应用/桌面递送系统220可以将任意接收的保存信息、接收的命令或者请求发送给远程计算机器102上执行的客户机代理230。在一个实施例中,远程计算机器102可以接收信息并且将该信息转发给远程计算机器102上执行的对象或者在应用显示窗口250显示图形输出。
在一个实施例中,容器应用205在本地计算机器106上执行。该容器应用205可以是此处描述的任意应用。更具体地,容器应用205可以是:浏览器应用,MICROSOFT OFFICE应用,ADOBE应用,GOOGLE应用,web应用,云应用,远离本地计算机器106的计算机器上执行的应用(即,第三或者第四计算机器),或者可以执行插件并且显示插件执行结果的任意其它应用。例如,插件可以是执行FLASH播放器的INTERNET EXPLORER浏览器应用。
在一些实施例中,插件215可以是诸如FALSH播放器的ACTIVEX控件。插件215还可以是以下任一个:ACTIVEX应用或者控件,JAVA小程序,ACTIVEX DATA OBJECT,DIRECT SHOW对象,ACTIVE脚本,以及可以在此处描述的方法和系统中执行的任意其它嵌入式或者链接式控件或者子应用。在一个实施例中,插件215在容器应用205的上下文中执行。在其他实施例中,插件215链接到容器应用205,使得插件215如同其包括在容器应用205中一样执行。虽然图2描述了具有插件215的本地计算机器106,但是在一些实施例中本地计算机器106不执行或者相反具有插件215。
远程计算机器102上的插件240如同插件215一样可以是ACTIVEX控件,诸如FLASH播放器。插件240还可以是以下任一个:ACTIVEX应用或者控件,JAVA小程序,ACTIVEX DATA OBJECT,DIRECT SHOW对象,ACTIVE脚本,以及可以在此处描述的方法和系统中执行的任意其它嵌入式或者链接式控件或者子应用。在一个实施例中,插件240和代理容器应用235相关联或者相链接。在其他实施例中,插件240如同其包括在代理容器应用235中一样执行。
在一些实施例中,代理插件210响应插件215。在其他实施例中,代理插件210响应于在远程计算机器102上执行的插件240。以与插件将自身安装在计算机器上几乎相同的方式,代理插件210可以将自身安装在本地计算机器106上。通过这样操作,代理插件210由本地计算机器106上的操作系统来处理并且更重要地由容器应用205像完全安装的插件应用那样处理。每当容器应用205向对应于代理插件210的插件发布请求或者调用时,代理插件210可以拦截该请求或者调用并且或者响应该请求或者调用,或者将该请求或者调用转发给远程计算机器102上执行的插件240。代理插件210可以响应该插件240,使得该代理插件210可以表示以下任意的:ACTIVEX应用或者控件,JAVA小程序,ACTIVEX DATAOBJECT,DIRECT SHOW对象,ACTIVE脚本,以及可以在此处描述的方法和系统中执行的任意其它嵌入式或者链接式控件或者子应用。
在一些实施例中,代理插件210是安装在本地计算机器106上的插件二进制文件(即,COM服务器*.d11文件)。通过在本地计算机器106上安装插件二进制文件,代理插件210显示给容器应用205好像代理插件210是实际插件应用。因此,对于插件的所有调用被重新发送、传递或者以其他方式代理到代理插件210。例如,容器应用205可以是执行代理插件210的INTERNET EXPLORER浏览器应用,该代理插件210是FLASH播放器。FLASH播放器代理插件210拦截INTERNET EXPLORER浏览器中执行的页面发布的对于FLASH播放器的调用,并且将该调用转发给远程计算机器102上执行的代理容器应用235。对应于本地计算机器106上执行的INTERNET EXPLORER浏览器容器应用205的代理容器应用235发布对于远程计算机器102上的插件240的调用。插件240,远程机器102上的FLASH播放器,基于该调用来产生多媒体内容并且将该内容显示在远程计算机器102上或者应用显示窗口250中的插件窗口中。所产生的页面是显示HTML页面中的FLASH内容的HTML页面,该HTML页面显示在远程计算机器102上,其中HTML页面在本地计算机器106上产生并且FLASH内容在远程计算机器102上产生。
在一个实施例中,代理插件210可以收集并且获取和本地计算机器106上的容器应用205和插件215相关的窗口数据。在一个实施例中,容器应用205在本地计算机器106上的容器窗口中执行。该容器窗口(未示)可以和窗口数据相关联,该窗口数据例如:桌面上容器窗口的位置,窗口的大小,容器窗口是否最大化或者最小化,以及和容器应用205的显示相关的任意其它窗口数据。类似地,在容器应用205中并且从而在容器窗口中可存在和插件内容的显示相关的插件窗口数据。在一些实施例中,插件窗口数据可以包括:容器窗口中的插件图形区域的位置(即,容器窗口中显示插件输出的位置),显示插件输出的图形区域的大小,和插件图形输出区域相关的剪辑区域,以及和在容器窗口中显示插件输出相关的任意其它窗口数据。
在一些实施例中,代理插件210可以查询容器应用205关于插件窗口数据的信息。在一个实施例中,该查询可以是代理插件210发布到容器应用205的接口调用。类似地,在一些实施例中,该查询可以是对本地计算机器106上执行的操作系统查询关于插件窗口数据的信息。响应于该查询,容器应用205可以将插件窗口数据发送给代理插件210,代理插件210将插件窗口数据发送给远程计算机器102上的插件240。一旦远程插件240接收到插件窗口数据,该插件240可以根据本地计算机器106上的容器应用205来配置或者构造自身。在一些实施例中,该插件窗口数据可以经由远程表示协议传送到远程插件240,在其他实施例中,在窗口数据中包括附加的协议命令,使得远程插件240可以接收并且解释插件窗口数据。
在一些实施例中,代理插件210可以响应远程计算机器102上执行的插件240。代理插件210和插件240的每一个可以称之为图形插件、媒体插件、多媒体插件、远程插件、或者本地插件。插件210、240可以产生以下任意类型的内容:图形、多媒体、音频、视频、媒体、或者可以由插件应用产生的任意其它类型的内容。插件210、240可以和高速缓存器225、245相通信,来获取图形或者多媒体内容,或者来获取容器应用205所请求的其他信息。插件210、240可以和计算机器的其他部分通信,包括操作系统、桌面应用和在计算机器上执行的任意其它应用。
在一个实施例中,高速缓存器225、245包括在本地计算机器106和远程计算机器102上。高速缓存器225和245可以包括能够存储以下内容的任意存储仓库:图形内容,多媒体内容,窗口数据,图形命令和此处描述的方法和系统所使用的任意其他信息或者内容。在一些实施例中,本地计算机器106上高速缓存器225的内容和远程计算机器106上高速缓存器245的内容相同。在其他实施例中,在每个高速缓存器225、245中可以保存调用响应或者重复请求的图形或者多媒体内容,窗口数据或者脚本信息。代理插件210或者代理容器应用235可以从高速缓存器225、245获取该内容并且通过从高速缓存器225、245获取所请求的内容来响应容器应用205和/或插件240发布的调用。
在一个实施例中,应用显示窗口250在远程计算机器102上执行。应用显示窗口250可以显示由本地计算机器106上执行的应用所产生并且通过虚拟信道255发送到应用显示窗口250的图形应用输出。在一个实施例中,代理容器应用235和应用显示窗口250相通信,使得代理容器应用235将插件240输出转发给应用显示窗口250,用于显示。
代理容器应用235可以响应于本地计算机器106上执行的容器应用205,使得代理容器应用235大体上表示和容器应用205一样的应用。在一个实施例中,代理容器应用235可以向远程计算机器102上执行的操作系统登记,使得代理容器应用235显示为好像其是完整安装的容器应用。在这样的实施例中,代理容器应用235可以是在远程计算机器102上执行的可执行二进制文件,作为客户机代理230控制的单独进程,或者作为客户机代理230的一部分。安装代理容器应用235好像其是容器应用的完全安装,这允许远程计算机器102上的插件240和代理容器应用235相交互,好像代理容器应用235是容器应用205。
在一些实施例中,代理容器应用235和代理插件210包含和容器应用205以及插件240一样的COM和DCOM接口。因此,容器应用205发布的对于插件240上的COM和DCOM接口的调用可以同样发布给代理插件210上的COM和DCOM接口。与之相反,插件240发布的对于容器应用205上的COM和DCOM接口的调用可以同样发布给代理容器应用235上的COM和DCOM接口。
在大部分实施例中,代理容器应用235、容器应用205、插件240和代理插件210可以使用MICROSOFT COM和DCOM技术来发布和接收调用。在其他实施例中,代理容器应用235、容器应用205、插件240和代理插件210可以使用能够将消息从一个对象转发给另一个对象的另一个内部进程或者内部应用通信标准。
图3A中示出用于远程提供容器应用发布的对于插件的调用的过程300的实施例。本地计算机器106上执行的代理插件210可以拦截本地计算机器106上执行的容器应用205发布的调用(步骤302)。一旦拦截到调用,代理插件210随后确定代理插件210是否可以响应所发布的调用(步骤304)。如果代理插件210可以响应所发布的调用,则代理插件210使用所请求的内容来响应该调用(步骤306)。否则,如果代理插件210不能响应该调用,则代理插件210将该调用发送远程计算机器102上执行的代理容器应用235(步骤308)。
现在参考图3A并且更详细地,在一个实施例中,代理插件210可以拦截容器应用205发布的对于插件240的调用(步骤302)。容器应用205发布的调用可以包括以下任意内容:访问插件240的请求,访问插件240上特定接口的请求,对于插件240所产生的图形或者多媒体内容的请求,访问插件240中执行的脚本的请求,或者请求插件240来产生内容或者对于调用的响应的任意其它调用或者请求。在一些实施例中,代理插件210可以拦截容器应用205发布的调用,而在其它实施例中,容器应用205可以发布对于本地计算机器106上执行的插件215的调用。在此实施例中,插件215随后可以将所有调用转发给代理插件210。在其他实施例中,代理插件210可以在容器应用205发布的调用或者请求被插件215接收之前将其拦截。在此实施例中,代理插件210可以钩住容器应用205上应用程序接口,使得代理插件210可以拦截容器应用205发布的任意调用。
一旦代理插件210拦截到容器应用205发布的调用,代理插件210随后确定代理插件210是否可以响应该调用(步骤304)。确定代理插件210是否可以响应调用可以包括检查本地计算机器106上的高速缓存器225的内容,来确定高速缓存的响应是否已经保存在本地计算机器106上。在一些实施例中,代理插件210可以查询表格来确定代理插件210是否可以响应。在这样的实施例中,每当在高速缓存器中保存响应时,就在指示特定调用(即,请求,请求的插件接口、伴随请求的元数据)和响应的存储器位置的表格中插入一项。检查该表格可以指示代理插件210关于代理插件210是否可以响应该调用,并且可以通知代理插件210该响应位于高速缓存器中的位置(即,高速缓存器中响应的存储器位置)。使用所获取的存储器位置,代理插件210可以从高速缓存器225获取该响应,并且使用获取的响应来响应容器应用205(步骤306)。在其他实施例中,代理插件210通过搜索该高速缓存器225并且一旦该响应被找到就获取该响应来确定代理插件210是否可以响应。如果找到响应,则代理插件210可以响应。相反,如果该响应未找到,则代理插件210不能响应。
当代理插件210确定代理插件210不能响应时,则代理插件210可以将该调用发送给远程计算机器102上执行的代理容器应用235(步骤308)。在一些实施例中,将该调用传送给代理容器应用235可以包括将调用通过虚拟信道255传送给客户机代理230。客户机代理230随后可以转播或者以其他方式转发该调用到代理容器应用235,或者在一些实施例中,可以将该调用转发给远程计算机器102上执行的插件240。在一些实施例中,将调用转发给代理容器应用235包括在将调用通过虚拟信道255传输之前压缩、编码和/或加密该调用。
图3B示出用于接收所发布的对插件240的调用的过程350的一个实施例。远程计算机器102上执行的代理容器应用235可以接收容器应用205所发布的调用(步骤352)。该代理容器应用235将该调用转发给远程计算机器102上执行的图形或者多媒体插件240(步骤354)。图形插件通过产生媒体或者多媒体内容来响应该调用(步骤356)并且所产生的媒体或者多媒体内容显示在连接到远程计算机器102的显示装置上(步骤358)。
进一步参考图3B并且更详细地,在一个实施例中,远程计算机器102上执行的代理容器应用235接收容器应用205所发布的调用(步骤352)。在其他实施例中,客户机代理230接收容器应用205发布的调用。一旦客户机代理230接收到该调用,则客户机代理230将该调用转发给插件240(步骤354)。在一些实施例中,代理容器应用235从代理插件210接收调用,而在其它实施例中,代理容器应用235从客户机代理230接收调用。客户机代理230可以从应用/桌面递送系统220或者代理插件210接收调用。接收该调用可以包括接收和调用相关的元数据。在一些实施例中,代理容器应用235转发该调用和元数据到插件240。在其他实施例中,接收该调用可以包括接收容器应用205发布的第一调用,而随后接收的调用可以称之为容器应用205所发布的第二调用。
一旦代理容器应用235接收到该调用,则该代理容器应用235将该调用转发或者发布给远程计算机器102上执行的图形插件240(步骤354)。当客户机代理230接收到该调用时,客户机代理230可以将该调用转发或者发布给插件240或者将该调用转发给代理容器应用235。在大部分实施例中,代理容器应用235将该调用转发或者发布给插件240。在一些实施例中,该客户机代理230在将该调用转发给代理容器应用235或者插件240之前译码、解密和/或解压缩该调用和任意相关的元数据。
在调用发布给插件240之后,插件240处理该调用和任意相关的元数据来产生响应或者内容(步骤356)。该内容可以包括媒体内容、图形内容、多媒体内容、音频内容或者容器应用205所请求的任意其它内容。产生响应可以包括使用配置信息、安全信息、脚本输出或者插件240专用的窗口数据来响应。在大部分实施例中,插件240响应于接收该调用来产生响应或者内容。
插件240所产生的内容可以显示在连接到远程计算机器102的显示装置上(步骤360)。在一些实施例中,插件240在插件窗口或者位于容器应用窗口的图形输出部分或者画布中显示媒体或者多媒体内容。该容器应用窗口还显示在和远程计算机器102相连接的显示装置上。因此,当包含插件窗口的容器应用窗口显示在显示装置时,插件窗口和所产生的媒体或多媒体内容还显示在与远程计算机器102相连接的显示装置上。当所产生的内容是音频内容时,该内容可以由远程计算机器102播放,使得其可以通过连接到远程计算机器102的扬声器来播放。
图4中示出用于响应容器应用205或者插件240发布的调用的方法或过程400的一个实施例。在一个实施例中,该方法400包括拦截容器应用205或者插件240发布的调用(步骤402)。随后确定代理容器应用235或者代理插件210是否可以响应所拦截的调用(步骤404)。当代理容器应用235和代理插件210都不能响应该调用时,则转发该调用给合适的代理(步骤410)。当代理容器应用235或者代理插件210可以响应该调用时,则从高速缓存器225、245获取所请求的内容(步骤406)并且将所请求的内容转发给容器应用205或者插件240(步骤408)。
进一步参考图4并且更详细地,在一个实施例中,拦截容器应用205或者插件240发布的调用(步骤402)。当该调用是由容器应用205发布时,代理插件210拦截该调用。另一方面,当该调用是由插件240发布时,则代理容器应用235拦截该调用。在一些实施例中,本地计算机器105、远程计算机器102或者第三计算机器上执行的单独的应用可以拦截容器应用205或者插件240发布的调用。当单独的应用拦截该调用时,则单独的应用可以将该调用转发给代理插件210或者代理容器应用235。
一旦拦截该所发布的调用,则确定代理容器应用235或者代理插件210是否可以响应该调用(步骤404)。可以通过查询表格来确定对于所发布的调用的响应是否保存在高速缓存器225、245中来做出该确定。在对于插件240所发布调用的响应保存在远程计算机器102上的高速缓存器245中的实例中,该响应可以返回至代理容器应用235来指示响应驻留在高速缓存器245中,并且在一些实施例中,还提供高速缓存器245中响应的位置。同样,在对于容器应用205所发布调用的响应保存在本地计算机器106上的高速缓存器225中的实例中,该响应可以返回至代理插件210来指示响应驻留在高速缓存器225中,并且在一些实施例中,还提供高速缓存器225中响应的位置。在一个实施例中,代理插件210可以在高速缓存器225中搜索响应之后确定对于调用的响应出现在高速缓存器225中。类似,在一些实施例中,代理容器应用235可以在高速缓存器245中搜索响应之后确定对于调用的响应出现在高速缓存器245中。在这些实施例的每一个中,代理插件210和代理容器应用235确定它们在高速缓存器225、245中定位响应之后可以响应于该调用。
如果找到该响应,或者如果确定代理容器应用235或代理插件210都不能响应所发布的调用时,则转发该调用给代理容器应用235或者代理插件210中的另一个(步骤410)。如果确定代理插件210不能响应该调用,则转发该调用给客户机代理230,在一些实施例中,客户机代理230将调用转发给代理容器应用235。当确定代理容器应用235不能响应该调用时,则在一些实施例中转发该调用给代理插件210。
如果确定代理插件210或者代理容器应用235可以响应该调用,则代理插件210或者代理容器应用235从高速缓存器225、245获取所请求的内容(步骤406)。当确定代理插件210可以响应于容器应用205发布的调用时,则代理插件210从高速缓存器225获取对于容器应用205发布调用的响应。类似地,当确定代理容器应用235可以响应于插件240发布的调用时,则代理容器应用235从高速缓存器245获取对插件240所发布调用的响应。在一些实施例中,容器应用205或者插件240发布调用,而在其它实施例中,它们发布对于信息的请求,或者对于访问插件240或者容器应用205上的接口的请求。在其他实施例中,代理插件210和/或代理容器应用235通过在高速缓存器中搜索特定存储器位置或者在高速缓存器225、245中搜索期望的内容可以从高速缓存器225、245获取所请求的内容。
一旦从高速缓存器225、245获取所请求的内容(步骤406),将所请求的内容转发给容器应用205或者插件240(步骤408)。因此,如果代理插件210拦截该调用,确定代理插件210可以响应该调用,并且从高速缓存器225获取所请求的内容;则代理插件210可以使用从高速缓存器225获取的内容来响应容器应用205所发布的调用(步骤408)。类似地,如果代理容器应用235拦截到该调用,确定代理容器应用235可以响应于该调用,并且从高速缓存器245获取所请求的内容,则代理容器应用235使用从高速缓存器245获取的内容来响应插件240发布的调用(步骤408)。
在一些实施例中,图4中描述的方法400可以称之为短路该接口。该标签是方法400的一个属性,其允许本地代理来响应于调用,而不是将调用发送给能够对其响应的远程计算机。因此,不发送容器应用205所发布的调用到远程计算机器102上的插件240,而是代理插件210可以通过从本地计算机器106上的高速缓存器225获取响应来响应该调用。类似地,代理容器应用235可以通过从远程计算机器102上的高速缓存器245获取响应来响应插件240所发布的调用。通过执行过程400,接口调用所采用的执行路径缩短,从而减少了网络104上的业务量,并因此减少了虚拟信道225上的业务量,并且减少了响应时间。因此,由于每当响应路径缩短,得到的功能性大体类似于当容器应用205和插件240在相同计算机上执行时所提供的功能性,所以容器应用205和插件240的性能被提高。
在一些实施例中,保存在高速缓存器225、245中的那些响应是对于频繁进行调用的响应。因此,代理插件210、代理容器应用235、递送系统220或客户机代理230可以选择对于在特定时间周期上重复进行的调用的响应到缓存器。类似地,当确定对于随后调用的响应可以清除通过响应初始调用所获取的影响时,可以确定丢弃特定的调用。可以通过检查调用的类型或者调用所请求的接口的类型来进行这样的确定。
图5中示出用于允许对调用进行响应的方法500。代理插件210或者代理容器应用235可以拦截容器应用205或者插件240所发布的调用并且还确定调用的内容(步骤502)。如果代理所请求的接口是许可的(步骤504),则允许该调用(步骤506)。如果所请求的接口是不许可的(步骤504),则拒绝该调用(步骤508)。
继续参考图5并且更详细地,在一个实施例中,代理插件210拦截容器应用205所产生和发布的调用(步骤502)。类似地,代理容器应用235可以拦截插件240所产生和发布的调用(步骤502)。一旦代理插件210或代理容器应用235拦截调用,则代理可以检查该调用并且确定所请求接口或者内容的类型。在一些实施例中,所请求接口的类型可以包括确定和所请求接口相关的功能性。例如,接口请求可以包括请求FLASH播放器执行特定的电影文件或者显示特定类型的图形。在一些实施例中,调用的初始检查可以说明调用所请求功能性的类型。在其他实施例中,调用的检查可以包括确定调用的内容,诸如包括在调用中的元数据。
一旦代理识别调用的内容或者调用所请求的功能性,则代理210、240可以确定所请求的接口是否被许可(步骤504)。确定和特定容器应用205、插件240、计算机器或者用户相关的允许级别可以包括检查所认可的内容或者功能性的列表或者表格。该表格或者列表可以识别对于特定用户、计算机、IP地址、应用、插件、域或者用来识别特定机器、用户或者应用的任意其它标识符所允许的内容或者功能性。如果请求的功能性或者内容经过许可表格或者列表被许可或者允许,则允许该调用(步骤506)。如果该调用不被许可,则拒绝该调用(步骤508)。
在一个实施例中,系统包括代理插件210或者代理容器235中的安全代理(未示),或者本地计算机器106、远程计算机器102或者第三机器上执行的代理,该第三机器在网络104上执行且与本地计算机器106和/或远程计算机器102通信。在一些实施例中,安全代理可以拦截容器应用205和/或插件240发布的所有调用,来确定该调用是否许可或者允许。在一些实施例中,安全代理和本地计算机器106、远程计算机器102或者第三计算机器上的存储器中保存的允许表格或者列表相通信。当安全代理确定该调用不被允许时,安全代理通过不许可其被转发并且通过使用指示所请求的功能性或者内容不被许可的错误消息来响应该调用,可以拒绝该调用(步骤508)。在其他实施例中,安全代理通过将调用转发给代理插件210或者代理容器应用235来响应所许可的功能性和内容。
在一些实施例中,还通过允许代理插件210和插件240在同样的粒度或者安全级别执行来采用安全预防措施。类似地,代理容器应用235可以和容器应用205以同样的粒度或者安全级别来执行。
图6中所示为用于获取专用于插件窗口的窗口数据的方法600。代理插件210可以向容器应用205或本地计算机器106上执行的操作系统查询和插件240相关的窗口数据(步骤602)。当从容器应用205或者操作系统接收窗口数据后,代理插件210将插件窗口数据传送给客户机(即远程计算机器102)上执行的插件240(步骤604)。插件240随后使用窗口数据来将自身和容器应用205构建在一起(步骤606)。
进一步参考图6并且更详细地,在一个实施例中,代理插件210可以向容器应用205查询或者请求和插件240相关的窗口数据(步骤602)。在一些实施例中,窗口数据包括关于在容器应用205中何处显示插件的图形或者多媒体内容的信息。当容器应用205和插件240在同一机器上执行时,容器应用205和插件240组合在一起使得所产生的图形呈现为来自同样的源。例如,显示播放视频的FLASH播放器的web页面可以给用户呈现为如同web页面自身显示该视频。实际上,web页面可以在web页面中简单绘制用于FLASH播放器的图形输出的区域。FLASH播放器产生的多媒体内容显示在web页面绘制或者留出的显示区域中。和容器应用205中的图形输出区域相关的信息可以包括图形输出区域的大小、图形输出区域的布局、图形输出区域的剪辑区域和可以用来限定容器应用205中的图形输出区域的任意其它信息。
在一些实施例中,代理插件210向容器应用205查询信息,而在其它实施例中,代理插件210向本地计算机器106上执行的操作系统查询。在一些实施例中,当代理插件210从操作系统接收窗口数据时,代理插件210可以利用附加的协议命令来将窗口数据传送到客户机或者远程计算机器102上的插件240。对于本地计算机器106上的操作系统的应用程序接口调用的一个例子包括发布GetWindowPosition()调用,该调用在大部分实施例中可以导致接收屏幕上的插件窗口的位置。该应用程序接口调用发布到操作系统并且不到容器应用205。
响应于代理插件210查询,代理插件210可以从容器应用205或者操作系统接收窗口数据,并且可以将所接收的窗口数据传送给插件240(步骤604)。在一些实施例中,代理插件210在将窗口数据传送到插件240之前将窗口数据保存在高速缓存器225中。在其他实施例中,插件240在接收到窗口数据时将窗口数据保存在高速缓存器245中。在一些实施例中,代理插件210可以使用表示层协议将窗口数据通过虚拟信道255传送。在一些实施例中,代理插件210将窗口数据转发给应用/桌面递送系统220,该递送系统220随后将窗口数据传送给客户机代理230。在一些实施例中,在客户机代理230接收到窗口数据时,其可以在高速缓存器245中保存窗口数据。在其他实施例中,客户机代理230可以将窗口数据转发给代理容器应用235,其可以随后将窗口数据转发给插件240。其他实施例包括将窗口数据直接转发给插件240的客户机代理230。
在一个实施例中,一旦插件240接收到窗口数据,则插件240随后可以将自身和本地计算机器106上执行的容器应用205构建在一起(步骤606)。在其它实施例中,插件240可以将自身和代理容器应用235构建在一起。将插件组合到容器应用205可以包括配置该插件使得将图形内容格式化为在容器应用205中限定的输出区域中显示。格式化可以包括改变图形内容的分辨率使得其可以显示在输出区域中并且使得当显示在输出区域中时其不能被裁减。
图7中示出用于获取脚本接口的过程700的实施例。代理插件210或者代理容器应用235获取容器应用205或者插件240中执行的脚本所产生的脚本接口(步骤702)。一旦获取该脚本接口,将脚本接口传送到插件240或者容器应用205(步骤704)。一旦安装脚本接口,代理插件210和/或代理容器应用235可以拦截对于脚本接口的调用并且还代理该调用(步骤706)。
进一步参考图7并且更详细地,在一个实施例中,代理插件210从容器应用205获取脚本接口(步骤702)。当获得脚本接口时,代理插件210将脚本接口传送到代理容器应用235(步骤704),其接收脚本接口并且将其安装在它的架构中。通过将脚本接口安装在代理容器应用235的接口,代理容器应用235可以为插件240提供请求访问所安装的脚本接口的能力。安装脚本接口可以包括改变代理容器应用235二进制文件的结构,使得二进制文件可以为插件240提供调用特定脚本接口的能力。一旦脚本接口安装在代理容器应用235结构中,代理容器应用235可以拦截对于脚本接口的调用,并且将该调用传送给容器应用205上的脚本接口(步骤706)。
类似地,代理容器应用235可以从插件240获取脚本接口(步骤702)。当获取脚本接口时,代理容器应用235将脚本接口传送到代理插件210(步骤704),其接收脚本接口并且将其安装在它的结构中。通过将脚本接口安装在代理插件210的接口中,代理插件210可以为容器应用205提供请求访问所安装的脚本接口的能力。安装脚本接口可以包括改变代理插件210二进制文件的结构,使得二进制文件为容器应用205提供调用特定脚本接口的能力。一旦在代理插件210的结构中安装脚本接口,代理插件210可以拦截对于脚本接口的调用并且还将调用传送给插件240上的脚本接口(步骤706)。
在一个实施例中,由在容器应用205或者插件240中执行的脚本来产生脚本接口。例如,HTML页面中的Java脚本代码可以通过请求访问和ACTIVEX控件相关的接口来调用相同HTML页面中寄载的ACTIVEX控件上的方法和特性。该例子示出容器应用205中执行的脚本从容器应用205中的脚本接口发布调用到插件240上的接口。因此,虽然上例示出对于脚本接口的代理调用,但在其他实施例中,脚本接口所发布的调用可以被拦截并且传送到容器应用205或者插件240。因此,脚本接口发布的调用可以被代理到容器应用205或者插件240。
图8中示出用于动态取回网络内容的方法800的一个实施例。在一个实施例中,拦截插件240所产生并且发布的对于网络资源的请求(步骤802)。一旦已经拦截该请求,则确定资源是否应该从服务器106取回(步骤812)。当确定所请求的网络资源不应该从服务器106取回时,则网络资源从网络104获取或者取回(步骤810)。当确定所请求的网络资源应该从服务器106获取或者取回时,则该请求通过虚拟信道255被重定向到该服务器或者本地计算机器106(步骤804)。一旦该请求重定向到本地计算机器106,则所请求的资源从本地计算机器106汇集在一起(步骤806)并且所汇集的资源传送到插件240(步骤808)。
进一步参考图8并且更详细地,在一个实施例中,插件240可以请求访问专用于本地计算机器106所处网络上的资源。在这些实施例中,以及插件240间接通过虚拟信道255请求下载资源的实施例中,插件240可以产生并且发布对于网络资源的请求(步骤802)。在一个实施例中,该请求可以被代理容器应用235拦截,而在其它实施例中,该请求可以被客户机代理230拦截。其他实施例可以包括远程计算机器102上执行的另一个客户机、代理或者模块,其可以是独立的或者作为客户机代理230或者代理容器应用235中的过程或者子例程,来拦截插件240发布的网络资源请求。当该附加的客户机、代理或模块拦截资源请求时,客户机、代理或者模块可以确定是直接从网络来获取资源还是通过对于本地计算机器106的调用来获取资源。拦截对于资源的请求可以包括钩住对于远程计算机器102上操作系统的应用接口调用。钩住应用接口调用可以导致拦截访问网络104作出的任意请求。在确定应该从本地计算机器106经由虚拟信道255获取资源的实施例中,该请求通过虚拟信道255重定向到本地计算机器106(步骤804)。
一旦已经拦截对于网络资源的请求,则确定所请求的资源是否应该从服务器106获取(步骤812)。在许多实施例中,该确定可以是动态的,使得执行方法800的模块可以通过首先尝试从容户机102获取网络资源来确定是否从服务器106获取所请求的资源。在这样的实施例中,模块可以尝试并且访问期望的网络104,用来下载或者流式传输所请求的网络资源。如果该模块不能访问该网络和/或不能下载或者流式传输所请求的内容,则该模块可以确定网络资源应该从服务器106下载或者流式传输(步骤812)。在其他实施例中,部分基于对于所请求资源的类型的检查,模块可以确定网络资源应该从服务器106下载。在一些实施例中,模块可以访问客户机102上的数据库或者表格(未示),其中数据库或者表格可以列举特定网络资源应该经由服务器106下载还是直接从网络104下载。例如,在一些实施例中,列表可以指示将被流式传输的任意资源应该直接从网络104流式传输。在此实施例中,模块可以确定资源不应该从服务器106取回(步骤812)并且模块直接从网络104获取或者流式传输网络资源(步骤810)。在其他实施例中,模块可访问的配置文件可以用来确定资源的特定请求或者特定集应该从服务器106获取。在检查该配置文件时,模块可以确定网络资源应该从服务器106还是直接从网络104下载到客户机102。在其他实施例中,通过检查以下内容可以确定网络资源是否应该从服务器106获取:请求网络资源的插件240的类型,所请求资源的类型,请求资源的用户,用户从其请求资源的客户机102,网络上可用带宽的数量,虚拟信道255上传送请求并且接收响应所需时间数量相关的传送时间,服务器106上执行的用户会话的数量,请求的网络资源是否在专用网络上,用户和/或客户机102是否访问网络资源所处的网络,可以用来动态确定是经由虚拟信道255和服务器106来访问网络资源还是直接经由网络104访问网络资源的任意其它因素或者参数。在一些实施例中,该确定可以部分基于对于任意前述因素或者参数的检查。(步骤812)。
当确定不经由服务器106访问资源时,从网络104经由客户机102直接获取网络资源(步骤810)。在此实施例中,客户机102可以直接从网络104获取网络资源,将网络资源下载或流式传输到客户机102并将所请求的资源转发给插件240。在插件240可以直接从网络104获取网络资源的实施例中,插件240发布该请求并且客户机代理230或者诸如模块、客户机、代理、子例程和此处描述的过程的另一个模块可以访问该网络并且将所请求的资源下载或者流式传输到插件240。在一些实施例中,所请求的资源包括FLASH电影,在另一个实施例中,所请求的资源包括FLASH视频流。
当确定经由服务器106访问资源时,该请求被重定向到本地计算机器106(步骤804),该请求可以由以下任何部件接收:代理插件210,应用/桌面递送系统220,代理插件210或者应用/桌面递送系统220中执行的过程或者子例程,在本地计算机器106或者远离本地计算机器106但和本地计算机器106通信的第三机器上独立执行的客户机、代理或者模块,可以接收请求的任意其它代理。接收该请求时,从高速缓存器225、网络104上的存储仓库、网络104上的第三计算机器、本地计算机器106上的存储仓库,或者可以保存所请求资源的任意其他位置来获取网络资源。在一些实施例中,获取网络资源,但在其他实施例中,汇集或者获得网络资源(步骤806)。
一旦网络资源被汇集在一起(步骤806),则将其传送到插件240。在一些实施例中,客户机代理230接收网络资源并且将其传输到插件240。
虽然在附图中已经描述和示出了特定示例实施例,但可以理解这样的实施例仅意于示出主要的发明而非限制本发明,并且此处描述的方法和系统也并非限于示出和描述的具体架构和布置。此外,可以在硬件、可编程装置、固件、软件或者其组合中实现此处描述的方法和系统及其部分特征。此处描述的方法和系统或者其一部分还可以嵌入处理器可读存储媒介或者机器可读媒介,诸如磁体(例如硬盘驱动器、软驱)、光盘(例如密致盘、数字通用盘等)或者半导体存储媒介(易失性和非易失性)。
Claims (38)
1.一种用于启用远程执行由服务器上寄载的且由用户经由客户机远程访问的应用所进行的多媒体插件调用的方法,该方法包括:
通过在服务器上执行的代理多媒体插件来拦截所述服务器上执行的容器应用发布的调用,该调用从在所述服务器上执行的多媒体插件请求内容;
通过所述代理多媒体插件来确定该代理多媒体插件是否能够响应于该调用;
响应于所述代理多媒体插件不能响应于该调用的确定,将该调用传送给客户机上执行的代理容器应用,
由所述代理容器应用将该调用传送给客户机上执行的与所述代理多媒体插件对应的多媒体插件;
该对应的多媒体插件响应于所传送的调用来产生图形内容,并且
显示所述图形内容。
2.权利要求1的方法,其中,传送该调用还包括通过所述服务器上执行的递送应用来传送该调用。
3.权利要求1的方法,其中,显示所述图形内容还包括在客户机上的插件窗口中显示该图形内容。
4.权利要求1的方法,其中,从所述多媒体插件请求内容还包括请求访问所述多媒体插件中的多媒体插件接口。
5.权利要求1的方法,其中,传送还包括经由表示层协议在服务器和客户机之间的虚拟信道上传送。
6.权利要求1的方法,还包括:
确定所述代理多媒体插件能够响应该调用;并且
通过所述代理多媒体插件以所请求的内容来响应所述容器应用调用。
7.权利要求6的方法,其中,以所请求的内容来响应还包括以保存在服务器上的高速缓存器中的内容来响应该调用。
8.权利要求1的方法,还包括:
通过所述代理容器应用来拦截所述多媒体插件发布的调用,该调用从所述容器应用请求内容;
通过所述代理容器应用来确定所述代理容器应用能够响应于所发布的调用;并且
通过所述代理容器应用以所请求的内容来响应多媒体插件调用。
9.权利要求8的方法,其中,以所请求的内容来响应该调用还包括以保存在客户机上高速缓存器中的内容来响应该调用。
10.权利要求1的方法,其中,产生图形内容还包括产生多媒体内容。
11.权利要求1的方法,其中,显示图形内容还包括显示多媒体内容。
12.权利要求1的方法,其中,所述多媒体插件是控件,并且所述代理多媒体插件是代理控件。
13.权利要求1的方法,还包括:
通过所述代理多媒体插件来获取和所述代理多媒体插件关联的窗口数据;并且
通过所述代理多媒体插件将该窗口数据传送给所述客户机上的多媒体插件。
14.权利要求13的方法,还包括:
通过所述多媒体插件接收所传送的窗口数据;并且
由所述多媒体插件基于所接收的窗口数据来改变多媒体插件和代理容器之间的至少一个接口。
15.权利要求1的方法,还包括:
通过所述代理多媒体插件来获取由所述容器应用中的脚本产生的脚本接口;并且
通过所述代理多媒体插件将所述脚本接口传送给所述代理容器应用。
16.权利要求1的方法,还包括:
通过所述代理容器应用来获取由所述多媒体插件中的脚本所产生的脚本接口;并且
通过所述代理容器应用将该脚本接口传送给所述代理多媒体插件。
17.权利要求1的方法,其中,拦截调用还包括拦截用于脚本接口的调用。
18.权利要求1的方法,还包括:
通过所述多媒体插件经由客户机上执行的浏览器应用来访问网络资源;并且
将所访问的网络资源下载到所述多媒体插件。
19.权利要求1的方法,还包括:
拦截所述多媒体插件产生的对于网络资源的请求;
将该请求通过表示层协议在客户机和服务器之间的虚拟信道上重定向到所述服务器;
从所述服务器接收所请求的资源;并且
将所接收的资源转发到所述多媒体插件。
20.一种用于启用远程执行由服务器上寄载的且由用户经由客户机远程访问的应用所进行的多媒体插件调用的系统,该系统包括:
服务器,执行容器应用和代理多媒体插件,
客户机,执行多媒体插件,
所述代理多媒体插件与所述客户机上执行的多媒体插件对应;
该代理多媒体插件被配置为:
拦截所述容器应用发布的调用,该调用从该多媒体插件请求内容;
确定该代理多媒体插件是否能够响应该调用;并且
响应于该代理多媒体插件不能响应该调用的确定,将该调用传送给客户机上执行的代理容器应用,该代理容器应用被配置为将该调用传送给与该代理多媒体插件对应的所述多媒体插件;以及
该多媒体插件被配置为接收该调用,并且响应于接收的该调用来产生图形内容,并且显示该图形内容。
21.权利要求20的系统,其中,所述服务器还执行递送应用,该递送应用传送该调用到所述多媒体插件。
22.权利要求20的系统,其中,多媒体插件在客户机上的插件窗口中显示该图形内容。
23.权利要求20的系统,其中,所述容器应用请求访问所述多媒体插件中的多媒体插件接口。
24.权利要求20的系统,其中,所述代理多媒体插件通过表示层协议在服务器和客户机之间的虚拟信道上传送该调用。
25.权利要求20的系统,其中,所述代理多媒体插件:
确定该代理多媒体插件能够响应该调用;并且
以所请求的内容来响应所述容器应用调用。
26.权利要求25的系统,其中,所述代理多媒体插件以保存在服务器上的高速缓存器中的内容来响应该调用。
27.权利要求21的系统,其中所述代理容器应用:
拦截用于请求来自所述容器应用的内容的所述多媒体插件发布的调用;
确定所述代理容器应用能够响应于所发布的调用;并且
以所请求的内容来响应所述多媒体插件调用。
28.权利要求27的系统,其中,所述代理容器应用以保存在客户机上高速缓存器中的内容来响应该调用。
29.权利要求20的系统,其中,所述多媒体插件产生多媒体内容。
30.权利要求20的系统,其中,所述多媒体插件显示多媒体内容。
31.权利要求20的系统,其中,所述多媒体插件是控件,并且所述代理多媒体插件是代理控件。
32.权利要求20的系统,其中所述代理多媒体插件:
获得和所述代理多媒体插件关联的窗口数据;并且
将该窗口数据传送给所述客户机上的多媒体插件。
33.权利要求32的系统,其中,所述多媒体插件:
接收所传送的窗口数据;并且
基于所接收的窗口数据来改变所述多媒体插件和代理容器之间的至少一个接口。
34.权利要求20的系统,其中所述代理多媒体插件:
获得所述容器应用中的脚本产生的脚本接口;并且
将所述脚本接口传送给所述代理容器应用。
35.权利要求20的系统,其中所述代理容器应用:
获得所述多媒体插件中的脚本产生的脚本接口;并且
将该脚本接口传送给所述代理多媒体插件。
36.权利要求20的系统,其中,所述代理多媒体插件拦截对于脚本接口的调用。
37.权利要求20的系统,其中,所述多媒体插件:
经由所述客户机上执行的浏览器应用来访问网络资源;并且
将所访问的网络资源下载到该多媒体插件。
38.权利要求20的系统,其中所述客户机执行客户机代理,该客户机代理被配置为:
拦截所述多媒体插件产生的对于网络资源的请求;
将该请求通过表示层协议在客户机和服务器之间的虚拟信道上重定向到服务器;
接收来自所述服务器的所请求的资源;并且
将所接收的资源转发到所述多媒体插件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US5432508P | 2008-05-19 | 2008-05-19 | |
US61/054325 | 2008-05-19 | ||
PCT/US2009/044566 WO2009143187A2 (en) | 2008-05-19 | 2009-05-19 | Systems and methods for remoting multimedia plugin calls |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102037710A CN102037710A (zh) | 2011-04-27 |
CN102037710B true CN102037710B (zh) | 2014-04-02 |
Family
ID=41017039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980117887.XA Active CN102037710B (zh) | 2008-05-19 | 2009-05-19 | 用于远程处理多媒体插件调用的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8296357B2 (zh) |
EP (1) | EP2279602B1 (zh) |
CN (1) | CN102037710B (zh) |
HK (1) | HK1156761A1 (zh) |
WO (1) | WO2009143187A2 (zh) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010015475A (ja) * | 2008-07-07 | 2010-01-21 | Nec Personal Products Co Ltd | 情報処理端末およびクライアントサーバシステム |
US9009329B2 (en) * | 2008-11-25 | 2015-04-14 | Microsoft Technology Licensing, Llc | Platform for enabling terminal services virtualization |
US9135024B2 (en) * | 2008-11-30 | 2015-09-15 | Red Hat Israel, Ltd. | Playing multimedia content at remote graphics display client |
CN102025761B (zh) * | 2009-09-21 | 2013-07-17 | 腾讯科技(深圳)有限公司 | 实现Web装置与Flash装置协同工作的方法与系统 |
US8738711B2 (en) * | 2009-11-03 | 2014-05-27 | Oto Technologies, Llc | System and method for redirecting client-side storage operations |
US9203883B2 (en) * | 2009-12-08 | 2015-12-01 | Citrix Systems, Inc. | Systems and methods for a client-side remote presentation of a multimedia stream |
US20110145723A1 (en) * | 2009-12-16 | 2011-06-16 | Oto Technologies, Llc | System and method for redirecting client-side storage operations |
US20110154214A1 (en) * | 2009-12-18 | 2011-06-23 | Microsoft Corporation | Offloading Content Retrieval And Decoding In Pluggable Content-Handling Systems |
FR2954536A1 (fr) * | 2009-12-21 | 2011-06-24 | France Telecom | Procede pour integrer dans un navigateur web le rendu graphique produit par une application graphique |
US8620914B1 (en) * | 2010-05-18 | 2013-12-31 | Google Inc. | Ranking of digital goods in a marketplace |
US8700723B2 (en) * | 2010-06-15 | 2014-04-15 | Netzyn, Inc. | Hierarchical display-server system and method |
US8407461B2 (en) | 2010-12-17 | 2013-03-26 | Oracle International Corporation | Plug-in system for software applications |
WO2012093379A1 (en) * | 2011-01-07 | 2012-07-12 | Ari Kahn | Networking between voip -and pstn- calls |
US9141410B2 (en) * | 2011-03-08 | 2015-09-22 | Rackspace Us, Inc. | Pluggable allocation in a cloud computing system |
US9130899B1 (en) | 2011-04-27 | 2015-09-08 | Cisco Technology, Inc. | Integrated user interface for unified communications applications |
US20120284630A1 (en) * | 2011-05-02 | 2012-11-08 | Frank May | Window Proxy |
US20120284632A1 (en) * | 2011-05-06 | 2012-11-08 | Cisco Technology, Inc. | Integrated Rendering of Streaming Media in Virtualized Desktop Environment |
US9225763B2 (en) * | 2011-06-07 | 2015-12-29 | Cisco Technology, Inc. | Distributed overlay browser for transparent streaming media support in virtualized desktop environment |
US8862660B1 (en) | 2011-08-04 | 2014-10-14 | Wyse Technology L.L.C. | System and method for facilitating processing of communication |
US8924507B2 (en) * | 2011-09-02 | 2014-12-30 | Microsoft Corporation | Cross-frame progressive spoiling support for reduced network bandwidth usage |
US9143529B2 (en) | 2011-10-11 | 2015-09-22 | Citrix Systems, Inc. | Modifying pre-existing mobile applications to implement enterprise security policies |
US20130124715A1 (en) * | 2011-11-11 | 2013-05-16 | Aaron Hyman AVERBUCH | Applet synchronization across multiple routers |
US20130226984A1 (en) * | 2012-02-26 | 2013-08-29 | Kaseya International Limited | Method and apparatus of providing optimized web browser communications |
US9055139B1 (en) | 2012-03-12 | 2015-06-09 | Cisco Technology, Inc. | Display protocol interception in the network for services and network-based multimedia support for VDI |
JP5389210B2 (ja) * | 2012-03-21 | 2014-01-15 | 株式会社東芝 | 通信管理プログラム及びクライアント装置 |
CN102768626B (zh) * | 2012-03-28 | 2017-11-10 | 新奥特(北京)视频技术有限公司 | 一种非线编系统中视音频播放的方法和设备 |
US9354764B2 (en) | 2012-06-29 | 2016-05-31 | Dell Products L.P. | Playback of flash content at a client by redirecting execution of a script by a flash redirection plugin at a server to a flash redirection browser at the client |
US9626450B2 (en) | 2012-06-29 | 2017-04-18 | Dell Products L.P. | Flash redirection with browser calls caching |
US9489471B2 (en) | 2012-06-29 | 2016-11-08 | Dell Products L.P. | Flash redirection with caching |
US8595613B1 (en) * | 2012-07-26 | 2013-11-26 | Viasat Inc. | Page element identifier pre-classification for user interface behavior in a communications system |
EP3499839B1 (en) * | 2012-09-18 | 2021-03-17 | Citrix Systems, Inc. | Mobile device management and security |
US9740375B2 (en) | 2012-11-16 | 2017-08-22 | Empire Technology Development Llc | Routing web rendering to secondary display at gateway |
CN103856396B (zh) * | 2012-11-30 | 2017-05-31 | 中兴通讯股份有限公司 | 插件间的报文传递方法及装置、代理插件 |
US9538249B2 (en) | 2013-05-09 | 2017-01-03 | Viasat Inc. | Close fulfillment of content requests |
US9124668B2 (en) | 2013-05-20 | 2015-09-01 | Citrix Systems, Inc. | Multimedia redirection in a virtualized environment using a proxy server |
CN103226477B (zh) * | 2013-05-21 | 2016-12-28 | 成都云朵技术有限公司 | 一种在WebBrowser中增强flash视频画质的方法和系统 |
US9674225B2 (en) * | 2013-09-20 | 2017-06-06 | Open Text Sa Ulc | System and method for updating downloaded applications using managed container |
EP2851833B1 (en) | 2013-09-20 | 2017-07-12 | Open Text S.A. | Application Gateway Architecture with Multi-Level Security Policy and Rule Promulgations |
US20150089370A1 (en) * | 2013-09-25 | 2015-03-26 | Tencent Technology (Shenzhen) Co., Ltd. | Method and device for playing media data on a terminal |
US20150095469A1 (en) * | 2013-09-30 | 2015-04-02 | Electronics And Telecommunications Research Institute | Identifier-based communication method using application program interface |
US9870116B1 (en) * | 2013-12-09 | 2018-01-16 | Google Llc | Controlling actions for browser extensions |
US10108735B2 (en) * | 2014-02-25 | 2018-10-23 | Esna Technologies Inc. | System and method of embedded application tags |
US9426203B2 (en) | 2014-06-27 | 2016-08-23 | Microsoft Technology Licensing, Llc | Remote application control interface |
CN104142830B (zh) * | 2014-08-11 | 2017-06-06 | 四川效率源信息安全技术股份有限公司 | 通过脚本插件技术提取智能手机应用数据的方法和装置 |
CN104298511B (zh) * | 2014-10-10 | 2018-08-03 | 王钟 | 实现网络化远程插件的方法及系统 |
EP3015984A1 (en) * | 2014-10-29 | 2016-05-04 | Hewlett-Packard Development Company, L.P. | Providing data from data sources |
US11593075B2 (en) | 2015-11-03 | 2023-02-28 | Open Text Sa Ulc | Streamlined fast and efficient application building and customization systems and methods |
US10044788B2 (en) * | 2015-11-17 | 2018-08-07 | Wyse Technology L.L.C. | Native client multimedia redirection |
US9577916B1 (en) * | 2015-12-03 | 2017-02-21 | International Business Machines Corporation | Gateway flow plugin containers |
US11388037B2 (en) * | 2016-02-25 | 2022-07-12 | Open Text Sa Ulc | Systems and methods for providing managed services |
US20180084392A1 (en) * | 2016-09-19 | 2018-03-22 | Ebay Inc. | Text messaging hub system providing access to local and remote service applications |
CN106789535B (zh) * | 2016-12-29 | 2019-12-06 | 杭州迪普科技股份有限公司 | Ssl vpn的ip接入方法及装置 |
CN107102880B (zh) * | 2017-05-11 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 消息处理方法、装置、存储介质和计算机设备 |
US10922386B1 (en) * | 2018-01-15 | 2021-02-16 | Trend Micro Incorporated | System and methods for security inspection and protection of software containers at runtime |
KR102545407B1 (ko) * | 2018-04-20 | 2023-06-20 | 비샬 굽타 | 분산된 문서 및 엔티티 검증 엔진 |
US10462216B1 (en) | 2018-05-04 | 2019-10-29 | Citrix Systems, Inc. | WebRTC API redirection with interception techniques |
US11726995B2 (en) | 2019-12-17 | 2023-08-15 | Hewlett Packard Enterprise Development Lp | System and method for value pack generation using generic SQL plugin for unified console |
US11150966B1 (en) * | 2020-09-10 | 2021-10-19 | Dell Products L.P. | Managing toast notifications via a toast adapter and plugins |
CN114422637B (zh) * | 2021-12-20 | 2023-12-29 | 阿里巴巴(中国)有限公司 | 媒体请求处理方法和跨平台引擎系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1342290A (zh) * | 1998-10-02 | 2002-03-27 | 国际商业机器公司 | 会话浏览器和会话系统 |
CN1856819A (zh) * | 2003-07-21 | 2006-11-01 | 兰德马克绘图公司 | 通过分布式应用程序的图形数据的网络传输的系统和方法 |
CN101023419A (zh) * | 2004-05-14 | 2007-08-22 | 模比莱普斯有限公司 | 提供具有嵌入内容的网页的方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010040887A1 (en) * | 1997-10-09 | 2001-11-15 | Yuri Shtivelman | Apparatus and methods enhancing call routing to and within call-centers |
US6078322A (en) * | 1997-09-30 | 2000-06-20 | The United States Of America As Represented By The Secretary Of The Navy | Methods permitting rapid generation of platform independent software applications executed on a universal client device |
US6964052B1 (en) * | 2000-01-18 | 2005-11-08 | E★Trade | Caching output from an object in an application server environment |
US7225423B2 (en) * | 2000-06-30 | 2007-05-29 | Zenasis Technologies, Inc. | Method for automated design of integrated circuits with targeted quality objectives using dynamically generated building blocks |
US20020122060A1 (en) * | 2000-12-18 | 2002-09-05 | Markel Steven O. | Wizard generating HTML web pages using XML and XSL |
US20020165993A1 (en) * | 2001-05-04 | 2002-11-07 | Andre Kramer | System and method of partitioning software components of a monolithic component-based application program to separate graphical user interface elements for local execution at a client system in conjunction with remote execution of the application program at a server system |
JP2006502465A (ja) * | 2002-01-11 | 2006-01-19 | アカマイ テクノロジーズ インコーポレイテッド | コンテンツ配信ネットワーク(CDN)で使用するためのJavaアプリケーションフレームワーク |
US20040143625A1 (en) * | 2002-12-13 | 2004-07-22 | Joseph Sheinis | Component proxy with interception logic in remote component container |
US20050197819A1 (en) * | 2004-03-02 | 2005-09-08 | Hopkins James B. | System and method for running web applications locally |
US7712110B2 (en) * | 2004-09-28 | 2010-05-04 | Citrix Systems, Inc. | System and method for remoting twain function calls from a user session to a client system |
US20060224691A1 (en) * | 2005-04-05 | 2006-10-05 | Intel Corporation | Transparent rendering of media to remote client |
US20070005783A1 (en) * | 2005-06-30 | 2007-01-04 | Intel Corporation | Systems, methods, and media for controlling a media connection from within a remoting protocol |
US7716360B2 (en) * | 2005-09-21 | 2010-05-11 | Sap Ag | Transport binding for a web services message processing runtime framework |
US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US7695370B2 (en) * | 2006-02-08 | 2010-04-13 | Gaia Interactive Inc. | Massively scalable multi-player game system |
US8259152B2 (en) * | 2006-12-29 | 2012-09-04 | Glowpoint, Inc. | Video call distributor |
-
2009
- 2009-05-19 CN CN200980117887.XA patent/CN102037710B/zh active Active
- 2009-05-19 EP EP09751415.2A patent/EP2279602B1/en active Active
- 2009-05-19 US US12/468,797 patent/US8296357B2/en active Active
- 2009-05-19 WO PCT/US2009/044566 patent/WO2009143187A2/en active Application Filing
-
2011
- 2011-10-14 HK HK11110967.5A patent/HK1156761A1/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1342290A (zh) * | 1998-10-02 | 2002-03-27 | 国际商业机器公司 | 会话浏览器和会话系统 |
CN1856819A (zh) * | 2003-07-21 | 2006-11-01 | 兰德马克绘图公司 | 通过分布式应用程序的图形数据的网络传输的系统和方法 |
CN101023419A (zh) * | 2004-05-14 | 2007-08-22 | 模比莱普斯有限公司 | 提供具有嵌入内容的网页的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2279602B1 (en) | 2013-07-31 |
CN102037710A (zh) | 2011-04-27 |
EP2279602A2 (en) | 2011-02-02 |
US8296357B2 (en) | 2012-10-23 |
WO2009143187A3 (en) | 2010-01-28 |
WO2009143187A2 (en) | 2009-11-26 |
HK1156761A1 (zh) | 2012-06-15 |
US20090287772A1 (en) | 2009-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102037710B (zh) | 用于远程处理多媒体插件调用的方法和系统 | |
US11093148B1 (en) | Accelerated volumes | |
US9740435B2 (en) | Methods for managing content stored in cloud-based storages | |
CN102446121B (zh) | 根据用户指定的虚拟机指标分配虚拟机 | |
EP2302509B1 (en) | Synchronization of server-side cookies with client-side cookies | |
EP2425606B1 (en) | Methods and systems for providing a consistent profile to overlapping user sessions | |
US20140052840A1 (en) | Versatile application configuration for deployable computing environments | |
CN102368201A (zh) | 虚拟化环境中存储优化选择 | |
CN104487943A (zh) | 受信文件间接操作 | |
US9459855B2 (en) | System and method for information handling system image network communication | |
CN102202049A (zh) | 用于多虚拟机设备的网络策略实现 | |
JP2003528391A (ja) | ファイルコンテンツの追加的なコピーを記憶する必要無しに、ファイル属性への変更を記憶するための方法及び装置 | |
AU2017245437B2 (en) | Thin client for mapping system | |
US11605016B2 (en) | Quantum computing service supporting local execution of hybrid algorithms | |
US11605033B2 (en) | Quantum computing task translation supporting multiple quantum computing technologies | |
US20130227153A1 (en) | Computer-implemented method, computer system and computer readable medium | |
CN104115471A (zh) | 托管的服务中的客户端带宽模拟 | |
US20170153909A1 (en) | Methods and Devices for Acquiring Data Using Virtual Machine and Host Machine | |
JP2012104150A (ja) | ネットワーク環境におけるスペースのカスタマイズ | |
US20180260155A1 (en) | System and method for transporting a data container | |
JP5011927B2 (ja) | アプリケーション実行システム、コンピュータ、アプリケーション実行システムのアプリケーション実行方法およびプログラム | |
WO2021108510A1 (en) | Quantum computing service supporting multiple quantum computing technologies | |
JP2010500671A5 (zh) | ||
CN102378964B (zh) | 创建虚拟进程的进程内中介 | |
US11704715B2 (en) | Quantum computing service supporting multiple quantum computing technologies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1156761 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1156761 Country of ref document: HK |