IP Library Granted Patent US 12,192,300
Granted Patent B2
US 12,192,300 · App. 18/464,670 · Granted Jan 7, 2025

System architecture for enabling efficient inter-application communications

Inventors: Peter Wilczynski (San Francisco, CA); Christopher Hammett (Washington, DC); Lloyd Ho (Palo Alto, CA); Sharon Hao (Redwood City, CA)
Assignee: Palantir Technologies Inc.
H04L67/561G06F8/51G06F8/76H04L67/02H04L67/564H04L67/566
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 12,192,300
App. No.
18/464,670
Granted
Jan 7, 2025
Kind
B2
Abstract

A system architecture can be used to facilitate communication among applications that are native and/or non-native to an application environment. The system architecture can include a first application environment executed on a client-side computing device. The first application environment can execute software applications that are native thereto. The first application environment can further execute software applications that are native thereto, but which software applications themselves comprise second application environments of types different from the first application environment, and which software applications can therefore execute additional software applications that are non-native to the first application environment. The first application environment can further execute a computation engine that is configured to store and execute instructions received from the first software application, the second software application, or both.

Claims (33)

1. A computing system comprising:

one or more computer readable storage mediums having program instructions embodied therewith; and

one or more processors configured to execute the program instructions to cause the computing system to execute a first application environment configured to:

execute a first software application;

execute a second application environment configured to execute a second software application that is not natively executable by the first application environment; and

execute one or more application programming interfaces (“APIs”) configured to enable communication between the first software application and the second software application.

2. The computing system of claim 1 , wherein executing the one or more APIs comprises executing a proxy application configured to enable communication of information between the first software application and the second software application.

3. The computing system of claim 2 , wherein the first application environment includes one or more data stores.

4. The computing system of claim 3 , wherein the proxy application is configured to enable communication of information among the one or more data stores and the first and second software applications.

5. The computing system of claim 2 , wherein each of the first and second applications includes corresponding data interfaces configured to pass the information to a corresponding data interface of the proxy application using an interface definition language.

6. The computing system of claim 2 , wherein the proxy application is configured to enable communication of information among a server-side application remote from the computing system and the first and second software applications.

7. The computing system of claim 1 , executing a computation engine configured to store and execute instructions received from the first software application, the second software application, or both.

8. The computing system of claim 7 , wherein the computation engine is configured to communicate directly with a server-side application remote from the computing system and the first and second software applications.

9. The computing system of claim 7 , wherein the computation engine is configured to receive and store data entered by a user into a client device.

10. The computing system of claim 7 , wherein the computation engine comprises a script interpreter.

11. The computing system of claim 1 , wherein the first software application is natively executable by the first application environment.

12. The computing system of claim 1 , wherein the first software application environment comprises a virtual machine environment.

13. The computing system of claim 1 , wherein the second software application environment is configured to execute software applications natively executable in at least one of a plurality of native software languages.

14. A computer-implemented method comprising:

within a first application environment:

executing a first software application;

executing a second application environment configured to execute a second software application that is not natively executable by the first application environment; and

executing one or more application programming interfaces (“APIs”) configured to enable communication between the first software application and the second software application.

15. The method of claim 14 , further comprising executing, within the first application environment, a computation engine configured to store and execute instructions received from the first software application, the second software application, or both.

16. The method of claim 15 , wherein the computation engine is configured to communicate directly with a server-side application remote from the computing system and the first and second software applications.

17. The method of claim 15 , wherein the computation engine comprises a script interpreter.

18. The method of claim 14 , wherein the first software application is natively executable by the first application environment.

19. The method of claim 14 , wherein executing the one or more APIs comprises executing a proxy application configured to enable communication of information between the first software application and the second software application.

20. A non-transitory computer-readable medium storing a set of instructions that are executable by one or more electronic devices, each having one or more processors, to cause the one or more electronic devices to perform a method, the method comprising:

within a first application environment:

executing a first software application;

executing a second application environment configured to execute a second software application that is not natively executable by the first application environment; and

