Agents stand between enterprise and system perspectives. From an enterprise architecture perspective they are people whose authority and responsibilities are defined by organization. From a systems architecture perspective they are individuals with the capacity to interact physically with the system and take responsibility for their actions.
Yet, since systems cannot identify the source of interactions immediately (i.e without mediation), models must deal with the explicit distinction between actors on one hand, agents, devices, or systems on the other hand.
Agents vs Active Objects
If architectural concerns are to drive system modelling, requirements must make clear from the outset what kind of interactions are meant to be supported, in other words what kind of active objects are to be considered:
- Human beings are live objects bearing native identities. Depending on organizations, they can be associated with individual responsibilities, access rights and authorizations. They interact with systems through symbolic languages.
- Mechanical devices are physical artifacts bearing designed identities. They have no responsibilities but can be associated with access rights and authorizations. They interact with systems through analog languages.
- Digital systems are symbolic artifacts bearing designed identities. They have no responsibilities but can be associated with access rights and authorizations. They interact through digital languages.
Whereas different taxonomies could be considered, the one above is thrifty (only three options), exclusive, conclusive (easy to decide), and most importantly, it can be mapped into well defined architectural configurations.
Agents as System Users
System users can be described either as active physical objects set in actual contexts, or as symbolic players whose role is set by organizational units. Beside being active physical objects with the ability to initiate events and interact with systems, they are also entitled to decision making and therefore meant to take responsibility for their actions.
As illustrated by an increasing number of security lapses, the bearing of those concerns on system architectures is not always recognized; that failing may be ascribed to the confusion between:
- Actual persons (aka agents), with their identities and access rights, both managed consistently and persistently.
- Their behavior as system users (aka roles), to be matched to security and confidentiality requirements set by activities and targeted objects.
It must be noted that since agents carry a persistent and non mutable identity they cannot transmute into another form. That should be compared to roles, which can be played by different kinds of agents, let’s say human or mechanical.