Arana Communication Protocols

Index Home Arana > Arana Architecture > Arana Communication Protocols

Arana - > Architecture - > Communication Protocols

Communication Protocols

The commhub daemon is the communication hub - all communication goes through it.

There are four types of messages that can be sent:

Control Protocol

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 Protocol

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.

Message Protocol

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.

display: [[usergw|Usergw]] Inbound Messages

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


input: [[guibroker|GUI Broker daemon]] Inbound Messages

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.


gui: [[guibroker|GUI Broker daemon]] Inbound Messages

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)


RPC Protocol

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).