Active drive API
First Claim
Patent Images
1. A method comprising:
- providing an application programming interface that is an application-level protocol that comprises;
a plurality of different commands with each of the plurality of different commands having a pre-defined structure with bit patterns having defined logical meanings that specify a type of command and modifiers for the command, and each of the plurality of commands being communicable by a host simultaneously to a plurality of data storage drives without involvement of any intermediate hosts and servers; and
a plurality of different functions capable of being executed in the plurality of data storage drives in response to receiving the plurality of different commands in the plurality of different data storage drives;
storing, by one or more first commands of the plurality of different commands and one or more first functions of the plurality of different functions of the application programming interface, a user application as at least one object in a data storage drive, the at least one object including;
a key to identify the at least one object; and
a data field with a variable size to store the user application;
receiving, in the data storage drive or in an application-execution component associated with the data storage drive that provides an application execution environment, one or more second commands of the application programming interface directly from the host, the one or more second commands being directed to the user application to perform an operation relating to data stored on the data storage drive;
providing a controlled environment, in the data storage drive or in the application execution environment of the application-execution component associated with the data storage drive, for executing the one or more second commands without involvement of the host based on the bit patterns in the one or more second commands, the controlled environment being capable of limiting memory resources available to the user application when the user application is running in the data storage drive; and
executing the one or more second commands of the application programming interface in the controlled environment based on the bit patterns in the one or more second commands.
1 Assignment
0 Petitions
Accused Products
Abstract
An application programming interface (API) that enables installation of an application as one or more key-value objects on a data storage drive such as a hard disk drive, a solid state drive or a hybrid drive. The API also enables execution of the application within a controlled environment of the data storage drive.
58 Citations
20 Claims
-
1. A method comprising:
-
providing an application programming interface that is an application-level protocol that comprises;
a plurality of different commands with each of the plurality of different commands having a pre-defined structure with bit patterns having defined logical meanings that specify a type of command and modifiers for the command, and each of the plurality of commands being communicable by a host simultaneously to a plurality of data storage drives without involvement of any intermediate hosts and servers; and
a plurality of different functions capable of being executed in the plurality of data storage drives in response to receiving the plurality of different commands in the plurality of different data storage drives;storing, by one or more first commands of the plurality of different commands and one or more first functions of the plurality of different functions of the application programming interface, a user application as at least one object in a data storage drive, the at least one object including;
a key to identify the at least one object; and
a data field with a variable size to store the user application;receiving, in the data storage drive or in an application-execution component associated with the data storage drive that provides an application execution environment, one or more second commands of the application programming interface directly from the host, the one or more second commands being directed to the user application to perform an operation relating to data stored on the data storage drive; providing a controlled environment, in the data storage drive or in the application execution environment of the application-execution component associated with the data storage drive, for executing the one or more second commands without involvement of the host based on the bit patterns in the one or more second commands, the controlled environment being capable of limiting memory resources available to the user application when the user application is running in the data storage drive; and executing the one or more second commands of the application programming interface in the controlled environment based on the bit patterns in the one or more second commands. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system adapted to instantiate an application programming interface (API) that is an application-level protocol that comprises a plurality of different commands with each of the plurality of different commands having a pre-defined structure with bit patterns having defined logical meanings that specify a type of command and modifiers for the command, and each of the plurality of commands being communicable by a host simultaneously to a plurality of data storage drives without involvement of any intermediate hosts and servers, the API enables communication with a data storage drive for installation and execution of a user application within the data storage drive independent of a server, the system comprising:
-
a processor; a memory communicatively coupled to the processor, the memory having stored therein computer-executable instructions implementing the API and which, when executed, cause the processor to; enable the installation of the user application as key-value objects on the data storage drive with a first API command of the plurality of different commands according to the bit patterns and without use of a server; and enable execution of the user application within a controlled environment of the data storage drive with one or more second API commands of the plurality of different commands and without the use of the server, the controlled environment allowing for execution of the one or more second API commands without involvement of a host and the server and according to the bit patterns that have defined logical meanings in the one or more second API commands, and the controlled environment being capable of limiting memory resources available to the user application when the user application is running in the data storage drive. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A method comprising:
-
providing an application programming interface that is an application-level protocol that comprises;
a plurality of different commands with each of the plurality of different commands having a pre-defined structure with bit patterns having defined logical meanings that specify a type of command and modifiers for the command, and each of the plurality of commands being communicable by a host simultaneously to a plurality of data storage drives without involvement of any intermediate hosts and servers; and
a plurality of different functions capable of being executed in the plurality of data storage drives in response to receiving the plurality of different commands in the plurality of different data storage drives;assembling, by a processor, intermediate object code of a user application as executable code of the user application in a data storage drive; and storing the executable code of the user application on at least one data storage medium in the data storage drive; receiving an application-execution command of the plurality of different commands of the application programming interface in the data storage drive independently of the intermediate hosts and servers; in response to receiving the application-execution command, loading the executable code based on the bit patterns in the application-execution command; and running the executable code in a controlled environment of the data storage device and without involvement of any host based on the bit patterns in the application-execution command, the controlled environment being capable of limiting memory resources available to the executable code when the executable code is running in the data storage drive. - View Dependent Claims (17, 18, 19, 20)
-
Specification