CN105453035B - 用于接收对存储在计算机***处的软件组件的更新的方法 - Google Patents
用于接收对存储在计算机***处的软件组件的更新的方法 Download PDFInfo
- Publication number
- CN105453035B CN105453035B CN201380076972.2A CN201380076972A CN105453035B CN 105453035 B CN105453035 B CN 105453035B CN 201380076972 A CN201380076972 A CN 201380076972A CN 105453035 B CN105453035 B CN 105453035B
- Authority
- CN
- China
- Prior art keywords
- frame
- application
- update
- version
- line storage
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
Abstract
本发明涉及用于通过在线存储库更新软件组件的方法、***和计算机程序产品。计算设备与在线存储库交互来下载从在线存储库分发的应用和框架。计算机***包括被配置成保持所分发的应用和框架被更新的操作***。该操作***可以无需用户干预地、智能地以将用户中断降至最低的方式来自动调度和尝试应用更新和框架更新。该操作***可以针对计算设备上的任何和/或所有用户账户来管理应用和框架更新。该操作***甚至可以在针对已经安装应用和/或框架的不同用户账户要单独安装每一个应用和/或框架时,对更新进行管理。
Description
技术领域
本公开的实施例涉及计算机***,并且更具体地涉及用于接收对存储在计算机***处的软件组件的更新的方法。
背景技术
1.背景和相关技术计算机***和相关技术影响着社会的许多方面。事实上,计算机***处理信息的能力已经改变了我们生活和工作方式。现在,计算机***通常执行在计算机***出现以前手动执行的大量任务(例如,文字处理、调度、结算等)。最近,计算机***已经被耦合到另一个和其它电子设备,以形成有线和无线计算机网络两者,在该计算机网络上,计算机***和其它电子设备可以传送电子数据。因此,许多计算任务的执行在很多不同的计算机***和/或很多不同的计算环境上进行分发。
从在线存储库分发的应用通常共享通用框架,以减少磁盘占用(disk footprint)并且使不同应用的共享的组件能够在同一时间更新。在至少一些***内,手动执行应用和框架更新。因此,在某些情况下,框架可能未被更新。例如,当框架的新版本被发布时,除非获取了新的应用或更新的应用,并且新的/更新的应用已被明确地绑定到它所使用的框架新版本,否则它可能不会被更新。
许多在线存储库包括查找、下载、和安装应用的能力并且应用更新。通过在线存储库分发的至少一些应用共享一个或多个通用框架。框架典型地针对向后兼容而被开发。所以,即使开发人员使用较旧版本的框架创建了应用,通常对于具有这些框架的最新版本的用户还是有利的。框架更新可以包括安全补丁、性能改进以及其它益处。
然而,如所描述的,框架更新并不保证被下载。用户可能只能在任何时候获得“绑定”到应用的框架版本。也就是说,当该应用被开发时所使用的框架版本。因此,在多种场景下,用户可能永远无法获得可用的框架更新。在一种场景中,开发人员永远不会更新其应用以将其被绑定到最新发布的框架。在另一种场景中,用户永远不能决定安装可用的更新。在进一步的场景中,用户永远不会获取刚好被绑定到更新的框架的新应用。因此,用户可能会处于潜在地不安全的、慢速等不合意的状态中。
进一步地,常规更新技术往往导致相对较大的应用包,其中,内容直接合并(bake)到操作***或者需要操作***更新来改进它们,或者通用项反复不断地被一再地包括在每个个别应用之中。重复通用项消耗存储资源,并且带给开发人员重新实现每个改变的负担,并且手动提交对每个个别应用的更新。
发明内容
本发明涉及用于通过在线存储库更新软件组件的方法、***和计算机程序产品。在一些实施例中,无需用户干预,向在线存储库自动发送应用更新查询。该应用更新查询向在线存储库查询对安装在计算机***处的多个应用的任一个的更新。无需用户干预,与应用更新查询并行地向在线存储库自动发送单独的框架更新查询。该框架更新查询向在线存储库查询对安装在计算机***处的多个应用的任一个所利用的任何框架的更新。
接收框架更新以响应于框架更新查询。该框架更新包括对由安装在计算机***处的一个或多个应用所利用的框架的更新。无需用户干预,在计算机***的操作***维护窗口期间自动调度该框架更新以用于在计算机***处的安装。在可用的时间安装框架更新以更新计算机***处的一个或多个应用。
在其它实施例中,从在线存储库接收软件组件(例如,应用或框架)更新。确定软件组件更新适用于计算机***处的多个用户帐户。针对多个账户的每一个,要单独安装软件组件更新。无需用户干预,在计算机***的操作***维护窗口期间针对多个用户账户的每一个自动调度软件组件更新以用于安装。针对多个帐户的每一个,在可用的时间安装软件组件更新以为用户账户更新软件组件。
在进一步的实施例中,接收用户命令以从在线存储库获取应用的至少一部分。确定该应用被绑定到框架的版本。并且还确定框架的较新版本可从在线存储库获得。框架的较新版本比该框架的版本更新的时间更近。
向在线存储库发送用于应用的至少一部分和框架的较新版本的请求。从在线存储库接收框架的较新版本以响应请求。无需用户干预,自动调度框架的较新版本以用于在计算机***处的安装。在可用的时间安装框架的较新版本,以至少更新应用。
提供本发明内容以便以简化的形式介绍概念的选择,该概念在具体实施方式中进一步描述如下。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在被用来帮助限制所要求保护的主题的范围。
本发明的附加的特征和优点将在以下描述中进行陈述,并且其遵循本描述,并且根据本描述将是部分明显的,或可以通过本发明的实践来获知。本发明的特征和优点可以借助于在所附权利要求中特别指出的装置和组合来实现和获得。通过以下描述以及所附权利要求,本发明的这些和其它特征将会变得更加完全显而易见,或可以通过如下文所陈述的本发明的实践来获知。
附图说明
为了描述可以通过其来获得上文所叙述的和其它优点和特征的方式,将参照在附图所图示的特定实施例来提供上文所简要描述的本发明的更具体描述。应当理解,这些附图仅描绘本发明的典型实施例,从而不被视为对其范围的限制,将通过使用附图借助于附加特征和细节来描述和解释本发明,其中:
图1图示了便于通过在线存储库更新软件组件的示例计算机体系架构。
图2图示了用于通过在线存储库更新软件组件的示例方法的流程图。
图3图示了便于通过在线存储库更新软件组件的示例计算机体系架构。
图4图示了用于通过在线存储库更新软件组件的示例方法的流程图。
图5图示了便于通过在线存储库更新软件组件的示例计算机体系架构。
图6图示了用于通过在线存储库更新软件组件的示例方法的流程图。
图7图示了便于通过Web服务更新软件组件的示例计算机体系架构的数据流。
具体实施方式
本发明涉及用于通过在线存储库更新软件组件的方法、***和计算机程序产品。在一些实施例中,无需用户干预,向在线存储库自动发送应用更新查询。该应用更新查询向在线存储库查询对安装在计算机***处的多个应用的任一个的更新。无需用户干预,与应用更新查询并行地向在线存储库自动发送单独的框架更新查询。该框架更新查询向在线存储库查询对安装在计算机***处的多个应用的任一个所利用的任何框架的更新。
接收框架更新以响应于框架更新查询。该框架更新包括对由安装在计算机***处的一个或多个应用所利用的框架的更新。无需用户干预,在计算机***的操作***维护窗口期间自动调度该框架更新以用于在计算机***处的安装。在可用的时间安装框架更新以更新计算机***处的一个或多个应用。
在其它实施例中,从在线存储库接收软件组件(例如,应用或框架)更新。确定软件组件更新适用于计算机***处的多个用户帐户。针对多个账户的每一个,要单独安装软件组件更新。无需用户干预,在计算机***的操作***维护窗口期间针对多个用户账户的每一个自动调度软件组件更新以用于安装。针对多个帐户的每一个,在可用的时间安装软件组件更新以为用户账户更新软件组件。
在进一步的实施例中,接收用户命令以从在线存储库获取应用的至少一部分。确定该应用被绑定到框架版本。并且还确定框架的较新版本可以从在线存储库获得。框架的较新版本比该框架的版本更新的时间更近。
向在线存储库发送用于应用的至少一部分和框架的较新版本的请求。从在线存储库接收框架的较新版本以响应请求。无需用户干预,自动调度框架的较新版本以用于在计算机***处的安装。在可用的时间安装框架的较新版本,以至少更新应用。
在一些实施例中,用于获取应用的单个查询包含用于正在被获取的应用的信息。在线存储库可以返回用于应用以及适用于该应用的任何较新框架的信息。
在其它实施例中,在自动和/或交互式更新期间,(例如,客户端侧)代理发送用于其感知的应用和/或框架的信息。在线存储库可以返回用于任何较新应用(更新)和框架(更新)的信息。
自动更新可以包括:例如在维护窗口期间调度下载的应用(更新)和要进行安装的框架(更新)。
用户发起的应用获取和/或交互式更新可以作为用户发出的命令的部分进行安装(而且可以是更直接的)。可以在正在被下载的应用和/或框架之后对安装进行内部处置,而无需进一步的用户动作。
本发明的实施例可以包括或利用专用或通用计算机,该计算机包括诸如例如计算机硬件、一个或多个处理器和***存储器之类的计算机硬件,如下文更详细地所讨论的。本发明范围内的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其它计算机可读媒体。这样的计算机可读媒体可以是能够被通用或专用计算机***访问的任何可用媒体。存储计算机可执行指令的计算机可读媒体是计算机存储媒体(设备)。携带计算机可执行指令的计算机可读媒体是传输媒体。因此,作为示例而非限制,本发明的实施例可以包括至少两种显著不同的计算机可读媒体:计算机存储媒体(设备)和传输媒体。
计算机存储媒体(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(“SSD”)(例如,基于RAM的)、闪存、相变存储器(“PCM”)、其它类型的存储器、其它光盘存储装置、磁盘存储装置或其它磁性存储设备、或者可以被用来存储所期望的计算机可执行指令或数据结构的形式的程序代码手段并且可以被通用或专用计算机访问的任何其它介质。
“网络”被定义为使电子数据能够在计算机***和/或模块和/或其它电子设备之间传送的一个或多个数据链路。当信息通过网络或另一个通信连接(硬接线、无线、或者硬接线或无线的组合)被传递或提供到计算机时,该计算机将该连接适当地视作传输介质。传输媒体可以包括可以被用来携带所期望的计算机可执行指令或数据结构的形式的程序代码手段并且可以被通用或专用计算机访问的网络和/或数据链路。上述组合也应包括在计算机可读媒体的范围之内。
进一步地,在到达各种计算机***组件时,计算机可执行指令或数据结构形式的程序代码手段可以从传输媒体自动被传递到计算机存储媒体(设备)(或反之亦然)。例如,通过网络或数据链路所接收的计算机可执行指令或数据结构可以在网络接口模块(例如,“NIC”)内的RAM中缓冲,然后最终传递到计算机***RAM和/或计算机***处的易失性较小的计算机存储媒体(设备)。因此,应当理解,计算机存储媒体(设备)可以被包括在也(或甚至是主要)利用传输媒体的计算机***组件中。
计算机可执行指令包括例如当其在处理器处被执行时,使得通用计算机、专用计算机、或专用处理设备执行某些功能或功能组的指令和数据。例如,计算机可执行指令可以是二进制项、诸如汇编语言之类的中间格式指令、或者甚至是源代码。尽管已经以特定于结构特征和/或方法动作的语言对主题进行了描述,但是需要理解的是,在所附权利要求中所定义的主题并不一定局限于上文所描述的特定特征或动作。相反,所描述的特征和动作是作为实现权利要求的示例形式而被公开的。
本领域技术人员将领会的是,本发明可以在具有多种类型的计算机***配置的网络计算环境中实践,包括个人计算机、台式计算机、膝上式计算机、消息处理器、手持设备、多处理器***、基于微处理器的或可编程的消费类电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、平板电脑、传呼机、路由器、交换机等。本发明还可以在其中本地计算机***和远程计算机***两者均执行任务的分布式***环境中实践,其中,本地计算机***和远程计算机***通过网络链接(或者通过硬连线数据链路、无线数据链路、或者通过硬接线数据链路和无线数据链接的组合)。在分布式***环境中,程序的模块可能位于本地存储器存储设备和远程存储器存储设备两者中。
本发明实施例还可以在云计算环境中实现。在本说明书和以下权利要求中,“云计算”被定义为用于使得能够对共享的可配置计算资源池进行按需网络访问的模型。例如,云计算可以在市场上被采用,以提供对共享的可配置计算资源池的泛在且方便的按需访问。共享的可配置计算资源池可以经由虚拟化进行迅速供应,并且用较低的管理努力或服务提供商交互进行发布,然后相应地进行缩放。
云计算模型可以包括诸如例如按需自助服务、广泛的网络访问、资源池化、快速弹性、测量的服务之类的各种特点。云计算模型还可以展示诸如例如软件即服务(“SaaS”)、平台即服务(“PaaS”)和基础设施即服务(“IaaS”)之类的各种服务模型。还可以使用诸如私有云、社区云、公共云、混合云等之类的不同部署模型来部署云计算模型。在本说明书和权利要求中,“云计算环境”是其中采用云计算的环境。
在本说明书和以下权利要求中,“框架”被定义为提供可以被附加的用户编写的代码选择性地改变的一般功能的软件,从而提供专用的软件。(软件)框架是用于开发应用、产品和解决方案的可重复使用的软件平台。框架包括支持程序、编译器、代码库、工具集、和汇集了所有不同的组件来使能够开发项目或解决方案的应用编程接口(API)。
一般而言,本发明实施例涉及通过在线存储库更新软件组件。计算设备与在线存储库交互以下载从在线存储库分发的应用和框架。计算机***包括被配置成保持分发的应用和框架被更新的操作***。操作***可以自动地以及无需用户干预智能地,以将用户中断降至最低的方式来调度和尝试应用更新和框架更新。
操作***可以为计算设备上的任何和/或所有用户账户来管理应用和框架更新。操作***甚至可以在针对已经安装应用和/或框架的不同的用户账户要单独安装每一个应用和/或框架时,对更新进行管理。操作***还可以避免下载和更新计算机设备将其连接到付费网络上的应用和框架。在线存储库可以跟踪用于每个分布式应用和框架的单独遥测。
独立于应用的框架更新图1图示了便于通过在线存储库更新软件组件的示例计算机体系架构100。参照图1,计算机体系架构100包括计算机***101和在线存储库121。计算机***101和在线存储库121的每一个可以通过诸如例如局域网(“LAN”)、广域网(“WAN”)、以及甚至Internet之类的网络109(或作为网络109一部分)彼此连接。因此,计算机***101和在线存储库121以及任何其它连接的计算机***及其组件可以创建消息相关数据并且通过网络交换消息相关数据(例如,互联网协议(“IP”)数据报和利用诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等之类的IP数据报或者使用其它非数据报协议的其它较高层协议)。
现在,参照图1,计算机***101包括操作***102和账户数据库106。操作***102可以是管理计算机***101的计算机硬件资源并且提供用于在计算机***101处运行的应用的通用服务的软件集合。操作***102实际上可以是操作***,包括但不限于: 和AndroidTM。
操作***102进一步包括调度程序103和代理104。一般而言,调度程序/安装程序103被配置成调度应用、应用更新、框架和框架更新以用于在计算机***101处的安装。调度程序/安装程序103还被配置成在调度的(和/或其它可用的)时间尝试在计算机***101处安装应用、应用更新、框架、和框架更新。
计算机***101可以由单个用户使用或者可以由多个用户使用。帐户数据库106存储用于包括账户107和108在内的不同的用户帐户的信息。不同的用户帐户可以与相同的或不同的用户相对应。用户可以拥有一个用户帐户,或者可以拥有多个用户帐户。例如,账户107和108可以分别与用户117和118相对应。另一方面,帐户107和108两者均可以是用户117的帐户。用户可以拥有多个不同用户帐户以用不同权限访问计算机***101(例如,作为普通用户或作为管理员)。每个不同的帐户可以与其自己的设置和资源相关联。
计算机***101还可以具有一个或多个应用以及一个或多个对应的所安装的框架,诸如例如,应用111和112以及框架114。一个或多个应用可以依赖于相同的框架。例如,如虚线所指示的,应用111和112可以依赖于框架114。
在一些实施例中,针对很多不同的用户帐户,在计算机***101处安装应用和/或框架。因此,应用和/或框架可以在计算机***101处安装多次。同样地,应用更新和/或框架更新被多次安装,针对已经安装对应的待更新的应用和/或框架的每一个用户账户安装一次。
一般而言,在线存储库121被配置成将应用、应用更新、框架和框架更新分发到其它计算机***。例如,在线存储库121可以将应用131、框架133或对其的更新的任一个分发到其它计算机***,包括计算机***101。遥测模块122可以跟踪用于分发的应用、应用更新、框架和框架更新的单独的遥测数据。
在一些实施例中,在线存储库121具有用于购买应用和/或框架的购买模块。同样地,一些应用131和/或框架132可能需要在分发被允许之前进行购买。其它的应用131和/或框架132可能无需购买即可以被分发(即,它们是免费的)。即使在应用和/或框架最初被购买时,无需进一步的购买,对应的更新就可以被分发(即,更新是免费的)。
返回到计算机***101,代理104被配置成不时地或者以指定的时间间隔向在线存储库121查询与安装在计算机***101处的应用和/或框架相对应的更新。在一些实施例中,代理104无需用户干预自动查询在线存储库121。在其它实施例中,用户使代理104查询在线存储库121。单独的应用更新查询和框架更新查询可以彼此独立地被发送到在线存储库121。代理104可以接受任何返回的应用更新和/或框架更新。代理104可以通知调度程序/安装程序103任何更新,使得更新可以被调度用于安装并且随后被安装。
图2图示了用于通过在线存储库更新软件组件的示例方法200的流程图。方法200将相对于计算机体系架构100的组件和数据进行描述。
方法200包括:无需用户干预,向在线存储库自动发送应用更新查询,该应用更新查询向在线存储库查询对安装在计算机***处的多个应用任一个的更新(201)。例如,代理104可以向在线存储库121自动发送应用更新查询131。应用更新查询131可以向在线存储库121查询对安装在计算机***101处的应用的任何更新。
方法200包括:无需用户干预,与应用更新查询并行地向在线存储库自动发送单独的框架更新查询,该框架更新查询向在线存储库查询对安装在计算机***处的多个应用的任一个所利用的任何框架的更新(202)。例如,代理104可以与应用更新查询131并行地向在线存储库121自动发送应用框架更新查询132。框架更新查询132可以独立地向在线存储库121查询对安装在计算机***101处的应用(诸如例如,应用111、应用112等)的任一个所利用的框架的更新。
在线存储库121可以接收框架更新查询132。在线存储库121可以确定存在对框架114的更新。在线存储库121可以将框架更新133(对框架114的更新)返回到计算机***101。
方法200包括:接收框架更新以响应于框架更新查询,该框架更新包括对由安装在计算机***处的一个或多个应用所利用的框架的更新,该一个或多个应用选自所述多个应用(203)。例如,代理104可以从在线存储库121接收框架更新133。
方法200包括:无需用户干预,在计算机***的操作***维护窗口期间自动调度框架更新以用于在计算机***处的安装(204)。例如,调度程序/安装程序103可以调度框架更新133以用于安装。可以针对已经安装框架114的一个或多个用户账户的每一个调度安装。例如,可以针对用户账户107和108两者的一个或多个调度安装。在确定用于框架更新133的安装调度时,调度程序/安装程序103可以使用多种不同算法的任一种。一些算法可以包括:针对操作***102的维护窗口、***空闲时间或用户下一次登录时间,调度框架更新的安装。
方法200包括:在可用的时间安装框架更新以更新计算机***处的一个或多个应用(205)。例如,调度程序/安装程序103可以在可用的时间安装框架更新133以更新应用111和112中的一个或多个。可以针对一个或多个用户账户的每一个安装框架更新133(可能在不同时间)。例如,可以针对用户帐户107在一个(可用的)时间安装框架更新133,和/或可以针对用户账户108在不同的(可用的)时间安装框架更新133。可用的时间可以是操作***维护窗口或一些其它可用的时间,诸如例如,***空闲时间或下一次用户登录时间。
在线存储库121可以接收应用更新查询131。在线存储库121可以确定存在对应用111的更新。在线存储库121可以将应用更新134(对应用111的更新)返回到计算机***101。
方法200包括:接收应用更新,该应用更新包括对安装在计算机***处的指定应用的更新(206)。例如,代理104可以从在线存储库121接收应用更新134。
方法200包括:无需用户干预,在操作***维护窗口期间自动调度应用更新以用于在计算机***处的安装(207)。例如,与框架更新133的调度类似,调度程序/安装程序103可以调度应用更新134以用于安装。可以针对已经安装应用111的一个或多个用户账户的每一个调度安装(可能在不同时间)。
方法200包括:在可用的时间安装应用更新以更新指定的应用(208)。例如,与框架更新133类似,调度程序/安装程序103可以在可用的时间安装应用更新134以更新应用111。可以针对一个或多个用户账户的每一个安装应用更新134(可能在不同的时间)。
在一些实施例中,应用更新查询131和框架更新查询132被打包为单个查询。在用于“获取应用”的用户发起的命令期间,单个查询包含正在被获取的应用的信息,在线存储库返回应用以及适用于该应用的任何较新的框架的信息。
在“自动更新”和“交互式更新”期间,代理(客户端侧)发送其感知的应用和框架的信息。在线存储库返回任何较新的应用(更新)和框架(更新)的信息。
多帐户软件组件更新图3图示了便于通过在线存储库更新软件组件的示例计算机体系架构300。参照图3,计算机体系架构300包括计算机***301和在线存储库321。计算机***301和在线存储库321的每一个可以通过诸如例如局域网(“LAN”)、广域网(“WAN”)、以及甚至Internet之类的网络309(或作为网络309一部分)彼此连接。因此,计算机***301和在线存储库321以及任何其它连接的计算机***及其组件可以创建消息相关数据并且通过网络交换消息相关数据(例如,互联网协议(“IP”)数据报和利用诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等之类的IP数据报或者使用其它非数据报协议的其它较高层协议)。
现在,参照图3,计算机***301包括操作***302和账户数据库306。操作***302可以是管理计算机***301的计算机硬件资源并且提供用于在计算机***301处运行的应用的通用服务的软件集合。操作***302实际上可以是操作***,包括但不限于: 和AndroidTM。
操作***302进一步包括调度程序303和代理304。一般而言,调度程序/安装程序303被配置成调度应用、应用更新、框架和框架更新以用于在计算机***101处的安装。调度程序/安装程序303还被配置成在调度的(和/或其它可用的)时间尝试在计算机***301处安装应用、应用更新、框架、和框架更新。
同样地,计算机***301还可以具有一个或多个软件组件,诸如所安装的应用和/或框架。
计算机***301可以由单个用户使用或者可以由多个用户使用。帐户数据库306存储用于包括账户307和308在内不同的用户帐户的信息。不同的用户帐户可以与相同的或不同的用户相对应。用户可以拥有一个用户帐户,或者可以拥有多个用户帐户。例如,账户307和308可以分别与用户317和318相对应。另一方面,帐户307和308两者均可以是用户317的帐户。用户可以拥有多个不同用户帐户以用不同权限访问计算机***301(例如,作为普通用户或作为管理员)。每个不同的帐户可以与其自己的设置和资源相关联。例如,账户307和308可以分别与设置347和348相关联。帐户设置可以包括针对对应的用户账户安装什么应用和/或框架的指示。
因此,软件组件可以安装在计算机***301处,可以针对很对不同的用户帐户安装,使得软件组件被多次安装。同样地,对软件组件的更新也被安装多次(例如,针对每个用户帐户安装一次)。
一般而言,在线存储库321被配置成将软件组件(例如,应用、应用更新、框架和框架更新)分发到其它计算机***。在线存储库321可能包括或不包括购买模块。
返回到计算机***301,代理304被配置成不时地或者以指定的时间间隔向在线存储库321查询与安装在计算机***301处的软件组件相对应的更新。在一些实施例中,代理304无需用户干预自动查询在线存储库321。在其它实施例中,用户使代理304查询在线存储库321。代理104可以接受任何返回的软件组件更新。代理304可以通知调度程序/安装程序303任何更新,以使得更新可以被调度以用于安装并且随后针对多个用户账户进行安装。
图4图示了用于通过在线存储库更新软件组件的示例方法400的流程图。将相对于计算机体系架构300的组件和数据对方法400进行描述。
方法400包括:从在线存储库接收软件组件更新(401)。例如,代理304可以从在线存储库321接收框架更新333。软件组件更新可以是对软件组件311(例如,应用或框架)的更新。
方法400包括:确定软件组件更新适用于计算机***处的多个用户帐户,该软件组件更新针对多个账户的每一个而要被单独安装;例如,代理304可以是参照设置347和348,以确定分别针对用户账户307和用户帐户308两者而安装该软件组件311。代理304可以进一步确定该软件组件更新333要针对用户帐户307和用户帐户308而被单独安装。
方法400包括:无需用户干预,在计算机***的操作***维护窗口期间针对多个用户账户的每一个自动调度软件组件更新以用于安装(403)。例如,调度程序/安装程序403可以在操作***302的维护窗口期间针对用户账户307和308的每一个调度软件组件更新333的安装。
方法400包括:针对多个帐户的每一个,在可用的时间安装软件组件更新以针对用户账户更新软件组件(404)。例如,对于用户帐户307和308的每一个,调度程序/安装程序403可以在可用的(但可能不同的)时间安装软件组件更新333。例如,可以在一个(可用的)时间(诸如,操作***102的维护窗口)针对用户帐户107安装框架更新133。可以在不同的(可用的)时间(诸如,在下一次登录用户账户108的时间)针对用户帐户108安装框架更新133。一般而言,可用的时间可以是操作***维护窗口或一些其它可用的时间,诸如例如,***空闲时间或下一次用户登录的时间。
响应于应用更新请求的框架更新图5图示了便于通过在线存储库更新软件组件的示例计算机体系架构300。参照图5,计算机体系架构500包括计算机***501和在线存储库521。计算机***501和在线存储库521的每一个可以通过诸如例如局域网(“LAN”)、广域网(“WAN”)、以及甚至Internet之类的网络509(或作为网络309的一部分)彼此连接。因此,计算机***501和在线存储库521以及任何其它连接的计算机***及其组件可以创建消息相关数据并且通过网络交换消息相关数据(例如,互联网协议(“IP”)数据报和利用诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等之类的IP数据报或者使用其它非数据报协议的其它较高层协议)。
现在,参照图5,计算机***501包括操作***502。操作***502可以是管理计算机***501的计算机硬件资源并且提供用于在计算机***501处运行的应用的通用服务的软件集合。操作***502实际上可以是操作***,包括但不限于: 和AndroidTM。
操作***502进一步包括调度程序503和代理504。一般而言,调度程序/安装程序503被配置成调度应用、应用更新、框架和框架更新以用于在计算机***501处的安装。调度程序/安装程序503还被配置成在调度的(和/或其它可用的)时间尝试在计算机***501处安装应用、应用更新、框架、和框架更新。
同样地,计算机***501还可以具有绑定到对应的框架的应用。例如,计算机***501包括绑定(如虚线所指示的)到框架514的应用511。
代理504被配置成不时地、以指定的时间间隔、或者响应于用户命令向在线存储库521查询应用和/或框架更新。代理504可以接受任何返回的软件组件更新。代理504可以通知调度程序/安装程序503任何更新,以使得更新可以被调度以用于安装并且随后针对多个用户账户进行安装。
响应于请求用于应用更新的用户生成的或自动生成的应用更新命令,代理504可以确定应用绑定到的框架。代理504可以制订附加的独立请求或者补充现有请求,使得对这样的框架的更新也被请求。
图6图示了用于通过在线存储库更新软件组件的示例方法400的流程图。将相对于计算机体系架构500的组件和数据对方法600进行描述。
方法600包括:接收用户命令以从在线存储库获取应用的至少一部分(601)。例如,代理504可以从用户517接收应用更新命令543。应用更新命令543可以指令代理104从在线存储库521请求用于应用511的任何更新。
方法600包括:确定应用被绑定到框架的版本(602)。例如,代理504可以确定应用511绑定到框架514。方法600包括:确定框架的较新版本可从在线存储库获得,该框架的较新版本比该框架版本更新的时间更近(603)。例如,代理504可以确定框架514的较新版本可在在线存储库521处获得。代理504可以通过网络509与在线存储库521通信,以确定框架514的较新版本是可用的。
可替代地,代理504不能确定框架514的较新版本是可用的。
在任何情况下,代理504可以制定更新请求531。更新请求531可以同时请求对应用511的更新和对框架514的更新两者。
方法600包括:向在线存储库发送用于应用的至少一部分和框架的较新版本的请求(604)。例如,代理504可以向在线存储库521发送更新请求531。更新请求531请求对应用511的更新和对框架514的更新。
在线存储库521可以接收更新请求531。在线存储库521可以标识(用于应用511)的可用的应用更新534和(用于框架514)的框架更新533。在线存储库521可以向计算机***501发送应用更新534和框架更新533。
方法600包括:从在线存储库接收框架的较新版本以响应于请求(605)。例如,代理504可以从在线存储库521接收框架更新533(以及应用更新534)。
方法600包括:无需用户干预,自动调度框架的较新版本以用于在计算机***处的安装。方法600包括:在可用的时间安装框架的较新版本以至少更新应用。例如,调度程序/安装程序503可以调度框架更新533的安装并且安装该框架更新533以更新框架514。调度程序/安装程序503可以调度应用更新534的安装并且安装该框架更新534以更新框架应用511。
在一些实施例中,在用户发起的“获取应用”和“交互式更新”期间,应用和/或框架可以作为相同的用户发起的命令的一部分并且基本上立即被安装。用户不必执行其它动作。一旦通过在线存储库返回对应的应用和框架,通过下载它们并且在下载后针对用户进行安装来对安装进行内部处置。
附加的实施例图7图示了便于通过Web服务更新软件组件的示例计算机体系架构700的数据流。如所描绘的,计算机体系架构700包括代理701、调用程序702、搜索筛选程序(filter)703和客户端网页服务器721。代理701包括同步更新704、新更新706、应用筛选程序707、适用的应用更新708、适用的应用引用的框架更新709、其它框架更新711和适用的应用和框架更新712。
调用程序702可以是用于交互性活动的操作***存储库、用于自动后台活动的自动更新或者其它这样的场景。调用程序702可以发起针对客户端Web服务702的扫描(例如,同步更新704),从而指定搜索筛选程序703。例如,扫描可以是对用于***上单个应用、多个应用或所有应用的更新的搜索。搜索筛选程序上下文713被发送到客户端Web服务702。客户端Web服务702返回适用的应用和框架(例如,新更新706)。
基于搜索上下文713和/或基于正在被执行的特定场景,应用筛选程序707可以将更新分类为适用的应用更新708(用于应用本身的更新),适用的应用引用的框架更新709(应用更新所使用的特定框架更新)和其它框架更新711(要独立安装的“其它”框架更新)。例如,在操作***中建立的维护窗口安装调度之后,安装适用的应用和框架更新712。
然后,例如在操作***中建立的维护窗口安装调度之后,安装适用的应用和框架更新。
安装调度算法如所描述的,应用和框架可以由操作***自动安装。成功下载之后,可以在操作***的维护窗口期间调度应用和/或框架以用于安装。如果计算设备在维护窗口期间被关闭或暂停,可以针对***空闲时间重新调度安装尝试。如果在指定的时间段(例如,三天)之后,这些安装均不成功,则可以进一步将安装重新调度到用户下次登录的时间。可以针对当前登录到计算设备的用户帐户尝试安装。对于已经安装应用和/或框架但是没有登录的任何用户帐户,更新的安装被重新调度以用于这些用户账户的每一个的下次用户登录。
如果在上述时间的任一个,应用正在前台使用中或者正在后台播放媒体,则更新可以静静地停止,以便不会因强制关闭应用而打扰用户。然后可以根据相同的或类似的逻辑重新调度安装。另一方面,更新的安装不会被暂停的或者已经调度后台任务的应用阻止。在整个更新中,安装可以与正在保存的应用状态和任务一起向前移动。
进一步的实施例如所描述的,可以完全彼此独立地对应用和框架进行处置。当从在线存储库获取新应用时,可以出现同时获取被该应用使用的最新框架。当操作***在后台自动更新应用时,还可以出现对更新的框架的并行检查。用于每一个(应用和/或框架)的任何适用的更新可以在后台自动被更新。代理可以检查计算设备并非在计量的互联网连接或电池电源上。代理可以暂停更新,直至这些条件的两者消除为止。
当交互地检查更新时,可以发生同时获取被应用使用的(多个)最新框架。因此,两个单独的操作基本上同时发生,而非尝试将应用和框架减少为一个组的单一操作。这种用于更新框架的单独的独立进程有助于确保开发人员正在使用的是较新的框架版本。进一步地,客户无需担忧框架更新。对客户而言,框架和框架更新可以是完全不可见的,并且仅是让一切“只是工作”的***的一部分。
可以为每次下载发送遥测,使得知识工作者可以在管理新发布时对质量进行监控。
因此,本发明的实施例提供了一种允许应用包更小并且有助于减轻开发人员对用其应用分发通用框架的担忧的端到端解决方案。
在不脱离本发明的精神和基本特点的情况下,本发明可以以其它特定形式体现。所描述的实施例在所有方面都应被视为是说明性的,而非限制性的。因此,本发明的范围是由所附权利要求而非前面的说明书所指示的。在权利要求的等效涵义和范围内的所有改变均被包含在它们的范围内。
Claims (11)
1.一种用于接收对存储在计算机***处的软件组件的更新的方法,所述计算机***包括处理器和***存储器,所述计算机***通信地耦合到分发软件组件的在线存储库,所述软件组件包括应用和框架,来自所述在线存储库的多个应用和来自所述在线存储库的一个或多个框架安装在所述计算机***处,所述方法包括:
无需用户干预,向所述在线存储库自动发送应用更新查询,所述应用更新查询向所述在线存储库查询对从所述在线存储库购买的并且安装在所述计算机***处的多个应用中的任一个应用的更新,所述多个应用中的每个应用具有用于开发所述应用并且与所述应用一起安装的至少一个框架的版本,所述多个应用中的至少两个应用是利用不同框架开发的并且与所述不同框架一起安装;
无需用户干预,与所述应用更新查询并行地向所述在线存储库自动发送单独的框架更新查询,所述框架更新查询向所述在线存储库查询对用于开发所述多个应用中的任一个应用并且与所述应用中的所述任一个应用一起安装的任何框架的更新;
响应于所述框架更新查询接收框架更新,所述框架更新包括框架的新版本,所述框架的所述新版本相对于用于开发所述计算机***处的子多个应用并与所述子多个应用一起安装的所述框架的版本被更新,所述子多个应用选自所述多个应用;
无需用户干预,在所述计算机***处的操作***维护窗口期间自动调度所述框架更新以用于在所述计算机***处的安装,即使所述子多个应用不是利用所述框架的所述新版本开发的或者不与所述框架的所述新版本一起安装;和
在所述操作***维护窗口期间安装所述框架更新,以用所述子多个应用对所述框架的所述新版本的使用来替代所述子多个应用对所述框架的所述版本的使用。
2.根据权利要求1所述的方法,进一步包括:
接收应用更新,所述应用更新包括对安装在所述计算机***处的应用的更新,所述应用选自所述子多个应用;
无需用户干预,在所述操作***维护窗口期间自动调度所述应用更新以用于在所述计算机***处的安装;
在可用的时间安装所述应用更新以更新所述应用;以及
其中在所述操作***维护窗口期间安装所述框架更新包括:安装所述框架更新,以针对至少一个应用而用所述框架的所述新版本的使用来替代所述框架的所述版本的使用,即使针对所述至少一个应用的应用更新未响应于所述应用更新查询而被接收,所述至少一个应用选自所述子多个应用。
3.根据权利要求2所述的方法,进一步包括:
跟踪用于所述应用更新的更新遥测;和
跟踪用于所述框架更新的单独更新遥测;并且
其中所述更新遥测和所述单独更新遥测用于监测应用和框架的被管理的发布版的质量。
4.根据权利要求1所述的方法,其中,在所述计算机***处的操作***维护窗口期间调度所述框架更新以用于在所述计算机***处的安装包括:确定所述框架更新将针对所述计算机***处的多个用户帐户中的每个用户帐户而被单独安装。
5.一种用于接收对存储在计算机***处的软件组件的更新的方法,所述计算机***包括处理器和***存储器,所述计算机***通信地耦合到分发软件组件的在线存储库,所述软件组件包括应用和框架,来自所述在线存储库的多个应用和来自所述在线存储库的一个或多个框架安装在所述计算机***处,所述方法包括:
从所述在线存储库接收框架更新,所述框架更新包括框架的新版本,所述框架的所述新版本相对于用于开发一个或多个应用并且与所述一个或多个应用一起安装的所述框架的版本被更新,所述一个或多个应用选自来自所述在线存储库的所述多个应用;
通过确定所述计算机***处的多个用户帐户中的每个用户帐户与所述一个或多个应用中的至少一个应用相关联,来确定所述框架更新将针对所述多个用户帐户被安装;
无需用户干预,针对所述多个用户帐户中的每个用户帐户自动调度所述框架更新以用于单独安装,即使针对每个用户帐户,所述一个或多个应用中的所述至少一个应用不是利用所述框架的所述新版本开发的或者不与所述框架的所述新版本一起安装;和
针对所述多个用户帐户中的每个用户帐户,在可用的时间安装所述框架更新,以替代所述一个或多个应用中的所述至少一个应用对所述框架的所述版本的使用,包括:
检测来自所述多个用户帐户的第一用户帐户登入所述计算机***;以及
在所述第一用户帐户登入所述计算机***的同时:
针对所述第一用户帐户安装所述框架更新;以及
在***空闲时间期间,针对来自所述多个用户帐户的第二用户帐户安装所述框架更新。
6.根据权利要求5所述的方法,进一步包括在针对所述多个用户帐户中的每个用户帐户调度所述框架更新以用于单独安装之后:
确定所述计算机***在针对所述多个用户帐户中的一个或多个用户帐户的操作***维护窗口期间被关闭或暂停;和
针对所述一个或多个用户帐户中的每个用户帐户,针对计算机***空闲时间,重新调度所述框架更新的单独安装。
7.根据权利要求5所述的方法,进一步包括:
确定利用所述框架的所述版本开发的并且与所述框架的所述版本一起安装的应用在操作***维护窗口期间正在使用中;
在不更改所述应用使用的情况下,静静地停止所述软件组件的安装;和
在随后的时间内重新调度所述软件组件的安装。
8.一种用于接收对存储在计算机***处的软件组件的更新的方法,所述计算机***包括处理器和***存储器,所述计算机***通信地耦合到分发软件组件的在线存储库,所述软件组件包括应用和框架,来自所述在线存储库的多个应用和来自所述在线存储库的一个或多个框架安装在所述计算机***处,所述方法包括:
接收用户命令以从所述在线存储库获取针对应用的应用更新,所述应用是从所述在线存储库购买的;
响应于所述用户命令,确定所述应用是利用框架的版本开发的并且与所述框架的所述版本一起安装在所述计算机***处,所述框架的所述版本还用于开发被安装在所述计算机***处的一个或多个其他应用并且与所述一个或多个其他应用一起安装;
确定所述框架的较新版本可从所述在线存储库获得,即使所购买的所述应用是利用所述框架的所述版本开发的并且与所述框架的所述版本一起安装,所述框架的所述较新版本比所述框架的所述版本被更近地更新;
向所述在线存储库发送请求,所述请求响应于所述确定而请求针对所述应用的应用更新和针对所述框架的框架更新;
响应于所述请求,从所述在线存储库接收所述框架的所述较新版本;
基于用于获取针对所述应用的所述应用更新的所述用户命令,无需用户干预,自动调度所述框架的所述较新版本以用于在所述计算机***处的安装,以更新所述框架以供所述应用使用,并且更新所述框架以供所述一个或多个其他应用使用;和
安装所述框架的所述较新版本,以更新提供给所述应用和所述一个或多个其他应用的所述框架功能,即使所述应用和所述一个或多个其他应用不是利用所述框架的所述较新版本开发的或者不与所述框架的所述较新版本一起安装,所述框架的所述较新版本的安装用所述应用和所述一个或多个其他应用对所述框架的所述较新版本的使用来替代所述应用和所述一个或多个其他应用对所述框架的所述版本的使用。
9.根据权利要求8所述的方法,其中对所述框架的所述较新版本安装多次,所述框架的所述较新版本的每次安装是针对来自所述计算机***处的多个用户帐户的不同用户帐户而被安装的。
10.根据权利要求8所述的方法,还包括:
跟踪用于所述应用更新的更新遥测;和
跟踪用于所述框架的所述较新版本的单独更新遥测;并且
其中所述更新遥测和所述单独更新遥测用于监测应用和框架的被管理的发布版的质量。
11.一种具有存储在其上的详述方法的指令集合的有形的机器可读介质,所述指令集合当由一个或多个处理器执行时,使得所述一个或多个处理器执行权利要求1到10中的任何一个所要求保护的所述方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361828658P | 2013-05-29 | 2013-05-29 | |
US61/828658 | 2013-05-29 | ||
US13/968452 | 2013-08-16 | ||
US13/968,452 US9645809B2 (en) | 2013-05-29 | 2013-08-16 | Updating software components through online stores |
PCT/US2013/061040 WO2014193450A1 (en) | 2013-05-29 | 2013-09-20 | Updating software components through online stores |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105453035A CN105453035A (zh) | 2016-03-30 |
CN105453035B true CN105453035B (zh) | 2019-08-06 |
Family
ID=51986697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380076972.2A Active CN105453035B (zh) | 2013-05-29 | 2013-09-20 | 用于接收对存储在计算机***处的软件组件的更新的方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9645809B2 (zh) |
EP (1) | EP3005095A1 (zh) |
KR (1) | KR102056960B1 (zh) |
CN (1) | CN105453035B (zh) |
WO (1) | WO2014193450A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8918779B2 (en) * | 2009-08-27 | 2014-12-23 | Microsoft Corporation | Logical migration of applications and data |
EP3014428A4 (en) * | 2013-06-28 | 2017-03-22 | Samsung Electronics Co., Ltd. | Method and apparatus for updating application |
US9483247B2 (en) * | 2014-01-27 | 2016-11-01 | Ca, Inc. | Automated software maintenance based on forecast usage |
US9400643B2 (en) | 2014-03-03 | 2016-07-26 | Google Inc. | Methods and systems for updating components on a computing device |
CN105912365B (zh) * | 2016-04-14 | 2020-01-14 | 惠州Tcl移动通信有限公司 | 一种移动终端***更新方法及*** |
US10447814B2 (en) | 2017-02-02 | 2019-10-15 | Microsoft Technology Licensing, Llc | Joint servicing of software packages |
US10169030B1 (en) | 2017-09-13 | 2019-01-01 | International Business Machines Corporation | Refreshing a software component without interruption |
WO2019059880A1 (en) * | 2017-09-19 | 2019-03-28 | Siemens Aktiengesellschaft | APPARATUS AND METHOD FOR AUTONOMOUSLY ADDING AND DELETING FUNCTIONALITY IN PROGRAMMABLE CONTROLLERS (PLC) |
US11334337B2 (en) * | 2019-04-23 | 2022-05-17 | Hewlett Packard Enterprise Development Lp | Selecting and sending subset of components to computing device prior to operating system install |
CN110515642B (zh) * | 2019-09-02 | 2022-04-29 | 杭州行至云起科技有限公司 | 一种应用程序升级方法及*** |
CN111666090B (zh) * | 2020-06-10 | 2022-09-20 | 贵州电子商务云运营有限责任公司 | 一种应用***扩展组件在线更新支撑*** |
KR20230103774A (ko) * | 2021-12-31 | 2023-07-07 | 엘지전자 주식회사 | 가전기기, 가전기기 업그레이드 방법 및 가전기기 업그레이드 시스템 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866214A (zh) * | 2005-05-17 | 2006-11-22 | 佳能株式会社 | 安装方法及设备 |
CN102057354A (zh) * | 2008-06-08 | 2011-05-11 | 苹果公司 | 获取对应用程序的更新的技术 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185734B1 (en) * | 1998-07-21 | 2001-02-06 | Hewlett-Packard Company | Hierarchical registry structure for managing multiple versions of software components |
US6819343B1 (en) * | 2000-05-05 | 2004-11-16 | Microsoft Corporation | Dynamic controls for use in computing applications |
GB2374688B (en) * | 2001-04-19 | 2004-12-29 | Ibm | A method and system for distributing software features to a computer |
US20080313282A1 (en) | 2002-09-10 | 2008-12-18 | Warila Bruce W | User interface, operating system and architecture |
US20060106806A1 (en) * | 2004-11-12 | 2006-05-18 | Smith Micro Software, Inc. | Software update for a plurality of mobile devices |
US7865888B1 (en) * | 2004-12-21 | 2011-01-04 | Zenprise, Inc. | Systems and methods for gathering deployment state for automated management of software application deployments |
US8006240B2 (en) * | 2005-12-01 | 2011-08-23 | International Business Machines Corporation | Support continuous availability by allowing the use of multiple concurrent versions of shared artifact libraries, with proper bind-drain semantics, for long-lived process application consumers |
US20070192763A1 (en) | 2006-02-15 | 2007-08-16 | Helvick Richard E | Method and system for scheduling application of software updates |
EP2047420A4 (en) * | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE |
US7603435B2 (en) * | 2006-11-15 | 2009-10-13 | Palm, Inc. | Over-the-air device kill pill and lock |
US8099720B2 (en) | 2007-10-26 | 2012-01-17 | Microsoft Corporation | Translating declarative models |
US8291402B2 (en) * | 2007-11-29 | 2012-10-16 | Red Hat, Inc. | Using system fingerprints to accelerate package dependency resolution |
US9032390B2 (en) * | 2008-07-29 | 2015-05-12 | Qualcomm Incorporated | Framework versioning |
US20100299219A1 (en) * | 2009-05-25 | 2010-11-25 | Cortes Ricardo D | Configuration and Management of Add-ons to Digital Application Programs for Network-Based Distribution |
WO2012145002A1 (en) | 2011-04-21 | 2012-10-26 | Hewlett-Packard Development Company, L.P. | Installing an application into a virtualized environment |
WO2012148867A1 (en) | 2011-04-26 | 2012-11-01 | Soultanov Rafael | Web-based app builder for mobile devices with automatic updates |
US9696981B2 (en) * | 2011-04-27 | 2017-07-04 | Cambridge Semantics, Inc. | Incremental deployment of computer software program logic |
US9319406B2 (en) | 2011-07-12 | 2016-04-19 | Apple Inc. | System and method for linking pre-installed software to a user account on an online store |
US20130067447A1 (en) * | 2011-09-09 | 2013-03-14 | Microsoft Corporation | State Machine Based Package Installation |
US8554179B2 (en) | 2011-09-23 | 2013-10-08 | Blackberry Limited | Managing mobile device applications |
WO2013050649A1 (en) | 2011-10-04 | 2013-04-11 | Nokia Corporation | Method and apparatus for providing an application marketplace |
US9766870B2 (en) | 2013-05-30 | 2017-09-19 | Microsoft Technology Licensing, Llc | Bundle package generation |
-
2013
- 2013-08-16 US US13/968,452 patent/US9645809B2/en active Active
- 2013-09-20 WO PCT/US2013/061040 patent/WO2014193450A1/en active Application Filing
- 2013-09-20 CN CN201380076972.2A patent/CN105453035B/zh active Active
- 2013-09-20 KR KR1020157034024A patent/KR102056960B1/ko active IP Right Grant
- 2013-09-20 EP EP13771328.5A patent/EP3005095A1/en not_active Ceased
-
2017
- 2017-04-04 US US15/478,422 patent/US10318273B2/en active Active
-
2019
- 2019-05-20 US US16/417,627 patent/US10613853B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866214A (zh) * | 2005-05-17 | 2006-11-22 | 佳能株式会社 | 安装方法及设备 |
CN102057354A (zh) * | 2008-06-08 | 2011-05-11 | 苹果公司 | 获取对应用程序的更新的技术 |
Also Published As
Publication number | Publication date |
---|---|
US20140359596A1 (en) | 2014-12-04 |
US20190272166A1 (en) | 2019-09-05 |
EP3005095A1 (en) | 2016-04-13 |
CN105453035A (zh) | 2016-03-30 |
US10613853B2 (en) | 2020-04-07 |
US9645809B2 (en) | 2017-05-09 |
US20170206078A1 (en) | 2017-07-20 |
KR102056960B1 (ko) | 2020-01-22 |
KR20160013884A (ko) | 2016-02-05 |
US10318273B2 (en) | 2019-06-11 |
WO2014193450A1 (en) | 2014-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105453035B (zh) | 用于接收对存储在计算机***处的软件组件的更新的方法 | |
US10445142B2 (en) | Edge computing platform | |
Anderson | BOINC: a platform for volunteer computing | |
CN108647083B (zh) | 任务执行方法、装置、***、电子设备及计算机可读介质 | |
US8880638B2 (en) | Distributed image cache for servicing virtual resource requests in the cloud | |
CN104541247B (zh) | 用于调整云计算***的***和方法 | |
CN101836201B (zh) | 用于翻译声明性模型的方法及*** | |
CN110658794B (zh) | 一种制造执行*** | |
EP3128416B1 (en) | Sdn application integration, management and control method, system and device | |
AU2017236024B2 (en) | Flow engine for building automated flows within a cloud based development platform | |
CN105323282A (zh) | 一种面向多租户的企业应用部署与管理*** | |
US9729610B2 (en) | Method for intercepting an instruction produced by an application on a computer | |
WO2016069420A2 (en) | Preparing installations and updates for software systems | |
CN110011875A (zh) | 拨测方法、装置、设备及计算机可读存储介质 | |
CN103207802B (zh) | 软件操作***及方法 | |
JP6568576B2 (ja) | サーバー・プラットフォーム上においてアトミック・タスクを開始するときにおける制御 | |
US9501303B1 (en) | Systems and methods for managing computing resources | |
US20200322445A1 (en) | Enhanced file sharing systems and methods | |
Pierce et al. | The Quakesim portal and services: new approaches to science gateway development techniques | |
Terracciano et al. | Fast and fine-grained resource allocation for cloud-native applications on Kubernetes | |
CN118295806A (zh) | 一种分布式任务处理方法和装置 | |
Agrawal | Recent Advances in Mobile Cloud Computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |