Technically and conceptually, ESBs can differ widely. On one hand, your solution might not involve any specific tool or piece of software at all. Just defining a protocol might be enough (in this case, the ESB would delegate a lot of tasks to the providers and consumers). On the other hand, an ESB might consist of several tools and programs that run centrally, and/or decentrally and are used by service designers, implementers, and operators. In this section, I'll provide an overview of the different approaches to help you understand the consequences of specific ESB designs.
One aspect where ESB technologies differ is in the amount of coupling they provide for the physical connections. Does the consumer have to know the exact address ("endpoint") of the service provider, or does the ESB provide some mechanism that brings consumer requests to the correct providers?
If the consumer has to know the endpoint, it sends each request to a specific receiver. Such a connection is called a point-to-point connection (see Figure 5-2). The problem with this type of connection is that the call fails if the physical receiver is not available.
Figure 5-2. An ESB providing point-to-point connections
If the consumer does not have to know the endpoint of the provider, it instead identifies the provided service by a tag or symbolic that the ESB ...