You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

This document (in progress) describes the detailed architecture of the proton library. At its heart, proton provides a protocol engine that implements the AMQP 1.0 protocol specification. The concept of a Protocol Engine is central to the proton library, so please read the Protocol Engines document for some important background, in particular the concepts of the top half and the bottom half of a protocol engine.

The UML diagram below contains a relatively complete model of the engine API, along with the dividing line between its top and bottom halves. At its core a protocol engine is simply modelling the endpoint state machine defined by a given protocol specification, in this case the AMQP 1.0 specification. As such it should be no surprise that the top half of the engine API corresponds quite directly to entities defined within the AMQP specification itself. I'll describe each of these briefly here, but ultimately a good familiarity with the AMQP 1.0 specification is helpful to fully understand the API in depth.

Engine UML

These objects capture protocol endpoint state. An endpoint is an entity responsible for remembering key state for a given participant in a multi-way conversation. Connections, Sessions, and Links are all endpoints. Links track all the conversational state relating to message transfer between a specific Source and Target. There can be multiple Links established simultaneously on a single Session, and multiple Sessions established simultaneously on a single Connection, therefore each Connection endpoint may contain multiple Session endpoints, and likewise each Session endpoint may contain multiple Link endpoints At any given point in time a Connection endpoint will be associated with at most one TCP Connection (see Transport).

Deliveries

Link-Delivery Object Diagram

 

Messenger UML

 

 

 

  • No labels