Software Component Versioning via Dispatch and Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers and system administrators face challenges in maintaining version compatibility between software components, leading to unpredictable behavior and system failures due to mismatches in versions between client requests and newly deployed components, especially when the entity deploying the versions has no control over the instantiated versions.

Innovation Solution

A software component versioning system that maintains multiple versions of a software component, ensuring backwards compatibility of external interfaces, using dispatch techniques to determine the active version for each client session, and allowing for transparent version management, including strategies like early and late branch versioning to manage internal logic and storage changes without affecting interface behavior.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If new versions of software components are deployed to improve functionality and fix bugs, then system capability is enhanced, but version compatibility is compromised leading to unpredictable behavior and system failures

Engineering Contradiction:
Improvesystem capabilityVSAvoidversion compatibility
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments the software component system into multiple isolated version instances, each maintaining its own state and execution context. The container divides the deployment environment into separate versioned compartments, allowing concurrent execution of different versions without interference. This segmentation enables the system to enhance capability by deploying new versions while preserving reliability by isolating them from existing versions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a version management intermediary layer that sits between the deployment system and the running components. This intermediary manages version registration, instantiation, and lifecycle control, acting as a mediator that coordinates version deployments and ensures compatibility. The dispatcher serves as another intermediary that routes requests to appropriate version instances, preventing direct conflicts between versions and maintaining system reliability during capability enhancement.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the deploying entity has no control over instantiated versions, then deployment flexibility is improved, but version management becomes difficult leading to mismatches between client requests and deployed components

Engineering Contradiction:
Improvedeployment flexibilityVSAvoidversion management
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent implements self-service mechanisms where the version management system automatically handles version registration, instantiation, and coordination without requiring manual intervention from the deploying entity. The container autonomously manages the lifecycle of version instances, and the dispatcher automatically routes requests based on version compatibility. This self-service approach maintains deployment flexibility while simplifying version management operations.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent establishes feedback loops where the version management system continuously monitors deployed instances and their compatibility status. The system receives feedback about running versions, client requests, and deployment status, then automatically adjusts version instantiation and routing decisions. This feedback mechanism ensures that even without direct control, the deploying entity can maintain version management effectiveness through automated monitoring and adaptation.

Inventive Principle:
Principle #23Feedback

3Reliability

If multiple versions of software components are maintained to ensure backwards compatibility, then version compatibility is improved, but system complexity increases

Engineering Contradiction:
Improveversion compatibilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a universal container infrastructure that can host multiple version instances of different software components through a common management framework. The container provides multi-functional capabilities including version registration, instantiation, state management, and coordination, all through a single unified system. This universality allows the maintenance of multiple versions for backwards compatibility while avoiding the complexity of managing each version separately, as the container handles all versioned components through standardized mechanisms.

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

Data Source

PatentUS7539985B2Systems and methods for dynamic component versioning
Publication Date: 2009.05.26 ORACLE INT CORP
  • US7539985B2 patent drawing
  • US7539985B2 patent drawing
  • US7539985B2 patent drawing

AI summary

The deployment and management of differing versions of software components can be simplified. External interfaces of the component can remain constant in behavior while the internal logic, and possibly internal storage, can change between versions. Such a version management system can be transparent to the client programs, since interfaces can remain backwards compatible between component versions. This transparency can greatly reduce the risks of unpredictable behavior or system failure. A system can maintain each version of a software component, and can use a dispatch technique to determine and instantiate the currently active version whenever a client requests a service from the software component during a session. Old instances, possibly of other versions, can be maintained as long as required on the server. Such systems can apply to stateful and stateless components, using synchronous or asynchronous communications, and which may communicate over networks and may use web services type protocols. This description is not intended to be a complete description of, or limit the scope of, the invention. Other features, aspects, and objects of the invention can be obtained from a review of the specification, the figures, and the claims.