CN110537167B - 应用程序的自动供应 - Google Patents

应用程序的自动供应 Download PDF

Info

Publication number
CN110537167B
CN110537167B CN201880019565.0A CN201880019565A CN110537167B CN 110537167 B CN110537167 B CN 110537167B CN 201880019565 A CN201880019565 A CN 201880019565A CN 110537167 B CN110537167 B CN 110537167B
Authority
CN
China
Prior art keywords
application
iframe
store
applications
management console
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
CN201880019565.0A
Other languages
English (en)
Other versions
CN110537167A (zh
Inventor
B·K·库马尔
A·杰恩
J·维达普利
A·加兰德
D·昆塔斯
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.)
Weirui LLC
Original Assignee
VMware LLC
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 VMware LLC filed Critical VMware LLC
Publication of CN110537167A publication Critical patent/CN110537167A/zh
Application granted granted Critical
Publication of CN110537167B publication Critical patent/CN110537167B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/0876Aspects of the degree of configuration automation
    • 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/20Network management software packages
    • 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/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/37Managing security policies for mobile devices or for controlling mobile applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

公开了用于自动化向被管理客户端设备供应应用程序的各种实施例。搜索字符串通过嵌入在网页中的iFrame传递到远程计算设备,该远程计算设备为应用程序商店提供应用程序编程接口(API)。然后通过iFrame从远程计算设备接收搜索结果并显示在iFrame中。然后,iFrame提供批准发布由搜索结果标识的应用程序和应用程序的详情的通知。然后将应用程序的详情发送到远程计算设备,以使应用程序商店将应用程序分配到客户端设备。

Description

