IP Library Granted Patent US 10,955,249
Granted Patent B2
US 10,955,249 · App. 16/236,490 · Granted Mar 23, 2021

Utilizing a geo-locator service and zone servers to reduce computer resource requirements for determining high quality solutions to routing problems

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: Salesforce.com, Inc.
G01C21/32G01C21/3407G01C21/3446G06F16/9566H04L67/18H04W4/024
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,955,249
App. No.
16/236,490
Granted
Mar 23, 2021
Kind
B2
Abstract

A method involves utilizing a geo-locator service and zone servers to reduce server resource requirements for determining high quality solutions to routing problems. The use of a geo-locator service and zone servers enables the use of servers having less memory which can handle determination of high quality solutions to routing problems involving locations spanning a smaller geographic area even if they are incapable of handling determination of high quality solutions to routing problems involving locations spanning a larger geographic area, and enables efficient assignment of requests to an appropriate server without unduly burdening high value servers having sufficient memory to handle determination of high quality solutions to routing problems involving locations spanning a very large geographic area with determination of high quality solutions to routing problems involving locations spanning a smaller geographic area.

Claims (60)

1. A method involving utilizing zone servers to reduce server resource requirements for determining optimized solutions to routing problems, the method comprising:

(a) maintaining electronic data corresponding to a plurality of defined zones each corresponding to a geographic area, wherein

(i) each defined zone has a defined boundary,

(ii) a plurality of the defined zones each overlap with other of the defined zones, and

(iii) a plurality of the defined zones are each located entirely within another defined zone;

(b) maintaining a plurality of zone servers, each zone server including road network data for one or more of the zones of the plurality of defined zones;

(c) identifying a first zone server for a first routing problem by

(i) electronically determining, based on information for a first plurality of locations involved in the first routing problem, a first zone representing a smallest defined zone that contains all of the locations of the first plurality of locations, and

(ii) electronically determining a first zone server corresponding to the determined first zone; and

(d) obtaining, utilizing the first zone server, one or more optimized solutions to the first routing problem by

(i) electronically communicating, from a requesting device to the determined first zone server, first problem data for the first routing problem comprising data for the plurality of locations involved in the first routing problem,

(ii) electronically determining, at the first zone server corresponding to the determined zone in response to the communication of first problem data, a first set of one or more optimized solutions to the first routing problem using a plurality of calculated travel time estimates accessed from one or more computed shortest path matrices, and

(iii) returning, from the first zone server corresponding to the determined first zone to the requesting device, data corresponding to the determined first set of one or more optimized solutions to the routing problem;

(e) identifying a second zone server for a second routing problem by

(i) electronically determining, based on information for a second plurality of locations involved in the second routing problem, a second zone representing a smallest defined zone that contains all of the locations of the second plurality of locations, and

(ii) electronically determining a second zone server corresponding to the determined second zone; and

(f) obtaining, utilizing the second zone server, one or more optimized solutions to the second routing problem by

(i) electronically communicating, from the requesting device to the determined second zone server, second problem data for the second routing problem comprising data for the plurality of locations involved in the second routing problem,

(ii) electronically determining, at the second zone server corresponding to the determined zone in response to the communication of second problem data, a second set of one or more optimized solutions to the second routing problem using a plurality of calculated travel time estimates accessed from one or more computed shortest path matrices, and

(iii) returning, from the second zone server corresponding to the determined second zone to the requesting device, data corresponding to the determined second set of one or more optimized solutions to the routing problem;

(g) wherein the first zone server and second zone server are different zone servers.

2. The method of claim 1 , wherein maintaining data corresponding to a plurality of defined zones each corresponding to a geographic area comprises maintaining, for each defined zone, a list of latitude and longitude coordinates defining the defined boundary for that zone.

3. The method of claim 1 , wherein maintaining data corresponding to a plurality of defined zones each corresponding to a geographic area comprises maintaining, for each defined zone, a list of latitude and longitude coordinates defining the defined boundary for that zone.

4. The method of claim 1 , wherein determining, based on information for a plurality of locations involved in a routing problem, a smallest defined zone that contains all of the locations of the plurality of locations comprises comparing coordinates for each of the plurality of locations to defined boundaries for one or more of the plurality of zones.

5. The method of claim 1 , wherein determining, based on information for a plurality of locations involved in a routing problem, a smallest defined zone that contains all of the locations of the plurality of locations comprises comparing latitude and longitude coordinates for each of the plurality of locations to defined boundaries for one or more of the plurality of zones.

6. The method of claim 1 , wherein the requesting device comprises a computing device having a web browser loaded thereon.

7. The method of claim 1 , wherein the requesting device comprises a desktop computer.

8. The method of claim 1 , wherein the requesting device comprises a laptop computer.

