IP Library Granted Patent US 11,397,566
Granted Patent B2
US 11,397,566 · App. 17/000,256 · Granted Jul 26, 2022

Framework for developing and deploying applications

Inventors: Alexander Ryan (Palo Alto, CA); Allen Chang (Sunnyvale, CA); William Bindi (Palo Alto, CA); Brian Lee (Sunnyvale, CA); John Carrino (Menlo Park, CA); Julie Tibshirani (Palo Alto, CA); Timothy Wilson (Palo Alto, CA)
Assignee: Palantir Technologies Inc.
G06F8/36G06F8/10G06F8/34G06F8/35G06F9/547G06F16/23G06F16/24575G06F16/95G06F8/20G06F8/31G06F9/44505G06F9/44526G06F9/541G06F16/2425G06F16/252G06F16/335G06F16/8365G06F16/951G06F16/9535G06F16/9558
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,397,566
App. No.
17/000,256
Granted
Jul 26, 2022
Kind
B2
Abstract

A system may determine one or more data sources which the system is configured to access. The system may provide a set of application programming interfaces (APIs) for interacting with data stored in one or more data sources. The APIs may be accessible to one or more web applications which the system is configured to serve. The system may determine that a web application has requested an operation for interacting with the data through one or more APIs in the set of APIs. The system may determine one or more responses based at least in part on the operation requested by the web application. The system may provide the response(s) to the web application.

Claims (50)

1. A client computing device, comprising:

one or more hardware processors;

a memory storing instructions to be executed by the one or more hardware processors;

a plugin comprising a first set of one or more application programming interfaces (APIs) that enables one or more applications to interact with one or more data sources, and wherein, responsive to execution by the one or more hardware processors, the plugin is configured to:

receive, from a first application or a second application of the one or more applications, a first request to perform one or more first operations on a first subset of first data stored at a first data source of the one or more data sources;

interact with the first data source directly or via a data analysis platform to obtain a response to the first request from the first application or the second application;

receive, from the first application or the second application, a second request to perform one or more second operations on a second subset of second data stored at a second data source of the one or more data sources;

determine whether the one or more second operations are supported by the second data source;

in response to determining that the one or more second operations are unsupported by the second data source, delegate the one or more second operations to the data analysis platform and determine that a first format of the second data stored at the second data source is unrecognizable by the data analysis platform;

in response to determining that the first format of the second subset of the second data is unrecognizable by the data analysis platform, selectively convert the second subset of the second data to a second format recognizable by the data analysis platform based on a speed of a conversion of the second data or amounts of processing or storage resources consumed by the conversion, while refraining from converting a remainder of the second data besides the second subset of the second data; and

store the converted second subset of the second data in the data analysis platform.

2. The client computing device of claim 1 , wherein the first request to interact with the first data stored at the first data source is associated with performing a first operation using the first data stored at the first data source.

3. The client computing device of claim 2 , wherein, responsive to execution by the one or more hardware processors, the plugin is further configured to:

determine that the first application or the second application is associated with an appropriate permission level for performing the first operation using the first data stored at the first data source.

4. The client computing device of claim 2 , wherein the plugin is configured to perform the first operation by interacting with the first data source.

5. The client computing device of claim 2 , wherein the data analysis platform is configured to perform the first operation by interacting with the first data source.

6. The client computing device of claim 2 , wherein, responsive to execution by the one or more hardware processors, the plugin is further configured to:

send the first request to the first data source such that the first operation is performed by the first data source;

receive the response to the first request from the first data source; and provide the response to the first application or the second application.

7. The client computing device of claim 6 , wherein the plugin receives the response from the first data source via the data analysis platform.

8. The client computing device of claim 1 , wherein the plugin is configured to operate as an embedded web server in a workspace environment.

9. A computer-implemented method, comprising:

providing, by a plugin deployed in a workspace environment, a set of one or more application programming interfaces (APIs) that enables one or more applications to interact with one or more data sources;

