IP Library Granted Patent US 10,757,223
Granted Patent B2
US 10,757,223 · App. 16/130,605 · Granted Aug 25, 2020

Alternative service pathway for service application

Inventors: Benjamin Andrew Hjerrild (San Francisco, CA); Naveen Pilanku Narayanan (Daly City, CA); Bruce McLaren Stanley, Jr. (San Francisco, CA)
Assignee: Uber Technologies, Inc.
H04L67/40H04L67/02H04L67/16H04L67/32H04L67/34H04L69/40H04L67/10H04L67/1002H04L67/1034H04L67/1095
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,757,223
App. No.
16/130,605
Granted
Aug 25, 2020
Kind
B2
Abstract

A processor of a client device attempts to load a service using a first application that is pre-configured to communicate with a provider of the service during an initial loading of the first application. The processor determines that the first application has failed to load the service and responsively re-attempts to load the service using the first application. In response to determining that the first application has again failed to load the service during the re-attempt, the processor launches a second application that is not pre-configured to communicate with the provider during an initial loading of the second application. The processor retrieves, using the second application, from the provider, parameters for loading the service, and loads the service, using the second application, based on the parameters.

Claims (73)

1. A method comprising:

attempting to load, on a client device, a first application for execution on the client device, the first application being pre-configured to communicate with a provider for providing a service to a user of the client device;

determining that the first application has failed to load;

in response to determining that the first application has failed to load, loading, on the client device, a second application with a reference to the provider to provide the service, the reference being supplied by the first application to the second application and including an address of the provider, the second application comprising browser application functionality and not being pre-configured to provide the service;

retrieving, using the second application, from the provider, parameters for providing the service; and

providing the service, using the second application, based on the parameters.

2. The method of claim 1 , wherein determining that the first application has failed to load comprises:

retrieving a plurality of checkpoints corresponding to the service;

determining whether the first application reached each checkpoint of the plurality of checkpoints during the attempting; and

in response to determining that the first application did not reach each checkpoint of the plurality of checkpoints during the attempting, determining that the first application has failed to load.

3. The method of claim 1 , further comprising, further in response to determining that the first application has failed to load:

re-attempting to load the first application;

determining whether the first application has again failed to load;

in response to determining that the first application has not again failed to load, refraining from loading the second application; and

in response to determining that the first application has again failed to load, loading the second application.

4. The method of claim 3 , wherein attempting to load the first application comprises attempting to load a plurality of modules of the first application, and wherein re-attempting to load the first application comprises:

iteratively re-loading the first application with, at each iteration, an additional module of the plurality of modules disabled;

determining, at each iteration, whether the re-launching has been performed a threshold number of times; and

in response to determining that the re-launching has been performed the threshold number of times, determining that the first application has again failed to load during the re-attempting.

5. The method of claim 1 , wherein retrieving, using the second application, from the provider, the parameters comprises accessing the parameters using the address.

6. The method of claim 1 , wherein providing the service, using the second application, based on the parameters comprises generating for display a user interface by the second application that is identical to a user interface typically provided by the first application.

7. The method of claim 6 , further comprising:

receiving input from a user by way of the user interface;

retrieving, using the second application, additional information from the provider based on the input; and

altering a visual component of the user interface based on the additional information.

8. A non-transitory computer-readable storage medium storing executable computer program code that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

attempting to load, on a client device, a first application for execution on the client device, the first application being pre-configured to communicate with a provider for providing a service to a user of the client device;

determining that the first application has failed to load;

in response to determining that the first application has failed to load, loading, on the client device, a second application with a reference to the provider to provide the service, the reference being supplied by the first application to the second application and including an address of the provider, the second application comprising browser application functionality and not being pre-configured to provide the service;

retrieving, using the second application, from the provider, parameters for providing the service; and

providing the service, using the second application, based on the parameters.

9. The non-transitory computer-readable storage medium of claim 8 , wherein determining that the first application has failed to load comprises:

retrieving a plurality of checkpoints corresponding to the service;

determining whether the first application reached each checkpoint of the plurality of checkpoints during the attempting; and

in response to determining that the first application did not reach each checkpoint of the plurality of checkpoints during the attempting, determining that the first application has failed to load.

10. The non-transitory computer-readable storage medium of claim 8 , wherein the operations further comprise, further in response to determining that the first application has failed to load:

re-attempting to load the first application;

determining whether the first application has again failed to load;

in response to determining that the first application has not again failed to load, refraining from loading the second application; and

in response to determining that the first application has again failed to load, loading the second application.

