Middleware! It was somewhere, and now it is definitely everywhere. Over the past four decades, the term middleware has been tossed around, picked up, and investigated vigorously. Yet, if you ask 10 different people "what is middleware?" You will most likely get 10 different answers. It started as some additions on top of operating systems to facilitate complex applications development, moved to become data integration features, then became network applications facilitator, and eventually became an important component of every distributed environment, application, system and platform there is. To-date, if you examine any type of distributed system or application, you must find middleware or some middleware functionality involved. Although recently, the term itself is becoming less used, yet it still exists in mobile and sensor networks, service-oriented architectures, grid computing, cloud computing, online multi-player games, networked robotics, the Internet of things, and much more. So as is, middleware is really still everywhere and most likely will remain everywhere for a very long time.
MIDDLEWARE THROUGH TIMEMiddleware as a term appeared in the early 1970s according to [1]. The main mention refers to middleware as program enhancements to the operating system that help reduce the complexity of applications development and offer features not generally available in the operating system. However, until the early 1990s, the term was not much in use. During that period, several notions relevant to middleware started to appear although they did not carry the name middleware. There were several programming environments that provided abstractions and extended libraries to facilitate applications development, and these by essence belong to the middleware era. In addition, some tools and integration techniques were also used that resemble middleware functionality. Following the two-tier architecture that was becoming very common since the 1980s (the client/server model in particular), the three-tier architecture appeared. In this model, a third layer was introduced to facilitate the operations between the clients and the servers. This layer is usually referred to as the application server [2]. However, examining the model closely shows that the middle layer is actually nothing but the middleware. One interesting view of middleware is that it is the slash in "client/server" [3]. In the 1990s, another issue was becoming of high importance, and that is the integration between legacy systems that cannot be rebuilt or replaced with new applications designed and built using new programming models and tools. The two entities could not be merged, and it is usually very hard to match the interfaces among the two. Therefore, one notion of middleware appeared to help solve this problem. Data integration middleware such as Common Object Request Broker Architecture (CORBA) [4] came into the picture in 1991 and provided an excellent solution to the application integration and data interfacing issues. CORBA offered data and process ...