9. The method of claim 1 , wherein the requesting device comprises a tablet.

10. The method of claim 1 , wherein the requesting device comprises a phone.

11. A method involving utilizing zone servers to reduce server resource requirements for facilitating determination of optimized solutions to routing problems, the method comprising:

(a) maintaining electronic data corresponding to a plurality of defined zones each corresponding to a geographic area, wherein

(i) each defined zone has a defined boundary,

(ii) a plurality of the defined zones each overlap with other of the defined zones, and

(iii) a plurality of the defined zones are each located entirely within another defined zone;

(b) maintaining a plurality of zone servers, each zone server including road network data for one or more of the zones of the plurality of defined zones;

(c) identifying a first zone server for a first routing problem by

(i) electronically determining, based on information for a first plurality of locations involved in the first routing problem, a first zone representing a smallest defined zone that contains all of the locations of the first plurality of locations, and

(ii) electronically determining a first zone server corresponding to the determined first zone; and

(d) obtaining, utilizing the first zone server, one or more shortest path matrices for use in determining optimized solutions to the first routing problem by

(i) electronically communicating, from a requesting device to the determined first zone server, first problem data for the first routing problem comprising data for the plurality of locations involved in the first routing problem,

(ii) electronically computing, at the first zone server corresponding to the determined zone in response to the communication of first problem data, a first set of one or more shortest path matrices comprising shortest path data for directional shortest paths between pairs of locations of the first plurality of locations, and

(iii) returning, from the first zone server corresponding to the determined first zone to the requesting device, data corresponding to the computed first set of one or more shortest path matrices comprising shortest path data for directional shortest paths between pairs of locations of the first plurality of locations;

(e) identifying a second zone server for a second routing problem by

(i) electronically determining, based on information for a second plurality of locations involved in the second routing problem, a second zone representing a smallest defined zone that contains all of the locations of the second plurality of locations, and

(ii) electronically determining a second zone server corresponding to the determined second zone; and

(f) obtaining, utilizing the second zone server, one or more optimized solutions to the second routing problem by

(i) electronically communicating, from the requesting device to the determined second zone server, second problem data for the second routing problem comprising data for the plurality of locations involved in the second routing problem,

(ii) electronically computing, at the second zone server corresponding to the determined zone in response to the communication of second problem data, a second set of one or more shortest path matrices comprising shortest path data for directional shortest paths between pairs of locations of the second plurality of locations, and

(iii) returning, from the second zone server corresponding to the determined second zone to the requesting device, data corresponding to the computed second set of one or more shortest path matrices comprising shortest path data for directional shortest paths between pairs of locations of the second plurality of locations;

(g) wherein the first zone server and second zone server are different zone servers.

12. The method of claim 11 , wherein maintaining data corresponding to a plurality of defined zones each corresponding to a geographic area comprises maintaining, for each defined zone, a list of latitude and longitude coordinates defining the defined boundary for that zone.

13. The method of claim 11 , wherein maintaining data corresponding to a plurality of defined zones each corresponding to a geographic area comprises maintaining, for each defined zone, a list of latitude and longitude coordinates defining the defined boundary for that zone.

14. The method of claim 11 , wherein determining, based on information for a plurality of locations involved in a routing problem, a smallest defined zone that contains all of the locations of the plurality of locations comprises comparing coordinates for each of the plurality of locations to defined boundaries for one or more of the plurality of zones.

15. The method of claim 11 , wherein determining, based on information for a plurality of locations involved in a routing problem, a smallest defined zone that contains all of the locations of the plurality of locations comprises comparing latitude and longitude coordinates for each of the plurality of locations to defined boundaries for one or more of the plurality of zones.

16. The method of claim 11 , wherein the requesting device comprises a computing device having a web browser loaded thereon.

17. The method of claim 11 , wherein the requesting device comprises a desktop computer.

18. The method of claim 11 , wherein the requesting device comprises a laptop computer.

19. The method of claim 11 , wherein the requesting device comprises a tablet.

20. The method of claim 11 , wherein the requesting device comprises a phone.

Assignments (3)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0394 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2020
From: MAPANYTHING, INC.
To: SALESFORCE.COM, INC.
Reel/Frame 053520/0173 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2018
From: STEWART, JOHN BRIAN; CARNES, TIMOTHY ALAN; GALLEGE, LAHIRU SANDAKITH PILETHTHUWASAN; GROER, CHRISTOPHER SEBASTIAN; LOU, CHENLU; WEERAPURAGE, DINESH PREMALAL
To: MAPANYTHING, INC.
Reel/Frame 047994/0922 →
Continuity (2)
Continuation 16053792 · Aug 2, 2018
Related Publication 20200041277A1 · Feb 6, 2020