Skip to main content

Middleware Is a Favorite Thing

Middleware is the great amplifier of programmer productivity and application usefulness.

Geometric cubes in various colors

This week, I have another “favorite thing” that I hope you will recognize and appreciate: middleware, the great amplifier of programmer productivity and application usefulness.  
There are many different kinds of middleware, such as products organized by function like enterprise application integration. There’s also product-oriented middleware such as communications middleware. Some middleware products are hosted whereas others run on-premises. There is also middleware that’s focused on specific industries like energy and power, manufacturing and telecom. 
The size of the middleware market is substantial. MicroMarketMonitor estimates that middleware will be a $20.8 billion market by 2019, growing roughly 6 percent yearly. 
Origins of Middleware 
The first time I read about middleware, I saw that the author started the clock on middleware with client-server computing. This was the time when application components started running on different servers connected through the network. Middleware was needed to perform functions on multiple servers that were built-in functions on a single system. For example, remote procedure call was needed as a multiple system replacement for the regular, built-in procedure call.
It has been my observation that middleware emerged well before client-server computing. JES is perhaps the best example of software that foreshadowed the importance of middleware. JES is in the middle, a go between, connecting a user to the OS and the machine upon which it runs. When you submit a job, JES allocates your datasets, locates and loads your program. It does a lot more than this, but let’s keep it simple. Without JES, you would have to do this yourself and programmers would likely be reinventing the wheel each time they requested work to be done by the system. The result would be a loss of productivity and many other challenges such as figuring out how to handle running more than one job at a time. JES isn’t the only pre-client-server middleware example. CICS and IMS are perhaps more easily recognizable examples of important early middleware. 
Then and Now
Since 1969, CICS has been continually developed to handle the latest industry technologies starting with support for early 3270 display devices, virtual storage systems, database and recovery/restart support in the 1970s. In the 1980s, there was client server support, support on multiple platforms, including OS/390, VSE, AIX, AS/400, OS/2 and NT. Next came support of the internet and new web browsers, the ability for composite CICS and WebSphere transactions, and support of the Java and EJBs. Today, CICS has a component called TXSeries for Multiplatforms used for integrating data and applications between distributed solutions and enterprise systems.
Like CICS, IMS has been growing and evolving over more than four decades. Today, the focus of the IMS middleware support is through integration technologies. The IMS Enterprise Suite is a set of components that supports open integration technologies to enable new application development and extend access to IMS transactions and data. Technologies embraced include SOAP, JAVA and C APIs, and the Java Message Service APIs. 
Just considering these two examples, CICS and IMS, you can see the power of middleware to enhance the efforts of designers, programmers and support personnel. Middleware is the great amplifier of IT efforts.
What’s Next?
Next week, I’ll finish the series. My last “favorite thing” to write about is applications—collaboration, content and other types that have an enormous impact on our daily lives.     

Stay on top of all things tech!
View upcoming & on-demand webinars →