15 November 2005

Minimal integration 7: point-to-point, hub, or bus?

By Andrew Clifford

Integration architecture is referred to as point-to-point, as a bus, or as a hub. These are not mutually exclusive architectures, but complementary approaches for different aspects of integration.

If you looked at a group of systems that have been integrated, what would they look like? There are basically three options: point-to-point, hub, and bus.

Comparison of point-to-point, hub and bus integration architectures.

In point-to-point integration, data flows directly from system to system. Point-to-point integration starts simple, but becomes complicated as it gets larger.

With a hub, data flows through a central point. The hub may reformat the data, or make decisions on where to send it next. Hubs can simplify integration because they can connect systems with different data formats and data transfer methods. Hubs introduce complication because they add another place where development must take place and another runtime component.

With a bus, all systems follow the same standards and can share in a standard method of transferring data between the systems. Any new system can plug into the bus, as long as it meets the standards.

The different approaches reflect where decisions are being made and processing is being carried out. In point-to-point integration, decisions are made bilaterally and processing carried out locally. In hub-based integration, decisions are made independently, and processing is carried out centrally to make them fit. In bus-based integration, decisions are embodied in standards, and processing carried out locally.

Although they look quite different, these approaches are not mutually exclusive. Most integration solutions will have some bilateral aspects, some centralised aspects, and some standards-based aspects.

File-transfer based integration might appear to be entirely point-to-point. However, the underlying data transfer will be standard, and resolution of network names to addresses take place on a central name server.

Message-based middleware and XML might appear to be entirely bus-based. However, the business meaning of the messages might be based on bilateral agreement between systems and have the same constraints as a point-to-point architecture.

Hubs are often little more than a convenient collection of additional points within a point-to-point integration, specialised to carry out data transformation.

Do not be misled into thinking these are competing architectures. I recommend: