IP Library Granted Patent US 9,658,870
Granted Patent B2
US 9,658,870 · App. 14/516,899 · Granted May 23, 2017

In-process trapping for service substitution in hosted applications executing on mobile devices with multi-operating system environment

Inventors: Xianghai Liu (Framingham, MA); Chandra Bajpai (Natick, MA); Kevin Menice (Stoughton, MA); Jarrett Goetz (Boston, MA)
Assignee: OpenMobile World Wide, Inc.
G06F9/45533
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,658,870
App. No.
14/516,899
Granted
May 23, 2017
Kind
B2
Abstract

The invention provides in some aspects a computing device that includes a central processing unit that executes a native operating system including one or more native runtime environments within which native software applications are executing, where each such native software application has instructions for execution under the native operating system. One or more hosted runtime environments execute within the one or more native runtime environments, each of which hosted runtime environments executes hosted software applications that have instructions for execution under a hosted operating system that differs from the native operating system. A first hosted software application executing as a first process of the hosted runtime environments includes an instruction that references a member (hereinafter, “referenced member”) of an object defined by an object-oriented programming (OOP) class (“referenced class”). The process executes that instruction utilizing data and/or code (hereinafter, “substitute member”) other than that specified by the referenced class as the referenced member. As used here, a “member” of an object is any of a method member and a data member.

Claims (29)

1. A digital data processing method comprising the steps of:

executing, on a computing device, a native operating system including one or more native runtime environments within which one or more native software applications are executing, where each such native software application has instructions for execution under the native operating system,

executing, within the one or more of the native runtime environments, one or more hosted runtime environments, where each of which hosted runtime environments executes hosted software applications that have instructions for execution under a hosted operating system that differs from the native operating system,

executing, within a first process of the hosted runtime environments, a first hosted software application that includes an instruction that references a member (hereinafter, “referenced member”) of an object defined by an object-oriented programming (OOP) class (“referenced class”), wherein the referenced member is any of a method member and a data member,

executing, with the process, that instruction utilizing data and/or code (hereinafter, “substitute member”) other than that specified by the referenced class as the referenced member,

wherein a substitute member replacing a corresponding referenced member is loaded by a class loader,

wherein the referenced member and the substitute member provide like functionality, yet, utilize different mechanisms therefor,

wherein those different mechanisms are different services external to the device,

wherein those different mechanisms are different web services, and

wherein the references member is a method member defined by the referenced class and the method member utilizes a first external web service to support any of mapping, navigation, advertisement, digital wallet, account authorization and/or other services required by the first hosted software application.

2. The method of claim 1 , in which the referenced member and the substitute member provide like functionality, yet, utilize different mechanisms therefor.

3. The method of claim 2 , wherein those different mechanisms are different services external to the device.

4. The method of claim 3 , wherein those different mechanisms are different web services.

5. The method of claim 2 , comprising substituting a reference to the substitute member into the first hosted software using any of the class loader.

6. A computing device comprising:

a central processing unit,

the central processing unit executing a native operating system including one or more native runtime environments within which one or more native software applications are executing, where each such native software application has instructions for execution under the native operating system,

one or more hosted runtime environments executing within the one or more of native runtime environments, where each of which hosted runtime environments executes hosted software applications that have instructions for execution under a hosted operating system that differs from the native operating system,

a first hosted software application executing within a first process of the hosted runtime environments includes an instruction that references a member (hereinafter, “referenced member”) of an object defined by an object-oriented programming (OOP) class (“referenced class”), wherein the referenced member is any of a method member and a data member,

the process executes that instruction utilizing data and/or code (hereinafter, “substitute member”) other than that specified by the referenced class as the referenced member,

wherein a substitute member replacing a corresponding referenced member is loaded by a class loader,

wherein the referenced member and the substitute member provide like functionality, yet, utilize different mechanisms therefor,

wherein those different mechanisms are different services external to the device,

wherein those different mechanisms are different web services, and

wherein the references member is a method member defined by the referenced class and the method member utilizes a first external web service to support any of mapping, navigation, advertisement, digital wallet, account authorization and/or other services required by the first hosted software application.

7. The computing device of claim 1 , wherein the substitute member comprises code that utilizes a second, different web service to support the aforesaid service(s).

8. The computing device of claim 1 , wherein those different mechanisms are different services native to the computing device and/or the runtime environments thereon.

9. The computing device of claim 8 , wherein the referenced member is a method member defined by the referenced class, which method member utilizes a telephony, camera, address/contacts, document preview, music/multimedia playback or other service native to the hosted runtime environments, and the substitute member comprises code that utilizes a service of the native runtime environments and/or native operating system to support those aforesaid service(s).

10. The computing device of claim 9 , in which the references in the first software application to the referenced member and/or the referenced class are resolved to the substitute member during loading of that software application on the device.

Assignments (10)
MERGER Recorded Feb 11, 2024
From: APTIV TECHNOLOGIES (2) S.À R.L.
To: APTIV MANUFACTURING MANAGEMENT SERVICES S.À R.L.
Reel/Frame 066566/0173 →
ENTITY CONVERSION Recorded Feb 11, 2024
From: APTIV TECHNOLOGIES LIMITED
To: APTIV TECHNOLOGIES (2) S.À R.L.
Reel/Frame 066746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2024
From: APTIV MANUFACTURING MANAGEMENT SERVICES S.À R.L.
To: APTIV TECHNOLOGIES AG
Reel/Frame 066551/0219 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2018
From: OPENMOBILE WORLD WIDE, INC.
To: APTIV TECHNOLOGIES LIMITED
Reel/Frame 045873/0326 →
RELEASE OF LIEN Recorded May 22, 2018
From: NUTTER MCCLENNEN & FISH LLP
To: OPENMOBILE WORLD WIDE, INC.
Reel/Frame 046211/0050 →
LIEN Recorded Feb 13, 2018
From: OPENMOBILE WORLD WIDE, INC.
To: NUTTER MCLENNEN & FISH LLP
Reel/Frame 045314/0476 →
RELEASE OF SECURITY INTEREST Recorded Feb 12, 2018
From: WESTERN ALLIANCE BANK
To: OPENMOBILE WORLD WIDE INC.
Reel/Frame 045305/0199 →
LIEN Recorded Nov 21, 2017
From: OPENMOBILE WORLD WIDE, INC.
To: NUTTER, MCCLENNEN & FISH, LLP
Reel/Frame 044398/0293 →
SECURITY INTEREST Recorded Dec 20, 2015
From: OPENMOBILE WORLD WIDE INC.
To: WESTERN ALLIANCE BANK
Reel/Frame 037336/0076 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2015
From: LIU, XIANGHAI; BAJPAI, CHANDRA; MENICE, KEVIN; GOETZ, JARRETT
To: OPENMOBILE WORLD WIDE, INC.
Reel/Frame 035665/0371 →
Continuity (2)
Provisional Application 61945534 · Feb 27, 2014
Related Publication 20150242223A1 · Aug 27, 2015