![]() |
||
� |
[ObjectWeb Middleware] -> [What's Middleware] What is MiddlewareWith 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 MiddlewareIn 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 MiddlewareIn 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 :
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 MiddlewareMaking 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 :
For complementary information, an authoritative yet older introduction to middleware can be found at http://www.sei.cmu.edu/str/descriptions/middleware.html. |
![]() ![]()
![]()
Post a News - More... - RSS ![]() For the last 7 days: |
![]() |
![]() |
![]() |