As mentioned at the beginning of this chapter, ESBs usually provide more than just connectivity. Let's briefly explore the other services an ESB can provide. Where it's relevant, I will refer you to later sections where these topics are discussed in further detail.
As introduced in Heterogeneous Data Types, loose coupling usually leads to a situation where only a few fundamental and stable data types are defined as a common data model. For all other kinds of information, providers define their own data types. In addition, Using Different Types for Different Versions of a Data Type will demonstrate that versioning of data types can even lead to a situation where services supplied by the same provider use different data types for the same data. As a consequence, a consumer should have a thin mapping layer to map the provider's data types to its own data types.
Of course, an ESB can deal with the need for data mapping and data transformation. As discussed earlier, it depends on how you define the responsibilities of the ESB. The layer that maps between the protocol-specific and platform-specific APIs might also be able to map data types. Alternatively, the ESB might be able to define proxies that map data types inside the protocol. Of course, both approaches require some way to specify the mapping.
These days, some vendors try to solve this problem by introducing a common object model inside the ESB, which of course disables the effect of loose ...