应用程序的自动供应
相关申请的交叉引用
本申请要求2017年1月26日提交的标题为“应用程序的自动供应(AUTOMATEDPROVISIONING OF APPLICATIONS)”的美国临时专利申请No.62/450,932和2017年5月17日提交的标题为“应用程序的自动供应(AUTOMATED PROVISIONING OF APPLICATIONS)”的美国非临时专利申请No.15/597,722的优先权和权益,其两者的全部内容均通过引用并入本文,如同在此阐述一样。
背景技术
使用Google的操作系统的移动计算设备可以实现称为ANDROIDFOR />的特征。该特征允许企业将企业相关的应用程序和数据安装在访问受限的移动计算设备上的单独的存储器部分中。这允许个人和企业数据以及应用程序在同一移动计算设备上安装和执行,同时允许企业防止个人应用程序访问企业数据,反之亦然。
为了让管理员授权将应用程序安装在ANDROID FOR WORK设备的企业控制部分中,必须采取许多步骤。首先,管理员必须在Google 商店中搜索特定应用程序,选择应用程序,并授权其部署或发布到由相应移动设备管理(MDM)系统管理的移动计算设备。其次,管理员然后必须将批准的应用程序的详情手动输入到MDM系统中(例如,输入应用程序的名称、应用程序标识符等),然后管理员才能选择被授权安装所选应用程序的各个设备。因此,个体应用程序的批准和发布过程涉及包含多个不同系统的多步骤工作流程(例如,Google />商店,MDM系统的管理控制台等)。
附图说明
参考以下附图可以更好地理解本公开的许多方面。附图中的组件不一定按比例绘制,而是重点在于清楚地说明本公开的原理。此外,在附图中,相同的附图标记在若干视图中表示相应的部件。
图1是描绘网络环境的示例的示意框图
图2是描绘本公开的功能的一部分的一个示例的序列图。
图3是描绘本公开的功能的一部分的一个示例的序列图。
具体实施方式
公开了简化和自动化从应用程序商店(例如,Apple商店、Google商店或WINDOWS/>)向由MDM系统控制的一个或更多个移动计算设备供应应用程序的各种实施例。这些实施例允许MDM系统的管理员使用单个集成管理控制台来搜索应用程序商店中的应用程序并使用MDM系统管理应用程序的部署。在下面的讨论中,提供了系统及其组件的一般描述,然后讨论了系统的操作。
从图1开始,示出了联网环境100的示例。联网环境100包括被管理计算环境103、第三方计算环境106和客户端设备109,其经由网络113彼此进行数据通信。网络113包括广域网(WAN)和局域网(LAN)。这些网络可以包括有线或无线组件或其组合。有线网络可以包括以太网、线缆网络、光纤网络和电话网络,例如拨号、数字用户线(DSL)和综合业务数字网(ISDN)网络。无线网络可以包括蜂窝网络、卫星网络、电气和电子工程师协会(IEEE)802.11无线网络(即,)、/>网络、微波传输网络,以及依赖于无线电广播的其他网络。网络113还可以包括两个或更多个网络113的组合。网络113的示例可以包括因特网、内联网、外联网、虚拟专用网络(VPN)和类似网络。
被管理计算环境103和第三方计算环境106均可包括例如服务器计算机或提供计算能力的任何其他系统。或者,被管理计算环境103或第三方计算环境106可以使用多个计算设备,这些计算设备可以布置在例如一个或更多个服务器库或计算机库或其他布置中。这样的计算设备可以位于单个安装中,或者可以分配在许多不同的地理位置中。例如,被管理计算环境103或第三方计算环境106可以包括多个计算设备,这些计算设备一起可以包括托管计算资源、网格计算资源或任何其他分布式计算布置。在一些情况下,被管理计算环境103或第三方计算环境106可以对应于弹性计算资源,其中处理、网络、存储或其他计算相关资源的分配容量可以随时间变化。在一些实例中,被管理计算环境103和第三方计算环境106可以托管在同一计算环境内,或者可以是相同计算环境的单独逻辑组件。例如,如果被管理计算环境103和第三方计算环境106对应于由同一提供商或在同一数据中心中托管的一个或更多个虚拟计算设备,则可能发生这种情况。
根据各种实施例,可以在被管理计算环境103中执行各种应用程序或其他功能。在被管理计算环境103上执行的组件例如可以包括管理服务116,以及本文未详细讨论的其他应用程序、服务、过程、系统、引擎或功能。可以执行管理服务116以管理向管理服务116注册或以其他方式向管理服务116登记的各种客户端设备109的操作。为此,管理服务116可以跟踪哪些应用程序已经安装在各个客户端设备109上,哪些应用程序已被选择或批准安装在各个客户端设备109上,并强制要求将特定应用程序安装到各个客户端设备109(或从其卸载)。
同样地,根据各种实施例,可以在第三方计算环境106中执行各种应用程序或其他功能。例如,在第三方计算环境106上执行的组件可以包括应用程序商店119,以及本文未详细讨论的其他应用程序、服务、进程、系统、引擎或功能。可以执行应用程序商店119以使应用程序可用于一个或更多个客户端设备109,在客户端设备109或管理服务116的请求下将一个或更多个应用程序安装到指定的客户端设备109上,或者允许用户或管理员搜索要安装或批准安装的应用程序。应用程序商店119的示例包括GOOGLE PLAY STORE、APPLEITUNES STORE和WINDOWS STORE。
此外,各种数据被存储在计算环境203可访问的被管理数据存储123中。被管理数据存储123可以代表多个数据存储,其可以包括关系数据库、面向对象的数据库、分层数据库、散列表或类似的键-值数据存储,以及其他数据存储应用程序或数据结构。存储在被管理数据存储123中的数据与管理服务116以及后面描述的可能的其他应用程序或功能实体的操作相关联。该数据可以包括被管理用户126、被管理设备129以及可能的其他数据。
被管理用户126可以表示由管理服务116行政地管理的用户的用户账户。每个被管理用户126可以包括用户标识符133、链接设备列表136和分配的应用程序列表139。用户标识符133可以包括用户名、识别号或从其他用户唯一地标识用户的其他属性。链接设备列表136可以包括由管理服务116管理的客户端设备109的一个或更多个设备标识符143,其与用户相关联(例如,用户的智能手机、平板电脑和笔记本电脑)。分配的应用程序列表139可以包括用户已被授权在他或她的一个或更多个设备上使用的应用程序列表。
被管理设备129可以表示由管理服务116管理的客户端设备109。每个被管理设备129可以包括设备标识符143、链接用户列表146以及分配的应用程序列表139。设备标识符143可以包括安装在客户端设备109上的网络卡的序列号、硬件识别号、媒体访问控制(MAC)地址或国际移动设备身份(IMEI)号,或者从由管理服务116管理的其他客户端设备109唯一地标识客户端设备109的其他属性。链接用户列表146可以包括与客户端设备109相关联的一个或更多个被管理用户126的用户标识符133。例如,已知多个用户使用客户端设备109(例如,工作站或膝上型计算机的多个用户),每个被管理用户126的用户标识符133可以存储在链接用户列表146中。分配的应用程序列表139可以包括可以包括已经由管理服务116授权安装在被管理设备129上的应用程序的列表。
此外,各种数据被存储在第三方计算环境106可访问的第三方数据存储149中。第三方数据存储149可以表示多个数据存储,其可以包括关系数据库、面向对象的数据库、分层数据库、散列表或类似的键-值数据存储,以及其他数据存储应用程序或数据结构。存储在第三方数据存储149中的数据与应用程序商店119和稍后描述的各种其他应用程序或功能实体的操作相关联。该数据可以包括一个或更多个应用程序153,关于由管理服务116提供的一个或更多个被管理设备129的数据,以及可能的其他数据。
应用程序153可以表示可以通过应用程序商店119安装在客户端设备109上的二进制应用程序。应用程序153可以包括应用程序标识符156、批准状态159和一个或更多个应用程序详情163。应用程序标识符156表示应用程序153的序列号、名称、散列或其他标识符,其相对于其他应用程序唯一地标识应用程序153。批准状态159表示应用程序153是否已被管理服务116批准安装在一个或更多个被管理设备129上或由一个或更多个被管理设备129安装。应用程序详情163可包括应用程序153的名称、应用程序153的版本、应用程序153的描述、与应用程序153相关联的一个或更多个搜索项或关键字、用于执行应用程序153的任何依赖性、能够执行应用程序的操作系统或设备类型,以及可能的其他数据。
客户端设备109表示可以耦合到网络113的多个客户端设备。客户端设备109可以包括例如基于处理器的系统(例如计算机系统)。这样的计算机系统可以以个人计算机(例如,台式计算机、膝上型计算机或类似设备)、移动计算设备(例如,个人数字助理、蜂窝电话、智能电话、上网本、平板计算机系统、音乐播放器、便携式游戏控制台、电子书阅读器和类似设备)、媒体播放设备(例如,媒体流设备、播放器、数字视频光盘(DVD)播放器、机顶盒和类似设备)、视频游戏控制台或具有类似功能的其他设备的形式实现。客户端设备109可以包括一个或更多个显示器166,例如液晶显示器(LCD)、基于气体等离子体的平板显示器、有机发光二极管(OLED)显示器、电泳墨水(“E-ink”)显示器、投影仪或其他类型的显示设备。在一些情况下,显示器166可以是客户端设备109的组件,或者可以通过有线或无线连接被连接到客户端设备109。
客户端设备109可以被配置为执行各种应用程序,诸如管理控制台169或其他应用程序。管理控制台169可以作为基于浏览器的web应用程序执行,或者在某些情况下,可以作为独立应用程序执行。因此,管理控制台169可以在显示器166上产生用户界面173。为此,用户界面173可以包括用于获得用户输入的其他用户机制的网页、应用程序屏幕。管理控制台169还可以包括iFrame 176,其可以为管理控制台169提供与应用程序商店119交互的功能,并在用户界面173内显示这些交互的结果。例如,iFrame 176可以在管理控制台169的用户界面173内提供接口,其允许管理用户搜索各个应用程序153、批准各个应用程序153、未批准的先前批准的应用程序153,或执行与应用程序商店119的其他交互。
管理控制台169可以在客户端设备106中执行,例如,以允许管理用户控制管理服务116。例如,管理控制台169可以允许管理用户选择由管理服务116控制的特定被管理设备129,将安装用于其的批准的应用程序153。作为另一示例,管理控制台169可以允许管理用户搜索和批准各个应用程序153,以在一个或更多个被管理设备129上安装。
此外,各种数据被存储在客户端设备109可访问的客户端数据存储179中。客户端数据存储179可以表示多个数据存储,其可以包括关系数据库、面向对象的数据库、分层数据库、散列表或类似的键-值数据存储,以及其他数据存储应用程序或数据结构。存储在客户端数据存储179中的数据与管理控制台169以及稍后描述的可能的其他应用程序或功能实体的操作相关联。该数据可以包括认证密钥183,以及可能的其他数据。认证密钥183可以包括令牌、密钥或其他唯一数据项,iFrame 176可以将其提交给应用程序商店119,以验证iFrame 176被允许与应用程序商店119通信和交互。
接下来,提供对联网环境100的各种组件的操作的一般描述。首先,管理用户将搜索字符串输入管理控制台169的iFrame 176中。搜索字符串可以对应于应用程序153的名称、应用程序153的描述、应用程序153的类型或其他查询参数。然后,iFrame 176将搜索字符串传递给应用程序商店119(例如,Google 商店)。
接下来,应用程序商店119认证管理控制台169的用户,以确定他或她是否被允许查看或搜索应用程序商店119中的应用程序153。在成功认证后,应用程序商店119提供搜索结果,其对应于从iFrame 176接收的搜索字符串。搜索结果可以包括与搜索字符串匹配的应用程序153的列表,不包括管理控制台的用户被禁止访问的应用程序153(例如,应用程序的过期版本、特定用户或企业的定制应用程序等)。搜索结果返回到iFrame 176,其在管理控制台169的用户界面173内呈现搜索结果。
iFrame 176可以包括监听器、触发器或键盘记录组件,其可以配置为识别和跟踪管理用户与搜索结果的交互。例如,监听器、触发器或键盘记录组件可以由iFrame 176使用以确定管理员是否已从搜索结果中选择了应用程序153并且改变了应用程序153的批准状态159(例如,将先前未批准的应用程序153标记为批准或撤销对应用程序153的先前批准)。一旦iFrame 176确定管理员已经从搜索结果中选择了应用程序153并且批准了应用程序153分配给一个或更多个被管理设备129,则iFrame 176可以将所选应用程序153的应用程序详情163传送到管理控制台169。
管理控制台169可以使用从iFrame 176接收的应用程序详情163来呈现和填充管理控制台169的用户界面173内的应用程序分配屏幕中的某些字段。应用程序分配屏幕可以包括多个字段,通过这些字段管理员可以指定用于分配应用程序以在由管理控制台169管理的各种客户端设备109上供应的一个或更多个特性。具体地,应用程序分配屏幕可以包括特定应用程序153可以在其内被指定用于供应的字段。在一个实施例中,管理控制台169可以使用由iFrame提供的应用程序详情163来填充这样的应用程序指定字段。例如,如果管理控制台169识别出用于平板计算设备的版本的/>操作系统的ANGRY/>的管理员选择,则管理控制台169可以使用这样的信息填充一个或更多个应用程序指定字段;也就是说,可以使用ANGRY BIRDS填充应用程序名称字段,可以使用ANDROID填充操作系统类型,可以使用MARSHMALLOW填充操作系统版本,并且可以使用“平板电脑”填充计算设备类型。这样,当管理员批准应用程序153通过应用程序商店(通过iFrame 176)供应给被管理设备129时,管理员免除了向管理控制台169提供已经由管理员指定的应用程序详情163的负担。
另外,应用程序分配屏幕可以包括多个字段,管理员可以通过这些字段指定一个或更多个配置设置,用于配置一旦被提供给各种被管理设备129并由其执行的应用程序的功能。在一个实施例中,应用程序分配屏幕可以呈现特定于应用程序详情163的字段。例如,如果应用程序详情163为平板计算设备的版本MARSHMELLOW的ANDROID操作系统指定ANGRYBIRDS,则应用程序分配屏幕可以被配置为呈现用于配置ANGRY BIRDS应用程序153的特征的字段,其在特定于平板计算设备的ANDROID MARSHMELLOW的应用程序版本上可用。为了简化管理员的用户体验,应用程序分配屏幕还可以配置为隐藏或不显示用于ANGRY BIRDS应用程序的特征的字段,其在特定于平板计算设备的ANDROID MARSHMELLOW的应用程序版本上不可用-例如专用于特定于APPLE iOS或WINDOWS操作系统的应用程序版本的特征。
另外,应用程序分配屏幕可以包括设备选择组件,通过该组件,一个或更多个被管理设备129或被管理设备129的一个或更多个组可以将应用程序153添加到被管理设备129的分配的应用程序列表139中。使用应用程序分配屏幕的这种设备选择组件,管理员可以选择一个或更多个被管理设备129或被管理设备129的组,以授予安装应用程序153的许可。管理控制台169可以向管理服务116发送命令,以在每个被管理设备129的分配的应用程序列表139中存储这样的选择。
此外,管理服务116可以被配置为通过管理控制台169的设备选择组件使得被选择的被管理设备129或被管理设备129的组下载指定的应用程序153,并使用指定的配置设置配置所选的应用程序153。在一个实施例中,管理服务116可以将命令放置在与每个被管理设备129相关联的命令队列中,该命令当由被管理设备129检索到并执行时,使得被管理设备129从应用程序商店119和指定的配置设置下载指定的应用程序153,并且进一步使被管理设备129根据配置设置配置指定的应用程序153。例如,该命令可以使被管理设备129安装被管理设备129的操作系统的配置文件库中的配置文件,配置文件包括用于指定的应用程序153的配置设置,当操作系统执行所选的应用程序153时,操作系统在指定的应用程序153上强制执行该配置设置。在这样的实施例中,管理服务116还可以被配置为向特定于被管理设备129(例如,用于ANDROID客户端设备的ANDROID CLOUD MESSAGING SERVICETM)的原始设备制造商(OEM)消息服务发送指令,以使OEM消息服务向被管理设备129的操作系统发送指令,该指令使得被管理设备129从由管理服务116提供的命令队列中检索命令。
在另一个实施例中,管理控制台可以将被管理设备129的设备标识符143(例如,电话号码、IMEI号等)与所选的应用程序153的应用程序标识符156一起发送至应用程序商店119。当应用程序商店119接收到设备标识符143和应用程序标识符156的列表时,应用程序商店119可以使被管理设备129下载应用程序153。在一些情况下,应用程序商店119可以自动地使应用程序153与要部署到所标识的被管理设备129的应用程序标识符156相关联。在其他情况下,如果被管理设备129的用户搜索并请求从应用程序商店119下载所标识的应用程序153,则应用程序商店119可以仅使所标识的应用程序153对于被管理设备129可用。尽管存在客户端设备109从其下载指定的应用程序153的源和方法,管理服务116可以使客户端设备109根据指定的配置设置执行指定的应用程序153。
继续到图2,示出了序列图,其提供了图1的网络图中描绘的本公开的各种组件的交互的示例。应当理解,图1的序列图仅提供了本申请中描述的组件的许多不同可能的交互的示例。
从步骤203开始,管理控制台169在用户界面173内呈现iFrame 176。例如,用户界面173可以对应于网页、应用程序屏幕或用户界面173。iFrame176可以包括可执行代码(例如JAVASCRIPT),其允许iFrame 176与应用程序商店119通信,并将与应用程序商店119的交互相关的任何信息传递到管理控制台169。
继续到步骤206,iFrame 176可以接收搜索查询。搜索查询可以包括包含一个或更多个关键字的搜索字符串,要匹配的参数列表或其他搜索标准。可以通过搜索框,对应于搜索参数的检查框列表或由iFrame 176提供的另一搜索界面将搜索查询提交给iFrame 176。
进行到步骤209,iFrame 176可以将在步骤206接收的搜索查询和认证密钥183发送到应用程序商店119。可以通过加密信道(例如,受安全套接字层(SSL)或传输层安全性(TLS)协议的版本保护的网络连接)发送搜索查询和认证密钥183。可以使用加密信道以防止未被授权方发现认证密钥,其可以尝试重用认证密钥183,以便以未授权的方式与应用程序商店119通信。
接下来参考步骤213,应用程序商店119认证iFrame 176,执行搜索查询,并作为响应提供一个或更多个搜索结果。例如,应用程序商店119可以通过将iFrame 176提供的认证密钥183与第三方数据存储149中维护的授权认证密钥183的列表进行比较来认证iFrame176。如果iFrame 176提供的认证密钥183被包括在授权认证密钥183的列表中,则应用程序商店119可以确定iFrame 176被授权与应用程序商店119通信或与应用程序商店119交互。
假设iFrame 176被授权与应用程序商店119通信并与应用程序商店119交互,则应用程序商店119执行由iFrame 176提供的搜索查询。例如,应用程序商店119可以将搜索查询中的关键字与存储在第三方数据存储149中存储的每个应用程序153的应用程序详情163中的应用程序153的名称或描述进行比较。作为另一个例子,应用程序商店119可以将搜索查询中指定的各种参数(例如,特定版本的应用程序153)与存储在第三方数据存储149中存储的每个应用程序153的应用程序详情163中的信息进行比较。
然后可以将与搜索查询匹配的应用程序153的列表返回到iFrame 176。对于搜索结果列表中包括的每个应用程序153,可以包括一个或更多个应用程序详情163,以及应用程序153的应用程序标识符156和当前批准状态159。
继续到步骤216,iFrame 176显示搜索结果并获取对搜索结果中包括的一个或更多个应用程序153的批准。例如,可以通过向管理控制台169注册的回调函数来获取批准。当用户选择应用程序153以进行批准时,可以触发回调函数。例如,如果用户鼠标点击标记为“批准”的按钮以批准应用程序153分配给一个或更多个被管理设备129,则由鼠标点击触发的回调函数可以通知iFrame 176具有应用程序标识符156的应用程序153已被批准。
进行到步骤219,iFrame 176将批准的应用程序153或应用程序154的一个或更多个应用程序详情163发送到管理控制台169。这些应用程序详情153可以包括一个或更多个应用程序153的名称、一个或更多个应用程序153的版本以及可能的其他信息。iFrame 176还可以将每个批准的应用程序153的应用程序标识符156发送到管理控制台169。可以使用回调函数或其他进程间通信机制将应用程序详情163和应用程序标识符156传递或发送到管理控制台169。
参考步骤223,管理控制台169在用户界面173中呈现被管理用户126、被管理设备129、被管理用户126的组或被管理设备129的组的列表,并接收对向其提供一个或更多个批准的应用程序153的各个被管理用户126、被管理设备129、被管理用户126的组或被管理设备129的组的选择。例如,管理控制台169可以从管理服务116查询和接收被管理用户126、被管理设备129、被管理用户126的组或被管理设备129的组。然后,管理控制台169可以在分配屏幕中呈现一个或更多个被管理用户126、被管理设备129、被管理用户126的组或被管理设备129的组。然后,管理控制台169可以确定用户选择了被管理用户126、被管理设备129、被管理用户126的组或被管理设备129的组中的哪些,以供应批准的应用程序153。
继续到步骤226,管理控制台169将用于所选择的被管理用户126和被管理设备129的用户标识符133或设备标识符143发送到应用程序商店119。在一些实施例中,管理控制台也可以将所选择的被管理用户126和被管理设备129的用户标识符133或设备标识符143以及一个或更多个批准的应用程序153的应用程序标识符156报告给管理服务116,使得管理服务116可以更新每个所选的被管理用户126或被管理设备129的分配的应用程序列表139。
进行到步骤229,应用程序商店119使得一个或更多个批准的应用程序153安装在提供给应用程序商店119的被管理设备129中包括的或者与识别给应用程序商店119的被管理用户126相关联的每个客户端设备109上。应用程序商店119可以使一个或更多个应用程序153以多种方式安装。例如,应用程序商店119可以使用包括在客户端设备109的操作系统中的机制(例如,包括在GOOGLE PLAY STORE或APPLE ITUNES STORE的客户端中的自动安装特征)来发送、推送或以其他方式自动安装一个或更多个批准的应用程序153。作为另一示例,应用程序商店119可以等待,直到客户端设备109连接到应用程序商店119并且提示客户端设备109在那时安装一个或更多个批准的应用程序153。一旦安装了一个或更多个批准的应用程序153,应用程序商店119就可以将每个已安装的应用程序153的应用程序标识符156添加到被管理设备129的已分配应用程序列表139中。在安装了一个或更多个批准的应用程序153之后,然后这个示例性过程结束。
前进到图3,示出了序列图,其提供了图1的网络图中描绘的本公开的各种组件的交互的示例。应当理解,图3的序列图仅提供了本申请中描述的组件的许多不同可能交互的示例。
从步骤303开始,管理控制台169在用户界面173内呈现iFrame 176。例如,用户界面173可以对应于网页、应用程序屏幕或用户界面173。iFrame176可以包括可执行代码(例如JAVASCRIPT),其允许iFrame 176与应用程序商店119通信并将与应用程序商店119的交互相关的任何信息传递到管理控制台169。
继续到步骤306,iFrame 176可以接收搜索查询。搜索查询可以包括包含一个或更多个关键字的搜索字符串,要匹配的参数列表或其他搜索标准。可以通过搜索框,对应于搜索参数的检查框列表或由iFrame 176提供的另一搜索界面将搜索查询提交给iFrame 176。
前进到步骤309,iFrame 176可以将在步骤206接收的搜索查询和认证密钥183发送到应用程序商店119。可以通过加密信道(例如,受安全套接字层(SSL)或传输层安全性(TLS)协议的版本保护的网络连接)发送搜索查询和认证密钥183。可以使用加密信道以防止未授权方发现认证密钥,其会尝试重用认证密钥183以便以未授权的方式与应用程序商店119通信。
接下来参考步骤313,应用程序商店119认证iFrame 176,执行搜索查询,并作为响应提供一个或更多个搜索结果。例如,应用程序商店119可以通过将iFrame 176提供的认证密钥183与第三方数据存储149中维护的授权认证密钥183的列表进行比较来认证iFrame176。如果iFrame 176提供的认证密钥183被包括在授权认证密钥183的列表中,则应用程序商店119可以确定iFrame 176被授权与应用程序商店119通信或与应用程序商店119交互。
假设iFrame 176被授权与应用程序商店119通信并与应用程序商店119交互,则应用程序商店119执行由iFrame 176提供的搜索查询。例如,应用程序商店119可以将搜索查询中的关键字与存储在第三方数据存储149中的每个应用程序153的应用程序详情163中的应用程序153的名称或描述进行比较。作为另一个例子,应用程序商店119可以将搜索查询中指定的各种参数(例如,特定版本的应用程序153)与存储在第三方数据存储149中存储的每个应用程序153的应用程序详情163中的信息进行比较。
然后可以将与搜索查询匹配的应用程序153的列表返回到iFrame 176。对于搜索结果列表中包括的每个应用程序153,可以包括一个或更多个应用程序详情163,以及应用程序153的应用程序标识符156和当前批准状态159。
继续到步骤316,iFrame 176显示搜索结果并获取搜索结果中包括的一个或更多个应用程序153的未批准(例如,将批准状态159从“被批准”改变为“未批准”)。例如,可以通过在用户选择未批准的应用程序153时触发的回调函数来获取未批准。例如,如果用户鼠标点击标记为“未批准”的按钮以不批准分配到或安装在一个或更多个被管理设备129上的应用程序153,则通过鼠标点击触发的回调函数可以通知iFrame 176具有应用程序标识符156的应用程序153已经不再被批准。
前进到步骤319,iFrame 176向应用程序商店119发送一个或更多个未批准的应用程序的一个或更多个应用程序详情163。这些应用程序详情153可以包括一个或更多个未批准的应用程序153的版本,每个未批准的应用程序153的应用程序标识符156,以及可能的其他信息。
接下来参考步骤323,应用程序商店119识别安装在被管理设备129上的一个或更多个未批准的应用程序153的所有实例。例如,应用程序商店119可以首先识别每个被管理设备129,然后确定与一个或更多个未批准的应用程序153匹配的一个或更多个应用程序标识符156是否包括在被管理设备129的分配的应用程序列表139中。
继续到步骤323,应用程序商店119使得一个或更多个未批准的应用程序153从其上安装了一个或更多个未批准的应用程序153的每个被管理设备129中移除。例如,应用程序商店119可以使用包括在客户端设备109的操作系统中的机制(例如,包含在GOOGLE PLAYSTORE或APPLE ITUNES STORE的客户端中的自动安装特征)将包括一个或更多个未批准的应用程序153的一个或更多个应用程序标识符156的指令发送到每个被管理设备129。当被管理设备129接收到该指令时,它将自动删除一个或更多个应用程序153。一旦安装了一个或更多个批准的应用程序153,应用程序商店119就可以从被管理设备129的分配的应用程序列表139中移除未批准的应用程序153的应用程序标识符156。
图2和图3的序列图示出了本文描述的组件的实现的功能和操作的示例。本文描述的组件可以包括硬件、软件或硬件和软件的组合。如果体现在软件中,则每个元素可以表示代码模块或代码的一部分,其包括用于实现一个或更多个指定逻辑功能的程序指令。程序指令可以以源代码的形式体现,源代码包括用编程语言或机器代码编写的人类可读语句,机器代码包括可由合适的执行系统(例如计算机系统或其他系统中的处理器)识别的机器指令。如果体现在硬件中,则每个元件可以表示实现一个或更多个指定逻辑功能的电路或多个互连电路。
尽管图2和图3的序列图示出了特定的执行顺序,但应该理解,执行的顺序可以与所示的顺序不同。可以相对于所示的顺序切换两个或更多个元素的执行顺序。而且,连续示出的两个或更多个元素可以同时执行或部分同时执行。此外,在一些示例中,可以跳过或省略流程图中示出的一个或更多个元素。此外,为了增强实用性、计算、性能测量或故障排除辅助,可以将任何数量的计数器、状态变量、警告信号量或消息添加到本文描述的逻辑流程中。应当理解,所有变化都在本公开的范围内。
本文描述的组件可各自包括至少一个处理电路。处理电路可以包括一个或更多个处理器以及耦合到本地接口的一个或更多个存储设备。本地接口可以包括具有伴随地址/控制总线的数据总线或任何其他合适的总线结构。用于处理电路的一个或更多个存储设备可以存储可由处理电路中的一个或更多个处理器执行的数据或组件。
本文描述的组件可以以硬件形式、作为可由硬件执行的软件组件或者作为软件和硬件的组合的形式实现。如果体现为硬件,则本文描述的组件可以实现为采用任何合适的硬件技术的电路或状态机。该硬件技术可包括一个或更多个微处理器、具有用于在应用一个或更多个数据信号时实现各种逻辑功能的逻辑门的离散逻辑电路、具有适当逻辑门的专用集成电路(ASIC)、可编程逻辑器件(例如,现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
此外,本文描述的包括软件或程序指令的一个或更多个组件可以体现在任何非暂时性计算机可读介质中,以供指令执行系统(例如计算机系统或其他系统中的处理器)使用或与之结合使用。计算机可读介质可以包含、存储或维护软件或程序指令,以供指令执行系统使用或与之结合使用。
计算机可读介质可以包括物理介质,诸如磁、光、半导体或其他合适的介质。合适的计算机可读介质的示例包括但不限于固态驱动器、磁驱动器、闪存。此外,本文描述的任何逻辑或组件可以以各种方式实现和构造。所描述的一个或更多个组件可以实现为单个应用程序的模块或组件。此外,本文描述的一个或更多个组件可以在一个计算设备中执行或者通过使用多个计算设备来执行。
强调的是,本公开的上述示例仅仅是为了清楚地理解本公开的原理而阐述的实施方式的示例。在不背离本公开的精神和原理的情况下,可以对上述示例进行许多变化和修改。所有修改和变化旨在包括在本公开的范围内。

Claims (15)

1.一种用于简化和自动化从应用程序商店向一个或更多个客户端设备供应应用程序的方法,其特征在于所述方法包括:
将搜索字符串通过嵌入在网页中的内联框架iFrame传递给第三方计算环境,所述第三方计算环境为所述应用程序商店提供应用程序编程接口API;
通过所述iFrame从所述应用程序商店接收搜索结果;
在所述iFrame中显示所述搜索结果;
从所述iFrame接收批准发布由所述搜索结果识别的应用程序的通知;
从所述iFrame接收所述应用程序的详情;以及
将包括所述应用程序的所述详情的指令发送到所述应用程序商店,以将所述应用程序分配到客户端设备。
2.如权利要求1所述的方法,还包括显示分配屏幕,所述分配屏幕包括能够向其分配所述应用程序的客户端设备的列表,并且其中所述客户端设备的列表包括所述客户端设备。
3.如权利要求1所述的方法,还包括接收所述iFrame内的所述搜索字符串。
4.如权利要求1所述的方法,还包括向所述应用程序商店发送令牌,所述令牌授权所述应用程序商店提供所述搜索结果。
5.如权利要求1所述的方法,其中通过回调函数从所述iFrame接收所述通知和所述应用程序的所述详情。
6.如权利要求1所述的方法,其中所述网页包括管理控制台。
7.如权利要求1所述的方法,其中所述应用程序的所述详情还包括所述应用程序的唯一标识符、所述应用程序的版本或所述应用程序的名称中的至少一个。
8.一种用于简化和自动化供应应用程序的系统,其特征在于所述系统包括:
计算设备,其包括处理器和存储器;以及
机器可读指令,其存储在所述存储器中,当由所述处理器执行所述机器可读指令时,使所述计算设备至少生成包括管理控制台和内联框架iFrame的网页,其中所述管理控制台被配置为至少:
从所述iFrame接收批准发布由搜索结果识别的应用程序的通知;
从所述iFrame接收所述应用程序的详情;以及
向应用程序商店发送指令以将所述应用程序分配到客户端设备;以及
其中所述iFrame被配置为至少:
将搜索字符串传递给第三方计算环境,所述第三方计算环境为所述应用程序商店提供应用程序编程接口API;
从所述应用程序商店接收所述搜索结果;
呈现所述搜索结果;
捕获对由所述搜索结果识别的所述应用程序进行发布的所述批准的指示;以及
向所述管理控制台提供所述应用程序的所述详情。
9.如权利要求8所述的系统,其中所述管理控制台至少还被配置为:显示分配屏幕,所述分配屏幕包括能够向其分配所述应用程序的客户端设备的列表。
10.如权利要求8所述的系统,其中所述管理控制台至少还被配置为:显示分配屏幕,所述分配屏幕包括能够向其分配所述应用程序的被管理用户的列表。
11.如权利要求8所述的系统,其中所述管理控制台至少还被配置为:向所述应用程序商店发送令牌,所述令牌授权所述应用程序商店提供所述搜索结果。
12.如权利要求8所述的系统,其中通过向所述管理控制台注册的回调函数从所述iFrame接收所述通知和所述应用程序的所述详情。
13.如权利要求8所述的系统,其中所述iFrame还包括输入所述搜索字符串的文本框。
14.如权利要求8所述的系统,其中所述应用程序的所述详情包括所述应用程序的唯一标识符、所述应用程序的版本和所述应用程序的名称中的至少一个。
15.一种非暂时性计算机可读介质,存储机器可读指令,所述机器可读指令在由计算设备的处理器执行时,使得所述计算设备执行如权利要求1-7中任一项所述的方法。
CN201880019565.0A 2017-01-26 2018-01-23 应用程序的自动供应 Active CN110537167B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762450932P 2017-01-26 2017-01-26
US62/450,932 2017-01-26
US15/597,722 US10231103B2 (en) 2017-01-26 2017-05-17 Automated provisioning of applications
US15/597,722 2017-05-17
PCT/US2018/014923 WO2018140416A1 (en) 2017-01-26 2018-01-23 Automated provisioning of applications

Publications (2)

Publication Number Publication Date
CN110537167A CN110537167A (zh) 2019-12-03
CN110537167B true CN110537167B (zh) 2023-10-24

Family

ID=62906806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880019565.0A Active CN110537167B (zh) 2017-01-26 2018-01-23 应用程序的自动供应

Country Status (4)

Country Link
US (1) US10231103B2 (zh)
EP (1) EP3571618B1 (zh)
CN (1) CN110537167B (zh)
WO (1) WO2018140416A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10231103B2 (en) * 2017-01-26 2019-03-12 Vmware, Inc. Automated provisioning of applications
US11108831B2 (en) * 2019-01-04 2021-08-31 Vmware, Inc. Machine policy configuration for managed devices
TWI747682B (zh) 2020-12-24 2021-11-21 元太科技工業股份有限公司 電泳顯示裝置與電泳顯示裝置的驅動方法
US20230102816A1 (en) * 2021-09-30 2023-03-30 Vmware, Inc. Automatic updating of application functionality

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140316990A1 (en) * 2011-10-27 2014-10-23 Bradley Scott Winston Application store interface for remote management of client devices
CN104854561A (zh) * 2012-10-16 2015-08-19 思杰系统有限公司 用于应用程序管理框架的应用程序封装

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856093B2 (en) * 2002-09-03 2014-10-07 William Gross Methods and systems for search indexing
US8099332B2 (en) * 2008-06-06 2012-01-17 Apple Inc. User interface for application management for a mobile device
US9197417B2 (en) * 2009-04-24 2015-11-24 Microsoft Technology Licensing, Llc Hosted application sandbox model
US8359016B2 (en) * 2010-11-19 2013-01-22 Mobile Iron, Inc. Management of mobile applications
US9143530B2 (en) * 2011-10-11 2015-09-22 Citrix Systems, Inc. Secure container for protecting enterprise data on a mobile device
US8893261B2 (en) * 2011-11-22 2014-11-18 Vmware, Inc. Method and system for VPN isolation using network namespaces
US10031737B2 (en) * 2012-02-16 2018-07-24 Microsoft Technology Licensing, Llc Downloading and distribution of applications and updates to multiple devices
US8713684B2 (en) * 2012-02-24 2014-04-29 Appthority, Inc. Quantifying the risks of applications for mobile devices
US9083566B1 (en) * 2012-04-18 2015-07-14 Cisco Technology, Inc. System and method for communicating with an applet using an inline web frame in a network environment
CN103703741B (zh) 2012-11-22 2018-06-05 华为技术有限公司 应用程序分发方法、终端及服务器
US20170302613A1 (en) * 2016-04-19 2017-10-19 Original Skateboards, Llc Environment for Processing and Responding to User Submitted Posts
US10231103B2 (en) * 2017-01-26 2019-03-12 Vmware, Inc. Automated provisioning of applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140316990A1 (en) * 2011-10-27 2014-10-23 Bradley Scott Winston Application store interface for remote management of client devices
CN104854561A (zh) * 2012-10-16 2015-08-19 思杰系统有限公司 用于应用程序管理框架的应用程序封装

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
iFrame: Dynamic Indoor Map Construction through;Chen Qiu 等;《2016 IEEE International Conference on Pervasive Computing and Communications (PerCom)》;20160421;全文 *
构筑移动应用安全评测体系;陈希;《电信工程技术与标准化》;20151231;全文 *

Also Published As

Publication number Publication date
US20180213347A1 (en) 2018-07-26
EP3571618B1 (en) 2022-02-16
WO2018140416A1 (en) 2018-08-02
EP3571618A4 (en) 2020-10-21
US10231103B2 (en) 2019-03-12
CN110537167A (zh) 2019-12-03
EP3571618A1 (en) 2019-11-27

Similar Documents

Publication Publication Date Title
US11089474B2 (en) Unified provisioning of applications on devices in an enterprise system
US10445082B2 (en) Persistent mobile device enrollment
US9860187B2 (en) Enrolling a mobile device with an enterprise mobile device management environment
US20190121631A1 (en) Deployment of applications to managed devices
CN110537167B (zh) 应用程序的自动供应
US11086692B2 (en) Multiplatform management system and method for mobile devices
CN108701175B (zh) 将用户账户与企业工作空间相关联
US10637957B2 (en) Dynamic runtime interface for device management
US20220239735A1 (en) State management for device-driven management workflows
WO2015191964A1 (en) Enforcing policies based on information received from external systems
US11212171B1 (en) Customer self-service cloud application provisioning
US20190273657A1 (en) Multiuser device staging
US11132106B2 (en) User-specific applications for shared devices
US20220277071A1 (en) Enforcing policies for unmanaged applications
US20230004371A1 (en) Package distribution and installation in response to user logon
US20150067766A1 (en) Application service management device and application service management method
US20150067124A1 (en) Application service management device and application service management method
US10250586B2 (en) Security certification and application categorization for mobile device management
US11531532B2 (en) Remote deployment of provisioned packages
EP3165013A1 (en) Enforcing policies based on information received from external systems

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.