What Is Middleware?
What is middleware, where does it reside and why is it important?
This week, I am starting a new series on middleware. In all the time I have been in IT, I don’t ever remember having a discussion with anyone in system administration or application development where the topic of “what is middleware” came up. Why is this the case?
Administration and Development Have Practical Views
The people I worked with had views of middleware influenced mainly by what jobs they did.
The system programmers and system administrators saw middleware as programs that they installed that often needed serious admin privileges. They installed the products, did some testing then turned the software over to another group to use. These technical people get products ready for use but are not explicitly “users” of the software. They get middleware installed and administered, then pass the tool to others and provide support as needed.
Application developers saw middleware as a tool to do their job. They didn’t fuss about it. They jumped in and started to use capabilities that mainly made their job easier. They seemed grateful that they had less to invent and more to make use of as soon as they figured out how it worked. Learning happened by working with it on the job, and reading manuals—especially IBM Redbooks. Part of my job was to help them exploit capabilities and fix the occasional software bug. Developers are by far the main beneficiaries of middleware but not the only ones to experience the powerful advantages of middleware products.
How to Explain Middleware
Like many things in IT, middleware can be understood and explained in many ways. In broadest terms, middleware is software that is in the middle. Middle of what? Well, the different middleware layers of functionality are in the logical space between the computer, network hardware, OS and the business applications. You got it—applications on top, computer and OS on the bottom and middleware in the middle. Can you visualize the layers?
This depiction is used in textbooks but in today’s complicated software environment, other approaches are used to show the role and place of middleware. In some charts, middleware isn’t shown, implying it’s assumed to just be there. In others, it’s lumped in with the OS regardless of whether it’s packaged that way or not. In other charts, the middleware plays a minor role, as the focus of the chart is cloud, APIs or some other infrastructure or application focus. What we can conclude from the latest technical materials is that middleware isn’t new anymore and is simply assumed to be part of the software mix.
If you want to look behind the scenes and see middleware—examine it, explore it and develop a better understanding—where do you look?
Where You Find Middleware
Middleware is grouped by categories. Most categories have many products that are competing for customer use with the resulting sales and support revenue. Here are four important middleware categories:
1. Database
Database is a widely used type of middleware. However, some organizations don’t categorize database as middleware but rather have it as its own category in parallel to middleware reflecting its special role in their organization. A database management system is essentially a computerized data-keeping system. System users are given ways to perform different kinds of operations on the system for either working with the data in the database or the management of the database structure itself. Database management systems are categorized according to their data structures and there are several types of databases that can be used on a mainframe including inverted list, hierarchic, network or relational.
2. Application Server
Application servers are server programs in a distributed network that provides the execution environment for an application program. Like database middleware software, application servers are widely used. The application server is the primary runtime component, present in a number of configurations and is where an application code executes. The application server works with the web server to return a dynamic and customized response to a client request. In distributed environments, there are role-playing and team activities, and application servers have an important and specialized role in this intersystem interaction.
3. Message
Message-oriented middleware is a specific class of middleware that supports the exchange of messages in a distributed application environment. It’s useful to remember that “distributed environments” include mainframes as a key part of the application environment. Data is exchanged by message passing and queuing in both synchronous and asynchronous exchanges between computing processes. The messaging system ensures message delivery by using reliable queues and providing the directory, security and administrative functions required to support this important capability.
4. Web
Web middleware directly supports websites as every site runs from a computer known as a Web server, which is always connected to the Internet. Apache HTTP Server is the most popular web server in the world developed by the Apache Software Foundation. Apache web server is open-source software and can be installed on almost all OSes including Linux, Unix, Windows, FreeBSD, Mac OS X and more. About 60% of the web server instances run the Apache Web Server. IBM HTTP Server is a web server based on the Apache Software Foundation’s HTTP Server that runs on AIX, HP-UX, Linux, Solaris, JADE, Windows NT, IBM i and z/OS.
Next Post
Next week, I’ll continue with the middleware topic as I have a few other categories to discuss before I explore product implementations.