划分用于不同电子设备的应用分发的制作方法

文档序号:13081470阅读:194来源:国知局
划分用于不同电子设备的应用分发的制作方法与工艺

对相关申请的交叉引用

本申请要求于2015年4月17日提交的标题为“compartmentalizingapplicationdistributionfordisparateelectronicdevices”的美国非临时申请no.14/689,722的权益和优先权,该申请要求于2014年9月24日提交的标题为“mobilesecuritymanager(msm)”的美国临时申请no.62/054,544的权益和优先权。以上识别出的专利申请的全部内容通过引用被结合于此,用于所有目的。



背景技术:

本公开一般而言涉及管理用于各种类型的电子设备的应用。更具体而言,公开了用于划分用于不同电子设备的应用的分发的技术。

应用通常是指被设计为为电子设备的用户执行特定功能的程序,电子设备诸如个人计算机、台式计算机、移动或手持设备(诸如膝上型计算机、智能手机、平板设备)等。应用的例子可以包括字处理器、数据库程序、web浏览器、开发工具、通信程序等。应用通常使用设备的操作系统的服务来执行该应用预期的功能。应用可以被预加载到设备上或者由设备的用户从互联网或使用户能够浏览和下载应用的在线商店下载。

应用通常通过向应用提供服务的各种应用平台可用。由应用平台提供的服务可以包括例如执行应用的操作系统服务、允许应用存储和处理数据的数据服务、帮助创建和维护应用的开发工具等。因此,找到改进的管理电子设备上的应用的方式是所期望的。



技术实现要素:

一般而言,公开了便于不同类型的电子设备的应用分发的技术。这些技术(例如,方法、系统、存储可由一个或多个处理器执行的代码或指令的非临时性计算机可读介质)提供用于生成逻辑应用。逻辑应用可以通过单个接口运行单独的命令,从而减少不同用户的电子设备(例如,智能电话、平板设备、工作站、可穿戴计算机)和公司的各种服务器之间所需的连接数量。在某些实施例中,逻辑应用可以指用于对设备进行编程的应用的多个物理分发的聚集(grouping)。应用可以包括但不限于web浏览器、字处理器、电子邮件程序、数据库软件、演示软件、游戏应用、消息传送应用等。在一些例子中,逻辑应用的多个物理分发可以对应于应用的不同操作系统(os)版本。例如,应用的不同os版本可以包括应用的版本、应用的版本、应用的版本等。针对这些操作系统和设备类型中的每一个的编译代码被控制和分配以从极不相同的分发体系架构中选择用户的设备。

根据一些实施例,公开了一种用于生成逻辑应用的方法。该方法包括接收用于应用的第一二进制文件的第一资源定位符。在一些例子中,第一资源定位符可以指向应用的第一二进制文件的第一分发位置(例如,统一资源定位符(url))。应用的第一二进制文件可以对应于应用的特定物理分发(例如,os版本)。例如,第一二进制文件可以对应于应用的os版本。

在一些实施例中,该方法然后包括针对第一资源定位符在第一数据库记录中生成第一条目组,以及将第一设备的第一操作系统版本分配给第一条目组。例如,第一条目组可以对应于应用的版本的url分发位置。

在一些实施例中,该方法可以包括接收用于应用的第二二进制文件的属性列表(p-列表)元数据文件。在一些例子中,属性列表元数据文件可以指向应用的第二二进制文件的属性列表位置(例如,p-列表文件)。应用的第二二进制文件可以对应于应用的特定物理分发(例如,os版本)。例如,第二二进制文件可以对应于应用的版本。

在一些实施例中,该方法可以包括针对属性列表元数据文件在第二数据库记录中生成第二条目组,以及将第二设备的第二操作系统版本分配给第二条目组。例如,第二条目组可以对应于应用的版本的‘.plist’分发位置。

在一些实施例中,该方法可以包括呈现具有链接到第一条目组的第一用户界面要素和链接到第二条目组的第二用户界面要素的用户界面。第一用户界面要素可以呈现在多标签界面的第一标签中,并且第二用户界面要素可以呈现在多标签界面的第二标签上。在一些实施例中,该方法可以包括基于第一条目组和第二条目组生成逻辑应用。

在一些实施例中,第一条目组包括第一设备的第一操作系统平台的最小操作系统版本和最大操作系统版本,并且第二条目组包括第二设备的第二操作系统平台的最小操作系统版本和最大操作系统版本。

在一些实施例中,第一操作系统版本的类型或第二操作系统版本的类型选自包括版本、操作系统版本和操作系统版本的组。在一些实施例中,第一设备或第二设备的类型选自包括工作站、个人计算机、平板计算机、移动设备和可穿戴设备的组。

在一些实施例中,该方法包括识别与第一设备的第一用户相关联的第一策略、基于该策略确定要安装在第一设备上的逻辑应用的第一版本、以及使得逻辑应用的第一版本安装在第一设备上。在一些实施例中,该方法包括识别与第二设备的第二用户相关联的第二策略、基于该策略确定要安装在第二设备上的逻辑应用的第二版本、以及使得逻辑应用的第二版本安装在第二设备上。在一些实施例中,该方法包括使得逻辑应用的第一版本被下载到第一设备并且使得逻辑应用的第二版本被下载到第二设备。

根据一些实施例,公开了一种用于划分用于不同电子设备的应用分发的系统。该系统包括接收单元,用于接收用于应用的第一二进制文件的第一资源定位符,以及用于接收用于应用的第二二进制文件的属性列表元数据文件。

在一些实施例中,该系统还包括生成单元,用于针对第一资源定位符在第一数据库记录中生成第一条目组,并且针对属性列表元数据文件在第二数据库记录中生成第二条目组。

在一些实施例中,该系统还包括分配单元,用于将第一设备的第一操作系统版本分配给第一条目组,以及用于将第二设备的第二操作系统版本分配给第二条目组。

在一些实施例中,该系统还包括呈现单元,用于呈现具有链接到第一条目组的第一用户界面单元和链接到第二条目组的第二用户界面单元的用户界面。

在一些实施例中,生成单元至少部分地基于第一条目组和第二条目组来生成逻辑应用。

在一些实施例中,系统还包括识别单元,用于识别与第一设备的第一用户相关联的第一策略,以及用于识别与第二设备的第二用户相关联的第二策略。

在一些实施例中,该系统还包括确定单元,用于基于策略确定要安装在第一设备上的逻辑应用的第一版本,以及用于基于策略确定要安装在第二设备上的逻辑应用的第二版本。

在一些实施例中,该系统还包括安装单元,用于基于所述确定使得在第一设备上安装逻辑应用的第一版本,以及用于基于所述确定使得在第二设备上安装逻辑应用的第二版本。

在一些实施例中,系统还包括传输单元,用于向第二设备传输推送通知事件,以将逻辑应用的第二版本下载到设备上。

在一些实施例中,公开了一种用于划分用于不同电子设备的应用分发的附加系统。该系统包括逻辑应用生成引擎和逻辑应用安装引擎。逻辑应用生成引擎针对应用的第一二进制文件在第一数据库记录中生成第一条目组,针对应用的第二二进制文件的属性列表元数据文件在第二数据库记录中生成第二条目组,将第一设备的第一操作系统版本分配给第一条目组;将第二设备的第二操作系统版本分配给第二条目组,并且至少部分地基于第一条目组和第二条目组来生成逻辑应用。逻辑应用安装引擎使得在第一设备或第二设备上安装逻辑应用。

