Architectural style -> Adoptable system -> Microkernel.
Background –
As we are talking about adaptable system, we have to think
about heterogeneous system, we have huge number of different platforms and
software stack. If you are thinking to build a system which is portable, you
must agree that, you have to design it differently for different platforms. If
you do so, you will notice that main (or say core) functionality are same, but
you are rebuilding them again and again for different platforms, which is not at
all a right way.
What I am trying to say is, core functionality will be same,
doesn’t matter for which platform and how you build it. So is there any way I
can take that core logic as a separate unit? Yes of cures there is, that is
what you are reading about, its called “Microkernel”. Please look at below
mentioned image for a high level understanding.
Microkernal –
Core logic/logics of your system, which will be common for
all platforms.
Internal server -
There are some functionalities which are not core but are very
important, those functionalities we can capture here. This will be an extended
functionality, provided by microkernel. Only microkernel will have access to
invoke it, so if any request which needs to be done apart from core
functionality, microkernel will call internal server.
External server –
This will be an abstract layer, it will give you an
interface to use system effectively. Different platforms use different polices
to implement things, so your interface will vary as per different view or
platform.
Adapter –
We need an adapter here, as we have to connect to heterogeneous
systems.
Oh! Too much technical, let’s talk something non-technical. The kind of lifestyle we live today, we eat out very often. After ordering many different curries (“paneer do pyaza”, “Kadhai paneer”,”paneer lababdar”, etc) I have realized, all of them taste somewhat similar. Actually those fellow create same base curry for all different types. The moment you order any curry, they will use same base curry for different order and mix little different toppings and spices here and there as per curry type and that’s it. knowingly or unknowingly they have used Microkernel in their cooking business :)
UML Structure -
Sequence diagram -
Thanks for reading it. To read more on design patterns and basic design principles please see my web page. You can also join me on FB or on G++. Please drop comments for any question related to this blog.
Comments
Post a Comment