Posted by: Rpedroso
ESB products are usually composed of several applications. Each application is focused in one specific capability like monitoring, security and service orchestration.
These applications or modules are often related to service consumer and service provider.
This class of ESB modules follow one of these approaches:
a) Proxy: Service consumer calls an ESB component that calls the service provider. The proxy can store data from consumer and provider or it can ensure the consumer has the rights to access the provider.
b) Agent: An ESB component intercepts calls from service consumer. Like in the previous example, the component can monitoring the environment and and can ensure security.
What is the best approach?
The answer depends on the stage of SOA adoption.
If you just start developing services, I think an proxy-based product is more suitable. In this case, you don’t have a legacy to be modified to use the proxy.
Otherwise, if you had already developed a lot of services, you must consider the agent approach. Agent-based products are more expansive, but they don’t require any change in the services.