ects: two alternative route manag- ers and a routing analyser. The analyser always tries to provide two alternative routes, identified by two object identifiers, RM1 (first choice) and RM2 (second choice). The transaction tries first to get a channel in RM1. If that does not succeed, it tries RM2. If neither succeeds, it returns aTRRefuse, otherwise aTRConfirm. The services of activity objects represent a lower abstraction level in the abstrac- tion hierarchy of the service network than the provider port of the object that is modelled. If the service object is a virtual object, this lower level is hidden inside the object. If the object is an agent, the lower level is visible in the user ports of the agent. Thus, the object specification of an agent describes how events are mapped between abstraction levels. When the state machine is used for simulation of virtual objects, code must be provided for activity objects to make the machine work. Virtual objects are there- fore suitable modelling elements in service networks when activity object imple- mentations are already available, e.g. as reusable objects in a library or as platform and operating system services. If the model is used for agent simulation, the serv- ices of activity objects are specified as part of the service network, and can be code generated (the user port object behaviour is predefined). Agents are therefore suita- ble modelling elements in service networks when activity objects are unique parts of the service that is modelled by the service network. We will end this section by discussing four scenarios that explain how the state machine for virtual objects handles modifier operations, selector operations, inter- nal initiating events and error control. First are modifier operations, see Fig. 7.58. 1. The external Request is detected by the provider port object (PO), which accesses the operation specification (OS) for the referred operation. PO checks the Request with respect to time and other constraints. Assuming that every- thing is in order