Middleware'98

Middleware 98 | Conference report | Proceedings


Middleware'98

Sponsors
Call for papers
Organising committee
Submissions
EPSRC bursaries

Registration
Programme
Keynote addresses
Technical papers
Work-in-progress papers
Posters
Tutorials
Connectivity
Related events

Location
Social programme
Accompanying persons
Travel
Hotels


Technical Papers

Listed alphabetically by author surnames.


Architecturing and Configuring Distributed Application with Olan

R. Balter, L. Bellissard, F. Boyer, M. Riveill and J.Y. Vion-Dury
INRIA, France

Middleware platforms are today solutions to the problem of designing and implementing distributed applications. They provide facilities for heterogeneous software components to communicate remotely, according to various interaction model, for example client server communication or asynchronous message passing. However, middleware platforms, like message busses or object request brokers, hardly provide tools for the design, configuration and installation of complex software architectures.

This paper presents the Olan environment which primary objective is the description of complex architecture, their configuration according to application requirements and the deployment on heterogeneous distributed environments. The Olan environment is based on an Architecture Description Language where the application is considered as a hierarchy of interconnected software components. A set of software engineering tools assist the application designer in his task of wrapping existing software modules into components which are in turned interconnected through various communication models and finally assembled together according to specific configuration criteria. At run time, a set of system services in charge of automating the installation of the components and their communication channels on a given middleware platform, thus facilitating the overall deployment process of the global application.

Appears: Session 6 (Components), Thursday PM


Mole 3.0: A Middleware for Java-Based Mobile Software Agents

J. Baumann, F. Hohl, K. Rothermel, M. Schwehm and M. Strasser
University of Stuttgart, Germany

Mole is one of the first Java-based mobile agent systems. It runs on an unmodified Java virtual machine on PCs under Windows 95/NT and on workstations under several UNIX dialects. Earlier versions of Mole have provided a basic infrastructure for communication and migration of mobile agents. Version 3.0 of Mole has been strongly revised and several requests and proposals from users of the earlier versions of Mole were integrated into the new release. In particular Mole supports communication between agent groups and the concept of sessions. The infrastructure of Mole includes a resource manager, a directory service and a global naming scheme for agents. In order to support the design of agents, a graphical agent monitor allows to visualize the system behavior as a whole or of a single agent in particular. Mole further provides a thread management unit to overcome some shortcomings of the Java virtual machine. Mole provides a simple means for installation and configuration of the system. This paper describes the architecture and infrastructure of Mole 3.0.

Appears: Session 8 (Mobile Objects), Friday AM


An Architecture for Next Generation Middleware

G. S. Blair, G. Coulson, P. Robin and M. Papathomas
Lancaster University, UK

This paper proposes an approach to the design of configurable and open middleware platforms based on the concept of reflection. More specifically, the paper introduces a language-independent reflective architecture featuring a per-object meta-space, the use of meta-models to structure meta-space, and a consistent use of object graphs for composite components. This is complemented by a component framework supporting the construction of meta-spaces. The paper also reports on experiences of implementing the architecture (with emphasis on experiments with open bindings).

Appears: Session 5 (ORB Architecture), Thursday AM


Active Cache: Caching Dynamic Contents (Objects) on the Web

P. Cao, J. Zhang and K. Beach
University of Wisconsin-Madison, USA

Dynamic documents constitute an increasing percentage of contents on the Web, and caching dynamic documents becomes an increasingly important issue that affects the scalability of the Web. In this paper, we propose the Active Cache scheme to support caching of dynamic contents at Web proxies. The scheme allows servers to supply cache applets to be attached with documents, and requires proxies to invoke cache applets upon cache hits to furnish the necessary processing without contacting the server. We describe the protocol, interface and security mechanisms of the Active Cache scheme, and illustrate its use via several examples. Through prototype implementation and performance measurements, we show that Active Cache is a feasible scheme that can result in significant network bandwidth savings at the expense of moderate CPU costs.

Appears: Session 9 (Web Services), Friday AM


