IP Library Granted Patent US 9,674,278
Granted Patent B1
US 9,674,278 · App. 15/273,480 · Granted Jun 6, 2017

Geographic data management server

Inventor: Peter Hong (Kalamazoo, MI)
Assignee: Palantir Technologies Inc.
H04L67/1025H04L67/18H04L67/2842H04L67/42
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 9,674,278
App. No.
15/273,480
Granted
Jun 6, 2017
Kind
B1
Abstract

Aspects of the present disclosure relate to a tile management server. The management server receives, from a client device, a request for geographic data, the request having a management server request format. The management server selects a first geographic server, out of multiple geographic servers, for processing the request. The management server translates the request from the management server request format into a first geographic server request format. The first geographic server request format is for communicating with the first geographic server. A second geographic server from among the plurality of geographic servers communicates using a second geographic server request format different from the first geographic server request format. The management server transmits, to the first geographic server, the request translated into the first geographic server request format in order to cause the first geographic server to provide the geographic data to the client device.

Claims (78)

1. A system comprising:

one or more processors of a machine; and

a memory storing instructions that, when executed by the one or more processors, cause the one or more processors to:

receive, at a management server and from a client device, a request for geographic data of an identified geographic region, the geographic data comprising one or more tiles, and the request having a management server request format;

select, at the management server, a first geographic server for processing the request, the first geographic server being selected out of a plurality of geographic servers;

translate, at the management server, the request from the management server request format into a first geographic server request format, the first geographic server request format operable to communicate with the first geographic server, and a second geographic server from among the plurality of geographic servers communicating using a second geographic server request format different from the first geographic server request format; and

transmit, to the first geographic server, the request translated into the first geographic server request format in order to cause the first geographic server to provide the geographic data to the client device.

2. The system of claim 1 , the memory further storing instructions that, when executed by the one or more processors, cause the one or more processors to:

transmit, to the first geographic server, in conjunction with the request translated into the first geographic server request format, a security element for accessing the first geographic server, wherein:

the security element for accessing the first geographic server is different from a security element for accessing the second geographic server, and

the security element for accessing the first geographic server resides at the management server.

3. The system of claim 1 , the memory further storing instructions that, when executed by the one or more processors, cause the one or more processors to:

monitor the plurality of geographic servers to verify that each of the plurality of geographic servers is online and has access to tiles associated with the geographic server; and

determine that a third geographic server is offline or does not have access to tiles associated with the third geographic server, wherein the first geographic server is selected from a subset of the plurality of geographic servers, the subset lacking the third geographic server.

4. The system of claim 1 , the memory further storing instructions that, when executed by the one or more processors, cause the one or more processors to:

receive, at the management server, the geographic data provided to the client device;

cache the geographic data at a local cache unit of the management server;

receive, from a second client device, a request for the geographic data;

retrieve, in response to the request for the geographic data from the second client device, the geographic data from the cache; and

transmit the retrieved geographic data to the second client device.

5. The system of claim 4 , wherein the plurality of geographic servers includes a cache of the management server and at least two additional geographic servers.

6. The system of claim 1 , the memory further storing instructions that, when executed by the one or more processors, cause the one or more processors to:

determine that the first geographic server is unable to provide the geographic data to the client device;

determine whether an additional geographic server is able to provide the geographic data to the client device;

in response to determining that the additional geographic server is able to provide the geographic data to the client device:

translate, at the management server, the request from the management server request format into an additional geographic server request format, wherein the additional geographic server request format is for communicating with the additional geographic server, and

transmit, to the additional geographic server, the request translated into the additional geographic server request format in order to cause the additional geographic server to provide the geographic data to the client device; and

in response to determining that the additional geographic server is unable to provide the geographic data to the client device: inform the client device that the request for the geographic data cannot be processed.

7. The system of claim 6 , wherein the instructions to determine whether the additional geographic server is able to provide the geographic data to the client device comprise instructions that, when executed by the one or more processors, cause the one or more processors to:

determine that the additional geographic server is online; and

determine that the additional geographic server has access to the geographic data of the identified geographic region.

8. The system of claim 1 , wherein the first geographic server comprises a map server.

9. The system of claim 1 , wherein the first geographic server comprises a machine having access to the geographic data that is different from a map server.

10. A non-transitory machine-readable medium storing instructions that, when executed by one or more processors of a machine, cause the machine to:

