service (Z.100)

<service diagram> ::=
<frame symbol> contains
{<service heading>
{ {<service text area> }*
{< graphical procedure reference >}*
{<procedure diagram>}*
{<macro diagram>}*
<service graph area> } set }

<service heading> ::=
service {<service name> | <service identifier>}

<service text area> ::=

<text symbol> contains
{ < variable definition >
| <data definition>
| <timer definition>
| <view definition>
| <imported variable specification>
| <imported procedure specification>
| <select definition>
| <macro definition> }*

<service graph area> ::=
<process graph area>


Service instances are components of the process instance, and cannot be addressed as separate objects. They share the input port and the expressions self, parent, offspring and sender of the process instance.

A service instance is a state machine.

When the process instance is created, the service starts are executed in arbitrary order. No state of any service is interpreted, before all service starts have been completed. A service start is considered completed when the service instance for the first time enters a state (possibly inside a called procedure) or interprets a stop.

Only one service at a time is executing a transition. When the executing service reaches a state, the next signal in the input port (which is not saved by the service, otherwise capable of consuming it) is given to the service that is capable of consuming it.

When a service ceases to exist, the input signals for that service are discarded. When all services have ceased to exist, the process instance ceases to exist.