远程应用连接共享的制作方法

文档序号:6360680阅读:193来源:国知局
专利名称:远程应用连接共享的制作方法
远程应用连接共享
背景技术
Web浏览器为客户端计算机的用户提供了一种使用互联网导航至网站的方式。例如,客户端计算机能够提供到互联网的连接,并且使用web浏览器,用户能够导航至同样连接到互联网的特定远程服务器以便连接到该远程服务器所服务的网站。另外,能够由连接到互联网的远程服务器提供诸如web应用(web-app)之类的基于远程的应用,并且客户端计算机能够通过连接至提供web应用的远程服务器而本地运行web应用。此外,客户端计算机可以打开多个浏览器窗口和/或浏览器标签,它们分别连接到不同或相同的远程服务器以运行web应用和/或连接到网站。

发明内容
提供该发明内容而以简化形式引入概念的选择,其在以下的具体实施方式
中进一步描述。该发明内容并非意在识别出所请求保护主题的关键因素或必要特征,也并非意在 被用来对所请求保护主题的范围进行限制。在某些环境中,当通过互联网访问远程服务器时,多于一个的浏览器窗口或标签保持对服务器的单独连接是高成本且不期望出现的,在这样的情况下相应实例从远程服务器得到相同的数据。通过保持多重连接,这些类型的多重连接会变得完全相同并且使得客户端机器的连接速度变慢。作为示例,对于远程服务器在浏览器中所提供的即时消息信使聊天应用而言,每个标签连接到应用服务器并且从服务器得到相同数据。然而,从用户的观点来看,这仅是无缝的单次体验。例如,目前,网站可能必须要重复询问应用服务器来查看页面(例如,web应用)上是否存在更新。在该示例中,相应标签或窗口将需要单独连接来检查服务器上的更新。这种不断询问在计算上对于本地(例如,客户端侧)和远程(例如,服务器侧)都是昂贵的。因此,这里提供了一种或多种向用户提供相同体验同时具有多重任务(例如,浏览器中运行的基于远程的应用)的技术和/或系统,所述多重任务具有到远程服务器的单个连接而共享到服务器的连接。例如,仅一个浏览器窗口和/或标签保持到用于基于远程的应用的服务器的连接,并且允许针对客户端上运行的相同web应用的多个其它例示的更新。在用于与多个客户端侧浏览器例示共享到基于远程的应用的连接的一个实施例中,与基于远程的应用相关联的多个客户端侧浏览器例示被通知以本地全局存储的状态的变化而并不进行轮询,其中客户端侧浏览器示例能够向本地全局存储进行写入并且从其进行读取。另外,第一浏览器例示能够向本地全局存储注册为首要例示,并且提供到用于基于远程的应用的服务器的连接。此外,首要例示使用与服务器的连接而针对一个或多个第二浏览器例示向本地全局存储写入更新,并且针对基于远程的应用而将更新从一个或多个第二浏览器例示传输至服务器。为了实现以上和相关目标,以下描述和附图给出了某些说明性方面和实施方式。这些仅是可以在其中采用一个或多个方面的各种方式的几种的指示。当结合附图考虑时,本公开的其它方面、优势和新颖特征将由于以下详细描述而变得显而易见。


