CN109388407A - 用于经由在线分发平台的客户端到服务器部署的方法和系统 - Google Patents
用于经由在线分发平台的客户端到服务器部署的方法和系统 Download PDFInfo
- Publication number
- CN109388407A CN109388407A CN201810921488.XA CN201810921488A CN109388407A CN 109388407 A CN109388407 A CN 109388407A CN 201810921488 A CN201810921488 A CN 201810921488A CN 109388407 A CN109388407 A CN 109388407A
- Authority
- CN
- China
- Prior art keywords
- server
- client
- image
- software
- packet
- 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.)
- Pending
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/18—Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种用于经由在线分发平台的客户端到服务器部署的方法、系统以及计算机程序产品。特别地,本发明提供了一种机制以便经由并行的客户端软件更新来更新系统软件或服务器侧软件的全体或部分。本发明利用诸如移动应用商店之类的在线分发平台以便不仅提供客户端更新而且提供底层系统中的系统软件更新(服务器侧版本)。
Description
技术领域
本发明涉及用于利用诸如特定在线应用商店之类的移动分发(distribution)平台来升级系统的映像中的特定组件的软件的方法和系统。
背景技术
在基于平台的系统解决方案(即类似于OpenScape Business X变体的系统解决方案)中,经常存在部署分离的补丁的问题,因为系统解决方案可能被作为总映像来交付。当尝试使移动或桌面应用或程序版本与服务器侧的一个同步时,问题变得更加复杂。小型和中型企业系统解决方案大多数时候依赖对防火墙和其它安全受限访问隐藏的在顾客的公司场所中的某处的硬件组件。在这些系统中,经常会看到要手动地或者经由特定的连接的服务器安装的更新。最常见的情况是前述更新被作为完整的官方发布而给出,并且很少找到顾客安装补丁的场合。甚至补丁交付是要求监视和历史日志记录的非常困难的过程。因此,经由总映像来完成将与其它系统软件组件隔离的某个组件安全地升级。
诸如移动应用商店(比如AppStore或者Google的Play Store)之类的特定在线分发平台已经开发了一种用于经由它们自己的服务器来升级应用/软件的机制,所述服务器帮助它们监视什么被升级以及某物被多么频繁地升级。并行地,这些前述应用商店给予消费者自动地升级其app/软件而不注意到它的机会。这已经变成惯例,并且用户熟悉这些应用商店的底层过程。大多数时候,这些更新必须与服务器侧更新一起出现。当该更新处于云服务器上时,这使其更容易一点,由于开发者可以几乎在与服务器相同的时间实例处更新顾客的应用/软件,或者有时候使服务器与应用/软件的旧版本和新版本兼容。然而,这要求两个动作,一个来自客户端侧(或者移动应用侧)并且一个来自服务器侧。当服务不经由云服务器提供而是必须手动地安装在硬件上时,这变得更加困难。
例如,在基于平台的解决方案(比如OpenScape Business)中,这些平台可以包括不同的组件,所述组件例如在一方面提供电话功能性并且在另一方面提供用于系统与客户端(比如移动app)之间的通信的负责软件(即API)。每当存在要发布的用于客户端的新软件时,开发者必须注意两个更新,一个用于客户端并且另一个用于服务器侧。因此,大多数时候,开发者必须等待直至服务器被更新,并且然后可以发布用于客户端的更新,所述客户端例如是要在顾客的移动电话上更新的应用。
然而,由于这些前述系统中的大多数是分布式的并且不是集中式的,因此不保证所有服务器都采用相对最新客户端软件更新的最新兼容版本,例如在应用商店版本中可获得的最新应用。
发明内容
本发明的目标是提供一种用于经由在线分发平台的客户端到服务器部署(clientto server deployment)的方法、系统以及计算机程序产品。特别地,本发明的目标是提供一种机制以便经由并行的客户端软件更新(即移动应用更新)来更新系统软件或服务器侧软件(例如,前述API)的全体或全部。本发明利用诸如移动应用商店之类的在线分发平台以便不仅提供客户端更新(应用更新)而且提供底层系统中的系统软件更新(服务器侧版本)。
本发明的一个或多个前述目标至少部分地通过独立权利要求的特征来解决。本发明的有利实施例和另外的开发在从属权利要求和示例中阐述。
本发明的一方面是一种用于经由在线分发平台的客户端到服务器部署的方法。
该方法包括以下的步骤:
a)在客户端处从在线分发平台接收客户端软件更新和服务器侧软件更新的映像或者映像的至少部分;
b)通过客户端核实软件更新是否必要来批准软件更新;
c)在客户端上更新/安装软件更新并且随后登录到服务器;
d)由客户端向服务器请求服务器部署;
e)由服务器确认客户端的服务器部署请求;
f)由服务器向客户端请求服务器侧软件更新的映像或者映像的至少部分的包(package);
g)从客户端向服务器传送服务器侧软件更新的映像或者映像的至少部分的包;以及
h)在服务器上初始化该部署。
将理解,该方法独立于任何操作系统。本发明的方法可以特别地体现在iOS、Windows、Android或者任何其它操作系统环境中。
按照本发明,以下术语将被另外理解成如在下文中描述的其通常的含义:
更新/升级将被另外理解成改进系统或物理实体的(多个)组件。这包括:用相同产品的较新版本替换产品的过程;改进功能性或解决问题,例如利用经由补丁或热修复等的安全性来改进功能性或解决问题;支持行业监管要求;访问具有新特征和工具的新兴技术;满足改变市场的需求;继续接收全面的产品支持;以及改进系统或物理实体的可用性或性能。在本发明的一些上下文中,术语更新还可以具有将某物安装到某个系统或物理实体的过程的含义。
术语部署或者对(某物)进行部署将被另外解释为必须根据具体要求或特性来定制的一般过程。该过程可以但并不总是必须包括某些部署活动,诸如:
发布;发布活动由完成的开发过程产生,并且有时候被分类为开发过程的部分而不是恰当的部署。它包括用来使系统准备用于组装并且传送到它将在生产中在其上运行的(多个)计算机系统的所有操作。因此,它有时候牵涉到确定用于使系统以可容许的性能进行操作所要求的资源,以及规划和/或记录部署过程的后续活动。
安装和激活;对于简单的系统,安装牵涉到建立某个形式的命令、快捷方式、脚本或服务以用于执行软件(手动地或者自动地)。对于复杂的系统,其可以牵涉到——可能通过询问最终用户关于其预期使用的问题、或直接地询问最终用户他们想要它被如何配置的——系统的配置,和/或使所有所要求的子系统准备好使用。激活是第一次启动软件的可执行组件的活动(不与涉及软件许可的术语激活的常见使用混淆,涉及软件许可的术语激活是数字版权管理系统的功能)。在服务器上的较大软件部署中,要由用户使用的软件的主要拷贝——“生产”——可能在生产环境中安装在生产服务器上。所部署的软件的其它版本可以在测试环境、开发环境和灾难恢复环境中安装。在复杂连续交付环境和/或作为服务系统的软件中,系统的不同地配置的版本可能甚至同时地存在于针对不同的内部或外部顾客的生产环境中(这被称为多租户架构),或者甚至与顾客的不同群组并行地逐渐迁出,其中有可能取消并行部署中的一个或多个。出于蓝绿部署的目的,还可以在生产环境内创建“隐藏存活的”群组,其包括还没有连接到生产负载均衡器的服务器。
去激活;去激活是激活的倒转,并且是指关闭系统的任何已经执行的组件。经常需要去激活来执行其它部署活动,例如,软件系统可能需要在可以执行更新之前被去激活。从服务移除不频繁使用或过时的系统的实践经常被称为应用引退或应用退役。
卸载;卸载是安装的倒转。它是不再需要的系统的移除。它还可以牵涉到其它软件系统的某个重新配置以便移除被卸载系统的依赖性。
更新;更新过程用较新发布来替换软件系统的全部或部分的较早版本。它通常包括跟随安装的去激活。在一些系统上,诸如当使用系统的包管理器时在Linux上,软件应用的旧版本典型地也被作为该过程的自动部分而卸载。
内置更新;用于安装更新的机制被内置于一些软件系统中(或者在诸如Linux、Android和iOS之类的一些操作系统的情况下,内置于操作系统本身中)。这些更新过程的自动化从完全自动变动到用户发起且控制。Norton Internet Security(诺顿网络安全特警)是利用用于检索并安装对防病毒定义(antivirus definitions)和系统的其它组件二者的更新的半自动方法的系统的示例。其它软件产品提供用于确定更新何时可用的查询机制。
适配;适配活动也是用来修改之前已经安装的软件系统的过程。它与更新的不同在于,适配是由诸如改变顾客地点的环境之类的本地事件发起的,而更新是正被使得可用的新发布的结果。适配在某些复杂情况下可以要求专业技术技能,诸如计算机编程。
术语“确认”将被理解为服务器的用来允许部署的接受。该过程可以取决于服务器的预确定的值和/或要安装的服务器侧更新的结构或内容和/或客户端的可靠性或身份。
术语“在服务器上初始化部署”将被理解为服务器以其开始部署过程的动作的过程。由此,当服务器已经接收到服务器侧更新的整个映像时,服务器可以开始该过程,但是还可能的是,甚至在如果整个映像的仅一个或多个部分可用于服务器侧处的情况下,服务器以该过程而开始。如果服务器在接收到完整更新的仅一个或多个部分之后开始该过程并且稍后完成它,则完整更新何时可用于服务器处可以取决于部署过程的预确定的值和/或要安装的服务器侧更新的结构或内容。
在一个有利实施例中,所述在线分发平台可以是提供可以由顾客手动地或者自动地下载的软件和软件更新的在线商店或特定应用商店。特别地,所述在线分发平台可以是像来自Apple的App Store或者来自Google的Play Store这样的,并且可以特定于给定的操作系统,比如iOS、Windows、Android等。
在一个有利实施例中,所述客户端是访问由服务器使得可用的服务的一块硬件或软件。特别地,所述客户端可以是诸如固定的PC或者移动设备之类的设备,所述移动设备诸如是移动电话、智能电话、平板、移动PC、智能手表等。在另一方面,客户端还可以是安装在前述设备中的一个上的应用或软件。
在另一个有利实施例中,所述客户端软件更新是特定应用更新,其由更新用于该特定移动应用的软件的开发者或者组织提供。
在另一个有利实施例中,并非一个而是多个客户端有助于服务器部署,其中方法包括以下的步骤:
a)在多个客户端中的至少一个客户端处从在线分发平台接收客户端软件更新以及服务器侧软件更新的映像或者映像的至少部分;
b)通过所述多个客户端中的所述至少一个客户端核实软件更新是否必要来批准软件更新;
c)在所述多个客户端中的所述至少一个客户端上更新/安装软件更新并且随后登录到服务器中;
d)由所述多个客户端中的所述至少一个客户端向服务器请求服务器部署;
e)由服务器确认所述多个客户端中的所述至少一个客户端的服务器部署请求;
f)由服务器向所述多个客户端中的所述至少一个客户端请求服务器侧软件更新的映像或者映像的至少部分的包;
g)从所述多个客户端中的所述至少一个客户端向服务器传送服务器侧软件更新的映像或者映像的至少部分的包;以及
h)在服务器上初始化该部署。
在另一个有利实施例中,所述服务器向每一个客户端发送确认连同单独的顺序或随机的包编号。因此,在该情况下,服务器不知道多少个客户端将有助于更新服务器侧上的软件;因此,对于每一个更新请求,服务器发送确认与该顺序或随机的包编号。客户端或者客户端侧上的软件/应用接收该包编号并且等待直至服务器向参与总数目的包的升级的所有客户端发送消息。
在另外的有利实施例中,所述服务器特别地在方法步骤d)之后建立等待时间以最终从其它客户端接收服务器部署的更多请求。如果服务器从其它客户端接收到服务器部署的更多请求,则它向参与升级的所有客户端发送具有包的总数目的消息。当这些客户端接收到该总数目时,它们根据总数目将总映像划分成相等的和/或预确定的和/或随机大小的经划分包,并且仅发送涉及它们已经被通知的顺序或随机包编号连同确认的包。如之前所述,确认或者确认消息中的包的次序可以是随机的。可以利用这一点以用于增强针对中间人攻击的安全性。
在另一个有利实施例中,服务器是系统中的多个服务器中的一个。要理解,每一个服务器可以通过前述方法来更新。如果服务器连接到彼此,则迄今为止没有接收到最新更新版本的服务器的更新可以通过其它服务器和/或给定系统的客户端同时地完成。
在另一个有利实施例中,所述方法提供针对在升级过程期间某物出问题的情况的错误处置。例如,当服务器最后请求发送包时,客户端(设备)中的一个离线;或者确认从未到达客户端(设备),使得序列编号失去。另外的错误可能由于包被损坏或者“包的总数目”消息没有到达其目的地而发生。所有情况具有相同的影响。最终服务器不能够重构包并且因此不能安装服务器侧软件更新的总映像或者映像的至少部分。因此,当存在重构包的问题时,在服务器侧处将发生错误处置。每当服务器面对这样的错误时,服务器部署中所牵涉的所有可用客户端都必须在解决错误中作出贡献。在这样的事件中,服务器将向所有可用客户端(设备)请求错失或者损坏的包。在接收到该请求之后,可用客户端将向服务器传送该特定包。当恰当的包被评估并且适合使服务器侧软件更新的总映像完整时,然后这些所传送的包中的所有其它包被丢弃。
来自具有多个客户端和/或服务器的该多实例过程的总体益处首先在于,它在尝试在服务器内部插入恶意软件时增强安全性。这是因为越多的客户端(设备)参与服务器的更新过程,从攻击者的视角来看,过程就变得越不可控制。攻击者将必须监视来自和去往服务器的所有实例,根据序列编号反馈来重构包等。并行地,该方法提供了具有作为在该过程中牵涉到的客户端(设备)的数目的函数的线性增加的快速部署的机会。设备越多,服务器的部署可以实现得越快。
本发明的另一方面是一种用于被配置用于使用前述方法的客户端到服务器部署的系统。所述系统包括客户端、服务器以及用来下载客户端软件更新和服务器侧软件更新的映像或者映像的至少部分的在线分发平台。由此,这样的系统的客户端能够访问在线分发平台,并且能够从该在线分发平台下载客户端软件更新和服务器侧软件更新的映像或者映像的至少部分。客户端进一步能够进行批准,如果软件更新根本是必要的话。如果该批准未发生,则不存在以下指示:无论怎样都存在可用的新软件更新。此外,所述系统的所述客户端能够安装客户端软件更新并且能够登录到服务器中以请求服务器部署。
所述系统的所述服务器能够确认客户端的服务器部署请求,并且能够向客户端请求服务器侧软件更新的映像或者映像的至少部分的包。如果客户端接收到这样的请求,则它将服务器侧软件更新的映像或者映像的至少部分的包传送给服务器并且然后服务器能够初始化部署。
根据所述系统的一个有利实施例,客户端和/或服务器是在所述系统中实现的多个客户端或服务器中的至少一个。在所述系统的另一个有利实施例中,在线分发商店是应用商店,和/或所述多个客户端中的所述至少一个是设备或者移动设备,诸如移动电话、智能电话、平板、移动PC、智能手表,和/或客户端是安装在前述设备中的一个上的应用或者软件。
在所述系统的另一个有利实施例中,客户端软件更新是特定应用更新。在所述系统的另一个有利实施例中,在所述服务器由于错失的序列包或包损坏而不能够重构服务器侧软件更新的整个映像或者映像的至少部分的情况下,服务器向服务器部署中所牵涉的系统中的所有可用客户端请求错失的序列包以使服务器侧软件更新的映像或者映像的至少部分完整。
本发明的另外的方面是一种软件产品,其中在硬件环境的物理侧上执行所述前述方法,所述软件产品存储在计算机可读介质上,优选地可直接加载到计算机的内部存储器中,并且包括用于当所述软件产品由所述硬件环境(即计算机)执行时实行第一方面的方法的步骤的程序代码。所述硬件环境可以被配置为由用户操作的物理单元,以及向所述物理单元提供虚拟桌面服务的虚拟单元,所述物理单元和所述虚拟单元经由网络而连接。所述物理单元进一步包括电话、移动电话、智能电话、PDA、台式计算机、便携式计算机、平板计算机等,或者由它们体现或者被包括在它们中,并且可以被配置成操作为胖客户端、瘦客户端或者零占用空间客户端。所述虚拟单元优选地由服务器实例提供,优选地由单个服务器、数据中心或者在分布式地点处具有多个硬件服务器的云来表示。将注意,程序代码可以被适配成更改或者扩展存在于所述计算机上的软件。当该方面的软件产品包括用于执行方法的步骤的程序代码时,设备提供方法所提供的任何优点。特别地,程序代码可以是操作系统、任何种类的软件或应用软件(诸如服务器应用、客户端应用、移动应用、电信软件、路由软件、app)、插件或扩展、更新包或服务包的程序代码,并且可以被包括在安装包中。
本发明还可以由一种用于控制所述方法步骤使得硬件环境在所述计算机程序被加载在所述硬件环境中或者由所述硬件环境执行时实行前述方法的步骤的计算机程序和由一种具有电可读控制信号的数字数据载体来体现,所述电可读控制信号被设计成利用可编程硬件环境来操作以用于控制和实行前述方法的步骤。
附图说明
本发明的另外的特征、目标、优点和细节将从本发明的具体实施例的以下描述以及附图中的相应图示而变得更加显然。明显地,作必要的修改,具体实施例、其变形和修改的特征、目标、优点和细节适应于其它实施例、变形和修改,除非这样的应用明显地违反技术约束或者自然规律。实施例可以与彼此组合,并且可以假定实施例与另一个实施例作为整体或者在其单个特征方面的任何组合构成本发明的实施例。
接下来,参考具体实施例并且参考附图来描述本发明,其中:
图1是示出了本发明的概观的示意图;
图2是示出了当仅一个客户端(设备)参与时的客户端到服务器部署的基本消息传送的示意图;
图3是示出了当多个客户端(设备)有助于服务器侧上的软件更新时的客户端到服务器部署的示意图;
图4是示出了当多个客户端有助于服务器侧软件更新时的错误处置过程的基本示意图。
现在,将参考附图、在本发明的优选示例性实施例中详细地描述本发明。然而,要注意,附图纯粹是示意性的并且不一定按比例。附图和说明书说明了成为本发明的基础的原理,不以任何方式限制它。本发明仅由所附权利要求书限制。
具体实施方式
根据图1,开发者10或者组织更新用于客户端20、21、22的软件。该软件更新包括用于客户端20、21、22的更新,并且另外包含用于顾客的服务器30的服务器侧软件更新的映像。这些软件更新在诸如移动应用商店之类的在线分发平台40中可获得。附图图示了获取所述更新的若干客户端20、21、22(设备),所述更新除客户端20、21、22的软件改变之外还包含服务器侧软件更新的映像。这些客户端20、21、22然后将软件部署到顾客的服务器30。
图2示出了如何利用新的软件来更新客户端20以及客户端20如何通知服务器30关于服务器侧软件更新的映像的可用性的示意图。客户端20通过从在线分发平台40下载客户端-服务器更新以及服务器侧软件更新的映像或者映像的至少部分而接收客户端-服务器更新以及服务器侧软件更新的映像或者映像的至少部分20a。然后设置第一计时器,其中客户端必须批准更新20b。如果该批准20b没有发生,则不存在以下指示:无论怎样都存在也可用于服务器侧的新软件更新。然后设置第二计时器,其中客户端安装/完成更新20c并且登录到服务器30。在该步骤之后,客户端向服务器发送服务器部署请求20d。服务器然后发送对服务器部署请求的确认连同顺序或随机的包编号20e。可选地,服务器可以建立窗口,所述窗口将允许其它客户端也表达其要升级服务器侧软件的请求。服务器30然后向客户端请求包20f,并且客户端随后提供用于服务器的软件更新包20g。在接收到整个映像或者映像的至少部分之后,服务器初始化部署33。
图3图示了当多个客户端20、21、22有助于有创造力的过程时的客户端到服务器部署。在示意图中,可以看出多个客户端20、21、22如何有助于更新服务器侧30上的软件。客户端20相关的通信在箭头形的连续线中描绘,客户端21相关的通信在箭头形的点线中描绘,并且客户端22相关的通信在箭头形的短划线中描绘。在该情况下,服务器30不知道多少个客户端20、21、22将有助于更新/升级过程,因此对于每一个更新请求20d、21d、22d,服务器30发送确认ACK与顺序或随机的包编号20e、21e、22e。客户端20、21、22接收该顺序或随机的包编号并且等待。在接收到针对部署的第一请求20d之后,服务器30建立要等待的时间窗口31,如果其它客户端的其它部署请求将跟随的话。在时间窗口31的期满之后,服务器30将消息发送给参与所牵涉的包20f、21f、22f的总数目的升级过程的所有客户端。在客户端20、21、22已经接收到该数目之后,它们将总映像或者映像的至少部分划分成相等的和/或预确定的和/或随机大小的被划分包,并且仅发送它们在31时间窗口关闭之前已经被通知的一个包20g、21g、22g。随后,在所有包被服务器30接收之后,服务器30然后组合这些包并且初始化部署33。如之前所述,确认消息20e、21e、22e中的包的次序可以是随机的。可以利用这一点以用于增强针对中间人攻击的安全性。
图4图示了根据图3的在多个客户端有助于服务器侧处的软件更新时的客户端到服务器部署的错误处置过程。在该服务器侧升级过程期间,许多方面可能出错,例如:
在服务器30最后请求发送包20f、21f、22f的情况下,客户端20中的一个离线X1;和/或
某个确认消息20e从未到达某个客户端20,使得序列编号丢失X2;和/或
“包的总数目”-消息20f没有到达其目的地X3;和/或
包21g被损坏X4。因为错失序列包或者包损坏,所有这些前述情况X1、X2、X3、X4具有最终服务器30不能够重构整个包的相同影响,因此,当存在重构包的问题32时,所有错误处置将发生在服务器侧30处。每当这样的错误X1、X2、X3、X4发生时,所有可用客户端20、21、22必须在解决错误X1、X2、X3、X4中作出贡献,使得错失的或者损坏的包将从不同的源/客户端20、21、22发送/传送。因此,服务器30向所有可用客户端请求错失的包Y。当服务器30接收到恰当的错失的包Z时,对它进行评估,并且如果它适于使映像完整,则服务器30丢弃所有其它所请求的错失的包,并且服务器随后开始部署33。
参考标记列表:
10 开发者
20、21、22 客户端
20a、21a、22a 接收客户端软件更新以及服务器侧软件更新的映像或者映像的至少部分
20b、21b、22b 批准软件更新
20c、21c、22c 更新/安装软件更新
20d、21d、22d 请求服务器部署
20e、21e、22e 确认服务器部署请求
20f、21f、22f 请求服务器侧软件更新的映像或者映像的至少部分的包
20g、21g、22g 传送服务器侧软件更新的映像或者映像的至少部分的包
30 服务器
31 时间窗口
32 服务器侧重构包的问题
33 开始部署
40 在线分发平台
X1 客户端离线
X2 序列编号丢失X2
X3 发送服务器侧软件更新的映像或者映像的至少部分的包的(多个)请求没有到达其目的地
X4 包被损坏
Y 请求错失的包
Z 传送和收到错失的包
Claims (14)
1.一种用于经由在线分发平台的系统中的客户端到服务器部署的方法,包括以下步骤:
a)在客户端(20)处从在线分发平台(40)接收客户端软件更新以及服务器侧软件更新的映像或者映像的至少部分(20a);
b)通过客户端(20)核实软件更新是否必要来批准软件更新(20b);
c)在客户端上更新/安装(20c)软件更新并且随后登录到服务器(30);
d)由客户端(20)向服务器(30)请求服务器部署(20d);
e)由服务器(30)确认客户端(20)的服务器部署请求(20e);
f)由服务器(30)向客户端(20)请求服务器侧软件更新的映像或者映像的至少部分的包(20f);
g)从客户端(20)向服务器(30)传送服务器侧软件更新的映像或者映像的至少部分的包(20g);以及
h)在服务器(30)上初始化所述部署(33)。
2.如权利要求1中要求保护的方法,其中在线分发平台(40)是在线商店和/或应用商店。
3.如前述权利要求中的任一项中要求保护的方法,其中客户端(20)是设备或移动设备,即移动电话、智能电话、平板、移动PC、智能手表;或者客户端(20)是安装在前述设备中的一个上的应用或软件程序。
4.如前述权利要求中的任一项中要求保护的方法,其中客户端(20)软件更新是应用更新。
5.如前述权利要求中的任一项中要求保护的方法,其中多个客户端(20、21、22)有助于包括以下步骤的服务器部署:
a)在多个客户端(20、21、22)中的至少一个客户端处从在线分发平台(40)接收客户端软件更新以及服务器侧软件更新的映像或者映像的至少部分(20a、21a、22a);
b)通过所述多个客户端(20、21、22)中的所述至少一个客户端核实软件更新是否必要来批准软件更新(20b、21b、22b);
c)在所述多个客户端(20、21、22)中的所述至少一个客户端上更新/安装软件更新(20c、21c、22c)并且随后登录到服务器(30)中;
d)由所述多个客户端(20、21、22)中的所述至少一个客户端向服务器(30)请求服务器部署(20d、21d、22d);
e)由服务器(30)确认所述多个客户端(20、21、22)中的所述至少一个客户端的服务器部署请求(20e、21e、22e);
f)由服务器(30)向所述多个客户端(20、21、22)中的所述至少一个客户端请求服务器侧软件更新的映像或者映像的至少部分的包(20f、21f、22f);
g)从所述多个客户端(20、21、22)中的所述至少一个客户端向服务器(30)传送服务器侧软件更新的映像或者映像的至少部分的包(20g、21g、22g);以及
h)在服务器(30)上初始化所述部署(33)。
6.如前述权利要求中的任一项中要求保护的方法,其中在步骤e)中,服务器(30)向每一个客户端(20、21、22)发送确认(20e、21e、22e)连同单独的顺序或随机的包编号。
7.如前述权利要求中的任一项中要求保护的方法,其中在步骤d)之后,服务器(30)建立等待时间(31),以最终从其它客户端(20、21、22)接收服务器部署的更多请求(20d、21d、22d)。
8.如前述权利要求中的任一项中要求保护的方法,其中服务器(30)是多个服务器中的一个。
9.如前述权利要求中的任一项中要求保护的方法,其中在步骤g)中,服务器(30)如果由于错失的序列包或包损坏(X1、X2、X3、X4)而不能够重构服务器侧软件更新的整个映像(32),则方法进一步包括步骤:
- 向服务器部署中所牵涉的系统中的所有可用客户端(20、21、22)请求错失的序列包(Y)以使服务器侧软件更新的映像完整;
- 从可用客户端(20、21、22)向服务器(30)传送错失的包(Z);
- 初始化所述部署(33)。
10.一种用于根据权利要求1所述的方法的客户端到服务器部署的系统,包括:
客户端(20);
服务器(30);
在线分发平台(40),其用来下载客户端软件更新以及服务器侧软件更新的映像或者映像的至少部分;
其中客户端(20)能够访问在线分发平台(40)并且能够从该在线分发平台(40)下载客户端软件更新以及服务器侧软件更新的映像或者映像的至少部分(20a),客户端(20)能够在客户端软件更新必要时批准(20b)、能够安装软件更新(20c)并且能够登录到服务器以请求服务器部署(20d);
其中服务器(30)能够确认客户端(20)的服务器部署请求(20e),并且能够向客户端(20)请求服务器侧软件更新的映像或者映像的至少部分的包(20f);以及
其中客户端(20)能够从客户端(20)向服务器(30)传送服务器侧软件更新的映像或者映像的至少部分的包(20g);并且服务器(30)能够初始化所述部署(33)。
11.如权利要求10中要求保护的系统,其中客户端(20)是在系统中实现的多个客户端(20、21、22)中的至少一个,和/或其中服务器(30)是在系统中实现的多个服务器中的至少一个。
12.如权利要求10或11中要求保护的系统,其中在线分发商店(40)是应用商店,和/或客户端(20、21、22)是设备或者移动设备,即移动电话、智能电话、平板、移动PC、智能手表,和/或客户端(20、21、22)是安装在前述设备中的一个上的应用,和/或其中客户端软件更新是应用更新。
13.如权利要求10到12中要求保护的系统,其中在服务器由于错失的序列包或者包损坏(X1、X2、X3、X4)而不能够重构服务器侧软件更新的整个映像或者映像的至少部分(32)的情况下,服务器能够向服务器部署中所牵涉的系统中的所有可用客户端(20、21、22)请求错失的序列包(Y)以使服务器侧软件更新的映像或者映像的至少部分完整;可用客户端(20、21、22)能够向服务器(30)传送错失的包(Z);并且服务器(30)能够初始化所述部署(33)。
14.一种用于控制根据权利要求1到9所述的方法和/或用于控制根据权利要求10到13所述的系统的系统操作的计算机程序产品,其中计算机程序产品控制步骤使得硬件环境在所述计算机程序被加载在所述硬件环境中或者由所述硬件环境执行时以及通过具有电可读控制信号的数字数据载体,实行根据权利要求1到9所述的方法的步骤,所述电可读控制信号被设计成利用可编程硬件环境来操作以用于控制和执行根据权利要求1到9所述的方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17186175.0A EP3444719B1 (en) | 2017-08-14 | 2017-08-14 | Method and system for a client to server deployment via an online distribution platform |
EP17186175.0 | 2017-08-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109388407A true CN109388407A (zh) | 2019-02-26 |
Family
ID=59677042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810921488.XA Pending CN109388407A (zh) | 2017-08-14 | 2018-08-14 | 用于经由在线分发平台的客户端到服务器部署的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (3) | US10437582B2 (zh) |
EP (1) | EP3444719B1 (zh) |
CN (1) | CN109388407A (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200104173A1 (en) * | 2018-09-29 | 2020-04-02 | CA Software Österreich GmbH | Communication process load balancing in an automation engine |
US11671835B2 (en) | 2019-05-06 | 2023-06-06 | Apple Inc. | Standalone wearable device configuration and interface |
US11528271B2 (en) | 2019-05-06 | 2022-12-13 | Apple Inc. | Authenticating and creating accounts on behalf of another user |
US11669883B2 (en) | 2019-06-01 | 2023-06-06 | Apple Inc. | Security model and interface for digital purchases on a wearable device |
US11102056B1 (en) * | 2020-06-29 | 2021-08-24 | Unify Patente Gmbh & Co. Kg | Method for requesting connection in a blue-green deployment, method for performing a switchover in a blue-green deployment, and client-server system configured for blue-green deployment |
CN111930398B (zh) * | 2020-07-24 | 2023-06-27 | 北京柠檬微趣科技股份有限公司 | 应用程序更新方法、装置、系统、介质及设备 |
CN111625268B (zh) * | 2020-07-28 | 2021-02-12 | 北京升鑫网络科技有限公司 | 一种软件补丁快速扫描的方法、装置及计算设备 |
US11201604B1 (en) | 2021-02-24 | 2021-12-14 | North China Power Electric University | Resampling algorithm based on window function |
CN114385215B (zh) * | 2022-03-25 | 2022-06-24 | 江铃汽车股份有限公司 | 软件升级方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020084056A1 (en) * | 1998-02-13 | 2002-07-04 | Pechiney Rhenalu | Aluminium alloy strips with high surface homogeneity and method for making same |
EP1420339A1 (de) * | 2002-11-13 | 2004-05-19 | Siemens Aktiengesellschaft | Verfahren zur Handhabung von Programm- und/oder Datenfiles |
US20120017207A1 (en) * | 2009-09-30 | 2012-01-19 | Amitt Mahajan | Apparatuses, Methods and Systems for a Social Networking Application Updater |
CN102479097A (zh) * | 2010-11-26 | 2012-05-30 | 中国科学院声学研究所 | 一种支持多级加载的安全嵌入式操作系统 |
CN104283878A (zh) * | 2014-09-30 | 2015-01-14 | 深圳万兴信息科技股份有限公司 | 基于云服务的安全型移动终端及其访问云服务器的方法 |
US20160188311A1 (en) * | 2014-12-30 | 2016-06-30 | Sling Media Inc. | Automated application installation on media players and other controlled devices |
US20160253167A1 (en) * | 2014-02-07 | 2016-09-01 | Vmware, Inc. | Desktop image management for virtual desktops |
CN106790432A (zh) * | 2016-12-05 | 2017-05-31 | 广州谷得网络科技有限公司 | 一种软件更新方法及装置 |
CN106953898A (zh) * | 2017-02-28 | 2017-07-14 | 腾讯科技(深圳)有限公司 | 一种获取软件包的方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6202207B1 (en) * | 1998-01-28 | 2001-03-13 | International Business Machines Corporation | Method and a mechanism for synchronized updating of interoperating software |
AU2002365257A1 (en) * | 2001-10-26 | 2003-07-24 | Zeosoft Corporation | Development, management of distributed clients and servers |
US7555749B2 (en) * | 2003-03-10 | 2009-06-30 | Microsoft Corporation | Software updating system and method |
US20060030292A1 (en) * | 2004-05-20 | 2006-02-09 | Bea Systems, Inc. | Client programming for mobile client |
KR101190314B1 (ko) | 2010-12-24 | 2012-10-12 | 동의대학교 산학협력단 | 스마트 폰 앱을 이용한 펌웨어 업데이트 시스템 및 방법 |
US9158520B2 (en) * | 2011-12-07 | 2015-10-13 | Yahoo! Inc. | Development of platform independent applications |
US9804994B2 (en) * | 2013-03-15 | 2017-10-31 | Microsoft Technology Licensing, Llc | Application architecture supporting multiple services and caching |
-
2017
- 2017-08-14 EP EP17186175.0A patent/EP3444719B1/en active Active
-
2018
- 2018-08-03 US US16/053,982 patent/US10437582B2/en active Active
- 2018-08-14 CN CN201810921488.XA patent/CN109388407A/zh active Pending
-
2019
- 2019-08-23 US US16/549,518 patent/US10824416B2/en active Active
-
2020
- 2020-09-29 US US17/036,440 patent/US11106453B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020084056A1 (en) * | 1998-02-13 | 2002-07-04 | Pechiney Rhenalu | Aluminium alloy strips with high surface homogeneity and method for making same |
EP1420339A1 (de) * | 2002-11-13 | 2004-05-19 | Siemens Aktiengesellschaft | Verfahren zur Handhabung von Programm- und/oder Datenfiles |
US20120017207A1 (en) * | 2009-09-30 | 2012-01-19 | Amitt Mahajan | Apparatuses, Methods and Systems for a Social Networking Application Updater |
CN102479097A (zh) * | 2010-11-26 | 2012-05-30 | 中国科学院声学研究所 | 一种支持多级加载的安全嵌入式操作系统 |
US20160253167A1 (en) * | 2014-02-07 | 2016-09-01 | Vmware, Inc. | Desktop image management for virtual desktops |
CN104283878A (zh) * | 2014-09-30 | 2015-01-14 | 深圳万兴信息科技股份有限公司 | 基于云服务的安全型移动终端及其访问云服务器的方法 |
US20160188311A1 (en) * | 2014-12-30 | 2016-06-30 | Sling Media Inc. | Automated application installation on media players and other controlled devices |
CN106790432A (zh) * | 2016-12-05 | 2017-05-31 | 广州谷得网络科技有限公司 | 一种软件更新方法及装置 |
CN106953898A (zh) * | 2017-02-28 | 2017-07-14 | 腾讯科技(深圳)有限公司 | 一种获取软件包的方法和装置 |
Non-Patent Citations (2)
Title |
---|
E. BOROWSKY、 A. LOGAN、 R. SIGNORILE: "Leveraging the Client-Server Model in P2P: Managing Concurrent File Updates in a P2P System", 《ADVANCED INT"L CONFERENCE ON TELECOMMUNICATIONS AND INT"L CONFERENCE ON INTERNET AND WEB APPLICATIONS AND SERVICES (AICT-ICIW"06)》 * |
孟强龙,周冬青,邵俊: "信息内网计算机操作系统补丁更新研究", 《信息化建设》 * |
Also Published As
Publication number | Publication date |
---|---|
US11106453B2 (en) | 2021-08-31 |
EP3444719A1 (en) | 2019-02-20 |
EP3444719B1 (en) | 2021-07-21 |
US10824416B2 (en) | 2020-11-03 |
US20190377568A1 (en) | 2019-12-12 |
US10437582B2 (en) | 2019-10-08 |
US20190050218A1 (en) | 2019-02-14 |
US20210011707A1 (en) | 2021-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109388407A (zh) | 用于经由在线分发平台的客户端到服务器部署的方法和系统 | |
US11637837B2 (en) | Secure, non-disruptive firmware updating | |
CN104094226B (zh) | 使用部署配置文件自动更新客户端设备上的应用或者驱动 | |
US9092243B2 (en) | Managing a software appliance | |
CN103825950B (zh) | 一种基于云平台同步联系人的方法及系统 | |
US7937699B2 (en) | Unattended upgrade for a network appliance | |
US11169815B2 (en) | Method and system for automation tool set for server maintenance actions | |
US20090113414A1 (en) | Computer administration deployment system | |
JP2010503918A (ja) | 機器管理エージェント及び動的リンクライブラリによる無線データ端末装置上でのアプリケーション管理を行うシステム及び方法 | |
CN102549561A (zh) | 远程装置诊断和修复设备和方法 | |
CN105208047B (zh) | 分布式系统服务器上下线方法及服务器 | |
US11868787B2 (en) | Managing persistent enrollment of a user device | |
CN105245606A (zh) | 云办公平台 | |
CN109725950B (zh) | 一种实现客户端单实例运行的方法、装置及存储介质 | |
CN106230843A (zh) | 一种为智能手机配置云虚拟手机的方法、服务器和系统 | |
KR20160013884A (ko) | 온라인 스토어를 통해 소프트웨어 컴포넌트를 업데이트하는 기법 | |
US20090063685A1 (en) | Secure computer working environment utilizing a read-only bootable media | |
US10380345B2 (en) | Delivering configuration based security and process workflows | |
CN106487815A (zh) | 一种基于白名单的容器运行安全验证处理方法及系统 | |
US20160335421A1 (en) | Information Handling System License Management Through NFC | |
KR20180050001A (ko) | 사물인터넷 기기의 펌웨어 업그레이드 시스템 및 방법 | |
KR102124330B1 (ko) | 어플리케이션 업데이트 방법 및 이를 지원하는 단말 | |
CN105094896B (zh) | 虚拟化平台上客户端启动方法、设备和系统 | |
CN108694489A (zh) | 用于对评估平台进行审计的方法和系统 | |
KR100741369B1 (ko) | 컴퓨터 원격 제어 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190226 |
|
WD01 | Invention patent application deemed withdrawn after publication |