CN111279312A - 服务应用的备选服务路径 - Google Patents
服务应用的备选服务路径 Download PDFInfo
- Publication number
- CN111279312A CN111279312A CN201880069646.1A CN201880069646A CN111279312A CN 111279312 A CN111279312 A CN 111279312A CN 201880069646 A CN201880069646 A CN 201880069646A CN 111279312 A CN111279312 A CN 111279312A
- Authority
- CN
- China
- Prior art keywords
- application
- service
- load
- determining
- failed
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- 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/133—Protocols for remote procedure calls [RPC]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1423—Reconfiguring to eliminate the error by reconfiguration of paths
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- 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
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- 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
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
客户端设备的处理器尝试使用第一应用来加载服务,该第一应用被预配置为在第一应用的初始加载期间与服务的提供方通信。处理器确定第一应用已无法加载服务,并且响应性地重新尝试使用第一应用加载服务。响应于确定在重新尝试期间第一应用已再次无法加载服务,处理器启动第二应用,该第二应用未被预配置为在第二应用的初始加载期间与提供方通信。处理器使用第二应用从提供方取回用于加载服务的参数,并且基于参数使用第二应用来加载服务。
Description
相关申请的交叉引用
本申请要求2017年9月13日提交的美国临时专利申请号62/558,343的权益,其公开内容通过整体引用并入本文。
背景技术
本描述总体上涉及提供与计算机网络应用有关的服务,并且更具体地涉及当应用无法正确加载或经历错误时提供那些服务。
客户端设备及其安装的应用通过执行所安装的应用向用户提供各种功能。在一些情况下,服务应用通常与服务提供方系统进行通信,以向客户端设备的用户提供服务。该服务应用可以被专门化以用于该服务,并且可以例如由服务提供方提供。服务应用可以包括用于向用户提供服务的逻辑和其他特征。在一些情况下,服务应用可能无法正确地起作用,包括阻止加载或引导服务应用的各部分,这可能会阻止服务被提供给设备的用户。当服务为用户协调一些现实生活活动时,诸如事件规划、地图或路线或协调旅行时,这尤其会是有问题的。用户可能也无法轻易确定故障的服务应用的原因或校正。在一些客户端设备中,服务应用可能也无法响应错误而自动校正或更新其代码。
发明内容
服务应用包括用于经由客户端设备上的浏览器应用向客户端提供服务的辅助路径。当服务应用正常操作时,其可以结合服务提供方系统来提供服务。当服务应用加载时,其监测在加载过程中其是否成功到达一个或多个检查点。当服务应用未成功加载或执行时,服务应用向浏览器应用提供请求以联系服务提供方系统,以使用户通过浏览器应用而不是通过服务应用来接收服务。
为了通过浏览器应用发起服务,当服务应用标识了其在先前尝试中已无法加载时,服务应用向浏览器应用发送访问请求,为浏览器应用提供地址和可选的请求参数以访问服务提供方系统。请求参数可以描述服务应用和设备的特性,使得服务提供方系统可以定制其界面和与设备通信以模仿服务提供方应用的外观。另外,服务提供方系统可以向用户提供指令或向浏览器应用提供消息来返回到服务应用,以校正服务应用的行为。这允许设备的用户在最初与服务应用进行交互时继续接收服务,尽管服务应用无法加载或正确执行。
在本公开的一些方面,客户端设备的处理器尝试加载第一应用,该第一应用被预配置为与提供方通信以用于向客户端设备的用户提供服务。例如,处理器尝试加载骑车共享应用,该骑车共享应用被预配置为与骑车共享后端通信,以获取用于提供骑车共享服务的数据。处理器可以确定在尝试期间第一应用已无法加载。
通过(例如,从服务的提供方)取回与服务相对应的多个检查点并确定在尝试期间第一应用是否到达多个检查点中的每个检查点,处理器可以确定第一应用在尝试期间已无法加载应用。响应于确定在尝试期间第一应用未到达多个检查点中的每个检查点,处理器可以确定第一应用已无法加载。
响应于确定第一应用已无法加载,处理器可以重新尝试加载第一应用。在一些实施例中,当尝试加载第一应用时,该过程可能已经尝试加载第一应用的多个模块。当重新尝试加载第一应用时,处理器可以迭代地重新加载第一应用,在每次迭代中,多个模块的附加模块被禁用。处理器可以在每次迭代中确定重新启动是否已被执行了阈值次数,并且响应于确定重新启动已被执行了阈值次数,处理器可以确定在重新尝试期间第一应用已再次无法加载。
响应于确定在重新尝试期间第一应用已再次无法加载服务,处理器可以用对提供方的引用加载第二应用以提供服务,该引用由第一应用供应给第二应用,该第二应用未被预配置为提供服务。例如,第二应用可以是通用浏览器应用,并且引用可以是第一应用向浏览器应用提供的地址(例如,统一资源定位符(URL))以联系提供方来提供服务。
通过由第二应用生成用于显示的用户界面,处理器可以基于参数使用第二应用来加载服务,该用户界面与典型地由第一应用提供的用户界面相同。处理器还可以通过用户界面的方式接收来自用户的输入,使用第二应用从提供方取回附加信息,并基于附加信息更改用户界面的视觉组件。
本发明内容和以下具体实施方式中所描述的特征和优点并不包括全部。鉴于附图、说明书和权利要求书,许多其他特征和优点对于本领域的普通技术人员将是显而易见的。
附图说明
附图(图)1是根据一些实施例的用于客户端设备结合服务提供方系统来提供服务的系统环境的高级别框图。
图2图示了根据一些实施例的用于提供用于向用户提供服务的备选路径的时序图。
图3是根据一些实施例的用于当尝试使用第一应用加载服务失败时使用第二应用加载服务的过程的流程图。
图4是图示了根据一些实施例的用于从机器可读介质读取和执行指令的示例机器的组件的框图。
附图仅出于说明的目的描绘了本发明的实施例。本领域技术人员将从以下描述中容易地认识到,在不脱离本文描述的本发明原理的情况下,可以采用本文所图示的结构和方法的备选实施例。
具体实施方式
附图(图1)是根据一些实施例的用于客户端设备100结合服务提供方系统120来提供服务的系统环境的高级别框图。图1包括客户端设备100、网络110和服务提供方系统120。系统环境的备选实施例可以具有任何数目的用户设备100以及多个服务提供方系统120。在不同实施例中,由图1的各个实体执行的特定功能可以不同。
客户端设备100结合服务提供方系统120向客户端设备100的用户提供服务。该服务通常由与服务提供方系统120通信的服务应用102提供,该服务提供方系统120在提供服务时向服务应用102提供信息以及其他指令。作为一个示例,被提供给用户的服务可以向用户提供各种物理和关系服务,诸如地图、路线或旅行协调。对于许多用户而言,接收此服务对于完成诸如游览城市之类的现实世界任务可能是必需的。当由客户端设备100提供服务时,客户端设备经由网络110与服务提供方系统120进行通信。客户端设备100可以是各种计算设备,诸如移动设备、平板计算机或膝上型计算机。
为了与服务交互并接收服务,设备的用户通常与服务应用102交互。服务应用102是可以在客户端设备100上执行的应用,并且通常被专门化和被特别编程以向用户提供服务。例如,服务应用可以包括特定于服务的呈现和用户接口逻辑,并且还可以包括用于提供服务的业务逻辑和其他编程逻辑。因此,并且作为一个示例,服务应用102可以与服务提供方系统120处的服务端点122直接通信。服务端点122可以为服务应用提供接口以请求与服务有关的信息。例如,服务端点122可以被实现为应用编程接口(API)或接收并服务于对该服务的特定请求的其他服务。作为运输服务的示例,服务端点可以从服务应用102接收针对运输的请求,并向服务应用102提供关于地图数据、可用运输提供方、预期运输成本等的信息,以显示给客户端设备100的用户。
服务应用102可以包括各种配置和软件模块。例如,被安装在特定客户端设备上的服务应用102可以包括一个或多个附加软件模块或相对于服务应用102的其他安装的变体。这些配置以及对服务应用102的其他修改可能导致服务应用无法正确执行或加载。
为了解决服务应用102无法加载的风险,服务应用102在其加载过程中包括一个或多个检查点。检查点可以被预配置或者可以从服务提供方系统120被取回(例如,在任意时间、周期性地、在加载尝试期间、或在应用的某个其他操作期间)。检查点被用来验证服务应用102的软件模块成功加载到服务应用102的正常操作状态。当客户端设备100的用户发起服务应用102时,服务应用102加载服务应用的组件,并在组件成功加载时指示检查点被到达。当最初启动服务应用时,服务应用102可以设置检查点的标志或其他表示,以指示加载过程已开始并且检查点尚未被到达。当检查点被到达时,针对该检查点的标志被指明为已被成功加载,并且当所有检查点已被到达时,可以关闭加载过程开始的指示(或者可以以其他方式指示成功加载)。以这种方式,如果服务应用102无法成功加载,则可以在加载服务应用的一个或多个后续尝试上使用检查点,以做出服务应用102已无法加载的最终确定。
当服务应用无法加载时,服务应用102可以在尝试恢复服务应用的功能性并将服务提供给用户时执行一组步骤。随着服务应用无法加载的次数增加,服务应用加载过程可以执行附加步骤,但是可以使用任何数目的针对服务应用102的恢复步骤及其变体。作为一个示例,服务应用可以最初在客户端设备100上重置或删除与服务应用102相关的本地数据。作为后续的步骤,服务应用102可以使任何软件模块或配置回到默认状态。通常,当执行这些尝试的恢复步骤时,服务应用102可以加载尽可能少的模块和服务,以增加服务应用成功执行恢复步骤(并且不会再次无法加载)的可能性。
在一些客户端设备102上,服务应用102在其自动更新或修改其代码或应用的能力方面可能受到限制。通常,服务应用102包括用于在客户端设备102上执行的经编译代码。客户端设备100可以包括应用更新控制器106,该应用更新控制器106防止客户端设备上的应用执行对代码的修改。虽然应用更新控制器106常常可以被用来防止恶意应用在客户端设备100上安装后改变行为,但是其也可以防止服务应用102自动执行对服务应用102的更新并且防止修改服务应用102的执行代码。
在一些情况下,这些其他步骤可能无法成功恢复服务应用102。当服务应用无法加载阈值次数(例如,作为恢复步骤之一)时,通过向浏览器应用104提供请求,服务应用102可以使用备选路径来允许用户仍然接收服务。浏览器应用104是用于通过网络访问资源并与资源进行交互的应用,并且通常没有被特别编程用于提供服务。因此,典型的浏览器应用104包括处理标记语言或脚本代码以取回、处理和显示资源并向用户显示界面的应用。当服务应用102无法加载时,其向浏览器应用104提供访问请求,指明浏览器应用104要取回和加载的资源的地址或位置。来自服务应用102的请求可以向浏览器应用104提供统一资源定位符(URL),并且在访问请求中或与访问请求一起指定一组参数。作为示例,统一资源定位符可以向浏览器应用104指定超文本传输协议请求以访问“m.serviceprovider.com/failedserviceapplication”。
访问请求可以指定服务提供方系统120处的浏览器前端124的资源位置。由于服务应用102已失败,并且浏览器应用104没有被特别编程用于该服务,因此浏览器前端124可以向浏览器应用104提供显示和编程逻辑,以向用户提供服务。因此,浏览器前端124可以向浏览器应用104提供标记和脚本资源,从而向用户提供用于提供服务的界面和其他交互。然后,浏览器应用104可以向服务端点122做出附加请求,以履行服务所要求的请求。备选地,浏览器应用104可以与浏览器前端124交互以服务于请求,并且可以由浏览器前端124向服务端点122做出对服务的请求。
来自浏览器应用104的访问请求中所包括的参数还可以指定客户端设备100和所安装的服务应用102的参数和特性。作为示例参数,这些可以指定服务应用的版本、配置和应用的软件封装、与服务应用相关联的用户或设备的标识符、或者设备的地理位置。这些参数可以基于从服务应用102被发送到浏览器应用104的请求或者从浏览器应用104被发送到服务提供方系统120的访问请求。基于参数,服务提供方系统120可以记录无法加载的客户端设备100的数据,并且可以使用该备选服务路径来确定服务应用102的安装版本及其配置是否存在更一般的问题。另外,参数可以被用于客户端设备100的以及一个或多个附加客户端设备100的认证和验证。
此外,参数可以被用来配置被提供给浏览器应用104的显示指令(例如,标记语言资源或适用的脚本),以模拟将由服务应用102提供的界面。例如,特定的服务应用102可以以特定的布置或界面显示各种用户界面组件,并且由浏览器应用104向用户提供的显示可以模仿该界面,使得用户可能不会注意到实际上是浏览器应用104而不是服务应用102是提供该界面的应用。以这种方式,用户可以与图标或其他界面元素进行交互以开始服务应用102的执行。当该服务应用102无法正确加载并经由浏览器应用104执行备选路径时,浏览器应用104然后可以显示与用户在与服务应用102交互时所期望的界面相类似的用户界面或其副本,从而向用户提供了无缝转换,即使用户现在是通过客户端设备100上的不同应用来接收服务。
服务提供方系统120还可以通过浏览器应用104的显示向用户提供指令。例如,服务提供方系统120可以指令用户通过由浏览器应用104提供的界面取回并安装对服务应用102的更新。
当服务提供方系统120使用备选路径从各种客户端设备100接收请求时(即,对服务的请求源自用户与服务应用102进行交互,而不是用户直接通过与浏览器应用140的交互来请求对服务提供方120的访问),服务提供方系统120可以记录该数据以确定服务应用102的哪些配置和版本无法加载。服务提供方系统120的管理员然后可以使用该数据来确定优先化并修复服务应用的哪些配置。
在一些配置中,服务应用102还可以包括用于其执行的动态逻辑,该动态逻辑可以在不修改所安装的服务应用的情况下变化。浏览器前端124还可以将指令发送到浏览器应用104以递送给服务应用102。这些指令可以指令服务应用102以修改服务应用102的配置,并且可以包括针对服务应用102的修改的动态逻辑,其可以允许服务应用102成功加载。例如,动态指令可以被实现为服务应用102所使用的JavaScript文件,并且来自服务提供方系统120的指令可以被浏览器应用104使用以在服务应用102处修改这些文件。附加地或备选地,来自浏览器前端124的指令还可以指令服务应用102重新启动其恢复步骤的序列。在一些配置中,因为服务应用102已经失败,所以其可以避免尝试加载将继续导致应用失败的模块。通过经由浏览器应用104提供指令,服务应用102可以将该指令用作对加载模块进行重试的信号,例如在服务提供方系统提供了对服务应用的动态逻辑的修改之后。
图2图示了用于提供用于向用户提供服务的备选路径的时序图。最初,用户可以与服务应用102交互以加载服务应用200,并且服务应用102与服务提供方系统120交互以向用户205提供服务。在一些示例中,该服务由与服务端点122交互的服务应用102提供。
在另一实例中,服务应用可以被加载210并且无法成功加载服务应用102的模块或其他组件,从而导致服务应用102无法到达检查点215。当服务应用失败时,服务应用可以再次尝试被加载220,在此时,服务应用标识加载应用的先前尝试已失败并且没有到达检查点225。在一些实施例中,在系统标识失败的加载225之前可以存在阈值数目的服务应用加载尝试。服务应用然后可以执行一组恢复动作,其可以包括使用浏览器应用104经由备选路径发起服务230。为了使用浏览器应用104,服务应用向浏览器应用104提供访问请求235,其可以包括如上所讨论的各种参数。浏览器应用104接收该请求并被加载240。浏览器应用104然后通过遵循由访问请求所指定的地址或位置来访问服务提供方系统245,并将访问请求250发送给服务提供方系统120。服务提供方系统然后可以经由浏览器应用提供服务255。
如上所讨论,服务提供方还可以使用访问请求的参数来定制浏览器应用的显示,并通过修改服务应用102或向用户提供这样做的指令来复原服务应用102的功能性。
以这些方式,用户可以继续从服务提供方系统120接收服务,并且服务提供方系统120可以使用浏览器应用104与浏览器前端124的交互以提供服务并提供指令给用户或服务应用102以复原服务应用102的功能性。
图3是根据一些实施例的用于当尝试使用第一应用加载服务已失败时使用第二应用加载服务的过程的流程图。
当客户端设备的处理器(例如,处理器402)尝试302加载第一应用以在客户端设备上执行时,该过程300开始,该第一应用被预配置为与提供方进行通信以向客户端设备的用户提供服务。例如,客户端设备100的处理器402可以尝试加载服务应用102,该服务应用102被预配置为(例如,通过服务端点122的方式)与服务提供方系统120通信并从服务提供方系统120取回数据(例如,在加载过程期间或在尝试提供服务期间)。
在尝试加载第一应用之后,处理器确定304在尝试期间第一应用是否无法加载。例如,处理器可以执行第一应用的模块,该模块确定第一应用是否无法加载(例如,如上所述,使用检查点)。如果处理器确定第一应用已成功加载,则过程300结束。然而,如果处理器确定第一应用尚未成功加载,则处理器可选地重新尝试306使用第一应用加载服务(例如,通过重新启动服务应用102)。然后,处理器确定308在重新尝试期间第一应用是否再次无法加载服务。如果处理器在重新尝试期间确定第一应用已成功加载,则过程300结束。然而,如果处理器确定在重新尝试期间第一应用再次无法加载(或者如果未进行重新尝试),则过程300继续。
随着过程300继续,处理器用对提供方的引用(例如,提供方的地址)加载310第二应用以提供服务,该引用由第一应用供应给第二应用,第二应用未被预配置为提供服务。例如,客户端设备100的处理器402启动浏览器应用104,该浏览器应用104未被预配置有用于与提供方(例如,服务提供方系统120)进行通信的引用。为了提供服务的目的,处理器可以被使得:基于接收到或检测到来自第一应用的加载第二应用的指令,加载第二应用。然后,例如通过使用引用(例如,地址)与提供方进行通信,处理器使用第二应用从提供方取回312用于提供服务的参数。例如,客户端设备100的处理器402使用浏览器应用104通过网络110从浏览器前端124取回用于提供服务的参数。最后,处理器基于参数使用第二应用提供314服务。例如,处理器基于参数加载用户界面,该用户界面使用浏览器应用104模仿服务应用102的正常视觉输出。
图4是图示了用于从机器可读介质读取和执行指令的示例机器的组件的框图。具体地,图4以计算机系统400的示例形式示出了服务提供方系统120和客户端设备100的示意图表示。计算机系统400可以被用来执行指令(例如,程序代码或软件)以用于使机器执行本文所述的任何一个或多个方法(或过程)。在备选实施例中,机器作为独立设备或连接到其他机器的连接的(例如,联网的)设备操作。在网络部署中,机器可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力操作,或者在对等(或分布式)网络环境中作为对等机器操作。
机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、智能电话、物联网(IoT)设备、网络路由器、交换机或桥接器、或者能够执行指令(顺序地或以其他方式)的任何机器,这些指令指定了该机器要采取的动作。此外,虽然仅图示了单个机器,但是术语“机器”也应被理解为包括任何机器的集合,这些机器个体地或共同地执行指令以执行本文所讨论的任何一个或多个方法。
示例计算机系统400包括一个或多个处理单元(通常为处理器402)。处理器402例如是中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、控制器、状态机、一个或多个专用集成电路(ASIC)、一个或多个无线电频率集成电路(RFIC)或这些的任何组合。计算机系统400还包括主存储器406。计算机系统可以包括存储设备408。处理器402、存储器406和存储设备408经由总线408进行通信。
此外,计算机系统406可以包括存储器406、图形适配器412以提供用于显示器418的接口。计算机系统400还可以包括字母数字输入设备410(例如,键盘)、指向设备414(例如,鼠标、轨迹球、操纵杆、运动传感器或其他指向工具)和网络适配器416,其也被配置为经由总线408进行通信。在一个实施例中,处理器402的功能性由存储器控制器集线器420和I/O控制器集线器422来提供。
存储单元416包括机器可读介质,诸如存储器406,在其上存储了体现本文所述的方法或功能中的任何一个或多个的指令(例如软件)。例如,指令可以包括图1中描述的系统的模块的功能性。在计算机系统400执行指令期间,指令还可以全部或至少部分地驻留在存储器406内或处理器402内(例如,在处理器的高速缓冲存储器内),主存储器406和处理器402也构成机器可读介质。可以经由网络适配器416传输或接收指令。
尽管在示例实施例中存储器406被示出为单个介质,但是术语“机器可读介质”应被认为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库或相关联的高速缓存和服务器)。术语“机器可读介质”也应被认为包括能够存储指令的任何介质,该指令由机器执行并且使机器执行本文公开的任何一个或多个方法。术语“机器可读介质”包括但不限于固态存储器、光学介质和磁性介质形式的数据存储库。
为了说明的目的已经呈现了实施例的前述描述;其并不旨在穷举或将专利权限制为所公开的精确形式。相关领域的技术人员可以理解,根据以上公开,许多修改和变体是可能的。
本描述的一些部分根据信息操作的符号表示和算法来描述实施例。这些算法的描述和表示通常由数据处理领域的技术人员用来将其工作的实质有效地传达给本领域的其他技术人员。这些操作虽然在功能上、在计算上或在逻辑上被描述,但其应被理解为由计算机程序或等效电气电路、微代码等来实现。此外,在不失一般性的情况下,将这些操作布置称为模块有时也是方便的。所描述的操作及其关联的模块可以以软件、固件、硬件或其任何组合来体现。
可以单独地或与其他设备相组合地利用一个或多个硬件或软件模块来执行或实现本文所描述的任何步骤、操作或过程。在一个实施例中,用计算机程序产品来实现软件模块,该计算机程序产品包括包含计算机程序代码的计算机可读介质,该计算机可读介质可以由计算机处理器执行以用于执行所描述的任何或所有步骤、操作或过程。
实施例也可以涉及用于执行本文中的操作的装置。该装置可以被特别构造用于所需目的,和/或它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算设备。这样的计算机程序可以被存储在非瞬态有形计算机可读存储介质中,或者被存储在可以被耦合到计算机系统总线的适合于存储电子指令的任何类型的介质中。此外,说明书中提到的任何计算系统可以包括单个处理器,或者可以是采用多个处理器设计以提高计算能力的架构。
实施例也可以涉及通过本文所描述的计算过程产生的产品。这样的产品可以包括由计算过程产生的信息,其中该信息被存储在非瞬态的有形计算机可读存储介质上,并且可以包括本文所描述的计算机程序产品的任何实施例或其他数据组合。
最后,本说明书中使用的语言主要是为了可读性和指导性目的而被选择,并且其没有被选择来勾画或限制本发明的主题。因此,旨在使专利权的范围不受该具体实施方式的限制,而是受基于此的申请所发布的任何权利要求的限制。因此,实施例的公开内容旨在说明所附权利要求中阐述的专利权的范围,而不是限制所附权利要求中阐述的专利权的范围。
Claims (20)
1.一种方法,包括:
尝试加载用于在客户端设备上执行的第一应用,所述第一应用被预配置为与提供方通信,以用于向所述客户端设备的用户提供服务;
确定所述第一应用已无法加载;
响应于确定所述第一应用已无法加载,用对所述提供方的引用来加载第二应用以提供所述服务,所述引用由所述第一应用供应给所述第二应用,所述第二应用未被预配置为提供所述服务;
使用所述第二应用从所述提供方取回用于提供所述服务的参数;以及
基于所述参数使用所述第二应用来提供所述服务。
2.根据权利要求1所述的方法,其中确定所述第一应用已无法加载包括:
取回对应于所述服务的多个检查点;
确定在所述尝试期间所述第一应用是否到达了所述多个检查点中的每个检查点;以及
响应于确定在所述尝试期间所述第一应用未到达所述多个检查点中的每个检查点,确定所述第一应用已无法加载。
3.根据权利要求1所述的方法,还包括:响应于确定所述第一应用已无法加载而进一步:
重新尝试加载所述第一应用;
确定所述第一应用是否已再次无法加载;
响应于确定所述第一应用没有再次无法加载,制止加载所述第二应用;以及
响应于确定所述第一应用已再次无法加载,加载所述第二应用。
4.根据权利要求3所述的方法,其中尝试加载所述第一应用包括:尝试加载所述第一应用的多个模块,并且其中重新尝试加载所述第一应用包括:
迭代地重新加载所述第一应用,其中在每次迭代时,所述多个模块的附加模块被禁用;
在每次迭代时,确定所述重新启动是否已被执行了阈值次数;以及
响应于确定所述重新启动已被执行了所述阈值次数,确定在所述重新尝试期间所述第一应用已再次无法加载。
5.根据权利要求1所述的方法,其中所述引用是所述提供方的地址,并且其中
使用所述第二应用从所述提供方取回所述参数包括:使用所述地址访问所述参数。
6.根据权利要求1所述的方法,其中基于所述参数使用所述第二应用来提供所述服务包括:由所述第二应用生成用于显示的用户界面,所述用户界面与典型地由所述第一应用提供的用户界面相同。
7.根据权利要求6所述的方法,还包括:
通过所述用户界面的方式接收来自用户的输入;
基于所述输入,使用所述第二应用从所述提供方取回附加信息;以及
基于所述附加信息,更改所述用户界面的视觉组件。
8.一种存储可执行计算机程序代码的非瞬态计算机可读存储介质,所述可执行计算机程序代码在由一个或多个处理器执行时,使所述一个或多个处理器执行操作,所述操作包括:
尝试加载用于在客户端设备上执行的第一应用,所述第一应用被预配置为与提供方通信,以用于向所述客户端设备的用户提供服务;
确定所述第一应用已无法加载;
响应于确定所述第一应用已无法加载,用对所述提供方的引用来加载第二应用以提供所述服务,所述引用由所述第一应用供应给所述第二应用,所述第二应用未被预配置为提供所述服务;
使用所述第二应用从所述提供方取回用于提供所述服务的参数;以及
基于所述参数使用所述第二应用来提供所述服务。
9.根据权利要求8所述的非瞬态计算机可读存储介质,其中确定所述第一应用已无法加载包括:
取回对应于所述服务的多个检查点;
确定在所述尝试期间所述第一应用是否到达了所述多个检查点中的每个检查点;以及
响应于确定在所述尝试期间所述第一应用未到达所述多个检查点中的每个检查点,确定所述第一应用已无法加载。
10.根据权利要求8所述的非瞬态计算机可读存储介质,其中所述操作还包括:响应于确定所述第一应用已无法加载而进一步:
重新尝试加载所述第一应用;
确定所述第一应用是否已再次无法加载;
响应于确定所述第一应用没有再次无法加载,制止加载所述第二应用;以及
响应于确定所述第一应用已再次无法加载,加载所述第二应用。
11.根据权利要求10所述的非瞬态计算机可读存储介质,其中尝试加载所述第一应用包括:尝试加载所述第一应用的多个模块,并且其中重新尝试加载所述第一应用包括:
迭代地重新加载所述第一应用,并且在每次迭代时,所述多个模块的附加模块被禁用;
在每次迭代时,确定所述重新启动是否已被执行了阈值次数;以及
响应于确定所述重新启动已被执行了所述阈值次数,确定在所述重新尝试期间所述第一应用已再次无法加载。
12.根据权利要求8所述的非瞬态计算机可读存储介质,其中所述引用是所述提供方的地址,并且其中
使用所述第二应用从所述提供方取回所述参数包括:使用所述地址访问所述参数。
13.根据权利要求8所述的非瞬态计算机可读存储介质,其中基于所述参数使用所述第二应用来提供所述服务包括:由所述第二应用生成用于显示的用户界面,所述用户界面与典型地由所述第一应用提供的用户界面相同。
14.根据权利要求13所述的非瞬态计算机可读存储介质,其中所述操作还包括:
通过所述用户界面接收来自用户的输入;
基于所述输入,使用所述第二应用从所述提供方取回附加信息;以及
基于所述附加信息,更改所述用户界面的视觉组件。
15.一种系统,包括:
处理器,所述处理器被配置为执行指令;以及
具有指令的非瞬态计算机可读介质,所述指令由所述处理器可执行以执行以下操作:
尝试加载用于在客户端设备上执行的第一应用,所述第一应用被预配置为与提供方通信,以用于向所述客户端设备的用户提供服务;
确定所述第一应用已无法加载;
响应于确定所述第一应用已无法加载,用对所述提供方的引用来加载第二应用以提供所述服务,所述引用由所述第一应用供应给所述第二应用,所述第二应用未被预配置为提供所述服务;
使用所述第二应用从所述提供方取回用于提供所述服务的参数;以及
基于所述参数使用所述第二应用来提供所述服务。
16.根据权利要求15所述的系统,其中用以执行确定所述第一应用已无法加载的操作的所述指令还由所述处理器可执行以执行以下操作:
取回对应于所述服务的多个检查点;
确定在所述尝试期间所述第一应用是否到达了所述多个检查点中的每个检查点;以及
响应于确定在所述尝试期间所述第一应用未到达所述多个检查点中的每个检查点,确定所述第一应用已无法加载。
17.根据权利要求15所述的系统,其中所述指令还由所述处理器可执行以执行以下操作:响应于确定所述第一应用已无法加载而进一步:
重新尝试加载所述第一应用;
确定所述第一应用是否已再次无法加载;
响应于确定所述第一应用没有再次无法加载,制止加载所述第二应用;以及
响应于确定所述第一应用已再次无法加载,加载所述第二应用。
18.根据权利要求17所述的系统,其中尝试加载所述第一应用包括:尝试加载所述第一应用的多个模块,并且其中重新尝试加载所述第一应用包括:
迭代地重新加载所述第一应用,并且在每次迭代时,所述多个模块的附加模块被禁用;
在每次迭代时,确定所述重新启动是否已被执行了阈值次数;以及
响应于确定所述重新启动已被执行了所述阈值次数,确定在所述重新尝试期间所述第一应用已再次无法加载。
19.根据权利要求15所述的系统,其中所述引用是所述提供方的地址,并且其中
使用所述第二应用从所述提供方取回所述参数包括:使用所述地址访问所述参数。
20.根据权利要求15所述的系统,其中基于所述参数使用所述第二应用来提供所述服务包括:由所述第二应用生成用于显示的用户界面,所述用户界面与典型地由所述第一应用提供的用户界面相同。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762558343P | 2017-09-13 | 2017-09-13 | |
US62/558,343 | 2017-09-13 | ||
PCT/IB2018/057031 WO2019053636A1 (en) | 2017-09-13 | 2018-09-13 | SERVICE PATH IN VARIANT FOR SERVICE APPLICATION |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111279312A true CN111279312A (zh) | 2020-06-12 |
CN111279312B CN111279312B (zh) | 2022-05-27 |
Family
ID=65631972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880069646.1A Active CN111279312B (zh) | 2017-09-13 | 2018-09-13 | 服务应用的备选服务路径 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10757223B2 (zh) |
EP (1) | EP3682328B1 (zh) |
CN (1) | CN111279312B (zh) |
WO (1) | WO2019053636A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3635538A4 (en) | 2017-06-05 | 2021-03-10 | Umajin Inc. | PROCEDURES AND SYSTEMS FOR AN APPLICATION SYSTEM |
US12020354B2 (en) | 2017-06-05 | 2024-06-25 | Umajin Inc. | Hub and spoke classification system |
US12001917B2 (en) | 2017-06-05 | 2024-06-04 | Umajin Inc. | Hub-and-spoke classification system and methods |
US11922564B2 (en) | 2017-06-05 | 2024-03-05 | Umajin Inc. | Generative content system that supports location-based services and methods therefor |
US11983641B2 (en) * | 2017-06-05 | 2024-05-14 | Umajin Inc. | Asset tracking system and methods |
CN115705241B (zh) * | 2021-08-10 | 2023-12-15 | 荣耀终端有限公司 | 应用的调度方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060236150A1 (en) * | 2005-04-01 | 2006-10-19 | Dot Hill Systems Corporation | Timer-based apparatus and method for fault-tolerant booting of a storage controller |
CN102571757A (zh) * | 2011-12-16 | 2012-07-11 | 北京视博云科技有限公司 | 提供网页服务的方法及系统 |
CN105808282A (zh) * | 2014-12-31 | 2016-07-27 | 北京神州泰岳软件股份有限公司 | 一种更新应用程序网页内容的方法和装置 |
US20160357451A1 (en) * | 2015-06-02 | 2016-12-08 | Prophetstor Data Services, Inc. | Storage system having node with light weight container |
CN107133073A (zh) * | 2017-04-28 | 2017-09-05 | 努比亚技术有限公司 | 一种基于动态配置的网页加载方法、移动终端及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090013317A1 (en) * | 2007-02-08 | 2009-01-08 | Airnet Communications Corporation | Software Management for Software Defined Radio in a Distributed Network |
US7941700B2 (en) | 2009-03-02 | 2011-05-10 | Microsoft Corporation | Operating system-based application recovery |
US9128899B1 (en) | 2012-07-31 | 2015-09-08 | Google Inc. | Predictive failover planning |
US9483636B2 (en) * | 2014-01-17 | 2016-11-01 | Microsoft Technology Licensing, Llc | Runtime application integrity protection |
JP6763245B2 (ja) * | 2016-09-13 | 2020-09-30 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
US10346158B2 (en) * | 2017-03-24 | 2019-07-09 | Accenture Global Solutions Limited | Application management platform |
US10521612B2 (en) * | 2017-06-21 | 2019-12-31 | Ca, Inc. | Hybrid on-premises/software-as-service applications |
-
2018
- 2018-09-13 US US16/130,605 patent/US10757223B2/en active Active
- 2018-09-13 EP EP18856833.1A patent/EP3682328B1/en active Active
- 2018-09-13 CN CN201880069646.1A patent/CN111279312B/zh active Active
- 2018-09-13 WO PCT/IB2018/057031 patent/WO2019053636A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060236150A1 (en) * | 2005-04-01 | 2006-10-19 | Dot Hill Systems Corporation | Timer-based apparatus and method for fault-tolerant booting of a storage controller |
CN102571757A (zh) * | 2011-12-16 | 2012-07-11 | 北京视博云科技有限公司 | 提供网页服务的方法及系统 |
CN105808282A (zh) * | 2014-12-31 | 2016-07-27 | 北京神州泰岳软件股份有限公司 | 一种更新应用程序网页内容的方法和装置 |
US20160357451A1 (en) * | 2015-06-02 | 2016-12-08 | Prophetstor Data Services, Inc. | Storage system having node with light weight container |
CN107133073A (zh) * | 2017-04-28 | 2017-09-05 | 努比亚技术有限公司 | 一种基于动态配置的网页加载方法、移动终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
匿名: "javascript-Open a native app with a web fallback-Stack Overflow", 《HTTPS://STACKOVERFLOW.COM/QUESTIONS/12583855/OPEN-A-NATIVE-APP-WITH-A-WEB-FAL-BACK》 * |
Also Published As
Publication number | Publication date |
---|---|
US20190082034A1 (en) | 2019-03-14 |
WO2019053636A1 (en) | 2019-03-21 |
EP3682328B1 (en) | 2024-05-15 |
EP3682328A4 (en) | 2021-04-21 |
CN111279312B (zh) | 2022-05-27 |
US10757223B2 (en) | 2020-08-25 |
EP3682328A1 (en) | 2020-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111279312B (zh) | 服务应用的备选服务路径 | |
CN107783795B (zh) | 应用程序启动方法、装置、计算机设备和存储介质 | |
US9519654B2 (en) | Method, device, processing center and system for desktop synchronization | |
US8489922B2 (en) | Networked recovery system | |
US8589862B2 (en) | Application loading | |
US20150304440A1 (en) | Systems and Methods for Pushing Applications | |
US10069940B2 (en) | Deployment meta-data based applicability targetting | |
US20170052854A1 (en) | Method and system for performing automatic system recovery | |
CN106250192A (zh) | 上位机的软件升级方法及系统 | |
CN107291481B (zh) | 一种组件更新方法、装置和系统 | |
US20150058461A1 (en) | Image management in cloud environments | |
JP2019530089A (ja) | ウェブページとネイティブアプリケーションの間の通信を実現する方法及び装置並びに電子装置 | |
CN107957837B (zh) | 网页应用程序的快捷方式生成方法、装置和终端设备 | |
CN106257418B (zh) | 用于通过使用辅助应用来评价应用的技术 | |
US9043779B2 (en) | Loading remote binaries onto a write-protected device | |
US11301227B2 (en) | Server apparatus, information processing apparatus, and control method for installing application | |
US20170270031A1 (en) | Information processing apparatus, test execution method, and computer-readable recording medium | |
US9122687B2 (en) | Crash recovery for attended operating system installations | |
TWI581187B (zh) | 傳送用以安裝作業系統之資料影像的技術 | |
US20140282446A1 (en) | Modification of compiled applications and application management using retrievable policies | |
CN114391136A (zh) | 增强的虚拟机镜像管理系统 | |
US11354138B1 (en) | Optimizing plugin loading | |
CN107203915B (zh) | 数据存储方法及装置 | |
TW202232476A (zh) | 共享軟體方案之建置與部署系統、方法及電腦可讀媒介 | |
US20230259347A1 (en) | Container based generation of inputs for generic functions |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40031575 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |