Middleware provides services that don’t reside in the operating system. The term goes back to the late 1960s and was long the domain of highly technical disciplines like interapplication messaging and service-oriented architecture. But the cloud has put middleware at the center of how software is built, thanks to the rise of microservices, which are loosely coupled software functions. Modern cloud applications aren’t monolithic, but consist of components assembled like Lego blocks. An example of a service might be a “buy” button on an order page, a search widget or a package tracking app.
Sophisticated applications, such as ride-sharing, employ thousands of microservices that are exposed via the APIs that have become ubiquitous in the cloud. Programmable Web lists more than 24,000 public APIs, ranging from shopping cart orchestration to information about movies, and there are also millions of APIs that address industry- or function-specific use cases.
Building software on a services foundation provides many advantages. Perhaps the biggest is flexibility. A services approach enables developers to incorporate new functionality, such as voice recognition or chat bots, into their software without extensive building and testing, which allows for continuous development and deployment of new features.
It’s easier to change a services-based application because only individual services need to be modified rather than the entire code base. The result is a modular, more agile approach to software development that accommodates change without wholesale restructuring. We can design and implement at a speed we couldn’t before.
Service orientation is changing some industries fundamentally. Organizations that compete in a market may also cooperate by exchanging services with each other, either charging a fee or receiving other services in kind. In the past, organizations were reluctant to interoperate with one another. Now those services are exposed, and that drives innovation.
To best serve customers, software is required that can stitch the systems of far flung ecosystem partners together to achieve a common goal. That is the function of middleware – it is the glue that connects applications to each other within the enterprise’s four walls, and externally with cloud and software-as-a-service applications from third-party vendors. Middleware also enables businesses to modernize applications by adding abstraction layers that expose functionality as services or adds them to the legacy platform. That’s giving new life to old software.