Interprocess Communication (IPC) across departmental, business, and legal boundaries demands a flexible, open solution. Ashford has developed an IPC protocol based on the concept of a "conversation". Basically, two processes open a conversation and then exchange a series of well-defined messages. Since the messages are written as XML packets the technology is call X-IPC. The transport layer uses bi-directional sockets.
Conversation can be synchronous (each message requires a response) or asynchronous. If required a conversation can impose a specific message sequence. The process that initiates the conversation is called the client; the process that responds to the open conversation request is called the server. Either the client or server can initiate a message exchange.
Conversations are uniquely identified by name; similarly, messages within a conversation are uniquely identified by name.
X-IPC conversations are implemented as a set of ten C++ classes. Developers can easily incorporate X-IPC conversations in their applications. Details of the underlying sockets are hidden by the class structure.
The Ashford X-Engine technology includes an X-IPC interface. As such, the X-Engine can hold conversations with other processes. Ashford uses this technique for developing kiosk applications where the X-Engine user interface (browser based) communicates with other processes that monitor and control vending hardware (e.g., bill acceptors, credit card readers, etc.).