首页> 中国专利> 在移动设备上针对在服务器上远程执行的应用的外壳集成

在移动设备上针对在服务器上远程执行的应用的外壳集成

摘要

描述的系统和方法针对允许跨设备一致地和动态地漫游应用。其它方面包括跨相异设备以一致和完整方式漫游特定于每个应用的应用特性、数据或者内容、特定于每个应用或者内容的用户偏好、比如固定或者取消固定以及特定于每个应用的用户历史以提供与本机设备用户接口的无缝集成。应用特性可以包括由应用支持的不同选项、任务组或者内容组、动态改变的用户接口以及基于应用状态或者用户动作的任务或者内容。在另一方面中,这里描述的系统和方法无缝集成漫游与原生设备、比如平板计算机或者智能电话的用户接口。这里描述的系统和方法使分布式和相异设备环境中的“工作转移”可实现并且极为可用。

著录项

  • 公开/公告号CN103649936A

    专利类型发明专利

  • 公开/公告日2014-03-19

    原文格式PDF

  • 申请/专利权人 西里克斯系统公司;

    申请/专利号CN201280031449.3

  • 发明设计人 G·莫姆奇洛维;

    申请日2012-05-18

  • 分类号G06F15/16;

  • 代理机构北京市金杜律师事务所;

  • 代理人王茂华

  • 地址 美国佛罗里达州

  • 入库时间 2024-02-19 23:32:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-16

    授权

    授权

  • 2014-04-16

    实质审查的生效 IPC(主分类):G06F15/16 申请日:20120518

    实质审查的生效

  • 2014-03-19

    公开

    公开

说明书

有关申请的交叉引用

本申请要求对2011年5月20日提交的、标题为"Systems and  Methods for Providing Shell Integration on a Mobile Device for an  Application Executing Remotely on a Server"的第61/488,612号临时美 国申请和2011年5月20日提交、标题为"Systems and Methods for  Providing Shell Integration for an Application Executing Remotely on a  Server"的第61/488,593号临时美国申请的优先权,其二者的内容出 于所有目的通过完全引用结合于此。

技术领域

本公开内容总体涉及在移动设备上显示在服务器上远程执行 的应用。具体而言,本公开内容针对在移动设备上为在服务器上远 程执行的应用提供外壳(shell)集成。

背景技术

通过计算和联网能力的发展,公司和用户日益使用移动计算设 备以远程执行应用。然而在许多实例中,在移动设备上使用远程执 行的应用可能尤其鉴于移动计算设备的一些限制而提供繁琐的用户 体验。

目前有用于跨设备和操作系统平台漫游应用的工具。也有用于 数据同步以及跨设备同步用户偏好的工具、比如微软漫游简档。然 而这些解决方案不相交并且可能未被所有设备或者OS平台支持。

发明内容

鉴于前述背景,以下呈现本公开内容的简化发明内容以便提供 这里描述的一些方面的基本理解。这一发明内容不是总括性概述, 并且它未旨在于标识重要或者关键要素或者界定权利要求的范围。 以下发明内容仅以简化形式呈现各种描述的方面作为对以下提供的 更具体描述的前序。

移动设备迅速渗透全球消费者空间和企业。用户期望很高:设 备需要是个人化的、友好的和交互式的。信息需要被快速地访问。 遵循“工作转移”想法的用户期待能够在他们在如下设备与设备之间 漫步时能够同样轻松地完成他们的工作:桌面计算机、膝上计算机、 平板计算机或者电话。如今,尽管存在用于跨设备漫游应用、同步 数据或者用户偏好的一些解决方案,但是这些解决方案经常是分离 的并且缺乏完整支持。托管的应用体验在移动设备上特别繁琐。

利用这里描述的系统和方法,作为示例而无任何限制,银行家 可以在他的桌面计算机上编辑文档。后期他访问网站并且固定(pin) 它,因此可以在下次快速地启动它。然后,银行家带着他的IPAD(或 者其它平板计算设备)漫步到会议室中并且枚举应用。使用所指定 的手势、比如按压和保持、双击或者两手指挥动,银行家打开MS  Word使用的新近文档——包括银行家在桌面计算机上刚才编辑的文 档——的直接视图,并且能够直接打开最新近文档。相似地,用户 可以获得web浏览器的定制任务的直接视图、URL历史和固定的网 站并且能够直接打开它们。在平板计算设备上时,银行家也可以打 开一些新文档和网站。然后,用户离开办公室回家并且在路上使用 他们的安卓手机以获得托管的应用,并且能够快速启动他们在平板 计算设备上刚才编辑的最新近文档。

这里描述的系统和方法涉及允许跨设备一致地和动态地漫游 应用。其它方面包括跨相异设备以一致和完整方式漫游特定于每个 应用的应用特性、数据或者内容、特定于每个应用或者内容的用户 偏好、比如固定或者取消固定以及特定于每个应用的用户历史以提 供与本机设备用户接口的无缝集成。应用特性可以包括由应用支持 的不同选项、任务组或者内容组、动态改变的用户接口以及基于应 用状态或者用户动作的任务或者内容。在另一方面中,这里描述的 系统和方法无缝集成漫游与原生设备、比如平板计算机或者智能电 话的用户接口。在一些实施例中,本地设备用户接口用来递送无缝 和直观的终端用户体验。此外,使用具有与本机客户端用户接口一 致的外壳皮肤的会话中用户接口可以提供跨多个和迅速出现的新设 备的最佳利用。这里描述的系统和方法使得分布式和相异设备环境 中的“工作转移”可实现并且极为可用。

在附图和以下描述中阐述这里描述的方法和系统的各种实施 例的细节。

附图说明

公开内容的前述和其它目的、方面、特征以及优点将通过参照 结合附图进行的以下描述而变得更清楚并且被更佳理解,在附图中:

图1A图示根据这里描述的一个或者多个方面的网络环境的实 施例,这些网络环境向可以执行应用程序的计算设备提供远程访问;

图1B和图1C是描绘根据这里描述的一个或者多个方面的计 算设备的实施例的框图;

图2图示根据这里描述的一个或者多个方面的用于在移动设 备上为在服务器上远程执行的应用提供外壳集成的系统的框图;

图3图示根据这里描述的一个或者多个方面的定制的目的地 列表的屏幕截图;

图4图示根据这里描述的一个或者多个方面的用于字处理器 的目的地列表的屏幕截图;