System Support for Scalable and Fault Tolerant Internet Services

Y. Chawathe and E. Brewer
University of California at Berkeley, USA

Over the past few years, we have seen the proliferation of Internet-based services ranging from search engines and map services to video-on-demand servers. All of these kinds of services need to be able to provide guarantees of availability and scalability to their users. With millions of users on the Internet today, these services must have the capacity to handle a large number of clients and remain available even in the face of extremely high load.

In this paper, we present a generic architecture for supporting such Internet applications. We provide a substrate for Scalable Network Services (SNS), on top of which application developers can design their services without worrying about the details of service management. We back our design with three real-world services: a web distillation proxy, a proxy-based web-browser for PDAs, and an MBone archive server.

Appears: Session 2 (Scalability), Wednesday AM


Improving Type-Safety in CORBA

S. Crawley and K. Duddy
University of Queensland, Australia / Defence Science and Technology Organisation, Australia

CORBA presents a model of distributed computing in which distributed objects communicate using a high-level "information bus" called an Object Request Broker (ORB). In this paper we describe a problem with the current CORBA specification that makes ORB communication non-type-safe in certain situations. We describe a solution to the problem based on the use of unique identifiers and show how it can be implemented efficiently in both stand-alone and federated CORBA-based systems.

Appears: Session 7 (Type Safety and Security), Thursday PM


Highly Available Trading System: Experiments With CORBA

X. Defago, K. Mazouni and A. Schiper
Ecole Polytechnique Federale de Lausanne, Switzerland

The Swiss Exchange system (SWX system) was the first stock exchange system in service to be fully computerised. For high availability, the trading system is built as a replicated service based on Isis. For portability reasons, the SWX team has considered basing the next version of the trading system on CORBA. Despite the numerous advantages of a CORBA based solution, it was necessary not only to meet the functionality requirements of the system, but also to evaluate the performance of the chosen middleware.

This paper describes a model that simulates the communication behavior of the trading system on Iona's Orbix and OrbixTalk. We have evaluated this model in order to illustrate some of the performance limitations of this communication infrastructure. We have also studied the fault-tolerance of the system and found that a key aspect in such a system is the state transfer. We have extended our model to support different schemes for state transfer. Measurements have shown us the conditions under which a state transfer could be performed in the background, concurrently with the normal operations.

Appears: Session 3 (Availability and Integrity), Wednesday PM


DIMMA - A Multi-media ORB

D. Donaldson, M. Faupel, R. Hayton, A. Herbert, N. Howarth, A. Kramer, I. MacMillan, D. Otway and S. Waterhouse
APM Limited, UK

DIMMA - A Distributed Interactive Multi-Media Architecture - is an open distributed processing (ODP) platform that facilitates the production of distributed applications. It has particular support for those applications that have soft real-time constraints, and those that make use of multi-media.

DIMMA consists of a portable layer of distribution engineering (middleware), together with tools to interface applications to this engineering. The most popular commercial ODP platform is the Common Object Request Broker Architecture (CORBA) whose definition is managed by the Object Management Group (OMG). In recognition of this popularity, DIMMA supports a CORBA compliant API so that CORBA applications may be easily ported to or from the DIMMA platform.

This paper describes the example implementation of DIMMA. It gives an overview of the motivations behind the design of DIMMA and then highlights some key features of the DIMMA implementation. It concludes with a brief analysis of DIMMA's performance.

Appears: Session 4 (ORB Engineering), Thursday AM


Jonathan: an Open Distributed Processing Environment in Java

B. Dumant, F. Horn, F. Tran and J. Stefani
France Telecom - CNET, France

This article describes a minimal and modular ORB framework from which highly flexible ORBs supporting the introduction of arbitrary binding mechanisms between interacting objects can be built. This framework essentially extends the Java notion of object reference to make it distributed. Jonathan is a Java implementation of this framework, featuring a CORBA 2.0 'personality' and several different binding factories. It could be easily extended with new binding factories and personalities (e.g. a RMI personality) or scaled down to fit particular needs.