由本发明的实施例提供的技术优点有许多。可以通过利用第一条目组和第二条目组在执行两个不同操作系统的两个不同设备上有区别地执行单个逻辑应用。因此,设备不必维护和存储应用的单独版本。如上所述,逻辑应用可以通过单个接口运行单独的命令,从而减少不同用户的电子设备(例如,智能电话、平板设备、工作站、可穿戴计算机)和公司的各种服务器之间所需的连接数量。

通过参考以下说明书、权利要求和附图,前述内容以及其它特征和实施例将变得更加清楚。

附图说明

图1绘出了根据本发明的某些实施例的计算环境100的简化高层级图。

图2是根据本发明的实施例的逻辑应用的示例性图示。

图3示出了本文所述的用于生成逻辑应用的示例图形用户界面。

图4示出了本文所述的用于提供第一条目组的示例图形用户界面,其中第一条目组用于逻辑应用的第一物理分发。

图5示出了本文所述的用于提供第二条目组的示例图形用户界面,其中第二条目组用于逻辑应用的第二物理分发。

图6示出了本文所述的用于生成逻辑应用的示例过程600的流程图。

图7示出了本文描述的用于在设备上安装逻辑应用的示例过程700的流程图。

图8绘出了用于实现实施例的分布式系统800的简化图。

图9是根据本公开的实施例的系统环境900的一个或多个组件的简化框图,在系统环境900中服务可以被提供作为云服务。

图10示出了可以用来实现本发明的实施例的示例性计算机系统1000。

图11绘出了根据本发明的某些实施例的用于划分用于不同电子设备的应用分发的系统1100。

具体实施方式

在以下描述中,为了解释的目的,阐述了具体的细节以便提供对本发明的实施例的透彻理解。但是,将清楚的是,各种实施例可以在没有这些具体细节的情况下实践。附图和描述不旨在是限制性的。

根据一些方面,公开了一种逻辑应用生成系统。在一些实施例中,逻辑应用生成系统被配置为生成逻辑应用。逻辑应用可以通过单个接口运行单独的命令,从而减少不同用户的电子设备(例如,智能电话、平板设备、工作站、可穿戴计算机)和公司的各种服务器之间所需的连接的数量。如上所述,逻辑应用可以指用于对设备进行编程的应用的多个物理分发的聚集。例如,逻辑应用的多个物理分发可以对应于应用的不同os版本。例如,逻辑应用可以包括应用的版本、应用的版本、应用的版本等。针对这些操作系统和设备类型中的每一个的编译代码被控制并且被分配以从极不相同的分发体系架构中选择用户的设备。在一些实施例中,逻辑应用可以经由在逻辑应用生成系统的浏览器应用中显示的用户界面来生成。

在某些实施例中,逻辑应用生成系统可以被配置为在设备上安装逻辑应用。例如,设备可以包括个人计算机、台式计算机、诸如膝上型计算机、智能电话、平板设备的移动或手持设备等。在某些实施例中,逻辑应用生成系统可以被配置为识别与设备的用户相关联的策略,以确定要安装到设备的逻辑应用的特定版本。逻辑应用生成系统然后可以被配置为推送逻辑应用的适当版本以便在设备上安装。

根据本发明的实施例的逻辑应用的生成包括技术优点,诸如消除了生成用于应用的不同物理分发(例如,不同os版本)的单独的应用定义和/或实例的需要。单个逻辑应用可以被添加到设备的应用目录,而不是添加对应于应用的不同os版本的各个安全名称。用户可以直接从应用目录安装逻辑应用的适当版本,而不必从可用的应用分发列表中选择要下载的应用的特定版本。此外,应用的每个物理分发可以在逻辑应用中彼此独立地更新。例如,企业内的信息技术(it)部门可能希望对分配给企业中的一组雇员的应用的版本提供更新,而与分配给企业内的一组承包商的应用的版本更新无关。当系统接收到对应用的特定os版本的更新时,可以通知在其设备上安装有逻辑应用的特定版本的特定用户和/或用户组,并且可以将更新推送到所标识出的设备。

图1绘出了根据本发明的某些实施例的计算环境100的简化高层级图。如图所示,计算环境100包括经由通信网络106通信地耦合到逻辑应用生成系统104的一个或多个远程设备102(1)-102(n)(统称为设备102)。在一些实施例中,逻辑应用生成系统104可以被配置为通过将应用的多个物理分发聚集成单个逻辑应用来划分应用的不同物理分发。如本文所述,“应用”可以指由设备102执行的任何软件程序。应用可以包括但不限于web浏览器、字处理器、电子邮件程序、数据库软件、演示软件、游戏应用、消息传送应用等。如上所述,应用的多个物理分发可以对应于应用的不同os版本。例如,应用的os版本可以包括应用的版本、应用的版本和应用的版本。在一些例子中,逻辑应用生成系统104可以实现为企业内的子系统。在其它例子中,逻辑应用生成系统104还可以实现为它自身独立的服务,其为企业提供将应用的分发划分为逻辑应用的服务。

在一些例子中,设备102可以包括与用户(例如,用户_1...用户_m)相关联的设备。例如,设备102可以是各种类型的,包括但不限于个人计算机、台式计算机、诸如膝上型计算机、智能电话、平板设备的移动或手持设备等。设备也可以包括端点设备,诸如在另一设备上执行的工作空间。工作空间可以是受控环境,以在运行工作空间的设备上提供对企业数据和应用的访问。例如,安全容器应用可以在设备102上运行。设备102也可以包括但不限于由企业发布的设备(例如,公司设备)或用户的个人设备(例如,“带你自己的设备”(bringyourowndevice,byod))。

通信网络106便于设备102与逻辑应用生成系统104之间的通信。通信网络106可以是各种类型的,并且可以包括一个或多个通信网络。例如,通信网络106可以包括但不限于互联网、广域网(wan)、局域网(lan)、以太网、公共或专用网络、有线网络、无线网络等及其组合。可以使用不同的通信协议来便于通信,这些通信协议包括有线协议和无线协议两者,诸如通过单个tcp连接提供全双工通信信道的websockets、ieee802.xx协议套件、tcp/ip、ipx、san、appletalk、蓝牙和其它协议。通常,通信网络106可以包括便于设备102与逻辑应用生成系统104之间的通信的任何通信网络或基础设施。

在图1所绘出的实施例中,逻辑应用生成系统104包括逻辑应用生成引擎108、策略引擎110、逻辑应用安装引擎112和逻辑应用用户界面(ui)114。逻辑应用生成引擎108、策略引擎110、逻辑应用安装引擎112和逻辑应用ui114可以实现为通用计算机、专用服务器计算机、服务器群组、服务器集群、由一个或多个处理器执行的软件组件或任何其它适当的布置和/或组合。逻辑应用生成系统104的各种组件仅用于说明的目的,并不旨在限制本发明的实施例的范围。可替代的实施例可以包括比图1中所示出的更多或更少的组件和/或更多或更少的设备。

在一些实施例中,逻辑应用生成引擎108可以被配置为生成用于在设备102上执行的应用的逻辑应用。在一些例子中,逻辑应用可以实现为包括一个或多个条目组的数据结构。数据结构可以实现为不同类型的数据结构的一种或多种组合,这些数据结构包括但不限于数组、记录、关系数据库表、散列表、链表或其它类型的数据结构。图2中示出了用于逻辑应用的示例性数据结构。

在一些例子中,逻辑应用中的一个或多个条目组可以包括与应用的不同os版本相关的信息。例如,逻辑应用中的第一条目组可以包括与应用的版本相关的信息,逻辑应用中的第二条目组可以包括与应用的版本相关的信息,逻辑应用中的第三条目组可以包括与应用的os版本相关的信息,等等。在一些例子中,逻辑应用可以实现为具有数据库记录组的数据库表,其中第一条目组对应于数据库表中的第一数据库记录,第二条目组对应于数据库表中的第二数据库记录,并且第三条目组对应于数据库表中的第三数据库记录。

在一些实施例中,逻辑应用可以经由逻辑应用用户界面(ui)114来生成。例如,逻辑应用生成系统104的用户(例如,管理员)可以与逻辑应用ui114交互以生成逻辑应用。在一些例子中,逻辑应用ui114可以显示在逻辑应用生成系统中的浏览器应用中,并且管理员可以与逻辑应用ui交互以生成逻辑应用。图3和图4示出了经由逻辑应用ui114生成逻辑应用。

根据一些实施例,逻辑应用ui114可以接收用于应用的第一二进制文件的第一资源定位符。例如,第一资源定位符可以是应用的版本的url位置。逻辑应用生成引擎108可以被配置为在逻辑应用中生成用于第一资源定位符的第一条目组。在一些例子中,逻辑应用生成引擎108可以将第一设备的第一os版本分配给第一条目组。例如,第一条目组可以包括与应用的os版本相关的信息。

在一些例子中,逻辑应用ui114可以经由逻辑应用ui114接收用于应用的第二二进制文件的属性列表元数据文件。例如,属性列表(p-列表)元数据文件可以包括应用的版本的url位置。属性列表元数据文件可以是存储与应用相关的数据的xml文件或二进制文件。逻辑应用定义引擎108可以被配置为基于属性列表元数据文件在逻辑应用中生成第二条目组。在一些例子中,逻辑应用生成引擎108可以将第二设备的第二os平台分配给第二条目组。例如,第二条目组可以包括与应用的平台版本相关的信息。

在一些例子中,逻辑应用ui114可以接收用于应用的第三二进制文件的windows位置。例如,windows位置可以包括应用的版本的url位置。逻辑应用定义引擎108可以被配置为在逻辑应用中生成用于windows位置的第三条目组。在一些例子中,逻辑应用生成引擎108可以将第三设备的第三os平台分配给第二条目组。例如,第三条目组可以包括与应用的平台版本相关的信息。虽然上述讨论涉及生成具有第一条目组、第二条目组和第三条目组的逻辑应用,但是在其它实施例中,可以生成具有更多或更少条目组的逻辑应用。

在一些实施例中,逻辑应用ui114可以接收关于应用的特定物理分发的附加信息。附加信息可以包括例如应用的特定物理分发的最小和最大os版本、应用的名称、应用的类别、应用的描述、与应用相关联的供应商的名称、应用的版本、表示应用的图标、应用的url、应用类型、应用的创建时间等。在一些实施例中,逻辑应用生成引擎108可以被配置为利用该附加信息来生成逻辑应用。在一些例子中,由此生成的逻辑应用可以存储在应用目录116中。

在一些实施例中,逻辑应用生成系统104可以包括用户/设备信息数据库120。在一些例子中,用户/设备信息数据库120可以存储关于用户和与用户相关联的设备的信息,包括例如远程设备上的操作系统的类型、操作系统的版本、主机标识符(在远程设备托管在另一设备上的情况下)、设备类型、imei(国际移动设备身份)号码、远程设备的型号、远程设备的服务提供商(例如,运营商)、设备名称、设备状态或关于远程设备的其它信息。

在一些实施例中,逻辑应用安装引擎112可以被配置为在设备102上安装逻辑应用。在一些例子中,逻辑应用安装引擎112可以被配置为识别与设备102的用户相关联的策略,以确定特定的逻辑应用(例如,“smartbirds(智慧小鸟)”游戏应用)是否可以安装在设备上。在一些例子中,用户策略可以存储在策略规则数据库118中。例如,用户策略可以涉及与设备相关联的用户的角色或责任。例如,用户的角色或责任可以是由企业定义的角色或责任。例如,用户可以具有企业内的“管理员”角色、“经理”角色、“销售分析员”角色等。角色可以定义用于用户的访问策略,该策略包括例如用户被允许使用的设备的特定类型、可以由用户在用户设备上安装的应用的特定类型和/或版本等。

在一些实施例中,逻辑应用安装引擎112然后可以确定要安装在设备102上的逻辑应用的特定版本。在一些例子中,逻辑应用安装引擎112可以应用附加标准来确定要安装在设备102上的逻辑应用的特定版本。附加标准可以包括例如确定由设备102支持的os的特定版本在逻辑应用的特定版本(等)的最小和最大范围内。例如,如果设备102支持8.1.2移动os,则逻辑应用安装引擎112可以确定在设备的os的最小和最大范围内的逻辑应用的版本应该安装在设备102上。附加标准还可以包括确定设备可以从其安装应用的不同类型的分发位置(例如,二进制、url、app)等。

如果设备满足附加标准,则在一些例子中,逻辑应用安装引擎112可以被配置为在设备102上安装逻辑应用的特定版本。在一些例子中,逻辑应用安装引擎112可以被配置为通过向设备102传输推送通知事件来发起逻辑应用的特定版本在设备102上的安装。在一些例子中,推送通知可以是发送到设备102的、带有使得设备102的用户能够在设备102上安装逻辑应用的特定版本的链接的消息。设备102的用户可以与该消息交互,以在设备102上安装逻辑应用。在一些例子中,逻辑应用安装引擎112可以被配置为向设备102传输推送通知事件,以指示逻辑应用的特定版本已经被添加到设备102中的应用目录并且设备102可以从应用目录安装逻辑应用的特定版本。

图2是根据本发明的实施例的逻辑应用的示例性图示。图2所示的实施例示出了为“smartbirds(智慧小鸟)”游戏应用生成的逻辑应用。在例子中,逻辑应用可以实现为数据结构200,数据结构200包括与应用的不同物理分发相关的一个或多个条目组。在图2所示的例子中,数据结构200是具有一个或多个数据库记录组的数据库表。数据库表中的第一数据库记录可以包括与逻辑应用所关联的第一条目组相关的信息。例如,第一条目组可以对应于“smartbirds”游戏应用的版本。第二数据库记录可以包括与逻辑应用所关联的第二条目组相关的信息。例如,逻辑应用中的第二条目组可以包括与应用的版本相关的信息。第三数据库记录可以包括与逻辑应用所关联的第三条目组相关的信息。例如,逻辑应用中的第三条目组可以包括与应用的os版本相关的信息,等等。虽然所示的例子将逻辑应用的实现示出为具有三个数据库记录或行的数据库表,但是在其它实施例中,逻辑应用可以被实现为具有更少或更多数据库记录的数据库表。

如进一步示出的,不同的条目组(第一组,第二组,第三组)可以包括与应用的各个版本相关的附加信息。附加信息可以包括例如应用标识符、应用名称、应用类型、应用描述、应用类别、应用os平台(例如,等)、应用分发位置(例如,url、二进制、appwindows等)、应用版本、最小应用os平台版本、最大应用os平台版本、应用包名称等。

