Middleware speeds development of distributed applications by simplifying connectivity between applications, application components and back-end data sources.
WebSphere Hybrid Edition
Red Hat OpenShift on IBM Cloud
WebSphere Application Server
IBM API Connect
Middleware is software that enables one or more kinds of communication or connectivity between two or more applications or application components in a distributed network. By making it easier to connect applications that weren't designed to connect with one another - and providing functionality to connect them in intelligent ways - middleware streamlines application development and speeds time to market.
There are many types of middleware. Some, such as message brokers or transaction processing monitors, focus on one type of communication. Others, such as web application servers or mobile device middleware, provide the full range of communication and connectivity capabilities needed to build a particular type of application. Still others, such as a cloud-based integration platform as a service (iPaaS) offering or an enterprise service bus (EBS), function as a centralized integration hub for connecting all the components in an enterprise. (There's even middleware that lets developers build their own customized middleware.)
Middleware got its name because the first middleware typically acted as a mediator between an application front-end, or client, and a back-end resource - e.g., 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. And as you'll read below, an emerging class of middleware leverages container technology to help developers connect to resources distributed across multiple clouds.
At the most basic level, middleware enables developers to build applications without having to create a custom integration every time they need to connect to application components (services or microservices), data sources, computing resources or devices.
In addition to providing this work-saving interoperability, middleware also includes services that help developers
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:
Enterprise application integration middleware lets an organization establish an enterprise integration hub - 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 a cloud-hosted model called integration-platform-as-a-service, or iPaaS, lets an organization 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 (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, as well as the other middleware types listed above.
Cloud-native is an application development approach that leverages fundamental cloud computing technologies, with the goal of providing a consistent development, deployment and management across on-premises, private cloud or public cloud environments.
Practically speaking, today cloud native-applications are applications built from microservices, and deployed in containers orchestrated using 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 executables that package application code – such as microservices – together with just the OS libraries and dependencies 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, but running containerized applications with conventional middleware can add complexities of its own, as well as the kind of infrastructure overhead that containers were designed to eliminate. For this reason, popular cloud application development platforms such as Cloud Foundry (link resides outside IBM) and Red Hat Open Shift evolved to include containerized middleware - middleware modularized so that just the required connectivity functions can be packaged in a container.
As organizations accelerate their digital transformation, within which middleware plays a key role, the need for automation widens. A move toward greater automation across business and IT operations should start with small, measurably successful projects, which you can then scale and optimize for other processes and in other parts of your organization.
Working with IBM, you’ll have access to AI-powered automation capabilities, including prebuilt workflows, to help accelerate innovation by making every process more intelligent.
Take the next step:
Get started with an IBM Cloud account today.
From your business workflows to your IT operations, we’ve got you covered with AI-powered automation. Discover how leading companies are transforming.
A flexible, security-rich Java server runtime environment for enterprise applications
Manage your API ecosystem across multiple clouds, including boosting socialization and monetization efforts
IBM Event Streams, an event-streaming platform based on Apache Kafka, can help you react to events in real time for more-engaging customer experiences.
Red Hat OpenShift on IBM Cloud leverages OpenShift in public and hybrid environments for velocity, market responsiveness, scalability and reliability.