RAL (Resource Assignment Language) is a language for assigning (human) resources to the activities of a business process model.
RAL is based on the organizational meta model (shown below in gray), which corresponds to an excerpt of the organizational meta model described by Russell et al. in "Workflow Resource Patterns: Identification, Representation and Tool Support". It basically consists of persons, positions, roles and organizational units. As depicted in the figure, a resource can be an individual resource, i.e., a Person, or a set of people involved in a specific group (Role, Position, Organizational Unit). Individual resources have a set of capabilities, such as their professional experience. The meta model is extensible to include new capabilities. Each person occupies one or more positions within an organization, which in turn can participate in several roles and belong to an organizational unit. Roles make sense only within a UnitType (e.g. project coordinator, head of a research group, etcetera).
Some elements related to business processes are also included in the meta model (in white). They represent the elements required to store information about the executions of the different process instances, so that we can resolve history-aware RAL expressions. Specifically, a BusinessProcess
has a set of activities, which have associated a RALExpression
indicating the resources allowed to perform the task at run time (i.e. potential performers
of the Activity
). For each process instance, zero, one or more instances of its activities can be executed. Each ActivityInstance
(a.k.a. work item
) can have a different actual performer
, as long as that person meets the conditions stated by the resource assignment expression. The completion time of each activity instance is recorded, so that some RAL expressions
can be resolved. The set of work items undertaken by a single person constitute his/her execution history
. The meta model shown in above, thus, contains all the information required to use all the RAL expressions.
In the following subsections we define RAL and describe each type of RAL expression. This language has three main advantages:
(i) It is very expressive, since it allows expressing resource constraints regarding information obtained both at design time and at runtime.
(ii) It allows adding organizational information to business process models, since it is based on an organizational metamodel.
(iii) Its syntax is close to natural language and, hence, it is easy to learn and use.