Concepts of Middleware Technology
The word Middleware has been used in many forms. It is used to describe a wide variety of software products.
This can cause a problem in understanding exactly what a middleware product is. In the literature, there are many different middleware definitions. They range from a software layer between the operating system (and / or the network) and application to a Join between two applications.
It has been described as helper software or an essential part of a distributed system.
One possible definition for middleware is the software that assists an application to interact or communicate with other applications, networks, hardware, and/or operating Systems.
Middleware is all about integration.
History of Middleware
The first middleware products were not known as middleware per se. They were considered as helper tools for communication applications. Some of the earliest needs for middleware products were to assist in communication between companies within the same industries such as airlines. These airlines would have had multi-node networks as early as the late 1960s. Then, during the 1970s, most of the hardware vendors provided a way of networking many computers together.
This networked group of computers was known as distributed systems. When large companies started to work on creating distributed systems, they needed a middleware product to aid in performance, control, data integrity, and ease of use. This was a major expense in both time and money and only large computer companies could take on this task at first. These companies would not regret this expense; however, since it propelled them forward into the ever demanding distributed computer systems market.According to John Charles article, the first true middleware products were created in the early 1980s. Sun Microsystems, Inc. developed a product based on remote procedure call (RPC) protocol to use with their Open Network Computing(ONC) system. This middleware type program allows one program to request that another program (in another computer) perform a task without having to be troubled about the network particulars.
It is software
- Any reusable product that is used by the middle tier
- The glue that turns your business logic into an application
- It connects different types of applications, that working on different Operating Systems for Ex. Linux, Windows
- It is defined as a layer of software above the operating system, but below the application program that provides a common programming abstraction across a distributed system.