Home Topics What is Middleware? What is middleware?
Explore IBM's middleware solution Subscribe for cloud updates
Illustration showing the use of middleware to speed development of distributed applications by simplifying connectivity
What is middleware?

Middleware is software that enables one or more kinds of communication or connectivity between applications or components in a distributed network.

Middleware streamlines application development and speeds time to market through intelligent functions that facililate connections between platforms that originally were not designed to connect with one another.

Various types of middleware include message brokers or transaction processing monitors that focus on one type of communication; web application servers or mobile device middleware that provide the full range of communication and connectivity capabilities that are needed to build a particular type of application; and a cloud-based integration platform as a service (iPaaS) or an enterprise service bus (EBS) that function as a centralized integration hub for connecting all the components in an enterprise. (There's even a middleware that allows developers to build their own customized middleware.)

The term middleware was coined because the first version typically acted as a mediator between an application front-end, or client and a back-end resource—for example, a database, mainframe application or specialized hardware device—from which the client might request data. 

But today's middleware operates well beyond this scope. Portal middleware, for example, encompasses the application front-end as well as tools for back-end connectivity; database middleware typically includes its own data store. An emerging class of middleware also uses container technology to help developers connect to resources distributed across multiple clouds.

Strategic app modernization drives digital transformation

Strategic application modernization is one key to transformational success that can boost annual revenue and lower maintenance and running costs.

Related content

Register for the guide on hybrid cloud

How middleware works

At the most basic level, middleware enables developers to build applications without creating a custom integration every time they need to connect to application components (services or microservices), data sources, computing resources or devices.

Middleware does this by providing services that enable different applications and services to communicate through common messaging frameworks such as JavaScript object notation (JSON), representational state transfer (REST), extensible markup language (XML), simple object access protocol (SOAP), or web services. Typically, middleware also provides services that enable components that are written in multiple languages—such as Java, C++, PHP and Python—to talk with each other.

In addition to providing this work-saving interoperability, middleware also includes services that help developers

  • Configure and control connections and integrations. Based on information in a client or front-end application request, middleware can customize the response from the back-end application or service. In a retailer's ecommerce application, middleware application logic can sort product search results from a back-end inventory database by nearest store location, based on the IP address or location information in the HTTP request header.

  • Safeguard connections and data transfer.  Middleware typically establishes a secure connection from the front-end application to back-end data sources that use Transport Layer Security (TSL) or another network security protocol. And it can provide authentication capabilities, challenging front-end application requests for credentials (username and password) or digital certificates. 

  • Manage traffic dynamically across distributed systems. When application traffic spikes, enterprise middleware can scale to distribute client requests across multiple servers, on premises or in the cloud. And concurrent processing capabilities can prevent problems when multiple clients try to access the same back-end data source simultaneously.
Types of middleware

There are many different types of middleware. Some focus on specific types of connectivity, others on specific applications, application components and devices; some combine middleware capabilities for a specific development task. Some of the best-known and most commonly-used types of middleware software include:

Message-oriented middleware (MOM) enables application components that use different messaging protocols to communicate to exchange messages. In addition to translating or transforming messages between applications, MOM manages the routing of the messages so they always get to the proper components in the proper order. Examples of MOM include message queues and message brokers.

Remote procedure call (RPC) middleware enables one application to trigger a procedure in another application—running on the same computer or on a different computer or network—as if both were part of the same application on the same computer.

Data or database middleware simplifies access to and interaction with, back-end databases. Typically database middleware is some form of SQL database server.

Application programming interface (API) middleware provides tools developers can use to create, expose and manage APIs for their applications so that other developers can connect to them. Some API middleware includes tools for monetizing APIs, enabling other organizations to use them, at cost. Examples of API middleware include API management platforms, API gateways and API developer portals.

Object request broker (ORB) middleware acts as broker between a request from one application object or component and the fulfillment of that request by another object or component on the distributed network. ORBs operate with the Common Object Request Broker Architecture (CORBA), which enables one software component to make a request of another without knowing where other is hosted, or what its UI looks like—the "brokering" handles this information during the exchange.

Transactional middleware provides services to support the execution of data transactions across a distributed network. The best-known transactional middleware is transaction processing monitors (TPMs), which drive transactions from one step to the next—running the data exchange and adding, changing or deleting data where needed among others—through to completion.

Asynchronous data streaming middleware replicates a data stream in an intermediate store, enabling data sharing between multiple applications. Apache Kafka is one of the best-known examples of middleware for real-time data streaming.

Device middleware provides a focused set of integration and connectivity capabilities for developing apps for a specific mobile OS.

Portal middleware provides tools and resources for integrating content and capabilities from various related applications 'at the glass' or on a single screen to create a single, composite application.

Robotics middleware simplifies the process of integrating robotic hardware, firmware and software from multiple manufacturers and locations.

Enterprise application integration middleware

Enterprise application integration middleware enables an organization to establish an enterprise integration hub, which is a standardized way to connect all applications, application components, business processes and back-end data sources in the extended enterprise.

Until about ten years ago, the most prevalent enteprise application integration middleware was the enterprise service bus (ESB), which served as the integration hub within a service-oriented architecture (SOA). Today, iPaaS allows an organization to connect applications, data, processes and services across on-premises, private cloud and public cloud environments without the work and expense of purchasing, installing, managing and maintaining the integration middleware (and the hardware it runs on) within its own data center.

Platform middleware

Platform middleware (or application platform middleware) can further support application development and accelerate application delivery by providing a runtime hosting environment—such as a Java runtime environment (Java RE), or containers, or both—for application or business logic. Platform middleware can include or combine enterprise application servers, web servers and content management systems and the other middleware types that are listed.

Middleware and cloud-native applications

Cloud-native is an application development approach that uses fundamental cloud computing technologies to provide a consistent development, deployment and management across on-premises, private cloud or public cloud environments. 

Today's cloud native-applications are built from microservices and deployed in containers that use Kubernetes. Microservices are loosely coupled application components that encompass their own stack and can be deployed and updated independently of one another and communicate with one another using a combination of REST APIs, message brokers and event streams. Containers are lightweight execution tasks that package application code, such as microservices, together with just the OS libraries and dependencies that are needed to run that code on any traditional IT or cloud infrastructure.

Together these and related technologies create a powerful, develop-once-deploy-anywhere platform for delivering net-new hybrid cloud applications and for modernizing traditional legacy systems for use in the cloud. But they also lead to a complex development environment that combines even more software applications, data sources, programming languages, tools and distributed systems. 

Middleware can resolve some of this complexity. However, running containerized applications with conventional middleware can add complexities of its own, including the infrastructure overhead that containers were designed to eliminate. For this reason, cloud application development platforms such as Cloud Foundry (link resides outside ibm.com) and Red Hat® OpenShift® evolved to include containerized or modularized middleware so that only the required connectivity functions can be packaged in a container.

Related solutions
IBM Cloud Pak® for Applications

IBM Cloud Pak for Applications (CP4Apps) empowers your teams to deliver an application landscape that transforms with your business. Whether it's deployments, building new cloud-native applications, refactoring or re-platforming existing applications.

CP4Apps has it covered
IBM API Connect®

Manage your API ecosystem across multiple clouds, including boosting socialization and monetization efforts.

Explore IBM API Connect
AI-Powered Automation

From your business workflows to your IT operations, we got you covered with AI-powered automation. Discover how leading companies are transforming.

Explore AI-Powered Automation
Application delivery solutions

Explore how IBM application delivery solutions help build new cloud-native applications and modernize existing apps.

Explore application delivery solutions
Resources What is a message broker?

Message brokers are an inter-application communication technology that supports cloud native, microservices-based, serverless and hybrid cloud architectures.

What is iPaaS (intergration-platform-as-a-service)?

iPaaS is a cloud-based solution that standardizes and simplifies integration across on-premises and cloud environments.

What is a REST API?

REST APIs provide a flexible, lightweight way to integrate applications and have emerged as the most common method for connecting components in microservices application architectures.

Take the next step

Use IBM API Connect to secure and manage enterprise APIs throughout their lifecycles. It helps you and your customers consistently create, manage, secure, socialize and monetize enterprise APIs, and is also available as a highly scalable API management platform on IBM Marketplace and AWS.

Explore API Connect Book a live demo