I'm trying to understand what ESB Mediation is, exactly (concrete examples), and am hitting a mental wall.
According to Wikipedia, Data Mediation redirects to the Data Transformation article, whose only mention of mediation is vague and mysterious:
When the data mapping is indirect via a mediating data model, the process is also called data mediation.
So I ask: What is mediation (in the context of ESBs) and what are some concrete examples of mediation in action?
To me, the term Mediation is used in a general sense in this case and refers to functions of an ESB that enable it to mediate between multiple (often heterogenous) systems and their exposed services. ESB is a middleware, a technical backbone that helps you with integration and is often used when building SOA for an enterprise.
If you look at the functions column, next to Mediation in the table, it does give some context. It says - adapters, protocol transformation, service mapping
. I'll say a bit for each of the terms in the table and I hope it does help you understand the context.
Adapters
In a heterogeneous environment you'll often have great diversity of systems, built and bought in different eras, maintained by separate teams, owned by different departments, running on different platforms and with different technical capabilities and support of technologies. It is obvious that you need an abstraction that separates you from such technical details and enables any system to work with any other system regardless of these details. ESB supports adapters that connect out-of-the-box to many popular systems and enables all other systems to use these services without having to know anything specific about the other side. You'll have SQL adapter, or Siebel adapter, etc.
Protocol transformation
ESB handles different protocols - most often than not in your environment, you'll have services exposed by systems via SOAP over HTTP, some files that get uploaded on an FTP, you may have LDAP that stores accounts and what not. A proper ESB will handle multiple protocols in a transparent way and will be able to provide services that expose the desired functionality and hiding the technical details at the same time. This enables the developer that will consume the services to focus on the business processes she wants to implement, instead of protocols.
Service mapping
(Since we are talking about mediation I assume this refers to data mapping between services and it doesn't serve as a general term describing composition done within the ESB)
Sometimes you'll have multiple services handling the same business entity (e.g. Customer) but using different names and data types and structures for their properties (e.g. Loyalty level will be GOLD in one system and 100 points in another), because no common domain data model has been established (Most of the time, especially when you use multiple vendors and you have many systems, establishing a common model is a monstrous task). ESB will map and transform returned data in such a way, that it becomes understandable for the calling service.
Hope this helps! Good luck
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With