Two way coupling with EMRALD is done through XMPP messaging. An expandable protocol has been developed to allow for standard messages of "Actions" and "Events" to govern what happens both on the EMRALD server and the simulation clients. A XMPP server is run as part of the EMRALD solve engine which handles all the message passing. This allows EMRALD and the simulation codes to run on different machines or even different networks. These messages are JSON strings and a schema has been defined to allow validation of messages.
Actions are sent by EMRALD to a client simulation stating an action to perform. The following are the actions that can be sent:
Events are sent by a client indicating something has happened on the client that may affect the EMRALD simulation.These include the following: