1460898218-d3016f36-8a53-4740-93f0-2dbf2ea4023d

1. A method for sending messages between first and second endpoints, which are processes executed on a processor, with the endpoints being clients of an infrastructure utilized to maintain state between endpoints, with messages between endpoints identified by type and a version number, and with a message that a user client owns including an opaque foreign-owned field that is managed and versioned by another client of the infrastructure which is the owner of the foreign-owned field, said method comprising:
registering with the infrastructure user client transformation functions for the user client, where the user client transformation functions transform between different versions of a particular message type owned by the user client;
registering with the infrastructure owner transformation functions for the owner, where the owner transformation functions transform between different versions of the foreign-owned field included in different versions the particular message;
registering with the infrastructure the identity of the owner of the foreign-owned field included in the particular message type for each version of the particular message type;
registering with the infrastructure the size of the foreign-owned field included in all versions of the particular message type and the offset of the foreign-owned field in the message;
calling a message transform part of the infrastructure when sending a message of the particular type between first and second endpoints owning different versions of the particular message type, where the message transform part utilizes the user client transformation function of the particular message type to transform non-foreign-owned fields in a first message of the particular message type of the version owned by the first endpoint to a second message of the version of the particular message owned by the second endpoint, where the message transform part reserves a placeholder for the foreign-owned field; and
calling a foreign-owned field transform part of the infrastructure that copies the foreign-owned field included in the first message of the particular message type, that utilizes the owner transformation functions to transform a copied foreign-owned field into an updated version of the foreign-owned included in the second message of the particular message, and copies the updated version of the foreign-owned field into the second message of the particular message type utilizing the size and offset of the updated foreign-owned field registered with the infrastructure.
2. The method of claim 1 where the endpoints are processes executed on different processors in a redundant system.
3. The method of claim 1 where the first and second messages are the same version.
4. The method of claim 1 further comprising:
registering a callback function; and
calling the callback function to provide an initial value of the foreign-owned field if the foreign-owned field is not included in the first message but is included in the second message.
5. The method of claim 1 further comprising:
providing a header file for the user client including information necessary to register the foreign-owned field with the infrastructure.
6. The method of claim 5 where the header includes a typedef field abstracting the size of the foreign-owned field.
7. A method for sending messages between first and second endpoints, which are processes executed on a processor, with the endpoints being clients of an infrastructure utilized to maintain state between endpoints, with a message that a user client owns including an opaque foreign-owned field that is managed and versioned by an owner client of the infrastructure which is the owner of the foreign-owned field, said method comprising:
registering transformation functions with the infrastructure that transform between different versions of a message;
utilizing the transformation functions of the user client to transform non-foreign-owned fields, in a message owned by the user client, between different versions of a message owned by a user client;
registering the ids of foreign-owned fields, in the message owned by the user client, with the infrastructure; and
utilizing the transformation functions of the owner client to transform foreign-owned fields, in the message owned by the user client, between different versions.
8. The method of claim 7 further comprising:
maintaining a place holder in the message owned by the user client to receive a transformed foreign-owned field.
9. The method of claim 8 further comprising:
copying a transformed foreign owned filed into the placeholder.
10. A system for sending messages between first and second endpoints, which are processes executed on a processor, with the endpoints being clients of an infrastructure utilized to maintain state between endpoints, with messages between endpoints identified by type and a version number, and with a message that a user client owns including an opaque foreign-owned field that is managed and versioned by another client of the infrastructure which is the owner of the foreign-owned field, said system comprising:
means for registering with the infrastructure user client transformation functions for the user client, where the user client transformation functions transform between different versions of a particular message type owned by the user client;
means for registering with the infrastructure owner transformation functions for the owner, where the owner transformation functions transform between different versions of the foreign-owned field included in different versions the particular message;
means for registering with the infrastructure the identity of the owner of the foreign-owned field included in the particular message type for each version of the particular message type;
means for registering with the infrastructure the size of the foreign-owned field included in all versions of the particular message type and the offset of the foreign-owned field in the message;
means for calling a message transform part of the infrastructure when sending a message of the particular type between first and second endpoints owning different versions of the particular message type, where the message transform part utilizes the user client transformation function of the particular message type to transform non-foreign-owned fields in a first message of the particular message type of the version owned by the first endpoint to a second message of the version of the particular message owned by the second endpoint, where the message transform part reserves a placeholder for the foreign-owned field; and
means for calling a foreign-owned field transform part of the infrastructure that copies the foreign-owned field included in the first message of the particular message type, that utilizes the owner transformation functions to transform a copied foreign-owned field into an updated version of the foreign-owned included in the second message of the particular message, and copies the updated version of the foreign-owned field into the second message of the particular message type utilizing the size and offset of the updated foreign-owned field registered with the infrastructure.
11. A system for sending messages between first and second endpoints, which are processes executed on a processor, with the endpoints being clients of an infrastructure utilized to maintain state between endpoints, with a message that a user client owns including an opaque foreign-owned field that is managed and versioned by an owner client of the infrastructure which is the owner of the foreign-owned field, said system comprising:
means for registering transformation functions with the infrastructure that transform between different versions of a message;
means for utilizing the transformation functions of the user client to transform non-foreign-owned fields, in a message owned by the user client, between different versions of a message owned by a user client;
means for registering the ids of foreign-owned fields, in the message owned by the user client, with the infrastructure; and
means for utilizing the transformation functions of the owner client to transform foreign-owned fields, in the message owned by the user client, between different versions.
12. The system of claim 11 further comprising:
means for maintaining a place holder in the message owned by the user client to receive a transformed foreign-owned field.
13. A computer program product executed by a processor for sending messages between first and second endpoints, which are processes executed on a processor, with the endpoints being clients of an infrastructure utilized to maintain state between endpoints, with messages between endpoints identified by type and a version number, and with a message that a user client owns including an opaque foreign-owned field that is managed and versioned by another client of the infrastructure which is the owner of the foreign-owned field, said computer program product comprising:
a computer usable medium having computer readable program code physically embodied therein, said computer program product further comprising:
computer readable program code executed by the processor for registering with the infrastructure user client transformation functions for the user client, where the user client transformation functions transform between different versions of a particular message type owned by the user client;
computer readable program code executed by the processor for registering with the infrastructure owner transformation functions for the owner, where the owner transformation functions transform between different versions of the foreign-owned field included in different versions the particular message;
computer readable program code executed by the processor for registering with the infrastructure the identity of the owner of the foreign-owned field included in the particular message type for each version of the particular message type;
computer readable program code executed by the processor for registering with the infrastructure the size of the foreign-owned field included in all versions of the particular message type and the offset of the foreign-owned field in the message;
computer readable program code executed by the processor for calling a message transform part of the infrastructure when sending a message of the particular type between first and second endpoints owning different versions of the particular message type, where the message transform part utilizes the user client transformation function of the particular message type to transform non-foreign-owned fields in a first message of the particular message type of the version owned by the first endpoint to a second message of the version of the particular message owned by the second endpoint, where the message transform part reserves a placeholder for the foreign-owned field; and
computer readable program code executed by the processor for calling a foreign-owned field transform part of the infrastructure that copies the foreign-owned field included in the first message of the particular message type, that utilizes the owner transformation functions to transform a copied foreign-owned field into an updated version of the foreign-owned included in the second message of the particular message, and copies the updated version of the foreign-owned field into the second message of the particular message type utilizing the size and offset of the updated foreign-owned field registered with the infrastructure.
14. The computer program product of claim 13 where the endpoints are processes executed on different processors in a redundant system.
15. The computer program product of claim 13 where the first and second messages are the same version.
16. The computer program product of claim 13 further comprising:
computer readable program code executed by the processor for registering a callback function; and
computer readable program code executed by the processor for calling the callback function to provide an initial value of the foreign-owned field if the foreign-owned field is not included in the first message but is included in the second message.
17. The computer program product of claim 13 further comprising:
computer readable program code executed by the processor for providing a header file for the user client including information necessary to register the foreign-owned field with the infrastructure.
18. The computer program product of claim 17 where the header includes a typedef field abstracting the size of the foreign-owned field.
19. A computer program product executed by a processor for sending messages between first and second endpoints, which are processes executed on a processor, with the endpoints being clients of an infrastructure utilized to maintain state between endpoints, with a message that a user client owns including an opaque foreign-owned field that is managed and versioned by an owner client of the infrastructure which is the owner of the foreign-owned field, said computer program product comprising:
a computer usable medium having computer readable program code physically embodied therein, said computer program product further comprising:
computer readable program code executed by the processor for registering transformation functions with the infrastructure that transform between different versions of a message;
computer readable program code executed by the processor for utilizing the transformation functions of the user client to transform non-foreign-owned fields, in a message owned by the user client, between different versions of a message owned by a user client;
computer readable program code executed by the processor for registering the ids of foreign-owned fields, in the message owned by the user client, with the infrastructure; and
computer readable program code executed by the processor for utilizing the transformation functions of the owner client to transform foreign-owned fields, in the message owned by the user client, between different versions.
20. The computer program product of claim 19 further comprising:
computer readable program code executed by the processor for maintaining a place holder in the message owned by the user client to receive a transformed foreign-owned field.
21. The computer program product of claim 20 further comprising:
computer readable program code executed by the processor for copying a transformed foreign owned filed into the placeholder.
22. A system for sending messages between first and second endpoints, which are processes executed on a processor, with the endpoints being clients of an infrastructure utilized to maintain state between endpoints, with messages between endpoints identified by type and a version number, and with a message that a user client owns including an opaque foreign-owned field that is managed and versioned by another client of the infrastructure which is the owner of the foreign-owned field, said system comprising:
a memory holding code for implementing the infrastructure, messaging, and endpoint processes;
a processor coupled to the memory for executing the infrastructure code and configured to register transformation functions with the infrastructure that transform between different versions of a message, utilize the transformation functions of the user client to transform non-foreign-owned fields, in a message owned by the user client, between different versions of a message owned by a user client, register the ids of foreign-owned fields, in the message owned by the user client, and utilize the transformation functions of the owner client to transform foreign-owned fields, in the message owned by the user client, between different versions.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A nozzle arrangement for an inkjet printhead, the nozzle arrangement comprising:
a substrate assembly defining an ink inlet channel and an endless static wall located about the ink inlet channel;
a roof structure defining an endless movable wall arranged to move along said static wall, towards and away from the substrate, and, together with the substrate assembly, defining a nozzle chamber in fluid communication with the ink inlet channel; the roof structure further defining an ink ejection port in fluid communication with said nozzle chamber; and
one or more oppositely disposed pairs of actuator assemblies mounted to the substrate assembly and extending inwardly to couple to the roof structure so that, upon actuation, the actuator assemblies can move the roof structure in a substantially rectilinear manner to vary the volume of the nozzle chamber and eject ink therein through the ink ejection port.
2. A nozzle arrangement as claimed in claim 1, comprising a quartet of actuator assemblies with two pairs of actuator assemblies being orthogonally arranged with respect to each other.
3. A nozzle arrangement as claimed in claim 1, comprising one pair of actuator assemblies.
4. A nozzle arrangement as claimed in claim 1, wherein said movable wall surrounds said static wall.
5. A nozzle arrangement as claimed in claim 1, wherein the ink inlet channel is constricted in a region proximate the nozzle chamber.
6. A nozzle arrangement as claimed in claim 1, wherein each actuator assembly is a thermal bend actuator assembly.
7. A nozzle arrangement as claimed in claim 6, wherein the substrate assembly comprises:
a silicon wafer substrate;
an electrical drive circuitry layer positioned on the silicon wafer substrate and electrically coupled to the thermal bend actuator assemblies; and
an ink passivation layer positioned on the electrical drive circuitry layer from which the static wall extends.
8. A nozzle arrangement as claimed in claim 1, wherein the roof structure further defines a raised rim bounding the ink ejection port and a surrounding well in which ink spatter from the raised rim can collect.