Middleware and Separation of Concerns
Middleware can exist in many ways but most common approach
is either the application service or the ESB approach. Regardless of what
platform or technology the middleware is hosted on, the main purpose of the middleware layer is the same:
separation of concerns.
As an example the following picture shows that the
middleware decouples the consumer from the back end systems by providing
services that act on behalf of the back end. This way the consumer does not
need to be concerned with the back end, and the back end does not need to be
concerned with who the consumer is or how it works.
Decoupling should be explained a bit further. Two systems
are coupled if there is a dependency between the two. What we try to achieve
with decoupling is that we try to minimize the amount of dependencies between
them.
Separation of concerns can be observed in middleware in many
ways but starting with offering services on the middleware platform allows us
to wrap back end systems. This then allows us to offer a standardized way of
accessing underlying back end systems. Standardizing the access to logic can
improve interoperability. To provide increased opportunity of interoperability,
we need to understand that we have to standardize contracts. If two systems are
interoperable it means that they can easily exchange information, or in other
words, cooperate. If we put in lots of effort we might be able to provide a
system that has something called intrinsic interoperability.
Intrinsic interoperability is achieved if we have
standardized a system in such a way (and if we have built logic in such a way
that the interoperability can be supported) that if two systems exchange
messages, the messages can be easily understood, without the need for (complex)
transformations or translations.
For intrinsic interoperability to be achieved, a number of
prerequisites must be met, and even then matters are not easy and require
significant amount of attention in the governance area.
No comments:
Post a Comment