receive, at a management server and from a client device, a request for geographic data of an identified geographic region, the geographic data comprising one or more tiles, and the request having a management server request format;

select, at the management server, a first geographic server for processing the request, the first geographic server being selected out of a plurality of geographic servers;

translate, at the management server, the request from the management server request format into a first geographic server request format, the first geographic server request format operable to communicate with the first geographic server, and a second geographic server from among the plurality of geographic servers communicating using a second geographic server request format different from the first geographic server request format; and

transmit, to the first geographic server, the request translated into the first geographic server request format in order to cause the first geographic server to provide the geographic data to the client device.

11. The machine-readable medium of claim 10 , further storing instructions that, when executed by the one or more processors, cause the one or more processors to:

transmit, to the first geographic server, in conjunction with the request translated into the first geographic server request format, a security element for accessing the first geographic server, wherein:

the security element for accessing the first geographic server is different from a security element for accessing the second geographic server, and

the security element for accessing the first geographic server resides at the management server.

12. The machine-readable medium of claim 10 , further storing instructions that, when executed by the one or more processors, cause the one or more processors to:

monitor the plurality of geographic servers to verify that each of the plurality of geographic servers is online and has access to tiles associated with the geographic server; and

determine that a third geographic server is offline or does not have access to tiles associated with the third geographic server, wherein the first geographic server is selected from a subset of the plurality of geographic servers, the subset lacking the third geographic server.

13. The machine-readable medium of claim 10 , further storing instructions that, when executed by the one or more processors, cause the one or more processors to:

receive, at the management server, the geographic data provided to the client device;

cache the geographic data at a local cache unit of the management server;

receive, from a second client device, a request for the geographic data;

retrieve, in response to the request for the geographic data from the second client device, the geographic data from the cache; and

transmit the retrieved geographic data to the second client device.

14. The machine-readable medium of claim 13 , wherein the plurality of geographic servers includes a cache of the management server and at least two additional geographic servers.

15. A method comprising:

receiving, at a management server and from a client device, a request for geographic data of an identified geographic region, the geographic data comprising one or more tiles, and the request having a management server request format;

selecting, at the management server, a first geographic server for processing the request, the first geographic server being selected out of a plurality of geographic servers;

translating, at the management server, the request from the management server request format into a first geographic server request format, the first geographic server request format operable to communicate with the first geographic server, and a second geographic server from among the plurality of geographic servers communicating using a second geographic server request format different from the first geographic server request format; and

transmitting, to the first geographic server, the request translated into the first geographic server request format in order to cause the first geographic server to provide the geographic data to the client device.

16. The method of claim 15 , further comprising:

transmitting, to the first geographic server, in conjunction with the request translated into the first geographic server request format, a security element for accessing the first geographic server, wherein:

the security element for accessing the first geographic server is different from a security element for accessing the second geographic server, and

the security element for accessing the first geographic server resides at the management server.

17. The method of claim 15 , further comprising:

monitoring the plurality of geographic servers to verify that each of the plurality of geographic servers is online and has access to tiles associated with the geographic server; and

determining that a third geographic server is offline or does not have access to tiles associated with the third geographic server, wherein the first geographic server is selected from a subset of the plurality of geographic servers, the subset lacking the third geographic server.

18. The method of claim 15 , further comprising:

receiving, at the management server, the geographic data provided to the client device;

caching the geographic data at a local cache unit of the management server;

receiving, from a second client device, a request for the geographic data;

retrieving, in response to the request for the geographic data from the second client device, the geographic data from the cache; and

transmitting the retrieved geographic data to the second client device.

19. The method of claim 18 , wherein the plurality of geographic servers includes a cache of the management server and at least two additional geographic servers.

20. The method of claim 15 , further comprising:

determining that the first geographic server is unable to provide the geographic data to the client device;

determining whether an additional geographic server is able to provide the geographic data to the client device;

in response to determining that the additional geographic server is able to provide the geographic data to the client device:

translating, at the management server, the request from the management server request format into an additional geographic server request format, wherein the additional geographic server request format is for communicating with the additional geographic server, and

transmitting, to the additional geographic server, the request translated into the additional geographic server request format in order to cause the additional geographic server to provide the geographic data to the client device; and

in response to determining that the additional geographic server is unable to provide the geographic data to the client device: informing the client device that the request for the geographic data cannot be processed.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2017
From: HONG, PETER
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 041694/0878 →
Continuity (1)
Provisional Application 62370629 · Aug 3, 2016