Arana Communication Protocols
Arana - > Architecture - > Communication Protocols
The commhub daemon is the communication hub - all communication goes through it.
There are four types of messages that can be sent:
This protocol is used to initiate communication, authenticate, identify, provide status, and terminate communication a daemon. Commhub uses this protocol to control the daemon - status check, suspend, resume, and stop. Some utilities use this protocol to start and stop other daemons or check their status.
Database access is abstracted, so commhub accepts database access messages and replies for dbbroker, which in turn communicates with the implemented database. Note that dbbroker has its own protocol for simple database queries, gets, and sets.
A message is one-way with a target listener and attached data. If the listener is off-line, the messages may be queued for later receipt. A message listener must register (with msgbroker) to receive messages sent to it.
Usergw abstracts the output device driver to each client interface.
Request |
Description |
display.selection pcid tag value selections |
Set a selector value in user GUI |
display.prompt pcid tag xid "question" type |
Display a prompt, question on a user GUI at the tagged location. When the user response, the response will accompany the xid (transaction id). A prompt box is cleared after the input has been processed. |
display.attn pcid "message" |
Display a message for user needing attention |
display.show pcid tag |
Make a tagged area visible on client GUI |
display.hide pcid tag |
Hide a tagged area on client GUI |
display.record pcid tag name values |
|
display.chat pcid fromid "message" |
Chat message between clients |
display.text pcid tag "text" |
Output (replace) some text at tagged location |
display.report pcid tag report table id |
Given a db record, output a standard report |
display.select pcid tag selector xid |
Present user with a selection. When user makes a choice, response comes back. |
display.textarea pcid tag "text" xid |
Present user with a text entry box. User alters/accepts text and hits submit button. |
display.write pcid tag "text" |
Appends text to tagged area. |
display.writeln pcid tag "text" |
Appends text to tagged area and adds a line break. |
display.format pcid tag format on/off |
Enable/Disable formatting attributes, e.g. bold, italic, underline, color:color. |
display.form pcid tag form xid |
Display a form to the user with various input controls |
display.field pcid table field value |
Update a table field on a user's display |
Usergw sends messages to GUI Broker daemon when the user sends us input.
Request |
Description |
input.response xid text |
User's response to a specific prompt/selector. |
input.chat frompcid text |
Send a chat message to another client or DM. (topcid selected/reported already) |
input.cmd frompcid cmd params |
User has selected a menu option or otherwise requested a command. |
input.refresh frompc tag |
Client is request a refresh on part or all of the display. |
input.select frompcid tag value |
Client has made a selection |
input.withdraw frompcid |
Client is going inactive. |
input.timeout frompcid' |
Communication has been lost with the client. |
input.online frompcid |
A client is now on-line and ready to interact. |
Usergw sends messages to GUI Broker daemon when the user sends us input.
Request |
Description |
gui.ask pcid question type xid |
Request a question of the user. |
gui.update pcid table field value |
Send an updated database field value for client GUI update |
gui.openwindow pcid name |
Create a region of the client's console for output, using the window name provided. |
gui.displayrecord pcid WName record data |
|
gui.write pcid tag text |
Send output (appended) to client console at the tagged/named area. |
gui.writeln pcid tag text |
Send output (appended) to client console at the tagged/named area, followed by a line break. |
gui.format pcid tag format on/off |
Control text output attributes (bold, italic, underline, color:color) |
A procedure call is synchronized and can time-out if no response comes. A daemon registers (with rpcbroker) to respond to a request (that typically has parametric data).