如上所述,并且如图3和图4中进一步示出的,在一些实施例中,逻辑应用可以作为用户与逻辑应用生成系统中的逻辑应用用户界面(ui)114交互的结果而生成。

图3示出了本文所述的用于生成逻辑应用的示例图形用户界面。在图3中,示例环境300可以是由逻辑应用ui114提供的、可通过逻辑应用生成系统中的浏览器应用查看的图形用户界面。在图3所示的例子中,用户可以提供与应用相关的信息,诸如应用的特定类型、应用的名称、应用的描述等。此外,用户可以选择应用的特定os平台(例如,等)、应用供应商和显示应用的图标。

在某些实施例中,图形用户界面300可以包括在用户界面的第一标签中的第一用户界面要素302和在用户界面的第二标签中的第二用户界面要素304。在例子中,用户界面要素302、304可以指示应用的不同分发位置(例如,url、二进制、appwindows等)。例如,用户可以选择第一用户界面要素302来提供用于应用的第一分发位置(例如app)位置的第一条目组(如图4所示),选择第二用户界面要素304来提供用于应用的第二分发(例如,二进制文件)位置的第二条目组(如图5所示)。

图4示出了本文所述的用于提供第一条目组的示例图形用户界面,其中第一条目组用于逻辑应用的第一物理分发。在图4中,示例环境400可以是由逻辑应用ui114提供的、可经由逻辑应用生成系统中的浏览器应用查看的图形用户界面。在图4所示的例子中,用户可以提供用于应用的app位置的第一条目组相关的信息。该信息可以包括例如特定分发位置(应用可以从该特定分发位置得到)、应用标识符、应用的url、与应用相关联的包名称、应用的版本以及应用的最小os版本。

图5示出了本文所述的用于提供第二条目组的示例图形用户界面,其中第二条目组用于逻辑应用的第二物理分发。在图5中,示例环境500可以是由逻辑应用ui114提供的、可经由逻辑应用生成系统中的浏览器应用查看的图形用户界面。在图5所示的例子中,用户可以提供用于应用的位置的第二条目组相关的信息。该信息可以包括例如应用的特定分发位置(例如,二进制文件)、应用名称、应用类型、应用图标、与应用相关联的包名称、应用的版本以及应用的最小和最大os版本。

图6-图7示出了根据本发明的某些实施例的、示出用于生成逻辑应用的相应过程600和700的示例流程图。这些过程被示为逻辑流程图,这些过程中的每个操作可以用硬件、计算机指令或其组合来实现。在计算机指令的上下文中,操作可以表示存储在一个或多个计算机可读存储介质上的计算机可执行的指令,指令在由一个或多个处理器执行时执行所记载的操作。一般而言,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。操作被描述的顺序不是旨在被解释为限制,并且任何数量的所描述的操作可以以任何顺序和/或并行地组合以实现过程。

此外,这些过程中的一些、任何或所有过程可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以实现为在一个或多个处理器上统一执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件实现或由它们的组合实现。如上所述,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质可以是非临时性的。在一些例子中,至少在图1中示出的逻辑应用生成系统104(例如,利用至少策略引擎、逻辑应用ui、逻辑应用生成引擎和逻辑应用安装引擎)可以分别执行图6-图7的过程600和700。

图6示出了本文所述的用于生成逻辑应用的示例过程600的流程图。当逻辑应用生成引擎(例如,108)经由逻辑应用ui(例如,114)接收用于应用的第一二进制文件的第一资源定位符时,在600处的过程可以在步骤602开始。如上所述,第一资源定位符可以指向应用的第一二进制文件的第一分发位置(例如,统一资源定位符(url))。应用的第一二进制文件可以对应于应用的特定物理分发(例如,os平台版本)。例如,第一二进制文件可以对应于应用的os版本。

在步骤604,逻辑应用生成引擎针对第一资源定位符在第一数据库记录中生成第一条目组。在步骤606,逻辑应用生成引擎将第一设备的第一os版本分配给第一条目组。例如,第一条目组可以对应于应用的版本的url分发位置。

在一些实施例中,在步骤608,逻辑应用生成引擎可以接收用于应用的第二二进制文件的属性列表(p-列表)元数据文件。如上所述,属性列表元数据文件可以指向应用的第二二进制文件的属性列表位置(例如,p-列表文件)。应用的第二二进制文件可以对应于应用的特定物理分发(例如,os平台版本)。例如,第二二进制文件可以对应于应用的版本。

在步骤610,逻辑应用生成引擎可以针对属性列表元数据文件在第二数据库记录中生成第二条目组。在步骤612,逻辑应用生成引擎可以将第二设备的第二操作系统版本分配给第二条目组。例如,第二条目组可以对应于应用的版本的‘.plist’分发位置。在步骤614,逻辑应用生成引擎可以基于第一条目组和第二条目组生成逻辑应用。如上所述,在一些实施例中,逻辑应用可以实现为具有数据库记录组的数据库表,其中第一条目组对应于数据库表中的第一数据库记录,第二条目组对应于数据库表中的第二数据库记录并且第三条目组对应于数据库表中的第三数据库记录。

图7示出了本文描述的用于在设备上安装逻辑应用的示例过程700的流程图。当逻辑应用生成系统登记通信网络中的设备(例如,102)时,在700处的过程可以在步骤702开始。例如,设备可以基于在用户/设备信息数据库120中存储的关于设备的信息来登记。在步骤704,逻辑应用安装引擎可以识别与设备的用户相关联的策略。如上所述,用户策略可以涉及与设备相关联的用户的角色或责任。在步骤706,逻辑应用安装引擎可以通过应用附加标准来确定要安装在设备中的逻辑应用的特定版本。如上所述,附加标准可以包括例如确定由设备支持的os的特定版本在逻辑应用的特定版本(等)的最小和最大范围内、确定设备可以从其安装应用的不同类型的分发位置(例如,二进制、url、app)等。

在步骤708,逻辑应用安装引擎确定附加标准是否被满足。如果附加标准未被满足,则在步骤710,逻辑应用的特定版本不被安装在设备上。如果附加标准被满足,则在一些实施例中,逻辑应用安装引擎被配置为发起逻辑应用的特定版本在设备上的安装。

图8绘出了用于实现实施例的分布式系统800的简化图。在所示的实施例中,分布式系统800包括一个或多个客户端计算设备802、804、806和808,这些客户端设备被配置为通过一个或多个网络810执行和操作诸如web浏览器、专有客户端(例如oracleforms)等之类的客户端应用。服务器812可以经由网络810与远程客户端计算设备802、804、806和808通信地耦合。

在各种实施例中,服务器812可以适于运行一个或多个服务或软件应用,诸如提供应用的分发的划分的服务和应用。在某些实施例中,服务器812还可以提供其它服务,或者软件应用可以包括非虚拟和虚拟环境。在一些实施例中,这些服务可以作为基于web的或云服务或者在软件即服务(saas)模型下提供给客户端计算设备802、804、806和/或808的用户。操作客户端计算设备802、804、806和/或808的用户可以进而利用一个或多个客户端应用与服务器812交互,以利用由这些组件提供的服务。

在图8所绘出的配置中,系统800的软件组件818、820和822被示为在服务器812上实现。在其它实施例中,系统800的一个或多个组件和/或由这些组件提供的服务也可以由客户端计算设备802、804、806和/或808中的一个或多个实现。操作客户端计算设备的用户然后可以利用一个或多个客户端应用来使用由这些组件提供的服务。这些组件可以用硬件、固件、软件或其组合实现。应当理解,各种不同的系统配置是可能的,这些配置可以与分布式系统800不同。因此,图8中所示的实施例是用于实现实施例系统的分布式系统的一个例子,并且不旨在进行限制。

客户端计算设备802、804、806和/或808可以包括各种类型的计算系统。例如,客户端计算设备可以包括便携式手持设备(例如,蜂窝电话、计算平板设备、个人数字助理(pda))或可穿戴设备(例如,头戴式显示器),这些设备运行诸如microsoftwindows的软件和/或诸如ios、windowsphone、android、blackberry10、palmos等各种移动操作系统。设备可以支持各种应用,诸如各种互联网相关的应用、电子邮件、短消息服务(sms)应用,并且可以使用各种其它通信协议。客户端计算设备还可以包括通用个人计算机,例如运行各种版本的microsoftapple和/或linux操作系统的个人计算机和/或膝上型计算机。客户端计算设备可以是运行任何各种可商用的或类unix操作系统(包括但不限于诸如像googlechromeos的各种gnu/linux操作系统)的工作站计算机。客户端计算设备还可以包括能够提供(一个或多个)网络810通信的电子设备,诸如瘦客户端计算机、启用了互联网的游戏系统(例如,具有或不具有手势输入设备的microsoftxbox游戏控制台)和/或个人消息传送设备。

虽然图8中的分布式系统800被示为具有四个客户端计算设备,但是任何数量的客户端计算设备都可以被支持。其它设备(诸如具有传感器的设备等)可以与服务器812交互。

分布式系统800中的(一个或多个)网络810可以是对本领域技术人员熟悉的可以利用任何各种可用协议支持数据通信的任何类型的网络,其中各种协议包括但不限于tcp/ip(传输控制协议/互联网协议)、sna(系统网络体系架构)、ipx(互联网分组交换)、appletalk等。仅仅作为例子,(一个或多个)网络810可以是局域网(lan)、基于以太网的网络、令牌环、广域网、互联网、虚拟网络、虚拟专用网络(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本地(和/或驻留在其中)的非临时性存储介质上。可替代地,数据库814和816可以远离服务器812,并且经由基于网络的或专用的连接与服务器812通信。在一组实施例中,数据库814和816可以驻留在存储区域网络(san)中。类似地,用于执行服务器812所具有的功能的任何必要的文件可以适当地本地存储在服务器812上和/或远程存储。在一组实施例中,数据库814和816可以包括适于响应于sql格式的命令存储、更新和检索数据的关系数据库,诸如由oracle提供的数据库。

在一些实施例中,上述设备注册服务可以被提供为经由云环境的服务。图9是根据本公开的实施例的系统环境900的一个或多个组件的简化框图,在系统环境900中服务可以被提供为云服务。在图9所示的实施例中,系统环境900包括可以被用户使用,以与提供云服务(包括用于应用的分发的划分的服务)的云基础设施系统902交互的一个或多个客户端计算设备904、906和908。云基础设施系统902可以包括一个或多个计算机和/或服务器,这些计算机和/或服务器可以包括以上针对服务器812所描述的那些。

应当理解,图9中所绘出的云基础设施系统902可以具有除所绘出的那些之外的其它组件。另外,图9中所示的实施例仅仅是可以结合本发明的实施例的云基础设施系统的一个例子。在一些其它实施例中,云基础设施系统902可以具有比图中所示出的更多或更少的组件、可以合并两个或更多个组件、或者可以具有不同的组件配置或布置。

客户端计算设备904、906和908可以是与以上针对客户端计算设备802、804、806和808描述的那些设备类似的设备。客户端计算设备904、906和908可以被配置为操作客户端应用,诸如web浏览器、专有客户端应用(例如,oracleforms)或可以被客户端计算设备的用户使用以与云基础设施系统902交互来使用由云基础设施系统902提供的服务的一些其它应用。虽然示例性系统环境900被示为具有三个客户端计算设备,但是任何数量的客户端计算设备都可以被支持。其它设备(诸如具有传感器的设备等)可以与云基础设施系统902交互。

(一个或多个)网络910可以便于客户端计算设备904、906和908与云基础设施系统902之间的通信和数据交换。每个网络可以是对本领域技术人员熟悉的可以利用任何各种可商用的协议支持数据通信的任何类型的网络,其中协议包括以上针对(一个或多个)网络1210所描述的协议。

在某些实施例中,由云基础设施系统902提供的服务可以包括按需对云基础设施系统的用户可用的服务的主机。除了与应用管理有关的服务之外,也可以提供各种其它服务,包括但不限于在线数据存储和备份解决方案、基于web的电子邮件服务、托管的办公套件和文档协作服务、数据库处理、受管理的技术支持服务等。由云基础设施系统提供的服务可以动态扩展,以满足其用户的需求。

在某些实施例中,由云基础设施系统902提供的服务的具体实例化在本文中可以被称为“服务实例”。一般而言,来自云服务提供者的系统的、经由通信网络(诸如互联网)对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供者的系统的服务器和系统与消费者自己的内部(on-premises)服务器和系统不同。例如,云服务提供者的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订购和使用应用。

在一些例子中,计算机网络云基础设施中的服务可以包括对由云供应商向用户提供的或者如本领域中已知的另外方式提供的存储空间、托管的数据库、托管的web服务器、软件应用或者其它服务的受保护的计算机网络访问。例如,服务可以包括通过互联网对云上的远程存储空间的受密码保护的访问。作为另一个例子,服务可以包括基于web服务的托管的关系数据库和脚本语言中间件引擎,用于由联网的开发人员私人使用。作为另一个例子,服务可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。

在某些实施例中,云基础设施系统902可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式交付给消费者的一套应用、中间件和数据库服务产品。这种云基础设施系统的例子是由本受让人提供的oraclepubliccloud(oracle公共云)。

云基础设施系统902还可以提供与“大数据”相关的计算和分析服务。术语“大数据”一般用来指可由分析员和研究者存储和操纵以可视化大量数据、检测趋势和/或以其它方式与数据交互的极大数据集。这种大数据和相关应用可以在许多级别和不同规模上由基础设施系统托管和/或操纵。并行链接的数十个、数百个或数千个处理器可以作用于这种数据,以便呈现其或者模拟对数据或其所表示的内容的外部作用力。这些数据集可以涉及结构化数据,诸如在数据库中组织或根据结构化模型以其它方式组织的数据,和/或者非结构化数据(例如,电子邮件、图像、数据blob(二进制大对象)、网页、复杂事件处理)。通过利用实施例相对快速地将更多(或更少)的计算资源聚焦在目标上的能力,云基础设施系统可以更好地用于基于来自企业、政府机构、研究组织、私人个人、一群志同道合的个人或组织或其它实体的需求在大数据集上执行任务。

在各种实施例中,云基础设施系统902可以适于自动地供应、管理和跟踪消费者对由云基础设施系统902提供的服务的订阅。云基础设施系统902可以经由不同的部署模型提供云服务。例如,服务可以在公共云模型下提供,在公共云模型中云基础设施系统902由销售云服务的组织拥有(例如,由oracle公司拥有)并且使服务对一般公众或不同的工业企业可用。作为另一个例子,服务可以在私有云模型下提供,在私有云模型中云基础设施系统902仅针对单个组织操作,并且可以为组织内的一个或多个实体提供服务。云服务还可以在社区云模型下提供,在社区云模型中云基础设施系统902和由云基础设施系统902提供的服务由相关社区中的若干个组织共享。云服务还可以在混合云模型下提供,混合云模型是两个或更多个不同模型的组合。

在一些实施例中,由云基础设施系统902提供的服务可以包括在软件即服务(saas)类别、平台即服务(paas)类别、基础设施即服务(iaas)类别、或包括混合服务的其他服务类别下提供的一个或多个服务。消费者经由订阅订单可以订购由云基础设施系统902提供的一个或多个服务。云基础设施系统902然后执行处理,以提供消费者的订阅订单中的服务。

在一些实施例中,由云基础设施系统902提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些例子中,应用服务可以由云基础设施系统经由saas平台提供。saas平台可以被配置为提供落在saas类别下的云服务。例如,saas平台可以提供在集成的开发和部署平台上构建和交付一套按需(on-demand)应用的能力。saas平台可以管理和控制用于提供saas服务的底层软件和基础设施。通过利用由saas平台提供的服务,消费者可以利用在云基础设施系统上执行的应用。消费者可以获取应用服务,而无需消费者购买单独的许可证和支持。可以提供各种不同的saas服务。例子包括但不限于为大型组织提供用于销售绩效管理、企业集成和业务灵活性的解决方案的服务。

在一些实施例中,平台服务可以由云基础设施系统902经由paas平台提供。paas平台可以被配置为提供落在paas类别下的云服务。平台服务的例子可以包括但不限于使组织(诸如oracle)能够在共享的共同体系架构上整合现有应用、以及能够构建利用由平台提供的共享服务的新应用的服务。paas平台可以管理和控制用于提供paas服务的底层软件和基础设施。消费者可以获取由云基础设施系统902提供的paas服务,而无需消费者购买单独的许可证和支持。平台服务的例子包括但不限于oraclejava云服务(jcs)、oracle数据库云服务(dbcs)以及其它。

通过利用由paas平台提供的服务,消费者可以采用由云基础设施系统支持的编程语言和工具,并且还控制所部署的服务。在一些实施例中,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,oraclefusionmiddleware服务)和java云服务。在一种实施例中,数据库云服务可以支持共享服务部署模型,共享服务部署模型使得组织能够汇集数据库资源并且以数据库云的形式向消费者提供数据库即服务。在云基础设施系统中,中间件云服务可以为消费者提供开发和部署各种业务应用的平台,并且java云服务可以为消费者提供部署java应用的平台。

