CN105308573A - 受管应用中普遍存在的协作 - Google Patents

受管应用中普遍存在的协作 Download PDF

Info

Publication number
CN105308573A
CN105308573A CN201480032801.4A CN201480032801A CN105308573A CN 105308573 A CN105308573 A CN 105308573A CN 201480032801 A CN201480032801 A CN 201480032801A CN 105308573 A CN105308573 A CN 105308573A
Authority
CN
China
Prior art keywords
application
managed
managed application
feature
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.)
Granted
Application number
CN201480032801.4A
Other languages
English (en)
Other versions
CN105308573B (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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Priority to CN201910107988.4A priority Critical patent/CN109828854A/zh
Publication of CN105308573A publication Critical patent/CN105308573A/zh
Application granted granted Critical
Publication of CN105308573B publication Critical patent/CN105308573B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • 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/10Protocols in which an application is distributed across nodes in the network

Abstract

本文描述了用于在受管应用环境中普遍存在的协作特征的方法和系统。协作服务和/或服务器可储存会话信息和一个或多个配置文件用于在结合在用户的计算设备上执行的受管应用呈现的协作特征中使用。

Description

受管应用中普遍存在的协作
本国际申请要求2014年3月21日提交的编号为14/221,958(代理人案号为007737.00343)的美国申请的优先权,其通过引用以其整体并入本文。
领域
本文描述的方面一般涉及在受管应用环境中的协作特征,诸如文本聊天、视频聊天、音频聊天、临场和/或其它。
背景
诸如移动应用的一些应用可以是受管应用。受管应用可利用策略来调节共享环境中应用的执行。在移动电话环境中执行沙盒和其它技术是受管应用的可选的示例。当受管应用的程序员可重写他们的应用的本机的源代码以在事后添加协作特征时,它可能是耗时并昂贵的繁琐的过程。另外,每个应用可具有其自己的可能不能与另一个应用的聊天特征兼容的聊天特征。因此,当用户在使用不同的应用之间切换时,他们可能被强制在聊天应用之间来回切换。当涉及到虚拟的环境中的协作时,这在现有技术中留下的缺点和限制。
概述
下文呈现本文所述的各个方面的简要概述。该概述并不是广义的综述,亦非旨在确定关键或重要元素或描绘权利要求的范围。以下概述仅仅以简化形式呈现一些概念,作为对以下提供的更详细描述的介绍性前序。
为了克服以上描述的现有技术中的限制,以及克服将在阅读和理解本说明书时明显的其它限制,本文描述的方面针对结合在客户端计算设备上呈现(如,显示)的受管应用提供一个或多个协作特征的方法。
在一个示例中,该方法包括,特别是,结合第一受管应用的呈现自动地呈现一个或多个协作特征(如,协作组件/模块)以及关于协作特征的通信会话信息。第一受管应用可具有通过与一个或多个受管特征的封装(即,所封装的)在运行时或预先添加或移除的特征,包括但不限于协作特征。
另外,前述方法还包括第二受管应用(或甚至更多受管应用),其也被封装以在受管模式期间提供协作特征。在受管应用中的协作特征可共享会话信息,使得协作特征可跨第一受管应用和第二受管应用执行。
在各种示例中,经由将本机应用封装并将诸如遏制、加密等的一个或多个受管应用特征添加到(或注入)受管应用中,协作特征可被并入受管应用环境中。因此,当协作特征在应用的受管模式中被启用时,则受管协作特征变得可操作。在另一个示例中,经由允许受管应用与协作特征交互的应用接口(API),协作特征可被并入受管应用环境中。在又一个示例中,协作特征可以是通过一个或多个预定的钩子(如,动态链接库(如,.dll、.dylib、.jar等)文件)与受管应用交互的独立协作软件。当适合时,“协作特征”应该被概括地解释为包括前述示例中的每一个。
另外,在另一示例中,客户端代理(经由受管应用)可与协作特征/服务接驳以促进协作特征和/或其它方面的呈现/显示。在激活或去激活结合主题受管应用呈现协作特征前,系统可检测所储存的规则/策略是否已经被满足。
此外,协作服务器可与其它组件交互以发送会话信息和与受管应用相关的一个或多个配置文件。因此,促使在客户端计算设备上执行的协作服务根据其相应的配置文件中的风格或其它信息来呈现协作特征。
结合下面更详细地公开的内容的益处,将理解这些和其它方面。
附图简述
可通过参照下面结合附图考虑的描述获得对本文描述的方面和其优势的更充分的理解,在附图中相似的参考数字表示相似的特征,且其中:
图1描绘了可根据本文描述的一个或多个说明性方面使用的说明性的计算机系统架构。
图2描绘了可根据本文描述的一个或多个说明性方面使用的说明性的远程访问系统架构。
图3描绘了可根据本文描述的一个或多个说明性方面使用的说明性的虚拟化(超级管理器)系统架构。
图4描绘了可根据本文描述的一个或多个说明性方面使用的说明性的基于云的系统体系结构。
图5示出的是可根据本文描述的一个或多个说明性方面使用的说明性的企业移动性技术架构。
图6示出的是可根据本文描述的一个或多个说明性方面使用的又一个说明性的企业移动性技术架构。
图7A和图7B是可根据本文描述的一个或多个说明性方面通过在客户端计算设备上执行的一个或多个代理/服务实施的说明性步骤的流程图。
图8示出根据但不限于本文描述的一个或多个说明性方面用于将各种协作特征/类型显示到用户用于选择的说明性客户端侧图形用户界面(GUI)。
图9、图10、图11和图12是根据本文描述的一个或多个说明性方面示出结合通过协作服务提供的协作特征呈现的受管应用的说明性图形用户界面。
图13描绘了根据本文描述的一个或多个说明性方面涉及协作服务的说明性的组件架构。
图14是可根据本文描述的一个或多个说明性方面通过一个或多个方面/服务实施的说明性步骤的流程图。
详细描述
在各个实施方案的下列描述中,参考了上面确认并形成各个实施方案的一部分的附图,并且其中以说明各个实施方案的方式示出,本文所描述的各方面可在各个实施方案中被实践。应当理解的是,可利用其他实施方案,并且在不脱离本文所描述的范围的情况下可做出结构和功能的修改。各种方面能够是其他实施方案并能够以各种不同的方式实践或执行。
作为对在以下更详细描述的主题的一般性介绍,本文中所描述的方面针对用于在受管应用环境中普遍存在的协作特征的方法和系统。协作服务和/或协作服务器可储存会话信息和一个或多个配置文件用于在结合在用户的计算设备上执行的受管应用呈现的协作特征中使用。受管应用可在各种模式中操作。受管应用可具有确定的一个或多个背景/因素。基于该背景,受管应用可以多种操作模式中的一种操作模式在客户端计算设备上运行,该多种操作模式包括但不限于受管的、非受管的和部分受管模式。根据该模式,一个或多个协作特征可通过受管应用的用户接口被呈现/变得可访问。
应当理解的是,本文所使用的短语和术语是出于描述的目的,并且不应被视为限制性的。更确切地说,本文所使用的短语和术语被给出它们最广泛的解释和意义。“包括”和“包含”及其变型的使用旨在包括其后列出的项目及其等效物以及附加项目及其等效物。术语“安装”、“连接”、“耦合”、“定位”、“啮合”和类似术语的使用旨在包括直接和间接的安装、连接、耦合、定位和啮合。
计算架构。计算机软件、硬件和网络可用于多种不同的系统环境中,除了别的之外,包括单机、连网、远程访问(又叫做远程桌面)、虚拟化和/或基于云的环境。图1示出了系统架构和数据处理设备的一个示例,其被用于在单机环境和/或网络环境中执行本文描述的一个或多个说明性方面。各个网络节点103、105、107和109可经由诸如互联网的广域网(WAN)101进行互连。还可使用或可选地使用其他网络,包括私有内联网、企业网络、LAN、城域网(MAN)无线网、个人网络(PAN)等。网络101用于说明的目的并且可以用更少或附加的计算机网络来代替。局域网(LAN)可具有任何已知的LAN拓扑中的一个或多个,并且可使用多种不同协议中的一个或多个,诸如以太网。设备103、105、107、109和其他设备(未示出)可经由双绞线、同轴电缆、光纤、无线电波或其他通信媒介连接到一个或多个网络。
本文所使用以及附图中所描述的术语“网络”不仅指其中远程存储设备经由一个或多个通信路径耦合在一起的系统,还指有时可耦合到该类系统的具有存储能力的单机设备。因此,术语“网络”不仅包括“物理网络”还包括“内容网络”,其由单个实体引起的、驻留在所有的物理网络上的数据组成。
组件可包括数据服务器103、web服务器105和客户端计算机107、109。数据服务器103提供对数据库和控制软件的全面访问、控制和管理,用于执行本文描述的一个或多个说明性方面。数据服务器103可连接到web服务器105,其中用户通过该web服务器105根据请求与数据交互并获得数据。可选地,数据服务器103可充当网络服务器本身,并直接地连接到互联网。数据服务器103可通过网络101(例如,互联网)经由直接或间接连接或经由一些其他网络连接到web服务器105。用户可使用远程计算机107、109与数据服务器103交互,如使用网络浏览器经由web服务器105托管的一个或多个对外公开的网站连接至数据服务器103。在一些示例中,web服务器105和/或数据服务器103可作为资源服务器(或内容资源服务器)被提及,因为他们提供内容以响应于适合的被格式化的请求(如,HTTP请求)。
客户端计算机107、109可与数据服务器103配合使用以访问存储其中的数据,或可用于其他目的。例如,如本领域中已知的,用户可使用互联网浏览器从客户端设备107访问资源/web服务器105,或通过执行经由计算机网络(如互联网)与资源服务器(如,web服务器105和/或数据服务器103)通信的软件应用来访问web服务器105。
服务器和应用可被组合在相同的物理机器上,并且保留不同的虚拟或逻辑地址,或可驻留在不同的物理机器上。图1仅示出可以被使用的网络结构的一个示例,并且如在本文进一步所描述的,所使用的特定网络结构和数据处理设备可以改变,并且对于它们提供的功能来说是次要的。例如,通过web服务器105和数据服务器103提供的服务可被组合在单一服务器上。
每个组件103、105、107、109可以是任何类型的已知计算机、服务器或数据处理设备。例如,数据服务器103可包括控制速率服务器103的总体操作的处理器111。数据服务器103还可包括RAM113、ROM115、网络接口117、输入/输出接口119(例如,键盘、鼠标、显示器、打印机等等),以及存储器121。I/O119可包括用于读取、写入、显示和/或打印数据或文件的各种接口单元和驱动器。存储器121还可存储用于控制数据处理设备103的整体操作的操作系统软件123、用于指令数据服务器103以执行本文描述的方面的控制逻辑125以及提供辅助、支持、和/或其它可用于或不可用于与本文描述的方面结合使用的功能的其它应用软件127。本文中,控制逻辑还可被称为数据服务器软件125。数据服务器软件的功能可指基于被编码到控制逻辑中的规则自动进行的操作或决定、通过用户将输入提供到系统中来手动进行的操作或决定和/或基于用户输入(例如,查询、数据更新等等)的自动处理的组合。
存储器121还可存储在本文描述的一个或多个方面的实现中使用的数据,包括第一数据库129和第二数据库131。在一些实施方案中,第一数据库可包括第二数据库(例如,作为分离的表、报告等)。即,该信息可存储在单个数据库中,或分离成不同的逻辑、虚拟或物理数据库,其取决于系统设计。设备105、107、109可以具有如关于设备103所述的相似或不同的结构。
如本文所描述的,数据处理设备103(或设备105、107、109)的功能可在多个数据处理设备之间扩展,例如,以将处理负载分布在多台计算机之间,以基于地理位置、用户访问等级、服务质量(QoS)等分开处理。
一个或多个方面可以在通过本文所描述的一个或多个计算机或其他设备执行的、诸如一个或多个程序模块中的计算机可用或可读数据和/或计算机可执行指令来体现。通常,程序模块包括例程、程序、对象、组件、数据结构等等,当被计算机或其他设备中的处理器执行时,该程序模块执行特定任务或实施特定抽象数据类型。该模块可用源代码编程语言编写,然后被编译用于执行,或可用脚本语言编写,诸如(但不限于)Javascript或ActionScript。计算机可执行指令可被存储在诸如非易失性存储设备的计算机可读介质上。可利用任何适当的计算机可读存储介质,包括硬盘、CD-ROM、光学存储设备、磁性存储设备和/或其任何组合。另外,可以用电磁波的形式在源和目的之间传递表示本文所描述的数据或事件的各种传输(非存储)介质,该电磁波通过诸如金属丝、光纤、和/或无线传输介质(例如,空气和/或空间)的信号-传导介质传播。本文所描述的各个方面可被体现为方法、数据处理系统或计算机程序产品。因此,各种功能可整体或部分地体现在软件、固件和/或硬件或硬件等同物,诸如集成电路、现场可编程门阵列(FPGA),等等。特定的数据结构可用于更有效地执行本文所述的一个或多个方面,且预期这种数据结构在本文所述的计算机可执行指令和计算机可用数据的范围内。
进一步参考图2,可在远程访问环境中实现本文所述的一个或多个方面。图2描绘了示例性的系统架构,包括在说明性计算环境200中的通用计算设备201,其可根据本文所述的一个或多个说明性方面来使用。通用计算设备201可以被用作单服务器或多服务器桌面虚拟化系统(例如,远程访问或云系统)中的服务器206a,所述系统经配置提供用于客户端访问设备的虚拟机。可选地,在一些示例中,通用计算设备201可作为用户计算设备被提及(如,计算设备201、终端240、移动终端/设备、移动电话、智能电话、PDA、平板电脑、笔记本计算机/膝上计算机、个人计算机和其他)。
通用计算设备201可具有用于控制服务器及其相关组件(包括随机存取存储器(RAM)205、只读存储器(ROM)207、输入/输出(I/O)模块209和存储器215)的整体操作的处理器203。
I/O模块209可包括鼠标、键盘、触摸屏、扫描仪、光学阅读器和/或手写笔(或其它输入设备)(通用计算设备201的用户可通过这些输入设备提供输入),并且也可包括用于提供音频输出的扬声器和用于提供文本、视听和/或图形输出的视频显示设备中的一个或多个。软件可存储在存储器215和/或其它存储中,以提供指令给处理器203用于将通用计算设备201配置为专用计算设备,以便执行如本文所述的各种功能。例如,存储器215可以存储由计算设备201使用的软件(诸如操作系统217、应用程序219和关联的数据库221)。
计算设备201可在支持连接到一个或多个远程计算机(诸如终端240(也称为客户端设备))的网络化环境中运行。终端240可以是个人计算机、移动设备、笔记本计算机、平板计算机、或服务器,其包括以上描述的关于通用计算设备103或201的许多或全部元素。在图2中描绘的网络连接包括局域网(LAN)225和广域网(WAN)229,但还可包括其它网络。当用于LAN网络环境中时,计算设备201可通过网络接口或适配器223连接到LAN225。当在WAN联网环境中使用时,计算设备201可包括调制解调器227或用于建立在WAN229(诸如计算机网络230(例如,互联网))上的通信的其它广域网接口。将认识到的是,所示的网络连接是说明性的,且可使用在计算机之间建立通信链路的其它装置。计算设备201和/或终端240还可为移动终端(例如,移动电话、智能电话、PDA、笔记本等等),其包括各种其他部件,诸如电池、扬声器和天线(未示出)。
本文描述的各方面也可以用许多其它通用或专用计算系统环境或配置来运行。适合与本文描述的方法一起使用的其它计算系统、环境和/或配置的示例可包括,但不限于,个人计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子用品、网络PC、迷你计算机、主机计算机、包括上面的系统或设备中的任意系统或设备的分布式计算环境等。
如图2所示,一个或多个客户端设备240可与一个或多个服务器206a-206n(在本文中统称为“服务器206”)通信。在一个实施方案中,计算环境200可包括在服务器206和客户机240之间安装的网络装置。该网络装置可管理客户端/服务器连接,并在某些情况下可负载平衡多个后端服务器206之间的客户端连接。
在一些实施方案中,客户端机器240可指代单个客户端机器240或单组客户端机器240,而服务器206可指代单个服务器206或单组服务器206。在一个实施方式中,单个客户端机器240与一个以上的服务器206通信,而在另一实施方式中,单个服务器206与一个以上的客户端机器240通信。在又一实施方式中,单个客户端机器240与单个服务器206通信。
在一些实施方案中,可通过下列非穷举术语中的任何一个指代客户端机器240:客户端机器;客户端;客户端计算机;客户端设备;客户端计算设备;本地机器;远程机器;客户端节点;端点;或端点节点。在一些实施方案中,可通过下列非穷举术语中的任何一个指代服务器206:服务器;本地机器;远程机器;服务器群;或主机计算设备。
在一个实施方式中,客户端机器240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施方案中虚拟机可以是由1型或2型的超级管理器所管理的任何虚拟机,例如,由CitrixSystems、IBM、VMware开发的超级管理器,或任何其它超级管理器。在一些方面中,虚拟机可由超级管理器管理,而在其它方面中,虚拟机可由在服务器206上执行的超级管理器或在客户端240上执行的超级管理器管理。
一些实施方案包括客户端设备240,其显示由在服务器206上远程执行的应用或由其它远程放置的机器上远程执行的应用生成的应用输出。在这些实施方式中,客户端设备240可执行虚拟机客户端代理程序或应用以在应用窗口、浏览器或其它输出窗口中显示输出。在一个实例中,应用是桌面,而在其它实例中应用是生成或呈现桌面的应用。桌面可包括为操作系统的实例提供用户界面的图形壳,其中可集成本地和/或远程应用。如在本文所使用的,应用是在操作系统(和可选地,还有桌面)的实例已经被加载之后执行的程序。
在一些实施方案中,服务器206使用远程表示协议或其他程序以将数据发送给瘦客户端或在客户端上执行的远程显示应用,以便呈现通过在服务器206上执行的应用生成的显示输出。瘦客户端或远程显示协议可以是下列非穷举协议列表中的任意一个:通过佛罗里达州劳德代尔堡(Ft.Lauderdale,Florida)的Citrix系统公司开发的独立计算架构(ICA)协议;或通过华盛顿雷德蒙德(Redmond,Washington)的微软公司制造的远程桌面协议(RDP)。
远程计算环境可包括多于一个的服务器206a-206n,使得,例如在云计算环境中,服务器206a-206n逻辑组合在一起成服务器群206。服务器群206可包括地理地分散但是逻辑地组成在一起的服务器206,或放置在靠近彼此同时逻辑地组成在一起的服务器206。
在一些实施方案中,在服务器群206中的地理上分散的服务器206a-206n使用WAN(广域网)、MAN(城域网)、或LAN(局域网)通信,其中不同的地理区域可表征为:不同大陆;大陆的不同区域;不同的国家;不同的州;不同的城市;不同的校区;不同的房间;或前述地理位置的任何组合。在一些实施方案中,服务器群206可作为单一实体进行管理,而在其他实施方案中,服务器群206可包括多个服务器群。
在一些实施方案中,服务器群可包括服务器206,其执行基本上类似类型的操作系统平台(例如,WINDOWS、UNIX、LINUX、iOS、ANDROID、SYMBIAN,等)。在其它实施方案中,服务器群206可包括执行第一类型的操作系统平台的一个或多个服务器的第一组,以及执行第二类型的操作系统平台的一个或多个服务器的第二组。
服务器206可根据需要配置成任何类型的服务器,例如,文件服务器、应用服务器、web服务器、代理服务器、装置、网络装置、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSLVPN服务器、防火墙、网络服务器、应用服务器或作为主应用服务器、执行活动目录的服务器、或执行提供防火墙功能、应用功能、或负载平衡功能的应用加速程序的服务器。还可使用其他服务器类型。
一些实施方案包括第一服务器106a,其接收来自客户端机器240的请求、转发该请求至第二服务器106b,并使用来自第二服务器106b的响应对由客户端机器240生成的请求响应。第一服务器106a可以获得可用于客户端机器240的应用的列举以及与托管在应用列举内被识别的应用的应用服务器206相关联的地址信息。然后,第一服务器106a可使用web接口呈现对客户端请求的响应,并直接与客户端240通信以给客户端240提供对所标识的应用的访问。一个或多个客户端240和/或一个或多个服务器206可经由例如互联网101的网络230传输数据。
图2示出说明性桌面虚拟化系统的高层架构。如图所示,桌面虚拟化系统可以是单服务器或多服务器系统、或云系统,包括配置为给一个或多个客户端访问设备240提供虚拟桌面和/或虚拟应用的至少一个虚拟化服务器206。
如在本文使用的,桌面指图形环境或空间,其中一个或多个应用可被托管和/或执行。桌面可包括为操作系统的实例提供用户界面的图形壳,其中可集成本地和/或远程应用。应用可包括加载了操作系统(和任选地,还有桌面)的实例之后执行的程序。操作系统的每个实例可以是真实的(例如每个设备一个操作系统)或虚拟的(例如在单个设备上运行的OS的很多实例)。每个应用可在本地设备上执行或在远程放置的设备上执行(例如远程)。
进一步参考图3,计算机设备301可以配置为在虚拟化环境(例如,单一服务器环境、多服务器环境、或云计算环境)中的虚拟化服务器。在图3中示出的虚拟化服务器301可以被部署为在图2中示出的服务器206的一个或多个实施方案和/或由其实现,或通过其它已知的计算设备实现。
包含在虚拟化服务器301中的是硬件层,其可包括一个或多个物理磁盘304、一个或多个物理设备306、一个或多个物理处理器308和一个或多个物理存储器316。在一些实施方式中,固件312可存储在物理存储器316中的存储器元件内并可由一个或多个物理处理器308执行。虚拟化服务器301还可以包括操作系统314,其可以被存储在物理存储器316的存储器元件中并由物理处理器308中的一个或多个执行。而且,超级管理器302可存储在物理存储器316中的存储器元件中,并可由一个或多个物理处理器308执行。
在一个或多个物理处理器308上执行的可以是一个或多个虚拟机332A-C(总体上表示为332)。每个虚拟机332可以具有虚拟盘326A-C和虚拟处理器328A-C。在一些实施方案中,第一虚拟机332A可使用虚拟处理器328A执行包括工具堆栈324的控制程序320。控制程序320可以被称为控制虚拟机、Dom0、域0,或用于系统管理和/或控制的其他虚拟机。在某些实施方案中,一个或多个虚拟机332B-C可以使用虚拟处理器328B-C执行访客(guest)操作系统330A-B。
虚拟化服务器301可以包括与虚拟化服务器301通信且具有一个或多个硬件的硬件层310。在一些实施方式中,硬件层310可包括一个或多个物理磁盘304、一个或多个物理设备306、一个或多个物理处理器308和一个或多个存储器216。物理组件304、306、308和316可包括,例如以上所述任何组件。物理设备306可包括,例如,网络接口卡、视频卡、键盘、鼠标、输入设备、监视器、显示设备、扬声器、光盘驱动器、储存设备、通用串行总线连接、打印机、扫描仪、网络元件(例如,路由器、防火墙、网络地址转换器、负载均衡器、虚拟专用网(VPN)网关、动态主机配置协议(DHCP)路由器等),或连接到虚拟化服务器301或与其通信的任何设备。硬件层310中的物理存储器316可包括任何类型的存储器。物理存储器316可以存储数据,并且在某些实施方案中可以存储一个或多个程序或一组可执行指令。图3示出其中固件312被存储在虚拟化服务器301的物理存储器316内的实施方案。存储在物理存储器316中的程序或可执行指令可以由虚拟化服务器301的一个或多个处理器308来执行。
虚拟化服务器301还可包括超级管理器302。在某些实施方案中,超级管理器302可以是一种程序,其由虚拟化服务器301上的处理器308来执行,以创建和管理任何数量的虚拟机332。超级管理器302可以被称为虚拟机监视器或平台虚拟化软件。在一些实施方案中,超级管理器302可以是可执行指令以及监视在计算机器上执行的虚拟机的硬件的任何组合。超级管理器302可以是类型2的超级管理器,其中,该超级管理器在执行于虚拟化服务器301上的操作系统314内执行。虚拟机然后在超级管理器之上的层执行。在一些实施方案中,2型超级管理器在用户的操作系统的上下文内执行,以使2型超级管理器与用户的操作系统进行交互。在其它实施方案中,虚拟化环境中的一个或多个虚拟化服务器201可替代地包括1型超级管理器(未示出)。可通过直接访问硬件层310中的硬件和资源在虚拟化服务器301上执行1型超级管理器。就是说,虽然2型超级管理器302通过如所示出的主机操作系统314访问系统资源,但是1型超级管理器可无需主机操作系统314而直接访问所有系统资源。1型超级管理器可以在虚拟化服务器301的一个或多个物理处理器308上直接执行,并且可以包括存储在物理存储器316中的程序数据。
在某些实施方案中,超级管理器302可以模拟操作系统330或控制程序320能够直接访问系统资源的任何方式向在虚拟机332上执行的操作系统330或控制程序320提供虚拟化资源。系统资源可以包括但不限于物理装置306、物理盘304、物理处理器308、物理存储器316和包括在虚拟化服务器301硬件层310中的任何其他组件。超级管理器302可以被用于模拟虚拟化硬件、分区物理硬件、虚拟化物理硬件和/或执行提供访问计算环境的虚拟机。在另外的其他实施方案中,超级管理器302控制用于在虚拟化服务器301上执行的虚拟机332的处理器调度和存储器分区。超级管理器302可包括由加利福尼亚州帕罗奥多的VMWare公司制造的那些超级管理器;XEN超级管理器,一种开源产品,其开发由开源Xen.org社区监督;由微软公司提供的HyperV、VirtualServer或虚拟PC超级管理器;或其他超级管理器。在某些实施方案中,虚拟化服务器301执行创建虚拟机平台的超级管理器302,访客操作系统可以在该虚拟机平台上执行。在这些实施方案中,虚拟化服务器301可以被称为主机服务器。这样的虚拟化服务器的例子是由佛罗里达州罗德岱堡的Citrix系统公司提供的XENSERVER。
超级管理器302可以创建访客操作系统330在其中执行的一个或多个虚拟机332B-C(总称为332)。在某些实施方案中,超级管理器302可以加载虚拟机镜像以创建虚拟机332。在其它实施方案中,超级管理器302可在虚拟机332内执行访客操作系统330。在另外的其它实施方案中,虚拟机332可以执行访客操作系统330。
除了创建虚拟机332之外,超级管理器302可控制至少一个虚拟机332的执行。在其它实施方案中,超级管理器302可以向至少一个虚拟机332呈现由虚拟化服务器301提供的至少一个硬件资源(例如,硬件层310内可用的任何硬件资源)的抽象。在其他实施方案中,超级管理器302可以控制虚拟机332访问虚拟化服务器301中可用的物理处理器308的方式。控制对物理处理器308的访问可包括确定虚拟机332是否应有权访问处理器308,以及如何将物理处理器能力提供给虚拟机332。
如图3中所示,虚拟化服务器301可以托管或执行一个或多个虚拟机332。虚拟机332是可执行指令集,其在由处理器308执行时,模仿物理计算机的操作,使得虚拟机332可以非常类似于物理计算设备来执行程序和过程。虽然图3示出其中的虚拟化服务器301托管三个虚拟机332的实施方案,但是在其他实施方案中,虚拟化服务器301可以托管任何数量的虚拟机332。在某些实施方案中,超级管理器302向每个虚拟机332提供该虚拟机332可用的物理硬件、存储器、处理器和其他系统资源的独特虚拟视图。在某些实施方案中,该独特虚拟视图可以基于虚拟机许可、一个或多个虚拟机标识符的策略引擎的应用、访问虚拟机的用户、在虚拟机上执行的应用、由虚拟机访问的网络、或任何其他期望的标准中的一个或多个。例如,超级管理器302可以创建一个或多个非安全虚拟机332和一个或多个安全虚拟机332。非安全虚拟机332可被禁止访问安全虚拟机332可被允许访问的资源、硬件、存储器位置和程序。在其他实施方案中,超级管理器302可以向每个虚拟机332提供该虚拟机332可用的物理硬件、存储器、处理器和其他系统资源的大致相似的虚拟视图。
每一个虚拟机332可包括虚拟盘326A-C(统称为326)和虚拟处理器328A-C(统称为328)。虚拟盘326在一些实施方式中是虚拟化服务器301的一个或多个物理磁盘304或虚拟化服务器301的一个或多个物理磁盘304的一部分的虚拟化视图。物理磁盘304的虚拟化视图可由超级管理器302产生、提供并管理。在一些实施方案中,超级管理器302给每个虚拟机332提供物理磁盘304的不同视图。因此,在这些实施方案中,当与其他虚拟盘326比较时,包括在每个虚拟机332中的特定虚拟盘326可以是不同的。
虚拟处理器328可以是虚拟化服务器301的一个或多个物理处理器308的虚拟化视图。在一些实施方案中,可通过超级管理器302生成、提供和管理物理处理器308的虚拟化视图。在一些实施方案中,虚拟处理器328基本上具有至少一个物理处理器308的所有相同特性。在其他实施方案中,虚拟化处理器308提供物理处理器308的更改视图,使得虚拟处理器328的特性中的至少某些特性不同于对应物理处理器308的特性。
进一步参考图4,本文所描述的一些方面可在基于云的环境中实施。图4说明了云计算环境(或云系统)400的实例。如在图4中看到的,客户端计算机411-414可与云管理服务器410通信以访问云系统的计算资源(例如主机服务器403、存储资源404和网络资源405)。
管理服务器410可以在一个或多个物理服务器上实施。管理服务器410除了可以运行其他软件以外,还可以运行例如佛罗里达州劳德代尔堡的CitrixSystems公司的CLOUDSTACK或OPENSTACK。管理服务器410可管理各种计算资源,包括云硬件和软件资源,例如主机计算机403、数据存储设备404和联网设备405。
云硬件和软件资源可以包括专用和/或公共组件。例如,云可被配置为由一个或多个特定的消费者或客户端计算机411-414和/或通过私有网络使用的私有云。在其它实施方式中,公共云或混合公共-专用云可通过开放或混合网络由其他消费者使用。
管理服务器410可被配置成提供用户界面,云操作员和云客户可通过用户界面与云系统交互。例如,管理服务器410可提供一组API和/或具有用户界面的一个或多个云操作员控制台应用(例如基于web的单机应用)以允许云操作员管理云资源,配置虚拟化层,管理客户账户,并执行其它云管理任务。管理服务器410也可包括一组API和/或具有用户界面的一个或多个消费者控制台应用,用户界面被配置成经由客户端计算机411-414从终端用户接收云计算请求,例如创建、修改或销毁云内的虚拟机的请求。客户端计算机411-414可经由互联网或其它通信网络连接到管理服务器410,并可请求对由管理服务器410管理的一个或多个计算资源的访问。响应于客户端请求,管理服务器410可包括被配置成基于客户端请求来选择并提供在云系统的硬件层中的物理资源的资源管理器。例如,管理服务器410和云系统的另外组件可以经配置在网络(例如,互联网)上在客户端计算机411-414提供、形成和管理用于客户的虚拟机和它们的运行环境(例如,超级管理器、存储资源、由网络元件提供的服务等),向客户提供计算资源、数据存储服务、联网性能以及计算机平台和应用支持。云系统还可被配置成提供各种特定的服务,包括安全系统、开发环境、用户界面等。
某些客户端411-414可例如与代表相同终端用户或加入同一公司或组织的不同用户创建虚拟机的不同客户端计算机有关。在其它示例中,特定客户端411-414可以是不相关的,例如附属于不同公司或组织的用户。对于不相关的客户端,可对其他用户隐藏关于任一个用户的虚拟机或储存器的信息。
现在参考云计算环境的物理硬件层,可用区401-402(或各区)可以指的是布置的一组物理计算资源。区可以在地理上与计算资源的整个云中的其它区分离。例如,区401可以是位于加利福尼亚的第一云数据中心,且区402可以是位于佛罗里达的第二云数据中心。管理服务器410可位于可用区域中的一个区域,或在单独的位置。每个区可包括通过网关与在区之外的设备(例如管理服务器410)通过接口连接的内部网络。云的终端用户(例如,客户端411-414)可能或可能未感知到各区之间的区别。例如,终端用户可请求创建具有指定量的存储器、处理能力和网络容量的虚拟机。管理服务器410可对用户的请求做出响应并可分配资源以在用户不知道使用来自区401还是来自区402的资源创建虚拟机的情况下创建虚拟机。在其它实例中,云系统可允许终端用户请求在特定区或在区内的特定资源403-405上分配虚拟机(或其它云资源)。
在这个例子中,每个区401-402可包括各种物理硬件组件(或计算资源)403-405(例如物理托管资源(或处理资源)、物理网络资源、物理存储资源、交换机和可用于向客户提供云计算服务的额外的硬件资源)的布置。在云区401-402中的物理托管资源可以包括一个或多个计算机服务器403(诸如上述的经配置可以形成和托管虚拟机实例的虚拟化服务器301)。在云区401或402中的物理网络资源可以包括一个或多个网络元件405(例如,网络服务供应商),其包括经配置向云客户提供网络服务的硬件和/或软件(诸如防火墙、网络地址转换器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等等)。在云区401-402中的存储资源可包括存储磁盘(例如固态硬盘(SSD)、磁硬盘等)和其它存储设备。
在图4中示出的示例云计算环境还可以包括虚拟化层(例如,如图1-3中所示),该虚拟化层具有经配置形成和管理虚拟机和使用云中的物理资源向客户提供其它服务的另外硬件和/或软件资源。虚拟化层可以包括如上面在图3中所述的超级管理器以及提供网络虚拟化、存储虚拟化等的其它组件。该虚拟化层可以作为与物理资源层分开的层,或可以与物理资源层共享相同的硬件和/或软件资源的部分或全部。例如,虚拟化层可以包括被安装在带有物理计算资源的虚拟化服务器403中的每个中的超级管理器。可以另选使用已知的云系统,例如WINDOWSAZURE(华盛顿雷德蒙德的微软公司),AMAZONEC2(华盛顿西雅图的Amazon.com公司),IBMBLUECLOUD(纽约阿蒙克的IBM公司)或其他云系统。
企业移动性管理架构
图5表示用于在带上自己的设备(BYOD)环境中使用的企业移动技术架构500。该架构使移动设备502的用户能够从移动设备502访问企业或个人资源并使用移动设备502用于个人用途。用户可使用用户所购买的移动设备502或者企业提供给用户的移动设备502来访问此类企业资源504或企业服务508。用户可使用移动设备502仅用于商业用途或用于商业和个人用途。移动设备可以运行iOS操作系统和安卓操作系统或类似操作系统。企业可选择来实施策略以管理移动设备504。该策略可以通过防火墙或网关以移动设备可以被识别、保障或安全被验证并提供选择性访问或全部访问企业资源的方式来植入。该策略可以是移动设备管理策略、移动应用管理策略、移动数据管理策略或移动设备、应用和数据管理策略的某些组合。通过移动设备管理策略的应用来管理的移动设备504可以被称为登记设备。
在一些实施方案中,移动设备的操作系统可分成受管分区510和非受管分区512。受管分区510可具有施用于其的策略,以保护受管分区中运行的应用和存储的数据。运行在受管分区上的应用可以是安全应用。在其它实施方案中,所有的应用可根据从应用单独接收的一组一个或多个策略文件执行,且当该应用在设备上执行时,其定义一个或多个安全参数、特征、资源的限制、和/或其它由移动设备管理系统执行的访问控制。通过根据它们各自的策略文件进行操作,每个应用可被允许或限制与一个或多个其它应用和/或资源的通信,从而创建虚拟分区。因此,如本文所用,分区可指存储器的物理分区部分(物理分区),存储器的逻辑分区部分(逻辑分区),和/或创建的虚拟分区,作为如本文描述的跨多个应用的一个或多个策略和/或策略文件执行的结果(虚拟分区)。换句话说,通过在受管应用上强制执行策略,这些应用可只限于能够与其它受管应用和值得信赖的企业资源通信,从而创建非受管应用和设备不能通过的虚拟分区。
安全应用可以是电子邮件应用、web浏览应用、软件即服务(SaaS)访问应用、Windows应用访问应用等。安全应用可以是安全本地应用514、由安全应用启动器518执行的安全远程应用522、由安全应用启动器518执行的虚拟化应用526等。安全本地应用514可由安全应用封装器520封装。当安全本地应用在设备上执行时,安全应用封装器520可包括在移动设备502上执行的综合策略。安全应用封装器520可包括元数据,其指引在移动设备502上运行的安全本地应用514到在企业托管的资源,其中安全本地应用514可在安全本地应用514执行时要求该资源以完成请求的任务。由安全应用启动器518执行的安全远程应用522可以在安全应用启动器应用518内执行。由安全应用启动器518执行的虚拟化应用526可利用移动设备502、企业资源504等等的资源。由安全应用启动器518执行的虚拟化应用526在移动设备502上使用的资源可包括用户交互资源、处理资源,等等。用户交互资源可以被用于收集和传送键盘输入、鼠标输入、照相机输入、触觉输入、音频输入、视觉输入、手势输入等。处理资源可以用于呈现用户界面、处理从企业资源504接收的数据等。在企业资源504处由安全应用启动器518所执行的虚拟化应用526所使用的资源可以包括用户界面生成资源、处理资源等。
用户接口生成资源可用于组装用户接口、修改用户接口、刷新用户接口等。处理资源可用于创建信息、读取信息,更新信息、删除信息等。例如,虚拟化应用可以记录与GUI相关联的用户交互并将它们传送至服务器应用,其中该服务器应用将把用户交互数据用作在服务器上运行的应用的输入。在这种布置中,企业可以选择以在服务器侧保持应用以及与该应用相关联的数据、文件等。虽然企业可以根据本文所述的原理通过将某些应用安全部署在移动设备上来选择“移动化”该某些应用,但是,这种布置也可以被选择用于特定应用。例如,虽然某些应用可以安全用在移动设备上,但是其它应用可能未准备或适合用于部署在移动设备上,因此,企业可以选择通过虚拟化技术向移动用户提供对未准备好的应用的访问。作为另一实例,企业可具有带有大量和复杂的数据集的大型复杂的应用(例如,材料资源计划应用),其中,定制用于移动设备的应用将是非常困难的或是不期望的,所以企业可选择通过虚拟化技术提供对应用的访问。作为另一个示例,企业可具有维护高度安全地数据(例如,人力资源数据、客户数据、工程数据)的应用,其可被企业认为甚至对于安全的移动环境也过于敏感,因此企业可选择使用虚拟化技术以允许对该类应用和数据的移动访问。企业可能选择在移动设备上提供完全安全和完全功能两者的应用以及虚拟化应用,以允许访问认为更适合在服务器侧运行的应用。在实施例中,虚拟化应用可以将某些数据、文件等存储在移动电话上的安全存储位置中的一个安全存储位置中。例如,企业可以选择允许特定信息而不允许其它信息被存储在电话上。
如本文所述,就虚拟化应用而言,移动设备可具有被设计以呈现GUI且然后记录用户与GUI的交互的虚拟化应用。该应用可传送用户交互到服务器端,以作为用户与应用交互由服务器端应用使用。作为响应,在服务器端的应用可发送新GUI返回到移动设备。例如,新GUI可以为静态页面、动态页面、动画等等,从而提供对远程定位资源的访问。
安全应用可以访问存储在移动设备的受管分区510中的安全数据容器528中的数据。在安全数据容器中保护的数据可由以下应用访问,安全封装的应用514、由安全应用启动器522执行的应用、由安全应用启动器522执行的虚拟化应用526等。存储在安全数据容器528中的数据可包括文件、数据库等。存储在安全数据容器528中的数据可以包括被限制到特定安全应用530、在安全应用532之间共享等的数据。被限制到安全应用的数据可以包括一般安全数据534和高度安全数据538。一般安全数据可使用强加密形式,诸如AES128位加密等等,而高度安全数据538可使用非常强的加密形式,诸如AES256位加密。在接收来自设备管理器524的命令时,可从设备删除存储在安全数据容器528中的数据。安全应用可以具有双模式选项540。双模式选项540可呈现给用户以未受保护或非受管模式操作安全应用的选项。在未受保护或非受管模式中,安全应用可访问存储在移动设备502的非受管分区512上的未受保护数据容器542中的数据。存储在非安全数据容器中的数据可为个人数据544。存储在非安全数据容器542中的数据也可由在移动设备502的非受管分区512上运行的非安全应用548访问。当存储在安全数据容器528中的数据从移动设备502中删除时,存储在非安全数据容器542中的数据可保持在移动设备502上。企业可能想从移动设备删除该企业拥有、许可或控制的选定或全部数据、文件和/或应用(企业数据),而留下或以其它方式保存用户所拥有、许可或控制的个人数据、文件和/或应用(个人数据)。该操作可称为选择性擦除。利用根据本文所述的各方面安排的企业和个人数据,企业可以执行选择性擦除。
移动设备可以连接到在企业的企业资源504和企业服务508、连接到公共互联网548等。通过虚拟私有网络连接,移动设备可连接到企业资源504和企业服务508。虚拟专用网络连接,也被称为微VPN或应用专用VPN,可以指定用于移动设备上的特定应用550、特定装置、特定安全区等552。例如,在手机的安全区域的每个封装的应用可通过应用专用VPN访问企业资源,使得基于与应用相关联的属性,可能与用户或设备属性信息结合,将被授权对VPN的访问。虚拟私有网络连接可携带MicrosoftExchange流量、MicrosoftActiveDirectory流量、HTTP流量、HTTPS流量、应用管理流量,等等。虚拟私有网络连接可支持并实现单点登录认证过程554。单点登录过程可允许用户提供单个认证凭证集,然后其由认证服务558验证。然后,认证服务558可授权用户访问多个企业资源504,而无需用户提供认证凭证到每个单个的企业资源504。
虚拟私有网络连接可由接入网关560建立和管理。接入网关560可以包括管理、加速并提高企业资源504向移动设备502的输送的性能增强特征。接入网关还可将流量从移动设备502重新路由到公共互联网548,使得移动设备502能够访问在公共互联网548上运行的公共可用的和未受保护的应用。移动设备可经由传输网络562连接到接入网关。传输网络562可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、私有网络等。
企业资源504可包括电子邮件服务器、文件共享服务器、SaaS应用、Web应用服务器、Windows应用服务器等。电子邮件服务器可包括Exchange服务器、LotusNotes服务器等。文件共享服务器可包括ShareFile服务器等。SaaS应用可包括Salesforce等。Windows应用服务器可以包括经构建提供旨在于本地Windows操作系统上运行的应用的任何应用服务器等。企业资源504可以是基于内建式(premise-based)的资源、基于云的资源等。企业资源504可以由移动设备502直接访问或通过接入网关560来访问。企业资源504可以由移动设备502经由传输网络562来访问。传输网络562可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、私有网络等。
企业服务508可以包括认证服务558、威胁检测服务564、设备管理器服务524、文件共享服务568、策略管理器服务570、社交集成572、应用控制器服务574等。认证服务558可以包括用户认证服务、设备认证服务、应用认证服务、数据认证服务等。认证服务558可以使用证书。证书可以由企业资源504等存储在移动设备502上。存储在移动设备502上的证书可以被存储在移动设备上的加密位置,证书可以被暂时存储在移动设备502上用于在认证时使用等。威胁检测服务564可包括入侵检测服务、未经授权的访问尝试检测服务等。未经授权的访问尝试检测服务可以包括未经授权尝试访问设备、应用、数据等。设备管理服务524可以包括配置、供应、安全、支持、监测、报告和停止使用服务。文件共享服务568可以包括文件管理服务、文件存储服务、文件协调服务等。策略管理器服务570可包括设备策略管理服务、应用策略管理器服务、数据策略管理器服务等。社交集成服务572可包括联系人集成服务、协作服务、社交网络集成,诸如Facebook、Twitter和LinkedIn等。应用控制器服务574可包括管理服务、供应服务、部署服务、分配服务、撤销服务、封装服务等。
企业移动性技术架构500可包括应用商店578。应用商店578可包括未封装的应用580、预封装的应用582等。应用可以从应用控制器574被移置到应用商店578中。应用商店578可以由移动设备502通过接入网关560、通过公共互联网548等来访问。应用商店可以提供直观并易于使用的用户界面。
软件开发工具包584可以通过包装如本说明书中先前描述的应用向用户提供由用户选择的应用安全的能力。然后,使用软件开发工具包584封装的应用可用于通过使用应用控制器574将其置于应用商店578中而可供移动设备502使用。
企业移动技术体系结构500可包括管理和分析能力588。管理和分析能力588可以提供有关如何使用资源、多久使用资源等的信息。资源可包括设备、应用、数据等。如何使用资源可包括哪些设备下载哪些应用、哪些应用访问哪些数据等。资源被多久使用一次可包括应用多久被下载一次、特定的数据集被应用访问了多少次等。
图6是另一说明性企业移动性管理系统600。为了简化起见,上面参考图5所述的移动管理系统500的某些组件已被省略。图6所示的系统600的架构在许多特征方面类似于上面参考图5所述的系统500的架构,并且可以包括未在上面提到的另外的特征。
在此情况下,左手侧表示具有客户端代理604的登记的移动设备602,其与网关服务器606(该网关服务器包括接入网关和应用控制器功能)交互以访问各种企业资源608和服务609(诸如在上面右手侧所示的EXchange、Sharepoint、PKI资源、Kerberos资源、证书发行(CertificateIssuance)服务。虽然未具体示出,移动设备602还可以与企业应用商店(StoreFront)交互用于选择和下载应用。
客户端代理604充当用于在企业数据中心中托管的Windows应用/桌面的UI(用户界面)中间件,使用HDX/ICA显示远程协议来访问Windows应用/桌面。客户端代理604还支持移动设备602上的本地应用的安装和管理,诸如本地iOS或Android应用。例如,在以上图中所示的受管应用610(邮件、浏览器、封装的应用)全部是在设备上本地执行的本地应用。这种架构的客户端代理604和应用管理框架起到提供策略驱动管理能力以及诸如连接和SSO(单点登录)到企业资源/服务608的特征的作用。客户端代理604处理对企业(通常对具有SSO的接入网关(AG))、对其它网关服务器组件的主要用户认证。客户端代理604从网关服务器606获得策略以控制移动设备602上的受管应用610的行为。
本地应用610与客户端代理604之间的安全IPC链接612表示管理通道,该管理通道允许客户端代理提供通过应用管理框架614“包装”每个应用来执行的策略。IPC通道612还允许客户端代理604提供能够连接和SSO到企业资源608的凭证和认证信息。最后,IPC通道612允许应用管理框架614调用由客户端代理604所实施的用户界面功能,诸如在线认证和离线认证。
客户端代理604与网关服务器606之间的通信基本上是来自包装每个本地受管应用610的应用管理框架614的管理通道的延伸。应用管理框架614向客户端代理604请求策略信息,客户端代理604相应向网关服务器606请求该策略信息。应用管理框架614请求认证,并且客户端代理604登录进入网关服务器606的网关服务部分(也称之为NetScaler接入网关)。客户端代理604还可以调用在网关服务器606上的支持服务,其可以产生获得用于本地数据仓库616的加密密钥的输入材料,或提供其可以允许对KPI受保护资源直接认证的客户端证书,如下面将更全面解释的。
更详细地,应用管理框架614“封装”每个受管应用610。这可经由明确的构建步骤或经由构建后的处理步骤合并。应用管理框架614可以在应用610首次启动时与客户端代理604“配对”以初始化安全IPC通道并获得用于该应用的策略。应用管理框架614可以执行本地应用的策略的相应部分(诸如客户端代理登录的依赖关系和限制如何可以使用本地OS服务或本地OS服务如何可以与应用610交互的遏制策略中的某些遏制策略)。
应用管理框架614可以使用客户端代理604在安全IPC通道612上所提供的服务以促进认证和内部网络访问。对于私有和共享数据仓库616(容器)的密钥管理还可由在受管应用610和客户端代理604之间的适当的相互作用进行管理。仓库616可以只是在在线认证后可用,或如果策略允许,则可以在离线认证后可用。仓库616的第一次使用可以要求在线认证,并且离线访问可以在再次要求在线认证前被限制在至多策略更新阶段。
对内部资源的网络访问可以通过接入网关606从独立的受管应用610直接发生。应用管理框架614负责精心安排代表每个应用610的网络访问。通过提供遵循在线认证获得的合适时间限制次级凭证,客户端代理604可以促进这些网络连接。可以使用多种网络连接模式,诸如逆向网络代理连接以及端到端VPN式隧道618。
邮件和浏览器受管应用610具有特殊状态并且可以使用一般可能不适合随机封装应用的设施。例如,邮件应用可以使用特殊后台网络访问机制,该访问机制允许邮件应用在延长的时间段内访问交换而无需完全AG登录。浏览器应用可以使用多种专用数据仓库以分隔不同种类的数据。
这种架构支持各种其它安全特征的并入。例如,在某些情况下,网关服务器606(包括其网关服务)将不需要验证AD密码。这可以留给企业来判断AD密码是否用作某些情况下的某些用户的认证因素。如果用户在线或离线(即,连接到网络或未连接到网络),则可以使用不同的认证方法。
加强认证的特征在于网关服务器606可以识别经允许访问需要强认证的高度机密数据的受管本地应用610,并且确保对这些应用的访问仅在执行适当的认证后被允许,即使这意味着在先前的较弱级别登录后用户需要再次认证。
这种解决方案的另一安全特征是移动设备602上的数据仓库616(容器)的加密。可加密仓库616,使得所有在设备上的数据,包括文件、数据库和配置,得到保护。对于在线仓库,密钥可存储在服务器(网关服务器606)上,且对于离线仓库,密钥的本地副本可由用户密码保护。当数据被本地存储在设备602上的安全容器616中时,优选最少使用AES256加密算法。
还可实现其它安全容器的特征。例如,日志特征可以被包括,其中,发生在应用610内的所有安全事件被记入并报告给后端。可以支持数据擦除,诸如如果应用610检测到篡改,则相关的加密密钥可以用随机数据改写、没有留下对用户数据被破坏的文件系统的提示。屏幕截图保护是另一特征,其中,应用可以防止任何数据被存储在屏幕截图中。例如,密钥窗口的隐藏属性可以被设置为“是”。这可能会导致屏幕上当前显示的无论什么内容将被隐藏,产生任何内容将通常驻留其中的空白屏幕截图。
可以防止本地数据转移,诸如防止任何数据被本地转移到应用容器外面(例如通过复制本地数据或发送本地数据到外部应用)。可以运行键盘缓存特征以禁用敏感文本字段的自动更正特征。SSL证书验证可以是可操作的,使得应用具体验证服务器的SSL证书,而不是将其存储在密钥链中。可使用加密密钥生成特征,以便使用用户提供的密码或生物辨识数据生成用于加密设备上的数据的密钥(如果要求离线访问)。如果不需要离线访问,则可以与随机生成并存储在服务器侧上的另一密钥“异或”。密钥导出功能可操作,使得从用户密码生成的密钥使用KDF(密钥导出功能,尤其是PBKDF2)而不是创建它的密码散列(cryptographichash)。密码散列使得密钥易受蛮力或字典攻击。
此外,一个或多个初始向量可用于加密方法中。初始化向量将导致相同的加密数据的多个副本产生不同的密文输出,防止重放和密码攻击。如果用于加密数据的特定初始化向量是未知的,则这甚至也将防止攻击者用偷来的加密密钥解密任何数据。此外,可以使用认证接着解密,其中,应用数据只在用户已在应用内被认证后才被解密。另一特征可能涉及到存储器中的敏感数据,只有当需要敏感数据时,该敏感数据会被保存在存储器中(而不是在磁盘中)。例如,登录凭据可以在登录后从存储器擦除,并且加密密钥和在objective-C的示例变量中的其它数据不被存储,因为它们可以很容易被参考。相反,可为这些手动分配存储器。
可实现不活动超时,其中在不活动的策略定义的周期之后,终止用户会话。
可以以其它方式阻止应用管理框架614的数据泄露。例如,当应用610被放在后台中时,存储器可以在预定(可配置)时间段后被清除。当被后台化时,可以对应用的最后显示屏幕拍快照以加快前台化过程。屏幕截图可能包含机密数据,并且因此应被清除。
另一安全特征涉及使用OTP(一次性密码)620,无需使用访问一个或多个应用的AD(活动目录)622密码。在某些情况下,某些用户不知道(或不允许知道)他们的AD密码,那么这些用户可以使用OTP620来认证,诸如通过使用像SecurID的硬件OTP系统(OTP也可以由不同的供应商来提供,例如Entrust或Gemalto)。在某些情况下,在用户与用户ID认证之后,用OTP620发送文本到用户。在某些情况下,这可以仅在在线使用时,利用单一字段的提示来实施。
对于针对其经由企业策略允许离线使用的那些应用610,离线密码可以被实施用于离线认证。例如,企业可能想要StoreFront以这种方式被访问。在此情况下,客户端代理604可以要求用户设置自定义的离线密码,并且不使用AD密码。网关服务器606可以提供策略以控制和执行关于最小长度、字符类组成和密码年限的密码标准(诸如通过标准的Windows服务器密码复杂性要求所描述的,尽管这些要求可以被更改)。
另一特征涉及到作为次级凭证用于特定应用610的客户端侧证书的启用(用于经由应用管理框架微VPN特征访问KPI受保护web资源的目的)。例如,应用可利用该种证书。在这种情况下,可支持使用ActiveSync协议的基于证书的认证,其中来自客户端代理604的证书可由网关服务器606检索,并在密钥链中使用。每个受管应用可具有一个相关联的客户端证书,通过在网关服务器606中定义的标签识别。
网关服务器606可以与企业特殊目的web服务交互,以支持客户端证书的颁布,以允许相关的受管应用认证于内部PKI受保护资源。
可增强客户端代理604和应用管理框架614,以支持获取和使用客户端证书,以用于认证到内部PKI保护的web资源。可支持多于一个的证书,诸如以匹配各种安全等级和/或分离的要求。该证书可以被邮件和浏览器受管应用使用,并最终被随机包装的应用使用(假设那些应用使用web服务方式的通信模式,其中这对于调解http请求的应用管理框架是合理的)。
在iOS上的应用管理框架客户端证书支持可依赖于将PKCS12BLOB(二进制大型对象)导入每个受管应用中的iOS密钥链中,以用于每个使用周期。应用管理框架客户端证书支持可以使用具有专用存储器内密钥存储的HTTPS实施。客户端证书将不再存在于iOS密钥链中,并且除了潜在的存在于受强保护的“只在线”数据值中以外,不会被存续。
通过要求移动设备602被企业认证,相互SSL也可以被实施以提供另外的安全,并且反之亦然。也可以实施用于对网关服务器606认证的虚拟智能卡。
有限的和全部的Kerberos支持可以是额外的特征。完全支持特征涉及使用AD密码或受信任的客户端证书进行完全Kerberos登录到活动目录(AD)622,并获得Kerberos服务票据以对HTTP协商认证询问做出响应的能力。有限的支持特征涉及在AGEE中的约束授权,其中AFEE支持调用Kerberos协议过渡,因此其可获取和使用Kerberos服务票据(针对于受约束的授权)以响应于HTTP协商认证挑战。这种机制以逆向web代理(也叫做CVPN)模式工作,并且当http(但不是https)连接以VPN代理和以微VPN模式工作时。
另一特征涉及应用容器锁定和擦除,这可在检测到越狱和获取了管理员权限(root)时自动出现,并且作为来自管理控制台的推送命令出现,并且可以包括远程擦除功能(即使当应用610不运行时)。
可支持企业应用商店和应用控制器的多站点架构或配置,允许在出现故障的情况下从几个不同位置之一服务用户。
在一些情况下,受管应用610可以被允许经由API(示例OpenSSL)访问证书和专用密钥。企业的受信任受管应用610可以被允许利用应用的客户端证书和专用密钥来执行指定的公共密钥操作。各种用例可以被识别并因此受信任,诸如当应用像浏览器一样表现并且不需要证书访问时、当应用读取“我是谁”的证书时、当应用使用证书构建安全对话令牌时,以及当应用使用专用密钥用于重要数据(例如,事务日志)的数字签名或用于暂时数据加密时。
受管应用中普遍存在的协作
虽然聊天应用已经存在,但是他们通常是独立的应用,需要用户起动他们并接着频繁地改变背景以实施聊天活动。本公开描述了普遍存在的协作,其通过经由客户端代理通信的受管应用和一个或多个策略发生,使得不是使用单独的应用实施协作,而是各种协作特征可能被直接嵌入或注入受管应用中。前述系统的各种示例的至少一个优点是用户不需要通过人为地起动或切换到提供协作功能的另一个应用来改变背景。相反,之前可能不具有协作功能的应用现在当其变得受管时可自动地包括各种协作特征。
协作特征的示例包括,但不限于,文本聊天特征、视频聊天特征(如,通过网络摄像机和送话器)、音频聊天特征(如,通过VoIP)、临场特征、前述的结合和/或其它特征。例如,在受管应用中的协作特征可包括文本聊天特征以及临场特征。在另一个示例中,受管应用可显示与图8的图形用户界面800(GUI)类似的菜单以允许用户在多个协作选项中选择,诸如,文本聊天802、音频聊天804、视频聊天806和临场808。
参考图13,在一个示例中,客户端计算设备1302可执行受管应用1310A。受管应用1310A可由直接或间接与一个或多个服务1314和/或服务器机器1306通信的客户端代理1312管理(如,CITRIXMDX代理)。例如,计算机可读指令(如,软件、固件或其它逻辑程序)可储存在图5的系统中示出的各种设备中的一个或多个存储器中(如,非暂时计算机可读介质)。计算机可读指令可帮助客户端计算设备1302、1304访问策略信息以确定是否结合受管应用的呈现(如,显示)来显示一个或多个协作特征。在一个示例中,策略信息可促使客户端代理1312确定受管应用1310A是在安全(如,公司网络)还是非安全背景中执行并基于该策略相应地管理协作特征--如,当在安全背景下但不在非安全背景下时,协作特征可在受管环境中呈现。在另一示例中,登记的设备(如,客户端计算设备1302)可包括与网关服务器606(其可包括访问网关和应用控制器功能)交互的客户端代理604以访问各种企业资源608和服务609,如在图6中所示。服务的示例可以是协作服务1314。同样地,资源的示例可以是协作服务器1306。客户端代理1312和应用管理框架,如图5中所示,可提供策略驱动的管理能力和特征到企业资源/服务。在一个示例中,客户端代理1312可作为UI(用户界面)中间件用于在企业数据中心托管的Windows应用/桌面。客户端代理1312还可支持在客户端计算设备1302上的本机应用的安装和管理。客户端代理1312可从服务器(如,网关服务器606)获得策略,以控制客户端计算设备1302上的受管应用1310A的行为。此外,应用管理框架614可向客户端代理604请求策略信息,该客户端代理604相应向网关服务器606请求策略信息。在一些示例中,应用管理框架614可“封装”受管应用1310A。同样地,应用管理框架614可强制执行本地应用的一个或多个策略的相关部分,诸如客户端注册依赖关系和可限制本地操作系统(OS)服务可被使用的方式或限制它们可与应用1310A交互的方式的一些遏制策略。
类似地,基于策略信息,协作特征的一个或多个特征可能不被呈现。例如,如果客户端计算设备1302被确定位于高度安全(如,顶级机密办公室大楼)位置,则协作特征的摄像机功能可能被禁用以阻止图像的非授权传输。可选地,协作特征的视频和/或音频特征可基于由客户端代理1312访问的策略信息中的一个或多个因素(如,背景)被启用或禁用。一个或多个策略可被创建并存储以帮助实现前述能力(如,协作特征的打开或关闭方面)。
在涉及图13的系统的一个示例中,客户端代理1312可经由网络(如,广域网1322)与本地协作服务1314和/或远程协作服务器1306协同。协作服务1314可使用一个或多个现有服务(如,认证服务558、威胁检测服务564、设备管理器服务524、文件共享服务568、策略管理器服务570、社交整合服务572、应用控制器服务574、用户认证服务、设备认证服务、应用认证服务、数据认证服务、配置服务、设置服务、安全服务、支持服务、监测服务、报告服务、停运服务、其组合和/或类似服务)以提供用一个或多个协作特征在客户端设备1302上呈现的受管应用。
尽管受管应用的本机版本(如,对应于受管应用的应用的实际的源代码)原始地不包括协作特征的源代码,通过与客户端代理1312的协调,受管应用1310A、1310B可提供协作特征。应用可被封装以将应用转换为能够提供,尤其是,协作特征的受管应用。客户端代理1312可使协作特征结合受管应用的其它受管特征被显示,这样为用户提供共享的、单一的背景,其中,用户可与受管应用交互同时也与协作特征交互。例如,当用户将受管应用最小化时,协作特征也可被自动地最小化。此外,在一些示例中,受管应用和/或客户端代理可包括一个或多个配置文件(如,存储配置信息的一个或多个数据块或二进制大型对象)。配置文件可包括风格、字体和其它信息以结合受管应用管理协作特征的呈现。
在一些示例中,协作特征可并入普遍存在的特性,使得在相同的客户端计算设备1302上执行的不同受管应用1310A、1310B之间的协作特征的用户体验可实质上是无缝的。在一个示例中,例如,客户端代理1312可接收在协作服务1314处的存储器中维护的会话信息。在客户端计算设备处的协作服务的初始化时,客户端代理1312初始可从协作服务1314接收会话信息。协作服务1314可能已经从协作服务器1306接收会话信息1318B。
会话信息可包括配置文件(如,存储配置信息的一个或多个数据块或二进制大型对象),其包括色彩信息、风格信息、字体信息、格式化信息和/或其它信息中的一个或多个。另外,会话信息可包括包含可出现在用户联系人列表和/或可在当时在线的一个或多个协作者的列表。会话信息还可包括用户之前协作会话的历史记录和/或日志,包括,例如,与一个或多个协作者的近期对话的历史。会话信息还可包括对应于客户端计算设备1302的特定用户的独特地识别信息。
参考图14,在相同的客户端计算设备1302上执行的不同的受管应用1310A、1310B的每个可呈现协作特征的入口点(步骤1402)。受管应用的协作特征1408可基于输入进行监听/发起/控制/管理。例如,协作特征1408可等待另一协作者来联系用户,或等待用户发起与其他人的IP通话,或其它特征。受管应用环境确保相同的会话信息以保证无缝的、整合的协作体验。当协作特征在受管应用1310A、1310B中是活动的时,客户端代理1312可负责对会话信息1318B的更新进行协同。例如,客户端代理1312可检查(在步骤1404中)任何协作会话在客户端计算设备1302上是否是活动的。如果是,在步骤1406中,客户端代理1312可协同取回和加载最后的活动的会话信息。同样地,最新的会话信息可用于激活在协作特征1408处的会话。甚至当没有受管应用在主动地使用协作特征时,客户端代理1312可促进会话信息作为后台过程经由协作服务1314维护。因此,如果客户端代理1312接收到新的受管应用1310B的启动的通知,协作特征的之前的状态可经由所维护的会话信息被恢复并被显示。换句话说,客户端代理1312能够通过单一的、持续的会话信息来提供协作特征在受管应用1310A、1310B之间的漫游。
此外,协作特征的功能可使用一个或多个会话信息。例如,参考图10,客户端代理可使用会话信息1318B来确定协作者的列表以在客户端计算设备1302的显示器上呈现。客户端代理1312还可指示所显示的协作者1002中的一个或多个当前是否在线(即,协作中的临场特征)。客户端代理1312可如在设备1304中直接地或如在设备1302中间接地与协作服务器1306通信以确定特定协作者是否在线。协作服务器1306可将这种信息维护在,尤其是,服务器1306处的存储器中。类似地,客户端代理1312可使用会话信息(如,配置文件)来结合受管应用1310A呈现协作特征。
尽管本文提供的一些示例提到客户端代理1312和协作服务1314,在一些示例中,诸如就客户端计算设备1304而言,客户端代理和协作服务1316可被合并到单一功能模块中。换句化说,前述客户端代理架构可被扩展以直接整合协作服务的功能。同样的,图13的说明性系统描绘了经由中央协作服务器1306彼此通信的协作服务1314、1316;然而,在一些示例中,协作服务1314、1316可被配置为经由例如网络(如,局域网1324)彼此直接通信。在这种示例中,由协作服务器1306提供的一些功能可被合并到协作服务1314、1316中的一个或多个。
另外,在一个示例中,系统的管理可经由管理控制台1308实施。管理控制台1308可以是服务器机器(如,web服务器),其提供用户界面,通过该用户界面用户(如,管理员、对应于受管应用的本机应用的程序员、最终用户等)可配置协作服务/服务器用于与受管应用的更无缝地整合。另外,与一个或多个客户端计算设备1302、1304通信的管理控制台508可用于推送命令到设备,诸如远程擦除命令。同样地,管理控制台508可被用户使用以更新储存在资源服务器1306或服务1314处的策略和/或其它信息(如,配置文件)。
此外,管理控制台1308可允许,尤其是,配置信息/策略文件的创建和/或更新,该配置信息/策略文件可用于指定如何/何时结合特定的受管应用和背景呈现协作特征。例如,第一受管应用1310A的程序员/作者可指定将用于结合该第一受管应用1310A呈现协作特征的特定色彩、风格、字体等。同样地,没有实际上在对应于受管应用1310A的应用中的已经编程的本机协作特征,程序员/作者/设计者/用户可提供风格化的信息用于协作特征的呈现。同样地,另一个受管应用1310B的作者/程序员/设计者/用户可提供用于与他们的受管应用1310B一起呈现协作特征的他们自己的配置信息/文件。配置文件可提供通用风格信息用于受管应用1310B的所有用户,或可提供指定哪个信息应用到哪个呈现的规则和/或策略。
此外,对于对应于受管应用1310A的应用的、希望进一步集成和/或利用通过客户端代理1312提供的协作特征的那些程序员/作者,应用程序接口(API)(或软件开发包(SDK))可被安排为可用以与客户端代理1312和/或协作服务1314接驳。在一些示例中,在结合受管应用1310A的呈现自动地呈现协作特征/应用前,客户端代理1312可通过与受管应用的接口来为受管应用1310A提供控制协作特征/与协作特征交互(如,修改协作特征被显示的方式/时间/位置)的机会。例如,受管应用被提供新进入的文本聊天消息的通知。通过所提供的API/SDK,受管应用1310A基于特定规则/策略(如,如果受管应用1310A是销售演示文稿应用并且该应用在正式的演示模式,则受管应用可与协作服务1314/客户端代理1312接驳以暂时地阻止新进入的聊天消息的显示)可阻止新的文本聊天消息的显示。类似地,其它钩子可被创建到协作特征内以使受管应用1310A、1310B可使用策略/规则来对协作特征的呈现/使用具有更多的控制。另外,基于在协作特征中的活动(如,当受管应用检测到特定协作者的在线状态时,其可显示适当的信息或生成可听见的通知),钩子可允许受管应用1310A、1310B修改其行为。例如,如果客户端计算设备1302的用户在使用受管电子表格应用编辑电子表格并且电子表格的共同作者(如,基于电子表格的历史日志的之前版本)中的一个出现在线上,则受管应用可钩联协作特征以自动地生成特殊通知以通知用户其他人的临场。其它规则/策略在本文预计用于将受管应用钩联协作特征。
在涉及图13的一个示例中,在客户端计算设备1302上执行的客户端代理1312可接收在客户端计算设备1302上的第一受管应用1310A的启动的通知。在一个示例中,客户端代理1312可确定用于受管应用的背景可包括将运行受管应用的客户端计算设备1302的位置、预定的应用是否在客户端计算设备1302上运行的决定、用于客户端计算设备1302的一个或多个网络连接以及用于客户端计算设备1302的一个或多个设置。这些背景中的一个或多个可与策略(如,客户端代理1312可访问的所储存的策略)相比较以确定受管应用的模式(如,受管或非受管)。根据模式和/或背景,客户端代理1312可(或不可)结合第一受管应用1310A的呈现在客户端计算设备1302上呈现协作特征。在一个示例中,呈现可导致图形902(见图9)在客户端计算设备1302的屏幕上被显示,其中,之前这种图标不能仅由第一受管应用1310A呈现。此外,客户端代理1312可接收协作特征的会话信息。会话信息可帮助客户端代理1312呈现带有协作者列表的对话框(见,如,图10)或用于显示与另一协作者的近期对话的历史(见,如,图11)。同时,客户端代理1312还可发送更新信息到协作服务1314以更新会话信息。例如,由于用户与协作特征交互,更新的信息可被发送到协作服务1314,以使更新可被传播到其它协作特征。
即使当第一受管应用1310A被关闭/终止时,会话信息和协作服务可作为客户端计算设备1302的计算机存储器中的后台过程持续。同样地,当客户端代理1312接收客户端计算设备1302上的第二受管应用1310B的启动的通知时,客户端代理1312和/或协作服务1314可访问所存储的会话信息并结合第二受管应用1310B的呈现来呈现协作特征/应用。换句话说,假设在线的协作者没有改变状态,结合第二受管应用1310B呈现的联系人列表1002可类似于结合第一受管应用1310A所呈现的。同样地,如果用户打开与在第一受管应用1310A的背景中与该用户之前对话时的相同的协作者的文本聊天对话框,尽管用户在第二受管应用1310B的背景中,对话框1102可示出之前的、所保存的背景。同样地,协作特征/应用可在多个受管应用之间出现为普遍存在的。
关于非受管应用,客户端计算设备1302可以非受管的方式启动本机应用。换句话说,客户端代理1312促进非受管模式中的应用的呈现,以使一些或所有协作特征不被呈现/不可用。可选地,客户端代理1312可能在非受管模式期间不出现并且本机应用可仅启动实际上之前被编码进应用的那些特征。在一些实例中,应用可运行在部分地受管模式中。然后,应用可类似于以受管模式运行的应用运行,但可以不包括以受管模式运行的应用的所有方面。根据所确定的背景,以部分受管模式运行的应用可包括以受管模式运行的应用的方面和以非受管模式运行的应用的方面。
在非受管模式中,应用1310A可能不具有经由协作服务1314或协作服务器1306提供给它的前述的协作特征。同样的,如果受管应用1310A、1310B将例如丢失网络连接性,使得模式从受管变为非受管(或反之亦然),则客户端代理可不呈现协作特征。例如,协作特征可被显示为灰色的和/或指示为暂时不可用。在另一个示例中,图标902可暂时地从用户的屏幕中消失。在又一个示例中,当网络连接性背景改变(即,从连接到非连接),依赖于网络连接性的诸如协作的那些特征可暂时不可用并被指示为如此。最后,在又一示例中,诸如移动设备502的客户端计算设备的位置可被确定。该位置可以通过GPS、信号三角测量或任何其他合适或以其它方式已知的方式来确定。该位置可以包括用于受管应用1310A的背景。所确定的位置可与位置策略比较。例如,策略可定义当在某一位置中时,例如,当在公司场所时,受管应用1310A可以受管模式运行。相应地,客户端代理可结合受管应用1310A呈现协作特征。
在一些示例中,当应用在运行时,受管应用可从受管应用切换到非受管应用。当运行时一个或多个背景可被监测用于受管应用并且背景的改变可基于该监测被检测。例如,可为受管应用改变一个或多个背景,并且策略可定义用于待被改变受管应用的模式。当受管应用的模式改变基于该监测被检测时(如,之前形成用于在受管模式和非受管模式之间选择的基础的背景信息有变化),受管应用的模式被切换到更新的模式。
尽管之前的示例涉及客户端代理1312禁用一个或多个协作特征的情况,在其它示例中,客户端代理1312的禁用动作可基于一个或多个策略/输入/条件来酌情决定。例如,一个或多个策略/规则可由受管应用1310A和/或客户端代理1312实现以获取期望的结果。例如,基于位置的策略可被调用以阻止特定时间(如,在驾驶交通工具时)期间的协作特征的自动弹出。交通工具中的GPS设备可用于检测驾驶行为并在该动作期间阻止协作特征。同样地,基于活动的策略、基于设备的策略、基于设备1302是否具有网络连接的策略、前述的一个或多个的结合和其它策略/规则。这种策略可根据适当性在关到开、开到关之间切换协作特征。
在涉及基于位置的策略/规则的一个示例中,客户端代理1312可接收受管应用1310A的启动的通知。协作服务器1306可在其存储器1318B中维护所储存的涉及与受管应用1310A相关的一个或多个协作特征的规则。同样地,客户端代理可通过协作服务1314访问与受管应用1310A相关的一个或多个所储存的规则,以确定规则/策略是否被满足。规则/策略可包括一个或多个因素,诸如基于位置的背景、活动等级/类型、设备特性、网络连接性、前述因素的组合或其它因素。假设客户端代理1312通过协作服务1314检测到因为例如一个因素的值被负面地改变而导致一个或多个所储存的规则不被满足,则客户端代理1312可阻止协作特征结合受管应用1310A被呈现。同样地,规则/策略可指示协作特征是否被许可。同时,具有不同组的所储存的规则/策略的不同的受管应用1310B可与呈现协作特征的客户端代理1312一起启动。同时,协作服务器1306可储存默认的规则/策略,其可应用到没有限定的规则/策略的那些受管应用。
在一些示例中,当受管应用在运行时,受管应用可被切换到非受管应用。当运行时一个或多个背景可被监测用于受管应用并且模式的切换可基于该监测被引起。例如,可改变受管应用的一个或多个背景,并且策略可定义用于待被改变的受管应用的模式。当基于该监测检测到受管应用的模式的改变时(如,形成用于选择特定模式的基础的信息/背景有变化),受管应用的模式被切换到更新的模式。
参考图7A和图7B,说明了可根据本文描述的一个或多个说明性方面通过在客户端计算设备1302、1304上执行的一个或多个代理/服务实施的步骤的流程图。应用(如,受管应用1310A)可在客户端计算设备1302上启动(步骤714)。如果协作服务还没有作为后台过程线程执行,客户端代理可初始化(步骤716)协作服务1314。协作服务1314可与协作服务器1306通信来确定(步骤718)会话信息,诸如,但不限于,联系列表、联系类型和其它信息。会话信息可被下载到客户端计算设备1302以在(步骤720)会话还未激活时起动会话。如果会话还未激活,客户端代理1312可将图标902呈现/显示(步骤728)覆盖在被启动的受管应用1310A上。如果用户激活(步骤722)用户视频、文本或音频聊天的会话,则客户端代理通过协作服务可呈现适当的内容--如,可显示(步骤724)具有文本聊天的对话框1102,如图11所示。在视频聊天或音频聊天的示例中,媒体播放器可被激活并且适当的多媒体可被输出到用户。当用户关闭(步骤726)文本聊天对话框1102时,会话信息和协作服务1314可作为客户端计算设备1302上的后台过程保持。
作为在后台过程中等待的结果,如果一些人经由协作特征联系(步骤708)客户端计算设备1302的用户,通知1202可在用户的显示器上被呈现,诸如图12中。标记可在图标1202上示出(步骤710)以指示一个新的消息在等待用户的审阅。用户可选择打开该消息并响应(步骤712)该消息,或简单地忽略该消息。此外,在一些示例中,用户可从多个协作特征/类型中选择(步骤702),诸如在图8中示出的那些。然后,用户可选择(步骤704)用户希望回应的联系人/协作者,诸如在图10中。结果,会话可在用户和所选择的协作者之间开始(步骤706)。同时,如果用户退出受管应用并启动另一个受管应用,则协作会话可持续。受管应用不需要并常常不会知道彼此。相反,通过客户端代理1312和协作服务1314/协作服务器1306,系统在不同的受管应用之间提供无缝的、持续的协作特征。
在一个示例中,背景可包括被配置成访问安全账户的受管应用,诸如被配置成访问安全银行账户的银行业务应用。该背景可与存储的管理策略进行比较。例如,所存储的策略可定义银行业务应用,其被配置为访问将作为具有诸如视频聊天或文本聊天的协作特征的受管应用运行的银行账户。也可包括额外的背景和策略。随后,受管应用1310A可在确定的模式中运行并且适当的协作特征可结合受管应用1310A被呈现。受管应用1310A可作为安全本机应用514、通过应用启动器518执行的远程应用522、通过应用启动器518执行的虚拟化应用526等运行。在另一个示例中,运行在受管模式中的应用可访问不能被非受管应用访问的门户的部分。
虽然具有涉及受管应用的许多前述示例没有提到虚拟应用,在一些示例中,受管应用可以是使用远程表示协议以与虚拟化服务器通信的虚拟应用。同样地,当在虚拟化服务器处执行时,应用1310A可在客户端计算设备1302处被呈现在用户显示器上。在这种示例中,客户端代理1312可与虚拟化服务器通信并可通过客户端代理结合应用1310A的呈现自动地协同协作特征的呈现。客户端代理1312可促进会话信息与具有协作特征的受管应用1310A的通信。此外,当第二应用(如,使用远程表示协议呈现的第二虚拟应用1310B)在客户端计算设备1302上启动时,客户端代理可接收通知。客户端代理可结合第二应用1310B的呈现来呈现协作特征并将会话信息发送到协作特征1310B。同时,协作服务可在虚拟化服务器处执行(或远离客户端计算设备1302的其它服务器)以同步和/或协同在应用1310A、1310B的每个中的协作特征的呈现。因此,协作特征的用户体验更无缝,因为尽管应用1310A、1310B本身可能是不同的,协作特征在它们中的使用是相同的。换句话说,该布置允许协作特征跨第一应用1310A和第二应用1310B执行单一背景。类似于涉及受管应用的示例,协作特征可包括文本聊天、视频聊天、临场和本文描述的其它特征。另外,系统可提供一个或多个配置文件(如,配置二进制大型对象),包括关于协作特征如何(如,美观地)被呈现的信息,如本文所描述的。
在一个示例中,客户端计算设备1302可执行受管应用1310A。受管应用1310A可由直接或间接与一个或多个服务1314和/或服务器机器1306通信的客户端代理1312管理。例如,计算机可读指令(如,软件、固件或其它逻辑程序)可储存在图5的系统中示出的各种设备中的一个或多个存储器中(如,非暂时计算机可读介质)。计算机可执行指令可帮助客户端计算设备1302、1304使用远程表示协议(如,独立的计算机架构(ICA)协议或其它协议)连接到在虚拟化服务器处托管的虚拟环境中的实例化的应用。例如,受管应用可在虚拟化服务器上执行并经由远程表示协议(如,独立的计算机架构(ICA)协议)在客户端计算设备1302上呈现。ICA协议已经在诸如,但不限于,CITRIXXenApp和XenDesktop的产品中使用以隔离应用逻辑(其可在远程系统上运行,有时在数据中心中)和表示逻辑(在客户端计算设备1302、1304上)。ICA协议可将来自客户端计算设备的输入/输出组件(如,键盘、鼠标、音频等)的输入发送到远程虚拟化系统并通过网络接收来自远程虚拟化系统的输出(如,视频、声音等)。在客户端计算设备1302、1304上,客户端代理/模块(如,RECEIVERTM)可用于处理远程表示协议业务。在一些示例中,基于期望的分配量,应用逻辑和表示逻辑可各自处于服务器和客户端,然而,在可选的示例中,应用逻辑可跨越服务器和客户端,因此将更多的工作负载和处理负担偏移至客户端机器。尽管附图说明在服务器和客户端机器之间的逻辑的特定分配,本公开预计各种系统组件之间的分配的不同等级。
另外,虽然已经用对结构特征和/或方法行为特定的语言描述了主题,但是应当理解,在所附权利要求中定义的主题未必限制于上述特定特征或行为。相反,上述的具体特征和动作作为所附权利要求的示例性实现来描述。例如,尽管本文的许多示例涉及配置文件/信息和会话信息,应理解,这些中的一个或多个可被合并到组合的文件/策略/信息中,或可选地,分裂或分布在分开的文件/策略/信息之间。同样地,尽管图13说明了客户端代理1312和受管应用1310A、1310B是分开的,在一些示例中,客户端代理1312可被示出为位于受管应用1310A和1310B中。另外,受管应用1310A和受管应用1310B可彼此直接通信(在图13中未示出,但其可由在图13中连接两个块的虚线描绘)。此外,当适合时,被描述为在图13中的特定模块或块中操作的功能可被重新定位以在图13中的不同的模块和/或块中发生。

Claims (20)

1.一种方法,包括:
用协作特征封装第一受管应用;
基于与客户端计算设备相关的策略,通过客户端代理确定用于在所述客户端计算设备上执行的所述第一受管应用的受管模式,其中,多个模式至少包括非受管模式和受管模式;以及
响应于确定所述第一受管应用的所述受管模式,结合所述第一受管应用的呈现来呈现所述协作特征。
2.如权利要求1所述的方法,还包括:
通过所述客户端代理与所述协作特征通信会话信息;
通过所述客户端代理确定在所述客户端计算设备上的第二受管应用的启动,其中,所述第二受管应用操作在受管模式中;
通过所述客户端代理将所述会话信息发送到与所述第二受管应用关联的协作特征;以及
通过所述客户端代理许可结合所述第二受管应用的呈现来呈现所述协作特征。
3.如权利要求2所述的方法,其中,结合所述第二受管应用呈现所述协作特征包括呈现以下至少一个:视频聊天特征、临场特征和文本聊天特征。
4.如权利要求2所述的方法,其中,结合所述第二受管应用呈现所述协作特征包括呈现音频聊天应用。
5.如权利要求2所述的方法,其中,在封装所述第一受管应用前,所述第一受管应用缺少所述协作特征。
6.如权利要求2所述的方法,还包括:
在结合所述第一受管应用的呈现来呈现所述协作特征前,给所述第一受管应用提供接口以控制所述协作特征的呈现。
7.如权利要求2所述的方法,其中,结合所述第一受管应用的呈现来呈现所述协作特征包括:
通过所述客户端代理访问与所述第一受管应用相关的配置文件;以及
根据所述配置文件呈现所述协作特征。
8.如权利要求7所述的方法,其中,结合所述第二受管应用的呈现来呈现所述协作特征包括:
通过所述客户端代理访问与所述第二受管应用相关的第二配置文件;以及
根据所述第二配置文件呈现所述协作特征。
9.如权利要求7所述的方法,其中,所述配置文件包括色彩和风格信息,并且结合所述第一受管应用的呈现来呈现所述协作特征包括使用至少所述色彩和风格信息呈现图形用户界面。
10.如权利要求2所述的方法,其中,所述会话信息包括列表,所述列表包括至少一个协作者和与所述至少一个协作者的近期对话的历史。
11.如权利要求2所述的方法,还包括:
由所述客户端代理通过网络将所述会话信息发送到协作服务器机器,用于存储在所述协作服务器机器处的计算机存储器中。
12.如权利要求2所述的方法,其中,所述协作特征跨所述第一受管应用和所述第二受管应用执行。
13.如权利要求2所述的方法,还包括:
由所述第二受管应用通过API与所述协作特征接驳,拦截结合所述第二受管应用的呈现来呈现所述协作特征。
14.一种方法,包括:
通过在客户端计算设备上执行的客户端代理,确定在所述客户端计算设备上的第一受管应用的启动,其中,涉及协作特征的至少一个储存的策略与所述第一受管应用的背景相关;
通过所述客户端代理访问涉及所述协作特征的所述至少一个储存的策略,其中,所述至少一个储存的策略包括多个背景,所述多个背景确定所述至少一个储存的策略是否被满足;
通过所述客户端代理检测所述第一受管应用的背景,
通过所述客户端代理将所述第一受管应用的背景与所述至少一个储存的策略进行比较以确定所述至少一个储存的策略被满足;
通过所述客户端代理激活所述协作特征用于结合所述第一受管应用的呈现来进行呈现;
在所述客户端计算设备处,结合第一受管应用的呈现来呈现所述协作特征。
15.如权利要求14所述的方法,还包括:
通过所述客户端代理接收来自与所述客户端计算设备相关的协作服务的会话信息;以及
将所述会话信息用于所述第一受管应用。
16.如权利要求14所述的方法,其中,通过所述客户端代理检测所述第一受管应用的背景包括:检测所述客户端计算设备的位置的变化以使所述至少一个储存的策略被满足。
17.如权利要求14所述的方法,其中,结合所述第一受管应用的呈现而呈现的所述协作特征是文本聊天应用、视频聊天应用、音频聊天应用和临场特征中的一个。
18.一种或多种储存了计算机可执行指令的非暂时的计算机可读介质,当所述计算机可执行指令被一个或多个处理器执行时,所述计算机可执行指令促使协作服务器实施包括以下的步骤:
发送会话信息到在客户端计算设备上执行的协作服务;
储存与安装在所述客户端计算设备上的第一受管应用有关的第一配置文件;
储存与安装在所述客户端计算设备上的第二受管应用有关的第二配置文件;
结合所述第一受管应用的呈现,促使在所述客户端计算设备上执行的所述协作服务基于在所述第一配置文件中的风格信息来呈现协作特征;以及
结合所述第二受管应用的呈现,促使在所述客户端计算设备上执行的所述协作服务基于在所述第二配置文件中的风格信息来呈现所述协作特征。
19.如权利要求18所述的一种或多种非暂时的计算机可读介质,其中,所述协作特征是文本聊天应用、视频聊天应用、音频聊天应用和临场特征中的一个。
20.如权利要求18所述的一种或多种非暂时的计算机可读介质,其中,所述会话信息包括形成联系人列表的多个协作者。
CN201480032801.4A 2014-03-21 2014-03-25 受管应用中普遍存在的协作 Expired - Fee Related CN105308573B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910107988.4A CN109828854A (zh) 2014-03-21 2014-03-25 受管应用中普遍存在的协作

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/221,958 US9628329B2 (en) 2014-03-21 2014-03-21 Ubiquitous collaboration in managed applications
US14/221,958 2014-03-21
PCT/US2014/031717 WO2015142361A1 (en) 2014-03-21 2014-03-25 Ubiquitous collaboration in managed applications

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910107988.4A Division CN109828854A (zh) 2014-03-21 2014-03-25 受管应用中普遍存在的协作

Publications (2)

Publication Number Publication Date
CN105308573A true CN105308573A (zh) 2016-02-03
CN105308573B CN105308573B (zh) 2019-03-01

Family

ID=50625189

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910107988.4A Pending CN109828854A (zh) 2014-03-21 2014-03-25 受管应用中普遍存在的协作
CN201480032801.4A Expired - Fee Related CN105308573B (zh) 2014-03-21 2014-03-25 受管应用中普遍存在的协作

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910107988.4A Pending CN109828854A (zh) 2014-03-21 2014-03-25 受管应用中普遍存在的协作

Country Status (4)

Country Link
US (3) US9628329B2 (zh)
EP (1) EP3120246A1 (zh)
CN (2) CN109828854A (zh)
WO (1) WO2015142361A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10462185B2 (en) * 2014-09-05 2019-10-29 Sequitur Labs, Inc. Policy-managed secure code execution and messaging for computing devices and computing device security
US20170039258A1 (en) * 2015-08-05 2017-02-09 Microsoft Technology Licensing, Llc Efficient Location-Based Entity Record Conflation
US9723040B1 (en) * 2015-09-02 2017-08-01 Confinement Telephony Technology, Llc Systems and methods for secure, controlled virtual visitation with confinement institution inmates
US11757958B1 (en) 2015-09-02 2023-09-12 Confinement Telephony Technology, Llc Systems and methods for secure, controlled virtual visitation with confinement institution inmates
US11778034B2 (en) * 2016-01-15 2023-10-03 Avaya Management L.P. Embedded collaboration with an application executing on a user system
US10341325B2 (en) 2016-01-29 2019-07-02 Vmware, Inc. System and method for transferring device identifying information
US10375055B2 (en) 2016-05-31 2019-08-06 Airwatch Llc Device authentication based upon tunnel client network requests
US10362021B2 (en) 2016-05-31 2019-07-23 Airwatch Llc Device authentication based upon tunnel client network requests
US10122761B2 (en) 2016-05-31 2018-11-06 Airwatch Llc Device authentication based upon tunnel client network requests
US10791095B2 (en) * 2017-03-01 2020-09-29 Xiid Corporation Secure authentication and data transfer for cloud systems
US11005719B2 (en) * 2018-12-11 2021-05-11 Vmware, Inc. Internet of Things system topology generation
US11165871B2 (en) * 2019-02-01 2021-11-02 Citrix Systems, Inc. Computer system providing context-based Software as a Service (SaaS) application session switching and related methods
US20230208662A1 (en) * 2019-02-22 2023-06-29 Jae Ho Choi Apparatus for providing folder chat room and apparatus for receiving the same
CN110597513B (zh) * 2019-09-18 2020-11-10 重庆紫光华山智安科技有限公司 Web界面生成方法及相关装置
CN110765430B (zh) * 2019-10-31 2020-06-19 湖南恒成信息技术有限公司 银行数据处理系统
WO2021244288A1 (en) * 2020-06-01 2021-12-09 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method and system for sharing data among applications
JP2022025652A (ja) * 2020-07-29 2022-02-10 株式会社リコー 通信端末、通信システム、通信方法及びプログラム
US20220229846A1 (en) * 2021-01-20 2022-07-21 Salesforce.Com, Inc. Implementing field-level comments and presence detection
US11363080B1 (en) * 2021-01-21 2022-06-14 Dell Products L.P. Managed intelligent discovery and mesh connectivity orchestration for collaboration solutions
US20230068880A1 (en) * 2021-08-27 2023-03-02 EMC IP Holding Company LLC Function-based service framework with trusted execution platform

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020149618A1 (en) * 2000-12-29 2002-10-17 International Business Machines Corporation Method and system for creating a theme of a place to be used as a template for other places
US20070050448A1 (en) * 2005-08-25 2007-03-01 Polycom, Inc. Method and system for information collaboration over an IP network via handheld wireless communication devices
US20070162578A1 (en) * 2006-01-09 2007-07-12 International Business Machines Corporation System and method for application initiated user interaction
US20070244980A1 (en) * 2006-04-14 2007-10-18 Microsoft Corporation Instant Messaging Plug-Ins
US20100037153A1 (en) * 2008-08-06 2010-02-11 Rogers Jarrod C Chat and web page integration method and system
US20110137974A1 (en) * 2009-12-09 2011-06-09 Georgy Momchilov Methods and systems for displaying, on a first machine, data associated with a drive of a second machine, without mapping the drive
US20120005596A1 (en) * 2010-06-30 2012-01-05 International Business Machines Corporation Saving and restoring collaborative applications in context
US20120158849A1 (en) * 2010-12-17 2012-06-21 Avaya, Inc. Method and system for generating a collaboration timeline illustrating application artifacts in context
US20130227641A1 (en) * 2012-01-06 2013-08-29 Optio Labs, LLC Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
US20140006505A1 (en) * 2012-06-29 2014-01-02 Zynga Inc. Social Network Data Analysis to Generate Incentives for Online Gaming

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112883A (ja) * 1998-09-24 2000-04-21 Internatl Business Mach Corp <Ibm> 情報処理方法、情報処理装置、情報処理プログラムを格納する記憶媒体
JP3485253B2 (ja) * 1999-06-18 2004-01-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理方法、情報端末支援サーバ、情報処理プログラムを格納する記憶媒体
US20020087592A1 (en) * 2000-12-29 2002-07-04 Jamal Ghani Presentation file conversion system for interactive collaboration
US7899915B2 (en) * 2002-05-10 2011-03-01 Richard Reisman Method and apparatus for browsing using multiple coordinated device sets
NO319625B1 (no) * 2003-09-26 2005-09-05 Opera Software Asa Presentasjon av fjerntliggende og lokal informasjon i en web browser
US7933956B2 (en) * 2006-01-24 2011-04-26 Simulat, Inc. System and method to create a collaborative web-based multimedia layered platform
US9338399B1 (en) * 2006-12-29 2016-05-10 Aol Inc. Configuring output controls on a per-online identity and/or a per-online resource basis
US9178957B2 (en) 2007-09-27 2015-11-03 Adobe Systems Incorporated Application and data agnostic collaboration services
EP2116935B1 (en) 2008-05-09 2016-03-09 BlackBerry Limited Application integration in networked computing devices
US8892630B1 (en) * 2008-09-29 2014-11-18 Amazon Technologies, Inc. Facilitating discussion group formation and interaction
GB2464948A (en) * 2008-10-29 2010-05-05 Quolos Limited Online collaboration
US8438225B2 (en) * 2009-06-03 2013-05-07 Microsoft Corporation Traversing between electronic mail and real time communications
EP2569693B1 (en) * 2010-05-09 2015-08-12 Citrix Systems, Inc. Methods and systems for forcing an application to store data in a secure storage location
US20120210253A1 (en) * 2011-01-12 2012-08-16 Michael Luna Unified access and management of events across multiple applications and associated contacts thereof
US8914446B2 (en) * 2011-04-05 2014-12-16 Avaya Inc. IM continuation across SIP sessions and across clients for point-to-point and multi-user chat
US9652810B2 (en) * 2011-06-24 2017-05-16 Facebook, Inc. Dynamic chat box
US9065826B2 (en) * 2011-08-08 2015-06-23 Microsoft Technology Licensing, Llc Identifying application reputation based on resource accesses
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
US20140053234A1 (en) * 2011-10-11 2014-02-20 Citrix Systems, Inc. Policy-Based Application Management
US20130185155A1 (en) * 2012-01-12 2013-07-18 Big Red Pen, Inc. Systems and methods for providing contributions from third parties to lower a cost of a transaction for a purchaser
US20150032828A1 (en) * 2013-07-26 2015-01-29 Blackberry Limited Friendly Names for Stored CPM Conversation Histories
US9507751B2 (en) * 2013-09-19 2016-11-29 Oracle International Corporation Managing seed data

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020149618A1 (en) * 2000-12-29 2002-10-17 International Business Machines Corporation Method and system for creating a theme of a place to be used as a template for other places
US20070050448A1 (en) * 2005-08-25 2007-03-01 Polycom, Inc. Method and system for information collaboration over an IP network via handheld wireless communication devices
US20070162578A1 (en) * 2006-01-09 2007-07-12 International Business Machines Corporation System and method for application initiated user interaction
US20070244980A1 (en) * 2006-04-14 2007-10-18 Microsoft Corporation Instant Messaging Plug-Ins
US20100037153A1 (en) * 2008-08-06 2010-02-11 Rogers Jarrod C Chat and web page integration method and system
US20110137974A1 (en) * 2009-12-09 2011-06-09 Georgy Momchilov Methods and systems for displaying, on a first machine, data associated with a drive of a second machine, without mapping the drive
US20120005596A1 (en) * 2010-06-30 2012-01-05 International Business Machines Corporation Saving and restoring collaborative applications in context
US20120158849A1 (en) * 2010-12-17 2012-06-21 Avaya, Inc. Method and system for generating a collaboration timeline illustrating application artifacts in context
US20130227641A1 (en) * 2012-01-06 2013-08-29 Optio Labs, LLC Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
US20140006505A1 (en) * 2012-06-29 2014-01-02 Zynga Inc. Social Network Data Analysis to Generate Incentives for Online Gaming

Also Published As

Publication number Publication date
CN105308573B (zh) 2019-03-01
US10826761B2 (en) 2020-11-03
US20210092012A1 (en) 2021-03-25
WO2015142361A1 (en) 2015-09-24
CN109828854A (zh) 2019-05-31
US9628329B2 (en) 2017-04-18
US11750449B2 (en) 2023-09-05
US20150271013A1 (en) 2015-09-24
EP3120246A1 (en) 2017-01-25
US20170187576A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
CN105308573B (zh) 受管应用中普遍存在的协作
EP3058502B1 (en) Secure client drive mapping and file storage system for mobile device management type security
CN108847990B (zh) 一种提供移动设备管理功能的方法、设备和介质
EP2992698B1 (en) Application with multiple operation modes
KR101738400B1 (ko) 콘텍스트와 모바일 디바이스 로킹
EP3095220B1 (en) Evaluating application integrity
CN105308561A (zh) 使用云同步数据提供本机桌面
CN105379223A (zh) 用于移动应用管理的对移动应用的身份的验证
CN105308923A (zh) 对具有多操作模式的应用的数据管理
CN104903910A (zh) 控制移动装置对安全数据的访问
CN105247531A (zh) 提供受管浏览器
CN105247526A (zh) 提供企业应用商店
CN105393524A (zh) 图像分析和管理

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190301

CF01 Termination of patent right due to non-payment of annual fee