One Endpoint Many Subscribers

In this first example, the message stream from one publishing endpoint fans out to many subscribers that require different transport technologies. Endpoints help manage this complexity, and separate the responsibilities of programmers from the responsibilities of administrators.

The first diagram illustrates the role of endpoints, using the same situation as the diagram Transports of Different Types. Programs (blue) use endpoint names (black) to arrange publisher and subscriber objects (green triangles and circles). Administrators configure transports (red), and use them to connect endpoints (black).

Endpoints

Endpoints help to separate the responsibilities of programmers from the responsibilities of administrators. Continuing the example into the second diagram (below), the programmer must implement the application programs that publish and subscribe. Within those programs, the programmer must arrange publisher and subscriber objects. The administrator determines where to deploy those programs, and configures the transports that allow them to communicate. Endpoints are a dividing line between these separate responsibilities, and a common ground between programmers and administrators.

Separation of Responsibilities

Notice that the preceding two diagrams present two views of the same situation.

To review, we have seen two sources of potential complexity: deploying programs in varying environments, and connecting them with different transport technologies. We also saw how TIBCO FTL software uses the concept of an endpoint to simplify this complexity.