Multi-cloud Object Store Access via Persistency Factory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Developers face inefficiencies when creating applications that need to operate across different cloud environments with varying object store providers, as each provider has a unique API, requiring deep knowledge and substantial code changes to switch between them, which complicates business logic and increases development time.
Innovation Solution
A multi-cloud object store access system provides a simplified abstraction layer that hides the details of different object store providers, allowing consumer applications to use a unified interface for object store operations, independent of the underlying provider, through a persistency factory and adapter system that determines the appropriate adapter based on environment credentials.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If developers directly interface with different object store provider APIs, then they can access specific object store functionality, but the code complexity increases and portability between providers decreases
Solution Approach 1:
The patent introduces an intermediary layer consisting of abstract adapter classes and concrete provider-specific adapter classes that mediate between the consumer application and the actual object store providers. The factory object serves as a mediator that selects and provides the appropriate adapter instance based on environment credentials, thereby resolving the contradiction by adding an intermediary layer that improves portability while managing complexity through automation.
Solution Approach 2:
The abstract adapter class defines a universal interface that can work with multiple different object store providers through polymorphism. This universal interface allows the same consumer code to operate across different providers, improving adaptability while the underlying implementation handles provider-specific complexities.
2Productivity
If developers write provider-specific code for each object store API, then they can optimize for specific provider features, but the development time and maintenance effort increase
Solution Approach 1:
The factory object acts as an intermediary that automatically selects the appropriate provider-specific adapter based on environment credentials, eliminating the need for developers to manually configure provider-specific code. This automation reduces development time while maintaining provider independence through the adapter pattern.
Solution Approach 2:
The system changes the parameter of provider selection from a hard-coded, developer-configurable value to a dynamically determined value based on environment credentials. This parameter change allows the system to adapt to different providers without requiring developers to modify code, thereby reducing development time while maintaining adaptability.
3Reliability
If applications are configured to use a specific object store provider, then they can leverage provider-specific optimizations, but switching providers requires substantial code changes
Solution Approach 1:
The adapter pattern introduces an intermediary layer that encapsulates provider-specific optimizations within individual adapter classes while presenting a unified interface to the consumer. This allows the application to leverage provider-specific features through the selected adapter without requiring code changes when switching providers, as the factory will automatically provide the appropriate adapter for the new provider.
Solution Approach 2:
The system segments the provider-specific functionality into separate adapter classes, each responsible for a specific object store provider. This segmentation allows each adapter to be independently optimized for its provider while the overall system maintains ease of switching through the factory's automated selection process.
Data Source
AI summary
The present disclosure involves systems, software, and computer implemented methods for accessing an object store. One example method includes providing a persistency factory object configured to provide access to multiple types of persistency adapters. Each type of persistency adapter is configured to interface with a particular object store. A persistency adapter request is received from a consumer. A type of adapter to provide is determined. A determination is made that the consumer is configured to interface with a first object store and that a first persistency adapter class is associated with the first object store. A run-time reference to an instance of the first persistency adapter class is provided to the consumer. A first object store operation request to perform a first object store operation is received. The instance of the first persistency adapter class interfaces with the first object store to fulfill the first object store operation request.