可以由云基础设施系统中的iaas平台提供各种不同的基础设施服务。基础设施服务便于底层计算资源(诸如存储装置、网络和其它基本计算资源)的管理和控制,以便消费者利用由saas平台和paas平台提供的服务。

在某些实施例中,云基础设施系统902还可以包括基础设施资源930,用于提供用来向云基础设施系统的消费者提供各种服务的资源。在一种实施例中,基础设施资源930可以包括执行由paas平台和saas平台提供的服务的硬件(诸如服务器、存储装置和联网资源)的预先集成和优化的组合、以及其它资源。

在一些实施例中,云基础设施系统902中的资源可以由多个用户共享并且按需动态地重新分配。此外,资源可以分配给在不同时区中的用户。例如,云基础设施系统902可以使第一时区内的第一用户集合能够在指定的小时数内利用云基础设施系统的资源,然后实现将相同资源重新分配给位于不同时区中的另一用户集合,从而最大化资源的利用。

在某些实施例中,可以提供由云基础设施系统902的不同组件或模块共享若干内部共享服务932,以使得云基础设施系统902能够供应服务。这些内部共享服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性的备份和恢复服务、用于使得能够进行云支持的服务、电子邮件服务、通知服务、文件传输服务等。

在某些实施例中,云基础设施系统802可以提供对在云基础设施系统中的云服务(例如,saas、paas和iaas服务)的综合管理。在一种实施例中,云管理功能可以包括用于供应、管理和跟踪由云基础设施系统902等接收到的消费者的订阅的能力。

在一种实施例中,如图9中所绘出的,云管理功能可以由诸如订单管理模块920、订单编排模块922、订单供应模块924、订单管理和监视模块926以及身份管理模块928的一个或多个模块提供。这些模块可以包括或可以利用一个或多个计算机和/或服务器提供,该一个或多个计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器群组,服务器集群或任何其它适当的布置和/或组合。

在示例性操作中,在步骤934,使用客户端设备(诸如客户端设备904、906或908)的消费者可以通过请求由云基础设施系统902提供的一个或多个服务并且对由云基础设施系统902提供的一个或多个服务的订阅下订单来与云基础设施系统902交互。在某些实施例中,消费者可以访问诸如云ui912、云ui914和/或云ui916的云用户界面(ui)并经由这些ui下订阅订单。响应于消费者下订单而由云基础设施系统902接收到的订单信息可以包括识别消费者和消费者打算订阅的由云基础设施系统902提供的一个或多个服务的信息。

在步骤936,从消费者接收到的订单信息可以存储在订单数据库918中。如果这是新的订单,则可以为该订单创建新的记录。在一个实施例中,订单数据库918可以是由云基础设施系统918操作以及与其它系统要素结合操作的若干数据库当中的一个。

在步骤938,订单信息可以被转发到订单管理模块920,订单管理模块920可以被配置为执行与订单相关的计费和记帐功能,诸如验证订单,并且在通过验证时接纳(book)订单。

在步骤940,关于订单的信息可以被传送到订单编排模块922,订单编排模块922被配置为编排用于由消费者下的订单的服务和资源的供应。在一些情况下,订单编排模块922可以使用用于供应的订单供应模块924的服务。在某些实施例中,订单编排模块922使得能够对与每个订单相关联的业务过程进行管理,并且应用业务逻辑来确定订单是否应当继续供应。

如图9中绘出的实施例所示,在步骤942,在接收到新订阅的订单时,订单编排模块922向订单供应模块924发送分配资源和配置履行订购订单所需的资源的请求。订单供应模块924使得能够为由消费者订购的服务分配资源。订单供应模块924提供由云基础设施系统900提供的云服务和用来供应用于提供所请求的服务的资源的物理实现层之间的一层抽象。这使得订单编排模块924能够与实现细节隔离,实现细节诸如服务和资源实际上是否是实时供应的,或者是预先供应的并且仅在请求时才进行分配/指定。

在步骤944,一旦供应了服务和资源,就可以向订阅的消费者发送指示所请求的服务现在已准备好用于使用的通知。在一些情况下,可以向消费者发送使得消费者能够开始使用所请求的服务的信息(例如,链接)。

在步骤946,可以由订单管理和监视模块926来管理和跟踪消费者的订阅订单。在一些情况下,订单管理和监视模块926可以被配置为收集关于消费者使用所订阅的服务的使用统计数据。例如,可以针对所使用的存储量、所传送的数据量、用户的数量以及系统启动时间和系统停机时间的量等来收集统计数据。

在某些实施例中,云基础设施系统900可以包括身份管理模块928,身份管理模块928被配置为提供身份服务,诸如云基础设施系统900中的访问管理和授权服务。在一些实施例中,身份管理模块928可以控制关于希望利用由云基础设施系统902提供的服务的消费者的信息。这种信息可以包括认证这些消费者的身份的信息和描述这些消费者被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行哪些动作的信息。身份管理模块928还可以包括对关于每个消费者的描述性信息以及关于可以如何访问和修改该描述性信息和可以由谁来访问和修改该描述性信息的管理。

