5 | | PetriPad uses a lightweight plugin for Renew that connects with a collaboration server that handles communication and session management. The server is implemented as a multi-agent system built upon the Mulan framework and the PAOSE approach. Communication between Renew clients and the server is handled by the WebSocket protocol: |
| 5 | The system currently supports creating and/or participating in multiple sessions and sharing multiple nets in each session. The approach is lock-free and provides instant feedback to the user's actions. |
| 6 | |
| 7 | PetriPad uses a lightweight plugin for Renew that connects with a collaboration server that handles communication and session management. The server is implemented as a multi-agent system built upon the Mulan framework and the PAOSE approach. The resulting system handles session management and distribution of changes between users. All communication regarding manipulations done by the users is transmitted to the session agent and then propagated to all other collaborating users (cf. image below). There are three different types of agents: |
| 8 | |
| 9 | **User agents** |
| 10 | represent the users of the system. It consists of a communication module with a well-defined interface to which an arbitrary editor can be connected. |
| 11 | **Session management agents** |
| 12 | offer an entry point to user agents. They are autonomous and can start or terminate sessions on request of user agents or be queried for a list of existing collaboration sessions. |
| 13 | **Session agents** |
| 14 | represent individual collaboration sessions and keep track of the edited nets and the participating users. It also functions as a central message relay between the participating user agents and resolve conflicts arising from concurrency. It also stores the current state of each net. |
| 15 | |
| 16 | [[ImageSvg(use_case_diagram.svg)]] |
| 17 | |
| 18 | Communication between Renew clients and the server is handled by the WebSocket protocol. In this approach the clients are not required to run a complete instance of the multi-agent system themselves, but only need a lightweight plugin for the editor: |