图5图示根据这里描述的一个或者多个方面的用于web浏览器 的目的地列表的屏幕截图;

图6图示根据这里描述的一个或者多个方面的用于字处理器 的目的地列表在移动设备上的屏幕截图;

图7图示根据这里描述的一个或者多个方面的用于web浏览器 的目的地列表在移动设备上的屏幕截图;

图8图示根据这里描述的一个或者多个方面的来自会话中移 动设备外壳皮肤的用于字处理器的目的地列表在移动设备上的屏幕 截图;

图9图示根据这里描述的一个或者多个方面的来自会话中移 动设备外壳皮肤的用于web浏览器的目的地列表在移动设备上的屏 幕截图;

图10图示根据这里描述的一个或者多个方面的用于执行外壳 集成的方法的流程图;并且

图11图示根据这里描述的一个或者多个方面的用于执行外壳 集成的方法的流程图。

图12图示根据这里描述的一个或者多个方面的平板计算机优 化触摸友好外壳皮肤的另一实施例在移动设备上的屏幕截图。

这里描述的方法和系统的特征和优点将根据在与附图结合阐 述以下具体描述中变得更清楚,在附图中,相似标号全篇标识对应 要素。在附图中,相似标号一般指示相同、功能相似和/或结构相似 要素。

具体实施方式

在以下各种实施例的描述中参照附图,这些附图形成该描述的 部分,并且在附图中通过示例示出各种实施例,可以在这些实施例 中实现这里描述的方面。将理解可以利用其它实施例并且可以进行 结构和功能修改而未脱离本公开内容的范围和精神实质。

为了阅读以下各种实施例的描述,说明书的章节及其相应内容 的以下描述可以有帮助:

章节A描述可以对于实践这里描述的一个或者多个实施例有 用的网络环境和计算环境;

章节B描述用于在移动设备上为在服务器上远程执行的应用 提供外壳集成的系统的实施例;并且

章节C描述用于在移动设备上为在服务器上远程执行的应用 提供外壳集成的方法的实施例。

可以组合或者分开使用实施例的各种方面。每个描述的实施例 在性质上为示例而未旨在于限制,除非如此明示。

章节A:网络和计算环境

如本领域技术人员将在阅读以下公开内容时理解的那样,这里 描述的各种方面可以体现为方法、数据处理系统或者计算机程序产 品。因而那些方面可以采用全硬件实施例、全软件实施例或者组合 软件和硬件方面的实施例这样的形式。另外,这样的方面可以采用 一个或者多个计算机可读存储介质存储的计算机程序产品这样的形 式,该一个或者多个计算机可读存储介质具有在存储介质中或者上 体现的计算机可读程序代码或者指令。可以利用任何适当计算机可 读存储介质,该计算机可读存储介质包括硬盘、CD-ROM、光学存 储设备、磁存储设备和/或其任何组合。此外,可以用经过信号传导 介质、比如金属接线、光纤和/或无线传输介质(例如空气和/或空间) 行进的电磁波的形式在源与目的地之间传送代表如这里描述的数据 或者事件的各种信号。

图1A图示计算环境101的一个实施例,该计算环境包括与一 个或者多个服务器106A-106N(这里统称为“服务器106”)通信的一 个或者多个客户端机器102A-102N(这里称为“客户端机器102”)。 在客户端机器102与服务器106之间安装网络。

在一个实施例中,计算环境101可以包括在服务器106与客户 端机器102之间安装的装置。这一装置可以管理客户端/服务器连接 并且在一些情况下可以在多个后端服务器之中负载均衡客户端连 接。

客户端机器102可以在一些实施例中称为单个客户端机器102 或者单组客户端机器102,而服务器106可以称为单个服务器106 或者单组服务器106。在一个实施例中,单个客户端机器102与多于 一个服务器106通信,而在另一实施例中,单个服务器106与多于 一个客户端机器102通信。在更多另一实施例中,单个客户端机器 102可以与单个服务器106通信。

客户端机器102可以在一些实施例中被以下术语中的任何术 语引用:客户端机器102;客户端;客户端计算机;客户端设备;客 户端计算设备;本地机器;远程机器;客户端节点;端点;端点节 点;或者第二机器。服务器106在一些实施例中可以被以下术语中 的任何术语引用:服务器、本地机器;远程机器;服务器群、主机 计算设备或者第一机器。

在一个实施例中,客户端机器102可以是虚拟机102C。在一 些实施例中,虚拟机102C可以由管理程序、比如Citrix Systems公 司开发、销售的Xen管理程序、Microsoft公司开发和销售的Hyper-V、 EMC开发和销售的ESX或者任何其它管理程序管理。

客户端机器102可以在一些实施例中执行、操作或者提供应 用,该应用可以是以下各项中的任何项:软件;程序;可执行指令; 虚拟机;管理程序;web浏览器;基于web的客户端;客户端-服务 器应用;瘦客户端计算客户端;ActiveX控件;Java小程序;与网际 协议语音(VoIP)通信有关的软件、比如软IP电话;用于流式输送 视频和/或音频的应用;用于有助于实时数据通信的应用;HTTP客 户端;FTP客户端;Oscar客户端;Telnet客户端;或者任何其它可 执行指令集。更多其它实施例包括客户端设备102,该客户端设备显 示在服务器106或者其它处在远程的机器上远程执行的应用生成的 应用输出。在这些实施例中,客户端设备102可以在应用视窗、浏 览器或者其它输出视窗中显示应用输出。在一个实施例中,应用是 桌面,而在其它实施例中,应用是生成桌面的应用。

服务器106在一些实施例中执行远程呈现客户端或者其它客 户端或者程序,该客户端或者程序使用瘦客户端或者远程显示协议 以捕获在服务器106上执行的应用生成的显示输出并且向远程客户 端102发送应用显示输出。瘦客户端或者远程显示协议可以是以下 协议中的任何协议:Ft.Lauderdale,Florida的Citrix Systems公司制 造的独立计算架构(ICA)协议;或者Redmond,Washington的 Microsoft公司制造的远程桌面协议(RDP)。

