Within each of these styles, there are multiple products to choose from. Moreover, any of these products may be used alone or in combination with other products. Thus the problem of middleware selection is increasingly important in the engineering of enterprise software systems. Middleware selection, construed broadly, is the determination of middleware to be used in a software development or integration project. The middleware may already exist, in which case selection reflects an intention to acquire it, or the middleware may not yet exist, in which case selection implies an intention to develop it.
Middleware selection is important for a number of reasons.
It is an essential part of the way in which distributed systems get built, both by new development and by integration of existing applications and services. In these roles, middleware interacts with and may impact many other kinds of technologies, such as database systems, workflow engines, web servers, and applications. It further affects system architecture and development processes. Middleware selection is also challenging, for these same reasons. Because of the central position and critical function of middleware, if it is selected or applied inappropriately, it can become a key disabling technology.