Exploring the Enterprise Service Bus, Part 3: Four Approaches to Implementing a Canonical Message Model in an ESB
The ESB is a core architectural pattern in a Service-Oriented Architecture (SOA). The role of the ESB is to provide connectivity between potentially heterogeneous service requesters (consumers) and service providers. Due to the legacy environment that most organizations have to deal with, applications often use proprietary models and metamodels (syntax) to describe information (semantics) in the messages they send or receive. Even if all participants use the same metamodel, for example, XML Schema Definition Language (XSD), they can still use a different message model, such as a different schema. Challenges arise when there are multiple proprietary message models and metamodels from different applications describing the same information, such as customer.