Crisis and paradox in distributed-systems development

Similar documents
PolyORB: a schizophrenic middleware to build versatile reliable distributed applications

Model-Based Engineering for the Development of ARINC653 Architectures

Parley: Federated Virtual Machines

A Model for Scientific Computing Platform

From MDD back to basic: Building DRE systems

French & American Educational System. Collaboration between Rutgers & Paris 6. M.S. : Distributed Systems & Applications

Introduction to Web Services & SOA

October 2006 (vol. 7, no. 10), art. no ox IEEE Published by the IEEE Computer Society

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Layers of an information system. Design strategies.

The Ocarina Tool Suite. Thomas Vergnaud

A Tutorial on The Jini Technology

Managing Complexity of Designing Routing Protocols Using a Middleware Approach

Grid Middleware for Realizing Autonomous Resource Sharing: Grid Service Platform

Design of Telecommunication Services Based on Software Agent Technology and Formal Methods

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

Software Design COSC 4353/6353 DR. RAJ SINGH

ECSS E Test Platform Features and Applicability Area

Introduction to Web Services & SOA

Benefits of multi-model architecture-based development for railway applications

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Semi-automatic Creation of Adapters for Legacy Application Migration to Integration Platform Using Knowledge

A Scalable Location Aware Service Platform for Mobile Applications Based on Java RMI

Top-down definition of Network Centric Operating System features

Appendix A - Glossary(of OO software term s)

Framework for replica selection in fault-tolerant distributed systems

CAS 703 Software Design

Hardware Software Codesign of Embedded Systems

Introduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve

Oracle Service Bus Integration Implementation Guide Oracle FLEXCUBE Universal Banking Release [April] [2014]

Building High-Assurance Systems out of Software Components of Lesser Assurance Using Middleware Security Gateways

Techniques for Dynamic Swapping in the Lightweight CORBA Component Model

Characterising Resource Management Performance in Kubernetes. Appendices.

Applications MW Technologies Fundamentals. Evolution. Applications MW Technologies Fundamentals. Evolution. Building Blocks. Summary.

Open Server Architecture

Introduction to CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono

Hardware Software Codesign of Embedded System

Component-based Engineering for Embedded Systems USA EU workshop

Software Components and Distributed Systems

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV

MyCCM. A Component Based Approach for Real-Time & Critical Systems. Olivier Hachet Thales Communications

Requirements for TINA Platform towards Information Sharing Business. Long-term Trend of Telephone Business

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010

The Grid-Occam Project

Introduction to CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono

Chapter 1: Distributed Information Systems

AADL to build DRE systems, experiments with Ocarina. Jérôme Hugues, ENST

Supercomputing and Mass Market Desktops

1 From Distributed Objects to Distributed Components

Work groups meeting 3

Microservices Beyond the Hype. SATURN San Diego May 3, 2016 Paulo Merson

ARINC653 toolset: Ocarina, Cheddar and POK

Reflective Middleware: From Your Desk to Your Hand

Module 1 - Distributed System Architectures & Models

XBS Application Development Platform

Application Servers in E-Commerce Applications

CUDA GPGPU Workshop 2012

<Insert Picture Here> Enterprise Data Management using Grid Technology

System types. Distributed systems

A Grid-Enabled Component Container for CORBA Lightweight Components

Chapter 2 Distributed Information Systems Architecture

Real-Time Distribution Middleware from the Ada Perspective 1

P-NET Management with Java based Components

Integrating Fragmented Objects into a CORBA Environment

A High Integrity Distributed Deterministic Java Environment. WORDS 2002 January 7, San Diego CA

Model-Driven Engineering Approach for Simulating Virtual Devices in the OSATE 2 Environment

Distributed Systems. Lecture 4 Othon Michail COMP 212 1/27

LightVMs vs. Unikernels

Introduction to GT3. Introduction to GT3. What is a Grid? A Story of Evolution. The Globus Project

An agent-based peer-to-peer grid computing architecture

Software Architecture Patterns

Distributed Systems. What is a Distributed System?

Chapter 4: Multithreaded Programming

A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology

Protecting the Hosted Application Server

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems

3.4 Data-Centric workflow

Services Oriented Architecture and the Enterprise Services Bus

Java- and CORBA-Based Network Management. Mika Leppinen, Pekka Pulkkinen, and Aapo Rautiainen

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

Rapid Prototyping of Distributed Real-Time Embedded Systems Using the AADL and Ocarina

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Data Model Considerations for Radar Systems

Merging Enterprise Applications with Docker* Container Technology

Distributed Objects. Object-Oriented Application Development

A unified multicore programming model

Multiprocessors 2007/2008

CPE731 Middleware for Distributed Systems

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

Who we are. 2 Copyright Remedy IT

Achieving Quality Software Development for Distributed Environments

PLATFORM TECHNOLOGY UNIT-5

An Approach to Software Component Specification

Using Java Applets and CORBA for Distributed Application Development

RMI VERSUS CORBA: A MESSAGE TRANSFER SPEED COMPARISON

Declarative Self-Expand Service Access Framework for NASA Mission Users

From the Prototype to the Final Embedded System Using the Ocarina AADL Tool Suite

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics.

Real-time & Embedded Systems Workshop July 2007 Building Successful Real-time Distributed Systems in Java

Transcription:

IEEE DISTRIBUTED SYSTEMS ONLINE 1541-4922 2005 Published by the IEEE Computer Society Vol. 6, No. 3; March 2005 Department Editor: Olivier Marin, http://www.cs.vu.nl/~omarin/, Laboratoire d'informatique de Paris 6, olivier.marin@lip6.fr Toward Nex-Generation Middleware? Fabrice Kordon, Laboratoire d'informatique de Paris 6 Laurent Pautet, Télécom Paris Department Editor: Olivier Marin A large range of application domains, from real-time embedded systems to grid-computing applications, now require distribution. This trend implies definitions of new or tailored distribution mechanisms dedicated to specific applications and puts a strain on current middleware architectures and development. Crisis and paradox in distributed-systems development Let's define a distribution model as a set of mechanisms to handle distribution for example, distributed object computing, Remote Procedure Call, and message passing. Middleware specifications such as CORBA or Java Message Service propose the API and protocols to support these models. (For example, CORBA supports distributed object computing, and Java Message Service supports message passing.) Middleware implementations provide the circuitry to build and deploy applications. 1

Because of the increasing number of application domains requiring distribution and the consequent increase in distributed-systems requirements, users might need to extend or restrict a distribution model. Besides, a specific application might require mechanisms such as object persistence, transactional request processing, or light-weight runtimes. Middleware aims to unify and ease the development of an application on top of as general a distribution model as possible. But, in the middleware area, one size doesn't fit all. For example, most applications require only a subset of middleware services; developers should consider lighter, adapted implementations of a distribution model (see www.zeroc.com/icevscorba.html for a comparison between the Internet Communications Engine and CORBA ). Consequently, middleware requires a partial redesign to match the exact application requirements. We call this the middleware crisis. Distributed applications are becoming increasingly complex, and the reuse of existing distributed components is necessary to reduce development costs. Components might be either legacy components or commercial off-the-shelf (COTS) components. Assembling these components regardless of their distribution models is difficult. Moreover, the multiplication of distribution models doesn't help because components might then come from heterogeneous middleware. Middleware intends to separate an application from variations in hardware and operating systems. This new interoperability problem coming from middleware itself is now a serious industrial issue. We call this the middleware paradox. Next-generation middleware should be versatile enough to instantiate the exact required mechanisms of different distribution models. Middleware components that depend on a specific distribution model should be limited to application-level components or to protocol-level components. Many middleware components should remain unchanged from one instantiation to another. Making middleware versatile In our experience, four main properties characterize middleware versatility: Configurability lets you adapt an infrastructure to an application's real needs. A classical approach consists of defining an architecture in which loosely coupled components are separately configurable. The designer inserts properties into, or withdraws them from, the targeted middleware. 1 Genericity aims to handle configurability at the distribution model level. This is 2

a technical challenge for middleware engineering because such platforms must adapt to a large variety of distribution models. A classical approach is to factor out components to override and to reuse and integrate into a generic architecture personalized for the distribution model. 2 Interoperability enables communication between components built on top of different and heterogeneous distribution models. Typically, solutions provide either static or dynamic point-to-point translations of entities from one distribution model to another. This introduces significant overhead; some deployments might impede application scalability. 3,4 Quality confidence, as well as availability and dependability, is a nonfunctional requirement of an application. So, properties such as determinism, safety, liveliness, and timeliness must be proved or verified during design at both the application and middleware levels. However, verification of middleware properties is difficult and is usually performed on a limited scale. 5 Toward solving the middleware problem Owing to the middleware paradox, middleware design faces a problem similar to that of compiler design or processor architecture in the 1980s. Compiler theory faced a complexity issue owing to the multiplication of programming languages and processor architectures. To solve that problem, most compilers now come with a flexible architecture separating the compilation steps. A front end analyzes source code and interacts, using intermediate representations, with a back end that assembles machine code. Processor design was facing growing instruction sets and thus overly complex implementation. To solve the problem, RISC (reduced-instruction-set computing) processors now come with canonical instruction sets. The saved silicon surface lets a chip include more memory or dedicated coprocessor units. The middleware community must propose a solution similar to those we just described. An approach to handling middleware complexity should define a novel architecture based on a set of canonical middleware components. Figure 1 illustrates one possible architecture. 3