图10示出了可以用来实现本发明的实施例的示例性计算机系统1000。在一些实施例中,计算机系统1000可以用来实现上述任何各种服务器和计算机系统。如图10所示,计算机系统1000包括各种子系统,这些子系统包括经由总线子系统1002与多个外围子系统通信的处理子系统1004。这些外围子系统可以包括处理加速单元1006、i/o子系统1008、存储子系统1018和通信子系统1024。存储子系统1018可以包括有形的计算机可读存储介质1022和系统存储器1010。

总线子系统1002提供用于使计算机系统1000的各种组件和子系统按照期望彼此通信的机制。虽然总线子系统1002被示意性地示为单个总线,但是总线子系统的可替代实施例可以利用多个总线。总线子系统1002可以是若干种类型的总线结构中的任何一种,包括利用各种总线体系架构中的任何总线体系架构的存储器总线或存储器控制器、外围总线和局部总线。例如,此类体系架构可以包括工业标准体系架构(isa)总线、微通道体系架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线和外围组件互连(pci)总线,其可以实现为根据ieeep1386.1标准制造的夹层(mezzanine)总线等。

处理子系统1004控制计算机系统1000的操作并且可以包括一个或多个处理单元1032、1034等。处理单元可以包括一个或多个处理器,其中包括单核或多核处理器、处理器的一个或多个核、或其组合。在一些实施例中,处理子系统1004可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(dsp)等。在一些实施例中,处理子系统1004的处理单元中的一些或全部可以利用定制电路来实现,诸如专用集成电路(asic)或现场可编程门阵列(fpga)。

在一些实施例中,处理子系统1004中的处理单元可以执行存储在系统存储器1010中或计算机可读存储介质1022上的指令。在各种实施例中,处理单元可以执行各种程序或代码指令,并且可以维护多个并发执行的程序或进程。在任何给定的时间,要执行的程序代码中的一些或全部可以驻留在系统存储器1010中和/或计算机可读存储介质1010上,潜在地包括驻留在在一个或多个存储设备上。通过适当的编程,处理子系统1004可以提供上述用于生成逻辑应用的各种功能。

在某些实施例中,可以提供处理加速单元1006,用于执行定制的处理或用于卸载由处理子系统1004执行的一些处理,以便加速由计算机系统1000执行的整体处理。

i/o子系统1008可以包括用于向计算机系统1000输入信息和/或用于从或经由计算机系统1000输出信息的设备和机制。一般而言,术语“输入设备”的使用旨在包括用于向计算机系统1000输入信息的所有可能类型的设备和机制。用户接口输入设备可以包括,例如,键盘、诸如鼠标或轨迹球的指点设备、结合到显示器中的触摸板或触摸屏、滚轮、点拨轮、拨盘、按钮、开关、键板、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备也可以包括诸如使用户能够控制输入设备并与其交互的microsoft运动传感器的运动感测和/或姿势识别设备、microsoft360游戏控制器、提供用于接收利用姿势和口语命令的输入的接口的设备。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄图片和/或进行菜单选择时的“眨眼”)并将眼睛姿势转换为到输入设备(例如,google)中的输入的google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。

用户接口输入设备的其它例子包括但不限于三维(3d)鼠标、操纵杆或指示杆、游戏板和图形平板设备、以及音频/视频设备,诸如扬声器、数字相机、数字摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3d扫描仪、3d打印机、激光测距仪、以及眼睛注视跟踪设备。此外,用户接口输入设备可以包括例如医疗成像输入设备,诸如计算机断层摄影、磁共振成像、位置发射断层摄影、医疗超声检查设备。用户接口输入设备也可以包括,例如,音频输入设备,诸如midi键盘、数字乐器等。

用户接口输出设备可以包括显示子系统、指示器灯或诸如音频输出设备的非视觉显示器等。显示子系统可以是阴极射线管(crt)、诸如利用液晶显示器(lcd)或等离子体显示器的平板设备、投影设备、触摸屏等。一般而言,术语“输出设备”的使用旨在包括用于从计算机系统1000向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。

存储子系统1018提供用于存储由计算机系统1000使用的信息的储存库或数据存储库。存储子系统1018提供有形非临时性计算机可读存储介质,用于存储提供一些实施例的功能的基本编程和数据结构。当由处理子系统1004执行时提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统1018中。软件可以由处理子系统1004的一个或多个处理单元执行。存储子系统1018也可以提供用于存储根据本发明使用的数据的储存库。

存储子系统1018可以包括一个或多个非临时性存储器设备,包括易失性和非易失性存储器设备。如图10所示,存储子系统1018包括系统存储器1010和计算机可读存储介质1022。系统存储器1010可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(ram)和其中存储固定指令的非易失性只读存储器(rom)或闪存存储器。在一些实现中,包含有助于在诸如启动期间在计算机系统1000内的元件之间传送信息的基本例程的基本输入/输出系统(bios)通常可以存储在rom中。ram通常包含当前由处理子系统1004操作和执行的数据和/或程序模块。在一些实现中,系统存储器1010可以包括多个不同类型的存储器,诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)。

作为例子而非限制,如在图10中所绘出的,系统存储器1010可以存储应用程序1012、程序数据1014和操作系统1016,应用程序1012可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(rdbms)等。作为例子,操作系统1016可以包括各种版本的microsoftapple和/或linux操作系统、各种可商用或类unix操作系统(包括但不限于各种gnu/linux操作系统、googleos等)和/或诸如ios、phone、os、10os和os操作系统的移动操作系统。

计算机可读存储介质1022可以存储提供一些实施例的功能的编程和数据构造。当由处理子系统1004执行时使处理器提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统1018中。作为例子,计算机可读存储介质1022可以包括非易失性存储器,诸如硬盘驱动器、磁盘驱动器、诸如cdrom、dvd、(蓝光)盘或其它光学介质的光盘驱动器。计算机可读存储介质1022可以包括但不限于驱动器、闪存存储器卡、通用串行总线(usb)闪存驱动器、安全数字(sd)卡、dvd盘、数字视频带等。计算机可读存储介质1022也可以包括基于非易失性存储器的固态驱动器(ssd)(诸如基于闪存存储器的ssd、企业闪存驱动器、固态rom等)、基于易失性存储器的ssd(诸如固态ram、动态ram、静态ram、基于dram的ssd、磁阻ram(mram)ssd)以及使用dram和基于闪存存储器的ssd的组合的混合ssd。计算机可读介质1022可以为计算机系统1000提供计算机可读指令、数据结构、程序模块和其它数据的存储。

在某些实施例中,存储子系统1000也可以包括计算机可读存储介质读取器1020,计算机可读存储介质读取器1020可以进一步连接到计算机可读存储介质1022。计算机可读存储介质1022可以与系统存储器1010一起和可选地与系统存储器1010组合来全面地表示用于存储计算机可读信息的远程、本地、固定和/或可移动存储设备加上存储介质。

在某些实施例中,计算机系统1000可以提供对执行一个或多个虚拟机的支持。计算机系统1000可以执行诸如管理程序的程序,以便便于虚拟机的配置和管理。每个虚拟机可以被分配存储器、计算(例如,处理器、内核)、i/o和联网资源。每个虚拟机通常运行其自己的操作系统,该操作系统可以与由计算机系统1000执行的其它虚拟机执行的操作系统相同或不同。相应地,多个操作系统可以潜在地由计算机系统1000并发地运行。每个虚拟机一般独立于其它虚拟机运行。

