An Introduction to Middleware Architectures and Technologies

A software architect needs to know possible options available for software components to communicate. This is the main role of software middleware

Overview

Using an analogy, it is the equivalent of the plumbing or wiring for software applications.

The distributed system provides the means for components of a single distributed application to communicate with each other, but also to let different applications communicate.

Figure 2.1 The middleware layer extends over multiple machines.

Figure 2.1 The middleware layer extends over multiple machines.

That said, there’s much more detail that must be addressed to build real systems, issues like exceptions, locating servants and multithreading to name just a few.

Middleware Classification

In reality middleware is much more complex than the simple analogy as described earlier. Different application domains tend to regard different technologies as middleware.

Figure 2.2 Classifying middleware technologies.

Figure 2.2 Classifying middleware technologies.

Brief explanations of the categories are below:

  1. The transport layer represents the basic pipes for sending requests and moving data between software components.
  2. Application servers are typically built on top of the basic transport services. They provide additional capabilities such as transaction, security and directory service.
  3. Message brokers exploit either a basic transport service and/or application servers and add a specialized message processing engine.
  4. Business process orchestrators (BPOs) augment message broker features to support workflow-style applications.