receiving, by the plugin from a first application or a second application of the one or more applications, a first request to perform one or more first operations on a first subset of first data stored at a first data source of the one or more data sources;

interacting, by the plugin, with the first data source directly or via a data analysis platform to obtain a response to the first request from the first application or the second application;

receiving, from the first application or the second application, a second request to perform one or more second operations on a second subset of second data stored at a second data source of the one or more data sources;

determining whether the one or more second operations are supported by the second data source;

in response to determining that the one or more second operations are unsupported by the second data source, delegating the one or more second operations to the data analysis platform and determining that a first format of the second data stored at the second data source is unrecognizable by the data analysis platform;

in response to determining that the first format of the second subset of the second data is unrecognizable by the data analysis platform, selectively converting the second subset of the second data to a second format recognizable by the data analysis platform based on a speed of a conversion of the second data or amounts of processing or storage resources consumed by the conversion, while refraining from converting a remainder of the second data besides the second subset of the second data; and

storing the converted second subset of the second data in the data analysis platform.

10. The computer-implemented method of claim 9 , wherein the first request to interact with the first data stored at the first data source is associated with performing a first operation using the first data stored at the first data source.

11. The computer-implemented method of claim 10 , further comprising:

determining, by the plugin, that the first application or the second application is associated with an appropriate permission level for performing the first operation using the first data stored at the first data source.

12. The computer-implemented method of claim 10 , performing, by the plugin, the first operation by interacting with the first data source.

13. The computer-implemented method of claim 10 , wherein the data analysis platform is configured to perform the first operation by interacting with the first data source.

14. The computer-implemented method of claim 10 , further comprising:

sending, by the plugin, the first request to the first data source such that the first operation is performed by the first data source;

receiving, by the plugin, the response to the first request from the first data source; and

providing, by the plugin, the response to the first application or the second application.

15. The computer-implemented method of claim 14 , wherein receiving the response comprises receiving, by the plugin, the response from the first data source via the data analysis platform.

16. The computer-implemented method of claim 9 , wherein the plugin is configured to operate as an embedded web server in the workspace environment.

17. A non-transitory computer readable medium comprising instructions that, when executed, cause one or more processors to perform:

providing, by a plugin deployed in a workspace environment, a set of one or more application programming interfaces (APIs) that enables one or more applications to interact with one or more data sources;

receiving, by the plugin from a first application or a second application of the one or more applications, a first request to perform one or more first operations on a first subset of first data stored at a first data source of the one or more data sources;

interacting, by the plugin, with the first data source directly or via a data analysis platform to obtain a response to the first request from the first application or the second application;

receiving, from the first application or the second application, a second request to perform one or more second operations on a second subset of second data stored at a second data source of the one or more data sources;

determining whether the one or more second operations are supported by the second data source;

in response to determining that the one or more second operations are unsupported by the second data source, delegating the one or more second operations to the data analysis platform and determining that a first format of the second data stored at the second data source is unrecognizable by the data analysis platform;

in response to determining that the first format of the second subset of the second data is unrecognizable by the data analysis platform, selectively converting the second subset of the second data to a second format recognizable by the data analysis platform based on a speed of a conversion of the second data or amounts of processing or storage resources consumed by the conversion, while refraining from converting a remainder of the second data besides the second subset of the second data; and

store the converted second subset of the second data in the data analysis platform.

Assignments (2)
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2021
From: RYAN, ALEXANDER; CHANG, ALLEN; BINDI, WILLIAM; LEE, BRIAN; CARRINO, JOHN; TIBSHIRANI, JULIE; WILSON, TIMOTHY
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 055221/0146 →
Continuity (4)
Continuation 16213936 · Dec 7, 2018
Continuation 15730646 · Oct 11, 2017
Provisional Application 62418397 · Nov 7, 2016
Related Publication 20200387359A1 · Dec 10, 2020