计算环境可以包括多于一个服务器106A-106N,从而服务器 106A-106N在逻辑上一起分组成服务器群106。服务器群106可以包 括地理上分散并且逻辑上分组成服务器群106的服务器106或者位 置相互邻近并且逻辑上分组成服务器群106的服务器106。在服务器 群106内的地理上分散的106A-106N可以在一些实施例中使用 WAN、MAN或者LAN来通信,其中可以表征不同地理区域为:不 同大陆;大陆的不同地区;不同国家;不同州;不同城市;不同校 园;不同房间;或者前述地理位置的任何组合。在一些实施例中, 服务器群106可以被管理为单个视图,而在其它实施例中,服务器 群106可以包括多个服务器群106。

在一些实施例中,服务器群106可以包括服务器106,这些服 务器执行基本上相似类型的操作系统平台(例如Redmond, Washington的Microsoft公司制造的WINDOWS NT、UNIX、LINUX 或者SNOW LEOPARD)。在其它实施例中,服务器群106可以包 括执行第一类型的操作系统平台的第一组服务器106和执行第二类 型的操作系统平台的第二组服务器106。服务器群106在其它实施例 中可以包括执行不同类型的操作系统平台的服务器106。

服务器106在一些实施例中可以是任何服务器类型。在其它实 施例中,服务器106可以是以下服务器类型中的任何服务器类型: 文件服务器;应用服务器;web服务器;代理服务器;装置;网络 装置;网关;应用网关;网关服务器;虚拟化服务器;部署服务器; SSL VPN服务器;防火墙;web服务器;应用服务器或者作为主控 应用服务器;执行活动目录的服务器106;或者执行应用加速程序的 服务器106,该应用加速程序提供防火墙功能、应用功能或者负载均 衡功能。在一些实施例中,服务器106可以是包括远程认证拨号用 户服务的RADIUS服务器。在服务器106包括装置的实施例中,服 务器106可以是以下制造商中的任何制造商制造的装置:Citrix  Application Networking Group;Silver Peak Systems公司;Riverbed  Technology公司;F5Network公司;或者Juniper网络公司。一些实 施例包括第一服务器106A,该第一服务器从客户端机器102接收请 求、向第二服务器106B转发请求并且用来自第二服务器106B的响 应对客户端机器102生成的请求做出响应。第一服务器106A可以获 取可用于客户端机器102的应用的枚举以及与应用服务器106关联 的地址信息,该应用服务器托管在应用枚举内标识的应用。第一服 务器106A然后可以使用web接口来呈现对客户端的请求的响应并 且与客户端102直接通信以向客户端102提供对标识的应用的访问。

服务器106可以在一些实施例中执行以下应用中的任何应用: 瘦客户端应用,该瘦客户端应用使用瘦客户端协议以向客户端发送 应用显示数据;远程显示呈现应用;Citrix Systems公司的CITRIX  ACCSS SUITE的任何部分、比如XENAPP或者CITRIX  PRESENTATION SERVER;Microsoft公司制造的MICROSOFT  WINDOWS终端服务;或者Citrix Systems公司开发的ICA客户端。 另一实施例包括服务器106,该服务器是应用服务器、比如:电子邮 件应用,该电子邮件应用提供电子邮件服务、比如Microsoft公司制 造的MICROSOFT EXCHANGE;web或者因特网服务器;桌面共享 服务器;协作服务器;或者任何其它类型的应用服务器。更多其它 实施例包括服务器106,该服务器执行以下类型的托管的服务器应用 中的任何服务器应用:Citrix Online Division公司提供的 GOTOMEETING;Santa Clara,California的WebEx公司提供的 WEBEX;或者Microsoft公司提供的Microsoft Office LIVE  MEETING。

客户端机器102在一些实施例中可以是客户端节点,该客户端 节点寻求访问服务器106提供的资源。在其它实施例中,服务器106 可以向客户端102或者客户端节点提供对托管的资源的访问。服务 器106在一些实施例中作为主控节点工作,从而它可以与一个或者 多个客户端102或者服务器106通信。在一些实施例中,主控节点 可以标识并且向一个或者多个客户端102或者服务器106提供与托 管请求的应用的服务器106关联的地址信息。在更多其它实施例中, 主控节点可以是服务器群106、客户端102、客户端节点102的群集 或者装置。

一个或者多个客户端102和/或一个或者多个服务器106可以 通过在计算环境101内的机器和装置之间安装的网络104发送数据。 网络104可以包括一个或者多个子网络并且可以安装于在计算环境 101内包括的客户端102、服务器106、计算机器和装置的任何组合 之间。在一些实施例中,网络104可以是:局域网(LAN);城域 网(MAN);广域网(WAN);主要网络104,该主要网络包括位 于客户端机器102与服务器106之间的多个子网络104;具有私用子 网络104的主要公用网络104;具有公用子网络104的主要私用网络 104;或者具有私用子网络104的主要私用网络104。另外更多实施 例包括网络104,该网络可以是以下网络类型中的任何网络类型:点 到点网络;广播网络;电信网络;数据通信网络;计算机网络;ATM (异步传送模式)网络;SONET(同步光网络)网络;SDH(同步 数字分级)网络;无线网络;有线网络;或者包括无线链路的网络 104,其中无线链路可以是红外线信道或者卫星频带。网络104的网 络拓扑可以在不同实施例内不同,可能的网络拓扑包括:总线网络 拓扑;星型网络拓扑;环形网络拓扑;基于中继器的网络拓扑;或 者分层星型网络拓扑。附加实施例可以包括使用协议以在移动设备 之间通信的移动电话网络的网络104,其中协议可以是以下各项中的 任何项:AMPS;TDMA;CDMA;GSM;GPRS UMTS;EV-DO; LTE;或者能够在移动设备之间发送数据的任何其它协议、比如 802.11、蓝牙和近场通信。

在图1B中图示计算设备100的一个实施例,可以部署图1中 所示客户端机器102和服务器106为这里图示和描述的计算设备100 的任何实施例和/或在该任何实施例上执行。在计算设备100内包括 系统总线150,该系统总线与以下部件通信:中央处理单元121;主 存储器122;存储装置存储器128;输入/输出(I/O)控制器123; 显示设备124A-124N;安装设备116;以及网络接口118。在一个实 施例中,存储装置存储器128包括:操作系统、软件例程和客户端 代理120。I/O控制器123在一些实施例中还连接到键盘126和指示 设备127。其它实施例可以包括连接到多于一个输入/输出设备 130A-130N的I/O控制器123。

图1C图示计算设备100的一个实施例,其中可以部署图1中 所示客户端机器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的更多其它实施例可以包括以下各项的任何组合:微 处理器、微控制器、具有单个处理内核的中央处理单元、具有两个 处理内核的中央处理单元或者具有多于一个处理内核的中央处理单 元。

