Dynamic Web Service Client Update via Version Agent
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In Service Oriented Architecture (SOA) using Web services, change management is complex due to the loosely coupled nature of services, making it difficult for clients to track and adapt to changes, leading to potential service disruptions and business interruptions, especially when changes are not backward compatible.
Innovation Solution
A method that involves a Version Agent with components like Notification Receiver and Parser, and Proxy Instance Checker, which receives and parses update notifications, determines compatibility, and dynamically updates the service proxy or notifies clients of incompatibilities, allowing for backward compatible changes without re-building or re-deploying client applications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If service providers use notification messages (release notes or API upgrade guides) to notify clients of service changes, then clients can be informed of changes, but it becomes very difficult for developers to locate the part of the code needing adjustment when the documentation is long or complex or the client application code is huge
Solution Approach 1:
The patent extracts only the essential compatibility information from comprehensive release notes, identifying and transmitting specifically the service interface elements that have changed (added, deleted, or modified operations and parameters). This extraction process filters out unnecessary documentation content, delivering precisely the information needed for code updates without the burden of reviewing entire release notes.
Solution Approach 2:
The notification message structure is designed with localized quality by organizing change information according to its impact on different parts of the client code. Each service interface element change is tagged with its specific location and type of modification, allowing developers to quickly navigate to and understand only the relevant code sections that need adjustment.
2Adaptability or versatility
If service providers make incompatible changes to service interfaces (such as adding mandatory parameters), then service functionality is improved, but old service versions cannot be retired and consumers depending on those versions are disrupted
Solution Approach 1:
The patent implements dynamic version management where the service provider can retire old service versions dynamically based on client compatibility status. The system continuously monitors which clients have updated their code and automatically retires old versions for those clients, while maintaining them for clients who haven't updated yet. This dynamic approach allows aggressive version evolution without disrupting existing clients.
Solution Approach 2:
The system establishes a feedback loop where service providers receive notifications about which clients have successfully updated their code to be compatible with new service versions. Based on this feedback, the provider can determine when it is safe to retire old service versions, ensuring that no active clients are disrupted by version retirement.
3Adaptability or versatility
If clients rebuild and redeploy all applications every time a service changes, then clients keep up with service updates, but the development and deployment cycle becomes excessively complex and time-consuming
Solution Approach 1:
Instead of requiring complete application rebuilds and redeployments, the patent implements partial updates where only the specific code portions affected by service changes are modified. The system identifies exactly which service interface elements have changed and generates targeted update instructions for those specific components, allowing clients to update incrementally rather than undertaking full reconstruction of their applications.
Solution Approach 2:
The service provider performs preliminary analysis of service changes to determine compatibility impact before clients need to update. By pre-identifying which service interface elements have changed and preparing targeted notification messages with specific update instructions, the provider eliminates the need for clients to perform comprehensive code analysis and rebuilding, significantly simplifying the update process.
4Adaptability or versatility
If the service interface changes (such as adding mandatory input parameters), then new service capabilities are achieved, but determining compatibility between versions becomes a difficult task requiring assistant tools
Solution Approach 1:
The service provider performs self-service by automatically analyzing their own service interface changes and generating compatibility assessments. The system compares the new service version against the old version, automatically identifies added, deleted, or modified operations and parameters, and determines compatibility impact without requiring external assistant tools. This self-service capability eliminates the burden from clients to perform complex compatibility analysis.
Solution Approach 2:
The service provider performs preliminary compatibility analysis before releasing service updates. By pre-comparing service versions and generating structured notification messages that indicate compatibility status and required changes, the provider eliminates the need for clients to perform difficult compatibility classification tasks using external tools, significantly simplifying the update process.
Data Source
AI summary
A method for managing a web service client update without recompiling or redeploying of the client code includes the following steps or acts of: receiving a request for the web service from a subscribed client; transmitting the request to the web service; receiving notification of the web service update from a service provider or registry or some other means; parsing the notification and retrieving parameters describing the web service update; marshalling the parameters; determining whether the new web service update is compatible with the current web service invoked by the client application; updating the local service proxy instance with the marshaled parameters if the new web service update is compatible with the current web service invoked by the client application; and transmitting a notification if the web service update is not compatible with the current web service invoked by the client application.