通信子系统1024提供到其它计算机系统和网络的接口。通信子系统1024用作用于其它系统接收数据和从计算机系统1000的向其它系统传输数据的接口。例如,通信子系统1024可以使计算机系统1000能够经由互联网建立到一个或多个客户端设备的通信信道,用于从客户端设备接收信息和发送信息到客户端设备。

通信子系统1024可以支持有线和/或无线通信协议两者。例如,在某些实施例中,通信子系统1024可以包括用于接入无线语音和/或数据网络(例如,利用蜂窝电话技术、诸如3g、4g或edge(全球演进的增强数据速率)的高级数据网络技术、wifi(ieee802.11族标准)或其它移动通信技术、或其任意组合)的射频(rf)收发器组件、全球定位系统(gps)接收器组件和/或其它组件。在一些实施例中,作为无线接口的附加或替代,通信子系统1024还可以提供有线网络连接(例如,以太网)。

通信子系统1024可以接收和传输各种形式的数据。例如,在一些实施例中,通信子系统1024可以接收以结构化和/或非结构化的数据馈送1026、事件流1028、事件更新1030等形式的输入通信。例如,通信子系统1024可以被配置为实时地从社交媒体网络和/或其它通信服务的用户接收(或发送)数据馈送1026和/或来自一个或多个第三方信息源的实时更新,数据馈送1026诸如馈送、更新、诸如丰富站点摘要(rss)馈送的web馈送。

在某些实施例中,通信子系统1024可以被配置为接收连续数据流形式的数据,连续数据流可以包括实时事件的事件流1028和/或事件更新1030,连续数据流形式的数据本质上可能是连续的或无界的而没有明确结束。生成连续数据的应用的例子可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如网络监视和流量管理应用)、点击流分析工具、汽车流量监视等。

通信子系统1024也可以被配置为向一个或多个数据库输出结构化和/或非结构化的数据馈送1026、事件流1028、事件更新1030等,其中所述一个或多个数据库可以与耦合到计算机系统1000的一个或多个流数据源计算机通信。

计算机系统1000可以是各种类型中的一种,包括手持便携式设备(例如,蜂窝电话、计算平板设备、pda)、可穿戴设备(例如,google头戴式显示器)、个人计算机、工作站、大型机、信息站、服务器机架或任何其它数据处理系统。

由于计算机和网络不断变化的性质,对图10中绘出的计算机系统1000的描述旨在仅仅作为具体例子。具有比图10中所绘出的系统更多或更少组件的许多其它配置是可能的。基于本文所提供的公开和教导,本领域普通技术人员将理解实现各种实施例的其它方式和/或方法。

图11绘出了根据本发明的某些实施例的用于划分用于不同电子设备的应用分发的系统1100。系统1100及其组件可以由硬件、软件或其组合来实现,以基于如先前实施例中所描述的本发明的原理来执行任何适当的操作。本领域技术人员应当理解,本文描述的功能块可以被组合或分离成子块来实现如上所述的本发明的原理。因此,本文的描述可以支持本文所述的功能块的任何可能的组合或分离或进一步定义。如图11所示,系统1100包括接收单元1102、生成单元1104、分配单元1106和呈现单元1108。

接收单元1102可以接收用于应用的第一二进制文件的第一资源定位符。生成单元1104可以针对第一资源定位符在第一数据库记录中生成第一条目组。分配单元1106可以将第一设备的第一操作系统版本分配给第一条目组。此外,接收单元1102也可以接收用于应用的第二二进制文件的属性列表元数据文件,生成单元1104可以针对属性列表元数据文件在第二数据库记录中生成第二条目组,并且分配单元1106可以将第二设备的第二操作系统版本分配给第二条目组。呈现单元1108可以呈现具有链接到第一条目组的第一用户界面单元和链接到第二条目组的第二用户界面单元的用户界面。

在一些实施例中,生成单元1104至少部分地基于第一条目组和第二条目组来生成逻辑应用。

在一些实施例中,系统1100还可以包括识别单元1110、确定单元1112和安装单元1114。

识别单元1110可以识别与第一设备的第一用户相关联的第一策略。确定单元1112可以基于该策略确定要安装在第一设备上的逻辑应用的第一版本。安装单元1114可以基于该确定使得在第一设备上安装逻辑应用的第一版本。

在一些实施例中,识别单元1110也可以识别与第二设备的第二用户相关联的第二策略。确定单元1112也可以基于该策略确定要安装在第二设备上的逻辑应用的第二版本。安装单元1114也可以基于该确定使得在第二设备上安装逻辑应用的第二版本。

在一些实施例中,系统还包括传输单元1116,用于向第二设备传输推送通知事件,以将逻辑应用的第二版本下载到设备上。

在一些实施例中,用于划分用于不同电子设备的应用分发的系统还可以如下实现。同样,系统及其组件可以由硬件、软件或其组合实现,以基于如先前实施例中所描述的本发明的原理来执行任何适当的操作。本领域技术人员应当理解,本文描述的功能块可以被组合或分离成子块来实现如上所述的本发明的原理。因此,本文的描述可以支持本文所述的功能块的任何可能的组合或分离或进一步定义。

更具体地,系统可以包括如图1所示的逻辑应用生成引擎108和逻辑应用安装引擎112。逻辑应用生成引擎108针对应用的第一二进制文件在第一数据库记录中生成第一条目组、针对应用的第二二进制文件的属性列表元数据文件的在第二数据库记录中生成第二条目组、将第一设备的第一操作系统版本分配给第一条目组、将第二设备的第二操作系统版本分配给第二条目组、以及至少部分地基于第一条目组和第二条目组来生成逻辑应用。然后,逻辑应用安装引擎112使得在第一设备或第二设备上安装逻辑应用。

虽然已经描述了本发明的具体实施例,但是各种修改、更改、替代构造和等效物也包含在本发明的范围之内。本发明的实施例不限于在某些特定数据处理环境内的操作,而是可以在多个数据处理环境内自由操作。此外,虽然已利用特定系列的事务和步骤描述了本发明的实施例,但是,对本领域技术人员应当清楚的是,本发明的范围不限于所描述系列的事务和步骤。上述实施例的各种特征和方面可以被单独或结合使用。

另外,虽然已经利用硬件和软件的特定组合描述了本发明的实施例,但是应当认识到,硬件和软件的其它组合也在本发明的范围之内。本发明的实施例可以只用硬件、或只用软件、或利用其组合来实现。本文描述的各种过程可以在同一处理器或以任何组合的不同处理器上实现。相应地,在组件或模块被描述为被配置为执行某些操作的情况下,这种配置可以例如通过设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作、或其任意组合来实现。进程可以利用各种技术来通信,这些技术包括但不限于用于进程间通信的常规技术,并且不同的进程对可以使用不同的技术,或者同一进程对可以在不同时间使用不同的技术。

相应地,说明书和附图应当在说明性而不是限制性的意义上考虑。然而,将明白的是,在不背离权利要求中阐述的更广泛精神和范围的情况下,可以对其进行添加、减少、删除和其它修改和改变。因此,虽然已描述了具体的发明实施例,但是这些实施例不旨在进行限制。各种修改和等效物都在以下权利要求的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1