Figure 1: (simple) Jetfire Data Model
Jetfire Data Model
It is important to understand the relationship of Jetfire objects with Web Parts:
- to design Workflows
- To design Web Pages with Jetfire Workflows
Jetfire provides a flexible way of connecting data. The typical way of connecting data is explained on this page.
Figure 1 is a simple diagram that shows the relationship between Subscription, Workspace, Workflow, Namespace and Workflow Class.
The Subscription
The Subscription maps to the data storage of a set of workflows that a user can access.
- We also refer to the subscription as the Server Nexus.
- Jetfire provides the ability to create multiple subscriptions.
- Each subscription is contained in its own dedicated data storage.
The Workspace can be viewed as a folder where workflows are stored. It is used to organize Workflows in the subscription.
- Workspaces belong to a Subscription.
The Workflow is the basis of Jetfire. The basic tenet is that "Everything is a workflow". Hence, all Jetfire objects inherit from a common object.
Figure 2: Roles and Access Control Lists
Roles provide the logged-in user with permissions for accessing workflows, executing methods, accessing properties and changing permissions.
Figure 2 shows a set of Users (who are logged in) and a set of Workflows.
All workflows have a Roles property that contains a list of Roles.
Roles map to permissions for workflows.
Access Control Lists
All workflows have an ACL property.
The Access Control List 'controls who has access to the workflow'.
Figure 3: Mapping Roles to Access Control Lists
Roles and Access Control Lists¶
Figure 3 shows how roles map to access control lists to provide access to workflows. e.g. a logged-in user with Role A can access Workflows with Role A in its Access Control List.
The Namespace is a directory for jetfire code and class objects.
A Jetfire 'workflow class' is standard
OO class. The Workflow Class is the definition for the workflow - it is the Jetfire code.