The most common way to summon the Protocol Editor is through the Repository Manager. Alternatively, the Protocol Editor can be opened for editing individual protocols by running the main method in the is.lill.acre.gui.swt.ProtocolEditor class.
As illustrated in the screenshot below, the Protocol Editor has 5 distinct sections (the coloured borders have been added for illustrative purposes only).
- Description Editor (orange)
- This holds the description of the protocol, consisting of a namespace, a name and a version number. The combination of these uniquely identifies a protocol. The allowable values for namespaces are the same as for Java package names. Protocol names should consist of lowercase letters, numbers and/or hyphens, but may not begin with a hyphen. Version numbers should have a major version number and a minor version number, separated by a dot.
- States Editor (red)
- This is used to define the names of the states used in the protocol. Deleting any states will automatically remove any transitions that previously started or ended at that state.
- Participants Editor (green)
- Each agent involved in a conversation should be identifiable in some way. Using variables here (i.e. beginning with a ? character) will have the effect of temporarily naming each agent during the conversation. In the above example, once an agent has sent a message that should be sent by the participant named ?pinger then that is the only agent that may send messages for the remainder of the interaction where the message is to be sent by ?pinger .
- Transitions Editor (blue)
- This defines the transitions between states that makes up the protocol. For each transition, you should define the names of the states the transition connects, the labels for the sender and receiver of the message that is to trigger the transition, the performative of the message, and the content the message should contain. Values beginning with ? or ?? are considered to be variables, which are described in ACRE Protocols.
- Protocol Visualiser (brown)
- Finally, the visualiser pane displays a visual representation of the protocol being edited/viewed. If the Graphviz package is not installed, this will not appear. The bottom field adjusts the zoom level of the graph.