Figure 1. Overview of a middleware architecture. Middleware offers two interfaces. The upper interface implements the distribution model and is used by the application components. The lower interface consists of communication management and enables interactions with remote nodes. So, the middleware could rely on a core set of fundamental components that handle more sophisticated components such as those implementing the application and protocol interfaces. This coarse-grain level supports both genericity and interoperability: To provide a general scheme to implement a distribution model, you can reuse, override, and extend components from the middleware core. As in some processors where an underlying kernel emulates a complex instruction set, the core acts as the basis for the complex components at the application and protocol levels. Moreover, porting the middleware core to another OS is easier. The application and protocol interfaces all rely on the same middleware core, which therefore can act as a gateway between these layers. For instance, intermediate representations provided by the middleware core can ease the transformation of remote method invocations into Java Message Service 4

exchanges. The application interfaces act like compiler front ends, while the protocol interfaces act like back ends. The middleware core corresponds to the intermediate language and its management procedures. The middleware core is classically organized around a scheduler that manages all the middleware components. At this fine-grain level, configuration and quality confidence are easier to achieve: Each component can provide several implementations. Even the scheduler can be either monothreaded or multithreaded. Thus, given a set of constraints (such as the memory footprint), you can select appropriate implementations to build the required configuration. As with reduced processor instruction sets, the middleware core is easier to implement and test (the scheduler being the most complex part). So, providing a reliable core regarding a given set of properties is easier too. Because a reliable core is a prerequisite for reliable middleware, this is a positive step to increase middleware confidence. Researchers around the world have been experimenting with all the principles we've presented here. One of the first experiments, Quarterware, 6 defines a set of design patterns that, once specialized and assembled, implement CORBA, remote method invocation, or message passing interface distribution models. Artix (www.iona.com/products/artix) is a commercial product that intends to make interoperable numerous existing systems, representing multiple generations of architecture and technology. PolyORB (http://polyorb.objectweb.org/) is free software that tackles behavioral and architectural modeling issues. We think that such research is becoming one of the main trends in the middleware community. References 1. D.C. Schmidt and C. Cleeland, "Applying Patterns to Develop Extensible ORB Middleware,"IEEE Communications Magazine, vol. 16, no. 4, 1999, pp. 54 63. 2. B. Dumant et al., "Jonathan: An Open Distributed Processing Environment in Java,"Proc. Middleware '98: IFIP Int'l Conf. Distributed Systems Platforms and Open Distributed Processing, Springer-Verlag, 1998,pp. 175 190. 3. F. Breg et al. "Java RMI Performance and Object Model Interoperability: Experiments with Java/HPC++ Distributed Components,"Concurrency: Practice and Experience, vol. 10, nos. 11 13, 1998,pp. 941 955. 4. S. Baker, "A2A, B2B Now We Need M2M (Middleware to Middleware) 5

Technology,"Proc. 3rd Int'l Symp. Distributed Objects and Applications (DOA 01), IEEE CS Press, 2001, p. 5. 5. J. Hugues et al., "On the Formal Verification of Middleware Behavioral Properties," to be published in Proc. 9th Int'l Workshop Formal Methods for Industrial Critical Systems (FMICS), Elsevier, 2004. 6. A. Singhai, A. Sane, and R. Campbell, "Quarterware for Middleware,"Proc. 1998 Int'l Conf. Distributed Computing Systems (ICDCS 98), IEEE CS Press, 1998, pp. 192 201; http://choices.cs.uiuc.edu/papers/theses/phd.singhai.quarterware.html. Fabrice Kordon is a professor of computer science at the Université Pierre et Marie Curie and a member of LIP6 (Laboratory of Computer Sciences, Paris 6). He's also the head of the LIP6 Distributed and Cooperative Systems Department. Contact him at fabrice.kordon@lip6.fr. Laurent Pautet is an associate professor of computer science in the Network and Computer Sciences Department at Télécom Paris. He's the original designer of three free middleware projects (Glade, AdaBroker, and PolyORB). Contact him at laurent.pautet@enst.fr. Cite this article: Fabrice Kordon and Laurent Pautet, "Toward Next-Generation Middleware?" IEEE Distributed Systems Online, vol. 5, no. 1, 2005. 6