CN106663013B - 针对服务升级的动态调整步调 - Google Patents
针对服务升级的动态调整步调 Download PDFInfo
- Publication number
- CN106663013B CN106663013B CN201580031177.0A CN201580031177A CN106663013B CN 106663013 B CN106663013 B CN 106663013B CN 201580031177 A CN201580031177 A CN 201580031177A CN 106663013 B CN106663013 B CN 106663013B
- Authority
- CN
- China
- Prior art keywords
- upgrading
- service
- deployment
- software
- service identifier
- 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
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本文中公开的是用于增强关于软件服务部署的升级过程的系统、方法和软件。在至少一个实现方式中,呈现了到用于管理软件服务的初始部署的管理端口的用户接口并且在其中显现升级可用的通知。响应于对用户接口中的通知的选择,在用户接口中显现用于控制关于初始部署的服务组件的升级的步调的升级控件。至少部分地基于经由升级控件指定的升级的步调来将升级递增地应用到服务组件。
Description
技术领域
本公开内容的方面涉及计算硬件和软件技术,并且具体地涉及对服务升级动态调整步调。
背景技术
软件应用和解决方案越来越多地被交付为来自数据中心和俗称为云的其他远程计算环境的服务。将软件部署在云中允许组织容易地扩大或缩小以适应需求。软件解决方案有时经由由软件供应商托管的公共云被交付,但是也可以经由私有云或以某种混合方式来被交付。
升级这样的软件解决方案可以是具有挑战性的工作,尤其是当考虑许多部署的规模时。当软件部署临时被关闭以适应更新时可能发生大量的故障时间和损失的生产力。另外,租户可能已经对其给定软件解决方案的部署做出的定制可能通过升级而被丢失或导致无效。
以一定规模操作的许多软件提供者不向它们的客户给予对何时升级给定软件解决方案的控制。例如,一些基于云的电子邮件解决方案常规地从一个版本被自动地升级到下一版本,而不允许客户控制如何或何时应用升级。
各种升级技术已经尝试缓解这些挑战。在一个示例中,当服务部署被调度为要被升级时,租户可以被提前通知并且可以因此准备测试。可以向其部署软件的升级版本的测试环境可以被创建。租户数据可以被移植到测试环境中并且向选定的人员群体提供访问使得能够针对各种租户情景和定制来测试软件的新的特征和功能。一旦对新的软件给予批准,则测试环境被拆除并且完全新的构建被启动,伴随租户的数据被并入到其中。
在简单的示例中,协作软件服务的租户部署可以跨物理或虚拟服务器群而被实例化。当升级可用时,租户可以启动向其部署协作服务的升级版本的另一服务器群(通常为虚拟的)。一旦升级被租户测试和批准,则服务器群就被拆除,新的服务器群被创建,并且协作服务被部署到新的服务器群。
发明内容
本文中提供的是用于增强关于软件服务部署的升级过程的系统、方法和软件。本文中描述的各种实现方式使得租户能够控制他们的升级进行的步调。
在至少一个实现方式中,呈现了到用于管理软件服务的初始部署的管理端口的用户接口并且在其中显现升级可用的通知。响应于对用户接口中的通知的选择,在用户接口中显现用于控制关于初始部署的服务组件的升级的步调的升级控件。至少部分地基于经由升级控件指定的升级的步调来将升级递增地应用到服务组件。
提供本概述从而以简化的形式介绍下面在具体实施方式中进一步描述的一系列概念。可以理解,本概述不旨在标识要求保护的主题的关键特征或必要特征,也不旨在用于限制要求保护的主题的范围。
附图说明
可以参考以下附图更好地理解本公开内容的许多方面。尽管结合这些附图描述了若干实现方式,但是本公开内容不限于本文中公开的实现方式。相反,意图是要涵盖所有备选方案、修改和等效方案。
图1图示了实现方式中的服务体系结构。
图2图示了实现方式中的升级过程。
图3图示了实现方式中的操作情景。
图4图示了实现方式中的升级的初始阶段。
图5图示了实现方式中的升级的中间阶段。
图6图示了实现方式中的升级的最终阶段。
图7图示了实现方式中的升级的初始阶段。
图8图示了实现方式中的升级的最终阶段。
图9图示了适合于实现本文中关于图1-9所公开的并且在下面的具体实施方式中讨论的应用、服务、过程、体系结构、阶段和操作情景中的任一项的计算系统。
具体实施方式
本文中所公开的实现方式实现对软件服务部署的升级的自定步调。在本文中描述的各种实现方式中,管理人员可以与管理端口交互以控制何时进行对软件服务的租户部署的升级。
除了控制升级的步调之外,租户可以在每个组件的基础上增量地推进升级。租户可以在服务组件水平处指定要升级租户部署的哪些部分以及何时升级,而不是必须将升级部署的完整构建一次全部铺开。
可以通过当升级正在进行中时允许租户人员在部署之间巡览的灵活服务标识符来提供对升级部署的访问。取决于租户的满意水平,升级可以被方便地超前或回滚。一旦升级被完成和批准,则在评价阶段期间移植的测试数据或其他数据可以被保留在升级部署中。
在至少一个实现方式中,一种用于对软件服务部署的升级动态调整步调的方法包括,在到用于管理软件服务的初始部署的管理端口的用户接口中显现升级可用于初始部署的通知。响应于对用户接口中的通知的选择,在用户接口中呈现用于控制关于初始部署的服务组件的升级的步调的升级控件。可以至少部分地基于经由升级控件指定的升级的步调来将升级递增地应用到服务组件。
在一些实施方式中,可以启动软件服务的升级部署,其中当由升级的步调指定时服务组件中的每个服务组件可以被加载。在适当的情况下升级还可以被应用到每个服务组件。
对软件服务的初始部署的访问可以通过解析为初始部署的服务标识符的方式被提供。以这种方式,从初始部署远程运行的服务应用可以使用服务标识符与初始部署通信。在随着升级向前推进时,可以建立与服务标识符不同的并且解析为升级部署的临时服务标识符,使得服务应用的至少一部分可以使用临时服务标识符与升级部署通信。
在完成升级时,服务标识符可以被改变以解析为升级部署而非初始部署,使得服务应用可以使用服务标识符与升级部署通信。服务标识符的示例是初始地解析为与初始部署相关联的互联网协议(IP)地址的统一资源定位符(URL)。临时服务标识符的示例是解析为与升级部署相关联的第二IP地址的第二URL。鉴于第一URL可以在升级之前解析为路由至初始部署的第一IP地址,在升级完成之后第一URL将解析为路由至软件服务的升级部署的第二不同的IP地址。
在一些实现方式中,软件服务包括具有与软件服务的多个部署相关联的多个租户的多租户环境。在示例中,初始部署和升级部署可以与多个租户中的特定租户相关联,在这种情况下,URL可以包括软件服务的名称和该租户的名称。第二URL还可以包括软件服务的名称和该租户的名称,并且另外还可以包括表示临时服务标识符的临时状态的字符串。例如,如果URL是“contoso.service.com”,则第二URL可以为“contoso-test.service.com”。其他标识符也是可能的并且可以被认为是在本公开内容的范围内。
软件服务的示例包括生产力应用服务(例如,文字处理、电子表格以及演示应用服务)、电子邮件服务、统一通信服务、关系管理服务、数据库服务和在线协作服务,以及任何其他类型的软件服务。在协作服务的情况下,服务组件的示例包括协作应用或模块、由软件服务的初始部署托管并且在应用升级之后由软件服务的升级部署托管的协作站点。其他示例包括站点集、文档存储库、定制代码、小应用程序以及微件。
现在转到图1,服务体系结构100包括应用平台101、应用平台111和应用平台131。服务应用103运行在应用平台101上并允许用户107经由用户接口105访问软件服务123。服务应用113被实现在应用平台111上并向用户117提供到软件服务123的用户接口115。应用平台131运行服务应用133,服务应用133还提供到软件服务123的用户接口135。
由管理员137表示的管理人员能够经由用户接口135访问管理端口141。软件服务123被实现在服务平台121上并且包括服务组件125、服务组件127和服务组件129。
在操作时,用户107和117通过用户接口105和115与软件服务123互动,用户接口105和115分别由服务应用103和113渲染在应用平台101和111上。管理员137可以经由用户接口135与软件服务123交互以代表租户来配置软件服务123。管理员137可以例如添加或移除用户、配置服务设置或以其他方式管理软件服务123的部署。
升级可能不时地变得可用。当升级可用于软件服务123时,软件服务123(或某个其他应用)可以将在用户接口135中并且尤其是在管理端口141中显现的通知传达到服务应用133。在管理端口141中显现的通知143可以包括可选择以显现更新控件的控件,由更新控件145和更新控件147表示。更新控件可以由管理员137用以配置用于升级软件服务123的过程。
图2图示了表示可以运行在服务平台121或其他地方上的过程的升级过程200,以便于支持软件服务123从一个版本到下一版本的升级。由升级过程200提供的功能可以以程序指令被体现为升级服务、应用或模块。程序指令可以被实现为独立服务、应用或模块,或者可以以分布式方式跨多个服务、应用、或模块或者其任何组合或变型来被实现。如以程序指令被体现为服务、应用或模块的升级过程200可以被实现为表示图9中图示的计算系统900的适当的计算设备或设备集上。
下面顺带指出图2中图示的步骤,尽管可以认识到其他步骤能够被包括在升级过程200中。开始,升级过程200标识进行对软件服务123的升级的步调(步骤201)。步调可以由管理员137经由管理端口141中的更新控件145和147限定。管理员137可以指定升级的各个方面,诸如首先利用哪些组件进行、何时利用每个组件进行等等。
一旦已经指定了升级的步调,则升级过程200建立针对可能已经启动的支持升级的升级部署的临时服务标识符(步骤203)。临时标识符可以相对于由服务应用103和113用于访问软件服务123的服务标识符不同。
在启动升级部署并且建立了临时标识符之后,根据由管理员137指定的升级的步调关于每个服务组件增量地应用升级(步骤205)。当每个服务组件被加载在升级部署中并被评价时,做出对服务组件的升级是否成功的确定(步骤207)。这样的确定可以由管理员137主观地做出并且通过用户输入被传达到升级过程200。然而,这样的确定可以由升级过程200或能够评价升级的优点的某个其他过程自动地做出。
在这一点上,如果对特定服务组件的升级被认为是不成功的,则升级过程200可以暂停以向租户提供回滚升级的机会或者暂停升级直到使得能够被应用到服务组件的代码修正可用。如果回滚发生,则升级过程200可以关于相同服务组件继续。然而,还可能的是,升级过程200被引导为利用另一服务组件进行。
如果对给定服务组件的升级被认为是成功的,则升级过程200进行至另一服务组件。该循环可以重复直到升级被解散或者直到不再有要被升级的服务组件,其确定可以由升级过程200自动地或利用用户输入来做出(步骤209)。最终,软件服务的初始部署中的服务组件中的全部服务组件或升级可以应用到的服务组件中的全部服务组件被升级。初始地被解析为初始部署的服务标识符可以被改变以解析为软件服务的升级部署(步骤211)。
图3图示了用于支持本文中提出的各种概念和原理的实现方式的操作情景300。操作情景300包括软件服务的初始部署321。初始部署321包括服务组件325、服务组件327和服务组件329。在初始阶段301期间,对初始部署321的升级的步调已经由管理人员限定。在该情景中的步调指定升级首先利用服务组件329进行,接着是服务组件327,并且然后是服务组件325。这样的步调允许与初始部署321相关联的租户在向前推进升级的剩余部分之前在每个组件的基础上评价升级的优点。注意,服务标识符alpha.service.com与初始部署321相关联并且用于将流量路由至初始部署321。
一旦已经指定了升级的步调,则在下一阶段303期间升级开始。在该阶段处,服务标识符保持被解析为初始部署321。软件服务的升级部署322已经被启动并且服务组件329被加载在其中。服务组件329还可以在初始部署321中保持可操作,尽管其能够可选地被禁用。临时服务标识符alpha-test.service.com已经被创建并解析为升级部署322。以这种方式,租户人员可以访问服务组件329的升级版本以便测试其特征和功能。
假定服务组件329的升级被批准,则升级进行至阶段305,在阶段305期间服务组件327被加载到升级部署322中并且其本身被升级(在其能够被升级的程度上)。正如服务组件329,服务组件327被加载到升级部署322中。服务组件327可以在初始部署321中保持可操作或能够被禁用。
在阶段307处,服务组件325被加载到升级部署322中并且在升级部署322的上下文中被升级。服务组件325可以在初始部署321中保持可操作。然而,一旦对服务组件325的升级被认为是成功的,则软件服务的初始部署321的整体将已经被升级。因此,服务标识符可以被改变以解析为升级部署322。以这种方式,先前已经被引导到初始部署321的流量将被引导至正在向前推进的升级部署322。临时服务标识符可以被禁用,但是可以可选地保持于服务中。
图4-6图示了如关于协作服务应用的升级过程中的各种阶段。参考图4,在升级过程的初始阶段400期间,访问系统401提供对协作服务403的访问。服务标识符alpha.service.com由服务应用用于做出通过访问系统401被路由的协作服务403的请求。访问系统401的示例是来自F5的负载均衡器。
在初始阶段400期间协作服务403根据版本n来被部署。协作服务403与租户内容405接口连接,租户内容405可以包括实时数据库407。换言之,与(应用平台上的)服务应用交互的用户通过协作服务403与存储在实时数据库407中的数据和其他内容互动。用户可以诸如通过联合地编辑或共享文档、查看协作站点等等来在数据上协作。来自的Docs、来自的以及来自的是协作服务的示例。
升级过程可以进行到图5中图示的中间阶段500。在该阶段处,升级的步调已经由管理人员限定并且升级正在相应地前进。临时标识符已经被创建(alpha-test.service.com),如由协作服务404(版本n+1)表示的,协作服务403的升级版本已经被实例化。另外,租户内容406已经被实例化,其包括用于人员来交互的测试数据库408。
站点图410也已经在该情景中被建立。站点图410允许租户内容405被双重安装使得其中的至少一些经由除了协作服务403之外的协作服务404可访问。在一些实现方式中,站点图410被用于关联或重定义租户内容405,使得在一段时间内,其变成租户内容406。站点图410可以在升级过程的进程期间被改变以将实时数据库407链接到协作服务404,而非实际上复制和移动包括在租户内容405中的数据。因此,在测试数据库408被称为“测试”数据时,可以认识到,数据可以实际上为实时数据的实例并且一旦升级完成就可以被认为是实时数据。这允许在升级过程期间的服务的连续性。一旦升级过程完成,使用临时服务标识符与测试数据库408交互的人员就能够继续在相同的状态中与相同的数据交互。利用站点图410还允许在升级中的任何阶段被回滚而不丢失数据或其他定制。
总体上,使用服务标识符通信的请求和其他交互由访问系统401路由至协作服务403。因此,请求和交互被应用到租户内容405和实时数据库407。同时,使用临时服务标识符通信的请求和其他交互由访问系统401路由至协作服务404,其是协作服务403的升级版本。请求和交互将通常使用租户内容406和测试数据库408来处理,尽管租户内容405和测试数据库407能够由协作服务404访问。
最终升级过程被完成并且对协作服务403的更新被批准。在图6中图示的该最终阶段600处,访问系统401可以通过任一服务标识符到达,尽管临时服务标识符可能被停用。更确切地说,主服务标识符alpha.service.com被解析为协作服务404,而非协作服务403。实际上,协作服务403可以在此刻被拆除。实时数据库407有效地被迁移到经由协作服务404可访问的租户内容406中。租户内容406因此包括实时数据库407和测试数据库408,其如提到的可以被认为是实时数据,尤其在升级过程的完成之后。
图7-8图示了在备选实现方式中的另一升级过程的各个阶段。如阶段700中所示,访问系统701提供对服务的两个版本的访问:服务703(版本n)和服务704(版本n+1)。用户可以使用URL www.service.com来访问服务703,而可以使用URL www.service-test.com来访问服务704。注意,针对服务704的URL包括相对于针对服务703的URL的经修改的域名。服务703和服务704的示例包括电子邮件服务、游戏服务、统一通信服务、协作服务、社交联网服务以及任何其他类型的软件服务。
服务703和服务704两者被链接到用户内容705。因此,无论用户是经由服务703还是经由服务704接近用户内容705,在两种情况下他或她将能够与用户数据库707中的他的或她的数据交互。
可以认识到,服务704是服务703的升级版本。可以向用户提供到服务的不同的路径以允许他们体验该服务或以其他方式评价该服务。
图8中的阶段800图示了一旦个体用户决定她想要在向前推进的基础上使用服务的升级版本(服务704)可能发生什么。用户可以与管理或设置端口交互以指示服务的哪个版本是她偏好的版本。假设用户期望向前推进服务704(版本n+1),则访问系统701可以被配置为将请求路由至针对该用户的服务704的www.service.com。换言之,访问系统701可以被配置为在每个用户的基础上不同地路由URL。
更一般地,可以考虑其中两个用户(用户A和用户B)订阅在线服务的示例。在线服务的第一版本可以使用第一URL来被访问,而服务的第二版本可以使用第二URL来被访问,第二URL为第一URL的经修改的表示。
可以在到服务的第一版本的登录屏幕或其他用户接口中通知用户作为升级的服务的第二版本可用。用户可以点击或以其他方式选择通知以启动管理屏幕。在管理屏幕中,用户可以被报告针对服务的第二版本的URL。另外,可以呈现用于将服务的第二版本作为向前推进的他们的主要版本的选项。
然而,在将第二版本作为他们的主要版本之前,用户可能期望利用服务的第二版本。他们通过使用用于巡览至服务的第二版本的第二URL来这样做。用户的数据可以经由服务的任一版本来访问,并且因此他们几乎不会经历各版本之间的不连续性。
最终,给定用户可能期望将服务的新的第二版本作为他们的主要服务。因此,用户可以在管理端口中做出选择,该选择有效地改变URL和针对该用户的服务之间的关联。向前推进,第一URL将向该用户提供对服务的第二版本的访问。假设另一用户尚未做出这样的选择,第一URL将继续向用户提供对服务的第一版本的访问。
这样的布置可以通过将两个URL解析为与访问系统相关联的相同IP地址来完成。因此,无论哪个URL最初由用户(经由适当的应用平台)用于到达服务的一个版本或另一版本,它们的通信将到达相同的访问系统。访问系统可以询问应用平台和/或运行在其上的应用服务以确定哪个URL被用于发起通信。备选地,原始URL可以被包括在被寻址到针对访问系统的IP地址的通信中。
访问系统可以在每个用户的基础上查找将用户路由至哪个服务。标识用户可以通过向用户呈现单个登录页面来完成,该单个页面被呈现给任何用户(无论他们使用哪个URL)。换言之,登录页面可以跨服务的版本是相同的。
取决于被提供在登录页面中的用户的身份,结合用于初始地路由至访问系统的URL,访问系统(或者与其相关联的或在其后面运行的某个其他子系统)可以将用户路由至设备的适当的版本。因此,尝试利用URL访问服务的一个用户可以被路由至服务的一个版本,而尝试利用相同URL访问服务的另一用户可以被路由至服务的不同版本。
可以认识到,用户经由在服务的上下文中向他们提供的设置或管理菜单来控制服务的哪个版本是他们的主要版本。另外,在升级评价阶段期间,两个URL可用于用户,使得用户能够利用服务的各种特征和功能。这样的布置允许用户在个性化的基础上有效地控制服务升级的步调。一旦用户对升级满意,则用户可以简单地巡览至用于改变URL与服务版本之间的关联的设置菜单。
可以从图1-8的前述讨论中认识到,当实现如本文中讨论的增强的升级过程时可以实现各种技术效果。允许租户或用户控制升级进展的步调,减少通常与升级相关联的故障时间并且缓解与损失的生产力相关联的问题。另外,否则将通过必须建立和拆除升级的软件服务的实例而消耗的资源能够通过将租户以他们自己的步调从初始部署温和地转变到软件服务的升级部署来缓解或避免。
返回参考图1,应用平台101、111和132各自表示分别能够运行服务应用103、113和133的任何物理或虚拟计算系统、设备或其集合。示例包括但不限于图9中图示的计算系统901所表示的智能电话、膝上型计算机、平板计算机、台式计算机、混合计算机、游戏机、电视、娱乐设备和虚拟机,及其任何变型或组合。
服务应用103、113和133各自表示能够实现到软件服务123的用户接口105、115和135的任何软件应用、模块、组件或其集合。示例包括但不限于web浏览器、电子邮件应用、实时通信应用、博客和微博应用、社交联网应用、电子商务应用、抗病毒应用和游戏应用以及能够渲染用户接口的任何其他类型的应用。服务应用103、113和133可以是在浏览器应用的上下文中执行的基于浏览器的应用。在一些实现方式中,服务应用103、113和133可以在网页或网站的上下文中执行或与网页或网站相关联地执行。服务应用103、113和133各自可以是本地安装和执行的应用、流传输的应用、移动应用或其任何组合或变型。服务应用103、113和133可以各自被实现为独立应用或可以跨多个应用分布。
服务平台121表示能够托管软件服务130中的全部或部分并且实现升级过程200中的全部或部分的任何物理或虚拟计算系统、设备或其集合。服务平台121的示例包括但不限于图9中图示的计算系统901所表示的服务器计算机、web服务器、应用服务器、机架服务器、刀片服务器、虚拟机服务器或塔式服务器以及任何其他类型的计算系统。在一些情景中,服务平台121可以被实现在数据中心、虚拟数据中心或某种其他适当的设施中。
图9图示了表示可以在其中实现本文中公开的各种操作体系结构、阶段、情景和过程的任何系统或系统的集合的计算系统901。计算系统901的示例包括但不限于智能电话、膝上型计算机、平板计算机、台式计算机、混合计算机、游戏机、虚拟机、智能电视、智能手表和其他可穿戴设备及其任何变型或组合。其他示例包括服务器计算机、机架服务器、web服务器、云计算平台和数据中心设备、以及任何其他类型的物理或虚拟服务器机器、以及任何变型或组合。
计算系统901可以被实现为单个装置、系统或设备或者可以以分布式方式被实现为多个装置、系统或设备。计算系统901包括但不限于处理系统902、存储系统903、软件905、通信接口系统907和用户接口系统909。处理系统902与存储系统903、通信接口系统907和用户接口系统909操作性地耦合。
处理系统902从存储系统903加载并执行软件905。软件905至少包括升级过程906,其表示关于前述实现方式讨论的升级过程200。当由处理系统902执行以增强如何升级软件服务时,软件905引导处理系统902以如本文中描述的针对前述实现方式中的至少各种过程、操作情景和序列操作。计算系统901可以可选地包括出于简洁的目的未讨论的附加的设备、特征或功能。
仍然参考图9,处理系统902可以包括从存储系统903获取并执行软件905的微处理器和其他电路。处理系统902可以被实现在单个处理设备内,但是也可以跨在执行程序指令中协作的多个处理设备或子系统分布。处理系统902的示例包括通用中央处理单元、专用处理器和逻辑器件,以及任何其他类型的处理设备、其组合或变型。
存储系统903可以包括由处理系统902可读取的并且能够存储软件905的任何计算机可读存储介质。存储系统903可以包括以用于存储信息的任何方法或技术(诸如计算机可读指令、数据结构、程序模块或其他数据)实现的易失性存储器和非易失性存储器、可移除介质和不可移除介质。存储介质的示例包括随机访问存储器、只读存储器、磁盘、光盘、闪存、虚拟存储器和非虚拟存储区、磁带盒、磁带、磁盘存储或其他磁性存储设备、或任何其他适当的存储介质。在任何情况下计算机可读存储介质都不是传播信号。
除了计算机可读存储介质之外,在一些实现方式中,存储系统903还可以包括计算机可读通信介质,软件905中的至少一些可以内部地或外部地通过计算机可读通信介质进行通信。存储系统903可以被实现为单个存储设备,但是也可以跨相对于彼此共同定位或分布的多个存储设备或子系统来被实现。存储系统903可以包括附加的元件,诸如能够与处理系统902或可能与其他系统通信的控制器。
软件905可以以程序指令来被实现,并且尤其可以当由处理系统902运行时引导处理系统902以如关于本文中图示的各种操作情景、序列和过程描述的那样操作。例如,软件905可以包括用于实现升级过程200及其相关联的功能的程序指令。
具体地,程序指令可以包括协作或以其他方式交互以执行本文中描述的各种过程和操作情景的各种组件或模块。各种组件或模块可以以经编译或解释的指令、或以指令的某种其他变型或组合来体现。可以以同步方式或异步方式、顺序地或并行地、在单线程或多线程环境中、或根据其任何其他适当的执行范式、变型或组合来执行各种组件或模块。软件905可以包括附加的过程、程序或组件,诸如操作系统软件或其他应用软件,除了或包括升级过程906。软件905还可以包括由处理系统902可执行的固件或某种其他形式的机器可读处理指令。
总体上,软件905可以当被加载到处理系统902中并且被执行时将(计算系统901所表示的)适当的装置、系统或设备从通用计算系统整体变换成被定制用于支持针对软件服务的增强的升级的专用计算系统。实际上,将软件905编码在存储系统903上可以变换存储系统903的物理结构。物理结构的具体变换可以取决于本说明书中的不同实现方式的各种因素。这样的因素的示例可以包括但不限于用于实现存储系统903的存储介质的技术和计算机存储介质是被表征为初级存储还是次级存储、以及其他因素。
例如,如果计算机可读存储介质被实现为基于半导体的存储器,则软件905可以诸如通过变换构成半导体存储器的晶体管、电容器或其他分立电路元件的状态来在程序指令被存储在半导体存储器中时变换半导体存储器的物理状态。类似的变换可以关于磁性介质或光学介质发生。在不脱离本说明书的范围的情况下物理介质的其他变换是可能的,其中前述示例仅仅被提供用于方便当前讨论。
再次参考图3作为示例,通过计算系统901所表示的一个或多个计算系统的操作,可以关于软件服务的部署执行变换。作为示例,初始部署321可以被标识用于升级。在采用升级过程200时,升级部署322被启动并且在其中加载和升级服务组件325、327和329。另外,初始地被解析为初始部署321的alpha.service.com被改变以解析为升级部署322。
可以理解,计算系统901通常旨在表示软件905可以被部署在其上并且在其上执行以便实现增强的服务升级的一个或多个计算系统。然而,计算系统901还可以适合作为软件905可以被展现在其上并且从该处一个或两者可以被分布、运输、下载或以其他方式提供到又一计算系统以用于部署和执行、或另外的附加分布的任何计算系统。
通信接口系统907可以包括允许通过通信网络(未示出)与其他计算系统(未示出)通信的通信连接和设备。一起允许系统间通信的连接和设备的示例可以包括网络接口卡、天线、功率放大器、RF电路、收发器以及其他通信电路。连接和设备可以通过通信介质通信以与其他计算系统或系统的网络交换通信,通信介质诸如金属、玻璃、空气或任何其他适当的通信介质。前述介质、连接和设备是公知的并且不需要长篇幅地在此进行讨论。
用户接口系统909是可选的并且可以包括键盘、鼠标、语音输入设备、用于从用户接收触摸手势的触摸输入设备、用于检测由用户进行的非触摸手势和其他运动的运动输入设备、以及能够从用户接收用户输入的其他相当的输入设备和相关联的处理元件。输出设备(诸如显示器、扬声器、触控设备以及其他类型的输出设备)还可以被包括在用户接口系统909中。在一些情况下,输入和输出设备可以被组合在单个设备中,诸如能够显示图像并接收触摸手势的显示器。前述用户输入和输出设备是本领域中公知的并且不需要长篇幅地在此进行讨论。
用户接口系统909还包括由处理系统902可执行的支持以上讨论的各种用户输入和输出设备的相关联的用户接口软件。单独地或与彼此以及其他硬件和软件元件结合,用户接口软件和用户接口设备可以支持图形用户接口、自然用户接口或任何其他类型的用户接口。例如,用户接口105、用户接口115或用户接口135可以通过用户接口系统909来呈现。另外,关于用户接口做出的用户输入可以经由用户接口系统909来输入。
在计算系统901与其他计算系统(未示出)之间的通信可以通过一个或多个通信网络并且根据各种通信协议、协议的组合或其变型来发生。示例包括内联网、互联网、因特网、局域网、广域网、无线网络、有线网络、虚拟网络、软件定义网络、数据中心总线、计算底板、或任何其他类型的网络、网络的组合或其变型。前述通信网络和协议是公知的并且不需要长篇幅地在此进行讨论。然而,可以使用的一些通信协议包括但不限于互联网协议(IP、IPv4、IPv6、等等)、传输控制协议(TCP)和用户数据报协议(UDP),以及任何其他适当的通信协议、变型或其组合。
在其中交换数据、内容或任何其他类型的信息的前述示例中的任何示例中,信息的交换可以根据各种协议中的任何协议来发生,包括FTP(文件传输协议)、HTTP(超文本传输协议)、REST(表述性状态传输)、WebSocket、DOM(文档对象模型)、HTML(超文本标记语言)、CSS(层叠样式表)、HTML5、XML(可扩展标记语言)、JavaScript、JSON(JavaScript对象表示)以及AJAX(异步JavaScript和XML),以及任何其他适当的协议、变型或其组合。
尽管图1-8大体描绘了相对少的操作情景和序列,但是可以认识到本文中公开的概念可以以一定规模并且程式化地针对多个租户来应用。例如,本文中公开的升级服务能够被部署为支持任何数量的软件服务部署。
附图中提供的功能框图、操作情景和序列以及流程图表示用于执行本公开内容的新颖方面的示例性系统、环境和方法。尽管出于简化解释的目的,本文中包括的方法可以采用功能图、操作情景或序列、或流程图的形式,并且可以被描述为一系列动作,但是要理解这些方法不受动作的顺序限制,因为一些动作可以根据该动作以与来自本文中示出和描述的顺序不同的顺序发生和/或与来自本文中示出和描述的动作的其他动作并行地发生。例如,本领域技术人员将理解并认识到,方法能够备选地被表示为(诸如在状态图中)一系列相关的状态或事件。此外,针对新颖实现方式而言,可能不需要方法中图示的所有动作。
本文中包括的描述和附图描绘具体实现方式以教导本领域技术人员如何做出和使用最好的选项。出于教导发明原理的目的,已经简化或省略了一些常规方面。本领域技术人员将认识到来自落入本发明的范围内的这些实现方式的变型。本领域技术人员还将认识到,以上描述的特征能够以各种方式进行组合以形成多个实现方式。因此,本发明不限于以上描述的具体实现方式,而是仅仅由权利要求及其等效方案限定。
Claims (13)
1.一种用于对软件服务部署的升级动态调整步调的方法,所述方法包括:
在到用于管理软件服务的初始部署的管理端口的用户接口中,显现升级可用于所述初始部署的通知;
响应于对所述用户接口中的所述通知的选择,在所述用户接口中呈现用于控制关于所述初始部署的服务组件的所述升级的步调的升级控件;
至少部分地基于经由所述升级控件指定的所述升级的所述步调,来将所述升级递增地应用到所述服务组件;
在其中仅所述服务组件的子集已经被加载在所述软件服务的升级部署中的所述升级的第一阶段期间:
使用服务标识符向服务应用提供对于所述初始部署的访问,同时还使用临时服务标识符向所述服务应用提供对于升级部署的访问;
将内容数据库链接到所述初始部署和所述升级部署两者以提供对于所述内容数据库中的内容的访问;以及
在所述升级的后续阶段,停用所述临时服务标识符,将所述内容数据从所述初始部署解除链接,并且使用所述服务标识符向所述服务应用提供对于所述升级部署的访问。
2.根据权利要求1所述的方法,还包括启动所述软件服务的所述升级部署,其中至少部分地基于经由所述升级控件指定的所述升级的所述步调来将所述升级递增地应用到所述服务组件包括:
当由所述升级的所述步调针对所述服务组件中的每个服务组件指定时,在所述升级部署中加载所述服务组件并将所述升级应用到所述服务组件。
3.根据权利要求2所述的方法,其中所述服务标识符解析为所述初始部署,使得所述服务应用可以使用所述服务标识符与所述初始部署通信,并且其中所述临时服务标识符与所述服务标识符不同并且解析为所述升级部署,使得所述服务应用的至少一部分可以使用所述临时服务标识符与所述升级部署通信。
4.根据权利要求3所述的方法,还包括:在完成所述升级时,改变所述服务标识符以解析为所述升级部署而非所述初始部署,使得所述服务应用可以使用所述服务标识符与所述升级部署通信。
5.根据权利要求4所述的方法,其中所述服务标识符包括初始地解析为与所述初始部署相关联的互联网协议地址的统一资源定位符,并且其中所述临时服务标识符包括解析为与所述升级部署相关联的第二互联网协议地址的第二统一资源定位符。
6.根据权利要求5所述的方法,其中所述软件服务包括具有与所述软件服务的多个部署相关联的多个租户的多租户环境,其中所述初始部署和所述升级部署与所述多个租户中的特定租户相关联,其中所述统一资源定位符包括所述软件服务的名称和所述特定租户的名称,并且其中所述第二统一资源定位符包括所述软件服务的所述名称、所述特定租户的所述名称以及表示所述临时服务标识符的临时状态的字符串。
7.根据权利要求1所述的方法,其中所述软件服务包括在线协作服务,并且其中所述服务组件包括由所述软件服务的所述初始部署托管的并且在应用所述升级之后由所述软件服务的升级部署托管的协作站点。
8.一种用于在多租户环境中对软件服务部署的升级动态调整步调的方法,所述方法包括:
标识由租户指定的步调,以所述步调进行对与所述租户相关联的所述软件服务的初始部署的升级,其中所述软件服务的所述初始部署包括多个服务组件并且与由服务应用用于访问所述软件服务的所述初始部署的服务标识符相关联,其中指定的所述步调经由升级控件指定,所述升级控件至少包括用于指定哪些服务组件将首先进行应用所述升级的选项;
启动升级部署:
当所述升级根据所述步调增量地进展时:
将内容数据库链接到所述初始部署和所述升级部署两者以提供对于所述内容数据库中的内容的访问;以及
将所述服务标识符解析为所述软件服务的所述初始部署,使得所述服务应用可以使用所述服务标识符来访问所述软件服务的所述初始部署;以及
将与所述服务标识符不同的临时服务标识符解析为所述软件服务的所述升级部署,使得所述服务应用可以使用所述临时服务标识符来访问所述软件服务的所述升级部署;以及
在完成所述升级时:
停用所述临时服务标识符;
将所述内容数据库从所述初始部署解除链接;以及
将所述服务标识符解析为所述软件服务的所述升级部署,使得所述服务应用可以使用所述服务标识符来访问所述软件服务的所述升级部署。
9.根据权利要求8所述的方法,还包括:
在到与所述租户相关联的管理端口的用户接口中,显现所述升级可用于所述初始部署的通知;
经由对与所述租户相关联的所述管理端口的用户输入接收指定所述步调的用户输入;以及
至少部分地基于由所述租户指定的所述升级的所述步调来将所述升级增量地应用到所述服务组件。
10.根据权利要求9所述的方法,其中至少部分地基于所述步调来将所述升级增量地应用到所述服务组件包括:
当由所述升级的所述步调针对所述服务组件中的每个服务组件指定时,将所述服务组件加载到所述升级部署中并且将所述升级应用到所述服务组件。
11.根据权利要求8所述的方法,其中所述服务标识符包括初始地解析为与所述初始部署相关联的互联网协议地址的统一资源定位符,并且其中所述临时服务标识符包括解析为与所述升级部署相关联的第二互联网协议地址的第二统一资源定位符。
12.根据权利要求11所述的方法,其中所述软件服务包括具有与所述软件服务的多个部署相对应的多个租户的多租户环境,其中所述初始部署和所述升级部署与所述多个租户中的特定租户相关联,其中所述统一资源定位符包括所述软件服务的名称和所述特定租户的名称,并且其中所述第二统一资源定位符包括所述软件服务的所述名称、所述特定租户的所述名称以及表示所述临时服务标识符的临时状态的字符串。
13.根据权利要求8所述的方法,其中所述软件服务包括在线协作服务并且其中所述服务组件包括协作站点,所述协作站点由所述软件服务的所述初始部署托管并且在应用所述升级之后由所述软件服务的所述升级部署托管。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/302,334 US9804835B2 (en) | 2014-06-11 | 2014-06-11 | Dynamic pacing for service upgrades |
US14/302,334 | 2014-06-11 | ||
PCT/US2015/035003 WO2015191655A1 (en) | 2014-06-11 | 2015-06-10 | Dynamic pacing for service upgrades |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106663013A CN106663013A (zh) | 2017-05-10 |
CN106663013B true CN106663013B (zh) | 2019-12-03 |
Family
ID=53490277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580031177.0A Active CN106663013B (zh) | 2014-06-11 | 2015-06-10 | 针对服务升级的动态调整步调 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9804835B2 (zh) |
EP (1) | EP3155516B1 (zh) |
CN (1) | CN106663013B (zh) |
WO (1) | WO2015191655A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9804835B2 (en) * | 2014-06-11 | 2017-10-31 | Microsoft Technology Licensing, Llc | Dynamic pacing for service upgrades |
US10756985B2 (en) * | 2015-01-27 | 2020-08-25 | Nutanix, Inc. | Architecture for implementing user interfaces for centralized management of a computing environment |
US10599459B2 (en) | 2016-02-12 | 2020-03-24 | Nutanix, Inc. | Entity database distributed replication |
US10234917B2 (en) * | 2016-06-03 | 2019-03-19 | Hewlett Packard Enterprise Development Lp | Sequential resets of redundant subsystems with random delays |
US10867128B2 (en) | 2017-09-12 | 2020-12-15 | Microsoft Technology Licensing, Llc | Intelligently updating a collaboration site or template |
US10742500B2 (en) | 2017-09-20 | 2020-08-11 | Microsoft Technology Licensing, Llc | Iteratively updating a collaboration site or template |
US10700991B2 (en) | 2017-11-27 | 2020-06-30 | Nutanix, Inc. | Multi-cluster resource management |
CN110955474B (zh) * | 2018-09-27 | 2023-09-05 | 杭州海康威视系统技术有限公司 | 一种应用系统中业务添加、业务调用方法、装置及设备 |
CN112181443B (zh) * | 2019-07-01 | 2023-04-07 | 中国移动通信集团浙江有限公司 | 服务的自动化部署方法、装置及电子设备 |
US11294654B2 (en) * | 2020-05-20 | 2022-04-05 | Microsoft Technology Licensing, Llc | Automated rules for controlled distribution of program instructions |
US11606420B1 (en) * | 2021-10-22 | 2023-03-14 | Dell Products L.P. | Method and apparatus for service routing |
US20230222001A1 (en) * | 2022-01-11 | 2023-07-13 | Microsoft Technology Licensing, Llc | Techniques for deploying changes to improve reliability of a cloud service |
CN115033250A (zh) * | 2022-01-24 | 2022-09-09 | 统信软件技术有限公司 | 一种应用部署方法、计算设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729584A (zh) * | 2008-10-30 | 2010-06-09 | 国际商业机器公司 | 用于软件服务集成系统中的服务适配器及其操作方法 |
CN103294455A (zh) * | 2012-02-27 | 2013-09-11 | 杭州勒卡斯广告策划有限公司 | 一种软件服务实现方法、系统及Java平台 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6353926B1 (en) | 1998-07-15 | 2002-03-05 | Microsoft Corporation | Software update notification |
US7016944B1 (en) | 1999-09-30 | 2006-03-21 | Apple Computer, Inc. | System and method for passive detection and context sensitive notification of upgrade availability for computer information |
US6591417B1 (en) * | 1999-12-30 | 2003-07-08 | International Business Machines Corporation | Method of and system for testing compatibility with an external API upgrade |
EP1327191B1 (en) * | 2000-09-22 | 2013-10-23 | Lumension Security, Inc. | Non-invasive automatic offsite patch fingerprinting and updating system and method |
WO2002069086A2 (en) * | 2001-02-22 | 2002-09-06 | Accenture Global Services Gmbh | Distributed development environment for building internet applications by developers at remote locations |
US7251812B1 (en) * | 2001-10-31 | 2007-07-31 | Microsoft Corporation | Dynamic software update |
US7584467B2 (en) | 2003-03-17 | 2009-09-01 | Microsoft Corporation | Software updating system and method |
US8321858B1 (en) * | 2003-12-31 | 2012-11-27 | Google Inc. | Systems and methods for providing software updates |
US7464118B2 (en) * | 2004-12-03 | 2008-12-09 | International Business Machines Corporation | Algorithm for maximizing application availability during automated enterprise deployments |
US9270732B2 (en) | 2005-03-14 | 2016-02-23 | Rhapsody International Inc. | System and method for automatically uploading updates |
US7721332B2 (en) | 2005-08-16 | 2010-05-18 | Microsoft Corporation | Integrated software for managing add-ons |
US7818740B2 (en) | 2006-05-05 | 2010-10-19 | Microsoft Corporation | Techniques to perform gradual upgrades |
US20080127159A1 (en) * | 2006-10-02 | 2008-05-29 | Mark Van Regenmorter | Multi-function peripheral device capable of independent firmware updating |
US20080162509A1 (en) * | 2006-12-29 | 2008-07-03 | Becker Wolfgang A | Methods for updating a tenant space in a mega-tenancy environment |
US8484376B2 (en) * | 2007-10-31 | 2013-07-09 | Red Hat, Inc. | Hot-swappable services in distributed computing |
US20100299664A1 (en) * | 2009-05-21 | 2010-11-25 | Salesforce.Com, Inc. | System, method and computer program product for pushing an application update between tenants of a multi-tenant on-demand database service |
WO2010139520A1 (en) * | 2009-06-02 | 2010-12-09 | Huntsman Corporation Hungary Zrt. | A Method for Separating N,N-Dialkylbisaminoalkylether from Mixtures Comprising N,N-Dialkylbisaminoalkylether and at least one of N,N,N'-Trialkylbisaminoalkylether and N,N,N',N'-Tetraalkylbisaminoalkylether |
US8869138B2 (en) * | 2011-11-11 | 2014-10-21 | Wyse Technology L.L.C. | Robust firmware update with recovery logic |
US9015493B2 (en) * | 2010-09-16 | 2015-04-21 | Microsoft Technology Licensing, Llc | Multitenant-aware protection service |
US20120102480A1 (en) * | 2010-10-20 | 2012-04-26 | Microsoft Corporation | High availability of machines during patching |
US8296267B2 (en) | 2010-10-20 | 2012-10-23 | Microsoft Corporation | Upgrade of highly available farm server groups |
KR20190018038A (ko) * | 2010-11-18 | 2019-02-20 | 구글 엘엘씨 | 메모리 상태에 대한 응답으로 애플리케이션 종료 |
US10067754B2 (en) | 2011-08-11 | 2018-09-04 | International Business Machines Corporation | Software service notifications based upon software usage, configuration, and deployment topology |
US20130117738A1 (en) | 2011-11-03 | 2013-05-09 | Microsoft Corporation | Server Upgrades with Safety Checking and Preview |
US9582386B2 (en) * | 2013-03-15 | 2017-02-28 | Cloudendure, Ltd. | System and method for maintaining a copy of a cloud-based computing environment and restoration thereof |
US9804835B2 (en) * | 2014-06-11 | 2017-10-31 | Microsoft Technology Licensing, Llc | Dynamic pacing for service upgrades |
-
2014
- 2014-06-11 US US14/302,334 patent/US9804835B2/en active Active
-
2015
- 2015-06-10 WO PCT/US2015/035003 patent/WO2015191655A1/en active Application Filing
- 2015-06-10 CN CN201580031177.0A patent/CN106663013B/zh active Active
- 2015-06-10 EP EP15732127.4A patent/EP3155516B1/en active Active
-
2017
- 2017-09-25 US US15/714,753 patent/US20180018162A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729584A (zh) * | 2008-10-30 | 2010-06-09 | 国际商业机器公司 | 用于软件服务集成系统中的服务适配器及其操作方法 |
CN103294455A (zh) * | 2012-02-27 | 2013-09-11 | 杭州勒卡斯广告策划有限公司 | 一种软件服务实现方法、系统及Java平台 |
Also Published As
Publication number | Publication date |
---|---|
US20180018162A1 (en) | 2018-01-18 |
US20150363190A1 (en) | 2015-12-17 |
CN106663013A (zh) | 2017-05-10 |
US9804835B2 (en) | 2017-10-31 |
EP3155516A1 (en) | 2017-04-19 |
WO2015191655A1 (en) | 2015-12-17 |
EP3155516B1 (en) | 2018-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106663013B (zh) | 针对服务升级的动态调整步调 | |
CN110795195B (zh) | 一种网页渲染方法、装置、电子设备及存储介质 | |
US10091628B2 (en) | Message based application state and card sharing methods for user devices | |
CN109313661A (zh) | 针对原生移动应用中托管的网络应用的网页加速 | |
EP3103023B1 (en) | Private cloud connected device cluster architecture | |
US9661073B2 (en) | Web browser synchronization with multiple simultaneous profiles | |
US10088980B2 (en) | Method and system for providing menu data for mobile applications | |
US20180314513A1 (en) | Mobile Application Webview Modification | |
CN106202547B (zh) | 一种站点管理方法、装置以及一种网站系统 | |
US20150331578A1 (en) | Active summaries in user interfaces to collaboration services | |
US20160041819A1 (en) | Updating service applications | |
US10063490B2 (en) | Method and system of operating an online application service in a deployment environment to facilitate run-time experimentation with user interface configurations | |
US12093966B2 (en) | Customer service representative dashboard with micro-applications | |
KR102136474B1 (ko) | 가상 세션에서의 클라이언트 측 키보드 레이아웃과 서버 측 키보드 레이아웃의 동기화 | |
US9003433B2 (en) | Off-premise and codeless process-centric business mashup to integrate BPEL based processes and web 2.0 widgets | |
AU2016202576B2 (en) | Techniques for evaluating applications through use of an auxiliary application | |
Colombo-Mendoza et al. | MobiCloUP!: a PaaS for cloud services-based mobile applications | |
WO2013134813A1 (en) | A method and system of application development for multiple device client platforms | |
US10083156B2 (en) | Mobile enablement of webpages | |
US9740366B2 (en) | Method and device for configuring mobile terminal icons | |
CN109117122B (zh) | 一种列表视图创建方法及装置 | |
US20180109576A1 (en) | Real-time content providing method and system | |
CN110362322A (zh) | 电子装置与其离线更新程序的方法 | |
KR20160128957A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |