relates UserPort (see Fig. 7.2) Symbol: substructure relation substructure relation between provider ports between user ports Fig. 7.11 The substructure relation Substructuring can be applied to any class of primitive service objects (note: not on complex objects). Figure 7.12 shows a substructuring example of a virtual object in two steps. Substructure levels A1245 Abstraction levels Fig. 7.12 A hierarchy of substructures representing a virtual object The principle for substructuring service objects is the same as was discussed in Chap. 4 for physical nodes: A virtual object V1 is defined on substructure level 0, through a primitive serv- ice S1, comprising a service resource model, a set of operations and a service behaviour. On substructure level 1, an agent A123 is defined that handles the S1 provider port. A decision is made on an internal abstraction level that defines a number of primitive services (S2 and S3, modelled as virtual objects V2 and V3), to be used by the agent A123. Using S1, S2 and S3, an object resource model is produced for A123, and the behaviour of A123 is specified. Note that the abstraction level defined by S2 and S3 is invisible on substructure level 0, as long as the substruc- ture levels are specified separately. 7.2 Concepts and Notations in Service Networks All internal objects can then be further decomposed by substructuring. The fig- ure shows a substructure (on substructure level 2) for the agent A123: an internal agent A1245 is defined that handles the S1 provider port and the user ports for S2 and S3. A decision is made on an internal abstraction level that defines another set of primitive services (S4 and S5) to be used by the internal agent A1245. S4 is provided by an additional agent A43 that abstracts the service S3. The abstraction level defined by S4 and S5 is invisible on the substructure levels 0 and 1 as long the levels are specified separately. Note that substructure levels and abstraction levels exist in orthogonal dimen- sions. The hierarchy of substructures within