IP Library Granted Patent US 9,063,798
Granted Patent B2
US 9,063,798 · App. 14/068,662 · Granted Jun 23, 2015

Cross-environment communication using application space API

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,063,798
App. No.
14/068,662
Granted
Jun 23, 2015
Kind
B2
Abstract

A mobile computing device with a mobile operating system and desktop operating system running concurrently and independently on a shared kernel without virtualization. The mobile operating system provides a mobile user experience while the desktop operating system provides a full desktop user experience when the mobile computing device is docked to a secondary terminal environment. Applications of the desktop operating system communicate with applications and services of the mobile operating system through a cross-environment communication framework. The cross-environment communication framework may include application programming interfaces through which categories of applications can communicate across a multiple operating system computing environment through category-specific remote communication calls. The mobile computing device may be a smartphone running the Android mobile operating system and a full desktop Linux distribution on a modified Android kernel.

Claims (65)

1. A method comprising:

opening a first instance of a first application within a first operating system running on a mobile computing device;

determining, the processor, that the first application is in a first application state;

detecting, the processor, a docking event of the mobile computing device with a secondary terminal environment;

opening a second application within a second operating system running on the mobile computing device, the second application also executing the first instance simultaneously with the first application, wherein the first and second applications are of a specific category of application, wherein the first application is a mobile application and the second application is a desktop application;

instantiating, by the first application running within a within the first operating system, a method of an application programming interface of the first operating system, the method implementing a sink for a predetermined remote communication request;

requesting, by the method of the application programming interface, an extended inter-process communication interface;

instantiating, by the first operating system, the extended inter-process communication interface;

registering, by the first operating system, the extended inter-process communication interface to receive the predetermined remote communication request directed to the first application;

receiving, by the first operating system, a request to instantiate a proxy for the predetermined remote communication request within a in the second application running within the second operating system, the first and second operating systems running concurrently on a shared kernel;

passing, by the first operating system, a reference to the extended inter-process communication interface to the second application, wherein the proxy in the second application is linked to the sink of the first application;

receiving, by the processor, an input to the second application;

processing, by the sink of the first application, a request from the proxy of the second application; and

determining, by the processor, that the first application is in a second application state.

2. The method of claim 1 , wherein the predetermined remote communication request is specific to a category of applications that includes the first and second applications.

3. The method of claim 1 , wherein the sink obtains a connected endpoint of an inter-process communication interface instantiated by a remote communication service of the first operating system.

4. The method of claim 1 , further comprising

receiving, by the first operating system, a request to instantiate a second proxy for the predetermined remote communication request within a third application; and

passing, by the first operating system, the reference to the extended inter-process communication interface to the third application.

5. The method of claim 1 , wherein the registering of the extended inter-process communication interface by the first operating system includes associating the inter-process communication with a name key of the application.

6. A mobile computing device, comprising:

a memory;

a processor in communication with the memory, the processor operable to: execute a first operating system and a second operating system, the first and second operating systems running concurrently on a shared kernel;

open a first instance of a first application within the first operating system; determine that the first application is in a first application state; detect a docking event of the mobile computing device with a secondary terminal environment; open a second application within the second operating system, the second application also executing the first instance simultaneously with the first application, wherein the first and second applications are of a specific category of application, wherein the first application is a mobile application and the second application is a desktop application;

instantiate, by the first application, a sink for a predetermined remote communication request;

instantiate, by the second application a proxy for the predetermined remote communication request; and

establish a remote communication service of the first operating system, the remote communication service establishing a connection between the proxy and the sink through an extended inter-process communication interface;

receive an input to the second application;

process, by the sink of the first application, a request from the proxy of the second application; and

determine, by the processor, that the first application is in a second application state.

7. The mobile computing device of claim 6 , wherein the sink comprises a method of an application programming interface of the first operating system.

8. The mobile computing device of claim 7 , wherein the application programming interface is provided within an application space of the first operating system.

9. The mobile computing device of claim 7 , wherein the application programming interface comprises classes of sinks, the classes of sinks associated with categories of applications.

10. The mobile computing device of claim 7 , wherein the application programming interface comprises a java archive file.

11. The mobile computing device of claim 7 , wherein the method of the application programming interface requests the extended inter-process communication interface from the remote communication service.

12. The mobile computing device of claim 6 , wherein the remote communication service registers the sink to receive inter-process communication through the extended inter-process communication interface.

13. The mobile computing device of claim 12 , wherein upon registration by the remote communication service, the extended inter-process communication interface is pushed by the remote communication service.

14. The mobile computing device of claim 6 , wherein the first operating system comprises an Android mobile operating system and the second operating system comprises a Linux operating system.

15. A non-transitory computer readable storage medium having stored thereon instructions that cause a processor to execute a method, the method comprising the steps of:

opening a first instance of a first application within a first operating system running on a mobile computing device;

determining, by the processor, that the first application is in a first application state;

detecting, by the processor, a docking event of the mobile computing device with a secondary terminal environment;

opening a second application within a second operating system running on the mobile computing device, the second application also executing the first instance simultaneously with the first application, wherein the first and second applications are of a specific category of application, wherein the first application is a mobile application and the second application is a desktop application;

instantiating, by the first application running within a within the first operating system, a method of an application programming interface of the first operating system, the method implementing a sink for a predetermined remote communication request;

requesting, by the method of the application programming interface, an extended inter-process communication interface;

instantiating, by the first operating system, the extended inter-process communication interface;

registering, by the first operating system, the extended inter-process communication interface to receive the predetermined remote communication request directed to the first application;

receiving, by the first operating system, a request to instantiate a proxy for the predetermined remote communication request in the second application running within a within the second operating system, the first and second operating systems running concurrently on a shared kernel;

passing, by the first operating system, a reference to the extended inter-process communication interface to the second application, application, wherein the proxy in the second application is linked to the sink of the first application;

receiving, by the processor, an input to the second application;

processing, by the sink of the first application, a request from the proxy of the second application; and

determining, by the processor, that the first application is in a second application state.

16. The non-transitory computer readable medium of claim 15 , wherein the predetermined remote communication request is specific to a category of applications that includes the first and second applications.

17. The non-transitory computer readable medium of claim 15 , wherein the sink obtains a connected endpoint of an inter-process communication interface instantiated by a remote communication service of the first operating system.

18. The non-transitory computer readable medium of claim 15 , further comprising:

receiving, by the first operating system, a request to instantiate a second proxy for the predetermined remote communication request within a third application; and

passing, by the first operating system, the reference to the extended inter-process communication interface to the third application.

19. The non-transitory computer readable medium of claim 15 , wherein:

applications running within the first operating system use the method of the application programming interface for inter-process communication; and

applications running within the second operating system use a second method of a second application programming interface of the second operating system for inter-process communication.

20. The non-transitory computer readable medium of claim 15 , further comprising:

receiving, by the first operating system, a first remote communication request through the extended inter-process communication interface, the first remote communication request directed to the first application, the first remote communication request including a first data parcel;

translating, in the first operating system, the first remote communication request into a second remote communication request, wherein the translating includes unparceling the first data parcel and reparceling data into a second data parcel included in the second remote communication request; and

sending, by the first operating system, the second remote communication request to the first application.

21. The non-transitory computer readable medium of claim 20 , wherein the first remote communication request is a synchronous remote communication request and the second remote communication request is an asynchronous remote communication request.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2024
From: Z124
To: MULTIFOLD INTERNATIONAL INCORPORATED PTE. LTD.
Reel/Frame 069049/0339 →
QUITCLAIM EXCLUSIVE LICENSE/RIGHTS Recorded Sep 18, 2024
From: Z124
To: MULTIFOLD INTERNATIONAL INCORPORATED PTE. LTD.
Reel/Frame 068979/0612 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2013
From: BENEDEK, LASZLO CSABA; CHINCISAN, OCTAVIAN
To: IMERJ LLC
Reel/Frame 031582/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2013
From: Z124 LLC
To: Z124
Reel/Frame 031582/0900 →
CHANGE OF NAME Recorded Nov 12, 2013
From: IMERJ LLC
To: Z124 LLC
Reel/Frame 031625/0573 →