Interface orientation, Horizontal and vertical interfaces

Interfaces to services can be designed with two alternative orientations: horizontal or vertical. Horizontal interfaces (or APIs) are local interfaces from a higher-level component to a lower-level component.

APIs for remote operations still allow the higher-level component to only interact with a local component (the API), since the component providing the horizontal interface acts as a stub, hiding the distributed nature of the interaction.

Vertical interfaces (or protocols) instead define the rules that are necessary to communicate with a remote component found on the same abstraction level.

A protocol still needs a communications mechanism which provides the foundation on top of which the protocol is supposed be executed, but the protocol itself provides a vertical separation between two services.

Read more in section 4.6 of