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

Compare with Current View Page History

« Previous Version 8 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. Connections capture all the state associated with an AMQP Connection. This includes the state of multiple Sessions that may be occuring over a given Connection, and whatever Links are established over those Sessions. At any given point in time a Connection object will be associated with at most one TCP connection (see Transport). Sessions provide basic multiplexing of a Connection. Sessions cannot exist without their parent Connection. Within a Session, Links provide the context for Message transfer between a source and target.

 

Deliveries

Link-Delivery Object Diagram

 

Messenger UML

 

 

 

  • No labels