Application Role
Application Roles reflect business roles. Application Roles represent groupings of functionality that an application can do. This includes Interactions an application can send, as well as interactions it can receive. It also includes the ability to execute the Receiver Responsibilities associated with received interactions, as well as the ability to support all Interactions which may be returned as part of the Transmission Pattern once the application has sent an interaction.
Application Roles will form the basis for a suite of Conformance Claims, in the same manner as was originally documented in the Version 3 Statement of Principles.
Notes
- One and the same interaction can be used by different application roles.
- If simple stereotype roles are used these may use the stereotype names Placer, Fulfiller, Informer and Tracker.
- An Application Role does not indicate support to all Interactions which may be returned as part of the Interaction Pattern; as a minimum all the interactions of the Transmission Pattern need to be supported.
Discussion
The answer to “what are the business application roles” is in the heads and in the implementation specifications of the many experienced (V2) implementers and implementations. We need to tap into what has already been done – not the V2 standard, but how it is implemented by most V2ers most of the time. This is how we define “application roles” in the real world all the time.
The domain committees will have to use this experience and include business role based application roles (even if only as informative material) in their ballot material. In cycles subsequent to the initial ballot, the committees will define specific specializations or instantiations of the generic application roles defined above.
Another aspect is the grouping of application roles due to their use: On the one hand they reflect the business roles, on the other they represent a hierarchy according to what needs to be implemented. It makes sense to define dependencies among different application roles, e.g. to support the "cancel admit notification tracker" only if the "revise admit notification tracker" role has been implemented/provided. The publishing database (PubsDB) currently provides a means to define the relationship between the application roles and events and interactions, but no recursive definition in form of a precondition.
Currently, the application roles are a non normative part of the V3 standard.