Terminology
This page explains some of the terminology as used in this protocol specification.
- Host: In fact, a host is referred to an instance of the program implementing the Infinote protocol. If there are multiple instances running on the same computer, then these are referred to as multiple hosts, for simplicity.
- Directory: Each Infinote server maintains an hierarchical tree of documents, called its Directory.
- Node: An entry in a server's directory. A node can be either a subdirectory node, or a session node. A subdirectory node can contain more nodes, whereas a session node is a leaf of the tree.
- Exploration: A client can explore a subdirectory node of a server. This involves the server sending the subdirectory's contents to the client and notifying it of changes, in case nodes are added or removed in that subdirectory.
- Session: For each session node, there is a corresponding Session. A session allows multiple hosts to collaboratively modify a document.
- Buffer: The contents of a session's document. For example for a session which allows to modify a text document, the buffer contains the actual text.
- Synchronization: The process of copying a session's state from one host to another is called Synchronization.
- Subscription: A host can subscribe to a session node. If it is subscribed, it is notified of any changes to the session by other (subscribed) hosts.
- User: When a host is subscribed, it can join one or more Users into the session. A user can make changes to it. So if a host is subscribed but has not joined a user, then it can only watch others modifying the document but not edit it itself. It needs to join a user to do so.
- Request: A host asking one or more other hosts to do something, then we call that message a Request.