Appears: Session 5 (ORB Architecture), Thursday AM


Type Checking Stream Flow Endpoints

F. Eliassen and S. Mehus
University of Tromso, Norway

In middleware the notion of interface type is important for supporting type checking of interfaces during bind time. In this paper we present the design of a prototype generic flow type checker founded on a generic type model of stream flows and a general definition of stream flow compatibility ensuring the correctness of binding attempts of stream flow endpoints. The type checker determines compatibility by computing the set of common flow capabilities supported by the two endpoints. We illustrate the application of the type checker through its use as part of a flow binding facility, and as a basis for capability negotiations. The performance of the type checker is critical for its overall usefulness in interactive distributed multimedia applications. We therefore report on the results of some measurements to determine its performance.

Appears: Session 7 (Type Safety and Security), Thursday PM


Experience With Top Gun Wingman: A Proxy-Based Graphical Web Browser for the 3Com PalmPilot

A. Fox, I. Goldberg, S. D. Gribble, D. C. Lee, A. Polito and E. A. Brewer
University of California at Berkeley, USA

After an inauspicious debut, communication-enabled personal digital assistants (or PDA's) and handheld PC's are being "rediscovered" as mobile information access terminals. In response, developers have attempted to bring complex applications such as Web browsers to such devices. However, the limited resources available on thin client platforms make them unsuitable for hosting such applications. In this paper, we advocate moving application complexity from thin clients to an adaptive middleware proxy (AMWP), an infrastructural application server platform designed to support large populations and diverse applications. We describe one such application, Top Gun Wingman, a graphical, split Web browser for the Palm Pilot PDA that is currently in use by more than 11,000 users around the world. Our discussion focuses on the design philosophy, implementation, performance, and lessons learned from our experience with the Wingman client and the middleware proxy that supports it.

Appears: Session 9 (Web Services), Friday AM


Event-based Distributed Workflow Execution with EVE

A. Geppert and D. Tombros
University of Zurich, Switzerland

In event-driven workflow execution, events and event-condition-action rules are the fundamental metaphors for defining and enforcing workflow logic. Processing entities enact workflows by reacting to and generating new events. The foundation on events facilitates the integration of processing entities into coherent systems. In this paper, we present an event engine, called EVE, implementing event-driven execution of distributed workflows. Its functionality includes event registration, detection and management, as well as event notification to distributed, autonomous, reactive software components which represent workflow processing entities. We describe the distributed, multi-server, multi-client architecture of EVE and its use for workflow execution.

Appears: Session 10 (Events), Friday PM


Secure Architectures

S. Gibson, S. Gorain, D. Povey and P. Clutterbuck
Queensland University of Technology, Australia

Hector is a work-in-progress middleware solution for distributed objects. It is modelled on the Reference Model for Open Distributed Processing (RM-ODP) and is designed to sit above a mixture of communication protocols and other middleware environments (such as CORBA and DCE), hence creating a common platform for the interoperability of distributed objects. For a middleware solution to be used in a distributed and heterogeneous environment, in a less than perfect world, it is necessary to consider security implications, and incorporate solutions into the design. The SecArch project attempts to incorporate security into Hector without creating a proprietary solution and by utilising new and developing ideas as well as established and proven security concepts. The project also aims to keep Hector as open and flexible as possible.

Appears: Session 7 (Type Safety and Security), Thursday PM


Javanaise: Distributed Shared Objects for Internet Cooperative Applications

D. Hagimont and D. Louvegnies
INRIA, France

We have implemented a service for the development of distributed cooperative applications on the Internet. This service provides the abstraction of a distributed shared object space. The objects managed by the applications are transparently shared between the client nodes, so that the application developer can program as in a centralized setting. It consists of a set of system classes and a proxy generator implemented in the Java environment. The service and the applications that use it are dynamically deployed to client nodes at run-time, thanks to Java mobile code. Our system support relies on object replication on the client nodes. Logically related objects are grouped in clusters, the cluster being the unit of sharing, replication and coherence. One of the main advantages of our proposal is that the object clustering policy is tightly coupled with the application code, thus ensuring locality, while keeping clustering transparent to the application programmer.

Appears: Session 8 (Mobile Objects), Friday AM


Mobile Java Objects

R. Hayton, M. Bursell, D. Donaldson and A. Herbert
APM Limited, UK

In this paper we discuss the engineering requirements for adding object mobility to the Java programming language, and give an overview of the design and implementation of our mobile object system. We show that it is helpful to cluster objects for mobility, and that if these clusters represent untrusted pieces of code (for example Agents) then they must be encapsulated both to control their access and to control access to them. We show that managing large numbers of mobile objects in an open environment is a difficult problem, but has its roots in the management of large distributed name spaces. We propose an architecture for re-locating moved objects that is both scaleable and tuneable.

The mobile object system we describe has been implemented, and is currently in use as part of an ESPRIT agent project. We are currently evolving the design and implementation to provide additional security and distribution facilities.

Appears: Session 8 (Mobile Objects), Friday AM


The Implementation of a High Performance ORB over Multiple Network Transports

S. Lo and S. Pope
Olivetti & Oracle Research Laboratory, UK

This paper describes the implementation of a high performance Object Request Broker (ORB) - omniORB2. The discussion focuses on the experience in achieving high performance by exploiting the protocol and other characteristics of the CORBA 2.0 specification. The design is also highly adaptable to a variety of network transports. The results of running the ORB over TCP/IP, shared memory, Scalable Coherent Interface (SCI) and ATM Adaptation Layer 5 (AAL5) are presented. In both null calls and bulk data transfers, the performance of omniORB2 is significantly better than other commercial ORBs.

Appears: Session 4 (ORB Engineering), Thursday AM


Run-time Monitoring of Distributed Applications

X. Logean, F. Dietrich, H. Karamyan and S. Koppenhoefer
Ecole Polytechnique Federale de Lausanne, Switzerland

In this paper we present a method to perform run-time monitoring of distributed applications built on top of a distributed object oriented processing environment. For this, we instrument the code at the compilation time in order to send notifications to an Observer when relevant events occur in the system; the instrumentation is done in an automated manner, requiring a minimum of programmer interactions. One advantage of our run-time monitoring approach is that it does not hinder the development process already adopted. In our proposal, the choice of the information to select for observation is made simple by the definition of events which are generic and useful for all distributed applications; the user does not need to specify them. We apply our run-time monitoring method to a telecommunication service implemented on top of the distributed processing environment CORBA Orbix from IONA.

Appears: Session 10 (Events), Friday PM


The Realize Middleware for Replication and Resource Management

P. Melliar-Smith, L. Moser, V. Kalogeraki and P. Narasimhan
University of California, Santa Barbara, USA

The Realize middleware manages the resources of CORBA distributed systems for soft real-time applications, and replicates CORBA objects to provide high availability and fault tolerance. By measuring the usage of the resources and by monitoring the behavior of the application, Realize allocates the objects to the processors and schedules the tasks in order to balance the load and to meet soft real-time deadlines. By using totally ordered multicast messages, Realize maintains the consistency of the replicas of the objects. The difficult issues of distribution, real-time scheduling, replication, consistency, and fault detection and recovery are handled by Realize and are hidden from the application programmer.

Appears: Session 3 (Availability and Integrity), Wednesday PM


Saperlipopette!: a Distributed Web Caching Systems Evaluation Tool

G. Pierre and M. Makpangou
INRIA, France

Designing a distributed cache infrastructure to improve the Web performance for the users of a large-scale organization is a difficult task. To guide the decisions of system administrators, we propose Saperlipopette!, a tool that can be used to evaluate, a-priori, the quality of the service offered by each potential configuration of the distributed cache infrastructure. Saperlipopette! is based on trace-driven simulations. Our methodology is two-fold. First, we monitor the targeted organizations' Web related activity. Second, we replay the organization's access pattern while simulating the distributed Web support infrastructure.

This paper presents the information gathering as well as the design of the tool. We show that beyond a certain cache's size, the performance stays constant whereas the consistency continues to decrease. We also evaluated a number of distributed configurations, among which peer-to-peer Relais cooperation proved to be the best one.

Appears: Session 9 (Web Services), Friday AM


Component Coordination in Middleware Systems

M. Radestock and S. Eisenbach
Imperial College, UK

Configuration and coordination are central issues in the design and implementation of middleware systems and are one of the reasons why building such systems is more difficult and complex than constructing stand-alone sequential programs. Through configuration, the structure of the system is established - which elements it contains, where they are located and how they are interconnected. Coordination is concerned with the interaction of the various components - when an interaction takes place, which parties are involved, what protocols are followed. Its purpose is to coordinate the behaviour of the various components in a way that meets the overall system specification. The open and adaptive nature of middleware systems makes the task of configuration and coordination particularly challenging. We propose a model than can operate in such an environment and enables the dynamic integration and coordination of components through observation of their behaviour.

Appears: Session 6 (Components), Thursday PM


A Gossip-Style Failure Detection Service

R. van Renesse, Y. Minsky and M. Hayden
Cornell University, USA

Failure Detection is valuable for system management, replication, load balancing, and other distributed services. To date, Failure Detection Services scale badly in the number of members that are being monitored. This paper describes a new protocol based on gossiping that does scale well and provides timely detection. We analyze the protocol, and then extend it to discover and leverage the underlying network topology for much improved resource utilization. We then combine it with another protocol, based on broadcast, that is used to handle partition failures.

Appears: Session 2 (Scalability), Wednesday AM


A Generic Workflow Environment Based on CORBA Business Objects

A. Schill and C. Mittasch
TU Dresden, Germany

This paper describes a generic approach for building object-oriented workflow management systems in a distributed environment. It is based on business objects that encapsulate resources and basic business processes. They are accessible via CORBA interfaces. As opposed to more conventional work-flow approaches, control is fully decentralised, arbitrary workflow control structures can be modelled, and involved resources maintain autonomy. Moreover, the approach is not limited to one specific implementation of a workflow management system but can be applied on a more generic basis.

The concepts are validated by an implementation on top of Orbix and are illustrated by concrete examples of workflows. All distributed interactions are based on CORBA object communication. Selected CORBA services such as naming, events, persistence and externalisation are utilised, and experiences with their integration into our environment are reported, too.

Appears: Session 1 (Workflow), Wednesday AM


An Architecture to Support Storage and Retrieval of Events

M. Spiteri and J. Bates
University of Cambridge, UK

This paper describes the architecture we designed and constructed to support the storage and retrieval of events. We define an event as an asynchronous occurrence containing parameterised details of an activity that has occurred within a distributed component. Our past experience has demonstrated how using events as the glue to build distributed active systems simplifies the construction of complex applications, and enables legacy stand-alone components to be rapidly integrated within a larger collaborative environment. Examples of such active systems are interactive multimedia applications, distributed debugging environments, co-operative working applications, agent architectures, and active. Our motivation for storing events is that events represent indexing points into application sessions. Our event repository architecture can capture and store events, as well as inject them back into distributed application components to simulate replay of sequences of activity, or for re-building lost state. The architecture co-exists and inter-operates with other event-based active systems, as well as with middleware event services like traders and brokers. Using a generic object-oriented model for events, the repository architecture provides powerful search and retrieval facilities, enabling extraction of behaviour patterns, searching for simple and composite occurrences, and replay of stored sequences. We illustrate how the repository can be a viable alternative to past system-specific solutions in areas like capture of collaboration and memory prosthesis, and visualisation of user mobility.

Appears: Session 10 (Events), Friday PM


A Scalable Middleware Solution for Advanced Wide-Area Web Services

M. van Steen, A. Tanenbaum, I. Kuz and H. Sips
Vrije University, The Netherlands

To alleviate the scalability problems in the Web, many researchers are concentrating on how to incorporate more advanced caching and replication techniques than those currently supported. Many solutions incorporate object-based techniques. In particular, Web resources are considered as distributed objects offering a well-defined interface.

We argue that most proposals ignore two important aspects. First, there is little discussion on what kind of coherence should be provided. Proposing specific caching or replication solutions makes sense only if we know what coherence model they should implement. Second, most proposals treat all Web resources alike. Such a one-size-fits-all approach will never work in a wide-area system.

We propose a solution in which Web resources are encapsulated in physically distributed shared objects. In our model, each object not only encapsulates state and operations, but also the policy by which its state is distributed, cached, replicated, migrated, etc. All implementation details are hidden from a client behind an object's interface.

Appears: Session 2 (Scalability), Wednesday AM


Integrity Management in GUARDS

E. Totel, Lj. Beus-Dukic, J.-P. Blanquart, Y. Deswarte, D. Powell and A. Wellings
LAAS-CNRS, France / University of York, UK / Matra Marconi Space, France

We present an approach for the management of highly critical tasks coexisting with non-critical tasks in a single processor or multiprocessor architecture. To prevent error propagation from non-critical to critical tasks, an integrity level is assigned to groups of tasks according to their trustworthiness. Multiple levels of integrity are implemented using spatial and temporal isolation, and mediation via an integrity policy. The integrity policy defines the rules for data flow between integrity levels and resource utilisation by the tasks at different levels. Since the GUARDS project aims to provide generic solutions for a variety of application domains, the described integrity management can be implemented either in a middleware, the operating system or both. In this paper, we show a CORBA-compliant implementation of the integrity policy.

Appears: Session 3 (Availability and Integrity), Wednesday PM


QuO's Runtime Support for Quality of Service in Distributed Objects

R. Vanegas, J. A. Zinky, J. P. Loyall, R. E. Schantz and D. E. Bakken
BBN Technologies, USA

Most distributed applications are brittle; they work in a limited environment and cannot adapt to changes in this environment. Making these applications less brittle is a complex engineering task that is hard for specific application areas and even harder to generalize. The Quality Objects (QuO) project offers a framework for creating applications that adapt to different Quality of Services (QoS) offered by the underlying resources. QuO offers several layers of tools for creating adaptive distributed applications using the familiar CORBA development process of code generators and runtime support libraries. In this paper we describe the QuO Runtime and the components it uses to maintain and adapt to QoS. The QuO Runtime is the base functionality on which QuO code generators specialize for a specific adaptive application. The QuO Runtime handles much of the complexity of collecting, organizing, and acting on changing QoS, thus reducing the burden for application developers.

Appears: Session 5 (ORB Architecture), Thursday AM


A CORBA Compliant Transactional Workflow System for Internet Applications

S. Wheater, S. Shrivastava and F. Ranno
Newcastle University, UK

The paper describes an application composition and execution environment implemented as a transactional workflow system that enables sets of inter-related tasks to be carried out and supervised in a dependable manner. The paper describes how the system meets the requirements of interoperability, scalability, flexible task composition, dependability and dynamic reconfiguration. The system is general purpose and open: it has been designed and implemented as a set of CORBA services, running on top of a given ORB. The system serves as an example of the use of middleware technologies to provide a fault-tolerant execution environment for long running distributed applications.

Appears: Session 1 (Workflow), Wednesday AM


A Framework for Systematic Synthesis of Transactional Middleware

A. Zarras and V. Issarny
IRISA, France

Transactions are contracts that guarantee a consistent, transparent, individual system state transition and their use is widespread in many different kinds of computing systems. Some well known standards (e.g. Corba) include the specification of services that provide transactional properties. In this paper, we present a formal method for the systematic synthesis of transactional middleware based on the combination of the aforementioned services. The synthesis of transactional middleware is based on (i) the formal specification of transactional properties and (ii) stub code generation.

Appears: Session 6 (Components), Thursday PM