CN107003865B - 利用远程应用的文件共享 - Google Patents

利用远程应用的文件共享 Download PDF

Info

Publication number
CN107003865B
CN107003865B CN201580059519.XA CN201580059519A CN107003865B CN 107003865 B CN107003865 B CN 107003865B CN 201580059519 A CN201580059519 A CN 201580059519A CN 107003865 B CN107003865 B CN 107003865B
Authority
CN
China
Prior art keywords
file
application
computing device
remote access
access client
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
Application number
CN201580059519.XA
Other languages
English (en)
Other versions
CN107003865A (zh
Inventor
蒋海鸥
王栋
石昆
于津
邵文龙
闫锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omnisa LLC
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CN107003865A publication Critical patent/CN107003865A/zh
Application granted granted Critical
Publication of CN107003865B publication Critical patent/CN107003865B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0383Remote input, i.e. interface arrangements in which the signals generated by a pointing device are transmitted to a PC at a remote location, e.g. to a PC in a LAN

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本文公开了用于利用远程应用来进行文件共享的技术。一个实施例提供了计算机实现的方法,所述方法包括在计算设备处,接收对用于访问所述文件的引用的选择,其中所述引用包括第一标识符和第二标识符,所述第一标识符指定存储在相对于所述计算设备位于远程的主服务器上的所述文件,所述第二标识符指定在所述主服务器上运行并被配置为打开与所述文件的类型相同的文件的应用。该方法还包括通过连接至所述主服务器并使得所述应用在所述主服务器上启动,建立至所述第二标识符所指定的所述应用的远程连接。另外,该方法还包括使得所述应用打开由所述第一标识符指定的所述文件以及远程于所述计算设备的所述应用的用户界面。

Description

利用远程应用的文件共享
背景技术
当用户远程地访问被配置用于基于鼠标和键盘的命令的应用时,用户从他或她的计算设备远程地控制特定的服务器机器。这种类型的交互一般被称为“远程”会话。贯穿远程会话,在服务器机器处生成的视频输出数据(诸如从远程代理捕获的帧)被路由至用户的计算设备,在该处,这种视频数据包括操作系统和/或在主机上执行的应用的用户界面(UI)。相反地,在用户的计算设备处接收到的用户输入数据被路由至服务器机器,在该处,操作系统和/或应用解释(interpret)被路由的输入数据,犹如输入数据在服务器机器处被本地接收一样。
某些公共可获得的云存储服务(诸如谷歌文档TM
Figure BDA0001284153700000011
)允许用户通过网络(例如,因特网)共享文件。这些服务通常仅用于纯粹的存储,并且通常仅支持有限数量的文件类型。另外,这种云存储服务可能要求希望访问文件(例如,微软文字处理软件文件)的任意用户在其个人的客户端设备上安装有相应的应用(微软文字处理软件)。但是,用户可能希望在其远程会话中共享文件,而没有这种限制。
发明内容
一个实施例提供了用于共享文件的方法。一般地,该方法包括在计算设备处,接收对用于访问所述文件的引用的选择,其中所述引用包括第一标识符和第二标识符,所述第一标识符指定存储在相对于所述计算设备位于远程的主服务器上的所述文件,所述第二标识符指定在所述主服务器上运行并被配置为打开与所述文件的类型相同的文件的应用。该方法还包括通过连接至所述主服务器并使得所述应用在所述主服务器上启动,建立至所述第二标识符所指定的所述应用的远程连接。另外,该方法还包括使得所述应用打开由所述第一标识符指定的所述文件以及远程于所述计算设备的所述应用的用户界面。
本发明的进一步的实施例包括存储有指令的计算机可读存储介质,当计算机系统执行该指令时,使得计算机系统执行以上所给出的方法,以及被编程为实施以上所给出的方法的计算机系统。
附图说明
图1示出了根据实施例的用于生成并利用文件共享统一资源指示符的方法。
图2是根据实施例的计算设备的框图,该计算设备通过网络连接至主机以提供远程会话。
图3是根据实施例的用于生成URI的方法步骤的流程图。
图4是根据实施例的用于利用URI访问文件的方法步骤的流程图。
具体实施方式
本文所呈现的实施例提供了用于在远程访问会话中共享文件的方法。响应于文件被拖曳至远程访问客户端窗口的特定区域,远程访问客户端被配置为确定应用是否可用于打开文件。如果应用可用,则远程访问客户端生成引用(reference),并且具体地生成统一资源标识符(URI),以用于共享文件。在一个实施例中,远程访问客户端可用对应于文件的文件标识符(ID)以及对应于应用的应用ID来填充URI,以用于打开文件。URI还可包括连接至的虚拟机(VM)或连接代理(connection broker)的地址,以及认证凭证(credential),诸如用户名和密码的组合,以及多因素认证令牌(token)(例如,RSA认证令牌和活动目录(AD)认证令牌)。出于安全目的,访问凭证可包括一次性消费凭证(例如,一次性消费认证令牌),其仅允许文件被访问一次。
创建URI之后,用户可将URI或包括URI的快捷方式通过网络(例如,内联网或因特网)传递给另一用户。其他用户可随后点击URI或快捷方式来访问文件。访问文件可包括直接连接至VM或经由连接代理连接至VM(取决于URI中的地址),以及使用URI中的认证凭证,执行由URI中的应用ID所标识的应用,以及打开由URI中的文件ID所标识的文件。
在以下的描述中,阐述了众多具体的细节,以便提供对本发明的透彻的理解。但是,对于本领域技术人员而言将是显然的,没有这些具体细节中的某些细节,也可实施本发明。在其它实例中,并未详细描述公知的处理操作和实现细节,以便避免不必要地模糊发明。
图1示出了根据实施例的用于生成并使用文件共享URI 140的方法。如面板A中所示,通过将文件130拖曳至远程访问客户端1101的窗口的特定区域120,用户可与客户端设备1001交互,以创建URI 140。远程访问客户端1101被配置为,除了其他方面以外,通过接收并显示在宿主(hosting)VM的服务器处生成的视频输出并将在用户设备处接收到的用户输入路由至服务器(在该处,输入被添加至VM),促进与虚拟机(未示出)的远程会话。
阐释性地,区域120被描绘为处于远程访问客户端1101的窗口的底部的矩形,但是,一般而言,区域120可具有任意形状和大小。响应于文件130被拖曳至区域120,远程访问客户端1101确定用于打开文件130的应用是否在VM中可用。应当意识到,文件或文件类型可与能够打开文件或文件类型的特定应用相关联。例如,远程访问客户端1101可保持文件扩展和对应的应用之间的关联。在这种情形中,远程访问客户端1101可基于文件130的文件扩展(例如,通过爬行(crawling)VM操作系统的注册表)来确定用来打开文件130的应用是否可用。
如果没有安装用于打开文件130的应用或否则如果应用不可用,则要求部署这种应用,并且,远程访问客户端1101可向用户提示该要求。否则,如果能打开文件130的应用是可用的,则远程访问客户端1101创建URI140,以用于访问文件130。在一个实施例中,URI140可以是字符串,其包括对应于文件130的文件ID,对应于打开文件130的应用的应用ID,以及VM或连接代理(其被布置在客户端设备1001和VM服务器之间,并管理用于连接的VM连接)的地址。字符串还可采用用于启动远程访问客户端1101的特定前缀来加前缀,这类似于“http”被如何用作因特网统一资源定位符(URL)的前缀,当其被点击时,启动网页浏览器。但是,并非启动网页浏览器,而是点击URI 140来启动远程客户端应用,其转而连接至部署在远程主服务器上执行的VM的应用,并且导致文件将由该应用打开。
在另一实施例中,URI 140还可包括用于登陆到VM的认证凭证,诸如远程访问客户端1101已经存储的用户名和密码的组合。在选择了URI 140之后,这种凭证可被用于直接登录至VM,而无需用户手动地输入登录凭证。另外,URI 140可包括一次性消费凭证,其使得文件130仅能够被访问一次,在这之后,出于安全目的,凭证是无效的。一次性消费凭证可包括多因素认证令牌,诸如RSA认证令牌、AD认证令牌、或以安全断言标记语言(SAMLart)流形式存在的其他诸如此类的令牌。
创建URI 140之后,用户可以任何可行的方式将URI 140发送至另一用户,诸如通过将URI 140复制和粘贴至电子邮件消息。可替换地,用户可创建URI 140的快捷方式。快捷方式可实现为包含URI的文件,并且,用户可将该快捷方式例如作为电子邮件的附件发送至其他用户。可创建快捷方式以替代URI字符串,或者利用首先创建的URI字符串。例如,用户可将URI拖曳至他或她的
Figure BDA0001284153700000041
操作系统的桌面,以创建URI快捷方式。
如面板B中所示,在客户端设备1002上接收到URI 140的其他用户可点击URI 140以访问文件130。阐释性地,URI 140由其他用户在电子邮件消息150中接收。点击URI 140调用远程访问客户端1102,其随后请求连接至VM或连接至URI中所引用的连接代理以及连接至由URI的应用ID所标识的应用。远程访问客户端1102可以是与远程访问客户端1101相同类型的应用,或者是具有类似能力的不同类型的应用。如果URI包括认证凭证,则远程访问客户端1102还可将这种凭证呈现给宿主VM的服务器。而服务器可认证该凭证,建立远程访问客户端1102和VM之间的连接,并且,如果凭证被认证,则在VM中启动由应用ID所标识的应用。随后,远程访问客户端1102请求由URI中的文件ID所指示的文件130在正在VM中执行的应用160中打开,并且,服务器打开该文件。在一个实施例中,在远程访问客户端1102的窗口中仅示出由应用ID所标识的应用和由文件ID所标识的文件。结果,接收URI 140的用户仅能够访问文件130,并且不能访问未共享的其他文件或资源。
如前所述,URI 140可包含一次性认证凭证。在这种情形中,服务器可保持有效凭证列表并且一旦它们被使用则无效该凭证。当然,与单次使用不同,认证凭证还可针对多次使用是有效的,在该情形中,服务器可在给定的使用次数之后无效该凭证。
在另一实施例中,用户可被允许经由远程访问客户端1101,或可替换地经由服务器,或经由在客户端设备1001和服务器之间布置的连接代理来配置各种文件共享策略。例如,客户端1101可保持有已经创建的所有URI的列表。如果用户不再希望共享特定的文件,则用户可通过客户端1101来禁用对文件的共享,在该情形中,客户端1101可与服务器通信以无效针对该文件的认证凭证。作为另一示例,服务器可保持有用户定义的被允许使用某些URI或URI类型以访问或下载文件的设备的独有ID(例如,媒体访问控制(MAC)地址)的白名单,并且,作为自动认证处理的一部分,服务器可确保试图连接至VM的设备与白名单中的独有ID相关联。其他文件共享策略可包括调整访问文件的时限,禁用对文件的下载等。
图2是主机210(本文还称为“服务器”)的概念性示意图200,该主机210通过网络216连接至提供远程会话的计算设备1001-2。主机210可以是通用计算机系统,除了其他硬件以外,其包括一个或更多个中央处理单元(CPU)205和存储器206,并且执行一个或更多个应用、虚拟机或其他实体。类似地,计算设备1001-2可以是通用计算机系统,其包括CPU 2411-2和存储器2421-2,并且执行应用,除了其他应用以外,其包括远程访问客户端1101-2和远程桌面会话管理器2391-2
在一个实施例中,主机210包括虚拟化的计算机系统,其具有多个访客虚拟机212(VM),其中每个访客VM 212是由虚拟化软件211或其组件实现的虚拟机。在各种实施例中,虚拟化软件211可以是超级监督器或虚拟机管理器(VMM)。针对访客VM 212中的特定一个访客,虚拟键盘、视频和鼠标(KVM)驱动器214实现虚拟用户界面设备,并且将来自用户的用户输入和系统输出(诸如显示器和音频信息)传送至计算设备1001-2
每个访客VM可包括访客操作系统(GOS)以及一个或更多个应用(APP)。访客操作系统可以是商用操作系统,诸如Microsoft
Figure BDA0001284153700000051
或者特别设计为与虚拟化软件211一起工作的专用操作系统(有时称为“半虚拟化OS”)。在一个实施例中,虚拟化软件211被存储在形成主机210的一部分的物理数据存储介质(未示出)上,而针对每个访客虚拟机的虚拟盘(未示出)由虚拟化软件211映射至可远程存储或本地存储的文件。
计算设备1001-2利用网络216与主机210进行通信,使得IO数据可在计算设备1001-2和主机210之间传送。可选的连接代理220可被布置在计算设备1001-2和主机210之间,以例如辅助增强的认证和安全特征,和/或提供简化的或定制的连接选项。
计算设备1001-2执行各自的远程访问客户端1101-2,其被配置为促进与一个或更多个访客VM 212的远程会话。可能每个都具有所附接的鼠标和键盘或反之可能是触摸屏的计算设备1001-2被配置为将基于鼠标和键盘的命令提供给被设计为接受这种命令的应用。应用可如图2中所示的那样远程地执行,或者,应用可在计算设备1001-2上本地执行,例如作为在虚拟机中执行的访客操作系统。
在远程会话中,远程桌面会话管理器2391-2接收由访客VM 212的访客操作系统生成的视频输出数据,并且,将视频输出数据发送至远程访问客户端1101-2。而远程访问客户端1101-2发布指令,以显示视频输出数据和由远程访问客户端1101-2生成的任意视频叠加。相反地,诸如基于鼠标和键盘的输入之类的输入数据经由键盘和鼠标驱动器1241-2和/或辅助处理输入的应用编程接口(API)2361-2在计算设备1001-2处被收集,由远程访问客户端1101-2转换成鼠标和/或键盘命令,并且,经由远程桌面会话管理器2391-2被发送至主机210。一旦接收到,虚拟化软件211将用户输入传递给虚拟键盘、视频和鼠标驱动器214,其利用安装在访客操作系统中的合适的设备驱动器,将用户输入添加至相应的访客VM 212。来自访客VM 212的显示更新可随后由虚拟键盘、视频和鼠标驱动器214接收,并且被翻译成合适的桌面远程协议,并且被发送回计算设备1001-2以更新其上的显示。
在一个实施例中,在计算设备1001中执行的远程访问客户端1101被配置为,响应于例如文件被拖曳至远程访问客户端1101的窗口的预定义区域,生成用于文件共享的URI。所生成的URI可具有特定的机制(scheme),并且包括用以连接至的VM或连接代理的地址,指定正被共享的文件的文件ID,指定用于打开文件的应用的应用ID,以及诸如用户名和密码组合和多因素认证令牌之类的认证凭证。用户可随后将URI或包含URI的快捷方式传递给计算设备1002上的另一用户,于是其他用户可点击URI或快捷方式,以访问文件。具体地,点击URI或快捷方式可启动计算设备1002中的远程访问客户端1102,并且远程访问客户端1102可利用包含在URI中的认证凭证来自动连接至VM或URI中所引用的连接代理,启动由URI中的应用ID所标识的应用,并且使得由URI中的文件ID所标识的文件被应用所打开。虽然描绘了两个计算设备1001-2,但是,应当理解,在某些情况下,一个设备可进行如下两种操作:生成用于共享文件的URI和用于利用URI来访问文件。
图3是根据实施例的用于生成URI的方法300的流程图。如所示,方法300开始于步骤310,其中客户端1101接收拖曳操作,其中文件被选择并被拖曳至客户端1101的窗口的预定义区域。如所讨论的,一般而言,预定义区域可以具有任意的形状或大小,诸如图1中所描绘的矩形区域120。在可替换的实施例中,除了将文件拖曳至预定义区域以外的动作(例如,右击并选择“生成URI”选项)可被用于调用对URI的创建。
在步骤320处,响应于接收拖曳操作(或可替换的操作),客户端1101确定用于打开被拖曳的文件的应用在VM中是否可用。文件或文件类型可与能够打开文件或文件类型的应用相关联。例如,文件扩展可与对应的应用相关联,并且客户端1101可基于这种关联来确定用于打开文件的应用是否已经被部署在VM中。如果未部署这种应用,则客户端110可显示提示,其通知用户需要安装这种应用。
但是,如果用于打开文件的应用是可用的,则在步骤330处,客户端1101生成用于该文件的URI。在一个实施例中,远程访问客户端1101可采用与用于打开文件的应用相对应的应用ID和与文件自身相对应的文件ID以及认证凭证和将连接至的VM或连接代理的地址来填充URI。另外,URI可采用特定的前缀来加前缀,该特定的前缀使得当URI被点击时客户端应用被启动。
URI的认证凭证可被用于自动认证,并且将URI限制为一次(或多次)使用。在一个实施例中,URI可包括用户名和密码组合,以用于登录到将运行打开文件的应用的虚拟机。在另一实施例中,URI可包括用于多因素认证的RSA认证令牌,AD认证令牌等。在多因素认证的情形中,在用户名和密码被认证之前,安全服务器可首先认证URI中的认证令牌。
一旦远程访问客户端1101生成URI,用户可经由电子邮件、文件传输程序、或通过任意其他可行的手段,将URI传递给另一用户。例如,用户可简单地将URI复制并粘贴至电子邮件消息中。作为另一示例,用户可创建URI的快捷方式并将快捷方式附加至电子邮件消息。接收到这种URI或快捷方式的其他用户可随后点击URI或快捷方式,以访问或下载文件。
图4是根据实施例的用于利用URI来访问文件的方法400的流程图。如所示,方法400开始于步骤410,在该处,远程访问客户端1102接收对用于访问文件的URI的选择。如所讨论的,URI可由远程访问客户端1101生成并作为URI自身(即,作为字符串)或作为包含URI的快捷方式发送。接收这种URI或快捷方式的用户可随后点击URI或快捷方式,以经由另一远程访问客户端1102(其通常运行在不同于远程访问客户端1101的机器上)访问文件。URI还可包含前缀,其将客户端1102标识为如果URI被点击则将被启动的应用,并且在这种情形中,点击URI或快捷方式可启动客户端1102自身。
在步骤420处,远程访问客户端1102利用来自URI的认证凭证(如果有的话),请求连接至由URI中的应用ID所标识的应用。连接至应用可包括直接地或经由连接代理(其地址被包括在URI中)连接至VM,并且启动VM中的应用。在一个实施例中,一旦建立了与VM的连接,应用可被自动启动。可替换地,与VM连接和启动应用的步骤可以是分离的,并且可要求远程访问客户端1102额外请求来启动应用。
在步骤430处,主机210对认证凭证进行认证。如所讨论的,认证凭证可包括用于登录至VM的用户名和密码组合,并且可额外地包括诸如RSA令牌和AD令牌之类的多因素认证令牌。在多因素认证的情形中,主机210可与负责对认证令牌进行认证的安全服务器进行通信。如果这种认证是成功的,则主机210可进一步认证用户名和密码。
在一个实施例中,认证凭证可包括一次性认证凭证,在该情形中,主机210可保持有这种凭证的列表,并且在单次使用之后,无效该凭证。在另一实施例中,特定的访问策略可以在生成URI的远程访问客户端1101上、在主机210上或在连接代理上是可配置的。例如,根据用户偏好,远程访问客户端1101可被配置为与主机210通信,以通过无效用于访问主机210上的那些文件的认证令牌来禁用对特定文件的访问。访问策略的其他示例包括保持有用户定义的被允许使用某些URI或URI类型的设备的独有ID的白名单,设定用于访问文件的时限以及禁用对文件的下载等的能力。
假定凭证被认证,在步骤440处,主机210建立客户端1102和VM之间的连接,并且启动由应用ID所标识的应用。用于连接客户端1102和VM的技术是已知的,由此建立远程会话。如所讨论的,一旦建立与VM的连接,由应用ID所标识的应用可被自动启动。可替换地,如果应用未被自动启动,则远程访问客户端1102可发布额外的请求,以启动应用。在一个实施例中,由应用ID所标识的应用可以是在远程会话中被启动并被显示给用户的唯一应用,因此,用户不能访问其他资源。
在步骤450处,客户端1102请求打开由UID中所指定的文件ID所标识的文件。客户端1102可做出这种请求以打开文件,而无需进一步的用户输入。即,对URI(或URI快捷方式)的单击可触发连接至由URI的应用ID所标识的应用和打开由URI的文件ID所标识的文件这两者。
响应于在步骤450处所做出的请求,在步骤460处,主机210打开由文件ID所标识的文件。类似于以上关于被显示的应用的讨论,由文件ID所标识的文件可以是唯一被显示的文件,使得用户不能访问VM中的其他文件。在某些实施例中,除了查看文件以外,还可以允许用户下载文件。
虽然以上主要关于经由基于VM的远程会话来访问文件进行了讨论,但是,本文所公开的技术还可被应用于运行在并非基于VM的云中的应用。在本文所描述的实施例的范围中,虚拟机仅是能够运行主服务器上的应用的虚拟化工作负载容器的一个示例。在某些可替换的实施例中,虚拟化工作负载容器可利用操作系统级别的虚拟化来实现,其中容器运行于主操作系统之上,而不需要超级监督器。在这种实施例中,虚拟化的工作负载容器是多个隔离的用户空间实例,其已经由操作系统的内核彼此隔离。这种操作系统级别的虚拟化容器有时还被称为虚拟化引擎(VE)或虚拟专用服务器(VPS),并且,从其所有者和用户的观点来看,其通常可看起来并感觉像单个的服务器。该隔离类似于对系统硬件进行虚拟化的超级监督器虚拟化环境中所提供的VM隔离,并且因此,可被看作是虚拟化的一种形式,其将操作于不同容器中的不同的应用群组进行隔离,其通常被看作是比VM更加轻型。这种操作系统级别的虚拟化工作负载容器的一个示例是由Docker公司提供的Linux操作系统容器。
有优势地,本文所描述的实施例生成用于共享远程会话文件的URI。不同于仅支持有限数量的文件类型并要求相应的应用安装在客户端侧的云存储和文件共享服务,本文所公开的实施例允许任意类型的文件被共享,只要用于打开文件的应用在服务器侧可用即可。另外,对URI(或URI的快捷方式)的单击可调用远程客户端应用,其自动连接至应用并在该应用打开共享文件,这类似于本地文件在本地应用中被打开的行为。用于访问文件的策略(例如,一次性消费策略或其他安全策略)还可在远程访问客户端、服务器或连接代理上是可配置的。
本文所描述的各种实施例可利用各种计算机实现的操作,其涉及计算机系统中所存储的数据。例如,通常但不是必须地,这些应用可要求对物理量的物理操纵,这些量可采用电信号或磁信号的形式,其中它们或它们的代表能够被存储、传输、组合、比较或其他方面的操纵。另外,这种操纵通常以诸如产生、标识、确定或比较之类的术语被提及。本文所描述的形成发明的一个或更多个实施例的一部分的任意操作可以是有用的机器操作。另外,发明的一个或更多个实施例还可涉及用于执行这些操作的设备或装置。该装置可以是针对特定要求的目的所特别构造的,或者其可以是由计算机中所存储的计算机程序有选择地激活或配置的通用计算机。具体地,可使用各种通用机器,其带有根据本文的教导所编写的计算机程序,或者,构造更加专用的装置以执行所要求的操作可能是更加方便的。
本文所描述的各种实施例可采用其他计算机系统配置来实践,其他计算机系统配置包括手持设备、微处理器系统、基于微处理器的或可编程的消费者电子装置、迷你计算机、大型计算机等。
本发明的一个或更多个实施例可被实现为一个或更多个计算机程序或实现为包含在一个或更多个计算机可读介质中的一个或更多个计算机程序模块。术语计算机可读介质指能存储数据并随后能被输入到计算机系统的任意数据存储设备,计算机可读介质可以基于任意现有的或后续开发的技术,以用于以使得其能够由计算机读取的方式来具体化计算机程序。计算机可读介质的示例包括硬盘驱动,网络附接的存储器(NAS),只读存储器,随机存取存储器(例如,闪存设备),CD(紧致盘)--CD-ROM、CD-R或CD-RW,DVD(数字通用盘),磁带,以及其他光学的和非光学的数据存储设备。计算机可读介质还可分布在耦合计算机系统的网络上,使得计算机可读代码以分布式的方式被存储和执行。
为了理解清楚,虽然已经详细描述了本发明的一个或更多个实施例,但是,将明显的是,在权利要求的范围内,可做出某些变更和修改。因此,所描述的实施例将被看作是阐释性的而非限制性的,并且,权利要求的范围并不受限于本文所给出的细节,而是,在权利要求的范围及其等同物的范围内,是可以修改的。在权利要求中,元素和/或步骤并不暗示任意特定的操作次序,除非在权利要求中明确地声明。
根据各种实施例的虚拟化系统可被实现为宿主实施例、非宿主实施例,或作为倾向于模糊二者之间的差别的实施例,这些都是被构想的。另外,各种虚拟化操作可完全或部分地以硬件实现。例如,硬件实现可利用查找表来修改存储访问请求,从而使得非盘数据安全。
不管虚拟化的程度如何,许多变化、修改、附加和改进是可能的。因此,虚拟化软件可包括主机、控制台或执行虚拟化功能的访客操作系统的组件。针对本文被描述为单个实例的组件、操作或结构,可提供多个实例。最后,各种组件、操作和数据存储之间的界限在某种程度上是任意的,并且在特定的阐释性配置的上下文中阐释了特定的操作。构想了对功能的其他分配,并且可落入一个或更多个发明的范围内。一般而言,在示例性配置中呈现为分离组件的结构和功能,可被实现为组合的结构或组件。类似地,呈现为单个组件的结构和功能可被实现为分离组件。这些以及其他变化、修改、添加以及改进可落入所附一个或更多个权利要求的范围内。

Claims (10)

1.一种用于在第一计算设备和第二计算设备之间共享文件的方法,所述方法包括:
在所述第二计算设备处,接收:
标识所述文件和与所述文件相关联的应用的引用,其中所述引用在与虚拟化工作负载容器的第一远程会话期间由在所述第一计算设备上运行的第一远程访问客户端响应于与所述第一远程访问客户端的一个或更多个预定义的用户交互而生成,所述虚拟化工作负载容器由所述第一远程访问客户端促进,其中在确定与所述文件相关联的应用被安装在所述虚拟化工作负载容器中之后,由所述第一远程访问客户端生成所述引用,并且其中所述第一远程会话包括所述第一计算设备接收并显示在主机服务器处生成的视频输出,所述主机服务器托管所述虚拟化工作负载容器,并将在所述第一计算设备处接收的用户输入路由到所述主机服务器,其中所述用户输入被注入到所述虚拟化工作负载容器中;以及
对接收的引用的选择;
响应于对所述接收的引用的选择,请求在所述第二计算设备上运行的第二远程访问客户端与在所述引用中标识的应用之间建立连接,其中在第二远程会话期间,响应于连接请求,所述主机服务器启动并执行所述第二远程访问客户端连接至的所述虚拟化工作负载容器中的所述应用;以及
请求所述主机服务器打开所述引用中标识的所述文件。
2.根据权利要求1所述的方法,还包括:
响应于对所述引用的选择,在所述第二计算设备中启动所述第二远程访问客户端,
其中响应于对所述引用的选择而发生请求所述主机服务器打开所述引用中标识的所述文件。
3.根据权利要求1所述的方法,其中所述引用是统一资源指示符,并且其中,通过点击所述统一资源指示符,所述引用被选择。
4.根据权利要求1所述的方法,还包括:
其中响应于所述连接请求,所述主机服务器对与所述应用的所述连接进行认证,以及
其中所述引用还包括所述认证中所使用的一个或更多个凭证或令牌。
5.根据权利要求4所述的方法,其中所述一个或更多个凭证或令牌包括一次性认证凭证,在单次使用之后,所述主机服务器无效所述一次性认证凭证。
6.根据权利要求1所述的方法,还包括:
与在所述主机服务器上的所述虚拟化工作负载容器中运行的所述应用接合,其中所述接合包括:
使得由所述应用生成的显示信息从所述主机服务器发送至所述第二计算设备;
由所述第二远程访问客户端在所述第二计算设备上渲染所述显示信息;
由所述第二计算设备上的所述第二远程访问客户端接收用户输入;以及
将所述用户输入发送至所述主机服务器。
7.根据权利要求1所述的方法,其中执行所述应用的所述主机服务器保持有被允许使用所述引用的设备列表,并且其中,响应于确定请求所述连接的所述第二计算设备在被允许使用所述引用的所述设备列表中,建立由所述引用所指定的与所述应用的所述连接。
8.根据权利要求1所述的方法,其中与所述第一远程访问客户端的一个或更多个预定义的用户交互包括表示所述文件被拖曳到所述第一远程访问客户端的窗口的预定义区域的图标。
9.一种非暂存性计算机可读存储介质,包含用于共享文件的计算机程序指令,所述计算机程序指令实现根据权利要求1-8中的任何一项所述的方法的操作。
10.一种用于在第一计算设备和第二计算设备之间共享文件的系统,包括:
处理器;以及
存储器,其中所述存储器包括用于共享文件的程序,所述程序被配置为执行根据权利要求1-8中的任何一项所述的方法的操作。
CN201580059519.XA 2014-10-31 2015-10-28 利用远程应用的文件共享 Active CN107003865B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/530,618 US10341414B2 (en) 2014-10-31 2014-10-31 File sharing using remote applications
US14/530,618 2014-10-31
PCT/US2015/057889 WO2016069793A1 (en) 2014-10-31 2015-10-28 File sharing using remote applications

Publications (2)

Publication Number Publication Date
CN107003865A CN107003865A (zh) 2017-08-01
CN107003865B true CN107003865B (zh) 2021-01-12

Family

ID=54602009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580059519.XA Active CN107003865B (zh) 2014-10-31 2015-10-28 利用远程应用的文件共享

Country Status (4)

Country Link
US (1) US10341414B2 (zh)
EP (1) EP3213204A1 (zh)
CN (1) CN107003865B (zh)
WO (1) WO2016069793A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150059687A (ko) * 2013-11-22 2015-06-02 삼성전자주식회사 통신 시스템에서 커뮤니케이션 서비스에 대한 소셜 활동 관리 장치 및 방법
US10740128B2 (en) * 2015-05-07 2020-08-11 Quest Software Inc. Selecting a cloud from a plurality of clouds for a workload
CN105187450B (zh) * 2015-10-08 2019-05-10 飞天诚信科技股份有限公司 一种基于认证设备进行认证的方法和设备
US11075895B2 (en) * 2015-12-31 2021-07-27 Huawei Technologies Co., Ltd. Cloud operation interface sharing method, related device, and system
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US11314880B2 (en) * 2016-10-31 2022-04-26 Red Hat, Inc. Decoupling container image layers to preserve privacy
GB201622098D0 (en) * 2016-12-23 2017-02-08 Virtuosys Ltd Edge node, mesh network and method to deliver content at an edge of a mesh network
US10529327B1 (en) * 2017-03-29 2020-01-07 Parallels International Gmbh System and method for enabling voice recognition for operating system
US10542072B1 (en) * 2017-10-04 2020-01-21 Parallels International Gmbh Utilities toolbox for remote session and client architecture
US20190253465A1 (en) * 2018-02-09 2019-08-15 Blade Method for broadcasting user sessions, host computer for implementing such a method, and method for providing services to a user
FR3077905B1 (fr) * 2018-02-09 2020-10-30 Blade Procede de diffusion de sessions d'utilisateur, ordinateur hote permettant de mettre en oeuvre ce procede, et procede de fourniture de services a un utilisateur
US10924528B1 (en) 2018-06-29 2021-02-16 Parallels International Gmbh Method to determine use of local and remote applications in a distributed multiuser environment for shared file resources
EP3842977A4 (en) * 2018-08-21 2022-04-06 Matsunaga, Chikara SYSTEM AND PROCEDURES TO SUPPORT THE USE OF AN ITEM
US11303641B2 (en) 2019-05-07 2022-04-12 Citrix Systems, Inc. Methods and systems for accessing remotely stored files using virtual applications
US11720291B2 (en) * 2019-05-07 2023-08-08 Citrix Systems, Inc. Methods and systems for accessing remotely stored files using virtual applications
US11507408B1 (en) * 2020-01-21 2022-11-22 Amazon Technologies, Inc. Locked virtual machines for high availability workloads
US11863565B2 (en) 2020-03-20 2024-01-02 Tactika.Com Inc. System and method for securing access to network assets
US11941237B2 (en) * 2021-05-17 2024-03-26 Apple Inc. Devices, methods, and graphical user interfaces for automatically providing shared content to applications
KR20240005099A (ko) 2021-05-17 2024-01-11 애플 인크. 공유 콘텐츠를 애플리케이션들에 자동으로 제공하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들
US11977908B2 (en) * 2021-07-09 2024-05-07 Dish Wireless L.L.C. Streamlining the execution of software such as radio access network distributed units
US20230266986A1 (en) * 2022-02-18 2023-08-24 Microsoft Technology Licensing, Llc Direct loading of client cloud files in a remote desktop

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492352A (zh) * 2002-10-07 2004-04-28 �Ҵ���˾ 用于远程web服务克隆和例示的系统和方法
CN101727449A (zh) * 2008-10-28 2010-06-09 国际商业机器公司 利用远程应用处理本地文件的系统和方法
CN102970333A (zh) * 2011-10-27 2013-03-13 微软公司 从远程客户机设备进行文件读取

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724595A (en) * 1996-06-19 1998-03-03 Sun Microsystems, Inc. Simple method for creating hypertext links
US7424543B2 (en) 1999-09-08 2008-09-09 Rice Iii James L System and method of permissive data flow and application transfer
US6687745B1 (en) 1999-09-14 2004-02-03 Droplet, Inc System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection
US7017162B2 (en) * 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US20030126242A1 (en) * 2001-12-28 2003-07-03 Chang Albert H. Network boot system and method using remotely-stored, client-specific boot images created from shared, base snapshot image
US7552189B2 (en) * 2002-01-18 2009-06-23 Bea Systems, Inc. System and method for using virtual directories to service URL requests URL requests in application servers
CN100391189C (zh) * 2006-04-05 2008-05-28 中国科学院研究生院 基于互联网的访问和共享远程设备的系统和方法
US7966599B1 (en) * 2006-08-29 2011-06-21 Adobe Systems Incorporated Runtime library including a virtual file system
US8756293B2 (en) 2007-04-23 2014-06-17 Nholdings Sa Providing a user with virtual computing services
CN101931641A (zh) 2009-06-24 2010-12-29 鸿富锦精密工业(深圳)有限公司 文件分享系统及方法
US9448852B2 (en) * 2009-08-28 2016-09-20 Oracle International Corporation Managing virtual machines
US9274821B2 (en) * 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
US8892628B2 (en) * 2010-04-01 2014-11-18 Microsoft Corporation Administrative interface for managing shared resources
US9081633B2 (en) * 2010-05-24 2015-07-14 Microsoft Technology Licensing, Llc Remote application connection sharing
US20160344547A9 (en) * 2010-10-04 2016-11-24 Unisys Corporation Secure connection for a remote device through a virtual relay device
CN106843715B (zh) * 2010-10-05 2020-06-26 西里克斯系统公司 用于远程化的应用的触摸支持
US8412721B2 (en) * 2011-07-29 2013-04-02 International Business Machines Corporation Efficient data extraction by a remote application

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492352A (zh) * 2002-10-07 2004-04-28 �Ҵ���˾ 用于远程web服务克隆和例示的系统和方法
CN101727449A (zh) * 2008-10-28 2010-06-09 国际商业机器公司 利用远程应用处理本地文件的系统和方法
CN102970333A (zh) * 2011-10-27 2013-03-13 微软公司 从远程客户机设备进行文件读取

Also Published As

Publication number Publication date
EP3213204A1 (en) 2017-09-06
CN107003865A (zh) 2017-08-01
WO2016069793A1 (en) 2016-05-06
US20160127447A1 (en) 2016-05-05
US10341414B2 (en) 2019-07-02

Similar Documents

Publication Publication Date Title
CN107003865B (zh) 利用远程应用的文件共享
US11750527B2 (en) Method and system for sharing user configuration data between different computing sessions
US10348711B2 (en) Restricting network access to untrusted virtual machines
US9864754B2 (en) Virtual desktop infrastructure private cloud
EP3183648B1 (en) Machine identity persistence for users of non-persistent virtual desktops
US9798566B2 (en) Metadata-based virtual machine configuration
JP5998284B2 (ja) エンタプライズシステムへのアプリケーションの動的登録
US20200280600A1 (en) Rendering a Web Application in a Cloud Service
US9244700B2 (en) Methods and systems for delivering applications from a desktop operating system
US10958633B2 (en) Method and system for securely transmitting volumes into cloud
US8959510B2 (en) Providing a trusted environment for provisioning a virtual machine
US20140258238A1 (en) Method to embed snapshot management into virtual machine instances
US10015172B2 (en) Creation of link to user profile from user information prior to user logon to a virtual desktop environment
CN113924551A (zh) 使用虚拟应用访问远程存储的文件的方法和系统
US10791103B2 (en) Adapting remote display protocols to remote applications
US20140258235A1 (en) Method to provide user domain management of snapshots for virtual desktops using centralized portal
US9813506B2 (en) Distributed self-served application remoting
JP2021521574A (ja) ヘルパを介したクライアントデバイスの匿名セッションへの接続
US20240171543A1 (en) Protectively displaying specific fields in specific views of a secure interface
Penberthy et al. Virtual Machines

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: California, USA

Patentee after: Weirui LLC

Country or region after: U.S.A.

Address before: California, USA

Patentee before: VMWARE, Inc.

Country or region before: U.S.A.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240913

Address after: California, USA

Patentee after: Omnisa LLC

Country or region after: U.S.A.

Address before: California, USA

Patentee before: Weirui LLC

Country or region before: U.S.A.