executing one or more application programming interfaces (“APIs”) configured to enable communication between the first software application and the second software application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2024
From: WILCZYNSKI, PETER; HAMMETT, CHRISTOPHER; HO, LLOYD; HAO, SHARON
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 066147/0965 →
Continuity (5)
Continuation 17862299 · Jul 11, 2022
Continuation 16894623 · Jun 5, 2020
Continuation 16519949 · Jul 23, 2019
Provisional Application 62729630 · Sep 11, 2018
Related Publication 20230421658A1 · Dec 28, 2023
References Cited (55)
US 6067565A · Horvitz · 2000 [cited by applicant]
US 6182133B1 · Horvitz · 2001 [cited by applicant]
US 8766919B1 · Lachwani et al. · 2014 [cited by applicant]
US 9501304B1 · Powers · 2016 [cited by examiner]
US 9565233B1 · Ozuysal et al. · 2017 [cited by applicant]
US 9922006B1 · Boynes · 2018 [cited by applicant]
US 10681165B2 · Wilczynski et al. · 2020 [cited by applicant]
US 11388249B2 · Wilczynski et al. · 2022 [cited by applicant]
US 11778062B2 · Wilczynski et al. · 2023 [cited by applicant]
US 20020023143A1 · Stephenson et al. · 2002 [cited by applicant]
US 20040039926A1 · Lambert · 2004 [cited by applicant]
US 20070156845A1 · Devanneaux et al. · 2007 [cited by applicant]
US 20080147671A1 · Simon et al. · 2008 [cited by applicant]
US 20090307430A1 · Bruening et al. · 2009 [cited by applicant]
US 20090313621A1 · Dewa · 2009 [cited by examiner]
US 20120072498A1 · Carter et al. · 2012 [cited by applicant]
US 20120284597A1 · Burkard et al. · 2012 [cited by applicant]
US 20120311429A1 · Decker et al. · 2012 [cited by applicant]
US 20120324043A1 · Burkard et al. · 2012 [cited by applicant]
US 20130019159A1 · Civelli et al. · 2013 [cited by applicant]
US 20130232540A1 · Saidi · 2013 [cited by examiner]
US 20130235044A1 · Kaleta et al. · 2013 [cited by applicant]
US 20140071151A1 · Oesterreicher · 2014 [cited by applicant]
US 20140173592A1 · y Arcas et al. · 2014 [cited by applicant]
US 20140379840A1 · Dao · 2014 [cited by applicant]
US 20150052513A1 · Robinson · 2015 [cited by applicant]
US 20150088968A1 · Wei et al. · 2015 [cited by applicant]
US 20150089224A1 · Beckman et al. · 2015 [cited by applicant]
US 20150310126A1 · Steiner et al. · 2015 [cited by applicant]
US 20150339403A1 · Teeraparpwong et al. · 2015 [cited by applicant]
US 20150370756A1 · Steeb, III et al. · 2015 [cited by applicant]
US 20160224325A1 · Sidwell · 2016 [cited by examiner]
US 20160371081A1 · Powers · 2016 [cited by examiner]
US 20170195736A1 · Chai et al. · 2017 [cited by applicant]
US 20170221109A1 · Liu et al. · 2017 [cited by applicant]
US 20170280434A1 · Begeja et al. · 2017 [cited by applicant]
US 20170286392A1 · Wang · 2017 [cited by applicant]
US 20170293616A1 · Li et al. · 2017 [cited by applicant]
US 20180024872A1 · Meijer et al. · 2018 [cited by applicant]
US 20180032491A1 · Heo et al. · 2018 [cited by applicant]
US 20180322688A1 · Ozguner et al. · 2018 [cited by applicant]
US 20190005048A1 · Crivello et al. · 2019 [cited by applicant]
EP 3623947 · 2020 [cited by applicant]
U.S. Pat. No. 10,681,165, System Architecture for Enabling Efficient Inter-Application Communicaions, Jun. 9, 2020. [cited by applicant]
U.S. Pat. No. 11,388,249, System Architecture for Enabling Efficient Inter-Application Communicaions, Jul. 12, 2022. [cited by applicant]
U.S. Pat. No. 11,778,062, System Architecture for Enabling Efficient Inter-Application Communicaions, Oct. 3, 2023. [cited by applicant]
Garsiel et al., “How Browsers Work: Behind the Scenes of Modern Web Browsers”, published to web on Aug. 5, 2011 at https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/, retrieved on Jan. 22, 2019 (Year: 20… [cited by applicant]
“Improving Performance With the Paint Timing API”, published to web on Oct. 6, 2017 at https://www.sitepen.com/blog/improving-performance-with-the-paint-timing-api/, retrieved on Jan. 22, 2019 (Year: 2017). [cited by applicant]
Wagner, “Using the Paint Timing API”, published to web on Aug. 21, 2017 at https://css-tricks.com/paint-timing-api/, retrieved on Jan. 22, 2019 (Year: 2017). [cited by applicant]
Zlatkov, “How JavaScript Works: The Rendering Engine and Tips to Optimize Its Performance” published to web on Mar. 15, 2018 at https ://blog.sessionstack.com/how-javascript-works-the-rendering-engine-and-tips-to-optimi… [cited by applicant]
Official Communication for European Patent Application No. 19196716.5 dated Jan. 28, 2020, 8 pages. [cited by applicant]
Official Communication for European Patent Application No. 19196716.5 dated Aug. 24, 2021, 78 pages. [cited by applicant]
Official Communication for European Patent Application No. 19196716.5 dated Oct. 10, 2023, 12 pages. [cited by applicant]
Official Communication for European Patent Application No. 19196716.5 dated May 13, 2024, 4 pages. [cited by applicant]
Official Communication for European Patent Application No. 19196716.5 dated May 17, 2024, 5 pages. [cited by applicant]