relation virtual object agent actor Fig. 7.2 Primitive concepts for service networks The term "primitive" is used only to distinguish these concepts from derived concepts, as "complex object" etc. (see Sect. 7.2.3). Since the present section deals only with primitive concepts, the term primitive is mostly implied. The outstanding characteristic of a service network is that all service relations are of type user-provider (compare to client-server in other languages). The graph- ical notation for a service relation shows which object is the provider (the triangu- lar port symbol is turned outwards) and which is the user (the triangular port symbol is turned inwards). The user-provider relation between objects means that in a service relation, only one of the objects implements operations, and that all operations are based on the same service resource model. The service ports in a service relation are called user port and provider port. Figure 7.3 gives an intuitive picture of how these concepts relate. The user port in a service relation uses operations that are associated with the provider port, and 7.2 Concepts and Notations in Service Networks implemented by the providing object. Note that a user port may only use a subset of all operations that are available. The object that has the user port defines its own operations, but these are only visible in the provider port of the using object, i.e. of no concern to the service relation that terminates in the user port. The service resource model, the set of operations and the service behaviour that are associated with a provider port defines a (provided) primitive service. The extent of a primi- tive service is always the designer's choice. The only restriction imposed by the service network concept is that all operations that are part of a primitive service must rely on a single service resource model. primitive service name or identifier (PSid) service user service provider Operation Operation S1 service S1 service Operation Resource Resource implemen- Model Model 