CN105940397B - 用于应用同步的方法和*** - Google Patents

用于应用同步的方法和*** Download PDF

Info

Publication number
CN105940397B
CN105940397B CN201480075002.5A CN201480075002A CN105940397B CN 105940397 B CN105940397 B CN 105940397B CN 201480075002 A CN201480075002 A CN 201480075002A CN 105940397 B CN105940397 B CN 105940397B
Authority
CN
China
Prior art keywords
application
mobile application
data
managed
storage system
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
CN201480075002.5A
Other languages
English (en)
Other versions
CN105940397A (zh
Inventor
S.K.巴楚
M.金
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.)
MobileIron Inc
Original Assignee
MobileIron 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 MobileIron Inc filed Critical MobileIron Inc
Publication of CN105940397A publication Critical patent/CN105940397A/zh
Application granted granted Critical
Publication of CN105940397B publication Critical patent/CN105940397B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了应用同步技术。移动应用已经执行了影响移动应用的移动应用数据的操作的指示被接收。移动应用数据的至少一部分至少部分地基于该指示而被存储到远程存储***。该指示可以由包括移动应用的移动应用代码中所嵌入的管理代码接收,并且该存储操作可以至少部分地由该管理代码执行。

Description

用于应用同步的方法和***
对其他申请的交叉引用
本申请要求在2013年12月12日提交的题为“APPLICATION SYNCHRONIZATION”的美国临时专利申请号61/915,460、以及在2014年1月13日提交的美国临时专利申请号61/926,902的优先权,二者都出于所有目的通过引用并入本文中。
背景技术
许多企业使用移动设备管理(MDM)***来管理雇员移动设备。使用MDM***来管理的移动设备可以包括例如由企业所提供的受管理应用。受管理应用可以向企业用户提供集成到雇员的工作执行的工具。并且重要的企业数据(例如,机密数据)常常使用受管理应用来生成,并存储在设备上。在某些情况下,当关于雇员的设备上的受管理应用出现问题时雇员可能从执行他们的工作中断。当用户转变到新的设备并需要在新的设备上重新配置受管理应用时,雇员生产率也可能中断。因此,如果***可以被开发为将应用数据与远程存储***同步,则将是有用的。
附图说明
在以下具体实施方式和附图中公开了本发明的各种实施例。
图1是图示对应用数据进行同步的***的实施例的框图。
图2A是图示将移动应用数据存储到远程存储***的过程的实施例的流程图。
图2B是图示将移动应用数据同步到远程存储***的过程的实施例的流程图。
图3是图示将应用数据与远程存储***同步的过程的实施例的流程图。
图4是图示在远程存储***处存储同步数据的过程的实施例的流程图。
图5是图示在帮助台会话中使用经同步数据的***的实施例的框图。
图6是图示备份应用数据的***的实施例的框图。
图7是图示在移动设备上发起备份操作的过程的实施例的流程图。
图8是图示将应用数据备份到远程存储***的过程的实施例的流程图。
图9是图示恢复应用数据的***的实施例的框图。
图10是图示将应用恢复到之前状态的过程的实施例的流程图。
具体实施方式
本发明可以以多种方式实现,包括作为过程;装置;***;组合物;具体化在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如配置成执行存储在存储器上和/或由存储器所提供的指令的处理器,该存储器耦合到该处理器。在本说明书中,本发明可以采取的这些实现或任何其他形式可以被称为技术。一般,所公开的过程的步骤的次序可以在本发明的范围内变更。除非另有说明,描述为配置成执行任务的诸如处理器或存储器之类的组件可以被实现为在给定时间处临时配置成执行该任务的通用组件、或者被制造成执行该任务的专用组件。如本文所使用的,术语“处理器”是指配置成处理诸如计算机程序指令之类的数据的一个或多个设备、电路和/或处理核。
以下与图示本发明的原理的附图一起提供了本发明的一个或多个实施例的详细描述。本发明结合这样的实施例来描述,但本发明不限于任何实施例。本发明的范围仅由权利要求所限制,并且本发明包含许多替代物、修改和等价物。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且本发明可以根据权利要求在没有这些具体细节中的一些或所有的情况下实施。出于清楚的目的,未详细描述在与本发明相关的技术领域中已知的技术材料,以使得不会不必要地使本发明晦涩难懂。
公开了应用同步技术。本文所公开的技术可以用来将应用数据同步和/或存储到移动设备外部的远程存储***。在某些情况下,应用管理代码可以至少部分地响应于应用已经执行了影响应用的应用数据的操作的指示而将应用数据同步和/或存储到远程存储***。
在各种实施例中,同步到远程存储***的应用数据可以由帮助台技术人员用来检修(troubleshoot)关于雇员的设备上的应用的问题。同步到远程存储***的应用数据可以例如被提供给与帮助台技术人员相关联的移动设备。经同步数据可以被提供给帮助台技术人员的移动设备上的应用的实例,并且关于雇员的应用的问题可以在帮助台移动设备上重新创建。帮助台技术人员可以在帮助台移动设备上解决该问题,并且包括对该问题的解决方案的更新后的应用数据可以被同步到雇员的移动设备和/或其他用户的设备。
在一些实施例中,本文所公开的技术可以用来通过例如将应用数据同步到远程存储***来备份来自用户的移动设备上的多个应用的应用数据。经同步数据(例如,备份数据)可以被用来将移动设备和/或不同的移动设备上的应用恢复到备份操作时的状态。
在各种实施例中,移动应用已经执行了影响移动应用的移动应用数据的操作的指示被接收。移动应用数据的至少一部分至少部分地基于该指示而被存储到远程存储***。可以接收该指示,并且可以至少部分地由包括移动应用的移动应用代码中所嵌入的管理代码执行存储操作。
图1是图示对应用数据进行同步的***的实施例的框图。在所示的示例中,对应用数据进行同步的***100包括移动设备102、远程数据存储***120、设备管理服务器130、和/或其他组件。移动设备102可以包括智能电话、平板电脑和/或任何其他移动计算设备。移动设备102可以包括管理代理104;一组一个或多个受管理应用110、116;不受管理应用106;和/或其他组件。管理代理104可以包括移动应用和/或其他客户端,其在移动设备102上提供移动设备管理(MDM)能力,这如由远程移动设备管理服务器130的控制和指导所配置的那样和/或在远程移动设备管理服务器130的控制和指导之下。管理代理104关联于并参与移动设备102的安全区内相关联的一组(多个)受管理移动应用110、116的管理。
在各种实施例中,管理代理104和诸如应用110和116之类的受管理移动应用经由安全通信总线108安全地通信。在各种实施例中,安全通信总线108包括安全应用连接总线,如在例如在2013年12月20日提交的题为“SECURE MOBILE APP CONNECTION BUS”并且在2014年6月26日公开为US-2014-0181518-A1的美国专利申请序列号14/137,745中所描述的,其公开内容通过引用以其整体出于所有目的并入本文中。
在一些实施例中,一个或多个受管理应用110、116在移动设备上的本地应用数据存储中存储数据。与受管理应用110相关联的应用数据存储114可以包括应用文件夹和/或其他持久数据,诸如文档、图像、结构化查询语言(SQL)文件、关键链(keychain)数据(例如,密码、证书、用户凭证)、应用配置数据、应用设置、和/或与应用110相关联的任何其他数据。在一些情况下,应用数据存储114可以包括用于经同步应用数据的缓存存储,如以下详细讨论的。在某些情况下,应用数据可以在存储在应用数据存储114中和/或同步到远程数据存储***120之前例如通过与应用相关联的库进行加密,如以下所讨论的。
在各种实施例中,受管理应用110包括管理代码,诸如应用同步和/或存储库112和/或其他MDM库。管理代码(例如,同步和/或存储库112)可以嵌入在移动应用的应用代码110中。库112可以使用各种方法嵌入在受管理应用110中。用于嵌入库112的技术可以包括例如使用开发者添加到应用源代码的软件开发工具包(SDK)来嵌入库、将库包装成编译的应用二进制、将库注入到应用依赖的***库、和/或其他方法。在一个示例中,修改应用110的汇编代码以包括库112。可以将应用110的汇编代码修改成使得某些应用命令利用包括在同步库112中的命令来替换。例如,文件访问命令(诸如文件打开、文件写入、文件关闭、和/或文件读取命令)由包括在同步库112中的文件访问命令(例如,文件访问应用编程接口(API)命令)来替换。通过将库112嵌入在应用110中,库112可以访问应用的功能(例如,所有功能)。
在各种实施例中,同步库112可以被配置成同步和/或以其他方式将数据从受管理应用110传递到远程存储***120。在一些情况下,同步库112和/或与其相关联的管理代码监视由受管理应用110所执行的各种操作。在某些情况下,受管理应用110已经执行了影响移动应用的移动应用数据的操作的指示被接收。在一些情况下,受管理应用110已经执行了影响由移动应用持久地存储在移动设备上的移动应用数据的操作的指示被接收。移动应用数据可以包括与应用相关联的任何数据,包括例如文档、图像、结构化查询语言(SQL)文件、关键链数据(例如,密码、证书、用户凭证)、应用配置数据、应用设置、和/或任何其他应用相关的数据。在某些情况下,应用数据可以存储在移动设备102上的应用数据存储114中。影响移动应用数据的操作可以包括例如与应用数据存储114相关联的文件访问操作。文件访问操作可以包括例如文件打开、文件写入、文件读取、文件关闭、文件保存、和/或其他文件访问操作。在某些情况下,移动应用已经执行了操作的指示可以由同步库112接收。在一些情况下,影响移动应用数据的操作可以包括访问与应用110相关联的持久数据的***调用,诸如关键链数据、数据库、嵌入式浏览器缓存数据、和/或其他持久存储的数据。在某些情况下,同步库112拦截和/或以其他方式检测文件访问操作和/或影响存储在设备102上的移动应用数据的其他操作。
在一些实施例中,同步库112和/或与其相关联的管理代码将移动应用数据的至少部分同步到远程存储***120。在某些情况下,移动应用数据基于所接收的、应用110已经执行了影响持久地存储在设备102上的应用数据的操作的指示而被同步。在一个示例中,诸如文件写入操作之类的文件访问操作被库112检测。响应于所检测的文件访问操作,库112将应用数据同步到远程存储***120。在某些情况下,库112同步受文件访问操作所影响的移动应用数据。例如,库112可以同步由于移动应用所执行的文件访问操作而改变的移动应用数据。在另一示例中,库112可以评价某一时间段(诸如,两个文件访问操作之间的时段)之上的对移动应用数据的任何改变。库112可以同步在两个文件访问事件之间改变了的移动应用数据(例如,变量(delta))。例如,新生成的和/或修改后的移动应用数据可以被同步到远程存储***120。
在一些实施例中,库112通过从本地移动设备存储114检索移动应用数据并且将所检索的移动应用数据发送到远程存储***120来将数据同步到远程存储***120。例如,库112可以接收文件打开操作的指示,并且库112可以监视随后的应用操作。库112可以例如觉知可能正在发生对应用数据的修改,但库112可以在接收到移动应用操作的随后指示之前不对应用数据进行同步。库112随后可以接收应用已经执行了文件写入操作的指示。此时,库112可以从应用存储114检索由写入操作所修改的任何应用数据,并且可以将数据同步远程存储***120。在另一情况下,库112可以等待,直到应用110完成了对文件的修改。例如,库112可以在接收到文件关闭操作的指示之前不开始同步操作。当接收到文件关闭操作的指示时,库112可以访问与应用相关联的数据存储114,并且可以将包括在数据存储114中的应用数据同步到远程数据存储***120。在该情况下,修改后的应用数据可以在与远程存储***120的同步之前被存储在(例如,包括在应用存储114中的)应用同步缓存存储中。
根据各种实施例,库112可以将应用数据直接存储到远程存储***120。在一些情况下,一个或多个受管理应用110由存储库112配置成在外部存储中存储应用数据(例如,所有的应用数据)。在某些情况下,受管理应用110可以不包括本地移动设备存储114,并且所有的应用数据直接与远程存储***120同步。在某些情况下,本地移动设备存储114可以仅起作用以提供在外部存储处存储的数据的所有和/或一部分的缓存的本地拷贝。在一些情况下,移动设备102不包括本地移动设备存储114。例如,其可以确定移动设备102连接和/或频繁连接到的网络(例如,蜂窝网络)具有足够的带宽和/或连接速度,使得将文件直接存储到远程存储***120将不会减慢应用性能和/或以其他方式影响应用用户体验。在该情况下,当库112接收到应用已经执行了影响移动应用数据的操作的指示时,应用数据被直接同步到远程数据存储120。例如,库112可以接收诸如文件写入操作之类的文件访问操作的指示,并且响应于该指示,可以直接将应用数据发送到远程存储***120。在该情况下,应用数据可以例如在传输到远程存储***120之前不被存储在移动设备102本地的存储114中。
在一些实施例中,受管理应用110可以不将应用数据存储在应用文件目录中。在该情况下,包括JavaScript代码和/或其他代码的管理代码112可以被注入到受管理应用代码中以检索应用数据。例如,某些嵌入式网络浏览器应用(诸如Webview)不在应用目录中缓存数据。在一些情况下,嵌入式浏览器已经执行了包括由嵌入式浏览器的访问嵌入式浏览器缓存的***调用的操作的指示被接收。为了从嵌入式网络浏览器检索应用数据,Javascript代码被注入到嵌入式浏览器代码中,以控制嵌入式浏览器的行为。可以修改嵌入式网络浏览器的行为以访问嵌入式浏览器缓存来检索网页数据、网络历史、密码、表单自动填充数据、和/或其他数据。从嵌入式浏览器缓存所检索的数据的至少一部分可以被存储和/或同步到远程存储位置120。
根据一些实施例,本文所公开的技术可以用于同步关键链数据。在某些情况下,关键链数据(诸如用户密码、证书、和/或其他数据)被存储在与移动设备的操作***相关联的关键链储存库中。库112可能不可访问与移动设备操作***相关联的关键链储存库。在该情况下,库112可能不可访问关键链数据,因为它从应用110传到关键链储存库。然而,库112可以从关键链储存库接收应用110已经执行了访问持久关键链数据(诸如用户密码、证书和/或其他数据)的***调用的指示。当访问关键链数据时,库112可以检索/拦截关键链数据,并且关键链数据可以被存储和/或同步到远程存储***120。
在各种实施例中,移动应用数据基于触发事件而被同步到远程数据存储***。在一个示例中,触发事件可以包括例如应用110、移动设备102、和/或网络的状态和/或状态的改变。在一个示例中,当应用从非活动状态(例如,背景状态、断开状态等)转变为活动状态(例如,前景、活动状态等)时,应用数据可以被同步到远程存储***120。在另一示例中,当设备从通电转变为断电状态时,应用数据可以被同步到远程数据存储***120。在另外的示例中,当设备102连接到网络和/或从网络断开时,应用数据可以被同步到远程数据存储***120,所述网络诸如Wi-Fi网络、虚拟专用网(VPN)、蜂窝网络、和/或任何其他网络。在另外的示例中,管理代理104可以命令应用110将数据与远程存储***120同步,作为例如应用备份操作的一部分。
在一些实施例中,在远程存储***120处接收经同步的移动应用数据。在某些情况下,远程存储***120位于企业存储储存库(例如,企业后端存储)和/或另一位置中。远程存储***120可以以将数据与移动设备102、应用110、和/或移动设备102关联于的用户相关联的方式存储经同步的数据。在某些情况下,在MDM***内部署的每一个应用、用户和/或设备可以与远程存储***120中的存储(例如,文件夹、数据库、储存库)相关联。在一个示例中,第一存储122可以与诸如移动设备102的第一移动设备相关联。第一存储122可以包括例如与第一移动设备的文件和/或目录结构相关的文件和/或目录结构。在第一存储122内,可以存在用于第一设备上的一个或多个应用中的每一个的子存储。远程存储***120可以包括多个存储,多至与第N设备相关联的第N存储124。在另一示例中,第一存储122可以与设备上的第一应用相关联,诸如移动设备102上的应用110。并且远程存储***120可以包括多个应用特定存储,多至与设备102上的第N应用相关联的第N存储124,诸如第N受管理应用116。在另外的示例中,某一设备的多个用户中的每一个和/或单独的设备的多个用户中的每一个可以与存储相关联。例如,第一存储122可以与第一用户相关联。远程存储***120可以包括多个存储,多至与第N用户相关联的第N存储124。
在各种实施例中,在远程存储***处所接收的同步数据被处理并存储在与移动设备102、移动设备的用户、和/或设备102上的应用110相关联的存储中。在某些情况下,同步数据可以在存储之前使用例如去重复(de-duplication)、压缩、加密、和/或其他处理来处理。
图2A是图示将移动应用数据存储到远程存储***的过程的实施例的流程图。在各种实施例中,图2A的过程可以使用包括存储库(诸如图1的存储库112)的管理代码来实现。在210处,移动应用已经执行了影响移动应用的移动应用数据的操作的指示被接收。该指示可以由包括在移动应用中的移动应用代码中所嵌入的管理代码(诸如存储库)接收。在220处,移动应用数据的至少一部分至少部分地基于该指示而被存储到远程存储***。移动应用数据可以至少部分地由移动应用代码中所嵌入的管理代码(诸如存储库)存储到远程存储***。
图2B是图示将移动应用数据同步到远程存储***的过程的实施例的流程图。在各种实施例中,图2B的过程可以使用包括同步库(诸如图1的同步库112)的管理代码来实现。在250处,移动应用已经执行了影响持久地存储在移动设备上的移动应用数据的操作的指示被接收。该指示可以由包括在移动应用中的移动应用代码中所嵌入的管理代码(诸如同步库)接收。在260处,由移动应用持久地存储的移动应用数据的至少一部分被同步到远程存储***。
在一些实施例中,管理代码接收已经发生了文件访问操作的指示。文件访问操作可以包括例如文件打开、文件写入、文件读取、文件关闭、和/或其他操作。管理代码可以拦截由移动应用的执行文件访问操作的请求。在一个示例中,管理代码拦截从应用代码到包括持久应用数据的应用数据存储的执行文件访问操作(诸如文件写入操作)的请求。基于所拦截的请求,管理代码可以评价存储在设备上的持久数据存储中的应用数据。基于该评价,持久地存储在移动设备上的移动应用数据的至少一部分被同步到远程数据存储***。在某些情况下,由应用持久地存储的所有移动应用数据被同步到远程数据存储***。在一些情况下,受文件访问操作所影响的移动应用数据的部分被标识,并且移动应用数据的所标识部分被同步到远程存储***。在一个示例中,文件写入操作由应用执行以修改文档。管理代码可以接收文件写入操作的指示,并且可以标识受文件写入操作所影响的文档的部分。包括文档和/或文档的经修改部分的移动应用数据可以被同步到远程数据存储***。在一些情况下,由应用持久地存储的所有应用数据可以在检测到与该文档相关联的文件写入操作时被同步到远程数据存储。
图3是图示将应用数据与远程存储***同步的过程的实施例的流程图。在各种实施例中,图3的过程可以使用包括同步库(诸如图1的同步库112)的管理代码来实现。在310处,移动应用已经执行了影响移动应用数据的操作的指示被接收。如以上所讨论的,影响移动应用数据的操作可以包括文件访问操作,诸如文件打开、文件写入、文件读取、文件关闭、和/或其他操作。基于执行操作的所接收的指示,可以确定的是,由应用所存储的移动应用数据要与远程数据存储***同步。
在320处,确定移动设备和远程存储***之间的连接是否存在。在各种实施例中,当设备连接到蜂窝网络、Wi-Fi网络、虚拟专用网(VPN)、和/或其他网络时,可能存在移动设备和远程存储***之间的连接。在移动设备和远程存储***之间存在连接的事件中,处理前进到步骤350。在移动设备是离线的和/或以其他方式不存在连接的事件中,处理前进到步骤330。
在330处,同步数据被存储在移动设备上。在各种实施例中,嵌入在移动应用中的管理代码确定(例如,基于已经执行了文件访问操作的指示)由移动应用持久地存储的应用数据要与远程存储***同步。管理代码可以例如评价在移动设备上持久地存储的应用数据来确定要同步的一组应用数据。可以选择包括一组应用数据的同步数据,并且同步数据针对同步被准备并存储在移动设备上的缓存存储中。在一个示例中,由应用持久地存储在设备上的所有应用数据可以被选择用于同步。在该情况下,同步数据可以包括由应用持久地存储的所有应用数据并且同步数据被存储在缓存存储中。在另一示例中,可以确定的是,只有受应用操作(例如,文件写入操作)所影响的应用数据要被同步。在该情况下,同步数据包括操作影响的数据,并且同步数据被存储在移动设备上的缓存存储中。在各种实施例中,存储在移动设备上(例如,在缓存存储中)的同步数据被加密。通过加密例如在缓存存储中所存储的数据,可以最小化潜在的数据泄漏。
在340处,确定存在到移动设备和远程存储***之间的连接。在各种实施例中,管理代码和/或另一组件可以监视移动设备网络连接状态。当移动设备连接到网络(诸如蜂窝网络、Wi-Fi网络、VPN等)时,可以确定的是,存在移动设备和远程存储***之间的连接。
在350处,同步数据被发送到远程存储***。嵌入在应用中的管理代码可以例如将同步数据提供给远程存储***。在一些实施例中,同步数据本地地存储在移动设备上。在该情况下,管理代码从本地存储(例如,应用缓存存储)检索同步数据并且将同步数据提供给远程存储***。
图4是图示在远程存储***处存储同步数据的过程的实施例的流程图。在各种实施例中,在诸如图1的远程存储***120的远程存储***处执行图4的过程。在410处,同步数据被接收。在各种实施例中,在远程存储***处从移动设备接收同步数据。可以从例如受管理应用和/或与受管理应用相关联的管理代码接收同步数据。如以上所讨论的,同步数据可以包括应用数据,诸如受文件访问操作所影响的应用数据。
在420处,同步数据被处理。在各种实施例中,同步数据被处理以标识同步数据从其被发送的应用和/或设备。同步数据可以被处理以标识与数据相关联的用户(例如,发送了同步数据的设备和/或应用的用户)。在一些实施例中,将同步数据与之前存储的例如来自相同应用的同步数据相比较。在该情况下,确定相对于之前同步的数据不同的同步数据的部分。在某些情况下,只有自之前同步起已经改变的同步数据被存储。在其他情况下,应用的当前状态的快照基于所接收的同步数据而被更新,以使得针对应用的经同步的数据反映应用的当前状态(例如,当前设置、配置、应用数据等)。在一些实施例中,同步数据被压缩和/或以其他方式被处理以最小化所使用的数据存储的量。
在430处,同步数据以将该数据与移动设备、用户和/或应用相关联的方式被存储。在各种实施例中,在MDM***内部署的每一个应用、用户和/或设备可以与远程存储***处的存储和/或其部分相关联。在某些情况下,与设备相关联的设备和/或用户被分派远程存储***处的存储储存库。存储储存库可以包括用于设备上的一个或多个应用中的每一个的目录和/或子存储。在某些情况下,用于设备的存储储存库的目录结构可以匹配于和/或类似于设备上的本地存储的目录结构。
在各种实施例中,从设备上的应用所接收的同步数据被存储在与该设备相关联的存储储存库中。同步数据可以例如被存储在与应用相关联的目录中,所述应用被包括在针对移动设备和/或移动设备用户的存储储存库中。
图5是图示在帮助台会话中使用经同步数据的***的实施例的框图。在各种实施例中,本文所公开的技术可以被用来允许帮助台技术人员诊断和/或检修用户的移动设备上的应用相关的问题。例如,用户的移动设备102上的应用110可能不恰当地起作用,并且用户可以从帮助台(例如,企业帮助台)请求协助。为了协助用户,帮助台技术人员可以在与帮助台技术人员相关联的移动设备502上安装不在用户的移动设备102上起作用的应用510的实例。在某些情况下,使用帮助台控制台/***500的帮助台技术人员将通信发送到设备管理服务器130(箭头“1”),从而请求与应用110相关联的同步数据,其不在用户的设备102上起作用。通信可以例如标识移动设备102(例如,雇员的移动设备——设备1)、移动设备用户、应用实例110、和/或其他信息。设备管理服务器130可以接收请求。
在各种实施例中,设备管理服务器130将命令发送到远程存储***120,以将与应用110的实例相关联的经同步应用数据提供给帮助台技术人员的移动设备502(箭头“2”)。基于来自设备管理服务器130的命令,远程存储***从用户的移动设备102上的应用110检索经同步数据。经同步数据可以例如被存储在远程存储***120处的分配给用户的移动设备(例如,设备1)的数据存储122中。
在一些实施例中,远程存储***120将经同步应用数据提供给与帮助台技术人员相关联的移动设备502(箭头“3”)。经同步应用数据可以包括与雇员的设备102上的应用110相关联的经同步应用数据。在某些情况下,经同步应用数据可以包括当前与雇员的设备102上的应用相关联的应用数据。例如,经同步数据可以包括当前适用于雇员的设备上的应用实例110的应用数据的快照。经同步应用数据可以包括例如与应用110相关联的应用数据、关键链数据(例如,密码、证书、用户凭证等)、应用配置数据、应用设置、和/或任何其他数据。在某些情况下,经同步应用数据被提供给与帮助台技术人员移动设备502上的应用实例510相关联的本地存储514。在一些实施例中,发送给应用实例510的同步应用数据可以被反射(mirror),以允许帮助台设备502上的应用的实例510在不与雇员的移动设备102进行通信和/或变更存储在远程存储***120中的数据的情况下与经同步应用数据进行交互。
在各种实施例中,应用510在帮助台技术人员的移动设备502上启动。来自远程数据存储120的经同步应用数据被加载在应用实例510中。并且关于雇员的设备上的应用的实例110的问题可以在帮助台技术人员的移动设备502上的应用的实例510中重新创建。帮助台技术人员可以诊断关于应用实例510的问题,改变应用设置,重新配置应用实例510和/或执行其他操作。一旦问题已经由技术人员解决,则与帮助台移动设备520上的应用实例510相关联的库512将任何改变后的应用数据(包括例如改变/更新后的应用设置、应用配置信息、和/或其他信息)与远程存储***120进行同步(箭头“4”)。
在各种实施例中,远程存储***120在与雇员的移动设备122相关联的存储和/或远程存储***120处的另一存储中存储来自帮助台移动设备502的改变/更新后的同步数据。远程存储***120将来自帮助台移动设备502上的应用的实例510的改变后的同步数据与雇员的移动设备102上的应用实例110进行同步(箭头“5”)。在各种实施例中,远程存储***120将来自帮助台移动设备502上的应用的实例510的改变后的同步数据与多个用户的设备上的应用的实例进行同步。来自帮助台移动设备502的同步数据可以包括更新设置、应用配置信息、和/或其他应用数据,其当被应用到雇员的移动设备102上的应用实例110时解决关于应用110的问题。使用这些技术,帮助台技术人员可以标识关于雇员的设备102上的应用的实例110的问题,确定针对该问题的解决方案,和/或将解决方案应用到雇员的设备上的应用的实例110,而不用物理地与雇员的设备进行交互和/或引导用户通过解决该问题的步骤。
在各种实施例中,可以在移动设备102上提供通知以向用户警报(例如,如由帮助台技术人员所修改的)应用数据要被同步到应用110。可以向用户输出提示以批准与来自帮助台应用实例510的应用数据的应用实例110的同步。在某些情况下,可以仅在改变的尺度、经同步数据和/或所存储数据的量、和/或其他因素指示应当在将改变应用到应用实例510之前提示用户的情况下输出通知和/或提示。例如,如果对应用110的改变较小,则可以不通知用户。然而,如果改变的尺度很大,则可以提示用户以批准改变。在某些情况下,通知可以使用平台推送通知服务而被发送到应用110和/或移动设备102。
在一些实施例中,应用实例510可以向帮助台技术人员提供附加功能。帮助台移动设备502上的应用实例510可以例如提供直接修改某些应用数据以使用应用数据来构建模板的能力。例如,可以生成包括应用配置、应用设置、和/或其他信息的模板。在某些情况下,包括例如用户特定信息(例如,电子邮件应用中的电子邮件地址)的模板中的应用设置可以利用通用参数(例如,$EMAIL$)替换。可以在帮助台移动设备502处修改包括模板的应用实例510,并且远程存储120可以例如将对模板的改变应用到如存储在多个用户的设备上的应用的多个实例。在一个示例中,对帮助台移动设备502上的应用实例510中的电子邮件应用模板做出改变,并且对电子邮件应用模板的改变可以被同步到多个用户的移动设备。
图6是图示备份应用数据的***的实施例的框图。在各种实施例中,本文所公开的技术可以用来备份受管理应用数据。在某些情况下,用户可能需要从设备备份受管理应用数据并且随后将数据恢复到同一设备和/或不同的设备。在一个示例中,可以升级移动设备操作***,并且如果升级导致一个或多个应用中的错误,则可能必需重新安装应用。安装应用中的错误可能导致延迟和/或降低雇员生产率。使用本文所公开的技术,当用户对新设备进行升级和/或改变时,来自远程存储***的应用数据可以被同步到新的移动设备并且新设备上的一个或多个应用可以被恢复到之前的状态。
在所示的示例中,可以在移动设备102上的管理代理104处发起备份操作。在一个示例中,设备102的用户可以调用管理代理102以发起应用数据备份操作。在另一示例(未示出)中,设备管理服务器130命令管理代理发起备份操作。在某些情况下,管理代理104生成备份指令信息(例如,备份指令)。备份指令信息可以包括将应用数据同步到远程存储***的命令、命令适用于的一个或多个受管理应用的列表、应用要同步所采用的次序/顺序、用于每一个应用的备份状态信息、和/或其他信息。
在各种实施例中,管理代理104启动第一应用和/或将备份指令信息提供给第一受管理应用110(箭头“1”)。在某些情况下,管理代理104可以使用与第一应用110相关联的统一资源定位符(URL)方案启动/激活第一应用。备份指令信息使用安全应用连接总线108从管理代理104提供给第一受管理应用110。第一受管理应用110和/或同步库112接收备份指令信息。备份指令信息可以包括用于使第一受管理应用将应用数据与远程存储***120同步的命令。基于该命令,第一受管理应用110将其应用数据同步到远程存储***120(箭头“2”)。在各种实施例中,远程存储***120包括备份存储***。在某些情况下,第一受管理应用110可以将所有应用数据同步到远程存储***120。在其他情况下,第一受管理应用110可以将其应用数据的一部分同步到远程存储***120。在一个示例中,第一受管理应用110同步(例如,仅同步)自最后的同步操作起已经改变了的应用数据。当完成同步操作时,远程存储***120可以包括第一应用110的应用数据的当前快照。在一些情况下,远程存储***120在与第一应用122相关联的存储储存库中存储来自第一应用110的同步数据。在其他情况下,远程存储***120在与移动设备102相关联的存储储存库中的用于第一应用的目录和/或文件夹中存储来自第一应用110的同步数据。
在各种实施例中,一旦第一应用110已经将其应用数据同步到远程存储***120,则第一应用110更新备份指令信息,以指示第一应用已经完成了到远程存储***120的数据的同步。在某些情况下,备份指令信息中的用于第一应用的同步状态可以被更新为完成状态。第一应用110可以标识要将备份指令信息发送到其的下一应用,并且第一应用110启动该下一应用和/或将备份指令信息发送到下一应用(箭头“3”)。
在各种实施例中,该下一应用(未示出)可以将应用数据同步到远程存储***,更新备份指令信息以指示其应用数据已经被同步,和/或将备份指令数据提供给应用顺序中的下一应用。该过程可以针对一个或多个应用重复,直到备份指令数据被提供给移动设备102上的第N应用116。第N应用116可以将其应用数据同步到远程存储***120(箭头“4”)。一旦完成,则第N应用116更新备份指令信息,并且确定所有的应用已经与远程存储***120同步了数据。
在各种实施例中,要与远程数据***120同步的最后的应用116(例如,第N应用)启动管理代理104和/或将备份指令信息提供给管理代理(箭头“5”)。在一些实施例中,管理代理104生成和/或显示与远程数据***120同步的应用的状态。在一些实施例中,可以生成(例如,由管理代理104)、命名和/或存储备份状态的快照。在一些实施例中,管理代理104向设备管理服务器130提供快照和/或其他备份存储状态信息。设备管理服务器130可以存储备份快照信息和/或其他备份状态信息。可以在应用数据恢复操作中使用该信息,如以下详细描述的。
在各种实施例(未示出)中,管理代理104可以生成备份指令信息,其包括用于使多个应用同时地与远程存储***120同步的指令。在该情况下,将备份指令信息并行地提供给多个应用,并且多个应用可以同时地和/或基本上同时地将应用数据同步到远程存储***120。
图7是图示在移动设备上发起备份操作的过程的实施例的流程图。在各种实施例中,在移动设备上的管理代理(诸如,图6的管理代理104)处实现图7的过程。在710处,备份指令信息被生成并发送到一个或多个应用。在各种实施例中,备份指令信息可以包括用于使一个或多个应用将应用数据同步到远程存储***的命令、一个或多个受管理应用的列表、应用要同步所采用的次序/顺序、用于每一个应用的备份状态信息、和/或其他信息。例如,管理代理可以确定移动设备上的一个或多个应用要将其应用数据备份/同步到远程存储***。备份指令信息可以包括一个或多个应用的列表。备份指令信息可以包括针对每一个应用的指令该应用要将其数据与远程存储***同步的命令。备份指令信息可以包括应用要将其应用数据同步到远程存储***所采用的次序和/或顺序。在一个示例中,该顺序可以指令受管理浏览器应用与远程存储***同步然后将备份指令信息提供给受管理电子邮件应用。受管理电子邮件应用与远程存储***同步,并将备份指令信息提供给另一应用,并且如此直到设备上的第N应用已经与远程存储***同步。在另一示例中,该顺序可以指令多个应用同时与远程数据存储***进行同步。备份指令信息可以包括用于每一个应用备份的状态。在任何同步操作之前,与每一个应用相关联的状态可以包括“同步未完成。”当应用将其数据同步到远程存储***时,应用可以将状态更新为“同步完成”和/或另一状态。在各种实施例中,将备份指令信息提供给一个或多个应用,并且发起备份操作。
在720处,备份操作完成的指示被接收。在各种实施例中,要将其应用数据同步到远程存储***的最终应用可以启动管理代理和/或向管理代理发送指示备份操作完成的通知。在某些情况下,通知可以包括备份指令信息。管理代理可以检查包括在备份指令信息中的备份状态信息以验证在备份指令信息中列出的每一个应用已经将数据同步到远程存储***。
在730处,生成备份摘要信息。在各种实施例中,管理代理生成备份摘要信息。备份摘要信息可以包括备份的快照。备份的快照可以指示每一个应用的备份状态、针对每一个应用的备份的时间、和/或其他信息。在一些情况下,快照可以指示和/或概述在同步/备份时与一个或多个应用中的每一个相关联的应用数据。快照可以被命名和/或存储在设备上。
在740处,将备份摘要信息提供给设备管理服务器。在各种实施例中,管理代理将备份摘要信息提供给设备管理服务器。设备管理服务器可以存储备份摘要信息,其包括例如快照信息和/或其他备份摘要信息。可以在受管理应用恢复操作中使用备份摘要信息,如以下详细描述的。
在各种实施例中,存储在设备管理服务器处的备份摘要信息被用来确定在某一时间点处与设备相关联的应用数据、应用配置、应用设置、和/或其他应用相关的信息。在一个示例中,备份摘要信息可以被用来确定针对已丢失的电话的应用信息。例如,当雇员丢失其电话时,企业信息技术(IT)部门可能需要确定雇员的丢失的电话的内容,以确定要采取的任何适当动作。企业可以确定例如在设备上是否包括任何机密数据并且可以基于该确定而采取适当的动作。基于指示电话上的应用数据包括公司机密信息的信息,IT部门可以确定所丢失的手机要被擦净(wipe)。
图8是图示将应用数据备份到远程存储***的过程的实施例的流程图。在810处,在应用处接收备份指令信息。在各种实施例中,应用由管理代理和/或之前应用启动,以与远程存储***同步/备份数据。应用接收备份指令信息,其包括用于使应用将其数据与远程存储***同步的指令/命令。
在820处,应用将其应用数据的至少一部分同步到远程存储***。在各种实施例中,与应用相关联的同步库将应用数据同步到远程数据存储***。在某些情况下,应用将所有应用数据(例如,持久地存储到移动设备本地存储的所有应用数据)同步到远程存储***。在其他情况下,第一受管理应用110可以将其应用数据的一部分同步到远程存储***120。在一个示例中,第一受管理应用110同步(例如,仅同步)自最后的同步操作起已经改变了的应用数据。
在830处,应用更新备份指令信息,以指示其应用数据已经被同步到远程存储***。在各种实施例中,应用更新包括在备份指令信息中的同步/备份状态信息以指示同步/备份过程完成。
在840处,应用确定附加应用是否要将应用数据同步到远程存储***。在某些情况下,备份指令信息包括应用要将信息备份到远程存储***所采用的顺序和/或次序。在附加应用在顺序中跟随当前应用的事件中,可以确定的是,附加应用要与远程存储***同步。在一些情况下,应用可以评价包括在备份指令信息中的同步状态信息以确定附加应用是否要将应用数据同步到远程存储***。在与一个或多个应用相关联的同步状态未完成的事件中,可以确定的是,应用还必须将其应用数据同步到远程存储***。在确定没有附加应用要将其数据同步到远程存储***的事件中,该过程前进到步骤850。在确定附加应用要将其数据同步到远程存储***的事件中,该过程前进到步骤860。
在850处,确定备份操作完成。在各种实施例中,要将应用数据同步远程存储***的最终的应用启动管理代理和/或将备份指令信息提供给管理代理。
在860处,将备份指令信息提供给下一应用。在各种实施例中,应用评价备份指令信息以确定要将其应用数据同步到远程存储***的应用顺序中的下一应用。可以启动该下一应用(例如,使用URL方案技术)并将备份指令信息提供给该下一应用(例如,经由安全应用连接总线)。然后,该过程可以前进到步骤810,并且该下一应用可以接收备份指令信息并且将其数据与远程存储***同步。
图9是图示恢复应用数据的***的实施例的框图。在各种实施例中,本文所公开的技术被用来将一个或多个应用恢复到之前同步的状态。在一个示例中,用户购买了新的移动设备,并且用户可能想要将新设备上的一个或多个应用配置为之前同步的状态,诸如用户的旧设备上的(多个)应用的状态。在各种实施例中,在设备102上的管理代理104处发起恢复操作。管理代理104可以例如接收来自用户的将一个或多个应用恢复到之前状态的命令。管理代理104可以与设备管理服务器130通信以确定备份快照(箭头“1”)。在某些情况下,管理代理104从设备管理服务器130检索备份快照的列表。管理代理可以确定用于设备102上的一个或多个应用中的每一个的适当备份快照、备份时间、和/或其他信息。所确定的(多个)快照可以包括最接近于用户设法将设备上的(多个)应用恢复到的时间的备份快照。在各种实施例中,管理代理104生成数据恢复指令信息。数据恢复指令信息可以包括从远程存储***检索应用数据的命令、一个或多个受管理应用的列表、应用要从远程存储***检索数据所采用的次序/顺序、用于每一个应用的恢复状态信息、和/或其他信息。在某些情况下,数据恢复指令信息包括将应用数据恢复到最近备份的状态的命令。在一些情况下,数据恢复指令信息包括将应用数据恢复到特定时间和/或日期(诸如到远程存储***的之前同步的时间和/或日期)处的应用状态的命令。
在各种实施例中,启动第一应用110和/或将数据恢复指令信息提供给第一应用(箭头“2”)。在某些情况下,管理代理104可以使用与第一应用110相关联的URL方案来启动/激活第一应用110。数据恢复指令信息可以使用安全应用连接总线108从管理代理104提供给第一受管理应用110。第一受管理应用110和/或与其相关联的同步库112接收数据恢复指令信息。
在一些实施例中,第一应用110从远程存储***120检索经同步应用数据(箭头“3”)。从远程存储***120所检索的经同步数据可以被存储在用于移动设备102上的第一应用的本地存储(未示出)中。在某些情况下,第一应用110可以基于数据恢复指令信息从远程存储***120检索经同步应用数据以将应用恢复到如在数据恢复指令信息中所限定的之前的时间点处的应用的状态。当检索到经同步数据时,第一应用110设置、配置、应用数据和/或其他信息可以被恢复到之前的状态(例如,同步数据被发送到远程存储***120的时间处的状态)。
在各种实施例中,一旦第一应用110已经恢复其应用数据,则第一应用110更新数据恢复指令信息以指示第一应用已经完成了恢复操作。在某些情况下,恢复指令中的用于第一应用的数据恢复状态可以被更新为完成状态。第一应用110可以标识要将数据恢复指令信息发送到其的下一应用,并且第一应用110启动该下一应用(例如,使用URL方案)和/或将备份指令信息发送到下一应用(例如经由安全应用连接总线108)(箭头“4”)。
在各种实施例中,该下一应用(未示出)可以从远程存储***检索经同步数据和/或将应用恢复到之前状态。该下一应用可以更新恢复指令,以指示其应用数据已经被恢复。然后,应用可以启动随后的应用和/或将恢复指令提供给随后的应用。该过程可以针对一个或多个应用重复,直到恢复指令被提供给移动设备102上的第N应用116。第N应用116可以从远程存储***120检索经同步数据(箭头“5”)。一旦完成,则第N应用116更新恢复指令中的它的状态,并且第N应用116可以确定所有应用已经从远程存储***120检索到经同步数据并且已经被恢复到之前状态。
在各种实施例中,要从远程存储***120检索经同步数据的最后的应用116(例如,第N应用)启动管理代理104和/或将恢复指令信息提供给管理代理(箭头“5”)。在某些情况下,受管理应用可以在此时被恢复到它们在之前时间点处所处的状态,诸如如安装在之前设备上的(多个)应用的状态。
在各种实施例(未示出)中,管理代理104可以生成数据恢复指令信息,其包括用于使多个应用同时地从远程存储***120检索经同步数据的指令。在该情况下,将恢复指令信息并行地提供给多个应用,并且多个应用可以同时地和/或基本上同时地从远程存储***120检索经同步应用数据。
图10是图示将应用恢复到之前状态的过程的实施例的流程图。在1010处,在应用处接收数据恢复指令信息。在各种实施例中,应用由管理代理和/或之前应用启动,以从远程存储***检索经同步数据。应用接收恢复指令信息,其包括用于使应用将其自身恢复到之前状态的指令/命令。数据恢复指令信息可以例如标识与之前由应用所执行的同步操作相关联的时间和/或日期。数据恢复指令信息可以命令应用从远程存储***检索在过去的某一时间和/或日期处被同步到远程存储***的同步数据。
在1020处,应用从远程存储***检索同步数据。在各种实施例中,与应用相关联的同步库从远程存储***检索同步数据。同步库可以例如检索如在数据恢复指令信息中所限定的过去的某一时间和/或日期处被同步到远程存储***的同步数据。在一个示例中,同步库可以从远程存储***检索经同步应用数据,其在特定备份操作(诸如最近的备份操作)中被同步到远程存储***。
在1030处,从远程存储***所检索的同步数据被用来将应用恢复到之前状态。在各种实施例中,从远程存储***所检索的经同步数据包括在之前时间点处被同步到远程存储***的应用数据、应用配置信息、应用设置、和/或其他应用相关的数据。所检索的同步数据可以用来将应用恢复到其在之前时间点处的状态(例如,配置、设置、数据等)。在一个示例中,将用户的新移动设备上的应用恢复到用户的之前移动设备上的应用的实例的状态。在同步的时间处适用于用户的之前设备上的应用的设置、配置、关键链数据、凭证、密码、证书、应用数据、和/或其他数据被应用到用户的新移动设备上的应用的实例。
在1040处,数据恢复指令信息被更新以指示应用已经被恢复。在各种实施例中,应用更新包括在数据恢复指令信息中的数据恢复状态信息,以指示应用已经检索到同步数据已经恢复到之前状态。
在1050处,应用确定是否要恢复附加应用。在某些情况下,数据恢复指令信息包括要恢复应用所采用的顺序和/或次序。在附加应用在顺序中跟随当前应用的事件中,可以确定的是,要恢复附加应用。在一些情况下,应用可以评价与一个或多个应用相关联的数据恢复状态信息,以确定任何附加应用是否被提名以执行数据恢复操作。在与应用相关联的数据恢复状态被列出为未完成的事件中,可以确定的是,应用还必须从远程存储***检索经同步数据和/或将其自身恢复到之前状态。在确定没有附加应用要被恢复的事件中,该过程前进到步骤1060。在确定要恢复(多个)附加应用的事件中,该过程前进到步骤1070。
在1060处,确定应用数据恢复操作完成。在各种实施例中,要从远程存储***检索经同步数据和/或将其自身恢复到之前状态的最终的应用启动管理代理和/或将数据恢复指令信息提供给管理代理。
在1070处,将数据恢复指令信息提供给下一应用。在各种实施例中,应用评价数据恢复指令信息,以确定要从远程存储***检索经同步数据和/或将其自身恢复到之前状态的应用顺序中的下一应用。可以启动该下一应用(例如,使用URL方案技术),并且将数据恢复指令信息提供给该下一应用(例如,经由安全应用连接总线。然后,该过程可以前进到步骤1010,并且该下一应用可以接收数据恢复指令信息。
虽然已经出于理解清楚的目的相当详细地描述了前述实施例,但本发明不限于所提供的细节。存在实现本发明的许多替代方式。所公开的实施例是说明性而不是限制性的。

Claims (21)

1.一种用于应用同步的方法,包括:
在包括一个或多个非受管理移动应用和由设备管理服务器管理的多个受管理移动应用的移动设备的第一受管理移动应用处接收备份指令信息,其中所述备份指令信息包括指示所述移动设备的受管理移动应用的顺序的数据以及与按照受管理移动应用的顺序包含的每个受管理移动应用相关联的相应状态,其中所述第一受管理移动应用已经执行了影响所述第一受管理移动应用的移动应用数据的操作;
将所述第一受管理移动应用的移动应用数据的至少一部分存储到远程存储***,其中所述备份指令信息由包括在所述第一受管理移动应用中的移动应用代码中所嵌入的管理代码接收并且所述存储至少部分地由所述管理代码执行;
在将第一受管理移动应用的移动应用数据的至少一部分存储到所述远程存储***之后,更新与第一受管理移动应用相关联的状态;以及
由所述第一受管理移动应用,基于指示所述顺序的数据,向所述移动设备的第二受管理移动应用的移动应用代码中所嵌入的相应管理代码提供所述备份指令信息,其中响应于接收到所述备份指令信息,所述移动设备的第二受管理移动应用的移动应用代码中所嵌入的相应管理代码将所述第二受管理移动应用的移动应用数据的至少一部分存储到所述远程存储***,其中按照所述多个受管理移动应用的顺序包含的移动应用的最后一个受管理移动应用被配置为向移动设备的管理代理提供指示备份操作完成的通知,其中所述管理代理被配置为验证按照受管理移动应用的顺序包含的多个受管理移动应用已完成将它们的相应数据存储到所述远程存储***。
2.根据权利要求1所述的方法,其中所述操作包括用于访问持久数据的***调用。
3.根据权利要求1所述的方法,其中所述操作包括文件访问操作。
4.根据权利要求3所述的方法,其中所述操作包括文件打开、文件写入、文件读取和文件关闭中的一个或多个。
5.根据权利要求3所述的方法,进一步包括使用所述管理代码来拦截由所述第一受管理移动应用所做的、执行文件访问操作的请求。
6.根据权利要求1所述的方法,其中:
所述第一受管理移动应用的移动应用数据包括由所述第一受管理移动应用持久地存储在所述移动设备上的移动应用数据;并且
存储包括将由所述第一受管理移动应用持久地存储在所述移动设备上的所述移动应用数据的至少一部分同步到所述远程存储***。
7.根据权利要求6所述的方法,其中将由所述第一受管理移动应用持久地存储在所述移动设备上的所述移动应用数据的至少一部分同步到所述远程存储***包括将受文件访问操作所影响的所述移动应用数据的部分同步到所述远程存储***。
8.根据权利要求6所述的方法,其中将由所述第一受管理移动应用持久地存储在所述移动设备上的所述移动应用数据的至少一部分同步到所述远程存储***至少部分地响应于从移动设备上的所述管理代理所接收的通信而被执行。
9.根据权利要求8所述的方法,还包括使用移动设备上的安全应用连接总线向移动设备上的所述第二受管理移动应用提供所述备份指令信息以提示第二受管理移动应用同步所述第二受管理移动应用的所述移动应用数据。
10.根据权利要求1所述的方法,其中如果在当移动设备和远程存储***之间的连接不存在时的时间处执行所述操作,则异步地执行将所述第一受管理移动应用的移动应用数据的至少一部分存储到远程存储***,包括通过在移动设备上存储所述第一受管理移动应用的移动应用数据直到能够建立这样的连接以及使用所述连接来将所述第一受管理移动应用的移动应用数据发送到远程存储***。
11.根据权利要求10所述的方法,其中在移动设备上存储所述第一受管理移动应用的移动应用数据包括对所述第一受管理移动应用的移动应用数据进行加密以及在移动设备上存储加密后的移动应用数据。
12.根据权利要求1所述的方法,还包括将与移动设备相关联的移动应用配置数据同步到远程存储***。
13.根据权利要求1所述的方法,其中远程存储***包括备份存储***。
14.根据权利要求13所述的方法,还包括使用存储到远程存储***的移动应用数据来将所述第一受管理移动应用的移动应用数据恢复到移动设备。
15.根据权利要求1所述的方法,其中远程存储***被配置成以将所存储的数据与以下中的一个或两个相关联的方式存储所存储的数据:所述移动设备,以及所述移动设备所相关联的用户。
16.根据权利要求1所述的方法,其中远程存储***被配置成向经授权的远程用户提供对所存储的数据的访问。
17.根据权利要求16所述的方法,其中远程存储***被配置成:使得经授权的远程用户能够对所存储的数据做出改变,并且将由经授权的远程用户对存储在远程存储***处的所存储的数据所做出的改变同步到所述移动设备。
18.根据权利要求16所述的方法,其中远程存储***被配置成:使得经授权的远程用户能够对所存储的数据做出改变,并且将由经授权的远程用户对存储在远程存储***处的所存储的数据所做出的改变同步到多个移动设备。
19.根据权利要求16所述的方法,其中远程存储***被配置成使得经授权的远程用户能够使用所存储的数据来生成与移动应用相关联的模板、修改模板、以及将修改后的模板与多个移动设备进行同步。
20.一种用于应用同步的***,包括:
处理器;以及
与所述处理器耦合的存储器,其中所述存储器被配置成向所述处理器提供指令,所述指令当被执行时使得所述处理器:
在包括一个或多个非受管理移动应用和由设备管理服务器管理的多个受管理移动应用的移动设备的第一受管理移动应用处接收备份指令信息,其中所述备份指令信息包括指示所述移动设备的受管理移动应用的顺序的数据以及与按照受管理移动应用的顺序包含的每个受管理移动应用相关联的相应状态,其中所述第一受管理移动应用已经执行了影响所述第一受管理移动应用的移动应用数据的操作;
将所述第一受管理移动应用的移动应用数据的至少一部分存储到远程存储***,其中所述备份指令信息由包括在所述第一受管理移动应用中的移动应用代码中所嵌入的管理代码接收并且所述存储至少部分地由所述管理代码执行;
在将第一受管理移动应用的移动应用数据的至少一部分存储到所述远程存储***之后,更新与第一受管理移动应用相关联的状态;以及
由所述第一受管理移动应用,基于指示所述顺序的数据,向所述移动设备的第二受管理移动应用的移动应用代码中所嵌入的相应管理代码提供所述备份指令信息,其中响应于接收到所述备份指令信息,所述移动设备的第二受管理移动应用的移动应用代码中所嵌入的相应管理代码将所述第二受管理移动应用的移动应用数据的至少一部分存储到所述远程存储***,其中按照所述多个受管理移动应用的顺序包含的移动应用的最后一个受管理移动应用被配置为向移动设备的管理代理提供指示备份操作完成的通知,其中所述管理代理被配置为验证按照受管理移动应用的顺序包含的多个受管理移动应用已完成将它们的相应数据存储到所述远程存储***。
21.一种有形非暂时性计算机可读存储介质,其上存储了包括计算机指令的计算机程序,所述计算机指令用于:
在包括一个或多个非受管理移动应用和由设备管理服务器管理的多个受管理移动应用的移动设备的第一受管理移动应用处接收备份指令信息,其中所述备份指令信息包括指示所述移动设备的受管理移动应用的顺序的数据以及与按照受管理移动应用的顺序包含的每个受管理移动应用相关联的相应状态,其中所述第一受管理移动应用已经执行了影响所述第一受管理移动应用的移动应用数据的操作;
将所述第一受管理移动应用的移动应用数据的至少一部分存储到远程存储***,其中所述备份指令信息由包括在所述第一受管理移动应用中的移动应用代码中所嵌入的管理代码接收并且所述存储至少部分地由所述管理代码执行;以及
在将第一受管理移动应用的移动应用数据的至少一部分存储到所述远程存储***之后,更新与第一受管理移动应用相关联的状态;以及
由所述第一受管理移动应用,基于指示所述顺序的数据,向所述移动设备的第二受管理移动应用的移动应用代码中所嵌入的相应管理代码提供所述备份指令信息,其中响应于接收到所述备份指令信息,所述移动设备的第二受管理移动应用的移动应用代码中所嵌入的相应管理代码将所述第二受管理移动应用的移动应用数据的至少一部分存储到所述远程存储***,其中按照所述多个受管理移动应用的顺序包含的移动应用的最后一个受管理移动应用被配置为向移动设备的管理代理提供指示备份操作完成的通知,其中所述管理代理被配置为验证按照受管理移动应用的顺序包含的多个受管理移动应用已完成将它们的相应数据存储到所述远程存储***。
CN201480075002.5A 2013-12-12 2014-12-12 用于应用同步的方法和*** Active CN105940397B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361915460P 2013-12-12 2013-12-12
US61/915460 2013-12-12
US201461926902P 2014-01-13 2014-01-13
US61/926902 2014-01-13
PCT/US2014/070169 WO2015089483A1 (en) 2013-12-12 2014-12-12 Application synchornization

Publications (2)

Publication Number Publication Date
CN105940397A CN105940397A (zh) 2016-09-14
CN105940397B true CN105940397B (zh) 2020-08-14

Family

ID=53368686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480075002.5A Active CN105940397B (zh) 2013-12-12 2014-12-12 用于应用同步的方法和***

Country Status (4)

Country Link
US (1) US10025836B2 (zh)
EP (1) EP3080725B1 (zh)
CN (1) CN105940397B (zh)
WO (1) WO2015089483A1 (zh)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8625805B1 (en) 2012-07-16 2014-01-07 Wickr Inc. Digital security bubble
US10567349B2 (en) 2013-06-25 2020-02-18 Wickr Inc. Secure time-to-live
US10129260B1 (en) 2013-06-25 2018-11-13 Wickr Inc. Mutual privacy management
US9830089B1 (en) 2013-06-25 2017-11-28 Wickr Inc. Digital data sanitization
US9866591B1 (en) 2013-06-25 2018-01-09 Wickr Inc. Enterprise messaging platform
US10896155B2 (en) * 2013-08-23 2021-01-19 Vmware, Inc. Opening unsupported file types through remoting sessions
US9698976B1 (en) 2014-02-24 2017-07-04 Wickr Inc. Key management and dynamic perfect forward secrecy
US9584530B1 (en) 2014-06-27 2017-02-28 Wickr Inc. In-band identity verification and man-in-the-middle defense
US9654288B1 (en) 2014-12-11 2017-05-16 Wickr Inc. Securing group communications
US10692098B2 (en) * 2015-05-12 2020-06-23 Oath Inc. Predicting content consumption
US9906561B2 (en) 2015-08-28 2018-02-27 Nicira, Inc. Performing logical segmentation based on remote device attributes
US9590956B1 (en) 2015-12-18 2017-03-07 Wickr Inc. Decentralized authoritative messaging
CN108476164B (zh) 2015-12-21 2021-10-08 谷歌有限责任公司 在消息传送应用中自动地提供机器人服务的方法
CN108781175B (zh) 2015-12-21 2021-09-21 谷歌有限责任公司 用于消息交换题绪的自动建议的方法、介质及***
US10291607B1 (en) 2016-02-02 2019-05-14 Wickr Inc. Providing real-time events to applications
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US9596079B1 (en) 2016-04-14 2017-03-14 Wickr Inc. Secure telecommunications
US9590958B1 (en) 2016-04-14 2017-03-07 Wickr Inc. Secure file transfer
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11675929B2 (en) * 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10511450B2 (en) 2016-09-20 2019-12-17 Google Llc Bot permissions
WO2018057541A1 (en) 2016-09-20 2018-03-29 Google Llc Suggested responses based on message stickers
WO2018212822A1 (en) 2017-05-16 2018-11-22 Google Inc. Suggested actions for images
US10404636B2 (en) * 2017-06-15 2019-09-03 Google Llc Embedded programs and interfaces for chat conversations
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US11382163B2 (en) * 2017-12-19 2022-07-05 At&T Intellectual Property I, L.P. Instantiating intelligent service delivery parameters within protected hardware
CN109242252B (zh) 2018-08-03 2020-09-04 张继升 一种智能服务平台及方法
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11093570B2 (en) * 2018-09-13 2021-08-17 Citrix Systems, Inc. Systems and methods for presenting additional content for a network application accessed via an embedded browser of a client application
US11012566B1 (en) * 2019-11-14 2021-05-18 T-Mobile Usa, Inc. Simulated customer application experiences for customer support via emulators
WO2021097397A1 (en) * 2019-11-17 2021-05-20 Trilio Data, Inc. Container-based application data protection method and system
EP3846413B1 (en) * 2020-01-03 2022-09-21 Withings Method and apparatus for installing a network-connectable device
US11500850B1 (en) * 2020-02-26 2022-11-15 Snap Inc. Synchronizing content with third-party application
EP4189569A1 (en) 2020-07-28 2023-06-07 OneTrust LLC Systems and methods for automatically blocking the use of tracking tools
WO2022060860A1 (en) 2020-09-15 2022-03-24 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US11526624B2 (en) 2020-09-21 2022-12-13 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
EP4241173A1 (en) 2020-11-06 2023-09-13 OneTrust LLC Systems and methods for identifying data processing activities based on data discovery results
WO2022178219A1 (en) 2021-02-18 2022-08-25 OneTrust, LLC Selective redaction of media content
EP4305539A1 (en) 2021-03-08 2024-01-17 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11880282B2 (en) 2021-09-15 2024-01-23 Trilio Data, Inc. Container-based application data protection method and system
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818902A (zh) * 2005-01-31 2006-08-16 捷讯研究有限公司 使用设备数据模式同步服务器和设备数据

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002357731A1 (en) * 2001-11-15 2003-06-10 Visto Corporation System and methods for asychronous synchronization
US7523145B2 (en) * 2004-04-22 2009-04-21 Opentv, Inc. System for managing data in a distributed computing system
US7317907B2 (en) * 2005-01-31 2008-01-08 Research In Motion Limited Synchronizing server and device data using device data schema
US20060229054A1 (en) * 2005-04-07 2006-10-12 Esa Erola Help desk connect
CN100521616C (zh) * 2005-05-19 2009-07-29 华为技术有限公司 在设备管理中上报终端信息的方法及***
US7577879B2 (en) * 2005-06-07 2009-08-18 Microsoft Corporation Patching a mobile computing device software error
US8121585B2 (en) 2006-08-25 2012-02-21 International Business Machines Corporation Technique for synchronizing data with a mobile device based on a synchronization context
US7983249B2 (en) 2007-01-23 2011-07-19 Oracle America, Inc. Enterprise web service data to mobile device synchronization
US7987471B2 (en) * 2007-01-26 2011-07-26 Microsoft Corporation Mobile device management proxy system
US8060074B2 (en) 2007-07-30 2011-11-15 Mobile Iron, Inc. Virtual instance architecture for mobile device management systems
US20090037492A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal Framework for Synchronizing Applications
CA2695103A1 (en) * 2009-02-26 2010-08-26 Research In Motion Limited System and method of handling encrypted backup data
US8943320B2 (en) * 2011-10-31 2015-01-27 Novell, Inc. Techniques for authentication via a mobile device
US9330106B2 (en) 2012-02-15 2016-05-03 Citrix Systems, Inc. Selective synchronization of remotely stored content
US20130318207A1 (en) 2012-02-15 2013-11-28 James Eric Dotter Systems and methods for managing mobile app data
CN103108050B (zh) * 2013-02-27 2017-02-08 广州长嘉电子有限公司 一种实现平板电脑同步移动终端电话薄的方法及***
US20140279870A1 (en) * 2013-03-12 2014-09-18 Samsung Electronics Co. Ltd. Method and apparatus for synchronizing shared data in mobile terminal and server

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818902A (zh) * 2005-01-31 2006-08-16 捷讯研究有限公司 使用设备数据模式同步服务器和设备数据

Also Published As

Publication number Publication date
WO2015089483A1 (en) 2015-06-18
US10025836B2 (en) 2018-07-17
EP3080725B1 (en) 2020-06-10
US20150169615A1 (en) 2015-06-18
EP3080725A1 (en) 2016-10-19
EP3080725A4 (en) 2017-05-17
CN105940397A (zh) 2016-09-14

Similar Documents

Publication Publication Date Title
CN105940397B (zh) 用于应用同步的方法和***
US10511661B2 (en) N-way synchronization of desktop images
US11321348B2 (en) Provisioning and managing replicated data instances
US11379412B2 (en) Enabling data replication processes between heterogeneous storage systems
US10445186B1 (en) Associating a guest application within a virtual machine to create dependencies in backup/restore policy
US9128627B1 (en) Method and system for virtual machine backup
US20140250069A1 (en) Systems and methods for selectively synchronizing files
EP2542976A1 (en) Method and apparatus of backing-up subversion repository
JP2020530155A (ja) 冗長アレイデータ整列のためのシステムおよび方法
US20200192767A1 (en) Methods, apparatuses and systems for cloud-based disaster recovery
US10860540B1 (en) Method and system for synchronizing backup and cloning schedules
US10705815B2 (en) Split installation of a software product
US11132188B2 (en) Management platform recovery for a user device
US11182141B2 (en) Management platform recovery for a user device
CN111385334B (zh) 一种数据配送方法、装置、设备及存储介质
US11263021B2 (en) Management platform recovery for a user device
US11126419B2 (en) Management platform recovery for a user device
CN117112690A (zh) 分布式集群的数据同步方法及其相关设备
WO2020236980A1 (en) Management platform recovery for a user device

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