Soft Type Binding for Distributed Systems Decoupling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed systems, the extensive use of common data types leads to increased coupling between agents, preventing client and server applications from being developed independently and making it difficult to version them independently, as they rely on shared type information for data communication.
Innovation Solution
The implementation of 'soft type binding' allows data communications between different computer systems without requiring matching data types, enabling client and server agents to use different data types by materializing resources into instances of client-side data types and handling differences in property sets through default values or omission, thereby decoupling type hierarchies and enabling independent versioning.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If common data types are used for data communication between agents, then data structure validation and developer assistance are improved, but coupling between agents increases and independent versioning becomes difficult
Solution Approach 1:
The patent segments the type system into two independent parts: the wire format type definition at the server side and the materialized type at the client side. This segmentation allows each side to evolve independently while maintaining communication through the standardized wire format, resolving the contradiction between validation reliability and versioning adaptability.
Solution Approach 2:
The wire format acts as an intermediary layer between server and client type systems. The server serializes data to the wire format, which then deserializes to the client's materialized type. This intermediary enables independent type evolution on both sides while maintaining data communication integrity and validation capabilities.
2Reliability
If strict type matching is enforced between client and server, then data communication reliability is improved, but flexibility in using different data types and conventions is reduced
Solution Approach 1:
The patent changes the parameter of type matching from strict equality to compatibility through materialization. Instead of requiring identical type definitions, the system allows different type representations as long as they can be properly materialized to the client's expected type structure, maintaining communication reliability while enabling type flexibility.
Solution Approach 2:
Instead of having the client adapt to the server's type definition (traditional approach), the patent inverts the approach by having the server adapt its serialization to produce wire format data that can be materialized to the client's type system. This inversion enables greater client-side flexibility while maintaining reliable communication.
3Adaptability or versatility
If type mapping is used to translate between different type hierarchies, then interoperability between different conventions is improved, but complexity of type mapping and knowledge of original types is increased
Solution Approach 1:
The patent extracts the type mapping complexity from the client side by using materialization. Instead of requiring the client to know and map server type hierarchies, the system extracts only the necessary data from the wire format and materializes it directly to the client's type structure, reducing mapping complexity while maintaining interoperability.
Solution Approach 2:
The patent creates a copy of the data in the wire format that represents the server's type structure, then materializes this copy to the client's type structure. This copying approach allows interoperability between different type hierarchies without requiring the client to understand or map the original server types, reducing complexity.
Data Source
AI summary
Data communications are enabled to be performed between first and second computer systems without having to match data types at the first and second computer systems. A first data type is associated with a request for a resource. The request for the resource is transmitted from a first agent at the first computer system to a second agent at the second computer system. The resource is instantiated at the second computer system according to a second data type that is different from the first data type. The resource is received by the first agent from the second agent. The received resource is materialized into an instance of the first data type using the first agent.