尽管图1C图示包括单个中央处理单元121的计算设备100, 但是在一些实施例中,计算设备100可以包括一个或者多个处理单 元121。在这些实施例中,计算设备100可以存储和执行固件或者其 它可执行指令,这些指令在被执行时指引一个或者多个处理单元121 同时执行指令或者对单条数据同时执行指令。在其它实施例中,计 算设备100可以存储和执行固件或者其它可执行指令,这些指令在 被执行时指引一个或者多个处理单元各自执行一组指令的一部分。 例如可以指导每个处理单元121执行程序的部分或者程序内的特定 模块。

在一些实施例中,处理单元121可以包括一个或者多个处理内 核。例如处理单元121可以具有两个内核、四个内核、八个内核等。 在一个实施例中,处理单元121可以包括一个或者多个并行处理内 核。处理单元121的处理内核可以在一些实施例中访问作为全局地 址空间的可用存储器,或者在其它实施例中,可以分割并且向处理 单元121内的特定内核指派存储器计算设备100内的存储器。在一 个实施例中,计算设备100中的一个或者多个处理内核或者处理器 可以各自访问本地存储器。在更多另一实施例中,可以在一个或者 多个处理器或者处理内核之间共享计算设备100内的存储器,而其 它存储器可以由特定处理器或者处理器子集访问。在计算设备100 包括多于一个处理单元的实施例中,可以在单个集成电路(IC)中 包括多个处理单元。这些多个处理器在一些实施例中可以由称为单 元互连总线的内部高速总线链接在一起。

在计算设备100包括一个或者多个处理单元121或者如下处理 单元121、该处理单元包括一个或者多个处理内核的实施例中,处理 器可以对多条数据同时执行单个指令(SIMD),或者在其它实施例 中可以对多条数据同时执行多个指令(MIMD)。在一些实施例中, 计算设备100可以包括任何数目的SIMD和MIMD处理器。

计算设备100在一些实施例中可以包括图形处理器或者图形 处理单元(未示出)。图形处理单元可以包括软件和硬件的任何组 合并且还可以输入图形数据和图形指令、根据输入的数据和指令呈 现图形并且输出呈现的图形。在一些实施例中,可以在处理单元121 内包括图形处理单元。在其它实施例中,计算设备100可以包括一 个或者多个处理单元121,其中至少一个处理单元121专用于处理和 呈现图形。

计算机器100的一个实施例包括经由也称为后侧总线的次级 总线与高速缓存存储器140通信的中央处理单元121,而计算机器 100的另一实施例包括经由系统总线150与高速缓存存储器通信的 中央处理单元121。本地系统总线150可以在一些实施例中也由中央 处理单元用来与多于一个类型的I/O设备130A-130N通信。在一些 实施例中,本地系统总线150可以是以下类型的总线中的任何类型: VESA VL总线;ISA总线;EISA总线;微通道架构(MCA)总线; PCI总线;PCI-X总线;PCI-快速总线;AGP总线;或者NuBus。计 算机器100的其它实施例包括I/O设备130A-130N,该I/O设备是与 中央处理单元121通信的视频显示器124。计算机器100的更多其它 版本包括经由以下连接中的任何连接来连接到I/O设备130A-130N 的处理器121:HyperTransport、快速I/O或者InfiniBand。计算机器 100的更多实施例包括使用本地互连总线来与一个I/O设备130A通 信并且使用直接连接来与第二I/O设备130B通信的处理器121。

计算设备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;PC100SDRAM;双数据速率SDRAM (DDR SDRAM);增强SDRAM(ESDRAM);同步链路DRAM (SLDRAM);直接Rambus DRAM(DRDRAM);铁电RAM(FRAM); 基于忆阻器的存储器;或者任何其它类型的存储器。更多实施例包 括可以经由以下各项访问主存储器122的中央处理单元121:系统总 线150;存储器端口103;或者允许处理器121访问存储器122的任 何其它连接、总线或者端口。

计算设备100的一个实施例为以下安装设备116中的任何安装 设备提供支持:CD-ROM驱动、CD-R/RW驱动、DVD-ROM驱动、 各种格式的磁带驱动器、USB设备、安全数字卡、NetBoot或者iPXE 固件、可引导介质、可引导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、IEEE 802.11、IEEE802.11a、IEEE802.11b、IEEE802.1lg、CDMA、GSM、 WiMax和直接异步连接)来建立连接。计算设备100的一个版本包 括能够经由任何类型和/或形式的网关或者隧道协议与附加计算设备 100’通信的网络接口118,该网关或者隧道协议比如是安全套接字层 (SSL)或者传送层安全(TLS)或者Citrix Systems公司制造的Citrix 网关协议。网络接口118的版本可以包括以下各项中的任何项:内 置网络适配器;网络接口卡;PCMCIA网络卡;卡总线网络适配器; 无线网络适配器;USB网络适配器;调制解调器;或者适合于将计 算设备100对接到能够通信的网络并且实现这里描述的方法和系统 的任何其它设备。

计算设备100的实施例包括以下I/O设备130A-130N中的任何 一个I/O设备:键盘126;指示设备127;鼠标;跟踪板;光笔;跟 踪球;麦克风;绘图平板;视频显示器;扬声器;喷墨打印机;激 光打印机;和染料升华打印机;或者能够实现这里描述的方法和系 统的任何其它输入/输出设备。I/O控制器123可以在一些实施例中 连接到多个I/O设备103A-130N以控制一个或者多个I/O设备。I/O 设备103A-130N的一些实施例可以被配置用于提供存储装置或者安 装介质116,而其它可以提供用于接收USB存储设备的通用串行总 线(USB)接口、比如Twintech Industry公司制造的USB闪盘产品 线。更多其它实施例包括I/O设备130,该I/O设备可以是在系统总 线150与外部通信总线之间的网桥,该外部通信总线比如是:USB 总线;Apple Desktop Bus;RS-232串行连接;SCSI总线;FireWire 总线;FireWire800总线;以太网总线;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可以执行以下操作系统中的任何操作 系统:MICROSOFT WINDOWS操作系统的版本、比如WINDOWS 3.x;WINDOWS95;WINDOWS98;WINDOWS2000;WINDOWS  NT3.51;WINDOWS NT4.0;WINDOWS CE;WINDOWS XP;和 WINDOWS VISTA;Unix和Linux操作系统的不同发布;Apple  Computer公司制造的MAC OS的任何版本;国际商务机器公司制造 的OS/2;任何嵌入式操作系统;任何实时操作系统;任何开源操作 系统;任何私有操作系统;用于移动计算设备的任何操作系统;或 者任何其它操作系统。在更多另一实施例中,计算机器100可以执 行多个操作系统。例如计算机器100可以执行PARALLELS或者另 一虚拟化平台,该虚拟化平台可以执行或者管理虚拟机,该虚拟机 执行第一操作系统,而计算机器100执行与第一操作系统不同的第 二操作系统。

