Protocol services are sets of operations that are performed within a particular protocol layer;
layers above can
request layer inherent protocol services via SAPs. The protocol service descriptions define
only the types of operation that a particular protocol layer may offer to the next layer up, via the inherent SAP. SAPs hide the complexity of the
layer implementation and describe, uniquely, the interface for the functionality that a particular
layer provides, and so enable protocol implementations from different
vendors to be used together in one protocol stack implementation; but SAPs do not
support changes, alterations, or improvements within the protocol stack. If even only minor
changes in terms of functionality or access to this functionality become necessary, the SAPs
and protocols must be restandardized. Within a protocol stack, each of the SAPs can be identified by a unique address (i.e. a port).
Each of the incorporated protocol layers possesses its own SAP; for example,
a transport layer offers its services via a ‘transport layer SAP’, while the session and presentation layers use ‘session layer SAP’ and ‘presentation layer SAP’, respectively. At first sight one might conclude that service provision via SAPs and via programming
interfaces are not dissimilardissimilar; however, there are a number of differences between the two
techniques that must be understood.
While SAPs are defined as ports, for accessing the
primitives defined within a layer, programming interfaces are defined in interface classes
that are linked to the actual implementations of the layers. Interfaces, can be organized hierarchically and their general structure also offers
the possibility of applying object oriented programming techniques and methods. This
principle enables both the extension and inheritance of interface definitions. Either of the techniques
may be applied to facilitate the use of generic interfaces and to enable customization and
extensibility of interface definitions. Apart from this ease in the redefinition of protocols and their interfaces, the opening up of
application or protocol programming interfaces has the potential to trigger an effect similar to
the introduction of application development for personal computers, whereby the provision of
open programmable interfaces (and later of complete development environments) triggered
the boom of a whole industry. A similar effect may be anticipated for application specific protocol programming in the networking and wireless networking arenas. |