Service Primitives Sequence Diagrams

www.pragsoft.com Chapter 1: Introduction 11 • Transaction processing standards to allow different companies with different systems to access each other’s on-line databases e.g., in banking and airline reservation. • On-line directory standards for storing details of individuals, organizations, and network components. • Standards for exchanging formatted documents. Application layer standards have paved the way for open software systems, in which data can be communicated between incompatible base systems i.e., different hardware and software architectures without loss of meaning or usefulness.

1.4. Protocol Notations

OSI network protocols are specified in a variety of notations. This section describes two popular notations, sequence diagrams and state transition diagrams , which are extensively used in standards and the literature. Both rely on the notion of a service primitive which is described first.

1.4.1. Service Primitives

A service primitive is an abstract representation of the interaction between a service provider and a service user. Service primitives are concerned with what interactions take place rather than how such interactions are implemented. Service primitives may be of one of the following four types: • Request Primitive . This is issued by a service user to the service provider to request the invocation of a procedure. • Indication Primitive . This is issued by the service provider to a peer service user usually in response to a request primitive to indicate that a procedure has been requested. • Response Primitive . This is issued by a peer service user to the service provider usually in response to an indication primitive to indicate that the requested procedure has been invoked. • Confirm Primitive . This is issued by the service provider to a service user to indicate that an earlier request for the invocation of a procedure has been completed. An actual service primitive consists of a command and, if appropriate, a set of associated parameters. A simple convention is used for naming primitives: a primitive name consists of the first letter of the layer to which it belongs, followed by its 12 Communication Networks Copyright © 2005 PragSoft command name, followed by its type. For example, a request type primitive at the network layer for initiating a connection is named ‘N-CONNECT request’.

1.4.2. Sequence Diagrams

A sequence diagram defines a service protocol by specifying the permissible sequence of service primitives that may be exchanged between service users and service providers. Service users and service providers are represented by vertical bars. Service primitives are represented by directed lines between the bars. For clarity, primitive parameters are not included. Figure 1.7 shows a simplified example of requesting a connection at the network layer. According to the diagram, a service user can request, from the service provider, a connection to a peer service user. The service provider in turn issues a connection indication to the peer service user. The peer service user responds to the service provider which, in turn, confirms the cycle with the original service user. Figure 1.7 A simple sequence diagram. Service User Service User Service Provider N-CONNECT request N-CONNECT N-CONNECT N-CONNECT indicate response confirm

1.4.3. State Transition Diagrams