IP Library Granted Patent US 12,498,986
Granted Patent B2
US 12,498,986 · App. 17/767,815 · Granted Dec 16, 2025

Methods, apparatus and systems for decomposing mobile applications into micro-services (MSs) at runtime for distributed execution

Inventors: Chathura Sarathchandra (London, GB); Dirk Trossen (London, GB)
Assignee: InterDigital Patent Holdings, Inc.
G06F9/5066G06F9/5072G06F2209/5017G06F2209/509
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,498,986
App. No.
17/767,815
Granted
Dec 16, 2025
Kind
B2
Abstract

Methods, apparatus and systems are disclosed. In one embodiment, a method implemented by an end user device to decompose an application at runtime includes collecting profile information regarding local executions of the application on the end user device and determining, by the end user device using the collected profile information, one or more microservice patterns to decompose a whole or a part of the application into at runtime. The method further includes partitioning, by the end user device at runtime, the application into: (1) a locally executed portion of the application to be executed by the end user device and (2) the determined microservice patterns to be locally executed by the end user device or remotely executed by an external entity in communication with the end user device.

Claims (56)

1 . A method, implemented by an end user device to decompose an application, the method comprising:

collecting local profile information associated with one or more local executions of the application by the end user device;

receiving, from a remote entity, remote profile information associated with remote executions of the application by at least one external entity;

determining, using the collected local profile information and the received remote profile information, one or more microservice patterns to decompose a whole or a part of the application into at runtime; and

partitioning, at runtime, the application into: (1) a local execution portion of the application to be executed by the end user device and (2) the determined one or more microservice patterns, each of the determined one or more microservice patterns to be locally executed by the end user device or to be remotely executed by the at least one external entity that is in communication with the end user device,

wherein:

the received remote profile information includes partition information indicating execution borders used by the at least one external entity to partition the application, and

the determining of the one or more microservice patterns includes selecting the one or more microservice patterns for decomposition based on at least the collected local profile information and the partition information included in the received remote profile information.

2 . The method of claim 1 , wherein the partitioning includes altering a portion of application code, as microservice-altered application code, associated with the determined one or more microservice patterns.

3 . The method of claim 2 , further comprising:

sending, by the end user device, a first portion of the microservice-altered application code for remote execution by the at least one external entity; and

executing, by the end user device: (1) the local execution portion of the application and (2) a second, separate portion of the microservice-altered application code.

4 . The method of claim 3 , further comprising sending, using an internal interface, the second, separate portion of the microservice-altered application code to be locally executed by a local instance,

wherein the sending of the first portion of the microservice-altered application code for remote execution includes sending, via an external interface, the first portion of the microservice-altered application code to the at least one external entity.

5 . The method of claim 1 , further comprising:

for each respective determined microservice pattern, selecting from among: the end user device and any of the at least one external entity for execution of microservice-altered application code associated with the respective determined microservice pattern based on the collected local profile information and the partition information included in the received remote profile information; and

on condition that a first microservice-altered application code is selected to be executed by the end user device, managing a local execution of the first microservice-altered application code by the end user device.

6 . The method of claim 1 , further comprising:

for each respective determined microservice pattern, selecting from among: the end user device and any of the at least one external entity for execution of microservice-altered application code associated with the respective determined microservice pattern based on the collected local profile information and the partition information included in the received remote profile information; and

on condition that a first microservice-altered application code is selected to be executed by a first external entity, managing an interface to the first external entity to execute the first microservice-altered application code by the first external entity.

7 . The method of claim 1 , further comprising:

clustering a first set of picoservices into a first microservice pattern and a second set of picoservices into a second microservice pattern according to an ontology having a type hierarchy.

8 . The method of claim 7 , wherein the clustering of the second set of picoservices into the second microservice pattern includes:

receiving, by a Microservice Cluster Engine (MCE), information associated with at least the second set of picoservices to determine the type hierarchy for the ontology; and

clustering the second set of picoservices into the second microservice pattern in accordance with the determined type hierarchy for the ontology.

9 . The method of claim 1 , further comprising:

selecting from among: the end user device, a first external entity or a second external entity, as a first selected entity, for first execution of microservice-altered application code associated with a determined first microservice pattern;

selecting from among: the end user device, the first external entity or the second external entity, as a second selected entity, for second execution of microservice-altered application code associated with a determined second microservice pattern;

managing the first execution of the microservice-altered application code associated with the determined first microservice pattern by the first selected entity; and

managing the second execution of the microservice-altered application code associated with the determined second microservice pattern by the second selected entity.

10 . An end user device configured to decompose an application, the end user device comprising:

circuitry, including any of a processor, memory, and transceiver, configured to

collect local profile information associated with one or more local executions of the application by the end user device;

receive, from a remote entity, remote profile information associated with remote executions of the application by at least one external entity;

determine, using the collected local profile information and received remote profile information, one or more microservice patterns to decompose a whole or a part of the application into at runtime; and

partition, at runtime, the application into: (1) a local execution portion of the application to be executed by the end user device and (2) the determined one or more microservice patterns, each of the determined one or more microservice patterns to be locally executed by the end user device or remotely executed by the at least one external entity that is in communication with the end user device,

wherein:

the remote profile information includes partition information indicating execution borders used by the at least one external entity to partition the application, and

the processor is configured to select the one or more microservice patterns for decomposition based on at least the collected local profile information and the partition information included in the received remote profile information.

11 . The end user device of claim 10 , wherein the processor is configured to alter a portion of application code, as microservice-altered application code, associated with the determined one or more microservice patterns.

12 . The end user device of claim 11 , configured to send a first portion of the microservice-altered application code for remote execution by the at least one external entity,

wherein the processor is configured to execute: (1) the local execution portion of the application and (2) a second, separate portion of the microservice-altered application code.

13 . The end user device of claim 12 , further comprising an internal interface configured to send the second, separate portion of the microservice-altered application code to be locally executed by a local instance,

wherein the transceiver is configured to send, via an external interface to the at least one external entity, the first portion of the microservice-altered application code.

14 . The end user device of claim 10 , wherein the processor is configured to:

for each respective determined microservice pattern, select from among: the end user device and any of the at least one external entity for execution of microservice-altered application code associated with the respective determined microservice pattern based on the collected local profile information and the partition information included in the received remote profile information; and

on condition that a first microservice-altered application code is selected to be executed by the end user device, manage a local execution of the first microservice-altered application code by the end user device.

15 . The end user device of claim 10 , wherein the processor is configured to:

for each respective determined microservice pattern, select from among: the end user device and any of the at least one external entity for execution of microservice-altered application code associated with the respective determined microservice pattern based on the collected and received partition information; and

on condition that a first microservice-altered application code is selected to be executed by a first external entity, manage an interface to the first external entity to execute of the first microservice-altered application code by the first external entity.

16 . The end user device of method of claim 10 , wherein the processor is configured to cluster a first set of picoservices into a first microservice pattern and a second set of picoservices into a second microservice pattern according to an ontology having a type hierarchy.

17 . The end user device of claim 10 , wherein the processor is configured to:

select from among: the end user device, a first external entity or a second external entity, as a first selected entity, for first execution of microservice-altered application code associated with a determined first microservice pattern;

select from among: the end user device, the first external entity or the second external entity, as a second selected entity, for second execution of microservice-altered application code associated with a determined second microservice pattern;

manage the first execution of the microservice-altered application code associated with the determined first microservice pattern by the first selected entity; and

manage the second execution of the microservice-altered application code associated with the determined second microservice pattern by the second selected entity.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2025
From: IDAC HOLDINGS, INC.
To: INTERDIGITAL PATENT HOLDINGS, INC.
Reel/Frame 072888/0852 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2023
From: IDAC HOLDINGS, INC.
To: INTERDIGITAL PATENT HOLDINGS, INC.
Reel/Frame 062308/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2022
From: SARATHCHANDRA, CHATHURA; TROSSEN, DIRK
To: IDAC HOLDINGS, INC.
Reel/Frame 059552/0218 →
Continuity (2)
Provisional Application 62915288 · Oct 15, 2019
Related Publication 20240086250A1 · Mar 14, 2024
References Cited (25)
US 10198250B1 · Sharma et al. · 2019 [cited by applicant]
US 20090313319A1 · Beisiegel et al. · 2009 [cited by applicant]
US 20100318999A1 · Zhao et al. · 2010 [cited by applicant]
US 20180131764A1 · Suter et al. · 2018 [cited by applicant]
US 20190069322A1 · Davydov et al. · 2019 [cited by applicant]
US 20190108067A1 · Ishikawa et al. · 2019 [cited by applicant]
EP 3508977A1 · 2019 [cited by applicant]
WO WO2015195561A1 · 2015 [cited by applicant]
WO WO2016123516A1 · 2016 [cited by applicant]
WO WO2018197928A1 · 2018 [cited by applicant]
WO WO2021016468A1 · 2021 [cited by applicant]
Wu et al., “An Efficient Application Partitioning Algorithm in Mobile Environments”, IEEE Transactions on Parallel and Distributed Systems, vol. 30, No. 7, pp. 1464-1480. (Year: 2019). [cited by examiner]
ZTE, “Summary of 7.2.1.1 Channel Structure for Two-step RACH”, 3GPP Tdoc R1-1903435, 3GPP TSG RAN WG1 #96, Athens, Greece, Feb. 25-Mar. 1, 2019, 28 pages. [cited by applicant]
A. Balalaie and A. Heydarnoori, “Migration to a Cloud-Native”, Architecture Enables DevOps, Architecture, IEEE Software, 33(3), 42-52, 11 pages, Sep. 13, 2019. [cited by applicant]
“Android Profiler”, https://developer.android.com/studio/profile/android-profiler. [cited by applicant]
N. Dragoni et al., “Microservices: yesterday, today, and tomorrow”, In Present and Ulterior Software Engineering, Springer, Cham. Sep. 13, 2019, 17 pages. [cited by applicant]
“Java ClassLoader”, https://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html. [cited by applicant]
“Java Reflection API”, https://docs.oracle.com/javase/tutorial/reflect/. [cited by applicant]
A. Hamou-Lhadj. “Techniques to Simplify the Analysis of Execution Traces for Program Comprehension”, Ottawa- Carleton Institute for Computer Science, School of Information Technology and Engineering, University of Ottaw… [cited by applicant]
“Python hotshot”, https://docs.python.org/2/library/hotshot.html. [cited by applicant]
J. Chow et al., Decoupling dynamic program analysis from execution in virtual environments', USENIX 2008 Annual Technical Conference on Annual Technical Conference. 2008. 14 pages. [cited by applicant]
A. Doan et al., “Ontology Matching: A Machine Learning Approach”, In: Staab S., Studer R. (eds) Handbook on Ontologies. International Handbooks on Information Systems. Springer, Berlin, Heidelberg, 20 pages. [cited by applicant]
“Java Virtual Machine Tool Interface” https://docs.oracle.com/javase/8/docs/technotes/guides/jvmti/. [cited by applicant]
“Open Knowledge Base Connectivity”, http://www.ai.sri.com/˜okbc/, 2 pages. [cited by applicant]
“Java Interface Instrumentation”, https://docs.oracle.com/javase/7/docs/api/java/lang/instrument/Instrumentation.html. [cited by applicant]