IP Library Granted Patent US 9,348,678
Granted Patent B1
US 9,348,678 · App. 13/922,077 · Granted May 24, 2016

Partitioned application environment

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,348,678
App. No.
13/922,077
Granted
May 24, 2016
Kind
B1
Abstract

A partitioned application environment is disclosed. In various embodiments, a request associated with an application environment in which an application is running is received from the application. A determination is made to fulfill the request at least in part via a call to a node at which application code associated with the application is running in an application environment partition provided at the node. A call associated with the request is sent to the node, based at least in part on the determination.

Claims (49)

1. A method of providing an application, comprising:

receiving a request from a first application associated with a first application environment partition in which the first application is running;

determining, based at least in part on one or more considerations, including security, whether to fulfill the request at least in part via a call to a node at which a second application associated with a second application environment partition is running at the node, wherein to fulfill the request based on security, the second application processes application data that is unavailable to be processed by the first application and provides the first application with a result of the processing, wherein the second application environment partition at the node is related to the first application environment partition such that the first application and the second application cumulatively function to provide at least in part a single application, wherein the request associated with the first application environment partition comprises a call to an Application Programming Interface (API) of an application environment of the single application for which the first application environment partition and the second application environment partition are partitions; and

in response to determining to fulfill the request at least in part at the node, sending to the node, a call associated with the request.

2. The method of claim 1 , wherein the call to the node comprises a remote procedure call (RPC).

3. The method of claim 1 , wherein the call to the node comprises an inter-process communication (IPC).

4. The method of claim 1 , wherein the determination of whether to fulfill the request via a call to the node is made at least in part by an entity configured to monitor calls by the first application and for each of at least a subset of the calls to determine whether the call is to be fulfilled locally or via a call to the node.

5. The method of claim 1 , further comprising:

receiving a second request associated with the first application environment partition in which the first application is running; and

determining to fulfill the second request locally.

6. The method of claim 5 , wherein fulfilling the second request locally includes invoking a user interface library or other local user interface resource.

7. The method of claim 5 , wherein fulfilling the second request locally includes translating the second request into a form associated with an operating system of a platform on which the first application environment partition is being provided.

8. The method of claim 1 , wherein the first application environment partition in which the first application is running and the second application environment partition in which the second application is running at the node corresponds to a partitioned application environment which are presented to the single application as a single, homogeneous application environment.

9. The method of claim 1 , wherein the determination whether to fulfill the request via the call to the node is made based at least in part on a static partitioning of responsibility between a local application environment and a corresponding application environment at the node.

10. The method of claim 1 , wherein the determination whether to fulfill the request via the call to the node is made dynamically at the time the request is received.

11. The method of claim 10 , wherein the determination whether to fulfill the request via the call to the node is made dynamically based at least in part on one or more of a resource provided locally, a resource available at the node, a current local workload, and a current workload at the node.

12. The method of claim 1 , wherein the node comprises one of a plurality of nodes each of which is configured to run an application associated with the first application in an application environment partition provided at that node.

13. The method of claim 1 , further comprising receiving an indication to launch the first application.

14. The method of claim 13 , further comprising sending in response to the indication a request to assign a participant to participate in providing the first application.

15. The method of claim 14 , further comprising receiving an indication that the node has been assigned to participate in providing the first application.

16. The method of claim 15 , further comprising sending to the node a request to launch the second application in the second application environment partition provided at the node.

17. The method of claim 1 , wherein determining whether to fulfill the request at least in part via a call to a node at which the second application associated with the second application environment partition is running at the node includes sending to the node a request to perform with respect to a first instance of an object stored at or otherwise associated with the node a modification performed by the second application with respect to a second instance of the object stored at a second storage location.

18. The method of claim 1 , wherein access to and use of the first application is provided to a user of a client device as a service; and the second application environment partition in which the second application is running is provided at the node and one or more other nodes other than the client device.

19. The method of claim 1 , wherein the determination whether to fulfill the request at least in part via a call to the node at which the second application associated with the second application environment partition is running at the node is based at least in part on a determination that a result or other resource associated with the request is not available in a local cache.

20. The method of claim 1 , further comprising:

