Architecture

Diffusion Architecture

Diffusion is a Distributed Message Broker infrastructure. Diffusion allows you to create a two-way secure real-time online channel between an organisation and its audience. Diffusion enables you to push and receive data and events to and from any current, or future, ‘net’ connected device including the web browser. Some of the main components are introduced in the diagram below:-

Diffusion Architecture

Many of the components shown are optional. Only Publishers and Clients are essential for a working Diffusion application.

Clients connect to a Diffusion Server and Publishers publish Messages to Clients that are interested in those Messages. The communication is bi-directional and thus Clients may also send Messages to Publishers. A Publisher is a user written Java class.

An Event Publisher allows for data to be fed to Publishers from some external application.

An External Publisher allows for a Publisher to be implemented outside the Diffusion Server. It connects to the Server and publishes Messages which are routed by the Server to Clients.

A Publisher Server is a bi-directional communication channel between a Publisher and some external application. In a distributed environment a Publisher can connect to a Diffusion Server as a Client but can also connect to a Publisher Server as if it were a Diffusion Server.

Publishers and Clients are loosely coupled - the link being provided by Topics.

Distribution

Diffusion Servers may communicate in a peer to peer network to provide full scalable distribution. Load may be spread across different Publishers in different Servers across different machines. Publishers may act as Clients of other Servers by subscribing to Topics in the same way as normal Clients.

The following diagram shows a typical distributed configuration:-

Distribution