11. The non-transitory computer-readable storage medium of claim 10 , wherein attempting to load the first application comprises attempting to load a plurality of modules of the first application, and wherein re-attempting to load the first application comprises:

iteratively re-loading the first application with, at each iteration, an additional module of the plurality of modules disabled;

determining, at each iteration, whether the re-launching has been performed a threshold number of times; and

in response to determining that the re-launching has been performed the threshold number of times, determining that the first application has again failed to load during the re-attempting.

12. The non-transitory computer-readable storage medium of claim 8 , wherein retrieving, using the second application, from the provider, the parameters comprises accessing the parameters using the address.

13. The non-transitory computer-readable storage medium of claim 8 , wherein providing the service, using the second application, based on the parameters comprises generating for display a user interface by the second application that is identical to a user interface typically provided by the first application.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the operations further comprise:

receiving input from a user by way of the user interface;

retrieving, using the second application, additional information from the provider based on the input; and

altering a visual component of the user interface based on the additional information.

15. A system comprising:

a processor configured to execute instructions; and

a non-transitory computer-readable medium having instructions executable by the processor to perform operations of:

attempting to load, on a client device, a first application for execution on the client device, the first application being pre-configured to communicate with a provider for providing a service to a user of the client device;

determining that the first application has failed to load;

in response to determining that the first application has failed to load, loading, on the client device, a second application with a reference to the provider to provide the service, the reference being supplied by the first application to the second application and including an address of the provider, the second application comprising browser application functionality and not being pre-configured to provide the service;

retrieving, using the second application, from the provider, parameters for providing the service; and

providing the service, using the second application, based on the parameters.

16. The system of claim 15 , wherein the instructions to perform operations of determining that the first application has failed to load are further executable by the processor to perform operations of:

retrieving a plurality of checkpoints corresponding to the service;

determining whether the first application reached each checkpoint of the plurality of checkpoints during the attempting; and

in response to determining that the first application did not reach each checkpoint of the plurality of checkpoints during the attempting, determining that the first application has failed to load.

17. The system of claim 15 , wherein, the instructions are further executable by the processor to perform operations of, further in response to determining that the first application has failed to load:

re-attempting to load the first application;

determining whether the first application has again failed to load;

in response to determining that the first application has not again failed to load, refraining from loading the second application; and

in response to determining that the first application has again failed to load, loading the second application.

18. The system of claim 17 , wherein attempting to load the first application comprises attempting to load a plurality of modules of the first application, and wherein re-attempting to load the first application comprises:

iteratively re-loading the first application with, at each iteration, an additional module of the plurality of modules disabled;

determining, at each iteration, whether the re-launching has been performed a threshold number of times; and

in response to determining that the re-launching has been performed the threshold number of times, determining that the first application has again failed to load during the re-attempting.

19. The system of claim 15 , wherein retrieving, using the second application, from the provider, the parameters comprises accessing the parameters using the address.

20. The system of claim 15 , wherein providing the service, using the second application, based on the parameters comprises generating for display a user interface by the second application that is identical to a user interface typically provided by the first application.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Oct 3, 2024
From: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
To: UBER TECHNOLOGIES, INC.
Reel/Frame 069110/0508 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT (TERM LOAN) AT REEL 050767, FRAME 0076 Recorded Sep 11, 2024
From: MORGAN STANLEY SENIOR FUNDING, INC. AS ADMINISTRATIVE AGENT
To: UBER TECHNOLOGIES, INC.
Reel/Frame 069133/0167 →
RELEASE OF SECURITY INTEREST Recorded Mar 10, 2021
From: CORTLAND CAPITAL MARKET SERVICES LLC, AS ADMINISTRATIVE AGENT
To: UBER TECHNOLOGIES, INC.
Reel/Frame 055547/0404 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Oct 24, 2019
From: UBER TECHNOLOGIES, INC.
To: CORTLAND CAPITAL MARKET SERVICES LLC
Reel/Frame 050817/0600 →
SECURITY INTEREST Recorded Oct 18, 2019
From: UBER TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 050767/0109 →
SECURITY INTEREST Recorded Oct 18, 2019
From: UBER TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 050767/0076 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2019
From: HJERRILD, BENJAMIN ANDREW; NARAYANA, NAVEEN PILANKU; STANLEY, BRUCE MCLAREN, JR.
To: UBER TECHNOLOGIES, INC.
Reel/Frame 047892/0714 →
Continuity (2)
Provisional Application 62558343 · Sep 13, 2017
Related Publication 20190082034A1 · Mar 14, 2019