Profile Service Microcontainer Deployment Configuration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional application servers are monolithic, making them resource-intensive and difficult to maintain, with limited flexibility due to reliance on Java Management Extensions (JMX) and repetitive implementation of common features across components, which complicates deployment and management.

Innovation Solution

Implementing a microcontainer as a lightweight kernel that uses plain old Java objects (POJOs) and metadata for dynamic configuration, leveraging aspect-oriented programming (AOP) to construct runtime objects and services, allowing for flexible deployment and management of components across various environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a monolithic application server design is used, then all required functionalities are implemented, but the code size becomes very large and resource consumption increases

Engineering Contradiction:
Improvefunctionality completenessVSAvoidcode size
Core Design Contradiction:
Adaptability or versatilityVSWeight of stationary object

Solution Approach 1:

The application server is divided into a lightweight kernel and separate plug-in components. The kernel contains only essential functions, while additional functionalities are implemented as independent plug-ins that can be dynamically loaded and unloaded, reducing the base code size while maintaining full functionality when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The kernel is designed with universal interfaces and mechanisms that can work with various types of plug-ins. This allows a single lightweight kernel to support multiple different functionalities through standardized interaction patterns, eliminating the need to embed each specific function directly in the core code.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Ease of operation

If JMX is used as the kernel to integrate software and provide dynamic loading, then runtime management is improved, but the flexibility is reduced because JMX supports only Mbeans

Engineering Contradiction:
Improveruntime managementVSAvoidenvironment flexibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The system introduces a profile service as an intermediary layer between the kernel and plug-ins. This profile service maintains compatibility with JMX-based management mechanisms while enabling support for multiple object types (not just Mbeans). The profile service translates and adapts interactions, allowing the kernel to work with diverse plug-in implementations across different environments.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system changes the fundamental parameter of object representation from JMX-specific Mbeans to a more general profile-based model. This allows the same management infrastructure to handle different types of software components by changing how they are described and instantiated, rather than being constrained to a single object type.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If common features are implemented repeatedly across components, then each component is self-contained, but code size increases and code design becomes complicated

Engineering Contradiction:
Improvecomponent independenceVSAvoidcode design complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Common features that were previously implemented repeatedly across different components are merged into shared profile service functionality. The profile service provides unified mechanisms for dynamic loading, instantiation, and management that can be applied to all components, reducing duplication while maintaining component independence through standardized interfaces.

Inventive Principle:
Principle #5Merging (Combining)

4Ease of manufacture

If conventional deployment management techniques are used, then deployment can be performed, but the mechanism is complex and does not provide efficient access to deployment properties

Engineering Contradiction:
Improvedeployment capabilityVSAvoidmanagement complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The profile service enables plug-ins to self-describe their requirements, dependencies, and configuration needs through profile metadata. This self-service approach eliminates the need for complex external deployment management mechanisms, as components automatically provide the information needed for their own deployment and configuration through standardized profile definitions.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7886035B2Profile service based deployment configuration
Publication Date: 2011.02.08 RED HAT INC
  • US7886035B2 patent drawing
  • US7886035B2 patent drawing
  • US7886035B2 patent drawing

AI summary

A method and apparatus for providing a profile service in an application server for deployment configuration. In one embodiment, the method of the profile service includes populating a repository with deployments of an application server. The method of the profile service further includes managing the lifecycles of the deployments, and determining objects to instantiate when the deployments start.