Common Software Environment for Storage Platform Independence

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional programming environments for data storage devices are often static, non-expandable, and lack a common interface, making it difficult to integrate software components and add functionality across different operating systems, leading to significant duplication of work and limited platform independence.

Innovation Solution

A common software environment (CSE) is introduced that uses APIs to provide a unified architecture for integrated management of network attached storage (NAS) and object storage block services, enabling platform independence by leveraging existing technologies and allowing code to execute in both user and kernel modes, thus facilitating portability and reuse of technology across different platforms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a common software environment with unified APIs is implemented to enable platform independence and code reuse, then adaptability and ease of manufacture improve, but device complexity increases

Engineering Contradiction:
Improveplatform independenceVSAvoidsoftware architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a Common Software Environment (CSE) as an intermediary layer between the operating system and storage management applications. This CSE provides unified APIs and abstractions that mediate between platform-specific implementations and platform-independent code, enabling code to run across different operating systems without modification while managing the complexity through standardized interfaces

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements universal APIs in the Common Software Environment that serve multiple functions across different platforms. These unified interfaces allow the same software code to perform storage management operations on diverse operating systems (Windows, Linux, macOS, etc.), eliminating the need for separate platform-specific implementations and enabling one codebase to serve multiple platforms

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

2Adaptability or versatility

If code modules are allowed to execute in both user space and kernel space to provide flexible service provisioning, then adaptability improves, but reliability and stability worsen due to potential conflicts and errors

Engineering Contradiction:
Improveexecution mode flexibilityVSAvoidsystem stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments the software architecture into distinct execution environments (user space and kernel space) with clearly defined boundaries and communication protocols. Code modules can be selectively placed in appropriate execution spaces based on their requirements, with the CSE managing inter-space communication through standardized interfaces that maintain system stability while enabling flexible deployment

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The Common Software Environment acts as an intermediary layer that manages code execution across user and kernel spaces. It provides abstraction and mediation mechanisms that allow code modules to execute in different spaces while maintaining system reliability through controlled access and standardized communication protocols between execution environments

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9495210B1Logical device model
Publication Date: 2016.11.15 EMC IP HLDG CO LLC
  • US9495210B1 patent drawing
  • US9495210B1 patent drawing
  • US9495210B1 patent drawing

AI summary

Described are techniques for providing a logical device model. In one embodiment, a a method for providing a logical device model includes providing a plurality of logical devices, at least one of said plurality of logical devices being provided by a first provider executing in kernel space and at least one of said plurality of logical devices being provided by a second provider executing in user space, and establishing a relationship between the first provider and the second provider wherein the first provider is a consumer of a logical device provided by the second provider, said logical device model including said relationship.