Adaptable API Server Evolution Without Client Breakage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Evolving a server to change non-trivial aspects of its implementation without breaking pre-existing client assumptions is challenging, leading to issues like expensive deployments or broken clients when upgrading APIs in client-server configurations.
Innovation Solution
Defining an adaptable API that allows clients and servers to evolve independently while maintaining interoperability by mapping an application domain object model onto an XHTML-based RESTful API, providing degrees of freedom in URL space, data representation, and form structure, enabling servers to modify functionality without breaking clients.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a server is evolved to change non-trivial aspects of its implementation, then the server's functionality and adaptability are improved, but pre-existing clients break and interoperability is lost
Solution Approach 1:
The patent implements dynamic adaptability where the server can evolve its implementation while maintaining interoperability through runtime adaptation mechanisms. The system dynamically adjusts to changes in server implementation without requiring client updates, allowing the server to modify its behavior and structure while preserving the contract with pre-existing clients.
Solution Approach 2:
The patent utilizes parameter changes to enable server evolution. By allowing the server to modify implementation parameters while maintaining the same interface contract, the system achieves non-trivial server updates without breaking clients. This includes changing internal representations, data structures, and processing logic while preserving the external API contract.
2Reliability
If multiple API versions are maintained to support server evolution, then client compatibility is preserved, but system complexity and deployment cost increase
Solution Approach 1:
The patent implements a universal adaptation mechanism that handles multiple server implementations through a single unified interface. The hypermedia API serves multiple functions: it acts as both the client interface and the adaptation layer, eliminating the need for separate version management while maintaining compatibility across different server implementations.
Solution Approach 2:
The patent introduces a hypermedia API as an intermediary layer between clients and the server implementation. This mediator handles the complexity of server evolution by absorbing changes internally while presenting a stable interface to clients, thus eliminating the need for multiple API versions and reducing deployment complexity.
3Reliability
If coordinated client upgrades are required for server updates, then interoperability is maintained, but deployment time and coordination overhead increase
Solution Approach 1:
The patent implements self-service adaptation where the hypermedia API automatically adjusts to server changes without requiring coordinated client upgrades. The system performs self-adaptation by interpreting server responses and adjusting its behavior accordingly, eliminating the need for manual coordination and reducing deployment time to near zero.
Solution Approach 2:
The patent prepares the system for future server changes by implementing a hypermedia API that is designed to be inherently adaptable. This preliminary design decision enables the system to handle server evolution without requiring subsequent coordination, as the adaptation capability is built-in from the outset rather than added later.
4Adaptability or versatility
If clients are made upgradeable on demand, then server evolution is supported, but clients deployed in unmanaged environments cannot be upgraded
Solution Approach 1:
The patent inverts the traditional upgrade model by making the server adaptable to clients rather than requiring clients to upgrade to match the server. The hypermedia API on the client side interprets server responses and adapts its behavior, allowing servers to evolve while clients remain unchanged. This approach works in unmanaged environments where clients cannot be upgraded.
Data Source
AI summary
Aspects of the disclosure relate to defining and/or specifying an application programming interface (API) between a client and a computing device (such as a server) in a manner that the client, the computing device, or both, can evolve independently while preserving inter-operability.


