By: Mike Piech, vice president and general manager, Middleware, Red Hat
The term 'middleware' has been used for many years to broadly categorise the set of behind-the-scenes technologies designed to help enterprises create, connect, and manage the myriad of software applications that run today's businesses. These applications can vary greatly, but are all meant to address specific business needs, such as insurance claims automation, financial fraud detection, transaction processing, or even to provide tailored interactions with customers based on time, location, preferences, and more.
Business needs and technology capabilities change and adapt to one another in a cyclical fashion over time, with new business needs fuelling innovations in technology and those innovations in turn giving birth to new business requirements. We've witnessed the impact of this cycle on the middleware market with trends such as service-oriented architecture (SOA) and web services impacting both development approaches and technologies in the not-too-distant past.
In this article, we will identify and examine several of the more prominent technologies and trends fuelling the evolution of middleware today, including cloud, DevOps, microservices, containers, and mobile.
Cloud-based development and DevOps
Historically, middleware technologies have been heavy, large-footprint tools used by enterprises to build monolithic applications and install them on a mainframe or physical server in a data center. In contrast, modern middleware tools are much lighter and boast smaller footprints, allowing them to be deployed in cloud environments and consumed as services by IT.
Arguably, one of the greatest drivers comes from the move toward cloud-based enterprise application development. Organisations have embraced Platform-as-a-Service (PaaS) as an increasingly popular technology that enables developers and IT operations professionals to build and maintain applications while avoiding many infrastructure-related challenges and expenses.
Mainstream acceptance and adoption of the cloud has subsequently given rise to new IT paradigms such as DevOps that help enterprise IT become more nimble and bring products to market faster. DevOps is broadly defined as the close collaboration between application development and IT operations teams.
Thanks in part to the efficiency and flexibility of cloud environments, DevOps teams can turn new service concepts into actionable products in hours rather than days or weeks. With that said, DevOps itself is already beginning to evolve and mature into a paradigm where, rather than solely focusing on making IT faster for its own sake, DevOps can be used to enable the business to fundamentally shift from massive, big-bet planning to more rapid, lower-cost, lower-risk trial-and-error experimentation. This concept, BizDevOps, presents an ideal scenario for cloud-based development using modern middleware services.
Another recent trend that is helping to redefine enterprise application development and the associated middleware technologies is the growing popularity of microservices architectures. The monolithic applications of the past could not easily be changed, often causing a painful ripple effect on the business when changing market conditions or new regulatory requirements demanded changes to the application in order to adapt. Service-oriented architecture (SOA) emerged as a way to help reduce the pain and minimise the disruption of change through the modularisation of applications into specialised “services” that independently perform separate functions of the application.
Today, the trend toward microservices takes this concept even further, resulting in not merely applications being decomposed into a larger number of modules, each of which is smaller and more narrowly focused. In many ways, microservices can be seen as a natural evolution of enterprise application development. By building applications with this type of modular approach, each discrete part can be updated, eliminated, scaled, or swapped independently and efficiently, with much less impact on the overall application.
A third notable and related trend driving the viability of microservices architectures—and heavily influencing the middleware market—is containerisation. Containers provide a way to isolate application runtime environments from the infrastructure to deliver greater consistency, reliability, and portability for applications as they are moved between different computing environments during their lifecycle.
With containers, and the most minimal subset of the operating system necessary to run each module, a lightweight, small-footprint middleware stack is critical for taking best advantage of containers' promise of rapid deployment and fast iteration. The core of this stack is the application-level runtime provided by an application server, which can then be built out with additional tools such as lightweight integration or messaging middleware.
Containers bring together the middleware stack, constituent services, and optimised operating system, and the entire entity becomes an microservice. When compared to traditional middleware technologies, the more agile and lightweight middleware offerings today present a compelling alternative for the modern enterprise.
Recently, the rate at which mobile has moved into the enterprise market has taken a sharp upturn, with dozens of enterprise mobility-focused startups joining the scene and a number of high-profile alliances being forged between leading mobile device manufacturers and enterprise technology vendors. Mobility is rapidly becoming the first choice client platform for application development over the desktop; however, it does not come without its own unique challenges, such as back-end integration.
An April 2015 survey conducted by TechValidate on behalf of Red Hat identified back-end integration as one of the top challenges facing the mobile enterprise today. At the same time, more than half of the respondents indicated that they are still dependent on custom integration work as part of their mobile application development. Mobile-oriented middleware technologies such as mobile application platforms and Mobile Backend-as-a-Service (MBaaS) have emerged to help enterprises address these challenges in a more scalable and efficient manner. While the enterprise mobility market is gaining steam, it is still fairly immature in this regard. If we were to poll this group again in a year, we would likely find many more respondents using mobile middleware to overcome these challenges, and fewer relying on do-it-yourself solutions.
In a 2011 editorial for The Wall Street Journal, entrepreneur and tech investor Marc Andreessen quipped that “software was eating the world”, arguing that software is rapidly becoming the dominant basis of value creation and competitive differentiation in many industries, dramatically disrupting long-entrenched hierarchies of incumbents.
Today, we see the outcome of that shift, as software has become a leading competitive differentiator for organisations across major vertical industries. Behind the scenes, middleware is what enables these companies to create powerful and unique applications that set them apart from their competitors. Though it has evolved over time and adapted to keep pace with trends such as cloud, mobile, and microservices, modern middleware continues to offer organisations effective capabilities to create, connect, and manage the software applications that help define and differentiate their businesses.