可以在以下计算设备中的任何计算设备中体现计算机器100: 计算工作站;桌面计算机;膝上或者笔记本计算机;服务器;手持 计算机;移动电话;便携电信设备;媒体播放设备;游戏系统;移 动计算设备;上网本;Apple公司制造的IPOD设备系列的设备;Sony 公司制造的PLAYSTATION设备系列的任何设备;Nintendo公司制 造的Nintendo设备系列的任何设备;Microsoft公司制造的XBOX设 备系列的任何设备;或者任何其它类型和/或形式的计算、电信或者 媒体设备,该设备能够通信并且具有用于实现这里描述的方法和系 统的充分处理器能力和存储器容量。在其它实施例中,计算机器100 可以是移动设备、比如以下移动设备中的任何移动设备:支持JAVA 功能的蜂窝电话或者个人数字助理(PDA)、比如i55sr、i58sr、i85s、 i88s、i90c、i95cl或者im1100,所有这些是Motorola公司制造的; Kyocera制造的6035或者7135;Samsung Electronics有限公司制造 的i300或者i330;Palm公司制造的TREO180、270、600、650、680、 700p、700w或者750智能电话;任何计算设备,该计算设备具有与 设备一致的不同处理器、操作系统和输入设备;或者能够实现这里 描述的方法和系统的任何其它移动计算设备。在更多其它实施例中, 移动计算设备100可以是以下移动计算设备中的任何移动计算设备: Research In Motion有限公司制造的任一系列的Blackberry或者其它 手持设备;Apple Computer制造的iPhone;Palm Pre;Pocket PC;Pocket  PC电话;或者任何其它手持移动设备。

在一些实施例中,计算设备100可以具有与设备一致的不同处 理器、操作系统和输入设备。例如在一个实施例中,计算设备100 是Palm公司制造的TREO180、270、600、650、680、700p、700w 或者750智能电话。在这些实施例中的一些实施例中,TERO智能电 话是在PalmOS操作系统的控制之下操作的并且包括触笔输入设备 以及五向导航器设备。

在其它实施例中,计算设备100是移动设备、比如支持JAVA 功能的蜂窝电话或者个人数字助理(PDA)、比如i55sr、i58sr、i85s、 i88s、i90c、i95cl或者im1100,所有这些是Schaumburg,Illinois的 Motorola公司制造的;Kyoto,Japan的Kyocera制造的6035或者7135; 或者Seoul,Korea的Samsung Electronics有限公司制造的i300或者 i330。在一些实施例中,计算设备100是Finland的Nokia或者Lund, Sweden的Sony Ericsson Mobile Communication AB制造的移动设备。

在更多其它实施例中,计算设备100是Blackberry手持或者智 能电话、比如Research In Motion有限公司制造的设备、包括 Blackberry7100系列、8700系列、7700系列、7200系列、Blackberry 7520或者Blackberry Pearl8100。在更多其它实施例中,计算设备100 是智能电话、Pocket PC、Pocket PC电话或者支持Microsoft Windows  Mobile软件的其它手持移动设备。另外,计算设备100可以是任何 工作站、桌面计算机、膝上或者笔记本计算机、服务器、手持计算 机、移动电话、任何其它计算机或者能够通信并且具有用于执行这 里描述的操作的充分处理器功率和存储器容量的其它形式的计算或 者电信设备。

在一些实施例中,计算设备100是数字音频播放器。在这些实 施例之一中,计算设备100是数字音频播放器、比如Cupertino, California的Apple Computer公司制造的Apple IPOD、IPOD Touch、 IPOD NANO和IPOD SHUFFLE设备产品。在这些实施例中的另一 实施例中,数字音频播放器可以作为便携媒体播放器和海量存储设 备二者工作。在其它实施例中,计算设备100是数字音频播放器、 比如Ridgefield Park,NJ的Samsung Electronics America制造的 DigitalAudioPlayer Select MP3播放器或者Schaumburg,IL的 Motorola公司制造的Motorola m500或者m25数字音频播放器。在 更多其它实施例中,计算设备100是便携媒体播放器、比如Creative  Technologies公司制造的Zen Vision W、Zen Vision系列、Zen Portable  Media Center设备或者Digital MP3系列的MP3播放器产品。在更多 其它实施例中,计算设备100是支持文件格式的便携媒体播放器或 者数字音频播放器,这些文件格式包括但不限于MP3、WAV、 M4A/AAC、WMA保护的AAC、AIFF、Audible有声书、Apple无损 音频文件格式以及.mov、.m4v和.mp4MPEG-4(H.264/MPEG-4AVC) 音频文件格式。

在一些实施例中,计算设备100包括设备的组合、比如与数字 音频播放器或者便携媒体播放器组合的移动电话。在这些实施例之 一中,计算设备100是Motorola RAZR或者Motorola ROKR系列的 组合数字音频播放器和移动电话产品。在这些实施例中的另一实施 例中,计算设备100是Cupertino,California的Apple Computer制造 的iPhone智能电话。

图1A-1C在性质上为示例,并且一个或者多个硬件和/或软件 销售商、设备、服务和其它示例的具体标识无限制。随着开发每个 相应服务或者设备的更新版本,可以也使用或者取而代之使用这样 的新版本以及这里未列举的其它新服务和设备。

章节B:用于在移动设备上为在服务器上远程执行的应用提供 外壳集成的系统

