The increased focus on moving data from one application to another as a message rather than a data file has led to a greater need for flexible applications. The ability of flexible applications, to reformat and reroute messages that can be easily understood and read by appropriate systems drove the innovation of a new software known as Middleware or Enterprise Application Integration (EAI). Middleware functions as a translation layer, consolidator and integrator software. There are diverse products offering middleware solutions.
Middleware software has been designed to support various application architectures. Many firms operate using more than one single application architecture. For example, when third-party applications are acquired or firms merge, a company may end up operating with multiple architectures. Middleware supports these architectures, providing structured methods of interconnection in three environments that include test, production and development environments. Middleware functions to move data from one application to the next, between files and databases.
Middleware is considered a connectivity software because it functions to join applications through communication mechanisms. In its function, middleware is the layer between assisted software applications and application platforms, creating scalability, transparency and interoperability. Middleware software assists in database connectivity by providing API access to database interfaces. The advantage of using middleware is the standard and simplified database connectivity the software provides.
Message-based middleware or message-oriented middleware (MOM) relies on asynchronous (not synchronized) inter-application communication based around a message queue system. The disadvantage to asynchronous systems is overload of the network and slow server-processing of messages. Other disadvantages include limitations on protocol support should the platforms prove to be less popular. Each of the middleware products has been designed with inherent differences, making it difficult to select between vendors. Limited programmer access is one of the main disadvantages.
Remote Procedure Calls or RPC, make use of procedural middleware. Available on various operating systems like Unix and Microsoft Windows. RPC has a cross-platform capability, which gives it leverage over other types of middleware. However, the disadvantages to this type of middleware, RPC in particular, include replication, load balancing issues, limited scalability and low level of fault tolerance. The absence of direct support in various areas requires developers to deal with these aspects, adding a high level of complexity to the systems.
- University of Memphis: Security and Cost Considerations of Using Middleware to Facilitate SAS Integration
- PC Magazine: Encyclopedia Term - Middleware
- The University of North Carolina at Charlotte: College of Computing and Informatics -- Department of Computer Science -- Middleware - G. Michael Youngblood - Page 8
- The University of North Carolina at Charlotte: College of Computing and Informatics -- Department of Computer Science -- Middleware - G. Michael Youngblood - Page 7
- London's Global University: Department of Computer Science - Distributed Software Architectures Using Middleware -- Procedural Middleware -- Page 4