图I是用于与多个客户端侧浏览器例示共享到基于远程的应用的连接的示例性方法的流程图。图2是图示首要和次要浏览器例示向本地全局存储注册的方法的示例性实施例的流程图。图3是图示可以使用到首要例示的连接而针对基于远程的应用对多个浏览器例示进行更新的方法的示例性实施例的流程图。图4是用于与多个客户端侧浏览器例示共享到基于远程的应用的连接的示例性系统的组件示图。·
图5是图示可以实施这里所描述的一个或多个系统和/或技术的一个实施例的组件示图。图6是包括被配置为实现这里所给出的一种或多种提供形式的处理器可执行指令的示例性计算机可读介质的图示。图7图示了可以在其中实施这里所给出的一种或多种提供形式的示例性计算环境。
具体实施例方式现在参考附图对请求保护的主题进行描述,其中通篇使用相同的附图标记来指代相同元素。在以下描述中,出于解释的目的,给出了多种具体细节以便提供对所请求保护主题的全面理解。然而,所请求保护的主题显然可以在没有这些具体细节的情况下进行实践。在其它实例中,以框图形式示出结构和设备以便帮助对所请求保护主题进行描述。图I是用于与多个客户端侧浏览器例示共享到基于远程的应用的连接的示例性方法100的流程图。示例性方法100在102开始并且涉及在104将本地全局存储状态的变化通知多个客户端侧的浏览器例示而并不进行轮询。在该实施例中,浏览器例示与基于远程的应用相关联,并且能够对本地全局存储进行写入并且从那里进行读取。在一个实施例中,本地全局存储包括“web存储”,其允许针对web浏览器在本地(例如,在客户端机器上)存储数据。例如,HTML5 (超文本标记语言协议5)为web浏览器提供本地存储,其中来自相同域的相应web浏览器例示(例如,浏览器窗口、浏览器标签)能够访问本地存储的数据,由此提供本地全局存储(例如,对于来自相同域的相应脚本而言是全局的)。也就是说,在该示例中,相同web应用(web-app)的单独例示能够在不同窗口(或标签)中运行而并不互相干扰,并且能够通过本地全局存储而在本地互相通信,诸如通过向本地全局存储提供更新。在一个实施例中,例如,本地全局存储能够包括关联阵列数据存储模型,其中例如键(key)(例如,唯一键)的合集与一个或多个数值(例如,或者数值集合)相关联。在该实施例中,使用阵列将数值映射到键(例如,阵列将键映射至数值),这创建了键-值配对之间的关系。另外,在该实施例中,当本地全局存储的状态发生变化时,诸如针对键-值配对的变化,能够使用(例如,从运行来自相同域的web应用的那些)本地全局存储向浏览器例示(例如,自动)发送通知。在一个实施例中,在执行一个或多个操作时会发生本地全局存储的状态变化。例如,“添加”操作可以包括将新键映射至新数值(例如,输入新的键-值配对)。另外,“重分配”操作能够包括将旧的键映射至新的数值(例如,改变键-值配对的数值)。此外,“去除”操作可以将键从数值解除绑定并且从针对存储的键集合去除该键(例如,删除键-值配对)。在该实施例中,例如,当这些操作中的任意一种发生时,例如能够自动发送针对状态变化的通知。因此,不需要针对状态变化而对本地全局存储进行轮询(例如,定期请求情形状态)。返回图1,在106,第一浏览器例示向本地全局存储注册为首要例示。这里,首要例示连接至用于基于远程的应用的服务器,诸如以便与web应用进行交互。在一个实施例中,新的浏览器例示例如可以由用户在其客户端机器上所发起。新的浏览器例示能够在其发 起web应用的例示(例如,来自特定域的web应用,诸如即时信使服务)时向本地全局存储注
ΠΠ
/ttr O另外,例如,浏览器例示能够注册为首要,其中其与远程服务器相连接,该远程服务器提供要在浏览器中运行的应用。也就是说,作为示例,运行远程应用的首要例示能够通过本地端口而具有到远程服务器的直接连接,由此与远程服务器进行通信以发送或接收针对应用的更新。在一个实施例中,远程服务器可以提供即时消息传递应用,这允许用户来回发送消息,并且首要例示能够获取诸如消息之类的更新并且将更新发送至服务器。在示例性方法100中,在108,首要例示使用与服务器的连接将更新从基于远程的应用写入针对一个或多个第二浏览器例示的本地全局存储。另外,首要例示使用与服务器的连接将更新从一个或多个第二浏览器例示传输至基于远程的应用。以这种方式,例如,首要浏览器例示能够用作web应用的多个浏览器例示的管道(conduit),其仅允许一个连接来为多个例示提供远程服务器通信。在一个实施例中,例如,一个或多个第二浏览器例示可以发起相同的基于远程的应用,并且在实例化时向本地全局存储进行注册。在该示例中,第二例示可以仅使用到服务器的首要例示连接通过本地全局存储接收并分布更新,而不是与在一个或多个浏览器窗口(或标签)中提供远程应用的服务器相连接。也就是说,例如,第二例示能够通过更新本地全局存储来更新其基于远程的应用例示,这将使得首要例示被通知以状态变化。在该示例中,首要例示随后能够通过读取本地全局存储而将更新从第二例示提供至服务器。另外,首要例示例如能够从多个第二例示的服务器获取更新,并且将它们写入本地全局存储。在该示例中,第二例示将被通知以变化,并且能够通过从本地全局存储进行读取来更新其例示。以这种方式,在该示例中,仅基于远程的应用的首要浏览器例示需要被连接到服务器以提供与基于远程的应用在客户端机器上的多个例示的通信。次要浏览器例示已经使用首要例示连接而与针对基于远程的应用与服务器进行通信,示例性方法100在110结束。图2是图示首要和次要浏览器例示向本地全局存储进行注册的方法中的至少一些的示例性实施例200的流程图。在202,用户发起新的基于远程的应用例示,诸如通过开启浏览器窗口并且选择运行web应用(例如,即时信使)。在204,向本地全局存储注册新的基于远程的应用例示,诸如使用为应用提供服务的服务器的域。
在一个实施例中,例如,当为web应用创建新的例示时,可以将本地的基于客户端的存储器的一部分为浏览器进行分配以便存储应用本地的信息。作为示例,当前,可以允许浏览器在本地存储“cookie”,其为网站提供信息以便在用户导航回到站点时使用,诸如有助于使得站点工作更快/更好的客户端/用户信息。然而,浏览器cookie通常被限制为仅存储有限大小的文本串,并且能够被服务器和客户端侧所访问(例如,读/写)。在该实施例中,为应用所分配的存储可以被仅限制为从那里对该应用进行服务的域,并且可以包括本地全局存储。这里,例如,本地全局存储能够提供客户端侧的读/写,但是缓解或禁止服务器侧对这种类型的web存储进行写入。在该示例中,以这种方式,新的例示针对特定域而向本地全局存储进行注册,并且连同向该本地全局存储进行注册的任意其它例示一起,现在可以将更新写入存储或者从存储读取更新。在206,如果不存在针对基于远程的应用的首要例示(206为否),则新的例示在208能够将其自身针对基于远程的应用注册为首要例示。在210,首要例示能够连接至针对基于远程的应用的服务器,诸如通过联系服务器的IP地址,并且利用服务器进行认证。作为示例,首要例示连接至服务器以便传输针对基于远程的应用的更新。在该示例中,用户可 以通过到首要例示的连接向联系人发送消息并且从联系人接收消息。由于首要例示可以作为首要,由此保持与服务器的连接,直至首要例示终止。如果首要还没有被终止(214处的否),则在206存在现有的首要例示。因此,在220,新的例示可以针对其当前状态对本地全局存储进行检查。作为示例,本地全局存储的当前状态可以包括现有键-值配对的状态。在222,非首要例示能够基于本地全局存储的当前状态,例如根据键-值配对,而对其自身进行初始化,并且在224等待包括来自首要例示的更新的状态变化。以这种方式,例如,如果被通知以状态变化,则新注册的例示可以基于其初始状态而识别出导致该变化的更新,并且在需要的情况下读取更新。在214,如果首要浏览器例示诸如通过关闭窗口或标签或者注销而被终止(214处的是),则在216,首要例示终止的通知可以被发送到向本地全局存储进行注册的其它例示。在一个实施例中,首要例示能够向本地全局存储注册为终止,例如提供事先通知以在终止之时或之前选择新的首要例示。在218,能够从向本地全局存储所注册的其余浏览器例示中针对基于远程的应用选择新的首要例示(例如,并且仍然进行操作)。在一个实施例中,选择新的首要例示能够包括对一个或多个其余浏览器例示的相应标识应用选择功能以选择新的首要例示。例如,web应用的相应例示可以包括标识符(例如,通用唯一标识符-UUID),并且选择功能可以被应用于该标识符,诸如选择最低编号、应用随机数生成器或者其它一些功能。在选择了新的首要浏览器例示之后,在218,所选择的例示可以在208被注册为首要例示,在210与服务器进行连接和利用服务器进行认证,并且在212作为首要直至终止。作为示例,如果在214当首要例示终止时没有其它例示向本地全局存储针对基于远程的应用进行注册,则本地全局存储可以被移除而不被诸如会话存储之类的基于远程的应用所使用,或者可以持续用于基于远程的应用直至被用户所移除。图3是图示可以使用到首要例示的连接针对基于远程的应用更新多个浏览器例示的至少一些方法的示例性实施例300的流程图,在302,首要例示保持与提供基于远程的应用的远程服务器的连接。在一个实施例中,首要例示能够针对用于基于远程的应用的非首要浏览器例示更新而监视本地全局存储以发送至服务器。例如,用户可以使用允许他们同时与多个连接在线聊天的服务。在该示例中,用户可能希望相应会话处于单独的窗口或窗口标签中以帮助组织不同会话,或者消除彼此的干扰。首要例示可以保持与提供聊天的服务器的连接,并且针对所有例示使用本地全局存储对传入和传出的聊天进行更新。在304,首要例示从服务器接收针对基于远程的应用的更新。这里,更新可以是针对首要例示,和/或多个非首要例示中的一个或多个。作为示例,如果用户正在使用即时消息传递应用的若干不同的浏览器例示与若干联系人进行会话,并且一些联系人发送了回复,则首要例示能够从服务器获取回复。回复可以是针对首要和/或一个或多个非首要例
/Jn ο在306,首要例示将更新写入本地全局存储(全局池)。在308,诸如通过针对一个 或多个键-值配对的变化而检测到针对全局池的状态变化。这里,状态变化激活变化事件,其可以被配置为使得将通知发送给向全局池进行注册的相应浏览器例示。在310,所注册的浏览器例示被通知以针对全局池的状态变化。在312,所注册的浏览器例示从全局池读取更新。例如,能够检测到针对键-值配对的变化(例如,新的键、新的数值、所去除的键)并且从全局池读取更新。在该实施例中,相应例示从全局池进行读取;然而,仅适用更新的那些例示将应用更新。在314,适用更新的浏览器例示能够应用更新。例如,所更新的例示能够显示从即时消息传递应用中的联系人所接收的消息。在316,对非首要例示进行更新。例如,诸如在若干浏览器窗口或标签中打开了多个基于远程的应用的用户能够在客户端侧上对一个或多个例示进行更新。在该示例中,用户可以在针对他们在即时消息传递应用中与之进行会话的其联系人之一的回复中写入消息,由此更新客户端侧的例示。将要意识到的是,从302到316的箭头指示与处理流程的方向相反的时间线。例如,在该实施例中,首要例示将保持到服务器的连接而非首要例示则例如被用户所更新。在318,诸如已经被用户所更新的非首要例示向本地全局存储(全局池)写入更新。在320,检测到针对全局池的状态变化,并且状态变化激活变化事件。在322,变化事件能够使得首要例示(例如,以及其它非首要例示)被通知以状态变化。在324,首要例示能够从全局池进行读取以从非首要例示得到更新。在326,首要例示使用其与服务器的连接而将更新从非首要例示发送至服务器。例如,以这种方式,可以利用其具有到服务器的直接连接而为非首要例示传播更新。系统可以被设计为允许在客户端机器上运行多个基于远程的应用(例如,web应用),例如,同时仅一个例示针对应用而保持到远程服务器的连接,并且相应例示可以使用该连接进行更新。图4是用于与多个客户端侧的浏览器例示共享到基于远程的应用的连接的示例性系统400的组件示图。存储器组件450中所包括的本地全局存储组件402对与远程服务器460所服务的基于远程的应用相关联的多个客户端侧浏览器例示452提供写入和读取访问。另外,本地全局存储组件402向首要浏览器例示454提供能够针对用于基于远程的应用的一个或多个第二浏览器例示456而向本地全局存储组件402写入更新,并且将更新从一个或多个第二浏览器例示456传输至基于远程的应用。也就是说,例如,远程应用能够使用服务器460来提供更新,并且首要例示能够将更新写入到本地全局存储402。在该示例中,第二浏览器例示456能够从本地全局存储402读取更新。另外,第二浏览器例示456能够向本地全局存储402进行写入,并且首要例示454能够读取更新并且将它们传输至远程服务器460上的远程应用。变化通知组件404与本地全局存储组件402操作耦接以将本地全局存储402的状态变化的通知提供至向本地全局存储组件402注册的一个或多个浏览器例示452,而并不由一个或多个浏览器例示452进行轮询。例如,不同于浏览器例示452针对可能已经发生的任意变化定期向本地全局存储组件402发送请求,变化通知组件404被配置为使得状态变化的通知被发送至浏览器例示452。
浏览器例示注册组件406与本地全局存储组件402操作耦接,并且提供第一浏览器例示以注册为针对基于远程的应用的首要浏览器例示454。这里,首要浏览器例示454连接458至远程服务器460以传输更新。另外,浏览器例示注册组件406提供一个或多个第二浏览器例示456以向本地全局存储组件402进行注册,以便通过首要浏览器例示454发送和获取针对基于远程的应用的更新。图5是图示可以实施这里所描述的一个或多个系统和/或技术的一个实施例500的组件示图。在一个实施例中,浏览器例示510、514可以包括分别包括基于远程的应用512、516 (例如,web应用)的例不的单独浏览器窗口。另外,浏览器例不510、514在浏览器中可以包括分别包括基于远程的应用的单独标签。此外,浏览器例示510、514可以包括诸如在客户端桌面上运行基于远程的应用的插件。在一个实施例中,本地全局存储组件402可以允许对本地全局存储402的客户端侧数据写入,和/或从本地全局存储402的数据读取,诸如从首要和次要例示510和514中运行的web应用512、516的数据读取。另外,当针对本地全局存储组件402发生状态变化时,本地全局存储组件402可以向诸如首要和次要例示510、514的已注册的客户端侧浏览器实例提供通知。在一个实施例中,状态变化可以导致变化通知组件404激活变化事件,其导致向例示510、514发送通知。在一个实施例中,本地全局存储组件402可以包括键-值配对522,其能够触发变化通知组件404以激活状态变化事件。状态变化事件可以在添加键、去除键和/或改变键值时被激活。在一个实施例中,针对本地全局存储组件402的状态变化的通知可以使得向本地全局存储组件402注册的一个或多个浏览器例示510、514从本地全局存储组件402进行读取以识别来自远程服务器上的基于远程的应用的由首要浏览器例示510所写入的更新。也就是说,当首要例示510诸如通过互联网连接518接收到来自服务器的更新时,首要例示510能够将更新写入本地全局存储402。状态变化的通知随后例如能够使得一个或多个次要例示514从本地全局存储402读取更新。又另一个实施例涉及一种计算机可读介质,其包括被配置为实施这里所给出的一种或多种技术的处理器可执行指令。图6中图示了可以以这些方式进行设计的示例性计算机可读介质,其中实施方式600包括其上编码有计算机可读数据606的计算机可读介质608(例如,⑶-R、DVD-R或者硬盘驱动器的碟片)。该计算机可读数据606进而包括被配置为根据这里所给出的一个或多个原则进行操作的计算机指令604的集合。在一个这样的实施例602中,处理器可执行指令604例如可以被配置为执行诸如图I的示例性方法100的方法。在另一个这样的实施例中,处理器可执行指令604例如可以被配置为实施诸如图4的示例性系统400的系统。许多这样的计算机可读媒体可以被本领域技术人员设计为被配置为依据这里所给出的技术进行操作。虽然已经以特定于结构特征和/或方法行为的语言对主题进行了描述,但是所要理解的是,所附权利要求中所定义的主题并不必局限于以上所描述的具体特征或行为。相反,以上所描述的具体特征和行为作为实施权利要求的示例形式而被公开。如本申请中所使用的,术语“组件”、“模块”、“系统”、“接口”等通常意在指代计算机相关实体、硬件、软硬件组合、软件或者执行中的软件。例如,组件可以是在处理器上运行的过程、处理器、对象、可执行程序、执行的线程、程序和/或计算机,但是并不局限于此。通过说明的方式,控制器上运行的应用以及控制器都可以作为组件。一个或多个组件可以驻 留于过程和/或执行线程之内,并且组件可以位于一台计算机上和/或在两台或更多计算机之间进行分布。此外,所请求保护的主题可以使用标准编程和/或工程技术而被实施为方法、装置或制造品以产生软件、固件、硬件或其任意组合来控制计算机以实施所公开的主题。如这里所使用的,术语“制造品”意在包含可从任意计算机可读设备、载体或媒体进行访问的计算机程序。当然,本领域技术人员将会认识到,可以对该配置进行许多修改而并不背离所请求保护主题的范围或精神。图7和以下讨论提供了用于实施这里所阐述的一种或多种提供形式的实施例的适当计算环境的简要的一般性描述。图7的操作环境仅是适当操作环境的一个示例而并非意在关于操作环境的使用或功能范围进行任何暗示。计算设备的示例包括个人计算机、月艮务器计算机、手持或膝上设备、移动设备(诸如移动电话、个人数字助理(PDA)、媒体播放器等)、多处理器系统、消费电子、小型计算机、大型计算机、包括以上任意系统或设备的分布式计算环境,等等,但是并不局限于此。虽然并不要求如此,但是在由一个或多个计算设备所执行的“计算机可读指令”的一般性环境中对实施例进行描述。计算机可读指令可以经由计算机可读媒体(以下进行讨论)进行分布。计算机可读指令可以被实施为程序模块,诸如执行特定任务或者实施特定抽象数据类型的函数、对象、应用编程接口(API)、数据结构等。典型地,计算机可读指令的功能在各种环境中可以按照需要进行组合或分布。图7图示了系统710的示例,其包括被配置为实施这里所提供的一个或多个实施例的计算设备712。在一种配置中,计算设备712包括至少一个处理单元716和存储器718。根据计算设备的确切配置和类型,存储器718可以是易失性(例如,诸如RAM)、非易失性(例如,诸如ROM、闪存等)或者二者的某种组合。该配置在图7中由虚线714所图示。在其它实施例中,设备712可以包括附加的特征和/或功能。例如,设备712还可以包括附加存储(例如,可移动和/或非可移动的),包括磁性存储、光学存储等,但是并不局限于此。这样的附加存储在图7中由存储720所图示。在一个实施例中,用来实施这里所提供的一个或多个实施例的计算机可读指令可以处于存储720中。存储720还可以存储其它计算机可读指令以实施操作系统、应用程序等。例如,计算机可读指令可以在存储器718中进行加载以供处理单元716执行。如这里所使用的术语“计算机可读媒体”包括计算机存储媒体。计算机存储媒体包括以用于存储诸如计算机可读指令或其它数据的信息的任意方法或技术所实施的易失性和非易失性、可移动和非可移动的媒体。存储器718和存储720是计算机存储媒体的示例。计算机存储媒体包括RAM、R0M、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁盒、磁带、磁盘存储或其它磁性存储设备,或者能够被用来存储所期望信息并且能够被设备712所访问的任意其它介质,但是并不局限于此。任意这样的计算机存储媒体都可以是设备712的一部分。设备712还可以包括允许设备712与其它设备进行通信的(多个)通信连接726。(多个)通信连接726可以包括调制解调器、网络接口卡(NIC)、集成网络接口、无线电频率发射器/接收器、红外端口、USB连接或者用于将计算设备712连接至其它计算设备的其它接口。(多个)通信连接726可以包括有线连接或无线连接。(多个)通信连接726可以发送和/或接收通信媒体。 术语“计算机可读媒体”可以包括通信媒体。通信媒体通常在诸如载波或其它传输机制的“调制的数据信号”中体现计算机可读指令或其它数据并且包括任意信息传递媒体。术语“调制的数据信号”可以包括其一个或多个特征以在信号中编码信息的方式设置或改变的信号。设备712可以包括(多个)输入设备724,诸如键盘、鼠标、触笔、语音输入设备、触摸输入设备、红外摄像机、视频输入设备和/或任意其它输入设备。设备712中还可以包括诸如一个或多个显不器、扬声器、打印机和/或任意其它输出设备的(多个)输出设备722。(多个)输入设备724和(多个)输出设备722可以经由有线连接、无线连接或者其任意组合连接至设备712。在一个实施例中,来自另一个计算设备的输入设备或输出设备可以被用作用于计算设备712的(多个)输入设备724或(多个)输出设备722。计算设备712的组件可以通过诸如总线的各种互连进行连接。这样的互连可以包括诸如PCI Express的外部组件互连(PCI)、通用串行总线(USB)、火线(IEEE 1394)、光学总线结构等。在另一个实施例中,计算设备712的组件可以通过网络进行互连。例如,存储器718可以由位于通过网络进行互连的不同物理位置中的多个物理存储器单元所构成。本领域技术人员将会认识到,用来存储计算机可读指令的存储设备可以跨网络进行分布。例如,可经由网络728进行访问的计算设备730可以存储计算机可读指令以实施这里所提供的一个或多个实施例。计算设备712可以访问计算设备730并且下载计算机可读指令的一部分或所有以便执行。可替换地,计算设备712可以按照需要下载计算机可读指令段,或者一些指令可以在计算设备712执行而一些则在计算设备730执行。这里提供了实施例的各种操作。在一个实施例中,所描述的一个或多个操作可以构成存储在一个或多个计算机可读媒体上的计算机可读指令,如果其被计算设备所执行,将使得该计算设备执行所描述的操作。对一些或所有操作进行描述的顺序不应当被解释为暗示这些操作必然是依赖于顺序的。本领域技术人员鉴于该描述将会意识到可替换的排序。另外,将要理解的是,并非所有操作都必然出现在这里所提供的每个实施例中。此外,词语“示例性”在这里被用于表示用作示例、实例或说明。这里被描述为“示例性”的任意方面或设计都并非必然要被解释为优于其它方面或设计。相反,词语示例性的使用是意在以具体的方式给出概念。如本申请中所使用的,术语“或者”意在表示包含性的“或者”而非排他性的“或者”。也就是说,除非另外指明或者从上下文所明确,否则“X采用A或B”意在表示任意的自然包含性排列。也就是说,如果X采用A、X采用B或X采用A和B,则“X采用A或B”就在以上任意实例下得以满足。此外,除非另外指明或者从上下文明确是指向单数形式,否则如本申请和所附权利要求中所使用的,冠词“一或一个”(“a”和“an”)通常可以被解释为表示“一个或多个”。
而且,虽然已经关于一种或多种实施方式示出并描述了本公开,但是基于对该说明书和附图的阅读和理解,对于本领域其它技术人员而言将会出现等同的变化和修改形式。本公开包括所有这样的修改和变化并且仅由以下权利要求的范围所限定。特别地,关于以上所描述组件(例如,部件、资源等)所执行的各种功能,即使在结构上与执行这里所说明的本公开的示例性实施方式中的功能的所公开结构并不等同,除非另作说明,否则被用来描述这样的组件的术语意在与执行(例如,在功能上等同的)所描述组件的指定功能的任意组件相对应。此外,虽然仅关于若干实施方式之一公开了本公开的特定特征,但是由于对于给定或特定应用而言可能是所期望并有利的,所以这样的特征可以与其它实施方式的一个或多个其它特征相结合。此外,至于在具体实施方式
或权利要求中所使用的术语“包括”、“有着”、“具有”、“带有”或其变化形式,这样的术语意在是以类似于术语“包含”的方式而是包含性的。
权利要求
1.一种用于与多个客户端侧的浏览器例示共享到基于远程的应用的连接的基于计算机的方法,包括 向与基于远程的应用相关联的多个客户端侧的浏览器例示通知针对本地全局存储的状态变化而并不进行轮询,所述多个客户端侧的浏览器例示能够向计算设备的存储器中所包括的本地全局存储进行写入或者从那里进行读取; 第一浏览器例示向本地全局存储注册为首要例示,其中所述首要例示通过计算设备中的端口连接至用于基于远程的应用的服务器;并且 所述首要例示使用与服务器的连接针对来自所述基于远程的应用的一个或多个第二浏览器例示向本地全局存储写入更新,并且将更新从一个或多个第二浏览器例示传输至基于远程的应用。
2.根据权利要求I的方法,包括在利用基于远程的应用进行例示时向本地全局存储注册新的浏览器例示。
3.根据权利要求2的方法,如果对于基于远程的应用并不存在首要例示,则包括新的浏览器例示 将其自身注册为首要例示的拥有方;并且 连接至服务器。
4.根据权利要求I的方法,包括首要例示执行以下的一个或多个 从服务器接收基于远程的应用更新; 向本地全局存储写入更新;并且 针对用于基于远程的应用的非首要浏览器例示更新监视本地全局存储以发送至服务器。
5.根据权利要求I的方法,如果对于基于远程的应用存在首要例示,则包括新的浏览器例示 针对其当前状态检查本地全局存储; 基于当前状态对其自身进行初始化;并且 等待包括来自首要例示的更新的状态变化。
6.根据权利要求I的方法,当首要例示终止时,包括 首要例示向本地全局存储注册其终止;并且 针对基于远程的应用从一个或多个其余浏览器例示中选择新的首要例示。
7.根据权利要求I的方法,一个或多个第二浏览器例示并不与用于基于远程的应用的服务器相连接,并且仅使用到服务器的首要例示连接通过本地全局存储接收和分布更新。
8.根据权利要求I的方法,使用用于指示本地全局存储的状态变化的键-值配对的集合来通知针对本地全局存储的状态变化。
9.根据权利要求I的方法,在被通知以针对本地全局存储的状态变化时,一个或多个已注册的浏览器例示从本地全局存储进行读取以确定该变化是否是针对其基于远程的应用的例示的更新。
10.一种用于与多个客户端侧的浏览器例示共享到基于远程的应用的连接的系统,包括本地全局存储组件,其包括在存储器组件中并且被配置为 对与基于远程的应用相关联的多个客户端侧的浏览器例示提供写入和读取访问;并且提供首要浏览器例示以针对用于基于远程的应用的一个或多个第二浏览器例示而向本地全局存储组件写入更新,并且将更新从一个或多个第二浏览器例示传输至基于远程的应用; 变化通知组件,其与所述本地全局存储组件操作耦接并且被配置为向注册到本地全局存储组件的一个或多个浏览器例示提供针对本地全局存储的状态变化的通知而并不由一个或多个浏览器例示进行轮询;和 浏览器例示注册组件,其与所述本地全局存储组件操作耦接并且被配置为 提供第一浏览器例示以注册为用于基于远程的应用的首要例示,其中所述首要浏览器例示连接至服务器以传输更新;并且 提供一个或多个第二浏览器例示以向本地全局存储进行注册以便通过首要浏览器例示发送和获取针对基于远程的应用的更新。
11.根据权利要求10的系统,所述浏览器例示包括以下之一 包括基于远程的应用的例示的浏览器中的标签; 包括基于远程的应用的例示的浏览器窗口 ;和 包括基于远程的应用的例示的插件。
12.根据权利要求10的系统,所述本地全局存储组件被配置为 允许对本地全局存储的客户端侧的数据写入; 允许从本地全局存储进行客户端侧的数据读取;并且 在针对本地全局存储组件发生状态变化时向所注册的客户端侧浏览器实例提供通知。
13.根据权利要求12的系统,针对本地全局存储组件的状态变化的通知被配置为使得向本地全局存储组件注册的一个或多个浏览器例示从本地全局存储组件进行读取以识别被首要浏览器例示所写入的来自基于远程的应用的更新。
14.根据权利要求10的系统,所述首要浏览器例示被配置为 从服务器接收基于远程的应用的更新; 将所述更新写入本地全局存储;并且 针对用于基于远程的应用的非首要浏览器例示更新而对本地全局存储进行监视以发送至服务器。
15.根据权利要求10的系统,所述一个或多个第二浏览器例示被配置为 针对其当前状态检查本地全局存储组件; 基于当前状态对其自身进行初始化;并且 等待包括来自首要浏览器例示的更新的状态变化。
全文摘要
公开了用于共享到服务器上运行的基于远程的应用的连接的一种或多种技术和/或系统。多个客户端侧的浏览器例示可以与基于远程的应用相关联,诸如通过在相应客户端机器上本地运行远程应用的例示。客户端侧的浏览器例示能够写入与基于远程的应用相关的本地全局存储并且从那里读取,并且被通知以本地全局存储的状态变化而并不进行轮询。第一浏览器例示向本地全局存储注册为首要例示,并且连接至用于基于远程的应用的服务器。注册到本地全局存储的一个或多个第二浏览器例示连同首要浏览器例示能够利用状态变化通知通过首要浏览器例示发送和接收针对基于远程的应用的更新。
文档编号G06F9/44GK102906727SQ201180025641
公开日2013年1月30日 申请日期2011年5月17日 优先权日2010年5月24日
发明者S.R.戈登, C.G.帕克, T.M.小伦茨, J.M.范德科尔克 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1