参照图2,描述框图,该框图图示用于在移动设备上为在服务 器上远程执行的应用提供外壳集成的示例系统200。简要概述,系统 200包括服务器106。在服务器106上执行的服务器代理210与在服 务器106上执行的托管的应用220通信。在一些实施例中,托管的 应用220在新创建的用户会话内执行。在一些实施例中,托管的应 用220在现有用户会话内执行。服务器代理210与外壳皮肤生成器 240通信。服务器代理210通过网络104与客户端代理230通信。在 一些实施例中,外壳皮肤生成器240通过网络104与客户端代理230 通信。在一些实施例中,外壳皮肤生成器240与在服务器106上执 行的用户会话的操作系统的外壳250通信。在一些实施例中,外壳 皮肤生成器240与服务器106的操作系统的外壳250通信。在一些 实施例中,服务器代理210通过远程呈现层协议、比如这里描述的 远程呈现层协议,与客户端代理230通信。客户端代理230在移动 计算设备102上执行。在一些实施例中,在服务器106上执行的外 壳250在桌面环境中提供用户接口元素的显示。这一外壳250可以 不同地称为取景器、图形用户接口(GUI)、视窗或者X视窗接口 或者任何其它相似术语。在一些实施例中,外壳250根据与应用220 关联的属性数据显示与远程应用220关联的图形数据。

仍然参照图2并且更具体而言,客户端代理230在移动计算设 备102上执行。虽然称为客户端代理,但是在一些实施例中,客户 端代理230可以称为接收器、本地客户端、本地客户端进程、本地 客户端代理或者任何其它相似术语。在一个实施例中,移动计算设 备是任何类型的智能电话或者平板。在另一实施例中,移动计算设 备是移动计算设备102,该移动设备连接到服务器106以访问可用于 移动计算设备102的用户的一个或者多个资源。在更多另一实施例 中,客户端代理230是呈现层协议代理的部分。在另一实施例中, 客户端代理230与呈现层协议代理通信。在各种实施例中,客户端 代理可以包括软件、硬件或者硬件和软件的任何组合。

服务器代理210在远程计算设备106上执行。与客户端代理 230一样,在一些实施例中,服务器代理可以称为远程代理、远程客 户端、远程进程、服务器进程或者任何其它相似术语。在一个实施 例中,远程计算设备是如结合图1A-1C描述的计算设备。在另一实 施例中,服务器代理210是呈现层协议代理的部分。在更多另一实 施例中,服务器代理210与呈现层协议代理通信。在各种实施例中, 服务器代理可以包括软件、硬件或者硬件和软件的任何组合。

外壳皮肤生成器240在远程计算设备106上执行。与客户端代 理230和服务器代理210一样,在一些实施例中,外壳皮肤生成器 240可以称为外壳代理、外壳皮肤引擎、外壳引擎、皮肤引擎或者任 何其它相似术语。在一个实施例中,远程计算设备是如结合图1A-1C 描述的计算设备。在另一实施例中,外壳皮肤生成器240是呈现层 协议代理的部分。在更多另一实施例中,外壳皮肤生成器240与呈 现层协议代理通信。在一些实施例中,外壳皮肤生成器240可以包 括软件、硬件或者软件和硬件的任何组合。

在一个实施例中,外壳250是向计算设备的用户提供用户接 口的软件。在一个实施例中,可以用第三方外壳补充或者替换外壳 250。在MICROSOFT WINDOWS中,默认外壳是确定桌面的配置(例 如任务栏、通知区域、启动菜单等)的EXPLORER。虽然称为外壳, 但是如以上讨论的那样,外壳也可以称为GUI、finder、explorer、视 窗接口或者任何其它相似术语。

在一些实施例中,客户端代理230包括用于从服务器代理210 接收与在远程机器106上生成的桌面环境关联的数据的接收器(例 如虚拟机接收器)。在这些实施例之一中,例如客户端代理230包 括可以以例如动态链接库(.dll)部件提供的接收器,该接收器从服 务器代理210接收视窗创建和视窗进程数据用于在显示在远程机器 106上生成的视窗的本地版本时使用。在一些实施例中,客户端代理 230可以通过一个或者多个连接来接收数据、比如输出数据和视窗属 性数据。在一个实施例中,可以将一个或者多个连接复用为一个或 者多个虚拟信道。这样的复用可以允许不同虚拟信道具有不同带宽 限制或者不同优先级而仍然是单个传送层连接的部分。这可以减少 需要的传送层开销并且提供SSL或者VPN隧道能力而仍然允许在外 壳皮肤生成器240与客户端代理230之间或者在服务器代理210与 客户端代理230之间的每信道压缩、缓冲和通信优先级管理。在一 些实施例中,这样的虚拟信道可以专用于具体内容类型或者目的。 例如,如以下更具体讨论的那样,第一高优先级虚拟信道可以专用 于传输输出数据,而第二低优先级虚拟信道可以专用于传输视窗属 性数据、应用任务引用、用户内容、偏好等。在一些实施例中,可 以打开或者关闭虚拟信道而无需取消建立或者重新建立它们在其上 通信的传送层连接。

现在参照图3,描绘跳跃列表或者目的地列表(也就是J列表 或者D列表)的一个示例实施例的屏幕截图。目的地列表提供对公 共应用任务或者内容的快速和容易访问。目的地列表提供用于启动 应用的新实例、用于固定或者取消固定应用到工具栏和关闭应用的 手段。用户可以通过右击任务栏中的应用图标来访问跳跃列表。图3 描绘定制的跳跃列表。默认地,跳跃列表包含通过 SHAddToRecentDocs函数为基于文件的应用自动填充的新近类别 301。这一函数向外壳250的新近使用的文档列表添加使用的“项” (文档)。除了上传它的新近文档列表之外,外壳250向用户的新 近目录添加快捷方式。操作系统任务栏使用该列表和新近目录以填 充跳跃列表中的新近项列表。如果应用的文件类型具有注册的句柄 (这无需是默认句柄),则外壳250代表应用自动完成工作。任何 时候用户双击具有注册的句柄的文件类型,在OS启动应用之前,它 代表应用自动调用SHAddToRecentDocs,该函数将项插入到新近列 表中并最终插入到跳跃列表。相同自动行为在使用OS公共文件对话 框以通过应用打开文件时出现。OS向跳跃列表中自动插入项,除非 应用特别地去除这一功能。用户也具有从他们的跳跃列表去除任何 项的选项。通过从跳跃列表显式地去除项,将该项插入到去除的项 列表中。

