PetriPad is a real-time collaboration extension for Renew. It enables simultaneous editing of the same documents from different editor instances over a network.

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.

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:

User agents

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.

Session management agents

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.

Session agents

represent individual collaboration sessions and keep track of the edited nets and the participating users. They also function as a central message relay between the participating user agents and resolve conflicts arising from concurrency. A session agent also stores the current state of each net.

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:


Last modified 11 years ago Last modified on Jun 25, 2012, 12:51:26 PM

Attachments (5)

Download all attachments as: .zip