What is a firmware, middleware? I have heard this from so many people but I have not been able to understand what it actually means. Please help me out with me an example.