Claims Analysis
Total Claims: 24
Claim 1
Independent Claim
146 words
In a storage controller having a processor and a memory, in which the controller receives I/O commands having corresponding addresses, a set of processor-executable instructions residing in the memory, comprising: a communication stack for receiving and transmitting information on a network; message queue facilities (MQF), cooperating with the communication stack and responsive to a message queue verb, for causing the communication stack to provide information to a queue in the MQF or causing a queue in the MQF to provide information to the communication stack; interface logic, responsive to the I/O commands, to determine whether an I/O command is within a first set of predetermined I/O commands and, if so, to map the I/O command to a corresponding message queue verb and queue to invoke the MQF such that the MQF may cooperate with the communication stack to send and receive information corresponding to the verb.
Claim 2
Dependent Claim
146 words
In a storage controller having a processor and a memory, in which the controller receives I/O commands having corresponding addresses, a set of processor-executable instructions residing in the memory, comprising: a communication stack for receiving and transmitting information on a network; message queue facilities (MQF), cooperating with the communication stack and responsive to a message queue verb, for causing the communication stack to provide information to a queue in the MQF or causing a queue in the MQF to provide information to the communication stack; interface logic, responsive to the I/O commands, to determine whether an I/O command is within a first set of predetermined I/O commands and, if so, to map the I/O command to a corresponding message queue verb and queue to invoke the MQF such that the MQF may cooperate with the communication stack to send and receive information corresponding to the verb.
Claim 3
Dependent Claim
78 words
The set of processor-executable instructions of claim 1, wherein the MQF has non-shared queues and wherein the interface logic includes a lock facility having logic to lock a data structure in the memory and corresponding to a queue in response to a first I/O command and to unlock the data structure corresponding to the queue in response to a second I/O command such that the queue may be shared among multiple client computers interacting with the storage controller.
Claim 4
Dependent Claim
33 words
The set of processor-executable instructions of claim 2, wherein the storage controller includes a lock facility and wherein the interface logic cooperates with the lock facility to lock and unlock the data structure.
Claim 5
Dependent Claim
32 words
The set of processor-executable instructions of claim 2, wherein the first and the second I/O command are processed by the lock facility to cause the locking and unlocking of the data structure.
Claim 6
Dependent Claim
62 words
The set of processor-executable instructions of claim 1, wherein a subset of the I/O commands have a limited-size payload, wherein the limited-size payload is smaller than a message size supported by the MQF, and wherein the interface logic includes reassembly logic to form a message queue verb having a payload larger than the limited-size from a plurality of I/O command pay loads.
Claim 7
Dependent Claim
63 words
The set of processor-executable instructions of claim 5 wherein the controller includes a record-pooling facility for receiving and associating a plurality of I/O commands payloads, wherein the reassembly logic cooperates with the record-pooling facility to gather a plurality of I/O command payloads to form a physically sequential payload therefrom in the memory to be used as a payload of a message queue verb.
Claim 8
Dependent Claim
40 words
The set of processor-executable instructions of claim 1 wherein the interface logic includes logic to support Put message queue verbs to a queue in the MQF; and logic to support Get message queue verbs to a queue in the MQF.
Claim 9
Dependent Claim
55 words
The set of processor-executable instructions of claim 7 wherein the logic to support Put message queue verbs includes logic to support Put verbs having a payload smaller than a limited-size; logic to support Put verbs having a payload larger than the limited-size; and logic to support multiple Put verbs as a transactional unit of work.
Claim 10
Dependent Claim
55 words
The set of processor-executable instructions of claim 7 wherein the logic to support Get message queue verbs includes logic to support Get verbs having a payload less than a limited-size; logic to support Get verbs having a payload larger than the limited-size; and logic to support multiple Get verbs as a transactional unit of work.
Claim 11
Dependent Claim
26 words
The set of processor-executable instructions of claim 5 wherein the interface logic includes logic to support Browse message queue verbs to a queue in the MQF.
Claim 12
Dependent Claim
63 words
The set of processor-executable instructions of claim 7 wherein the logic to support Get message queue verbs includes logic to detect when the MQF responds with a null message, and logic to signal a client computer that caused the Get message queue verb when the queue has received a message, so that software executing on the computer may block wait for a response.
Claim 13
Dependent Claim
74 words
The set of processor-executable instructions of claim 7 wherein the logic to support Put message queue verbs to a queue in the MQF includes logic, responsive to a first subset of the first set of I/O commands, to retrieve a payload of the I/O command, to map the address associated with the I/O command to a named queue, and to form and issue the Put verb with the retrieved payload to the named queue.
Claim 14
Dependent Claim
215 words
The set of processor-executable instructions of claim 7 wherein the logic to support Put message queue verbs to a queue in the MQF includes logic, responsive to a second subset of the first set of I/O commands, to lock a data structure corresponding to the address associated with the I/O command so as to prevent other clients of the I/O controller from performing actions to this address until the data structure is unlocked; logic, responsive to a third subset of the first set of I/O commands, to retrieve the payload of the I/O command, to map the address associated with the I/O command to a named queue, and to form and issue a Put verb with the retrieved payload to the named queue; logic, responsive to a fourth subset of the first set of I/O commands, to unlock a data structure corresponding to the address associated with the I/O command so as to allow other actions to this address, such that a Put to a shared queue may be accomplished by having a client computer issue an I/O command from the second subset to an address corresponding to a named queue, followed by an I/O command from the third subset to the address, followed by an I/O command from the fourth subset to the address.
Claim 15
Dependent Claim
249 words
The set of processor-executable instructions of claim 7 wherein the logic to support Put message queue verbs to a queue in the MQF includes logic, responsive to a fifth subset of the first set of I/O commands, to retrieve a payload of the I/O command, to map the address associated with the I/O command to a named queue, and to form and issue a Put verb with Sync-point with the retrieved payload to the named queue to start framing a unit of work; logic, responsive to a sixth subset of the first set of I/O commands, to retrieve a payload of the I/O command, to map the address associated with the I/O command to a named queue, and to form and issue an intermediate Put verb with the retrieved payload to the named queue; logic, responsive to a seventh subset of the first set of I/O commands, to retrieve a payload of the I/O command, to map the address associated with the I/O command to a named queue, to issue a last Put verb with the retrieved payload to the named queue, and to issue a Commit verb to the named queue to finish framing the unit of work; logic, responsive to an eighth subset of the first set of I/O commands, to map the address associated with the I/O command to a named queue, and to issue a Rollback verb to the named queue to finish framing the unit of work and to abort the unit of work.
Claim 16
Dependent Claim
80 words
The set of processor-executable instructions of claim 7 wherein the logic to support Get message queue verbs to a queue in the MQF includes logic, responsive to a ninth subset of the first set of I/O commands, to map the address associated with the I/O command to a named queue, and to form and issue a Get verb to the named queue and to return the retrieved payload from the named queue to a client computer causing the Get message.
Claim 17
Dependent Claim
218 words
The set of processor-executable instructions of claim 7 wherein the logic to support Get message queue verbs to a queue in the MQF includes logic, responsive to a tenth subset of the first set of I/O commands, to lock a data structure corresponding to the address associated with the I/O command so as to prevent other clients from performing actions to this address until the data structure is unlocked; logic, responsive to an eleventh subset of the first set of I/O commands, to map the address associated with the I/O command to a named queue, and to form and issue a Get verb to the named queue and to return the retrieved payload from the named queue to a client computer causing the Get message; and logic, responsive to a twelfth subset of the first set of I/O commands, to unlock a data structure corresponding to the address associated with the I/O command so as to allow other actions to this address, such that a Get to a shared queue may be accomplished by having a client computer issue an I/O command from the tenth subset to an address corresponding to a named queue, followed by an I/O command from the eleventh subset to the address, followed by an I/O command from the twelfth subset to the address.
Claim 18
Dependent Claim
214 words
The set of processor-executable instructions of claim 7 wherein the logic to support Get message queue verbs to a queue in the MQF includes logic, responsive to a thirteenth subset of the first set of I/O commands, to map the address associated with the I/O command to a named queue, and to form and issue a Get verb to the named queue to start framing a unit of work; logic, responsive to a fourteenth subset of the first set of I/O commands, to map the address associated with the I/O command to a named queue, and to form and issue an intermediate Get verb to the named queue; logic, responsive to a fifteenth subset of the first set of I/O commands, to map the address associated with the I/O command to a named queue, and to form and issue a last Get verb to the named queue and to issue a Commit verb to the named queue to finish framing the unit of work; logic, responsive to a sixteenth subset of the first set of I/O commands, to map the address associated with the I/O command to a named queue, and to issue a Rollback verb to the named queue to finish framing the unit of work and to abort the unit of work.
Claim 19
Dependent Claim
78 words
The set of processor-executable instructions of claim 1 wherein the interface logic includes address watching logic to determine whether the address of the I/O command is of interest; mapping logic, cooperating with the address watching logic, to map I/O commands of interest into intermediate actions to the MQF; and queue watching logic, cooperating with the MQF and the mapping logic, to determine when a message has arrived at a queue in the MQF for a pending Get verb.
Claim 20
Dependent Claim
68 words
The set of processor-executable instructions of claim 1 wherein the interface logic includes means for watching the address of an I/O command to determine whether it is of interest; means for mapping I/O commands of interest to intermediate actions to the MQF; and means for watching queues in the MQF to determine when a message has arrived at a queue in the MQF for a pending Get verb.
Claim 21
Independent Claim
92 words
A method of sending and receiving messages according to a MQF protocol, the method comprising the steps of: sending an I/O command having an address to an I/O controller having residing thereon a communication stack, a MQF, cooperating with the communication stack, and interface logic, cooperating with the MQF; the interface logic mapping the I/O command to an MQF verb and issuing the verb to the I/O controller-resident MQF; the I/O controller-resident MQF causing the communication stack to send a message, according to the MQF protocol and corresponding to the MQF verb.
Claim 22
Independent Claim
92 words
A method of sending and receiving messages according to a MQF protocol, the method comprising the steps of: sending an I/O command having an address to an I/O controller having residing thereon a communication stack, a MQF, cooperating with the communication stack, and interface logic, cooperating with the MQF; the interface logic mapping the I/O command to an MQF verb and issuing the verb to the I/O controller-resident MQF; the I/O controller-resident MQF causing the communication stack to send a message, according to the MQF protocol and corresponding to the MQF verb.
Claim 23
Dependent Claim
68 words
The method of claim 20 further comprising sending an I/O command to the I/O controller to cause a data structure corresponding to the address to be locked so as to prevent other clients of the I/O controller from performing actions to the address until the structure is unlocked; sending an I/O command to the I/O controller to cause a data structure corresponding to the address to be unlocked.
Claim 24
Dependent Claim
91 words
The method of claim 20 further comprising the steps of the I/O controller indicating to a client that the MQF does not contain data to respond to a MQF verb so that the client may block wait; the interface logic detecting when the MQF has data to respond to a MQF verb for which there previously was no data to respond; the interface logic causing the I/O controller to signal the client that the MQF now has data for the MQF verb for which there previously was no data to respond.