receiving from the node a result or other resource provided by the node in response to the call; and

storing the result or other resource in a local cache.

21. The method of claim 1 , wherein:

the single application comprises the first application associated with the first application environment partition included in an application environment that is partitioned into a plurality of application environment partitions; and

the node is configured to respond to the call at least in part by facilitating communication at the node between the second application as running at the node in the second application environment partition of the partitioned application environment and another application running at the node in the another partition of the application environment.

22. The method of claim 1 , wherein the first application and the second application correspond to different instantiations of a same application.

23. The method of claim 1 , wherein the first application environment partition and the second application environment partition are instantiated in connection with providing a homogenous application environment to the single application.

24. The method of claim 1 , wherein the one or more considerations further include a capability, a resource availability, and a resource usage.

25. A system, comprising:

a communication interface; and

a processor coupled to the communication interface and configured to:

receive a request from a first application associated with a first application environment partition in which the first application is running;

determine, based at least in part on one or more considerations, including security, whether to fulfill the request at least in part via a call to a node at which a second application associated with a second application environment partition is running at the node, wherein to fulfill the request based on security, the second application processes application data that is unavailable to be processed by the first application and provides the first application with a result of the processing, wherein the second application environment partition at the node is related to the first application environment partition such that the first application and the second application cumulatively function to provide at least in part a single application, wherein the request associated with the first application environment partition comprises a call to an Application Programming Interface (API) of an application environment of the single application for which the first application environment partition and the second application environment partition are partitions; and

in response to determining to fulfill the request at least in part at the node, send to the node via the communication interface, a the call associated with the request.

26. The system of claim 25 , wherein the determination of whether to fulfill the request via a call to the node is made at least in part by an entity configured to monitor calls by the first application and for each of at least a subset of the calls to determine whether the call is to be fulfilled locally or via a call to the node.

27. The system of claim 25 , wherein the first application environment partition in which the first application is running and the second application environment partition in which the second application is running at the node corresponds to a partitioned application environment which are presented to the single application as a single, homogeneous application environment.

28. The system of claim 25 , wherein the one or more considerations further include a capability, a resource availability, and a resource usage.

29. A computer program product embodied in a tangible, non-transitory computer readable storage medium, and comprising computer instructions for:

receiving, a request from a first application associated with a first application environment partition in which the first application is running;

determining, based at least in part on one or more considerations, including security, whether to fulfill the request at least in part via a call to a node at which a second application associated with a second application environment partition is running at the node, wherein to fulfill the request based on security, the second application processes application data that is unavailable to be processed by the first application and provides the first application with a result of the processing, wherein the second application environment partition at the node is related to the first application environment partition such that the first application and the second application cumulatively function to provide at least in part a single application, wherein the request associated with the first application environment partition comprises a call to an Application Programming Interface (API) of an application environment of the single application for which the first application environment partition and the second application environment partition are partitions; and

in response to determining to fulfill the request at least in part at the node, sending to the node, a call associated with the request.

30. The computer program product of claim 29 , wherein the first application environment partition in which the first application is running and the second application environment partition in which the second application is running at the node corresponds to a partitioned application environment which are presented to the single application as a single, homogeneous application environment.

31. The computer program product of claim 29 , wherein

the one or more considerations further include a capability, a resource availability, and a resource usage.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY 14633493 WHICH WAS ENTERED INCORRECTLY AS 14633793 PREVIOUSLY RECORDED ON REEL 71176 FRAME 315. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST LIEN NEWCO SECURITY AGREEMENT. Recorded Nov 10, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 073818/0515 →
FIRST LIEN NEWCO SECURITY AGREEMENT Recorded May 5, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071176/0315 →
SECURITY INTEREST Recorded May 2, 2025
From: IVANTI, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071164/0482 →
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2022
From: MOBILEIRON, INC.
To: IVANTI, INC.
Reel/Frame 061327/0751 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2013
From: CHANDRASEKHAR, AADITYA; ORLOVICH, MAKSIM; YALAMANCHILI, RAMA RAO; LEE, LAWRENCE; WU, JACK
To: MOBILE IRON, INC.
Reel/Frame 031220/0826 →