The Wayback Machine - https://web.archive.org/web/20050507151935/http://middleware.objectweb.org:80/
 �Consortium����Solutions����Middleware����Forge����MyObjectWeb�
ObjectWeb Consortium
Fundamentals
What's Middleware
Our Technical Vision
College & Community
Middleware Forums
Meetings & Events
Working Groups
Resources
Training Activities
Documentation Rings
Conf. Proceedings
ObjectWebCon05
Print

Advanced - Powered by Google

[ObjectWeb Middleware] -> [What's Middleware]

What is Middleware

With permission of the author, the following introduction to middleware is quoted and adapted from yet unpublished work and is �2003, Sacha Krakowiak. Sacha is Professor of Computer Science at the University Joseph Fourier, Grenoble, France, and member of ObjectWeb's College of Architects.

Motivation for Middleware

In a distributed computing system, middleware is defined as the software layer that lies between the operating system and the applications on each site of the system.

Stimulated by the growth of network-based applications, middleware technologies are taking an increasing importance. They cover a wide range of software systems, including distributed objects and components, message-oriented communication, and mobile application support.

Companies and organizations are now building enterprise-wide information systems by integrating previously independent applications, together with new developments. This integration process has to deal with legacy applications. A legacy application can only be used through its specific interface, and cannot be modified. In many cases, the cost of rewriting a legacy application would be prohibitive.

An increasing number of systems are composed of a collection of various devices interconnected by a network, where each individual device performs a function that involves both local interaction with the real world and remote interaction with other devices of the system. Examples include computer networks, telecommunication systems, uninterruptible power supply units, decentralized manufacturing units.

Users interact with Internet applications through a variety of devices, whose characteristics and performance figures span an increasingly wide range. Between a high performance PC, a smart phone, and a PDA, the variations in bandwidth, local processing power, screen capacity, ability to display color pictures, are extremely large.

Functions of Middleware

In all of the above situations, applications use intermediate software that resides on top of the operating systems and communication protocols to perform the following functions :

  • Hiding distribution, i.e. the fact that an application is usually made up of many interconnected parts running in distributed locations;

  • Hiding the heterogeneity of the various hardware components, operating systems and communication protocols;

  • Providing uniform, standard, high-level interfaces to the application developers and integrators, so that applications can be easily composed, reused, ported, and made to interoperate;

  • Supplying a set of common services to perform various general purpose functions, in order to avoid duplicating efforts and to facilitate collaboration between applications.

These intermediate software layers have come to be known under the generic name of middleware.

The role of middleware is to make application development easier, by providing common programming abstractions, by masking the heterogeneity and the distribution of the underlying hardware and operating systems, and by hiding low-level programming details.

Designing Middleware

Making software a commodity by developing an industry of reusable components was set as a goal in the early days of software engineering. While significant progress has been made, this still remains a long term challenge.

The function of middleware is to mediate interaction between the parts of an application, or between applications. Therefore architectural issues play a central role in middleware design. Architecture is concerned with the organization, overall structure, and communication patterns, both for applications and for middleware itself.

Besides architectural aspects, the main problems of middleware design are those pertaining to various aspects of distributed systems. Any middleware system relies on a communication layer that allows its different pieces to interoperate. In addition, communication is a function provided by middleware itself to applications, in which the communicating entities may take on different roles such as client-server or peer to peer. Middleware allows different interaction modes (synchronous invocations, asynchronous message passing, coordination through shared objects) embodied in different patterns.

The designers of future middleware systems face several challenges :

  • Middleware systems rely on interception and indirection mechanisms, which induce performance penalties. Adaptable middleware introduces additional indirections, which make the situation even worse.

  • As applications become more and more interconnected and interdependent, the number of objects, users and devices tends to increase. This poses the problem of the scalability of the communication and object management algorithms, and increases the complexity of administration.

  • Ubiquitous computing is a vision of the near future, in which an increasing number of devices embedded in various physical objects will be participating in a global information network. Mobility and dynamic reconfiguration will be dominant features, requiring permanent adaptation of the applications.

  • Managing large applications that are heterogeneous, widely distributed and in permanent evolution raises many questions, such as consistent observation, security, tradeoffs between autonomy and interdependence for the different subsystems, definition and implementation of resource management policies.

For complementary information, an authoritative yet older introduction to middleware can be found at http://www.sei.cmu.edu/str/descriptions/middleware.html.

News Letter

Archive...

Coming Up

More...

Latest News

Post a News - More... - RSS

Top Downloads

For the last 7 days:

More...


JavaRSS.com

Copyright � 1999-2005, ObjectWeb Consortium | contact | webmaster.