Application structure

The collaboration building blocks - channels and workers - can be used to build different types of collaboration application. However, most user-facing solutions can take advantage of the process client application, which provides a general-purpose container for running processes.

This section describes the minimum requirements for a collaboration application, and then outlines how the process client application is put together.

Minimum requirements

The very minimum an application must have is:

  • A suitably configured instance of Channel.
  • One or more workers of Worker, which have been registered with the channel, and which hold appropriate processes.
  • A public/private key pair, to which the channel links.

The most simple solutions are those that integrate existing applications through channels. These would typically use a single, long-running worker using the alternative Dynamic Worker type. This worker would have a process identifier of "control" to indicate that it applies to the whole channel. This would be sufficient for partners (i.e. the other end of the channel) to interact with the worker, which can then interface with the application.

Process client structure

The process client presents a configurable, general-purpose application used to run processes. It includes the following:

  • A folder of type Connections which contains nodes of type Connection (which extends Channel), and which allows the channels/connections to be managed.
  • A folder of type Workers Folder which contains the workers.
  • A folder of type Folders which contains Groups.
  • A user roles maintainer of Role User Group Maintainer to maintain users in groups, built in user groups for administrators and global users, and a folder to manage additional user groups.
  • Special groups: a Home group that contains other groups, a lost+found group that contains workers that are not in any groups, and a Settings group which contains workers that navigate to the various settings nodes.
  • Permission manifests to manage permissions.
  • Notifications to manage sending emails to users.
  • A scheduler that manages for how long after the last action on a worker that the worker should be considered of interest.
  • An overall main page. This uses a rich JavaScript front-end to present the application to the user, navigate groups, select workers, and run process actions.

The process client does not contain any capabilities to define processes or integrate into other applications. Instead, it uses connections to separate applications, known as "process modules" that provide these features.