IP Library Granted Patent US 11,293,770
Granted Patent B2
US 11,293,770 · App. 16/727,658 · Granted Apr 5, 2022

Geographic routing engine

Inventors: John Brian Stewart (Charlotte, NC); Dinesh Premalal Weerapurage (Morrison, CO); Timothy Alan Carnes (Seattle, WA); Christopher Sebastian Groer (Knoxville, TN); Lahiru Sandakith Pileththuwasan Gallege (Knoxville, TN); Chenlu Lou (Knoxville, TN)
Assignee: salesforces.com, Inc.
G01C21/3461G01C21/3438G01C21/3605G06F16/29
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 11,293,770
App. No.
16/727,658
Granted
Apr 5, 2022
Kind
B2
Abstract

A server within an on-demand computing services environment may receive a request to determine a route that involves a set of geographic locations. The server may identify pre-computed path information suitable for responding to the request. A route may be determined based on the identified information, and route information may be transmitted in response to the request.

Claims (35)

1. A method comprising:

receiving a route optimization request message at a server within an on-demand computing services environment, the route optimization request message identifying a first plurality of geographic locations associated with a routing request from a client entity;

identifying via a processor one of a plurality of geographic zones based on the route optimization request message, the identified geographic zone including the first plurality of geographic locations and a second plurality of geographic locations;

retrieving route optimization information from a designated one of a plurality of zone servers, the designated zone server being associated with the identified geographic zone, the route optimization information identifying transit information between each of a plurality of pairs of the second plurality of geographic locations;

determining a route to traverse the first plurality of geographic locations based on the retrieved route optimization information; and

transmitting, via a communication interface, a response message identifying the route to a client machine associated with the client entity.

2. The method recited in claim 1 , wherein a designated geographic area is included in two or more of the geographic zones.

3. The method recited in claim 1 , wherein the identified geographic zone is the smallest of the plurality of zones that includes the first plurality of geographic locations.

4. The method recited in claim 1 , wherein the transit information identifies a first plurality of transit time values, each transit time value identifying a respective transit time between two or more of the second plurality of geographic locations.

5. The method recited in claim 4 , wherein determining the route to traverse the first plurality of geographic locations involves determining a second plurality of transit time values by interpolating from two or more of the first plurality of transit time values.

6. The method recited in claim 5 , wherein one or more of the first plurality of transit time values are determined by the designated zone server based on one or more observed travel time values.

7. The method recited in claim 5 , wherein each of the first plurality of transit time values is stored in a shortest path matrix computed by the designated zone server.

8. The method recited in claim 1 , wherein the server is included within an on-demand computing services environment configured to provide computing services to a plurality of clients via a network, the plurality of clients including the client entity.

9. A computing device configured to perform a method, the method comprising:

receiving a route optimization request message at a server within an on-demand computing services environment, the route optimization request message identifying a first plurality of geographic locations associated with a routing request from a client entity;

identifying via a processor one of a plurality of geographic zones based on the route optimization request message, the identified geographic zone including the first plurality of geographic locations and a second plurality of geographic locations;

retrieving route optimization information from a designated one of a plurality of zone servers, the designated zone server being associated with the identified geographic zone, the route optimization information identifying transit information between each of a plurality of pairs of the second plurality of geographic locations;

determining a route to traverse the first plurality of geographic locations based on the retrieved route optimization information; and

transmitting, via a communication interface, a response message identifying the route to a client machine associated with the client entity.

10. The computing device recited in claim 9 , wherein a designated geographic area is included in two or more of the geographic zones.

11. The computing device recited in claim 9 , wherein the identified geographic zone is the smallest of the plurality of zones that includes the first plurality of geographic locations.

12. The computing device recited in claim 9 , wherein the transit information identifies a first plurality of transit time values, each transit time value identifying a respective transit time between two or more of the second plurality of geographic locations.

13. The computing device recited in claim 9 , wherein determining the route to traverse the first plurality of geographic locations involves determining a second plurality of transit time values by interpolating from two or more of the first plurality of transit time values.

14. The computing device recited in claim 9 , wherein one or more of the first plurality of transit time values are determined by the designated zone server based on one or more observed travel time values.

15. One or more non-transitory machine-readable media having instructions stored thereon for performing a method, the method comprising:

receiving a route optimization request message at a server within an on-demand computing services environment, the route optimization request message identifying a first plurality of geographic locations associated with a routing request from a client entity;

identifying via a processor one of a plurality of geographic zones based on the route optimization request message, the identified geographic zone including the first plurality of geographic locations and a second plurality of geographic locations;

retrieving route optimization information from a designated one of a plurality of zone servers, the designated zone server being associated with the identified geographic zone, the route optimization information identifying transit information between each of a plurality of pairs of the second plurality of geographic locations;

determining a route to traverse the first plurality of geographic locations based on the retrieved route optimization information; and

transmitting, via a communication interface, a response message identifying the route to a client machine associated with the client entity.

16. The one or more non-transitory machine-readable media recited in claim 15 , wherein a designated geographic area is included in two or more of the geographic zones.

17. The one or more non-transitory machine-readable media recited in claim 15 , wherein the identified geographic zone is the smallest of the plurality of zones that includes the first plurality of geographic locations.

18. The one or more non-transitory machine-readable media recited in claim 15 , wherein the transit information identifies a first plurality of transit time values, each transit time value identifying a respective transit time between two or more of the second plurality of geographic locations.

19. The one or more non-transitory machine-readable media recited in claim 15 , wherein determining the route to traverse the first plurality of geographic locations involves determining a second plurality of transit time values by interpolating from two or more of the first plurality of transit time values.

20. The one or more non-transitory machine-readable media recited in claim 15 , wherein one or more of the first plurality of transit time values are determined by the designated zone server based on one or more observed travel time values.

Assignments (3)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2020
From: WEERAPURAGE, DINESH; CARNES, TIMOTHY; GROER, CHRISTOPHER; GALLEGE, LAHIRU PILETHTHUWASAN; LOU, CHENLU; STEWART, JOHN BRIAN
To: SALESFORCE.COM, INC.
Reel/Frame 053664/0893 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2020
From: MAPANYTHING, INC.
To: SALESFORCE.COM, INC.
Reel/Frame 053520/0153 →
Continuity (5)
Continuation In Part 16236644 · Dec 31, 2018
Continuation In Part 16236490 · Dec 29, 2018
Continuation 16053792 · Aug 2, 2018
Continuation 16053793 · Aug 2, 2018
Related Publication 20200263999A1 · Aug 20, 2020