Communications Middleware is computer software that enables two otherwise separate software components, processes, and/or applications to exchange information, either within one device, or between multiple devices. Often, this is referred to as "Inter-Process Communications" or IPC. Communications middleware is an IPC mechanism.
Communications Middleware is a specific kind of Middleware: the layer that lies between the operating system (Linux, MAC, Unix, Windows, etc.) and system applications (accounting software, media players, office productivity suites, etc.) that allows for communications. Communications Middleware is built into or added the applications that need to communicate. Sometimes Communications Middleware is referred to as “plumbing” because it is the piece that connects two (or more) applications and allows data to pass through.
The purpose of Communications Middleware is to simplify the designing, programming, and managing of applications by streamlining the way these applications receive and process data.
Communications Middleware is used in a variety of software systems, from mobile devices (PDAs, Android phones, iPads, etc.) to enterprise and database systems. The equipment in these systems varies in screen and visual display capabilities, bandwidth capacities, and processing power. Communications Middleware can be cross-platform, that is, it facilitates communications between these differing devices. Communications Middleware can be cross-language, that is, it can understand and process multiple different operating languages (C, C++, Java, PHP, Ruby on Rails, etc.). We can use a cell phone and a PC here as an example. They both function in vastly different capacities, but with Communications Middleware, are able to “talk” to and “work with” each other. This holds true for devices of similar capacities with different operating systems as well (say a Mac talking to a PC, or your accounting software communicating with your word processing software).
Companies and organizations are increasingly integrating previously independent applications with new developments and technologies; building enterprise-wide information systems. This integration process surrounds legacy applications; old or out of date software. Many of these legacy applications can only be used through their specific interface, and modifications prove costly or otherwise prohibitive. This can occur when software needs to be upgraded, or when one company acquires or takes over another company and their different systems now need to work together. Communications Middleware can link information from departmental databases such as payroll, sales, and accounting, or databases housed in multiple geographic locations into one centralized system, even if these databases store and process information differently.