图4描绘在桌面计算环境上的用于字处理器403的目的地列表 401的屏幕截图。在一些实施例中,外壳皮肤生成器240生成的皮肤 可以与定制组合。在一些实施例中,外壳皮肤生成器240生成的皮 肤可以在移动设备102上显示可以包含预定项404、405、406的定 制内容的目的地列表。图5描绘在桌面计算环境中的用于web浏览 器503的目的地列表501的屏幕截图。目的地列表501具有预定项 505。

通常用户将从多个设备访问远程托管的应用和其它资源。例如 用户可以在工作位置的瘦客户端设备、从住所位置的桌面或者膝上 计算机和/或当在除了工作或者住所位置之外的位置或者甚至在工作 或者住所位置时从平板,智能电话,或者其它移动设备访问远程托 管的资源。无论每个特定设备使用的外壳如何,这里描述的方面提 供跨所有设备的一致用户体验。

图6描绘在平板、例如来自Apple公司的品牌平板上 使用原生设备的接口外观呈现的用于字处理器403的定制目的地列 表603的屏幕截图601。D列表603可以由在原生设备上执行的客户 端软件(例如接收器)生成并且包括预定项404、405、406的定制 内容。图7描绘在平板上使用原生设备的接口外观呈现的并且具有 内容项505的用于web浏览器503的定制目的地列表703的屏幕截 图701。图8描绘来自会话中平板外壳皮肤并且具有内容项404、405、 406的用于字处理器403的定制目的地列表的屏幕截图。图9描绘来 自会话中平板外壳皮肤并且具有内容项505的来自web浏览器503 的定制目的地列表的屏幕截图。对内容或定制任务的固定和解除固定 可以取决于基于外壳项或外壳链接用户接口呈现的末端设备而借助于 预定的手势支持。接口因此可以不要求附加的显式用户接口部件。

图12图示根据这里描述的一个或者多个方面的平板优化触摸 友好外壳皮肤的另一实施例在移动设备上的屏幕截图。具体而言, 已经用触摸友好方式重新皮肤化和呈现MICROSOFT WINDOWS7 桌面的启动菜单(现在在左上部中)和任务栏(在底部)。此外, 已经用更大的触摸友好图标呈现通向最喜欢文档或者应用的桌面快 捷方式。已经保留个性化的桌面背景图像。作为整体,已经优化桌 面用于平板使用。

章节C:用于为在服务器上远程执行的应用提供外壳集成的方 法

根据一个或者多个示例方面,可以将目的地列表从操作系统外 壳去耦合并且将它们动态地与任何设备集成且与该设备的原生接口 外观保持一致,从而实现这里描述的系统和方法。参照图10,在一 些实施例中,在服务器106上执行的目的地列表解析器或者目的地 列表管理器部件可以抽象化内部目的地列表的管理从而提供用于发 现目的地列表并且读取和向列表写入的方法。在通过引用而结合于 此、标题为“Shell Integration for an Application Executing Remotely on  a Server”、于2012年5月17日提交的第13/474,238号美国申请中用 附加细节描述解析。

在步骤1001中,移动设备102向用户呈现用户接口,用户可 以通过该用户接口选择一个或者多个远程托管的资源。在一些实施 例中,在移动设备102上执行的客户端代理230枚举托管的应用220。 在步骤1003中,用户打开或者指导设备102打开特定于应用的上下 文菜单。在一些实施例中,上下文菜单与目的地列表等效。在一些 实施例中,上下文菜单与目的地列表相同。在一些实施例中,用户 使用在应用图标之上的两手指敲击手势来打开特定于应用的上下文 菜单。在一些实施例中,用户根据端点移动设备102使用其它指明 的手势、比如长按或者双击。

在步骤1005中,客户端代理230向服务器106发送对取回目 的地列表信息的请求。在一些实施例中,客户端代理230通过远程 呈现层协议向服务器发送请求。在一些实施例中,客户端代理230 通过Citrix NfUse协议发送对取回目的地列表信息的请求。在一些实 施例中,以具体协议格式取回目的地列表信息。在一些实施例中, 在枚举应用220期间取回目的地列表信息。在一些实施例中,可以 在移动计算设备102上高速缓存目的地列表信息。

在一些实施例中,XML中继用控制器产生对于应用220的请 求。在一些实施例中,控制器可以是独立管理架构(IMA)控制器。 在一些实施例中,控制器可以是桌面递送控制器(DDC)。在一些 实施例中,向IMA工作器委托请求。在一些实施例中,向虚拟桌面 装置(VDA)工作站委托请求。在一些实施例中,通过Citrix连接 代理协议(CBP)向IMA工作器或者VDA工作站委托请求,该协 议使用目的地列表解析器以将每应用的目的地列表信息读取成预定 协议格式并且将它返回给调用链。在一些实施例中,也可以在用于 每个应用的IMA数据存储库或者DDC数据方案中高速缓存目的地 列表信息。在一些实施例中,可以在运行期更新高速缓存。

在步骤1007中,客户端代理230接收目的地列表信息。在一 些实施例中,客户端代理230以预定协议格式接收D列表信息。在 步骤1009中,使用本地用户接口在列表中不透明地呈现应用220的 类别和外壳对象。本地用户接口可以与客户端代理230集成。例如 在iOS(iPad或者iPhone客户端设备)上,可以使用模型-视图-控制 器设计模式来管理和呈现D列表。NSDictionary或者 NSMutableDictionary对象可以用来管理D列表信息为关键字和值的 关联。UIPopoverController和UITableView可以用来显示D列表信 息的分层列表。在表中的每个单元可以是用来显示杂项内容、比如 图像或者图标(UIImage)、文字(UITextField)或者标注(UILabel) 等的UITableViewCell对象。目标动作和委托协议方法可以用来接受 用户输入并且触发对D列表目的地项的对应动作。在一些实施例中, 本地用户接口可以与本机设备用户接口无缝集成。

在步骤1011中,用户点击或者敲击外壳项、比如文档引用、 由此向客户端代理230提供用户对D列表项的选择输入。在步骤1013 中,客户端代理230可以用文档引用启动应用220或者另外可以基 于选择的D列表项执行某个其它任务。在一些实施例中,托管的应 用220直接启动文档或者内容(例如Microsoft Word加载文档)。 在一些实施例中,用户点击或者敲击外壳链接(例如任务)。客户 端代理230用任务作为命令行变元启动应用220。托管的应用220 通过执行任务(例如web浏览器打开新标签)开始。

