CN106462577B - 用于移动设备和移动云服务的同步的基础设施 - Google Patents
用于移动设备和移动云服务的同步的基础设施 Download PDFInfo
- Publication number
- CN106462577B CN106462577B CN201480076463.4A CN201480076463A CN106462577B CN 106462577 B CN106462577 B CN 106462577B CN 201480076463 A CN201480076463 A CN 201480076463A CN 106462577 B CN106462577 B CN 106462577B
- Authority
- CN
- China
- Prior art keywords
- enterprise data
- enterprise
- data
- items
- mobile computing
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
描述了用于实现用于促进在移动计算设备和企业计算系统(例如,人力资源管理系统、业务管理系统等)之间的企业数据的同步的云计算机系统(例如,“云服务”)的技术。云服务可以将从不同的企业计算系统接收到的企业数据转换成可以由移动计算设备容易地管理和更新的格式。转换后的格式可以使不同的信息容易被识别。企业数据可以与策略信息和版本信息相关联,以管理企业数据的同步。在一些方面,云服务可以基于移动计算设备所具有的到无线网络的通信连接的分类来管理与移动计算设备的同步。通信连接可被用来确定在移动计算设备和云计算机系统之间同步企业数据的方式。
Description
对相关申请的交叉引用
本申请要求于2014年6月25日提交的标题为“INFRASTRUCTURE FORSYNCHRONIZATION OF MOBILE DEVICE WITH MOBILE CLOUD SERVICE”的美国非临时申请No.14/314,729的优先权和权益,该申请又要求于2014年3月31日提交的标题为“INFRASTRUCTURE FOR SYNCHRONIZATION OF MOBILE DEVICE WITH MOBILE CLOUDSERVICE”的美国临时申请No.61/972,900的优先权和权益,以上每个申请的全部内容都通过引用被结合于此,用于所有意图和目的。
版权
本专利文档的公开内容的一部分包含受版权保护的素材。版权所有者不反对任何人按照专利文档或专利公开内容在专利和商标局的专利文件或记录中所出现的那样对专利文档或专利公开内容进行影印再现,但是除此之外保留任何所有版权权利。
技术领域
本公开内容涉及用于在移动计算设备和企业计算系统之间同步企业数据的技术。
背景技术
移动设备应用,通常被称为“应用”,在智能手机和其它电子移动通信设备上无处不在。随着苹果iPhone在2007年1月问世,应用成为用户与他们的移动设备的日常经历的正常部分。有针对消费者和公司的智能手机的各种各样的应用,包括电子邮件管理、网络连接和社交媒体互动。
许多移动应用依赖于移动设备和互联网网络之间一贯的无线连接。当连接强时,应用如设计的那样上传和下载数据。当连接弱或不存在时,应用常常向用户给出错误信息,诸如“无法连接到服务器”。用户可以等待,以期待在某个时候移动设备将再次连接到网络并且应用将继续上传或下载。
对于很多应用,无线连接的暂时停止只不过是个滋扰。上传或下载的任务可以简单地在连接被重新建立时执行。例如,在电子邮件应用中,当设备进入具有更好信号覆盖的地区时,传入的消息可以被下载并且传出的消息可以被上传。对于其它应用,诸如那些在从数据库中检出时“锁定”项的应用,这个问题比在移动设备上的用户影响更大。例如,当用户的移动设备超出范围时,移动设备上正在编辑基于服务器的联系人列表中的联系人的用户可以锁定不准其他用户编辑同一联系人。
依赖于应用的类型或者由应用使用的数据的类型,应用可能需要与不同的后端企业系统连接并同步。不同的后端企业系统可以为应用以及数据的类型而变化。这样,不同的后端企业系统可以使用不同的通信协议和机制向设备传送数据。诸如移动计算设备的设备可以具有有限的计算资源和/或通信连接,以维持数据与后端系统的同步。另外,移动计算设备可能不知道由不同的后端系统提供的数据的配置或格式。这样,移动计算设备可能会遇到对于与后端系统同步数据的挑战。
发明内容
描述了用于在移动计算设备和企业计算系统(例如,人力资源管理系统、客户关系管理系统、业务管理系统等)之间同步企业数据的技术。在某些方面,云计算机系统(例如,“云服务”)可以被实现,以促进不同类型的企业计算系统和移动计算设备之间企业数据的同步。云服务可以将从不同的企业计算系统接收到的企业数据转换成可以由移动计算设备容易地管理和更新的格式。转换后的格式可以使不同的信息能够容易地被识别。企业数据可以与策略信息和版本信息相关联,以管理企业数据的同步。在一些方面,云服务可以基于移动计算设备所具有的到无线网络的通信连接的分类来管理与移动计算设备的同步。通信连接可被用来确定用于在移动计算设备和云计算机系统之间同步企业数据的方式。
云服务可以作为移动计算设备和企业计算系统之间的中间计算系统操作。在某些方面,云服务可以位于与移动计算设备和企业计算系统不同的地理位置。云服务可以经由提供高速通信的网络与企业计算系统通信。与企业计算系统的可靠高速通信连接可以使云服务能够根据需要维持定期通信,用于企业数据的同步。通过这样做,云服务可以相对于任何企业计算系统维护已同步的企业数据的当前版本。
在某些方面,云服务可以将企业数据从由企业计算系统支持的特定格式转换成标准格式,例如,可以由不同的应用和不同的移动计算设备容易地解析的JavaScript对象标记(JSON)。企业数据可以被转换回企业计算系统的特定格式,用于与特定企业计算系统的同步。使用共同的格式可以使应用能够利用这种格式以一致的方式被设计,而无需解决(address)企业计算系统之间的差异。
在某些方面,云服务可以通过识别企业数据中某些类型的信息来改进同步。云服务可以识别企业数据中信息的不同片段,诸如项和二进制大对象(BLOB)。项可以与集合(例如,一组相关的项)关联。BLOB可以包括在数据库管理系统中被存储为单个实体的二进制数据的集合,诸如图像、多媒体对象,或可执行代码,或者如以其它方式在本领域中已知的。格式化成用于移动计算设备的标准格式的企业数据可以在信息的类型之间进行区分。在这样做时,云服务可以相对于企业数据中对应于每种可识别的信息类型的不同部分的改变管理企业数据的同步。云服务可以识别项之间的关系,使得集合之间重复的企业数据可以在用于到移动计算设备的通信期间减少。
在某些方面,云服务和移动计算设备可以通过使用与对应于项、集合和blob的企业数据关联的策略管理企业数据。策略可以从具有企业数据的企业计算系统接收。策略可以指示存储企业数据的标准。在一些方面,标准可以对应于从移动计算设备到无线网络的通信连接的分类(例如,连接的类型、连接的数据传输速率等)。该分类可被用来确定何时更新企业数据以及如何相对于在企业数据中识别出的不同信息这样做。在一些方面,云服务可以利用版本信息管理与移动计算设备的同步。在一些情况下,到无线网络的通信连接可以改变。基于策略管理同步使移动计算设备能够考虑从移动计算设备到无线网络的通信连接的变化。
根据至少一个例子,可以提供用于在移动计算设备和企业计算系统之间同步企业数据的技术。这种技术可以由计算机系统(例如,移动计算系统)或计算设备(例如,移动计算设备)来实现。计算机系统可以包括一个或多个处理器和与该一个或多个处理器耦合并能够被其读取的一个或多个存储器设备。该一个或多个存储器设备可以存储一组指令,当该组指令被该一个或多个处理器执行时,使该一个或多个处理器执行本文公开的技术。所述技术可以包括计算机实现的方法,该方法包括,经由到网络的无线通信连接,接收企业数据,用于被配置为用于在移动计算设备上执行的应用。接收到的企业数据可以以JSON格式来构造。企业数据以已经从以第二格式构造的原始企业数据转换的第一格式构造。该方法还包括将企业数据存储到移动计算设备上的高速缓存。该方法还包括确定无线通信连接的当前通信状况。该方法还包括基于第一格式识别企业数据中多个项的存在。该方法还包括确定用于企业数据的策略信息。策略信息指示用于更新该多个项中每个项的标准。该标准至少部分地基于通信连接的通信状况。该方法还包括,利用策略信息,识别企业数据中该多个项中的要基于当前通信状况进行更新的项。该方法还包括,经由无线通信连接,发送对与识别出的项对应的已更新的企业数据的请求。该方法还包括接收用于识别出的项的已更新的企业数据。该方法还包括利用用于识别出的项的已更新的企业数据更新高速缓存。
在本发明的某些方面,企业数据是通过云计算机系统从企业服务器接收的。企业数据可以以在其被接收到时的格式被构造。格式可以基于以表述性状态转移(REST)格式构造的企业数据的转换。
在某些方面,企业数据中的项包括统一资源标识符。统一资源标识符可以指示关于项的信息的位置。
在某些方面,企业数据包括项的第一集合和项的第二集合。项的第一集合和项的第二集合可以包括第一项。
在某些方面,企业数据包括指示该企业数据是否包括项、项的集合或者blob的信息。
在某些方面,当前通信状况基于移动计算设备和网络之间无线通信连接的数据传输速率。
在某些方面,请求指示与识别出的项关联的版本信息。已更新的企业数据可以基于该版本信息来确定。
在某些方面,企业数据包括项。策略可以指示用于在高速缓存中存储项的时间段。时间段可以基于包括在项中的内容。
在某些方面,存储在高速缓存中的企业数据包括项。策略可以指示用于更新项中的每一个的时间段。
根据至少一个例子,可以提供用于在移动计算设备和企业计算系统之间同步企业数据的技术。这种技术可以由计算机系统(例如,云计算系统)或计算设备(例如,云计算设备)来实现。计算机系统可以包括一个或多个处理器和与该一个或多个处理器耦合并能够被其读取的一个或多个存储器设备。该一个或多个存储器设备可以存储一组指令,当该组指令被该一个或多个处理器执行时,使该一个或多个处理器执行本文公开的技术。所述技术可以包括计算机实现的方法,该方法包括利用第一通信协议经由网络通信连接从企业计算系统接收企业数据。企业数据以用于企业计算系统的第一格式构造。计算机系统和企业计算系统位于不同的地理位置。该方法还包括确定数据包括多个项和与该多个项关联的策略信息。该方法还包括将以第一格式构造的企业数据转换成第二格式。第二格式是能够由移动计算设备解析的,以识别对应于该多个项中每个项的企业数据并识别对应于每个项的策略信息。该方法还包括利用第二通信协议经由无线网络将以第二格式构造的转换后的企业数据发送到多个移动计算设备。
在某些方面,第一通信协议是表述性状态转移(REST)协议并且第二通信协议与第一通信协议不同。
在某些方面,以第一格式构造的企业数据是以REST格式。
在某些方面,该方法还包括存储企业数据中对应于项中的每一个的标识符。标识符可以识别项。
在某些方面,该方法还包括:识别该多个项中的至少两个项的集合;确定项被包括在至少两个项的集合中。将企业数据从第一格式转换到第二格式可以包括将附加信息插入被转换的企业数据。附加信息可以识别每一个项的集合。
根据至少一个例子,可以提供用于与企业计算系统同步企业数据的移动计算设备。移动计算设备可以包括:第一接收单元,被配置为经由到网络的无线通信连接接收企业数据,用于被配置为用于在移动计算设备上执行的应用,其中企业数据以已经从以第二格式构造的原始企业数据转换的第一格式构造;存储单元,被配置为将企业数据存储到移动计算设备上的高速缓存;第一确定单元,被配置为确定无线通信连接的当前通信状况;第一识别单元,被配置为基于第一格式识别企业数据中多个项的存在;第二确定单元,被配置为确定用于企业数据的策略信息,其中策略信息指示用于更新该多个项中每个项的标准,并且其中该标准至少部分地基于通信连接的通信状况;第二识别单元,被配置为利用策略信息识别企业数据中该多个项中的要基于当前通信状况进行更新的项;发送单元,被配置为经由无线通信连接发送对与识别出的项对应的已更新的企业数据的请求;第二接收单元,被配置为接收用于识别出的项的已更新的企业数据;以及更新单元,被配置为利用用于识别出的项的已更新的企业数据更新高速缓存。在一方面,接收到的企业数据以JavaScript对象标记格式构造。在一方面,企业数据是通过云计算机系统从企业服务器接收的;企业数据以在其被接收到时的格式被构造;并且该格式是基于以表述性状态转移(REST)格式构造的企业数据的转换。在一方面,企业数据中的项包括统一资源标识符,并且统一资源标识符指示关于项的信息的位置。在一方面,企业数据包括项的第一集合和项的第二集合,并且项的第一集合和项的第二集合包括第一项。在一方面,企业数据包括指示该企业数据是否包括项、项的集合或blob的信息。在一方面,当前通信状况基于移动计算设备和网络之间的无线通信连接的数据传输速率。在一方面,请求指示与识别出的项关联的版本信息,并且已更新的企业数据是基于该版本信息来确定的。在一方面,企业数据包括项;策略指示用于在高速缓存中存储项的时间段;并且该时间段基于包括在项中的内容。在一方面,存储在高速缓存中的企业数据包括项,并且策略指示用于更新项中的每一个的时间段。
根据至少一个例子,可以提供用于在移动计算设备和企业计算系统之间同步企业数据的装置。该装置可以包括:用于由移动计算设备经由到网络的无线通信连接接收企业数据用于被配置为用于在移动计算设备上执行的应用的单元,其中企业数据以已经从以第二格式构造的原始企业数据转换的第一格式构造;用于由移动计算设备将企业数据存储到移动计算设备上的高速缓存的单元;用于由移动计算设备确定无线通信连接的当前通信状况的单元;用于由移动计算设备基于第一格式识别企业数据中多个项的存在的单元;用于由移动计算设备确定用于企业数据的策略信息的单元,其中策略信息指示用于更新该多个项中每个项的标准,并且其中标准至少部分地基于通信连接的通信状况;用于由移动计算设备利用策略信息识别企业数据中该多个项中的要基于当前通信状况进行更新的项的单元;用于由移动计算设备经由无线通信连接发送对与识别出的项对应的已更新的企业数据的请求的单元;用于由移动计算设备接收用于识别出的项的已更新的企业数据的单元;以及用于由移动计算设备利用用于识别出的项的已更新的企业数据更新高速缓存的单元。在一方面,接收到的企业数据以JavaScript对象标记格式构造。在一方面,企业数据是通过云计算机系统从企业服务器接收的;企业数据以在其被接收到时的格式被构造;并且该格式是基于以表述性状态转移(REST)格式构造的企业数据的转换。在一方面,企业数据中的项包括统一资源标识符,并且统一资源标识符指示关于项的信息的位置。在一方面,企业数据包括项的第一集合和项的第二集合,并且项的第一集合和项的第二集合包括第一项。在一方面,企业数据包括指示该企业数据是否包括项、项的集合或blob的信息。在一方面,当前通信状况基于移动计算设备和网络之间无线通信连接的数据传输速率。在一方面,请求指示与识别出的项关联的版本信息,并且已更新的企业数据是基于该版本信息来确定的。在一方面,企业数据包括项;策略指示用于在高速缓存中存储项的时间段;并且该时间段是基于包括在项中的内容的。在一方面,存储在高速缓存中的企业数据包括项,并且策略指示用于更新项中的每一个的时间段。
根据至少一个例子,提供了用于在移动计算设备和企业计算系统之间同步企业数据的云计算机系统。云计算机系统可以包括:接收单元,被配置为利用第一通信协议经由网络通信连接从企业计算系统接收企业数据,其中企业数据是以用于企业计算系统的第一格式构造的,并且其中云计算机系统和企业计算系统位于不同的地理位置;第一确定单元,被配置为确定企业数据包括多个项和与该多个项关联的策略信息;转换单元,被配置为将以第一格式构造的企业数据转换为第二格式,其中第二格式是能够由移动计算设备解析的,以识别对应于该多个项中每个项的企业数据并识别对应于每个项的策略信息;以及发送单元,被配置为利用第二通信协议经由无线网络将以第二格式构造的转换后的企业数据发送到多个移动计算设备。在一方面,第一通信协议是表述性状态转移(REST)协议,并且第二通信协议与第一通信协议不同。在一方面,以第一格式构造的企业数据是表述性状态转移(REST)格式。在一方面,云计算机系统还包括:存储单元,被配置为存储企业数据中对应于项中的每一个的标识符,其中标识符识别项。在一方面,云计算机系统还包括:识别单元,被配置为识别该多个项中至少两个项的集合;第二确定单元,被配置为确定项被包括在至少两个项的集合中;并且其中将企业数据从第一格式转换成第二格式包括将附加信息插入到被转换的企业数据,并且其中附加信息识别每一个项的集合。
根据至少一个例子,提供了用于在移动计算设备和企业计算系统之间同步企业数据的装置。该装置可以包括:用于由云计算机系统利用第一通信协议经由网络通信连接从企业计算系统接收企业数据的单元,其中企业数据是以用于企业计算系统的第一格式构造的,并且其中云计算机系统和企业计算系统位于不同的地理位置;用于由云计算机系统确定企业数据包括多个项和与该多个项关联的策略信息的单元;用于由云计算机系统将以第一格式构造的企业数据转换成第二格式的单元,其中第二格式是能够由移动计算设备解析的,以识别对应于该多个项中每个项的企业数据并识别对应于每个项的策略信息;以及用于由云计算机系统利用第二通信协议经由无线网络将以第二格式构造的转换后的企业数据发送到多个移动计算设备的单元。在一方面,第一通信协议是表述性状态转移(REST)协议,并且第二通信协议与第一通信协议不同。在一方面,以第一格式构造的企业数据是表述性状态转移(REST)格式。在一方面,该装置还包括:用于存储企业数据中对应于项中的每一个的标识符的单元,其中标识符识别项。在一方面,该装置还包括:用于识别该多个项中至少两个项的集合的单元;用于确定项被包括在至少两个项的集合中的单元;并且其中将企业数据从第一格式转换成第二格式包括将附加信息插入到被转换的企业数据,并且其中附加信息识别每一个项的集合。
本概述并不意在识别要求保护的主题的关键或必要特征,也不意在孤立地被用来确定要求保护的主题的范围。主题应当参照本专利的整个说明书的适当部分、任何或全部附图以及每项权利要求来理解。
以下详细描述连同附图一起将提供对本发明的本质和优点的更好理解。
附图说明
下面参照以下附图详细地描述本发明的说明性方面:
图1示出了根据本发明的一些方面、用于在企业计算系统和移动计算设备之间同步企业数据的计算机系统的框图。
图2示出了根据本发明的一些方面、用于在企业计算系统和移动计算设备之间同步企业数据的计算机系统的框图。
图3示出了根据本发明的一些方面、用于与企业计算系统同步企业数据的移动计算设备的框图。
图4是示出根据本发明的一些方面、在移动计算设备和企业计算系统之间同步企业数据的过程的流程图。
图5是示出根据本发明的一些方面、在移动计算设备和企业计算系统之间同步企业数据的过程的流程图。
图6示出了本发明的各个方面可以在其中被实现的移动计算设备的功能框图。
图7示出了本发明的各个方面可以在其中被实现的云计算机系统的功能框图。
图8绘出了用于实现其中一方面的分布式系统的简化图。
图9示出了根据本公开内容的一方面、由一方面系统的组件提供的服务可以通过其作为云服务提供的系统环境的组件的简化框图。
图10示出了本发明的各个方面可以在其中被实现的示例性计算机系统。
具体实施方式
在下面的描述中,为了解释的目的,阐述了众多具体的细节,以便提供本发明各个方面的透彻理解。但对本领域技术人员显而易见的是,本发明的各个方面可以在没有这些具体细节的情况下实践。在其它情况下,众所周知的结构和设备以框图形式示出。
具体的细节在以下描述中给出,以提供对各个方面的透彻理解。但是,本领域普通技术人员将理解,各个方面可以在没有这些具体细节的情况下实践。例如,电路、系统、网络、过程和其它组件可以被示为框图形式的组件,以便不以非必要的细节模糊各个方面。在其它情况下,众所周知的电路、过程、算法、结构和技术可以示为没有非必要的细节,以避免模糊各个方面。
而且,应当指出,各个方面可被描述为被绘制为流程图、流图、数据流图、结构图或框图的过程。虽然流程图可以将操作描述为顺序过程,但是许多操作可以并行或并发执行。此外,操作的次序可以被重新安排。当其操作完成时,过程终止,但是可以具有未包括在图中的附加步骤。过程可以对应于方法、函数、过程、子例程、子程序等。当过程对应于函数时,其终止可以对应于该函数返回到调用函数或主函数。
术语“机器可读存储介质”包括,但不限于,便携式或非便携式存储设备、光存储设备,以及能够存储、包含或携带(一条或多条)指令和/或数据的各种其它介质。机器可读介质可以包括其中可以存储数据的非瞬时性介质,并且不包括无线地或通过有线连接传播的载波和/或瞬时性电子信号。非瞬时性介质的例子可以包括,但不限于,磁盘或磁带、诸如紧凑盘(CD)或数字多功能盘(DVD)的光学存储介质、闪存存储器、存储器或存储设备。计算机程序产品可以包括可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类或者指令的任意组合、数据结构或程序语句的代码和/或机器可执行指令。代码段可通过传递和/或接收信息、数据、自变量、参数或存储器内容被耦合到另一代码段或者硬件电路。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的手段被传递、转发或发送。
此外,各方面可以由硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实现。当在软件、固件、中间件或微代码中实现时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可被存储在机器可读介质中。(一个或多个)处理器可以执行必要的任务。
在一些图中绘出的系统可以以各种配置提供。在一些方面,系统可被配置为分布式系统,其中系统的一个或多个组件跨云计算机系统中的一个或多个网络分布。
描述了用于在移动计算设备和企业计算系统(例如,人力资源管理系统、客户关系管理系统、业务管理系统等)之间同步企业数据的技术。在某些方面,云计算机系统(例如,“云服务”)可以被实现,以促进不同类型的企业计算系统和移动计算设备之间企业数据的同步。云服务可以将从不同的企业计算系统接收到的企业数据转换成可以由移动计算设备容易地管理和更新的格式。转换后的格式可以使不同的信息容易被识别。企业数据可以与策略信息和版本信息相关联,以管理企业数据的同步。在一些方面,云服务可以基于移动计算设备所具有的到无线网络的通信连接的分类来管理与移动计算设备的同步。通信连接可被用来确定用于移动计算设备和云计算机系统之间同步企业数据的方式。
云服务可以作为移动计算设备和企业计算系统之间的中间计算系统操作。在某些方面,云服务可以位于与移动计算设备和企业计算系统不同的地理位置。云服务可以经由提供高速通信的网络与企业计算系统通信。与企业计算系统的可靠高速通信连接可以使云服务能够根据需要维持定期通信,用于企业数据的同步。通过这样做,云服务可以相对于任何企业计算系统维护已同步的企业数据的当前版本。
在某些方面,云服务可以将企业数据从由企业计算系统支持的特定格式转换成标准格式,例如,可以由不同的应用和不同的移动计算设备容易地解析的JavaScript对象标记(JSON)。企业数据可以被转换回企业计算系统的特定格式,用于与特定企业计算系统的同步。使用共同的格式可以使应用能够利用这种格式以一致的方式被设计,而无需解决(address)企业计算系统之间的差异。
在某些方面,云服务可以通过识别企业数据中某些类型的信息来改进同步。云服务可以识别企业数据中信息的不同片段,诸如项和二进制大对象(BLOB)。项可以与集合(例如,一组相关的项)关联。BLOB可以包括在数据库管理系统中被存储为单个实体的二进制数据的集合,诸如图像、多媒体对象或可执行代码,或者如以其它方式在本领域中已知的。格式化成用于移动计算设备的标准格式的企业数据可以在信息的类型之间进行区分。在这样做时,云服务可以相对于企业数据中对应于每种可识别的信息类型的不同部分的改变来管理企业数据的同步。云服务可以识别项之间的关系,使得集合之间重复的企业数据可以在用于到移动计算设备的通信期间减少。
在某些方面,云服务和移动计算设备可以通过使用与对应于项、集合和blob的企业数据关联的策略管理企业数据。策略可以从具有企业数据的企业计算系统接收。策略可以指示存储企业数据的标准。在一些方面,标准可以对应于从移动计算设备到无线网络的通信连接的分类(例如,连接的类型、连接的数据传输速率等)。该分类可被用来确定何时更新企业数据以及如何相对于在企业数据中识别出的不同信息这样做。在一些方面,云服务可以利用版本信息管理与移动计算设备的同步。在一些情况下,到无线网络的通信连接可以改变。基于策略管理同步使移动计算设备能够考虑从移动计算设备到无线网络的通信连接的变化。
图1示出了根据本发明的一些方面、用于在企业计算系统和移动计算设备之间同步企业数据的计算机系统100的框图。为了说明的目的,在本文提供了各种例子来描述用于在一个或多个企业计算系统(例如企业计算系统140)和一个或多个移动计算设备(例如移动计算设备102)之间同步企业数据的技术。在某些方面,计算机系统100可以包括云计算机系统120(在本文被称为“云服务”),用于管理和促进移动计算设备和企业计算系统之间的通信。一般而言,云计算机系统120可以促进在计算环境中任何两个端点设备之间数据的同步。端点设备可以包括在计算系统(例如,分布式计算系统)中作为用户端点操作的计算设备。
在某些方面,企业计算系统140可以包括为企业操作的计算系统。企业计算系统140可以包括使用企业数据的应用和/或服务。例如,企业计算系统140可以为客户关系管理、人力资本管理、人力资源管理、供应链管理、企业通信系统、电子邮件通信系统或其它业务服务或它们的组合提供企业服务和/或应用。在图1所示的例子中,企业计算系统140包括人力资本管理系统(HCM)134、客户关系管理(CRM)系统、客户企业系统138或它们的组合。
如本文所述的企业数据可以包括从企业计算系统接收的数据、发送到企业计算系统的数据、由企业计算系统处理的数据或它们的组合。企业数据可以是能够与用于客户应用和/或服务的数据区分的。在一些方面,例如,企业数据可以基于企业数据的应用或使用而改变,而用于客户应用的数据(例如,客户数据)可以在使用中保持静态。在某些方面,企业数据可以包括指示用于存储、使用和/或管理企业数据的标准的规则或者可以与这些规则相关联。例如,企业数据可以与指示用于存储、使用和/或管理企业数据的一个或多个策略的策略信息相关联。在某些方面,策略信息可以包括在企业数据中。在某些方面,企业数据可以包括由在企业计算系统中执行的应用或服务处理、存储、使用或传送的数据。例如,企业数据可以包括业务数据(例如,业务对象),诸如来自企业应用的JSON格式化数据、结构化数据(例如,键值对)、非结构化数据(例如,由应用处理或使用的内部数据、JSON格式的数据、社交帖子、会话流、活动馈送等)、二进制大对象(BLOB)、文档、系统文件夹(例如,沙箱环境中应用相关的文件夹)、使用表述性状态转移(REST)技术的数据(在本文被称为“REST性的数据”)(例如,通过REST端点使其可用的同步数据)、系统数据、配置数据、同步数据或它们的组合。在一些方面,企业数据可以包括REST格式化的企业数据。REST格式化的企业数据可以包括REST性的数据。REST格式化的企业数据可以包括根据由企业计算系统实现的REST技术格式化的数据。配置或同步数据可以包括用于企业数据的同步的数据,诸如版本、历史、集成数据等等。企业数据中的文档可以包括扩展标记语言(XML)文件、可视资产、配置文件、媒体资产等。BLOB可以包括在数据库管理系统中被存储为单个实体的二进制数据的集合,诸如图像、多媒体对象,或可执行代码,或者本领域中以其它方式已知的。
通过云计算机系统120,移动计算设备(例如,移动计算设备102)可以与多个企业计算系统(例如,HCM 134、CRM 136,或定制的企业计算系统138)通信,以交换企业数据。云计算机系统120可以作为中间计算环境操作,其可以促进移动计算设备和任何企业计算系统140之间企业数据的通信。云计算机系统120可以与不同类型的计算设备通信,包括不同的移动计算设备。移动计算设备102可以通过处理来自应用的、对企业数据的请求的同步管理器110与云计算机系统120通信。同步管理器110可以包括应用编程接口(API),应用可以将该API扩展为控制同步操作。利用同步管理器110,移动计算设备可以通过云计算机系统120与企业计算系统通信,而不管计算环境和/或在移动计算设备120上执行的应用的类型。同步管理器110可以使移动计算设备102能够请求和接收能够被移动计算设备处理和读取的结构化格式的企业数据。云计算机系统120促进移动计算设备和企业计算系统之间的同步,而不管移动计算设备和云计算机系统120之间的通信连接。
云计算机系统120还可以通过与不同的企业计算系统通信而作为中间计算环境操作,其中一些企业计算系统可以具有不同的通信协议。此类通信协议可以是定制的或特定于与云计算机系统120通信的应用或服务。另外,云计算机系统120可以与企业计算系统通信,以根据由企业计算系统支持的格式来发送和接收企业数据。通过具有充足的计算资源,云计算机系统120可以利用用于根据企业计算系统同步企业数据的通信来通信。云计算机系统120可以维护企业数据的本地储存器(例如,本地高速缓存)并且可以使用该本地储存器来管理移动计算设备和企业计算系统140之间企业数据的同步。
云计算机系统120可以利用硬件、软件、固件或它们的组合来实现。例如,云计算机系统可以包括一个或多个计算设备,诸如服务器计算机。云计算机系统可以包括一个或多个存储器存储设备和一个或多个处理器。存储器存储设备可以让(一个或多个)处理器访问并且可以包括存储在其上的指令,当指令被(一个或多个)处理器执行时,使(一个或多个)处理器实现本文公开的一个或多个操作。在一些方面,存储器存储设备可以作为本地储存器(例如,高速缓存)操作。
在某些方面,云计算机系统120可以包括或实现一个或多个适配器,例如,HCM适配器122、CRM适配器124和适配器126。每个适配器可以根据特定的通信协议、企业计算系统的类型、应用的类型、服务的类型或它们的组合来支持通信。由适配器支持的通信协议可以特定于一个或多个企业计算系统。例如,HCM适配器122可被配置为用于根据由HCM企业计算系统134支持的协议进行通信。云计算机系统120可以与每个企业计算系统140建立单独的通信连接128-132。
云计算机系统120可被配置为经由一个或多个网络(未示出)与企业计算系统140进行通信。通信网络的例子可以包括互联网、移动网络、公共网络、无线网络、蜂窝网络、局域网(LAN)、广域网(WAN)、其它通信网络或它们的组合。在某些方面,通信连接128-132可以是利用高速通信干线促进的高速通信连接。
移动计算设备120可以是以硬件、固件、软件或其组合实现的计算系统。移动计算设备102可以通过云计算机系统120与任何企业计算系统140通信。移动计算设备102可以包括或者可以被实现为端点、个人数字助理(PDA)、平板计算机、膝上型计算机、台式计算机、可穿戴计算机、寻呼机等。移动计算设备102可以包括一个或多个存储器存储设备和一个或多个处理器。移动计算设备102可以包括不同种类的操作系统。存储器存储设备可以是(一个或多个)处理器可访问的并且可以包括存储在其上的指令,当指令被(一个或多个)处理器执行时,使(一个或多个)处理器实现本文公开的一个或多个操作、方法或过程。存储器存储可以作为本地储存器(例如,高速缓存160)操作。本地储存器可以利用诸如存储器存储设备或其它计算机可读存储介质的任何类型的持久性存储设备来实现。在一些方面,本地储存器可以包括或实现数据库114(例如,文档数据库、关系数据库或其它类型的数据库)、文件存储、文件系统116或它们的组合。本地储存器可以存储企业数据。在某些方面,本地储存器可以包括策略信息。策略信息可以从云计算机系统120获得。策略信息可被用来确定企业数据的同步和/或存储。
在各个方面,移动计算设备102可被配置为执行和操作一个或多个应用,诸如网络浏览器、客户端应用、专有客户端应用等。例如,应用104和应用108可以在移动计算设备102上操作。客户端应用可以经由一个或多个网络可访问或操作。诸如应用104的应用可以包括用于操作应用的图形用户界面(GUI)106。
移动计算设备102可以利用无线通信经由一个或多个通信网络与云计算机系统120通信。通信网络的例子可以包括移动网络、无线网络、蜂窝网络、局域网(LAN)、广域网(WAN)、其它无线通信网络或它们的组合。
移动计算设备102可以包括同步管理器110。同步管理器110可以包括应用编程接口(API),以使例如应用104的应用能够请求与来自企业计算系统的企业数据的访问和使用相关的各种操作。在一些方面,应用可以请求同步管理器110管理企业数据的同步。API可以提供可调用的函数、方法、操作、例程等,以管理和访问企业数据362。这种可调用的函数可以包括用于访问从高速缓存360访问的关于策略的信息和关于企业数据362的信息的函数。同步管理器110可以为应用管理到云计算机系统120的通信。在某些方面,同步管理器110可以利用定制的协议(例如,定制的同步协议)建立与云计算机系统120的通信连接118。定制的协议可以是基于HTTP的协议。通过使同步管理器110能够处理与云计算机系统120的通信,应用可以避免配置与云计算机系统120的通信的负担。通过使用定制的协议,同步管理器110可以在任何移动计算设备平台上操作,以便与云计算机系统120进行通信。
在某些方面,同步管理器110可以在本地管理企业数据并在可能的时候与云计算机系统120同步。如果企业数据可以在本地检索,则可以从同步管理器110为请求企业数据的应用提供快速响应。不是本地可用的企业数据可以从云计算机系统120接收。
云计算机系统120可以存储为其它应用或移动计算设备检索的企业数据。其结果是,云计算机系统120可以维护企业数据的本地拷贝,供快速访问或同步。云计算机系统120可以在与企业计算系统进行通信之前首先搜索其本地存储来定位企业数据或对请求执行同步。通过这样做,云计算机系统120可以能够为移动计算设备102更快地同步和检索企业数据。云计算机系统120可以能够与向移动计算设备102传送企业数据并发地检索和/或同步企业数据。在一些方面,云计算机系统120可以比企业数据更快地接收和/或同步企业数据,或者结果被传送到移动计算设备102。这样,云计算机系统120可以在与同步相关的企业数据或信息被传送到移动计算设备102之前存储它们,由此改进让移动计算设备从企业计算系统140访问企业数据的响应时间。
尽管存在计算资源的差异,云计算机系统还是可以使移动计算设备能够与企业计算系统进行通信。云计算机系统可以配备有更多的资源和更快、更可靠的到企业计算系统的连接,以便频繁地通信来接收企业数据。云计算机系统可以根据它们的通信能力管理和同步要被传送到移动计算设备的企业数据。另外,通过在云计算机系统高速缓存企业数据,企业数据可以利用移动计算设备容易地检索和同步。云计算机系统可以独立于其与移动计算设备的通信来管理同步。
图2示出了根据本发明的一些方面、用于在企业计算系统和移动计算设备之间同步企业数据的计算系统(例如,云计算机系统120)的框图。在某些方面,云计算机系统120可被实现为一个或多个功能框或模块,被配置为执行用于在移动计算设备(例如,移动计算设备240和移动计算设备250)和企业计算系统(例如,企业计算系统212和企业计算系统214)之间传送的企业数据的通信和/或同步的各种操作。云计算机系统120可以包括企业数据解析器220、转换器222、版本确定器224、通信模块226、企业数据管理器228和策略管理器232。云计算机系统120可以包括一个或多个存储器存储设备(“本地储存器”),诸如高速缓存230。高速缓存230可被用来存储企业数据262。企业数据262可以从企业计算系统212、214或从移动计算设备240、250接收,或者可以包括由云计算机系统120转换的企业数据,或它们的组合。
通信模块226可被配置为处理用于云计算机系统120与例如企业计算系统212、214的多个企业计算系统的通信。这种企业计算系统可以在物理上位于云计算机系统120的防火墙之外,在与云计算机系统120不同的地理位置(例如,远程地理位置)。在一些方面,企业计算系统212可以与企业计算系统214不同。在一些方面,企业计算系统212和企业计算系统214可以是单个计算系统的部分。每个企业计算系统212、214可以利用不同的通信协议与云计算机系统120通信。
在某些方面,企业计算系统212、214当中的一个或多个可以利用基于HTTP的协议与云计算机系统120通信。在一些方面,企业计算系统212、214可以利用REST通信协议与云计算机系统120通信。例如,REST协议可以支持包括URI(统一资源标识符)或URL(统一资源定位器)的格式。为了利用REST协议的通信而格式化的数据可以容易地转换成诸如JSON、逗号分隔值(CSV)以及真正简单的整合(RSS)的数据格式。企业计算系统212、214和云计算机系统120可以利用其它协议进行通信,该其它协议诸如远程过程调用(RPC)(例如,XMLRPC)。
如前面所解释的,云计算机系统120和企业计算系统212、214可以利用支持高速通信的通信连接进行通信。高速通信连接可以使云计算机系统能够维持与企业计算系统的持续的(on-going)和多个通信,以同步企业数据。高速通信连接可以为云计算机系统120提供处理与企业计算系统的多个通信以完全同步企业数据的能力,而移动计算设备会受到无线通信连接不断地接收企业数据的带宽的限制。云计算机系统120和企业计算系统之间的通信连接可以是可靠的,使得云计算机系统120可以接收和发送通信,以便以很少或没有中断地同步企业数据。
在某些方面,通信模块226可以与企业计算系统212、214进行通信,以同步已更新的企业数据。通信模块226可以向企业计算系统请求对企业数据的更新。这种请求可以基于从移动计算设备240、250接收的请求被提示。在一些方面,通信模块226可以在没有请求的情况下从企业计算系统212、214接收已更新的企业数据。通信模块226可以向企业计算系统发送对从移动计算设备240、250接收的企业数据的更新。对企业数据的更新可以由企业数据管理器228确定,这在下面描述。
在一些方面,通信模块226可以包括一个或多个适配器,例如适配器208和适配器210。适配器可以根据通信协议、企业计算系统的类型、应用的类型、服务的类型或它们的组合支持通信。由适配器支持的通信协议可以特定于一个或多个企业计算系统。例如,通信模块226可以包括适配器208,该适配器208被配置为用于利用由企业计算系统212支持的特定协议与企业计算系统212进行通信。在另一个例子中,通信模块226可以包括适配器210,该适配器210被配置为用于利用由企业计算系统214支持的特定协议与企业计算系统214进行通信。
云计算机系统120可以使用通信模块226与例如移动计算设备240、250的移动计算设备进行通信。移动计算设备可以在与云计算机系统120不同的地理位置。例如,移动计算设备240、250可以在物理上位于云计算机系统120的防火墙之外,在与云计算机系统120不同的地理位置(例如,远程地理位置)。移动计算设备240、250中每一个可以利用不同的通信协议与云计算机系统120进行通信。在某些方面,移动计算设备240、250当中一个或多个可以利用基于HTTP的通信协议与云计算机系统120进行通信。在一些方面,通信模块226可以利用定制的通信协议与移动计算设备通信。定制的通信协议可以是基于HTTP的通信协议。用于移动计算设备240、250之间的通信的通信协议可以支持以不同格式(例如,JSON格式)构造的数据的通信,该数据可以能够由移动计算设备和云计算机系统120容易地读取。
在某些方面,移动计算设备240、250可被配置为分别具有特定的用户界面202、204(UI),以便与云计算机系统120进行通信。特定的UI可被配置为利用特定的通信协议进行通信。在一些方面,特定的UI 202、204可以包括可被调用以便与云计算机系统进行通信的可调用接口、函数、例程、方法,和/或操作。特定的UI 202、204可以接受用于从企业计算系统212、214请求或接收企业数据的参数作为输入。通过特定UI的通信可以被转换,用于利用定制通信协议的通信。在某些方面,特定的UI 202、204可以被同步管理器110包括或实现。在一些方面,特定的UI 202、204可以对应于应用中定制的客户端。
云计算机系统120可以包括可将企业数据转换成不同格式和/或管理企业数据的存储以维持移动计算设备240、250和企业计算系统212、214之间的同步的组件。
企业数据管理器228可以管理企业数据在云计算机系统120的本地储存器(例如,高速缓存230)中的存储。管理企业数据可以包括创建、读取、更新和删除本地储存器中的企业数据。企业数据管理器228可以执行操作,以便为应用或服务搜索和检索企业数据。在某些方面,企业数据管理器228可以从其本地储存器搜索满足来自移动计算设备(例如,移动计算设备240)的查询的企业数据。可被找到的企业数据被发送到移动计算设备。在本地储存器中不存在的企业数据可以从企业计算系统212、214请求。
在一些方面,企业数据管理器228可以存储分别从以不同格式从企业计算系统接收的企业数据格式化的、用于分发到移动计算设备的企业数据。企业数据可以基于标准被存储,该标准诸如企业数据的版本、应用的类型、服务的类型、企业计算系统、用户、移动计算设备的类型、企业数据的内容、数据类型(例如,项、项的集合,或blob)或它们的组合。在某些方面,在企业数据中识别出的其它信息可被存储在本地储存器中。例如,对应于企业数据的策略信息可以被本地存储。关于URI和策略信息的进一步细节在下面描述。
企业数据解析器220可以解析以各种格式从企业计算系统212、214接收的企业数据。在一些方面,企业数据862可以以可以对移动计算设备上的应用未知的格式被接收。对于许多不同的企业计算系统,其中一些是传统企业计算系统,企业数据可以以不同的格式被接收。例如,从企业计算系统212、214接收的企业数据可以以对应于REST协议的REST格式来构造。在某些方面,从企业计算系统接收的企业数据可以使用JSON格式来构造内容,例如,项和项的集合。企业数据解析器220可被配置为以其被接收的格式解析企业数据。企业数据解析器220可以解析企业数据,以识别项、项的集合和blob。在一些方面,企业数据解析器220可以确定项是否包括在多个集合中。
在某些方面,从企业计算系统212、214接收到的企业数据可以包括策略信息。策略信息可以包括用于企业数据中每个不同的信息片段的策略。如下面进一步描述的,不同的信息片段可以对应于项。例如,策略信息可以包括对应于包括在联系人列表中的每个联系人信息的策略。在某些方面,从企业计算系统212、214接收到的企业数据可以包括指示关于每个不同信息片段的附加信息的位置的信息(例如,URI)。企业数据解析器220可被配置为解析企业数据,以识别与企业数据的对应于不同的信息片段的部分关联的URI和/或与对应的策略信息。
在某些方面,企业数据管理器228可以确定从移动计算设备240、250接收到的企业数据是否包括对用于一个或多个企业计算系统212、214的企业数据的更新。企业数据管理器228可以比较从移动计算设备接收到的数据的版本与本地存储的企业数据,以确定企业数据是否已被更新。在一些方面,从移动计算设备接收到的通信可以指示从移动计算设备接收到的企业数据是否包括更新。如下所述的版本确定器224可以基于接收到的企业数据提供指示企业数据的版本和/或企业数据是否已被更新的信息。
在某些方面,企业数据管理器228可以管理对从移动计算设备240、250和企业计算系统212、214接收到的企业数据的更新。例如,企业数据管理器228可以合并企业数据,以维持企业数据的当前版本。数据可以基于企业数据被更新、创建和删除的次序来合并和更新。由移动计算设备更新或创建的企业数据可以被传送到企业计算系统。企业数据管理器228可以使用企业数据的版本来确定企业数据是否应当被更新。如下所述的版本确定器224可被配置为确定企业数据的版本。在某些方面,新的企业数据或者对现有企业数据的更新可以被传送到移动计算设备和企业计算系统,以进行同步。在一些方面,已更新的企业数据可以以使移动计算设备能够维持企业数据对已更新的项的同步的版本被传送到移动计算设备。
在一些方面,企业数据管理器228可以处理对已更新的企业数据的请求。请求可以以由同步管理器110使用的通信协议接收。请求可以包括命令,诸如基于HTTP的命令(例如,获取、放置、张贴或删除)。命令可以包括要被同步的项、项的集合和/或BLOB的标识符。
对已更新的企业数据的请求可以从移动计算设备240、250接收。在某些方面,对已更新的企业数据的请求可以包括企业数据的版本。企业数据管理器228可以确定本地存储的企业数据的版本是否与请求所指示的版本不同。对于已经改变的项和项的集合,企业数据管理器228可以将已更新的企业数据发送到移动计算设备。在某些方面,企业数据管理器228可以发送对应于由应用请求的企业数据的BLOB。BLOB可以包括更大的BLOB的一部分。企业数据管理器228可以确定可能需要并存储在移动计算设备上的BLOB的一部分,而不是可能消耗通信带宽的整个BLOB。
企业数据解析器220可被配置为识别企业数据内某些信息的类型。信息的类型可以包括项、项的集合和blob。企业数据解析器220可以解析企业数据,以识别信息的类型。在某些方面,企业数据可以是可解析的,以识别项、项的集合和blob。项可以包括可与其它信息区别的信息片段。例如,包括关于多个人的联系信息的企业数据可以具有对应于每个人的联系信息的数据。企业数据可以被解析,以区分对应于每个人的不同联系人信息的项。项的集合可以由企业数据中可识别的项的关系来识别。在一些方面,企业数据的格式可被构造为使得多个项可被识别为具有关系的集合(例如,组)。在某些方面,企业数据解析器220可以解析企业数据,以识别企业数据中的BLOB。BLOB可被识别为以其它方式不能识别或与项或项的集合关联的企业数据。在一些方面,企业数据可以以REST数据格式被接收,使得企业数据的结构可以是已知的。项可以通过根据REST格式解析企业数据来识别。在一些方面,企业数据可以是基于企业数据中的URI可解析的,使得项可以基于URI来识别。
在某些方面,企业数据可以包括指示对应于在企业数据中识别出的信息的类型的信息的版本。版本确定器224可以对与识别出的信息类型对应的企业数据执行处理,以识别版本。在一些方面,当企业数据中信息的类型被识别出时,版本确定器224可以比较识别出的诸如项、项的集合和/或blob的信息与本地存储的企业数据,以确定是否有任何数据已改变。
当企业数据中信息的类型被识别出时,企业数据管理器228可以在云计算机系统120的本地储存器中存储识别出的信息。企业数据的版本信息可以与企业数据一起存储,以更新和管理企业数据的当前版本。版本信息可以使企业数据管理器228能够确定当前版本以及更新是否应当被传送到移动计算设备240、250和企业计算系统212、214之一或两者。
转换器222可以将企业数据从一种格式转换成另一种不同的格式。例如,转换器222可以将以一种格式(例如,REST数据格式)接收的企业数据转换成移动计算设备240、250能够读取的另一种格式(例如,JSON格式),反之亦然。从企业计算系统212、214接收的企业数据可以在被处理之前进行转换,以确定企业数据的内容。在某些方面,除了当已经是这种格式的时候之外,到移动计算设备能够读取的格式(例如,JSON格式)的转换可以使企业数据解析器220能够识别企业数据的内容。在一些方面,当企业数据能够由双方解析(例如,能够被解析)时,在移动计算设备和企业计算系统之间传送的企业数据可能无法被转换。转换器222可以转换从之前版本更新的企业数据。
在一些方面,转换器222可将标识符(例如,实体标签)插入转换器企业数据,以识别项、项的集合和blob。在企业数据从由企业计算系统使用的格式转换成由移动计算设备使用的格式期间,转换器222可在企业数据中插入用于每个项的标识符。转换器222可以插入指示项的版本的版本信息。版本信息可以由版本确定器224确定。标识符和版本信息可以被包括在已更新的企业数据中,以使移动计算设备能够将企业数据与其本地存储的企业数据同步。
云计算机系统120可以包括策略管理器232。策略管理器232可以基于与企业数据关联的策略信息管理企业数据的同步。策略信息可以与企业数据一起存储在本地储存器中。策略信息可以指示用于企业数据的存储和同步的标准。在某些方面,策略管理器232可以确定用于与移动计算设备同步企业数据的方式。例如,策略管理器232可以关于如何基于每个移动计算设备到无线网络的通信连接的分类(例如,数据传输速率、通信的类型等)向移动计算设备提供包括已更新的企业数据的企业数据指导企业数据管理器228。
云计算机系统可以促进移动计算设备和企业计算系统之间企业数据的通信。通过处理被用来传送企业数据的协议的转换,移动计算设备上的应用可以从广泛的各种企业计算系统获得企业数据。通过识别企业数据中的不同信息(例如,项、项的集合和blob),云计算机系统可以最小化在信息组之间相关的重复的企业数据。不同信息的进一步识别使云计算机系统能够基于策略信息管理企业数据到已经改变或需要更新的那些项、项的集合以及BLOB的传递。不同信息的识别使应用能够容易地识别不同的信息,该不同的信息可被用于随后的搜索和检索。
图3示出了根据本发明的一些方面、用于在不同类型的企业计算系统和移动计算设备之间同步企业数据的计算系统(例如,云计算机系统120)的框图。移动计算设备102可被实现为一个或多个功能框或模块,该一个或多个功能框或模块被配置为经由云计算机系统120执行用于与企业计算系统(例如,企业计算系统140)的企业数据的通信和/或同步的各种操作。
移动计算设备102可以包括同步管理器110和通信模块330。通信模块330可被配置为用于与云计算机服务器120通信。同步管理器110可以包括或实现软件开发工具包(SDK)。SDK可以提供接口,用于与云计算机服务器120的通信和用于为应用处理企业数据的管理。SDK可以提供可被不同应用和/或不同移动计算设备使用的公共接口。不管由企业计算系统支持的通信协议,同步管理器110可以管理与云计算机系统120的企业数据的同步。企业数据可以由云计算机系统120在被移动计算设备上的应用使用和在企业计算系统改变之间同步。
同步管理器110可以包括应用编程接口(API)312,以使例如应用104的应用能够请求与来自企业计算系统的企业数据的访问和使用相关的各种操作。同步管理器110的全部或一部分可以在应用104中实现。在一些方面,应用可以调用同步管理器110的API来管理企业数据的同步。API可以被扩展,使得应用可以利用同步管理器110执行与企业数据相关的操作。API 312可以提供可调用的函数、方法、操作、例程等,以管理和访问企业数据362。这种可调用的函数可以包括用于访问从高速缓存360访问的关于策略的信息和关于企业数据362的信息的函数。API 312可以使应用能够经由云计算机系统120从企业计算系统请求企业数据。API 312可以接收信息,诸如用于请求或更新企业数据的参数。在一些方面,高速缓存360可以包括诸如数据库114和/或文件系统116的本地储存器。
同步管理器110可以包括通信分类器316、策略管理器318、版本确定器320、搜索模块322、数据管理器324和数据解析器326。移动计算设备可以包括一个或多个存储器存储设备(“本地储存器”),诸如高速缓存360。高速缓存360可被用来存储企业数据362。企业数据362可以从云计算机系统120接收。高速缓存360可以存储已被创建或已被应用更新的离线企业数据362。策略信息可以与企业数据362一起被包括。在一些方面,移动计算设备可以包括存储策略信息344的(一个或多个)数据库114。策略信息344可以基于与企业数据362一起包括的策略信息。策略信息344可以以标记语言格式(例如,XML格式)格式化。策略信息344可以指示用于储存和/或使用企业数据的标准。策略信息可以包括基于通信连接的标准。这种标准可被用来指示用于高速缓存的规则。
在某些方面,在移动计算设备102上执行的应用,例如应用104,可以向云计算机系统120传送请求。移动计算设备102可以包括被配置为经由网络建立与云计算机系统120的通信连接的通信模块330。在一些方面,应用104可以包括通信客户端332,以便根据通信协议来传送请求。通信客户端332可被用来经由网络与云计算机系统120传送请求和接收响应。通信客户端332可以包括HTTP客户端,以便利用HTTP协议传送HTTP请求。在一些方面,通信客户端332可以使用定制的通信客户端,其可被配置为由不同类型的应用、服务和移动计算设备使用。通过使用可让不同移动计算设备上的应用访问的通信协议,云计算机系统120可以与不同的应用进行通信,而无需利用不同的通信协议进行通信。应用104可以通过经通信客户端332传送请求来与云计算机系统120进行通信。在一些方面,应用104可以通过API312请求同步管理器110执行操作,这可以包括经由通信客户端332与云计算机系统120进行通信。在一些方面,经通信客户端332传送的请求可以被同步管理器110截获,以便在向云计算机系统120传送请求之前执行对请求的处理。
如上面所解释的,企业数据362可以以可以由移动计算设备上的不同应用可读的格式接收。在一些方面,企业数据可以是能够容易由许多类型的应用解析的格式,诸如JSON格式。数据解析器326可以执行解析企业数据的操作。从云计算机系统120接收的企业数据可以根据与当企业数据从企业计算系统接收到时的格式不同的格式来格式化。在一些方面,企业数据可以被格式化成使得某些类型的数据可以是能够识别的。例如,企业数据可被格式化为特定类型的数据——项、项的集合或者blob。数据解析器326可以解析企业数据,以识别项、项的集合和/或blob。在一些方面,数据解析器326可以基于插在企业数据中的对应于用于每个识别出的类型的实例的企业数据的标识符(例如,实体标签)来识别具有这些数据类型的这些企业数据。
数据管理器324可以为应用管理企业数据。应用,例如应用104,可以通过通信客户端332传送对对应于应用的企业数据的请求。数据管理器324可以执行操作,包括创建、读取、更新和/或删除企业数据。这种操作可以响应于应用对企业数据的请求而被执行。数据管理器324可以在高速缓存360中存储企业数据362。识别出的数据类型可以具有对应的URI,其可被包括在企业数据中。URI可被用来定位对应于项的信息。项可以包括识别其它项的URI或其它信息。其它项可被存储在高速缓存360中。数据管理器324可以针对项请求企业数据。为了消耗高速缓存360上更少的储存器来存储企业数据,数据管理器324可以存储对应于由其它项引用或包括在项的集合中的项的企业数据的单个拷贝。在某些方面,数据管理器324可以对高速缓存360执行搜索,以确定所请求的企业数据是否存在,并且如果存在,则向应用提供企业数据。但是,当企业数据不存在时,同步管理器110可以向云计算机系统120发起请求。对于其它类型的请求,诸如更新、创建或者删除企业数据,数据管理器可以确定这种操作是否可被执行。如果有必要,则数据管理器324可以向云计算机系统120发起执行请求的请求。
版本确定器320可以确定企业数据的版本,诸如在企业数据中发现的每个项、项的集合和/或blob的版本。在某些方面,在企业数据中识别出的每个项、项的集合或blob可以包括对应的企业数据的版本。企业数据的版本可以对应于与企业计算系统同步的企业数据的版本。版本可被用来同步来自应用的企业数据。在一些方面,关于企业数据的版本的信息可以由企业数据中的项、项的集合或blob中的标识符(例如,实体标签)来指示。
数据管理器324可以存储指示企业数据的版本的版本信息。项、项的集合和/或blob可以与版本信息关联地存储。数据管理器324可以在企业数据被更新时更新企业数据的版本或者可以在企业数据被创建时指派新的版本。当通信模块330可以与云计算机系统120建立通信时,已被更新、删除或创建的企业数据可被传送到要与企业计算系统同步的云计算机系统120。版本信息可与对应于为了同步而被传送的项、项的集合和/或blob的企业数据一起提供。如上面所解释的,云计算机系统120可以维护企业数据的同步版本。企业数据可以基于接收企业数据的应用的每个不同实例或每个不同的移动计算设备来被维护。版本信息可以使云计算机系统120能够确定用于更新已被另一应用或企业计算系统改变的企业数据的次序。
数据管理器324可以请求对来自云计算机系统120的企业数据的更新,以同步存储在高速缓存360中的企业数据362。在某些方面,数据管理器324可以利用对所存储的企业数据362的更新的请求传送版本信息。版本信息可以对应于在企业数据362中识别出的项、项的集合和/或blob。云计算机系统120可以使用版本信息来确定哪些项要同步。与具有已更新的版本的项和blob对应的企业数据可以从云计算机系统120接收。在一些方面,对应于集合的企业数据可以被接收,以指示对项的集合的更新。
策略管理器318可以管理对应于企业数据326的策略信息。策略管理器318可以在本地储存器中存储策略信息344。在一些方面,策略信息344可以存储在格式化的文件中,诸如XML文件。策略信息344可以从云计算机系统120与企业数据一起被接收。在一些方面,企业数据可以包括策略信息344。
如前面所解释的,策略信息344可以指示用于存储企业数据的标准。这种标准可以基于使用企业数据的应用的类型或者企业数据的类型(例如,项、项目的集合或者blob)。例如,对应于敏感数据(例如,人的信息、医疗信息、财务信息等)的企业数据可以与指示该企业数据要在应用的活动会话期间被存储并且当应用终止时要被除去的策略关联。在另一个例子中,如新闻和非私有信息的非敏感信息可以跨应用的不同会话保持存储在高速缓存360中。策略信息344可以指示用于更新与策略关联的企业数据的标准。对于会经常改变的企业数据,诸如新闻,策略信息344中的标准可以指示企业数据可以定期地根据周期性调度进行更新。
给定不同的连接速度,同步SDK 110可以读取策略XML文件112,以确定它应当如何高速缓存数据。例如,如果用户改变项的集合,则该项可以基于存在中等连接并且基于只有该集合的一个项被用户编辑而被上传到同步服务120。策略可以基于当前连接速度和策略的分类确定动作。
在某些方面,策略信息344中的标准可以与来自移动计算设备的通信连接相关。基于通信连接的标准可以包括数据传输速率、通信连接的类型、基于通信连接的其它标准或它们的组合。
策略信息中的其它标准可以包括用于存储和访问企业数据的条件。例如,策略信息344可以指示用于基于应用的状况(例如,重新启动或终止)或到期时间存储企业数据的标准。到期时间可以基于应用何时终止或重新启动或者基于策略信息是否可位于高速缓存360中。在另一个例子中,策略信息344可以指示当策略信息要通过请求云计算机系统120进行更新而被更新时的条件。在一些情况下,策略信息344可以基于何时移动计算设备具有到云计算机系统120的通信连接或何时策略信息无法被检索来更新。
数据管理器324可以基于对应于企业数据362(具体而言是企业数据362中的每个项、项的集合或BLOB)的策略信息确定要更新的企业数据362。在一些方面,API 312可以包括可调用的接口,以请求用于企业数据的策略信息。API 312可以提供可调用的例程,该例程可以确定包括用于更新策略信息和策略信息的到期的标准的策略信息344。在一些方面,更新策略信息344的许可可以基于企业数据的类型、访问企业数据的应用的类型或与企业数据的内容相关的其它标准而受到限制。
数据管理器324可以基于对应于企业数据362的策略信息344确定是否同步(例如,更新)企业数据362。对于指示与通信连接相关的标准的策略信息344,数据管理器324可以基于移动计算设备102和云计算机系统120之间通信的分类确定是否更新企业数据。例如,当数据传输速率满足由策略指示的通信连接阈值时,企业数据可以被更新。其它标准可以基于通信连接的分类来定义。
通信分类器316可以确定关于移动计算设备102和云计算机系统120之间的通信连接的信息。该信息可被数据管理器用来确定基于通信连接的标准对于策略是否被满足。通信分类器316可以从通信模块330获得关于通信连接的信息。例如,通信分类器316可以分类移动计算设备102的当前连接速度。依赖于正常功能,当前连接数据传输速率可以被分类为高、中或低。例如,大于1MB/秒带宽的当前连接数据传输速率可以被认为是“高”,范围从500kB/秒到1MB/秒的数据传输速率可以被认为是“中等”,而小于500kB/秒的数据传输速率可以被认为是慢。在一些方面,通信分类器316可以将传输速率确定为最高标称传输速率的百分比。例如,如果最高传输速率是1MB/秒(100%),则中等传输速率可被认为在25%至75%的范围内,而低传输速率是低于25%的任何速率。在另一个例子中,通信分类器316可以基于连接的类型(例如,4G、3G、Wi-Fi、不存在或其它)来分类通信连接。
图4是示出根据本发明的一些方面、在移动计算设备和企业计算系统之间同步企业数据的过程400的流程图。具体而言,过程400使移动计算设备(例如,移动智能电话)能够通过向云计算机系统(例如,云服务)发送对已更新的企业数据的请求来为企业计算系统同步企业数据。在某些方面,对已更新的企业数据的请求可以基于用于每个项或项的集合的策略信息来传送。如上面所解释的,策略信息可以与诸如项和项的集合的企业数据相关联。策略信息可以指示用于更新项或项的集合的策略(例如,标准),包括用于更新项的时间和方式。在某些方面,策略信息可以指示用于更新(一个或多个)项的标准,诸如通信连接,使得项可以基于通信连接的类型以某种方式来更新。基于这种标准,过程400可以确定应当对其作出请求以便获得已更新的信息的项。在某些方面,移动计算设备,例如图1的移动计算设备102,可以实现过程400。
在方框405开始,过程400可以包括经由到网络的无线通信连接接收企业数据,用于被配置为用于在移动计算设备上执行的应用。例如,移动计算设备102可以经由到网络的无线通信连接从云计算机系统120接收企业数据。企业数据可被移动计算设备102上的应用104使用。企业数据可以以可能已从另一种格式转换的一种格式构造。转换前的企业数据的格式可以与转换后的格式不同。例如,企业数据可以是当从其中一个企业计算系统140接收时的格式(例如,REST协议格式)。企业数据可以被云计算机系统120转换成可被移动计算设备上的各种应用容易读取的格式(例如,JSON格式)。在方框410,过程400可以包括将企业数据存储到移动计算设备(例如,移动计算设备102)上的高速缓存(例如,高速缓存160)。
在方框415,过程400可以包括确定无线通信连接的当前通信状况。例如,过程400可以确定移动计算设备102和云计算机系统120之间当前通信连接的通信状况。通信状况可以包括数据通信的速率、数据通信的带宽、通信连接是否是活动的或它们的组合。在一些方面,过程400可以确定移动计算设备102和云计算机系统120之间通信连接的类型。
在方框420,过程400可以包括基于在企业数据被过程400接收之前被转换成的格式识别企业数据中多个项的存在。如上面所解释的,格式可以是JSON格式。在一些方面,企业数据可以具有使得项可以通过解析企业数据来识别的格式。企业数据可以被格式化,使得项对应于将使用该企业数据的应用是可识别的。例如,企业数据可以被格式化,使得它包含多个项,每个项对应于人的联系信息。企业数据可以被解析,以确定多个项的存在。使用企业数据的应用可被配置为解析企业数据,以确定企业数据中的项。
在方框425,过程400可以包括确定用于企业数据的策略信息。策略信息可以指示用于管理(例如,更新、存储或读取)企业数据的策略。策略信息可以为在企业数据中识别出的每个项确定。策略信息可以指示用于在企业数据中识别出的每个项的策略。在一些方面,策略信息可以从企业数据单独接收。企业数据可以指示在何处定位策略信息。在一些方面,策略信息可以指示策略可以适用的项。
在某些方面,策略信息指示用于更新、存储和/或删除对应于项的企业数据的标准。例如,策略信息可以指示可以访问企业数据的应用的类型。在另一个例子中,策略信息可以指示存储对应于项的企业数据的时间长度。策略信息的其它例子可以包括用于更新项的时间段。在某些方面,策略信息可以指示至少部分地基于通信连接的通信状况的标准。例如,策略信息可以指示用于基于通信状况更新项的方式。当移动计算设备和云计算机系统之间的通信连接具有某个状况时(例如,数据传输速率或者连接的类型),某些项可以被更新。可被更新的项可以对应于应用的类型、企业数据的类型或者与企业数据相关的其它标准。虽然各方面和例子参照项进行描述,但是策略信息可以指示适用于在企业数据中识别出的项的集合或其它类型信息的策略。
在方框430,过程400可以包括利用策略信息来识别企业数据中多个项中要基于当前通信状况进行更新的项。项可以通过向云计算机系统(例如,云计算机系统120)发送接收对项的更新的请求而被更新。如上面所解释的,策略信息可以指示用于管理企业数据中的项的策略。策略可以指示项要被更新的频率。基于这种频率,项可被识别为要被更新。策略可以指示项基于其将被更新的标准,诸如当前通信状况。例如,基于何时移动计算设备(例如,移动计算设备102)和云计算机系统(例如,云计算机系统120)之间无线通信连接的通信状况满足特定阈值数据传输速率(例如,3G或4G通信),策略信息可以指示用于更新项的策略。由策略指示的通信状况,诸如阈值数据传输速率,可以确保对于接收对项的更新存在足够的带宽。
在方框435,过程400可以包括发送对与识别出的项对应的已更新的企业数据的请求。例如,移动计算设备102可以向云计算机系统120发送对与识别出的项对应的已更新的企业数据的请求。在一些方面,请求可以指示项的版本,云计算机系统120可以使用其来确定对应于项的已更新的企业数据是否存在。在一些方面,请求可以包括离线地为项更新的企业数据,诸如在移动计算设备上。
在方框440,过程400可以包括接收用于基于策略信息被识别为要被更新的项的已更新的企业数据。已更新的企业数据可以从云计算机系统接收。云计算机系统可以在接收到对针对项的已更新的企业数据的请求时发送更新。已更新的企业数据可以在确定与存储在移动计算设备的项对应的企业数据的版本不是当前时被发送。在一些方面,已更新的企业数据可以包括对针对项的企业数据的改变,而不是对应于该项的所有企业数据。
在方框445,过程400可以包括利用用于识别出的项的已更新的企业数据更新高速缓存。例如,移动计算设备上的高速缓存(例如,移动计算设备102的高速缓存160)可以利用从云计算机系统接收到的已更新的企业数据来更新。在一些方面,高速缓存可以利用企业数据的对应于已改变的项的部分来更新。该过程在方框450结束。
应当认识到,过程400是说明性的,并且变化和修改是可能的。被描述为顺序的步骤可以并行地执行,并且步骤的次序可以变化,并且步骤可以被修改、组合、添加或省略。在某些方面,当企业数据经由到网络的无线通信连接被接收时,过程400可以被实现。例如,当企业数据经由到网络的无线通信连接从云计算机系统(例如,云计算机系统120)接收时,过程400可以被执行。应当指出的是,过程400可以对经由到网络的无线通信连接在多个通信中接收到的企业数据并发地执行。在某些方面,方框415-445可被实现为更新存储在移动计算设备的高速缓存上的企业数据。在某些方面,当项基于到网络的无线通信连接的当前通信状况被识别为要更新时,方框430-445可以被实现。另外,方框440和445可被实现为利用为项接收到的已更新的企业数据更新移动计算设备上的高速缓存。
图5是示出根据本发明的一些方面、在移动计算设备和企业计算系统之间同步企业数据的过程500的流程图。具体而言,过程500使云计算机系统(例如,云计算机系统120)能够在企业计算系统和移动计算设备之间同步企业数据。在某些方面,云计算机系统(例如,云计算机系统120)可以执行过程500。
在方框505开始,过程500可以包括利用通信协议经由网络通信连接从企业计算系统接收企业数据。例如,云计算机系统120可以利用通信协议(例如,REST通信协议)从企业计算系统134接收企业数据。企业数据可以以用于企业计算系统的格式(例如,REST数据格式)构造。云计算机系统和企业计算系统可以位于不同的地理位置。
在方框510,过程500可以包括确定企业数据包括多个项和与该多个项关联的策略信息。例如,云计算机系统120可以解析企业数据,以识别企业数据中的项。在一些方面,企业数据可以包括用于每个识别出的项的策略信息。
在方框515,过程500可以包括将以企业数据被接收的一种格式构造的企业数据转换成不同的格式。处于转换后的格式的企业数据可以是能够由移动计算设备解析的,以识别对应于该多个项中每个项的企业数据。处于转换后的格式的企业数据可以是能够解析的,以识别对应于在企业数据中识别出的每个项的策略信息。例如,不同格式可以是可被移动计算设备容易地解析的JSON格式,而无需知道不同的通信协议,诸如用于与企业计算系统进行通信的通信协议。
在方框520,过程500可以包括经由无线网络向多个移动计算设备发送处于转换后的格式的转换后的企业数据。转换后的企业数据可以利用支持转换后的格式的通信协议来发送。
应当认识到,过程500是说明性的,并且变化和修改是可能的。被描述为顺序的步骤可以并行地执行,步骤的次序可以变化,并且步骤可以被修改、组合、添加或省略。在某些方面,过程500可以在企业数据从企业计算系统接收到时被实现。
图6示出了本发明的各个方面可以在其中被实现的移动计算设备的功能框图,而图7示出了本发明的各个方面可以在其中被实现的云计算机系统的功能框图。移动计算设备和云计算机系统的功能框可以由硬件、软件或硬件和软件的组合来实现,以执行本发明的原理。本领域技术人员应当理解,图6和图7中所述的功能框可以被组合或分离为子框,以实现如上所述本发明的原理。因此,本文的描述可以支持本文所述的功能框的任何可能的组合或分离或进一步定义。
参照图6,可以提供用于与企业计算系统(未示出)同步企业数据的移动计算设备600。移动计算设备600可以包括第一接收单元610、存储单元620、第一确定单元630、第一识别单元640、第二确定单元650、第二识别单元660、发送单元670、第二接收单元680,以及更新单元690。
第一接收单元610可以经由到网络的无线通信连接接收企业数据,用于被配置为用于在移动计算设备上执行的应用。企业数据可以以已经从以第二格式构造的原始企业数据转换的第一格式来构造。存储单元620可以将企业数据存储到移动计算设备600上的高速缓存。第一确定单元630可以确定无线通信连接的当前通信状况。第一识别单元640可以基于第一格式识别企业数据中多个项的存在。第二确定单元650可以确定用于企业数据的策略信息。策略信息可以指示用于更新多个项中每个项的标准,并且该标准至少部分地基于通信连接的通信状况。第二识别单元660可以利用策略信息识别企业数据中该多个项中的要基于当前通信状况进行更新的项。发送单元670可以经由无线通信连接发送对与识别出的项对应的已更新的企业数据的请求。第二接收单元680可以接收用于识别出的项的已更新的企业数据。更新单元690可以利用用于识别出的项的已更新的企业数据更新高速缓存。在一方面,接收到的企业数据以JavaScript对象标记格式构造。在一方面,企业数据通过云计算机系统从企业服务器接收;企业数据以它被接收到时的格式构造;并且该格式是基于以REST格式构造的企业数据的转换。在一方面,企业数据中的项包括统一资源标识符,并且统一资源标识符指示关于项的信息的位置。在一方面,企业数据包括项的第一集合和项的第二集合,并且项的第一集合和项的第二集合包括第一项。在一方面,企业数据包括指示该企业数据是否包括项、项的集合或者blob的信息。在一方面,当前通信状况基于移动计算设备600和网络之间的无线通信连接的数据传输速率。在一方面,请求指示与识别出的项关联的版本信息,并且已更新的企业数据是基于版本信息来确定的。在一方面,企业数据包括项;策略指示用于在高速缓存中存储项的时间段;并且时间段基于包括在项中的内容。在一方面,存储在高速缓存中的企业数据包括项,并且策略指示用于更新项中的每一个的时间段。
参照图7,可以提供用于在移动计算设备和企业计算系统之间同步企业数据的云计算机系统700。云计算机系统700可以包括接收单元710、第一确定单元720、转换单元730和发送单元740。
接收单元710可以利用第一通信协议经由网络通信连接从企业计算系统(未示出)接收企业数据。企业数据可以以用于企业计算系统的第一格式来构造。云计算机系统700和企业计算系统可以位于不同的地理位置。第一确定单元720可以确定企业数据包括多个项和与该多个项关联的策略信息。转换单元730可以将以第一格式构造的企业数据转换成第二格式。第二格式是移动计算设备能够解析的,以识别对应于该多个项中每个项的企业数据并识别对应于每个项的策略信息。发送单元740可以利用第二通信协议经由无线网络向多个移动计算设备发送以第二格式构造的转换后的企业数据。在一方面,第一通信协议是REST协议,而第二通信协议与第一通信协议不同。在一方面,以第一格式构造的企业数据是表述性状态转移(REST)格式。在一方面,云计算机系统700还可以包括存储单元750。存储单元750可以存储企业数据中对应于项中的每一个的标识符。标识符识别项。在一方面,云计算机系统700还可以包括识别单元760和第二确定单元770。识别单元760可以识别多个项中的至少两个项的集合。第二确定单元770可以确定项被包括在至少两个项的集合中。将企业数据从第一格式转换成第二格式可以包括将附加信息插入到被转换的企业数据,并且附加信息识别每一个项的集合。
图8绘出了用于实现其中一个方面的分布式系统800的简化图。分布式系统800可以实现计算机系统100的全部或一些元件、计算机系统200的全部或一些元件、计算机系统300的全部或一些元件或它们的组合。分布式系统800可以实现操作、方法和/或过程(例如,图4的过程400或图5的过程500)。在所示出的方面中,分布式系统800包括一个或多个客户端计算设备802、804、806和808,这些客户端计算设备被配置为经一个或多个网络810执行并操作诸如网络浏览器、专属客户端(例如,Oracle Forms)等的客户端应用。在某些方面,一个或多个客户端计算设备802-808可以包括图1的移动计算设备102。服务器812可以经由网络810与远程客户端计算设备802、804、806和808通信耦合。服务器812可以包括移动计算设备102或云计算机系统120。
在各个方面,服务器812可以适于运行由系统的一个或多个组件提供的一个或多个服务或软件应用。服务或软件应用可以包括非虚拟和虚拟环境。虚拟环境可以包括用于虚拟事件、展示(tradeshow)、模拟器、教室、购物交换和企业的那些环境,无论是二维还是三维(3D)表示、基于页面的逻辑环境或以其它方式。在一些方面,这些服务可以作为基于网络的服务或云服务或者依据软件即服务(SaaS)模型向客户计算设备802、804、806和/或808的用户提供。操作客户端计算设备802、804、806和/或808的用户又可以利用一个或多个客户端应用与服务器812交互,以利用由这些组件提供的服务。
在该图中所绘出的配置中,系统800的软件组件818、820和822被示为在服务器812上实现。在其它方面,系统800的一个或多个组件和/或由这些组件提供的服务也可以由一个或多个客户端计算设备802、804、806和/或808实现。然后,操作客户端计算设备的用户可以利用一个或多个客户端应用来使用由这些组件提供的服务。这些组件可以在硬件、固件、软件或其组合中实现。应当认识到的是,各种不同的系统配置是可能的,这些配置可以与分布式系统800不同。因此,该图中所示的方面是用于实现一方面系统的分布式系统的一个例子并且不是要限制。
客户端计算设备802、804、806和/或808可以是便携式手持设备(例如,蜂窝电话、计算平板、个人数字助理(PDA))或可穿戴设备(例如,Google头戴式显示器),运行诸如Microsoft Windows的软件,和/或诸如iOS、Windows Phone、Android,BlackBerry 10、Palm OS等各种移动操作系统,并且启用互联网、电子邮件、短消息服务(SMS)、或其它的通信协议。客户端计算设备可以是通用个人计算机,作为例子,包括运行各种版本的MicrosoftApple和/或Linux操作系统的个人计算机和/或膝上型计算机。客户端计算设备可以是运行任何各种市售或类UNIX操作系统当中任意一种,包括但不限于各种GNU/Linux操作系统,诸如像Google Chrome OS,的工作站计算机。作为替代,或附加地,客户端计算设备802、804、806和808可以是任何其它电子设备,诸如能够经(一个或多个)网络810通信的瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有手势输入设备的Microsoft Xbox游戏控制台)和/或个人消息传送设备。
虽然示例性分布式系统800被示为具有四个客户端计算设备,但任何数量的客户端计算设备可以被支持。其它设备,诸如具有传感器的设备等,可以与服务器812交互。
分布式系统800中的(一个或多个)网络810可以是本领域技术人员熟悉的、可以利用各种市售协议当中任意一种支持数据通信的任何类型的网络,其中协议包括但不限于TCP/IP(传输控制协议/互联网协议)、SNA(系统网络体系结构)、IPX(互联网数据包交换)、AppleTalk等。仅仅作为例子,(一个或多个)网络810可以是局域网(LAN),诸如基于以太网、令牌环等的LAN。(一个或多个)网络810可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网(VPN)、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络(例如,依据电气和电子学协会(IEEE)802.11协议套件、和/或任何其它无线协议当中任意一种操作的网络);和/或这些和/或其它网络的任意组合。
服务器812可以由一个或多个通用计算机、专用服务器计算机(作为例子,包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架式服务器等)、服务器群、服务器集群,或者任何其它适当的布置和/或组合组成。服务器812可以包括运行虚拟操作系统的一个或多个虚拟机,或涉及虚拟化的其它计算体系架构。逻辑存储设备的一个或多个柔性池可以被虚拟化,以维护用于服务器的虚拟存储设备。虚拟网络可以由服务器812利用软件定义的联网来控制。在各个方面,服务器812可以适于运行在前面公开内容中所描述的一个或多个服务或软件应用。例如,服务器812可以对应于用于执行上面根据本公开内容的一方面所描述的处理的服务器。
服务器812可以运行包括上面讨论的操作系统当中任意一种在内的操作系统,以及任何市售的服务器操作系统。服务器812还可以运行各种附加的服务器应用和/或中间层应用当中任意一种,包括HTTP服务器、FTP服务器、CGI(公共网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于从Oracle、Microsoft、Sybase、IBM(国际商业机器)等可商购的那些。
在一些实现中,服务器812可以包括一个或多个应用,以分析和整合从客户端计算设备802、804、806和808的用户接收的数据馈送和/或事件更新。作为例子,数据馈送和/或事件更新可以包括,但不限于,馈送、更新或者从一个或多个第三方信息源和连续数据流接收到的实时更新,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器812还可以包括一个或多个应用,以经由客户端计算设备802、804、806和808的一个或多个显示设备显示数据馈送和/或实时事件。
分布式系统800还可以包括一个或多个数据库814和816。数据库814和816可以驻留在各个位置。作为例子,数据库814和816中的一个或多个可以驻留在服务器812本地的非瞬时性存储介质上(和/或驻留在服务器812中)。作为替代,数据库814和816可以远离服务器812,并且经基于网络的或专用的连接与服务器812通信。在一组方面中,数据库814和816可以驻留在存储区域网络(SAN)中。类似地,用于执行服务器812所具有的功能的任何必要的文件都可以适当地本地存储在服务器812上和/或远程存储。在一组方面中,数据库814和816可以包括适于响应于SQL格式的命令而存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。该一个或多个数据库814和816可以包括或实现为数据库114。
图9是根据本发明的一方面的系统环境900的一个或多个组件的简化框图,通过其,由一方面系统的一个或多个组件提供的服务可以作为云服务被提供。系统环境900可以包括或实现计算机系统100的全部或一些元件、计算机系统200的全部或一些元件、计算机系统300的全部或一些元件或它们的组合。系统环境900可以实现操作、方法和/或过程(例如,图4的过程400或图5的过程500)。在所示出的方面中,系统环境900包括可以被用户用来与提供云服务的云基础设施系统902交互的一个或多个客户端计算设备904、906和908。客户端计算设备可被配置为操作客户端应用,诸如网络浏览器、专用客户端应用(例如,Oracle Forms)或某种其它应用,其可以被客户端计算设备的用户用来与基础设施系统902交互,以使用由云基础设施系统902提供的服务。
应当认识到,该图中所绘出的云基础设施系统902可以具有除绘出的那些组件之外的其它组件。另外,图中所绘出的这方面只是可以结合本发明的一方面的云基础设施系统的一个例子。例如,云基础设施系统902可以包括或实现云计算机系统120。在一些其它方面,云基础设施系统902可以具有比图中所示更多或更少的组件、可以组合两个或更多个组件,或者可以具有组件的不同配置或布置。
客户端计算设备904、906和908可以是类似于上面对802、804、806和808所描述的设备。
虽然示例性系统环境900被示为具有三个客户端计算设备,但是任何数量的客户端计算设备都可以被支持。诸如具有传感器的设备等的其它设备可以与云基础设施系统902交互。
(一个或多个)网络910可以促进客户端904、906和908与云基础设施系统902之间的通信和数据交换。每个网络可以是本领域技术人员熟悉的、可以支持利用任何各种商业协议的任何类型的网络,包括上面对(一个或多个)网络810所描述的那些网络。
云基础设施系统902可以包括一个或多个计算机和/或服务器,这可以包括以上对服务器912所描述的那些服务器。
在某些方面,由云基础设施系统提供的服务可以包括可以让云基础设施系统的用户按需使用的服务的托管,诸如在线数据存储和备份解决方案、基于网络的电子邮件服务、托管的办公套件和文档协作服务、数据库处理、管理的技术支持服务等。由云基础设施系统提供的服务可以动态地扩展,以满足其用户的需求。由云基础设施系统提供的服务的具体实例在本文中称作为“服务实例”。一般而言,来自云服务提供商系统的、经由诸如互联网的通信网络对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自己的办公场所服务器和系统不同。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订阅和使用该应用。
在一些例子中,在计算机网络云基础设施中的服务可以包括对由云供应商提供给用户的储存器、托管数据库、托管网络服务器、软件应用或其它服务的受保护的计算机网络访问,或者如以其它方式在本领域中已知的。例如,服务可以包括通过互联网对云上远程储存器的密码保护的访问。作为另一个例子,服务可以包括用于被联网开发人员专用的基于网络服务的托管关系数据库和脚本语言中间件引擎。作为另一个例子,服务可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。
在某些方面,云基础设施系统902可以包括以自助服务、基于订阅、弹性可扩展、可靠、高可用性并且安全的方式交付给客户的一套应用、中间件和数据库服务产品。这种云基础设施系统的例子是由本受让人提供的Oracle Public Cloud。
大容量数据,有时被称为大数据,可以在许多层面上和以不同规模由基础设施系统托管和/或操纵。这种数据可以包括如此大而复杂以至于难以利用典型的数据库管理工具或传统的数据处理应用来处理的数据集。例如,百万兆字节的数据利用个人计算机或他们的基于机架的对等体可能是难以存储、检索和处理的。这种尺寸的数据会难以利用最当前的关系数据库管理系统和桌面统计和可视化包工作。它们会要求运行几千台服务器计算机的大规模并行处理软件,超出常用软件工具的结构,以便在可容忍的经过时间内捕获、安排、管理和处理数据。
极其大的数据集可以由分析师和研究人员存储并操纵,以可视化大量数据、检测趋势,和/或以其它方式与数据进行交互。数十、数百或数千并行连接的处理器可以对这些数据采取行动,以便呈现它或模拟对数据的外力或它代表什么。这些数据集可以涉及企业数据、结构化数据,诸如在数据库中或以其它方式根据结构化模型组织的结构化数据,和/或非结构化数据(例如,电子邮件、图像、数据blob(二进制大对象)、网页、复杂事件处理)。通过利用一方面相对快速地将更多(或更少)计算资源聚焦到目标上的能力,云基础设施系统可以更好地可用于基于来自企业、政府机构、研究机构、私营个体、相似个人或组织的组,或其它实体的需求对大数据集执行任务。
在各个方面,云基础设施系统902可以适于自动供给、管理和跟踪客户对由云基础设施系统902提供的服务的订阅。云基础设施系统902可以经由不同的部署模型提供云服务。例如,服务可以根据公共云模型来提供,在该公共云模型中云基础设施系统902由销售云服务的组织拥有(例如,被Oracle拥有)并且使得服务对一般公众和不同行业的企业可用。作为另一个例子,服务可以根据私有云模型来提供,在该私有云模型中云基础设施系统902只为单个组织运营并且可以为该组织内的一个或多个实体提供服务。云服务也可以根据社区云模型来提供,在该社区云模型中云基础设施系统902和由云基础设施系统902提供的服务被相关社区中的若干个组织共享。云服务也可以根据混合云模型来提供,该混合云模型是两种或更多种不同模型的组合。
在一些方面,由云基础设施系统902提供的服务可以包括根据软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别、或包括混合服务的其它服务类别提供的一个或多个服务。客户经由订阅订单可以预订由云基础设施系统902提供的一个或多个服务。云基础设施体系902然后执行处理,以提供在客户的订阅订单中的服务。
在一些方面,由云基础设施系统902提供的服务可以包括但不限于,应用服务、平台服务和基础设施服务。在一些实例中,应用服务可以经由SaaS平台由云基础设施系统提供。SaaS平台可被配置为提供属于SaaS类别的云服务。例如,SaaS平台可以提供在集成开发和部署平台上构建和交付一套按需的应用的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买单独的许可和支持。可以提供各种不同的SaaS服务。例子包括但不限于,提供用于大型企业的销售绩效管理、企业整合和业务灵活性的解决方案的服务。
在一些方面,平台服务可以经由PaaS平台由云基础设施系统提供。PaaS平台可被配置为提供属于PaaS类别的云服务。平台服务的例子可以包括但不限于,使组织(诸如Oracle)能够在共享、公共的体系架构上整合现有应用,以及利用由平台提供的共享服务构建新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获得由云基础设施系统提供的PaaS服务,而无需客户购买单独的许可和支持。平台服务的例子包括但不限于,Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)以及其它服务。
通过利用由PaaS平台提供的服务,客户可以采用由云基础设施系统支持的编程语言和工具并且也可以控制所部署的服务。在一些方面,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle融合中间件服务)和Java云服务。在一方面,数据库云服务可以支持使组织能够集中(pool)数据库资源并且以数据库云的形式为客户提供数据库即服务的共享服务部署模型。中间件云服务可以为客户提供平台来开发和部署各种商业应用,并且Java云服务可以为客户提供在云基础设施系统中部署Java应用的平台。
各种不同的基础设施服务可以由云基础设施系统中的IaaS平台提供。基础设施服务促进对诸如存储、网络和其它基本计算资源的底层计算资源的管理和控制,以便让客户利用由SaaS平台和PaaS平台提供的服务。
在某些方面,云基础设施系统902也可以包括用于提供用来向云基础设施系统的客户提供各种服务的资源的基础设施资源930。在一方面,基础设施资源930可以包括诸如服务器、存储和网络资源的硬件的预先集成和优化组合,以便执行由PaaS平台和SaaS平台提供的服务。
在一些方面,在云基础设施系统902中的资源可以被多个用户共享并且动态地按需重新分配。此外,资源可以被分配给在不同时区的用户。例如,云基础设施系统930可以使在第一时区的第一组用户能够利用云基础设施系统的资源指定的小时数,并且然后使相同资源重新分配给位于不同时区的另一组用户,从而最大化资源的利用率。
在某些方面,可以提供由云基础设施系统902的不同组件或模块以及由云基础设施系统902提供的服务共享的多个内部共享服务932。这些内部共享服务可以包括,但不限于,安全和身份服务、集成服务、企业信息库服务、企业管理服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
在某些方面,云基础设施系统902可以提供在云基础设施系统中云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一方面,云管理功能可以包括用于供给、管理和跟踪由云基础设施系统902接收到客户的订阅等能力。
在一方面,如该图中所绘出的,云管理功能可以由一个或多个模块提供,诸如订单管理模块920、订单编制模块922、订单供给模块924、订单管理和监视模块926、以及身份管理模块928。这些模块可以包括一个或多个计算机和/或服务器或者利用一个或多个计算机和/或服务器来提供,该一个或多个计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器群、服务器集群、或任何其它适当的布置和/或组合。
在示例性操作934中,使用诸如客户端设备904、906或908的客户端设备的客户可以通过请求由云基础设施系统902提供的一个或多个服务和为由云基础设施系统902提供的一个或多个服务下订阅订单来与云基础设施系统902交互。在某些方面,客户可以访问云用户界面(UI)、云UI 912、云UI 914和/或云UI 916并且经由这些UI下订阅订单。响应于客户下订单而被云基础设施系统902接收到的订单信息可以包括识别客户和客户想要订阅的、由云基础设施系统902提供的一个或多个服务的信息。
在客户下订单之后,订单信息经由云UI 912、914和/或916被接收。
在操作936,订单被存储在订单数据库918中。订单数据库918可以是由云基础设施系统918操作并且结合其它系统元件一起操作的若干个数据库之一。
在操作938,订单信息被转发到订单管理模块920。在一些情况下,订单管理模块920可被配置为执行与订单相关的计费和记帐功能,诸如验证订单以及在验证后预订订单。
在操作940,关于订单的信息被传送到订单编制模块922。订单编制模块922可以利用订单信息来编制用于由客户所下订单的服务和资源的供给。在一些情况下,订单编制模块922可以编制资源的供给,以利用订单供给模块924的服务支持订阅的服务。
在某些方面,订单编制模块922使得能够管理与每个订单相关联的业务流程并且应用业务逻辑,以确定订单是否应该继续供给。在操作942,当接收到新订阅的订单时,订单编制模块922发送请求到订单供给模块924,以分配资源和配置履行订阅订单所需的那些资源。订单供给模块924使得能够分配用于客户订阅的服务的资源。订单供给模块924在由云基础设施系统900提供的云服务和用于为了提供所请求的服务而供给资源的物理实现层之间提供一层抽象。订单编制模块922可以因此与实现细节隔离,诸如服务和资源是实际上在运行中被供给还是预先被供给并且只在请求时被分配/指定。
在操作944,一旦服务和资源被供给,所提供的服务的通知就可以通过云基础设施系统902的订单供给模块924发送给在客户端设备904、906和/或908上的客户。
在操作946,客户的订阅订单可以被订单管理和监视模块926管理和跟踪。在一些情况下,订单管理和监视模块926可被配置为收集订阅订单中的服务的使用统计数据,诸如使用的存储量、传送的数据量、用户的数量、以及系统上线时间和系统停机时间的量。
在某些方面,云基础设施系统900可以包括身份管理模块928。身份管理模块928可被配置为提供身份服务,诸如在云基础设施系统900中的访问管理和授权服务。在一些方面,身份管理模块928可以控制关于希望利用由云基础设施系统902提供的服务的客户的信息。这种信息可以包括验证这种客户的身份的信息和描述这些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行哪些行为的信息。身份管理模块928也可以包括关于每个客户和关于描述性信息可以如何以及由谁来访问和修改的描述性信息的管理。
图10示出了其中可以实现本发明的各种实施例的示例性计算机系统1000。计算机系统1000可以被用来实现上述任何计算机系统。例如,计算机系统100的全部或一些元件、计算机系统200的全部或一些元件、计算机系统200的全部或一些元件或它们的组合可以包括在计算机系统1000中或在计算机系统1000中实现。计算机系统1000可以实现操作、方法和/或过程(例如,图4的过程400或图5的过程500)。如该图中所示出的,计算机系统1000包括经由总线子系统1002与多个外围子系统通信的处理单元1004。这些外围子系统可以包括处理加速单元1006、I/O子系统1008、存储子系统1018和通信子系统1024。存储子系统1018包括有形计算机可读存储介质1022和系统存储器1010。
总线子系统1002提供了用于让计算机系统1000的各种组件和子系统按意图彼此通信的机制。虽然总线子系统1002被示意性地示为单条总线,但是总线子系统的备选方面可以利用多条总线。总线子系统1002可以是若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及利用任何各种总线体系结构的局部总线。例如,这种体系结构可以包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,其可以被实现为按IEEE P1386.1标准制造的Mezzanine总线。
可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元1004控制计算机系统1000的操作。一个或多个处理器可以被包括在处理单元1004中。这些处理器可以包括单核或多核处理器。在某些方面,处理单元1004可以被实现为一个或多个独立的处理单元1032和/或1034,其中在每个处理单元中包括单核或多核处理器。在其它方面,处理单元1004也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
在各个方面,处理单元1004可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器1004中和/或存储子系统1018中。通过适当的编程,(一个或多个)处理器1004可以提供上述各种功能。计算机系统1000可以附加地包括处理加速单元1006,其可以包括数字信号处理器(DSP)、专用处理器等。
I/O子系统1008可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或手势识别设备,诸如Microsoft运动传感器,其使得用户能够通过利用手势和语音命令的自然用户接口控制诸如的Microsoft360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,在拍拍摄照片和/或做出菜单选择的同时的“眨眼”)并且将眼睛姿势转换为到输入设备(例如,Google)中的输入的Google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备
用户接口输入设备也可以包括,但不限于,三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括,例如,诸如MIDI键盘、数字乐器等的音频输入设备。
用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非视觉显示器等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统1000向用户或其它计算机输出信息的所有可能类型的设备和机构。例如,用户接口输出设备可以包括,但不限于,在视觉上传达文字、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备以及调制解调器。
计算机系统1000可以包括包含被示为当前位于系统存储器1010中的软件元件的存储子系统1018。系统存储器1010可以存储可加载并且可在处理单元1004上执行的程序指令,以及在这些程序执行期间所产生的数据。
依赖于计算机系统1000的配置和类型,系统存储器1010可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器等)。RAM通常包含可被处理单元1004立即访问和/或目前正被处理单元1004操作和执行的数据和/或程序模块。在一些实现中,系统存储器1010可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,诸如在启动期间,包含有助于在计算机系统1000的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)通常可以被存储在ROM中。作为例子,但不是限制,系统存储器1010也示出了可以包括客户端应用、网络浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序1012,程序数据1014,以及操作系统1016。作为例子,操作系统1016可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种商用或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google操作系统等)和/或诸如iOS、Phone、OS、10OS和OS操作系统的移动操作系统。
存储子系统1018也可以提供用于存储提供一些方面的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统1018中。这些软件模块或指令可以被处理单元1004执行。存储子系统1018也可以提供用于存储根据本发明被使用的数据的储存库。
存储子系统1000也可以包括可被进一步连接到计算机可读存储介质1022的计算机可读存储介质读取器1020。与系统存储器1010一起并且,可选地与其相结合,计算机可读存储介质1022可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移动存储设备加存储介质。
包含代码或代码的部分的计算机可读存储介质1022也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。这可以包括有形的、非瞬时性计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备,或者其它有形的计算机可读介质。当被指定时,这也可以包括非有形的、瞬时性计算机可读介质,诸如数据信号、数据传输,或者可以被用来发送期望信息并且可以被计算系统1000访问的任何其它介质。
作为例子,计算机可读存储介质1022可以包括从不可移除的非易失性磁介质读取或写到其的硬盘驱动器、从可移除的非易失性磁盘读取或写到其的磁盘驱动器、以及从可移除的非易失性光盘(诸如CD ROM、DVD和盘或其它光学介质)读取或写到其的光盘驱动器。计算机可读存储介质1022可以包括,但不限于,驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带等。计算机可读存储介质1022也可以包括:基于非易失性存储器的固态驱动器(SSD),诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等;基于易失性存储器的SSD,诸如固态RAM、动态RAM、静态RAM,基于DRAM的SSD,磁阻RAM(MRAM)SSD;以及使用基于DRAM和闪存存储器的SSD的组合的混合SSD。盘驱动器及其相关联的计算机可读介质可以为计算机系统1000提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
通信子系统1024提供到其它计算机系统和网络的接口。通信子系统1024用作用于从计算机系统1000向其它系统接收数据和发送数据的接口。例如,通信子系统1024可以使计算机系统1000能够经由互联网连接到一个或多个设备。在一些方面,通信子系统1024可以包括用于访问无线语音和/或数据网络的射频(RF)收发器组件(例如,利用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术,WiFi(IEEE1002.11系列标准),或其它移动通信技术,或其任意组合)、全球定位系统(GPS)接收器组件和/或其它组件。在一些方面,作为无线接口的附加或者替代,通信子系统1024可以提供有线网络连接(例如,以太网)。
在一些方面,通信子系统1024也可以代表可以使用计算机系统1000的一个或多个用户接收结构化和/或非结构化数据馈送1026、事件流1028、事件更新1030等形式的输入通信。
作为例子,通信子系统1024可被配置为实时地从社交媒体网络和/或其它通信服务的用户接收数据馈送1026,诸如馈送、更新、诸如丰富站点摘要(RSS)馈送的网络馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统1024也可被配置为接收连续数据流形式的数据,这可以包括本质上可以是连续的或无界的、没有明确终止的实时事件的事件流1028和/或事件更新1030。产生连续数据的应用的例子可以包括,例如,传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等。
通信子系统1024也可被配置为向一个或多个数据库输出结构化和/或非结构化数据馈送1026、事件流1028、事件更新1030等,这一个或多个数据库可以与耦合到计算机系统1000的一个或多个流式数据源计算机通信。
计算机系统1000可以是各种类型之一,包括手持便携式设备(例如,蜂窝电话、计算平板、PDA)、可穿戴设备(例如,Google头戴式显示器)、PC、工作站、大型机、信息站、服务器机架或任何其它数据处理系统。
由于计算机和网络的不断变化的本质,在图中绘出的计算机系统1000的描述仅仅要作为具体的例子。具有比图中绘出的系统更多或更少组件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元件可以用硬件、固件、软件(包括小程序)或它们的组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各个方面的其它方式和/或方法。
在前述的说明书中,本发明的各方面参照其具体方面进行了描述,但本领域技术人员将认识到,本发明不限于此。上述发明的各个特征和各方面可以被单独或联合使用。另外,在不背离本说明书的更广泛精神和范围的情况下,各方面可以在除本文所述的那些之外的任何数目的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性而不是限制性的。
Claims (26)
1.一种方法,包括:
由移动计算设备经由到网络的无线通信连接接收企业数据,企业数据用于被配置为在移动计算设备上执行的应用,其中企业数据以已经从以第二格式构造的原始企业数据转换的第一格式构造,并且其中以第一格式构造的企业数据包括多个数据项,所述多个数据项中的每个数据项包括指示该数据项的版本的标识符标签;
由移动计算设备将企业数据存储到移动计算设备上的高速缓存;
由移动计算设备确定无线通信连接的当前通信状况;
由移动计算设备解析企业数据以使用标识符标签识别所述多个数据项中的每个数据项;
由移动计算设备基于无线通信连接的当前通信状况确定用于更新企业数据的策略的策略信息,其中所述策略信息是使用包括在企业数据中的策略数据来确定的,其中所述策略信息基于一个或多个标准来限定用于通信的阈值以用于获得所述多个数据项中的每个数据项的一个或多个更新,并且其中所述一个或多个标准包括针对移动计算设备到一个或多个网络的无线通信连接的数据通信的度量;
利用策略信息,由移动计算设备识别企业数据中所述多个项中的要基于当前通信状况进行更新的项;
由移动计算设备经由无线通信连接通过云计算机系统向企业计算机系统发送对与识别出的项对应的已更新的企业数据的请求,所述请求包括识别出的项的版本;
由移动计算设备至少部分基于识别出的项的版本通过所述云计算机系统从所述企业计算机系统接收用于识别出的项的已更新的企业数据;及
由移动计算设备利用用于识别出的项的已更新的企业数据更新高速缓存。
2.如权利要求1所述的方法,其中接收到的企业数据是以JavaScript对象标记格式构造的。
3.如权利要求1或2所述的方法,其中企业数据是通过所述云计算机系统从所述企业计算机系统接收的,其中企业数据以该企业数据被接收到时的格式构造,并且其中该格式基于以表述性状态转移(REST)格式构造的企业数据的转换。
4.如权利要求1或2所述的方法,其中所述企业数据被解析以识别企业数据中的多个统一资源标识符并且其中所述多个统一资源标识符中的每一个统一资源标识符指示关于所述多个项中的对应一个项的信息的位置。
5.如权利要求1或2所述的方法,其中企业数据包括项的第一集合和项的第二集合,并且其中项的第一集合和项的第二集合包括第一项。
6.如权利要求1或2所述的方法,其中企业数据包括指示该企业数据是否包括项、项的集合或二进制大对象的信息。
7.如权利要求1或2所述的方法,其中当前通信状况是基于移动计算设备和网络之间无线通信连接的数据传输速率来确定的。
8.如权利要求1或2所述的方法,其中所述请求包括对识别出的项的改变。
9.如权利要求1或2所述的方法,其中企业数据包括项,并且其中所述策略信息指示用于在高速缓存中存储该项的时间段,并且其中所述时间段基于包括在该项中的内容。
10.如权利要求1或2所述的方法,其中存储在高速缓存中的企业数据包括项,并且其中所述策略信息指示用于更新该项中的每个项的时间段。
11.一种系统,包括:
一个或多个处理器;及
一个或多个存储器设备,与所述一个或多个处理器耦合并能够被所述一个或多个处理器读取;
第一接收单元,经由到网络的无线通信连接接收企业数据,企业数据用于被配置为在移动计算设备上执行的应用,其中企业数据以已经从以第二格式构造的原始企业数据转换的第一格式构造,并且其中以第一格式构造的企业数据包括多个数据项,所述多个数据项中的每个数据项包括指示该数据项的版本的标识符标签;
存储单元,将企业数据存储到移动计算设备上的高速缓存;
第一确定单元,确定无线通信连接的当前通信状况;
解析单元,解析企业数据以使用标识符标签识别所述多个数据项中的每个数据项;
第二确定单元,基于无线通信连接的当前通信状况确定用于更新企业数据的策略的策略信息,其中所述策略信息是使用包括在企业数据中的策略数据来确定的,其中所述策略信息基于一个或多个标准来限定用于通信的阈值以用于获得所述多个数据项中的每个数据项的一个或多个更新,并且其中所述一个或多个标准包括针对移动计算设备到一个或多个网络的无线通信连接的数据通信的度量;
识别单元,利用策略信息识别企业数据中所述多个项中的要基于当前通信状况进行更新的项;
发送单元,经由无线通信连接通过云计算机系统向企业计算机系统发送对与识别出的项对应的已更新的企业数据的请求,所述请求包括识别出的项的版本;
第二接收单元,至少部分基于识别出的项的版本通过所述云计算机系统从所述企业计算机系统接收用于识别出的项的已更新的企业数据;及
更新单元,利用用于识别出的项的已更新的企业数据更新高速缓存。
12.如权利要求11所述的系统,其中企业数据是通过所述云计算机系统从所述企业计算机系统接收的,其中企业数据以在该企业数据被接收到时的格式构造,并且其中所述格式基于以表述性状态转移(REST)格式构造的企业数据的转换。
13.如权利要求11或12所述的系统,其中当前通信状况是基于移动计算设备和网络之间无线通信连接的数据传输速率来确定的。
14.如权利要求11或12所述的系统,其中所述请求包括对识别出的项的改变。
15.如权利要求11或12所述的系统,其中企业数据包括项,并且其中所述策略信息指示用于在高速缓存中存储该项的时间段,并且其中所述时间段基于包括在该项中的内容。
16.一种系统,包括用于执行如权利要求1-10中任一所述的方法的单元。
17.一种计算机可读存储介质,具有存储在其上的指令,所述指令在由处理器执行时使得所述处理器执行如权利要求1-10中任一所述的方法。
18.一种方法,包括:
由云计算机系统利用第一通信协议经由网络通信连接从企业计算系统接收企业数据,其中企业数据是以用于企业计算系统的第一格式构造的,并且其中云计算机系统和企业计算系统位于不同的地理位置;
通过云计算机系统基于第一格式解析企业数据来确定企业数据包括多个项和与所述多个项关联的策略信息;
由云计算机系统将以第一格式构造的企业数据转换成第二格式,其中第二格式是能够由移动计算设备解析的,以识别对应于所述多个项中的每个项的企业数据并识别对应于所述多个项中的每个项的策略信息,每个项包括用于每个项的指示该项的版本的标识符标签,其中所述策略信息基于一个或多个标准来限定用于通信的阈值以用于获得所述多个项中的每个项的一个或多个更新,并且其中所述一个或多个标准包括针对移动计算设备到一个或多个网络的无线连接的数据通信的度量;及
由云计算机系统利用第二通信协议经由无线网络将以第二格式构造的转换后的企业数据发送到多个移动计算设备。
19.如权利要求18所述的方法,其中第一通信协议是表述性状态转移(REST)协议并且其中第二通信协议与第一通信协议不同。
20.如权利要求18或19所述的方法,其中以第一格式构造的企业数据是表述性状态转移(REST)格式。
21.如权利要求18或19所述的方法,还包括:
存储企业数据中对应于所述多个项中的每个项的标识符,其中标识符识别项。
22.如权利要求18或19所述的方法,还包括:
识别所述多个项中的项的至少两个集合;
确定项被包括在项的至少两个集合中;及
其中将企业数据从第一格式转换成第二格式包括将附加信息插入到被转换的企业数据中,并且其中附加信息识别项的所述至少两个集合中的每个集合。
23.一种系统,包括:
一个或多个处理器;及
一个或多个存储器设备,与所述一个或多个处理器耦合并能够被所述一个或多个处理器读取;
接收单元,利用第一通信协议经由网络通信连接从企业计算系统接收企业数据,其中企业数据是以用于企业计算系统的第一格式构造的,并且其中云计算机系统和企业计算系统位于不同的地理位置;
确定单元,通过基于第一格式解析企业数据来确定企业数据包括多个项和与所述多个项关联的策略信息;
转换单元,将以第一格式构造的企业数据转换为第二格式,其中第二格式是能够由移动计算设备解析的,以识别对应于所述多个项中每个项的企业数据并识别对应于所述多个项中每个项的策略信息,每个项包括用于每个项的指示该项的版本的标识符标签,其中所述策略信息基于一个或多个标准来限定用于通信的阈值以用于获得所述多个项中的每个项的一个或多个更新,并且其中所述一个或多个标准包括针对移动计算设备到一个或多个网络的无线连接的数据通信的度量;及
发送单元,利用第二通信协议经由无线网络将以第二格式构造的转换后的企业数据发送到多个移动计算设备。
24.如权利要求23所述的系统,其中第一通信协议是表述性状态转移(REST)协议,并且其中第二通信协议与第一通信协议不同。
25.一种系统,包括用于执行如权利要求18-22中任一所述的方法的单元。
26.一种计算机可读存储介质,具有存储在其上的指令,所述指令在由处理器执行时使得所述处理器执行如权利要求18-22中任一所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461972900P | 2014-03-31 | 2014-03-31 | |
US61/972,900 | 2014-03-31 | ||
PCT/US2014/044165 WO2015152956A1 (en) | 2014-03-31 | 2014-06-25 | Infrastructure for synchronization of mobile device with mobile cloud service |
US14/314,729 US10055423B2 (en) | 2014-03-31 | 2014-06-25 | Infrastructure for synchronization of mobile device with mobile cloud service |
US14/314,729 | 2014-06-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106462577A CN106462577A (zh) | 2017-02-22 |
CN106462577B true CN106462577B (zh) | 2020-11-06 |
Family
ID=54190653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480076463.4A Active CN106462577B (zh) | 2014-03-31 | 2014-06-25 | 用于移动设备和移动云服务的同步的基础设施 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10055423B2 (zh) |
EP (1) | EP3127008B1 (zh) |
JP (1) | JP6336110B2 (zh) |
KR (1) | KR102196894B1 (zh) |
CN (1) | CN106462577B (zh) |
CA (1) | CA2936503C (zh) |
SG (1) | SG11201605786SA (zh) |
WO (1) | WO2015152956A1 (zh) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9529658B2 (en) | 2014-02-07 | 2016-12-27 | Oracle International Corporation | Techniques for generating diagnostic identifiers to trace request messages and identifying related diagnostic information |
EP3103238B1 (en) | 2014-02-07 | 2021-06-23 | Oracle International Corporation | Mobile cloud service architecture |
CA2931750C (en) | 2014-02-07 | 2023-03-07 | Oracle International Corporation | Cloud service custom execution environment |
US9529657B2 (en) | 2014-02-07 | 2016-12-27 | Oracle International Corporation | Techniques for generating diagnostic identifiers to trace events and identifying related diagnostic information |
US10055423B2 (en) | 2014-03-31 | 2018-08-21 | Oracle International Corporation | Infrastructure for synchronization of mobile device with mobile cloud service |
US10642873B2 (en) * | 2014-09-19 | 2020-05-05 | Microsoft Technology Licensing, Llc | Dynamic natural language conversation |
US9729542B2 (en) | 2014-09-24 | 2017-08-08 | Oracle International Corporation | Compartmentalizing application distribution for disparate electronic devices |
US10747812B1 (en) * | 2014-10-01 | 2020-08-18 | EMC IP Holding Company LLC | Video analytics |
US9794825B2 (en) | 2014-11-06 | 2017-10-17 | Alcatel-Lucent Usa Inc. | System and method for determining cell congestion level |
AU2015374063C1 (en) * | 2014-12-31 | 2020-03-12 | Servicenow, Inc. | Classification based automated instance management |
US10063661B2 (en) | 2015-01-14 | 2018-08-28 | Oracle International Corporation | Multi-tenant cloud-based queuing systems |
US10171582B2 (en) * | 2015-02-23 | 2019-01-01 | Barracuda Networks, Inc. | Method and apparatus for client to content appliance (CA) synchronization |
US20160321226A1 (en) * | 2015-05-01 | 2016-11-03 | Microsoft Technology Licensing, Llc | Insertion of unsaved content via content channel |
US10909080B2 (en) * | 2015-05-04 | 2021-02-02 | Microsoft Technology Licensing, Llc | System and method for implementing shared document edits in real-time |
US9826422B2 (en) | 2015-05-28 | 2017-11-21 | Alcatel-Lucent Usa Inc. | System and method for controlling an operation of an application |
US9838893B2 (en) * | 2015-06-25 | 2017-12-05 | Alcatel Lucent | System and method for cooperatively controlling an application |
US10038722B2 (en) * | 2015-09-03 | 2018-07-31 | Vmware, Inc. | Access control policy management in a cloud services environment |
US10230792B2 (en) * | 2015-10-23 | 2019-03-12 | International Business Machines Corporation | Synchronizing proprietary data in an external cloud with data in a private storage system |
US10033704B2 (en) * | 2015-11-29 | 2018-07-24 | International Business Machines Corporation | Securing enterprise data on mobile devices |
US10038551B2 (en) * | 2015-11-29 | 2018-07-31 | International Business Machines Corporation | Securing enterprise data on mobile devices |
US10536327B2 (en) * | 2015-12-16 | 2020-01-14 | Sap Se | Providing a landscape and statistics service to a mobile communications device |
US10120954B2 (en) | 2015-12-31 | 2018-11-06 | Samsung Electronics Co., Ltd. | Transformation and presentation of on-demand native application crawling results |
CN106980625B (zh) | 2016-01-18 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置及系统 |
US10334024B2 (en) | 2016-01-20 | 2019-06-25 | Samsung Electronics Co., Ltd. | Electronic communication device |
WO2017171932A1 (en) | 2016-03-28 | 2017-10-05 | Oracle International Corporation | Pre-formed instructions for a mobile cloud service |
US10938814B2 (en) * | 2016-05-09 | 2021-03-02 | Aetna Inc. | Unified authentication software development kit |
US11106621B2 (en) * | 2016-07-01 | 2021-08-31 | Intel Corporation | Adaptive synching |
US10762054B2 (en) | 2016-07-22 | 2020-09-01 | Microsoft Technology Licensing, Llc | Cloud content states determination logic |
US11113608B2 (en) * | 2017-10-30 | 2021-09-07 | Accenture Global Solutions Limited | Hybrid bot framework for enterprises |
US10298585B1 (en) | 2018-01-26 | 2019-05-21 | Accenture Global Solutions Limited | Blockchain interoperability |
US10503497B2 (en) * | 2018-01-30 | 2019-12-10 | Microsoft Technology Licensing, Llc | Techniques for utilizing an expression language in service configuration files |
CN108399240B (zh) * | 2018-02-28 | 2020-04-14 | 北京金堤科技有限公司 | 企业变更信息数据挖掘方法和系统 |
US10721065B2 (en) * | 2018-03-29 | 2020-07-21 | Accenture Global Solutions Limited | Active state blockchain synchronization |
JP7376591B2 (ja) * | 2018-07-25 | 2023-11-08 | ブルース インク. | コンピューティングデバイスとクラウドベースサービスとを接続するモジュール上データシステム(DSoM) |
EP3850481A4 (en) * | 2018-09-10 | 2022-10-26 | AVEVA Software, LLC | SYSTEM AND METHOD OF A NETWORK EDGE STATE MODULE SERVER |
WO2020239701A1 (en) * | 2019-05-29 | 2020-12-03 | Legic Identsystems Ag | System and method of facilitating data communication between an internet of things device and a cloud-based computer system |
US11075812B2 (en) * | 2019-06-20 | 2021-07-27 | Kaloom Inc. | Server and methods for synchronizing networking information with client devices |
CN111586184A (zh) * | 2020-05-11 | 2020-08-25 | 重庆跃腾电器有限公司 | 一种售电管理系统的自组网方法 |
WO2022173443A1 (en) * | 2021-02-12 | 2022-08-18 | Hewlett-Packard Development Company, L.P. | Generating a request for reprocessing of a replaceable supply component |
WO2022173442A1 (en) * | 2021-02-12 | 2022-08-18 | Hewlett-Packard Development Company, L.P. | Reprocessing of a replaceable supply component |
WO2023041967A1 (en) * | 2021-09-14 | 2023-03-23 | Sensetime International Pte. Ltd. | Configuration updating method and apparatus, device and storage medium |
CN114785809A (zh) * | 2022-03-29 | 2022-07-22 | 医渡云(北京)技术有限公司 | 数据同步方法、装置、电子设备及计算机可读存储介质 |
KR20230168350A (ko) | 2022-06-07 | 2023-12-14 | 주식회사 데일리팜 | 빅데이터의 다중 분석을 이용한 모바일 클라우드의 정보제공시스템 |
US11886325B2 (en) * | 2022-06-30 | 2024-01-30 | Browserstack Limited | Network status simulation for remote device infrastructure |
CN115412478B (zh) * | 2022-08-30 | 2023-06-02 | 奥特酷智能科技(南京)有限公司 | 一种面向服务的汽车域控制器数据转发系统及方法 |
US11860771B1 (en) | 2022-09-26 | 2024-01-02 | Browserstack Limited | Multisession mode in remote device infrastructure |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818902A (zh) * | 2005-01-31 | 2006-08-16 | 捷讯研究有限公司 | 使用设备数据模式同步服务器和设备数据 |
CN101356796A (zh) * | 2006-01-06 | 2009-01-28 | 奥拉蒂夫公司 | 移动系统中企业语音邮件的集成 |
Family Cites Families (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4788715A (en) | 1986-10-16 | 1988-11-29 | American Telephone And Telegraph Company At&T Bell Laboratories | Announcing waiting times in queuing systems |
FR2782435B1 (fr) | 1998-08-13 | 2000-09-15 | Bull Cp8 | Procede de communication entre une station d'utilisateur et un reseau, notamment de type internet, et architecture de mise en oeuvre |
US6970935B1 (en) | 2000-11-01 | 2005-11-29 | International Business Machines Corporation | Conversational networking via transport, coding and control conversational protocols |
JP4315696B2 (ja) | 2002-03-29 | 2009-08-19 | 富士通株式会社 | ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法 |
US7440940B2 (en) | 2002-12-02 | 2008-10-21 | Sap Ag | Web service agent |
US20040162823A1 (en) | 2003-02-13 | 2004-08-19 | Van De Loo Kaj | Message translation using adaptive agents |
US7430290B2 (en) | 2003-10-23 | 2008-09-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Virtual queuing support system and method |
US7421698B2 (en) | 2003-12-22 | 2008-09-02 | Sun Microsystems, Inc. | System and method for dynamically and persistently tracking incremental profiling data in a process cloning application environment |
US20060112127A1 (en) | 2004-11-23 | 2006-05-25 | Microsoft Corporation | Method for efficiently mapping error messages to unique identifiers |
US7523491B2 (en) | 2005-01-03 | 2009-04-21 | Nokia Corporation | System, apparatus, and method for accessing mobile servers |
US8015051B2 (en) | 2005-03-11 | 2011-09-06 | Sap Ag | System and method for business process integration |
US7631017B2 (en) * | 2005-12-08 | 2009-12-08 | Motorola, Inc. | Method and system for maintaining current data for wireless devices |
JP2007226464A (ja) * | 2006-02-22 | 2007-09-06 | Canon Inc | 情報処理装置、情報処理方法 |
US20090170557A1 (en) | 2006-10-02 | 2009-07-02 | Prashant Chauhan | Systems and methods for enabling communication features utilizing various bearer media |
US8831963B2 (en) | 2007-03-08 | 2014-09-09 | Ab Inventio, Llc | Electronic queuing systems and methods |
JP2009064108A (ja) * | 2007-09-04 | 2009-03-26 | Ricoh Co Ltd | 変換装置、変換方法及び変換システム |
US20090158302A1 (en) | 2007-12-13 | 2009-06-18 | Fiberlink Communications Corporation | Api translation for network access control (nac) agent |
JP5268021B2 (ja) * | 2008-11-21 | 2013-08-21 | 日本電気株式会社 | リッチインターネットアプリケーションのオフラインサポート装置、方法、プログラム及び携帯端末 |
KR20100070100A (ko) * | 2008-12-17 | 2010-06-25 | 한국전자통신연구원 | 데이터베이스 기반 노드 갱신 방법 및 그에 따른 타겟 노드운용 방법 |
KR101036359B1 (ko) * | 2009-07-13 | 2011-05-23 | 주식회사 케이티 | 응답 속도 개선을 위한 풀 브라우징 서비스 단말기와 제공 시스템 및 그 방법 |
KR101263217B1 (ko) * | 2009-10-15 | 2013-05-10 | 한국전자통신연구원 | 모바일 클라우드 서비스 제공을 위한 모바일 단말 및 그의 동작 방법 |
US8990427B2 (en) * | 2010-04-13 | 2015-03-24 | Synactive, Inc. | Method and apparatus for accessing an enterprise resource planning system via a mobile device |
US8799413B2 (en) | 2010-05-03 | 2014-08-05 | Panzura, Inc. | Distributing data for a distributed filesystem across multiple cloud storage systems |
US8752047B2 (en) | 2010-05-28 | 2014-06-10 | Bromium, Inc. | Automated management of virtual machines to process untrusted data based on client policy information |
WO2012018556A2 (en) * | 2010-07-26 | 2012-02-09 | Ari Backholm | Mobile application traffic optimization |
US8504837B2 (en) | 2010-10-15 | 2013-08-06 | Rockwell Automation Technologies, Inc. | Security model for industrial devices |
US8626718B2 (en) | 2010-10-29 | 2014-01-07 | Verizon Patent And Licensing Inc. | Content caching based on refresh and expiration times |
US8725820B2 (en) | 2010-12-16 | 2014-05-13 | Openet Telecom Ltd. | Methods, systems and devices for horizontally scalable high-availability dynamic context-based routing |
US8725896B2 (en) | 2010-12-16 | 2014-05-13 | Openet Telecom Ltd. | Methods, systems and devices for forked routing |
US8675659B2 (en) | 2010-12-16 | 2014-03-18 | Openet Telecom Ltd. | Methods, systems and devices for multiphase decoding |
US8943221B2 (en) | 2010-12-16 | 2015-01-27 | Openet Telecom Ltd. | Methods, systems and devices for pipeline processing |
US8880726B2 (en) | 2010-12-16 | 2014-11-04 | Openet Telecom Ltd. | Methods, systems and devices for dynamic context-based routing using a topology tree |
US8908531B2 (en) | 2011-08-25 | 2014-12-09 | At&T Mobility Ii Llc | Communication gateway for facilitating communications with a supervisory control and data aquisition system |
US20130086669A1 (en) | 2011-09-29 | 2013-04-04 | Oracle International Corporation | Mobile application, single sign-on management |
US9043480B2 (en) * | 2011-10-11 | 2015-05-26 | Citrix Systems, Inc. | Policy-based application management |
US8806570B2 (en) * | 2011-10-11 | 2014-08-12 | Citrix Systems, Inc. | Policy-based application management |
WO2013071087A1 (en) | 2011-11-09 | 2013-05-16 | Unisys Corporation | Single sign on for cloud |
WO2013086211A2 (en) | 2011-12-06 | 2013-06-13 | Mercury And Associates, Structure Ii, Llc | Multilayer hybrid games |
US8863126B2 (en) | 2011-12-29 | 2014-10-14 | Oracle International Corporation | Java virtual machine embedded in a native mobile application |
US8863298B2 (en) | 2012-01-06 | 2014-10-14 | Mobile Iron, Inc. | Secure virtual file management system |
EP3576372B1 (en) | 2012-02-21 | 2023-09-27 | Zebra Technologies Corporation | Methods, apparatuses, and computer program products for implementing cloud connected printers and an adaptive printer-based application framework |
US8918881B2 (en) * | 2012-02-24 | 2014-12-23 | Appthority, Inc. | Off-device anti-malware protection for mobile devices |
US20130239192A1 (en) * | 2012-03-09 | 2013-09-12 | RAPsphere, Inc. | Method and apparatus for securing mobile applications |
US20130275492A1 (en) | 2012-04-13 | 2013-10-17 | Microsoft Corporation | Enabling Web Clients to Provide Web Services |
JP6053364B2 (ja) | 2012-07-19 | 2016-12-27 | キヤノン株式会社 | 情報処理システム、サーバ装置、クライアント装置および制御方法 |
CN105190557B (zh) * | 2012-10-16 | 2018-09-14 | 思杰系统有限公司 | 用于通过多级api集成在公共与私有云之间进行桥接的系统和方法 |
US8826332B2 (en) | 2012-12-21 | 2014-09-02 | Ustudio, Inc. | Media distribution and management platform |
US9985850B2 (en) * | 2013-03-29 | 2018-05-29 | Citrix Systems, Inc. | Providing mobile device management functionalities |
WO2014168962A1 (en) * | 2013-04-09 | 2014-10-16 | Citrix Systems, Inc. | Providing a native desktop using cloud-synchronized data |
US20140321302A1 (en) * | 2013-04-26 | 2014-10-30 | Htc Corporation | Mobile device and method for data synchronization |
US10229134B2 (en) * | 2013-06-25 | 2019-03-12 | Box, Inc. | Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform |
US9473562B2 (en) | 2013-09-12 | 2016-10-18 | Apple Inc. | Mediated data exchange for sandboxed applications |
US9641335B2 (en) | 2013-09-16 | 2017-05-02 | Axis Ab | Distribution of user credentials |
WO2015042547A1 (en) | 2013-09-20 | 2015-03-26 | Oracle International Corporation | Web-based interface integration for single sign-on |
US9934323B2 (en) | 2013-10-01 | 2018-04-03 | Facebook, Inc. | Systems and methods for dynamic mapping for locality and balance |
KR102223034B1 (ko) | 2013-11-14 | 2021-03-04 | 삼성전자주식회사 | 조명 시스템 및 그를 위한 신호 변환 장치 |
CA2931750C (en) | 2014-02-07 | 2023-03-07 | Oracle International Corporation | Cloud service custom execution environment |
EP3103238B1 (en) | 2014-02-07 | 2021-06-23 | Oracle International Corporation | Mobile cloud service architecture |
US9529657B2 (en) | 2014-02-07 | 2016-12-27 | Oracle International Corporation | Techniques for generating diagnostic identifiers to trace events and identifying related diagnostic information |
US9529658B2 (en) | 2014-02-07 | 2016-12-27 | Oracle International Corporation | Techniques for generating diagnostic identifiers to trace request messages and identifying related diagnostic information |
IN2014CH01236A (zh) * | 2014-03-10 | 2015-09-18 | Cognizant Technology Solutions India Pvt Ltd | |
US10055423B2 (en) | 2014-03-31 | 2018-08-21 | Oracle International Corporation | Infrastructure for synchronization of mobile device with mobile cloud service |
-
2014
- 2014-06-25 US US14/314,729 patent/US10055423B2/en active Active
- 2014-06-25 EP EP14745258.5A patent/EP3127008B1/en active Active
- 2014-06-25 CA CA2936503A patent/CA2936503C/en active Active
- 2014-06-25 KR KR1020167030155A patent/KR102196894B1/ko active IP Right Grant
- 2014-06-25 CN CN201480076463.4A patent/CN106462577B/zh active Active
- 2014-06-25 JP JP2016557145A patent/JP6336110B2/ja active Active
- 2014-06-25 SG SG11201605786SA patent/SG11201605786SA/en unknown
- 2014-06-25 WO PCT/US2014/044165 patent/WO2015152956A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818902A (zh) * | 2005-01-31 | 2006-08-16 | 捷讯研究有限公司 | 使用设备数据模式同步服务器和设备数据 |
CN101356796A (zh) * | 2006-01-06 | 2009-01-28 | 奥拉蒂夫公司 | 移动系统中企业语音邮件的集成 |
Also Published As
Publication number | Publication date |
---|---|
CN106462577A (zh) | 2017-02-22 |
US20150278245A1 (en) | 2015-10-01 |
SG11201605786SA (en) | 2016-10-28 |
JP6336110B2 (ja) | 2018-06-06 |
KR20160138261A (ko) | 2016-12-02 |
EP3127008A1 (en) | 2017-02-08 |
CA2936503A1 (en) | 2015-10-08 |
KR102196894B1 (ko) | 2020-12-31 |
JP2017517782A (ja) | 2017-06-29 |
WO2015152956A1 (en) | 2015-10-08 |
US10055423B2 (en) | 2018-08-21 |
EP3127008B1 (en) | 2020-06-03 |
CA2936503C (en) | 2021-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462577B (zh) | 用于移动设备和移动云服务的同步的基础设施 | |
CN105917627B (zh) | 云服务定制执行环境方法及系统 | |
US9712511B2 (en) | Mobile cloud service architecture | |
EP3198420B1 (en) | Compartmentalizing application distribution for disparate electronic devices | |
US9529658B2 (en) | Techniques for generating diagnostic identifiers to trace request messages and identifying related diagnostic information | |
US10110447B2 (en) | Enhanced rest services with custom data | |
US10135940B2 (en) | Subscribing to event notifications using object instances | |
US10757064B2 (en) | Communication interface for handling multiple operations | |
US10482404B2 (en) | Delegated privileged access grants | |
US10015120B2 (en) | Providing message delivery services between requestors and providers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |