Service Extraction from Monolithic Applications via Runtime Tracing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing applications without a service-oriented design face challenges in extracting services to transition to a service-oriented architecture, as they often have monolithic functionality and lack modular design, making it difficult to leverage core services across applications.

Innovation Solution

A service extraction and application composition system that preprocesses and instruments existing applications to convert them into a service-oriented architecture, using REST-based APIs to generate refactored code and create a service-oriented prototype application, allowing for the extraction, refinement, and deployment of services.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If services are extracted from existing monolithic applications, then service reusability and resource utilization improve, but application complexity and extraction difficulty increase

Engineering Contradiction:
Improveservice reusabilityVSAvoidapplication complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments monolithic applications into discrete, reusable services by identifying service boundaries through static code analysis and runtime behavior tracing. The system divides application functionality into independent service units that can be extracted and reused across different applications, transforming a single large application into multiple smaller, manageable service components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts services from existing applications by analyzing code structure and runtime behavior to identify service boundaries. The extraction process separates service logic from the original application monolith, creating standalone service components that can be independently deployed and reused, while the original application continues to function with reduced functionality.

Inventive Principle:
Principle #2Taking out (Extraction)

2Manufacturing precision

If static code analysis is used to identify services, then extraction precision improves, but detection of runtime behavior limitations increase

Engineering Contradiction:
Improveservice extraction precisionVSAvoidruntime behavior detection
Core Design Contradiction:
Manufacturing precisionVSDifficulty of detecting and measuring

Solution Approach 1:

The patent merges static code analysis with runtime behavior tracing to overcome the limitations of each individual approach. The system first performs static analysis to identify potential service boundaries based on code structure, then uses runtime tracing to validate and refine these boundaries by observing actual service invocation patterns and behavior, combining both methods for accurate service extraction.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces an intermediary tracing mechanism that instruments the application code to capture runtime behavior without significantly altering the original application. This intermediary layer records service invocations, parameters, and return values, providing data that bridges the gap between static code analysis and actual runtime behavior, enabling more accurate service identification.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If instrumentation code is injected into existing applications, then service behavior tracing accuracy improves, but application modification complexity increases

Engineering Contradiction:
Improveservice behavior tracing accuracyVSAvoidapplication modification ease
Core Design Contradiction:
Measurement precisionVSEase of manufacture

Solution Approach 1:

The patent performs preliminary actions by automatically injecting instrumentation code into the application during the service extraction process, before runtime tracing begins. The system prepares the application by inserting tracing hooks at identified service boundaries, so that when runtime tracing occurs, the instrumentation is already in place to capture accurate service behavior without requiring manual modification during the tracing phase.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10185546B2Service extraction and application composition
Publication Date: 2019.01.22 ACCENTURE GLOBAL SERVICES LTD
  • US10185546B2 patent drawing
  • US10185546B2 patent drawing
  • US10185546B2 patent drawing

AI summary

Service extraction and application composition may include preprocessing and instrumenting an existing application that is to be converted to a service-oriented application. The existing application may be executed to generate traces related to a runtime behavior of services related to the existing application. The traces may be used to generate calling code related to the services related to the existing application. Representational state transfer (REST) application programming interfaces (APIs) that include the calling code to call the services related to the existing application may be generated. Refactored code for the existing application may be generated for invocation of the services related to the existing application by the REST APIs.