参照图11,在另一方面中,使用客户端设备的用户可以使用 本地接收器连接到远程桌面会话以获得情境菜单/D列表信息。在步 骤1101中,客户端代理230可以建立与外壳皮肤引擎240的连接。 在一些实施例中,客户端代理230代之以建立与服务器代理210的 连接,该服务器代理与外壳皮肤引擎240通信。在一些实施例中, 在客户端代理230与外壳皮肤引擎240之间的连接是呈现层协议。 在步骤1103中,外壳皮肤引擎240可以在服务器106的外壳之上生 成外壳皮肤并且在步骤1105中可以呈现与移动计算设备102(比如 iPad、iPhone或者Android)背景和分辨率一致的大应用图标。外壳 皮肤可以基于客户端设备102。在一些实施例中,基于通过远程呈现 层协议协商的移动计算设备102的能力选择皮肤。在一些实施例中, 这些能力包括本地设备类型、操作系统主要和次要版本号以及显示 分辨率。在一些实施例中,外壳皮肤引擎240生成将用于任何任意 移动计算设备102的默认皮肤。在一些实施例中,外壳皮肤用来给 予在移动设备102上的外壳更换的幻觉。在一些实施例中,可以防 止explorer启动外壳的桌面或者任务栏。

在步骤1107中,用户例如使用在应用图标之上的两手指敲击 手势来选择或打开特定于应用的上下文菜单。在一些实施例中,用 户根据移动计算设备102的输入能力使用其它指明的手势以打开特 定于应用的上下文菜单、比如长按或者双击。

在步骤1109中,外壳皮肤引擎240例如通过使用目的地列表 解析器以将用于应用220的目的地列表信息读取成预定协议格式并 且用它不透明地填充会话中弹出菜单来基于用户输入确定、标识和/ 或生成D列表项,该会话中弹出菜单具有应用的类别和外壳对象。 可以用移动/客户端计算设备102的接口外观呈现具有应用类别和外 壳对象的会话中弹出菜单。

在步骤1111中,用户点击或者敲击外壳/D列表项、比如文档 引用。在步骤1113中,客户端和/或服务器基于选择的项采取某个动 作。例如外壳皮肤可以例如用ShellExecute或者ShellExecuteEx调用 不透明地启动文档或者内容。在一些实施例中,已经注册的文件类 型关联(FTA)保证启动相应应用(例如Microsoft Word加载文档)。

在一些实施例中,用户点击或者敲击外壳链接(例如任务)。 外壳皮肤以任务作为命令行参数启动应用。托管的应用220通过执 行任务(例如因特网浏览器打开新标签)开始。

在一些实施例中,外壳皮肤引擎240生成的外壳皮肤向实际外 壳250委托处置包括FTA的多个进程、通过自动调用 SHAddToRecentDocs在每应用和每用户基础上管理新近文档、作为 直接用户动作或者间接应用动作的结果而更新目的地列表文件。在 一些实施例中,漫游简档可以用来跨用户使用的相异设备在自动目 的地列表中保留定制目的地列表的应用特性以及用户的偏好和历 史。在一些实施例中,漫游简档或者映射的网络驱动或者备选数据 同步解决方案可以用来保证对来自不同瘦客户端主机的基于文件的 内容的统一访问。

参照图12,在一些实施例中,可以使用C#和/或XAML来将 外壳皮肤引擎240实现为单独应用。实际外壳250、例如Microsoft  Windows外壳(浏览器)仍然可以在后台中执行。可以在默认视窗 桌面前面(在Z-顺序前面)呈现外壳皮肤引擎240。因此,用户可 以未知实际外壳250的存在。可以通过使用视窗消息和/或视窗程序 挂钩、例如通过使用SetWindowHookEx来实现鲁棒地管理在实际外 壳250、外壳皮肤引擎240和用户可以操作的任何应用或者内容视 窗之间的恰当Z顺序。

在一些实施例中,可以通过利用Citrix ShareFile、Microsoft  SkyDrive或者其它基于云的存储介质来实现远程资源服务器。

在一些实施例中,保留每个应用的特性而无这里描述的系统的 显式管理。在一些实施例中,目的地列表解析器、相应协议和用户 接口不透明地处置它们。例如在用户接口中呈现Internet Explorer的 打开新标签页、Start InPrivate Browsing、Windows Media Player的播 放所有音乐、Microsoft Word的新近文档列表、定制特定于本机应用 的任何选项、web应用或者网站。也可以并入应用的固定或者取消 固定并且可以使它分别与在客户端代理230中选择或者取消选择应 用同义。从任何移动计算设备102固定和取消固定内容或者定制任 务也由这里描述的系统和方法支持,并且在一些实施例中,上行 Citrix NfUse协议用来相应地更新每应用和每用户数据存储库。在一 些实施例中,内容无需物理地存在于移动计算设备102并且无需可 直接由客户端代理230访问。取而代之,在一些实施例中,在移动 计算设备102向用户仅呈现引用和可视元素,而应用220使用的实 际内容驻留于服务器106或者另一远程可访问的数据存储库。在其 它实施例中,内容可以物理地存在于移动计算设备102和客户端代 理230或者直接可由移动计算设备102和客户端代理230访问、例 如通过使用映射的网络驱动器或者辅助的数据同步解决方案。

使用这里描述的一个或者多个方面,在用户访问来自多个不同 客户端设备、例如来自桌面计算机、膝上计算机、平板计算机、智 能电话等的远程资源时一致地呈现特定于用户的内容。例如在设备 之间漫游之时,服务器可以维护用于用户的集中式配置设置,并且 在服务器的外壳皮肤引擎可以生成关于资源图标、图标取向、任务 栏图标、任务栏图标顺序和与每个资源关联的目的地列表项的信息。 服务器还可以基于设备——用户访问来自该设备的内容——生成皮 肤并且向设备发送皮肤信息和特定于用户的内容信息用于向用户呈 现。

尽管已经在附图中描述和示出某些示例实施例,但是将理解这 样的实施例仅举例说明而不是限制这里描述的方法和系统。此外, 有可能在硬件、可编程器件、固件、软件或者其组合中实施这里描 述的方法和系统或者它的特征中的一些特征。这里也可以在处理器 可读存储介质或者机器可读介质、比如磁(例如硬驱动、软驱动)、 光学(例如紧致盘、数字万用盘等)或者半导体存储介质(易失性 和非易失性)中体现这里描述的方法和系统或者这里描述的方法和 系统的部分。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号