Distributed Aspect Servers for Online Workflow Reordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional aspect-oriented programming approaches require collocation of aspect code with standard code and compilation together, leading to inefficiencies in development and implementation, especially when multiple networked systems implement the same aspects, as they need separate local instances of aspect code and require compilation with standard code.

Innovation Solution

A method and system for providing aspect services using distributed aspect servers that modify online services provided by an application server remotely, allowing aspect services to be added, deleted, or reordered without changing the application server, enabling aspects to be applied independently of core concerns and across multiple systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If aspect code is collocated with standard code and compiled together, then aspects can be applied to core concerns, but development time increases and maintenance becomes complex

Engineering Contradiction:
Improveaspect application reliabilityVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent separates aspect code from standard code into distinct modules. Aspect code is organized into independent aspect classes that can be developed, compiled, and deployed separately from the core application code, eliminating the need for combined compilation while maintaining the ability to apply aspects to core concerns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an aspect compiler as an intermediary component that translates aspect code into a form that can be applied to compiled standard code. This mediator enables aspect application without requiring the aspect code and standard code to be compiled together, thus resolving the contradiction between reliable aspect application and development efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple networked computing systems implement the same aspect, then each system includes a separate local instance of aspect code, but this increases system complexity and maintenance burden

Engineering Contradiction:
Improveaspect implementation flexibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal aspect compilation mechanism that generates platform-independent aspect code. The same aspect source code can be compiled and deployed across multiple different computing systems, allowing the aspect to function universally across diverse platforms without requiring system-specific modifications or increasing complexity.

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

3Adaptability or versatility

If aspect code and standard code are compiled together, then aspects can modify core concerns, but this requires changes to the application server and slows down development

Engineering Contradiction:
Improveaspect modification capabilityVSAvoiddevelopment ease
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent extracts the compilation process for aspect code from the application server compilation process. Aspect code is compiled independently into separate bytecode or intermediate representation that can then be dynamically applied to the compiled application server without requiring the application server itself to be recompiled or modified.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7881304B2Using distributed aspects to reorder online application workflows
Publication Date: 2011.02.01 RED HAT INC
  • US7881304B2 patent drawing
  • US7881304B2 patent drawing
  • US7881304B2 patent drawing

AI summary

One or more distributed aspect servers modify a sequence of online services provided by an application server that is remote from the aspect servers. A client sends a request to the application server. An aspect service is invoked if the request satisfies a criterion. The aspect service modifies the sequence of online services by performing at least one of adding a new online service, deleting one of the online services, or reordering the sequence of online services. The modified sequence of online services is provided to the client without incurring a change to the application server.