CN109558150B - 使用外观api进行核心api的分阶段升级的系统和方法 - Google Patents

使用外观api进行核心api的分阶段升级的系统和方法 Download PDF

Info

Publication number
CN109558150B
CN109558150B CN201811119376.9A CN201811119376A CN109558150B CN 109558150 B CN109558150 B CN 109558150B CN 201811119376 A CN201811119376 A CN 201811119376A CN 109558150 B CN109558150 B CN 109558150B
Authority
CN
China
Prior art keywords
api
core
appearance
function
implementation
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
Application number
CN201811119376.9A
Other languages
English (en)
Other versions
CN109558150A (zh
Inventor
L·斯库尔尼科
M·卡拉森克
P·斯兰科塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN109558150A publication Critical patent/CN109558150A/zh
Application granted granted Critical
Publication of CN109558150B publication Critical patent/CN109558150B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2117User registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions

Abstract

本申请涉及使用外观API进行核心API的分阶段升级的系统和方法。描述了与核心应用编程接口(API)的分阶段发布相关联的系统、方法和其它实施例。在一个实施例中,方法包括对远程客户端设备执行分阶段发布,以将第一核心API的实例升级到第二核心API。该示例方法还可以包括响应于确定API实现依赖第二核心API的功能而将外观API部署到第一核心API的实例中。外观API是用于代替第二核心API的功能与API实现交互的虚设接口。示例方法还可以包括执行分阶段升级,以将远程客户端设备的子集分阶段地从第一核心API升级到第二核心API,其中第二核心API的功能取代该外观API。

Description

使用外观API进行核心API的分阶段升级的系统和方法
背景技术
基于web的信息平台(诸如多租户业务平台)向客户端提供各种服务。基于web的信息平台可以提供业务处理跟踪功能、库存和销售跟踪功能、网站构建和托管功能、记账(accounting)功能、数据存储功能和/或各种其它功能。核心应用编程接口(API)的实例安装在客户端设备上。核心API提供用户界面,用户可以通过该用户界面访问基于web的信息平台的不同功能。例如,核心API可以包括业务处理跟踪接口,客户端可以通过该业务处理跟踪接口跟踪它们的业务处理。核心API可以包括记账接口,客户端可以通过该记账接口跟踪记账信息。
基于web的信息平台可以允许开发者(诸如通过插件或其它附加功能)创建新功能或使用核心API来定制核心API的产品行为、用户界面和/或其它功能。例如,开发者可以为用于零售商客户端的、由基于web的信息平台托管的商家网站创建自定义API实现。自定义API实现可以被创建为核心API的插件,并且可以为商家网站提供新功能,诸如提供对于在支付处理期间返回的资金不足消息的客户电子邮件通知。一些系统可以具有在核心API中存在的许多自定义API实现。
自定义API实现在核心API升级时,例如,在不同的时间升级不同的设备或帐户(诸如租户帐户、客户端帐户、客户帐户和/或商家帐户)的分阶段升级期间,产生问题。可以执行核心API的分阶段升级,以在不同时间/阶段更新客户端设备组上的核心API的实例,以便从第一核心API升级到较新的第二核心API。但是,如果自定义API实现依赖于未包括在第一核心API中的第二核心API的功能,那么自定义API实现就不能被部署到仍具有第一核心API的客户端设备。这是因为自定义API实现将在尝试利用不具有该功能的第一核心API操作时造成错误。照此,在针对所有客户端设备完成整个分阶段升级之前,先前的升级处理不部署任何自定义API实现,这使得直到所有客户端帐户都已升级到第二核心API的功能,自定义API实现才可用,这可能花费数周或数月。
附图说明
结合在本说明书中并构成说明书的一部分的附图示出了本公开的各种系统、方法和其它实施例。将认识到的是,图中所示出的元件边界(例如,框、框的组或者其它形状)表示边界的一个实施例。在一些实施例中,一个元件可以被实现为多个元件,或者多个元件可以被实现为一个元件。在一些实施例中,被示为另一个元件的内部组件的元件可以被实现为外部组件,并且反之亦然。此外,元件可能不是按比例绘制的。
图1示出了与使用第二核心API的外观相关联的系统的实施例。
图2示出了与使用第二核心API的外观相关联的方法的实施例。
图3示出了使用第二核心API的外观的方法流程的实施例。
图4A示出了与使用第二核心API的外观相关联的系统的实施例。
图4B示出了与使用第二核心API的外观相关联的系统的实施例,其中部署了外观API。
图4C示出了与使用第二核心API的外观相关联的系统的实施例,其中部署了API实现。
图4D示出了与使用第二核心API的外观相关联的系统的实施例,其中第一阶段被执行。
图4E示出了与使用第二核心API的外观相关联的系统的实施例,其中第二阶段被执行。
图4F示出了与使用第二核心API的外观相关联的系统的实施例,其中第三阶段被执行。
图5示出了非暂态计算机可读介质的实施例。
图6示出了配置有所公开的示例系统和/或方法的计算系统的实施例。
具体实施方式
本文描述了实现外观(facade)API以促进包括自定义API实现的核心API的分阶段升级的计算机化的系统和方法。基于web的信息平台被配置为诸如通过在客户端设备上托管的核心API的实例来向客户端设备提供对各种服务(诸如创建和托管网站、跟踪业务处理、跟踪库存和销售,等等)的访问。在一个实施例中,基于web的信息平台可以由分布式云计算环境托管。核心API的实例安装在客户端设备上。核心API可以提供用户界面,用户可以通过用户界面访问由基于web的信息平台提供的服务。平台可以包括一个或多个API实现,该一个或多个API实现被创建以作为执行由核心API提供的功能的定制方式,或者作为不是由核心API本机提供的附加新功能。
在某个时候,客户端设备上的核心API将被升级到较新的版本。基于web的信息平台可以在不同的时间在不同的客户端设备处执行核心API的多阶段升级。例如,在第一阶段期间,客户端设备的第一子集从第一核心API升级到较新的第二核心API。在第二阶段期间,客户端设备的第二子集从第一核心API升级到第二核心API。以这种方式,在每个阶段期间升级客户端设备的子集,使得不是一次升级所有客户端设备。分阶段执行升级允许在升级所有客户端设备之前(诸如在第一阶段之后但在第二阶段之前)检测和解决问题或其它难题。
如前所述,可以存在一个或多个自定义API实现,这可能影响升级过程。如本文所提供的,向API实现的阶段部署提供核心API的分阶段升级。API实现可能已经围绕由第二核心API而不是由第一核心API提供的功能来开发。因此,API实现将只能与第二核心API一起起作用。
因而,在阶段升级开始之前,外观API和/或API实现被部署到客户端设备。外观API被部署到仍然操作第一核心API的客户端设备集合中。外观API是针对(诸如在API实现将调用由第二核心API的功能提供的方法的情况下)API实现所依赖的第二核心API的功能的占位符(例如,虚设(dummy)接口)。外观API将在下面更详细地讨论。由于外观API不包括方法的实际功能代码,因此外观API被配置为仅接收来自API实现的调用。然后,响应于调用,外观API被配置为返回成功消息、功能尚不可用的消息或某个其它返回值,以便API实现不会因为在第一核心API中实际功能不存在而崩溃或造成错误。
随着客户端设备升级到第二核心API,这些客户端设备处的API实现将能够访问第二核心API的功能,而不是仅访问第一核心API的外观API。否则,仍然托管第一核心API的客户端设备处的API实现将继续访问外观API。这些API实现不是功能完备的,但将不会造成错误或崩溃,因为外观API至少可以对来自API实现的调用进行响应。
在一个实施例中,针对远程客户端设备执行分阶段发布,以将第一核心API的实例升级到第二核心API。响应于确定API实现依赖第二核心API的功能,将外观API部署到第一核心API的实例中。外观API是用于代替第二核心API的功能与API实现交互的虚设接口。外观API被配置为接收来自API实现的函数调用,并且以不会造成API实现崩溃的方式响应,诸如通过用虚设成功消息或指示因为第一核心API尚未升级到第二核心API所以第二核心API的功能尚未实现的消息进行响应。API升级由本API部署系统执行,以将远程客户端设备的子集分阶段地从第一核心API升级到第二核心API。在完成远程客户端设备的分阶段升级后,第二核心API的功能取代远程客户端设备处的外观API。以这种方式,远程客户端设备的子集分阶段地升级到第二核心API。
参考图1,示出了计算机系统100的一个实施例,计算机系统100作为核心API的分阶段升级的一部分使用外观API实现升级和部署系统。计算机系统100包括核心API部署模块105,核心API部署模块105可以被配置为在计算机(诸如图6的计算机615)上执行。在一个实施例中,计算机系统100被托管在基于web的信息平台170内。在另一个实施例中,计算机系统100被托管在基于web的信息平台170外部的设备上。
在一个实施例中,计算机系统100和/或基于web的信息平台170被托管在分布式云计算环境内,分布式云计算环境诸如用于为终端用户开发和提供互联网/基于web的服务和业务应用的多租户体系架构。多租户体系架构允许多个帐户(租户)和用户存储和访问数据,以及利用驻留在具有多租户体系架构的远程平台上的具体应用,诸如基于web的信息系统170。远程平台可以被实现为服务器集合或服务器组,该服务器集合或服务器组向帐户和每个帐户的用户提供多租户体系架构的使用作为服务。这些服务可以提供数据存储、计算处理能力、数据分析、应用和/或其它软件即服务(SaaS)、基于云的服务、web服务或云服务中的远程。在一个实施例中,多租户体系架构可以被用于开发、存储、维护、编辑和托管可以提供给用户的远程设备的网站。
对于以下描述,假设第一核心API 145的实例被部署到一组客户端设备115上。第一核心API 145向用户提供对由基于web的信息平台170提供的服务的访问,诸如对记账服务、业务处理服务、库存和销售跟踪服务、网站创建和托管服务等的访问。可以计划分阶段升级,以在某个时间点将第一核心API 145升级到第二核心API 155。第二核心API 155可以包括第一核心API 145未提供的新功能,诸如用于处理通过由基于web的信息平台170托管的网站生成的客户交易的支付API。实现开发者110可以创建向第二核心API 155添加附加功能和/或定制第二核心API 155的功能的API实现,诸如向支付API添加电子邮件通知功能以便当客户的账户没有足够的资金用于购买时向客户发送电子邮件的(一个或多个)API实现135a、135b。在一个实施例中,(一个或多个)API实现135a、135b可以被创建为第二核心API 155的插件。因为支付API不包括在第一核心API 145内,所以(一个或多个)API实现135a、135b当被托管在尚未升级到第二核心API 155的客户端设备上时可能崩溃。
因而,核心API部署模块105被配置为在开始第二核心API 155的分阶段发布160之前将外观API 150部署到一个或多个客户端设备115上的第一核心API 145的实例中。在一个实施例中,外观API 150是第二核心API 155的功能的占位符,诸如支付API的占位符。作为占位符,外观API充当接收对功能的调用但不实际执行该功能的虚设接口。在一个实施例中,外观API 150被配置为包括外观方法,该外观方法具有与第二核心API 155的功能内所包括的方法的方法名称匹配的方法名称。在一个实施例中,外观方法具有与由支付API 提供的方法相同的方法名称,以便外观API接收对支付API的调用,但是外观方法不包括该方法的实际方法代码。因此,外观API 150不包括支付API的实际方法主体、代码和/或功能。在一个实施例中,外观API方法配置有空方法主体。在另一个实施例中,外观方法配置有代替支付API内所包括的方法的方法主体的返回函数。返回函数响应于被调用而被配置为返回功能尚未实现的指示、即使函数未被执行也生成并发送成功消息、或者生成并发送某个其它返回值,以便调用不存在的支付API的(一个或多个)API实现135a、135b不会崩溃或者产生错误或异常。
继续参考图1,框165表示实现开发者110诸如在分阶段发布160之前或期间将(一个或多个)API实现135a、135b的实例部署到客户端设备115。
一旦将外观API 150和/或(一个或多个)API实现135a、135b的实例部署到客户端设备115,核心API部署模块105就可以发起分阶段发布160。客户端设备115可以由客户端设备115的第一子集120、客户端设备115的第二子集140和/或客户端设备115的其它子集组成。对客户端设备的第一子集120执行分阶段发布160的第一阶段,以将第一核心API 145的实例升级到第二核心API 155,如图1中被示为“核心API(2)155”。第二核心API 155包括(诸如在支付API包括由(一个或多个)API实现135a、135b调用的方法的情况下)(一个或多个)API实现135a、135b所依赖的功能130。
在执行升级的一个实施例中,将第二核心API 155的功能130的方法的方法主体插入到外观API的方法主体中。以这种方式,外观API现在包括功能130的方法的方法代码。在执行升级的另一个实施例中,修改、取代、移除或添加第一核心API 145的数据库模式、编程代码和/或脚本代码。在另一个实施例中,在第一阶段期间使用第一核心API 145的第一数据库模式和第二核心API 155的第二数据库模式,直到升级完成。使用第一核心API 145的不在第二核心API 155中的功能的操作被指引到第一核心API 145的第一数据库模式、第一编程代码和/或第一脚本代码。使用第二核心API 155的不在第一核心API 145中的功能的操作被指引到第二核心API 155的第二数据库模式、第二编程代码和/或第二脚本代码。
在完成第一阶段之后,客户端设备115的第一子集120包括第二核心API 155,而客户端设备115的第二子集140和/或其它子集仍然包括第一核心API 145,如图1中所示。因此,客户端设备115的第一子集120处的API实现135a的实例将能够执行和利用第二核心API155的功能130。但是,客户端设备115的第二子集140处的API实现135b的实例将只能访问第一核心API 145的外观API 150。在后续阶段期间,客户端设备115的第二子集140处的第一核心API 145的实例被升级到第二核心API 155。因此,在第二阶段之后,客户端设备115的第二子集140处的API实现135b的实例将能够执行并利用第二核心API 155的功能130。以这种方式,执行分阶段发布160以将第一核心API 145的实例升级到第二核心API 155,同时允许在分阶段发布160完成之前部署(一个或多个)API实现135a、135b,而不引入如下错误和/或造成如下崩溃:否则由于(一个或多个)API实现135a、135b调用尚未可用的方法、API和/或其它功能130(由于第一核心API 145不包括这种功能130)会引入该错误和/或造成该崩溃。这是因为即使外观API 150不包括功能130的实际编程代码和方法,外观API 150也能够拦截对这种功能130的调用并对这种功能130的调用进行响应。
在一个实施例中,在第一阶段完成之后但在第二阶段开始之前,从客户端设备115的第一子集120的客户端设备接收反馈。反馈可以涉及功能130的操作,诸如(一个或多个)API实现135a、135b尝试调用支付API内的方法时发生的错误。以这种方式,反馈可以被用于在执行其它阶段之前修改第二核心API 155。因此,可以在整个分阶段发布160完成之前解决错误。
参考图2,示出了被配置为执行核心API的分阶段发布的计算机实现的方法200的一个实施例。在一个实施例中,方法200由核心API部署模块105利用计算机615的各种计算资源(诸如处理器620)执行,以执行与执行分阶段发布相关联的指令。存储器635和/或盘655被用于存储用来升级核心API的升级和/或其它数据。网络硬件被用于通过网络在计算机615和远程计算机之间传送数据结构和/或其它数据。在接收到执行升级的命令时触发方法200。
在接收到执行升级的命令时,确定API实现依赖第二核心API的未包括在第一核心API内的功能。因此,可以使用作为用于与API实现交互的虚设接口的外观API来代替第二核心API的功能,以便在与第一核心API交互时API实现不会崩溃。因而,在205处,将外观API部署到与基于web的信息平台相关联的第一核心API的实例中。第一核心API的实例由基于web的信息平台的远程客户端设备托管。外观API是用于第二核心API的功能的占位符。该功能将通过第二核心API可用,以供API实现访问,以便执行该功能内所包括的方法。因此,API实现依赖通过第二核心API可用的功能的方法的编程执行,以便完全起作用。
在210处,对远程客户端设备执行分阶段发布,以将远程客户端设备从第一核心API升级到第二核心API。在215处,分阶段发布包括第一阶段,该第一阶段将由远程客户端设备的第一子集托管的第一核心API的实例升级到第二核心API。现在,远程客户端设备的第一子集处的API实现可以访问由远程客户端设备的第一子集托管的第二核心API的功能。远程客户端设备的第二子集处的API实现只能访问由远程客户端设备的第二子集托管的第一核心API的外观API。
在220处,执行第二阶段以将由远程客户端设备的第二子集托管的第一核心API的实例升级到第二核心API。现在,远程客户端设备的第二子集处的API实现可以访问由客户端设备的第二子集托管的第二核心API的功能。
参考图3,图2的方法200的一个实施例由在发布时间段340上分阶段发布核心API的方法流程300示出。方法流程300包括与使用第二(较新)API实现的完全功能实例的客户端设备相比使用第一(较旧)API实现的完全功能实例的客户端设备的百分比的第一表示330。第一API实现可以涉及由第一(较旧)核心API提供的第一API的实现/定制。第二API实现可以涉及由第二(较新)核心API提供的第二API的实现/定制。方法流程300包括与托管第二(较新)核心API的客户端设备相比托管第一(较旧)核心API的客户端设备的百分比的第二表示335。
在预升级阶段345期间,第一百分比305a(诸如100%)的客户端设备正在托管第一API实现,并且第一百分比310a(诸如100%)的客户端设备正在托管第一核心API。在预升级阶段345期间,(一个或多个)外观API 315a、315b、315c被部署到第一核心API的实例中。(一个或多个)外观API 315a、315b、315c是用于第二核心API(诸如由第二API实现依赖的第二API)的功能的占位符。在一个实施例中,(一个或多个)外观API 315a、315b、315c包括第二API的方法名称,但不包括第二API的方法主体代码。以这种方式,第二API实现可以调用代替第二API的(一个或多个)外观API 315a、315b、315c,而不造成错误或崩溃,但是不提供第二API的功能。在一个实施例中,第二API实现被部署到客户端设备,但是没有客户端设备仍在使用第二API实现的完全功能实例,因为第二API对于第二API实现尚不可用。
执行第一阶段350以将客户端设备的第一子集(例如,30%的客户端设备)处的第一核心API升级到包括对于完全功能由第二API实现所使用的第二API的第二核心API。在第一阶段350完成时,第二百分比310b(诸如70%)的客户端设备(例如,不在第一子集中的客户端设备)托管第一核心API,并且第三百分比320a(诸如30%)的客户端设备(例如,第一子集中的客户端设备)托管第二核心API。因而,第二百分比305b(诸如70%)的客户端设备(例如,不在第一子集中的客户端设备)通过第一核心API主动托管第一API实现的功能(例如,在这种客户端设备上的第二API实现不是完全功能的并且仅仅访问(一个或多个)外观API315a、315b、315c)。而且,第三百分比345a(诸如30%)的客户端设备(例如,第一子集中的客户端设备)通过第二核心API主动托管第二API实现的完全功能,因为第二API实现可以访问第二核心API的第二API。
执行第二阶段355以将客户端设备的第二子集(例如,另外30%的客户端设备)处的第一核心API升级到包括对于完全功能由第二API实现所使用的第二API的第二核心API。在第二阶段355完成时,第四百分比310c(诸如40%)的客户端设备(例如,不在第一子集和第二子集中的客户端设备)托管第一核心API。第五百分比320b(诸如60%)的客户端设备(例如,第一子集和第二子集中的客户端设备)托管第二核心API。因而,第四百分比305c(诸如40%)的客户端设备(例如,不在第一子集和第二子集中的客户端设备)通过第一核心API主动托管第一API实现的功能(例如,在这种客户端设备上的第二API实现不是完全功能的并且仅访问(一个或多个)外观API 315a、315b、315c)。而且,第五百分比345b(诸如60%)的客户端设备(例如,第一子集和第二子集中的客户端设备)通过第二核心API主动托管第二API实现的完全功能,因为第二API实现可以访问第二核心API的第二API。
执行第三阶段360以将客户端设备的第三子集(例如,尚未升级的剩余40%的客户端设备)处的第一核心API升级到包括对于完全功能由第二API实现所使用的第二API的第二核心API。在第三阶段360完成时,没有客户端设备托管第一核心API并且所有客户端设备已经升级到第二核心API。因此,第六百分比320c(诸如100%)的客户端设备正在托管第二核心API。第六百分比345c(诸如100%)的客户端设备正在托管第二API实现的完全功能实例,这些完全功能实例现在可以访问第二核心API的第二API。以这种方式,执行分阶段发布。
参考图4A-4F,示出了用于执行核心API的分阶段升级的系统400的一个实施例。多个远程客户端设备410可以通过(一个或多个)第一核心API 430a、430b、430c的实例来访问基于web的信息平台170的服务,如图4A中所示。多个远程客户端设备410可以包括多个远程客户端设备410的第一子集415、多个远程客户端设备410的第二子集420、以及多个远程客户端设备410的第三子集425。在一个实施例中,(一个或多个)第一核心API 430a、430b、430c提供用于访问由基于web的信息平台170提供的库存和销售跟踪信息的用户界面。
核心API部署模块105被配置为执行分阶段发布,以将多个远程客户端设备410从(一个或多个)第一核心API 430a、430b、430c升级到提供(一个或多个)第一核心API 430a、430b、430c不提供的功能465a、465b、465c的(一个或多个)第二核心API 460a、460b、460c,功能465a、465b、465c诸如向由基于web的信息平台170托管的、用于基于web的信息平台170的客户端的购物网站的购物者发送社交网络消息的能力。基于web的信息平台170允许实现开发者405为(一个或多个)第二核心API 460a、460b、460c开发API实现,诸如使用(一个或多个)第二核心API 460a、460b、460c的功能465a、465b、465c向购物者发送关于其销售订单状态的社交网络消息的(一个或多个)API实现450a、450b、450c。
核心API部署模块105被配置为将(一个或多个)外观API 440a、440b、440c部署435到托管在多个远程客户端设备410上的(一个或多个)第一核心API 430a、430b、430c的实例中,如图4B中所示。(一个或多个)外观API 440a、440b、440c是用于由(一个或多个)第二核心API 460a、460b、460c提供的功能465a、465b、465c的占位符。在一个实施例中,(一个或多个)外观API 440a、440b、440c具有外观方法,该外观方法具有与由功能465a、465b、465c提供的方法相同的方法名称,诸如由功能465a、465b、465c提供的sendSocialNetworkMessage()方法的方法名称。但是,外观方法可能无法提供sendSocialNetworkMessage()方法的实际方法代码。在一个实施例中,外观方法可以仅返回尚未实现sendSocialNetworkMessage()方法的指示,并且因此将不会向购物者发送社交网络消息。在另一个实施例中,即使外观方法实际没有发送消息,外观方法也可以仅返回社交网络消息被发送的成功指示。
实现开发者405可以将(一个或多个)API实现450a、450b、450c部署445到多个远程客户端设备410,如图4C中所示。因为多个远程客户端设备410托管具有外观API 410的(一个或多个)第一核心API 430a、430b、430c,并且尚未托管具有由(一个或多个)API实现450a、450b、450c调用的功能465a、465b、465c的(一个或多个)第二核心API 460a、460b、460c,所以功能465a、465b、465c(诸如sendSocialNetworkMessage()方法)将由(一个或多个)外观API 440a、440b、440c(诸如由可以返回尚未实现sendSocialNetworkMessage()方法的指示的外观方法)处理。
核心API部署模块105执行分阶段发布的第一阶段455,以将多个远程客户端设备410的第一子集415从第一核心API 430a升级到具有由API实现450a使用的功能465a的第二核心API 460a,如图4D所示。以这种方式,在多个远程客户端设备410的第一子集415处的API实现450a的实例将能够访问和调用功能465a,诸如用于向购物者发送社交网络消息的实际的sendSocialNetworkMessage()方法。在多个远程客户端设备410的第二子集420和第三子集425处的(一个或多个)API实现450b、450c的实例仅能够访问(一个或多个)外观API 440b、440c,并且因此不是完全功能的。
核心API部署模块105执行分阶段发布的第二阶段470,以将多个远程客户端设备410的第二子集420从第一核心API 430b升级到具有由API实现450b使用的功能465b的第二核心API 460b。以这种方式,在多个远程客户端设备410的第一子集415和第二子集420处的API实现450b的实例将能够访问和调用功能465b,诸如用于向购物者发送社交网络消息的实际的sendSocialNetworkMessage()方法。在多个远程客户端设备410的第三子集425处的API实现450c的实例仅能够访问外观API 440c,并且因此不是完全功能的。
核心API部署模块105执行分阶段发布的第三阶段480,以将多个远程客户端设备410的第三子集425从第一核心API 430c升级到具有由API实现450c使用的功能465c的第二核心API 460c。以这种方式,在多个远程客户端设备410的第一子集415、第二子集420和第三子集425处的API实现450a、450b、450c的实例将能够访问和调用功能465c,诸如用于向购物者发送社交网络消息的实际的sendSocialNetworkMessage()方法。
图5是涉及示例非暂态计算机可读介质505的场景500的图示。在一个实施例中,本文所述的部件中的一个或多个部件被配置为存储在非暂态计算机可读介质505中的程序模块,诸如核心API部署模块105。程序模块被配置有存储的指令(诸如处理器可执行指令520),指令当由至少一个处理器(诸如处理器540)执行时,使计算设备执行如本文所述的(一个或多个)对应功能。在一个实施例中,存储在非暂态计算机可读介质505中的核心API部署模块105的功能可以作为处理器可执行指令520由处理器540执行,以执行图2的方法200的实施例525。
非暂态计算机可读介质505包括处理器可执行指令520,处理器可执行指令520在由处理器540执行时使得本文中的供应物(provision)中的至少一些供应物被执行。非暂态计算机可读介质505包括存储器半导体(例如,利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和/或同步动态随机存取存储器(SDRAM)技术的半导体)、硬盘驱动器的盘片、闪存存储器设备或者磁盘或光盘(诸如紧凑盘(CD)、数字通用盘(DVD)或软盘)。示例非暂态计算机可读介质505存储计算机可读数据510,计算机可读数据510当由设备530的读取器535(例如,硬盘驱动器的读取头或在固态存储设备上调用的读取操作)读取515时,表达处理器可执行指令520。
在一些实施例中,处理器可执行指令520在被执行时使得操作被执行,例如,诸如图2的示例方法200的至少一些操作被执行。在一些实施例中,处理器可执行指令520被配置为使得系统被实现,例如,诸如图1的示例系统100中的至少一些系统被实现。
图6示出了利用本文所述的示例系统和方法中的一个或多个和/或等价物来配置和/或编程的示例计算设备600。示例计算设备600可以是计算机615,计算机615包括通过总线625可操作地连接的处理器620、存储器635和I/O端口645。在一个实施例中,计算机615可以包括被配置为促进图1-图2中所示的系统100和/或方法200的核心API部署模块105的逻辑。在不同的实施例中,核心API部署模块105的逻辑可以用硬件、具有存储的指令的非暂态计算机可读介质605、固件和/或其组合来实现。虽然核心API部署模块105的逻辑被示为附接到总线625的硬件部件,但是应当认识到的是,在其它实施例中,核心API部署模块105的逻辑可以在处理器620中实现、存储在存储器635中、或存储在盘655中。
在一个实施例中,核心API部署模块105或计算机615的逻辑是用于执行所描述的动作的构件(例如,结构:硬件、非暂态计算机可读介质、固件)。在一些实施例中,计算设备可以是在云计算系统中操作的服务器、以软件即服务(SaaS)体系架构配置的服务器、智能电话、笔记本电脑、平板计算设备等。
例如,该构件可以被实现为例如专用集成电路(ASIC),该ASIC被编程为实现用于分配的基于规则的源序列。该构件还可以被实现为存储的计算机可执行指令,存储的计算机可执行指令作为数据610呈现给计算机615,数据610被临时存储在存储器635中,并且然后由处理器620执行。
核心API部署模块105的逻辑还可以提供用于执行用于分配的基于规则的源序列的构件(例如,硬件、存储可执行指令的非暂态计算机可读介质605、固件)。
一般性地来描述计算机615的示例配置,处理器620可以是各种各样的处理器,包括双微处理器和其它多处理器体系架构。存储器635可以包括易失性存储器和/或非易失性存储器。非易失性存储器可以包括例如只读存储器(ROM)、可编程只读存储器(PROM)等。易失性存储器可以包括例如随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
盘655可以经由例如I/O接口640(例如,卡、设备)和I/O端口645可操作地连接到计算机615。盘655可以是例如磁盘驱动器、固态盘驱动器、软盘驱动器、带驱动器、Zip驱动器、闪存卡、记忆棒等。此外,盘655可以是CD-ROM驱动器、CD-R驱动器、CD-RW驱动器、DVD ROM等。例如,存储器635可以诸如在非暂态计算机可读介质605内存储过程和/或数据610。盘655和/或存储器635可以存储控制和分配计算机615的资源的操作系统。
计算机615可以经由I/O接口640和I/O端口645与输入/输出(I/O)设备交互。I/O设备可以是例如键盘、麦克风、定点和选择设备、相机、视频卡、显示器、盘655、网络设备650等。I/O端口645可以包括例如串行端口、并行端口和USB端口。I/O控制器630可以将I/O接口640连接到总线625。
计算机615可以在网络环境中操作,并且因此可以经由I/O接口640和/或I/O端口645连接到网络设备650。通过网络设备650,计算机615可以与网络交互。通过网络,计算机615可以在逻辑上连接到远程计算机(例如,计算机615可以驻留在客户端可以连接到的分布式计算环境内)。计算机615可以与其交互的网络包括但不限于局域网(LAN)、新区域网络(WAN)和其它网络。
在另一个实施例中,所描述的方法和/或它们的等价物可以用计算机可执行指令来实现。因此,在一个实施例中,非暂态计算机可读/存储介质被配置为具有算法/可执行应用的存储的计算机可执行指令,存储的计算机可执行指令当由(一个或多个)机器执行时使该(一个或多个)机器(和/或相关联的组件)执行方法。示例机器包括但不限于处理器、计算机、在云计算系统中操作的服务器、在软件即服务(SaaS)体系架构中配置的服务器、智能电话等等。在一个实施例中,计算设备用被配置为执行所公开的方法中的任何方法的一个或多个可执行算法来实现。
在一个或多个实施例中,所公开的方法或它们的等价物由以下中的任一项执行:被配置为执行该方法的计算机硬件;或者,存储在非暂态计算机可读介质中的模块中体现的计算机指令,其中指令被配置为可执行算法,可执行算法被配置为在由计算设备的至少一个处理器执行时执行该方法。
虽然为了简化说明的目的,图中所示的方法被示出和描述为算法的一系列框,但是应该认识到的是,这些方法不受框的顺序的限制。一些框可以以与所示出和描述的顺序不同的顺序出现和/或与其它框同时出现。此外,可以使用比全部示出的框少的框来实现示例方法。框可以被组合或分离成多个动作/组件。此外,附加的和/或可替代的方法可以采用未在框中示出的附加动作。本文所述的方法限于依据35U.S.C§101的法定主题。
以下包括本文所采用的所选择的术语的定义。定义包括落入术语的范围内并且可以用于实现的组件的各种示例和/或形式。示例并不旨在是限制性的。术语的单数和复数形式都可以在定义之内。
对“一个实施例”、“实施例”、“一个示例”、“示例”等的引用指示如此描述的(一个或多个)实施例或(一个或多个)示例可以包括特定的特征、结构、特性、性质、元素或限制,但并非每个实施例或示例都一定包括该特定的特征、结构、特性、性质、元素或限制。此外,短语“在一个实施例中”的重复使用不一定指代相同的实施例,尽管它可能指代相同的实施例。
如本文所使用的,“数据结构”是计算系统中存储在存储器、存储设备或其它计算机化系统中的数据的组织。数据结构可以是例如数据字段、数据文件、数据阵列、数据记录、数据库、数据表、图表、树、链表等中的任何一个。数据结构可以由许多其它数据结构形成以及包含许多其它数据结构(例如,数据库包括许多数据记录)。根据其它实施例,数据结构的其它示例也是可能的。
如本文所使用的,“计算机可读介质”或“计算机存储介质”是指存储被配置为当被执行时执行所公开的功能中的一个或多个功能的指令和/或数据的非暂态介质。在一些实施例中,数据可以用作指令。计算机可读介质可以采取包括但不限于非易失性介质和易失性介质的形式。非易失性介质可以包括例如光盘、磁盘等。易失性介质可以包括例如半导体存储器、动态存储器等。计算机可读介质的常见形式可以包括但不限于软盘、柔性盘、硬盘、磁带、其它磁性介质、专用集成电路(ASIC)、可编程逻辑器件、紧凑盘(CD)、其它光学介质、随机存取存储器(RAM)、只读存储器(ROM)、存储器芯片或卡、记忆棒、固态存储设备(SSD)、闪存驱动器、以及计算机、处理器或其它电子设备可以利用其工作的其它介质。每种类型的介质如果在一个实施例中被选择用于实现,则可以包括被配置为执行所公开的和/或所要求保护的功能中的一个或多个功能的算法的存储指令。本文所描述的计算机可读介质限于依据35U.S.C§101的法定主题。
如本文所使用的,“逻辑”表示利用计算机或电气硬件、具有可执行应用或程序模块的存储的指令的非暂态介质和/或这些的组合来实现的组件,以执行如本文公开的功能或动作中的任何功能或动作,和/或以使得来自另一逻辑、方法和/或系统的功能或动作如本文所公开的那样被执行。等价逻辑可以包括固件、利用算法编程的微处理器、离散逻辑(例如,ASIC)、至少一个电路、模拟电路、数字电路、编程的逻辑器件、包含算法的指令的存储器设备等,其中的任何一个可以被配置为执行所公开的功能中的一个或多个功能。在一个实施例中,逻辑可以包括被配置为执行所公开的功能中的一个或多个功能的一个或多个门、门的组合、或者其它电路组件。在描述多个逻辑的情况下,有可能将多个逻辑合并到一个逻辑中。类似地,在描述单个逻辑的情况下,有可能在多个逻辑之间分布该单个逻辑。在一个实施例中,这些逻辑中的一个或多个逻辑是与执行所公开的和/或所要求保护的功能相关联的对应结构。选择实现哪种类型的逻辑可以基于期望的系统条件或规范。例如,如果考虑更大的速度,则将选择硬件来实现功能。如果考虑更低的成本,则将选择存储的指令/可执行应用来实现功能。逻辑限于依据35U.S.C§101的法定主题。
“可操作的连接”或实体通过其“可操作地连接”的连接是可以在其中发送和/或接收信号、物理通信和/或逻辑通信的连接。可操作的连接可以包括物理接口、电接口和/或数据接口。可操作的连接可以包括足以允许可操作的控制的接口和/或连接的不同组合。例如,两个实体可以可操作地连接,以直接地或者通过一个或多个中间实体(例如,处理器、操作系统、逻辑、非暂态计算机可读介质)彼此传送信号。逻辑和/或物理通信信道可以被用于创建可操作的连接。
如本文所使用的,“用户”包括但不限于一个或多个人、计算机或其它设备、或者这些的组合。
虽然已经相当详细地示出和描述了所公开的实施例,但并不旨在将所附权利要求的范围限制或以任何方式限定到这样的细节。当然,不可能为了描述主题的各个方面而描述组件或方法的每种预期的组合。因此,本公开不限于所示出和描述的特定细节或说明性示例。因此,本公开旨在涵盖落入所附权利要求的范围内的变更、修改和变型,所附权利要求满足35U.S.C§101的法定主题要求。
如果术语“包含”或“包括”在具体实施方式或权利要求书中被采用,则它旨在以类似于当术语“包括”作为过渡词在权利要求中被采用时被解释的方式那样是包含性的。
如果术语“或”在具体实施方式或权利要求书中被采用(例如,A或B),则它旨在意味着“A或B或A和B两者”。当申请人旨在指示“仅A或B但不是A和B两者”时,那么将使用短语“仅A或B但不是A和B两者”。因此,术语“或”在本文的使用是包含性的,而不是排他性使用。

Claims (20)

1.一种存储计算机可执行指令的非暂态计算机可读介质,所述计算机可执行指令在由计算系统的至少一个处理器执行时使得该处理器:
对远程客户端设备执行分阶段发布,以将第一核心应用编程接口API的实例升级到与基于web的信息平台相关联的第二核心API,其中所述分阶段发布包括:
响应于确定API实现依赖第二核心API的功能,将外观API部署到第一核心API的实例中,其中所述外观API是用于代替第二核心API的所述功能与所述API实现交互的虚设接口;
其中所述虚设接口被配置为从所述API实现接收请求第二核心API的所述功能的调用,以避免产生由第一核心API不具有所请求的功能而导致的错误,并且其中所述虚设接口不执行所请求的功能;以及
执行分阶段升级,以将远程客户端设备的子集分阶段地从第一核心API升级到第二核心API,其中第二核心API的所述功能取代所述外观API。
2.如权利要求1所述的非暂态计算机可读介质,其中所述指令包括用于执行以下操作的指令:
配置所述外观API以使用外观方法响应来自所述API实现的函数调用,其中该所述外观方法具有与所述功能内包括的方法的方法名称匹配的方法名称。
3.如权利要求1所述的非暂态计算机可读介质,其中所述指令包括用于执行以下操作的指令:
将外观API配置为包括返回函数来代替所述功能内包括的方法的方法主体,其中所述返回函数返回所述功能尚未实现的指示。
4.如权利要求1所述的非暂态计算机可读介质,其中所述指令包括用于执行以下操作的指令:
在部署所述外观API之前:
确定API实现调用不是第一核心API的一部分的第二核心API的功能;以及
识别和选择与该功能相关联的所述外观API,以提供用于与所述API实现交互的虚设接口;
其中所述外观API被配置为从所述API实现接收针对所述功能的请求的动作,其中所述外观API不执行所请求的动作,而是(i)向所述API实现发送表示所请求的动作被执行的成功消息或者(ii)返回所述功能尚未实现的指示。
5.如权利要求1所述的非暂态计算机可读介质,其中第一核心API被配置为访问基于web的信息平台,其中所述基于web的信息平台由分布式云计算环境托管。
6.如权利要求1所述的非暂态计算机可读介质,其中执行所述分阶段升级的指令包括用于执行以下操作的指令:
在将第一核心API的实例升级到第二核心API的期间,将所述功能的方法的方法主体插入到所述外观API中。
7.如权利要求1所述的非暂态计算机可读介质,其中所述API实现包括用于第二核心API的插件。
8.如权利要求1所述的非暂态计算机可读介质,其中所述指令包括用于执行以下操作的指令:
接收来自升级到第二核心API的远程客户端设备的反馈,其中所述反馈描述第二核心API的所述功能的操作。
9.一种计算系统,包括:
至少一个处理器,连接到至少一个存储器;以及
核心API部署模块,存储在非暂态计算机可读介质上并且配置有指令,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
对远程客户端设备执行分阶段发布,以将第一核心应用编程接口API的实例升级到与基于web的信息平台相关联的第二核心API,其中所述分阶段发布包括:
响应于确定API实现依赖第二核心API的功能,在第一核心API的实例被升级之前将外观API部署到第一核心API的实例中,其中所述外观API是用于代替第二核心API的所述功能与所述API实现交互的虚设接口;
其中所述外观接口被配置为(i)从所述API实现接收请求所述功能以避免产生错误的调用,以及(ii)不执行所请求的功能;以及
执行分阶段升级,以将远程客户端设备的子集分阶段地从第一核心API升级到第二核心API,其中第二核心API的所述功能取代所述外观API。
10.如权利要求9所述的计算系统,其中所述外观API配置有空方法主体,所述空方法主体不执行由所述API实现所请求的功能。
11.如权利要求9所述的计算系统,其中所述指令包括使所述至少一个处理器执行以下操作的指令:
在分阶段升级期间,利用第一核心API的第一数据库模式和针对所述基于web的信息平台的第二核心API的第二数据库模式。
12.如权利要求9所述的计算系统,其中所述指令包括使所述至少一个处理器执行以下操作的指令:
在分阶段升级期间,利用数据库模式、编程代码和脚本代码来升级第一核心API。
13.如权利要求9所述的计算系统,其中所述指令包括使所述至少一个处理器执行以下操作的指令:
在执行分阶段升级之前,促进所述API实现到远程客户端设备的部署。
14.如权利要求9所述的计算系统,其中所述指令包括使所述至少一个处理器执行以下操作的指令:
配置所述外观API以使用外观方法响应来自所述API实现的函数调用,其中所述外观方法具有与所述功能内包括的方法的方法名称匹配的方法名称。
15.如权利要求9所述的计算系统,其中所述指令包括使所述至少一个处理器执行以下操作的指令:
将所述外观API配置为包括返回函数来代替所述功能内包括的方法的方法主体,其中所述返回函数返回所述功能尚未实现的指示。
16.如权利要求9所述的计算系统,其中所述指令包括使所述至少一个处理器执行以下操作的指令:
在部署所述外观API之前:
确定API实现调用不是第一核心API的一部分的第二核心API的功能;以及
识别和选择与该功能相关联的所述外观API,以提供用于与所述API实现交互的虚设接口;
其中所述外观API被配置为从所述API实现接收针对所述功能的请求的动作,其中所述外观API不执行所请求的动作,而是(i)向所述API实现发送表示所请求的动作被执行的成功消息或者(ii)发送所述功能尚未实现的消息。
17.一种计算机实现的方法,所述计算机实现的方法涉及包括处理器的计算设备,并且所述计算机实现的方法包括:
由所述处理器对远程客户端设备执行分阶段发布,以将第一核心应用编程接口API的实例升级到与基于web的信息平台相关联的第二核心API,其中所述分阶段发布包括:
响应于确定API实现依赖第二核心API的功能,在第一核心API的实例被升级之前,由所述处理器将外观API部署到第一核心API的实例中,其中所述外观API是用于代替第二核心API的所述功能与所述API实现交互的虚设接口;
其中来自所述API实现的请求第二核心API的所述功能的调用被所述外观API拦截,以避免产生由第一核心API不具有所请求的功能而导致的错误,并且其中所述外观接口不执行所请求的功能;以及
由所述处理器执行分阶段升级,以将远程客户端设备的子集分阶段地从第一核心API升级到第二核心API,其中第二核心API的所述功能取代所述外观API。
18.如权利要求17所述的计算机实现的方法,其中执行第一阶段还包括:
在将第一核心API的实例升级到第二核心API的期间,将所述功能的方法的方法主体插入到所述外观API中。
19.如权利要求17所述的计算机实现的方法,还包括:
接收来自升级到第二核心API的远程客户端设备的反馈,其中所述反馈描述第二核心API的所述功能的操作。
20.如权利要求17所述的计算机实现的方法,还包括:
将所述外观API配置为包括返回函数来代替所述功能内包括的方法的方法主体,其中所述返回函数返回所述功能尚未实现的指示。
CN201811119376.9A 2017-09-25 2018-09-25 使用外观api进行核心api的分阶段升级的系统和方法 Active CN109558150B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/713,806 US10796350B2 (en) 2017-09-25 2017-09-25 Systems and methods for using facade API for phased upgrade of core API
US15/713,806 2017-09-25

Publications (2)

Publication Number Publication Date
CN109558150A CN109558150A (zh) 2019-04-02
CN109558150B true CN109558150B (zh) 2023-08-01

Family

ID=65807820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811119376.9A Active CN109558150B (zh) 2017-09-25 2018-09-25 使用外观api进行核心api的分阶段升级的系统和方法

Country Status (2)

Country Link
US (1) US10796350B2 (zh)
CN (1) CN109558150B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200104118A1 (en) * 2018-09-28 2020-04-02 Bose Corporation Systems and methods for providing staged updates in embedded devices
CN110298735A (zh) * 2019-06-28 2019-10-01 易族智汇(北京)科技有限公司 一种基于saas平台的可定制商城系统
US10785106B1 (en) * 2019-07-29 2020-09-22 Microsoft Technology Licensing Llc Configuration change control for computing environments
US10956244B1 (en) * 2020-08-26 2021-03-23 Coupang Corp. Systems and methods for automated application programming interface evaluation and migration
CN112486539B (zh) * 2020-12-09 2023-08-08 税友软件集团股份有限公司 一种应用更新方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101438261A (zh) * 2006-05-05 2009-05-20 微软公司 执行逐步升级的技术
CN101833465A (zh) * 2010-04-23 2010-09-15 中国科学院声学研究所 一种支持应用程序动态加载运行的嵌入式系统
CN105453044A (zh) * 2013-09-19 2016-03-30 英特尔公司 用于分布式处理任务部分指配的技术

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844639B2 (en) * 2003-11-24 2010-11-30 Ebay Inc. Backward compatibility in database schemas
US7343379B2 (en) * 2004-05-21 2008-03-11 Bea Systems, Inc. System and method for controls
US7558843B2 (en) 2004-07-12 2009-07-07 Netsuite, Inc. Phased rollout of version upgrades in web-based business information systems
US9401822B2 (en) * 2005-06-09 2016-07-26 Whirlpool Corporation Software architecture system and method for operating an appliance exposing key press functionality to a network
US8880682B2 (en) * 2009-10-06 2014-11-04 Emc Corporation Integrated forensics platform for analyzing IT resources consumed to derive operational and architectural recommendations
US9015733B2 (en) * 2012-08-31 2015-04-21 Facebook, Inc. API version testing based on query schema
US8850390B2 (en) * 2010-11-15 2014-09-30 Sap Ag Status management for phased implementation of configuration changes
US9047651B2 (en) * 2012-09-14 2015-06-02 Location Labs, Inc. Contact management system
WO2016118979A2 (en) * 2015-01-23 2016-07-28 C3, Inc. Systems, methods, and devices for an enterprise internet-of-things application development platform
US20160274888A1 (en) * 2015-03-19 2016-09-22 Telefonaktiebolaget L M Ericsson (Publ) Method for in-service software upgrade using version tolerance
US20170187785A1 (en) * 2015-12-23 2017-06-29 Hewlett Packard Enterprise Development Lp Microservice with decoupled user interface

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101438261A (zh) * 2006-05-05 2009-05-20 微软公司 执行逐步升级的技术
CN101833465A (zh) * 2010-04-23 2010-09-15 中国科学院声学研究所 一种支持应用程序动态加载运行的嵌入式系统
CN105453044A (zh) * 2013-09-19 2016-03-30 英特尔公司 用于分布式处理任务部分指配的技术

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
An Empirical Study of API Stability and Adoption in the Android Ecosystem;Tyler McDonnell 等;《2013 IEEE International Conference on Software Maintenance》;第70-79页 *
基于用户使用历史与信誉评价的Web API推荐;曹步清 等;《计算机工程》;第43-48+55页 *

Also Published As

Publication number Publication date
US20190095967A1 (en) 2019-03-28
CN109558150A (zh) 2019-04-02
US10796350B2 (en) 2020-10-06

Similar Documents

Publication Publication Date Title
CN109558150B (zh) 使用外观api进行核心api的分阶段升级的系统和方法
US9317490B2 (en) Systems and methods for 3-tier tag container architecture
JP6463393B2 (ja) テナント移行にわたるテナント・データのリカバリ
US11348187B2 (en) Computerized transaction management module for blockchain networks
US9342330B2 (en) Deploying a user-configured virtual appliance template including a portion of an existing computing application to enhance functionality
US9170921B2 (en) Application testing automation
US11379438B2 (en) Database migration between computing platforms using virtual backups
US10785129B2 (en) Computerized methods and systems for maintaining and modifying cloud computer services
US11269612B2 (en) Low latency dynamic content management
US10620854B1 (en) Validating data for deployment
EP3197132A1 (en) User-specific roaming settings
US9632853B2 (en) Virtualizing integrated calls to provide access to resources in a virtual namespace
US9996600B1 (en) Asynchronous communication of transaction data to clients
US10956142B2 (en) Distributing a composite application
US11816163B2 (en) Systems and methods for improved transactional mainframes
US11025575B2 (en) Message recognition system and method configurable to define new message formats
US20170060650A1 (en) Dynamic service extensibility
CN110858242A (zh) 页面跳转方法及装置
US20210224084A1 (en) Logging of scripts executed in an information technology workflow orchestration system
CN112598461A (zh) 一种关于云产品的交付方法、设备及介质
US11416384B1 (en) System and method for generating and executing automated regression
US20230259347A1 (en) Container based generation of inputs for generic functions
US11567925B2 (en) Concurrent update management
CN115756809A (zh) 任务节点的调用控制及任务执行情况展示方法
CN114860350A (zh) 基于云无盘树状镜像的数据处理的方法及装置

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