Coordinating Open Distributed Systems

Similar documents
Coordination of Active Objects by Means of Explicit Connectors

Chapter 5: Distributed objects and remote invocation

A Taxonomy of the Quality Attributes for Distributed Applications

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

Software Architectural Modeling of the CORBA Object Transaction Service

Designing Issues For Distributed Computing System: An Empirical View

A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING

Introduction to Distributed Systems. Fabienne Boyer, LIG,

Coordination Patterns

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

Distributed Systems. Lehrstuhl für Informatik IV RWTH Aachen. Organisation. Classification of the lecture. Literature

1 From Distributed Objects to Distributed Components

A Role-based Use Case Model for Remote Data Acquisition Systems *

Today: Distributed Middleware. Middleware

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Monitoring System for Distributed Java Applications

Today: Distributed Objects. Distributed Objects

Configuration Management for Component-based Systems

Real-Time Coordination in Distributed Multimedia Systems

Appendix A - Glossary(of OO software term s)

CSCI 3130 Software Architectures 1/3. February 5, 2013

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

System Models 2. Lecture - System Models 2 1. Areas for Discussion. Introduction. Introduction. System Models. The Modelling Process - General

1.1 Jadex - Engineering Goal-Oriented Agents

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer

Applying Experiences with Declarative Codifications of Software Architectures on COD

Tool Support for Refactoring Duplicated OO Code

DS 2009: middleware. David Evans

From Object Composition to Model Transformation with the MDA

Introduction to Distributed Systems

Distributed Information Processing

Middleware Mediated Transactions & Conditional Messaging

ISO/IEC INTERNATIONAL STANDARD

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

Object Query Standards by Andrew E. Wade, Ph.D.

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

Unit 7: RPC and Indirect Communication

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

RIKA: Component Architectures

Engineering CORBA-based Distributed Systems

Implementing Software Connectors through First-Class Methods

Architecture of Distributed Systems Component-based Systems

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

R/3 System Object-Oriented Concepts of ABAP

Distributed Systems. Lehrstuhl für Informatik 4. RWTH Aachen. Organization. Literature. Classification of the lecture

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

XRay Views: Understanding the Internals of Classes

Architectural Patterns

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

JOURNAL OF OBJECT TECHNOLOGY

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer

A Messaging-Based Integration Architecture for Print Production Workflow Systems

Object-Oriented Middleware for Distributed Systems

CORBA (Common Object Request Broker Architecture)

CAS 703 Software Design

Applying the Semantic Web Layers to Access Control

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Design Patterns. Architectural Patterns. Contents of a Design Pattern. Dr. James A. Bednar. Dr. David Robertson

Meta Architecting: Towered a New Generation of Architecture Description Languages

Model-based Run-Time Software Adaptation for Distributed Hierarchical Service Coordination

Lesson 19 Software engineering aspects

A Model for Scientific Computing Platform

Idioms for Building Software Frameworks in AspectJ

Topics on Web Services COMP6017

System types. Distributed systems

Introduction to Distributed Systems

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

Federating Heterogeneous Event Services

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

Electronic Payment Systems (1) E-cash

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

Architectures of Distributed Systems 2011/2012

An Introduction to Software Architecture

International Journal of Scientific & Engineering Research Volume 8, Issue 5, May ISSN

Architecture-Centric Evolution in Software Product Lines:

Mapping UML Component Specifications to JEE Implementations

Protecting the Hosted Application Server

A Grid-Enabled Component Container for CORBA Lightweight Components

Towards a Unified Component & Deployment Model for Distributed Real Time Systems

The Specifications Exchange Service of an RM-ODP Framework

Distributed Information Processing

A CONFIGURATION MANAGEMENT FACILITY FOR CORBA APPLICATIONS

Technical Report. Computer Science Department. Operating Systems IMMD IV. Friedrich-Alexander-University Erlangen-Nürnberg, Germany

03 Remote invoaction. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI

02 - Distributed Systems

Jade: Java Agent DEvelopment Framework Overview

An Introduction to Software Architecture

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

A FRAMEWORK FOR ACTIVE OBJECTS IN.NET

A Meta-Model for Composition Techniques in Object-Oriented Software Development

A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN

Modeling variability with UML

Software Language Engineering of Architectural Viewpoints

JOURNAL OF OBJECT TECHNOLOGY Online at Published by ETH Zurich, Chair of Software Engineering. JOT, 2002

ITU-T Y Next generation network evolution phase 1 Overview

Hermion - Exploiting the Dynamics of Software

2-PHASE COMMIT PROTOCOL

ODMG 2.0: A Standard for Object Storage

Pattern Density and Role Modeling of an Object Transport Service

Transcription:

Coordinating Open Distributed Systems Juan Carlos Cruz 1, Stephane Ducasse University of Bern 2, Switzerland Abstract. Open Distributed Systems are the dominatingintellectual issue of the end of this century. Figuring out how to build those systems will become a central issue in distributed system research in the next future. Although CORBA seems to provide all the necessary support to construct those systems. It provides a very limited support to the evolution of requirements in those systems. The main problem is that the description of the elements from which systems are built, and the way in which they are composed are mixed into the application code. Making them difficult to understand, modify and customize. We think that a solution to this problem goes through the introduction of the so called coordination models and languages into the CORBA model. We propose in this paper the introduction of our object coordination model called CoLaS into the CORBA model. 1 Motivation Software development of distributed systems have changed significantly over the last two decades. This change has been motivated by the goal of producing open rather than close proprietary distributed systems. Open Distributed Systems (ODS in the following) [Crow96a] are systems made of components that may be obtained from a number of different sources which together work as a single distributed system. ODSs are basically open in terms of their topology, platform and evolution: they run on networks which are continuously changing and expanding, they are built on top of a heterogeneous platform of hardware and software pieces, and their requirements are continuously evolving. Evolution is the most difficult requirement to meet, since not all the application requirements can be known in advance. ODSs are the dominatingintellectual issue of the end of this century. Figuringout how to build them will become a central issue in distributed systems research in the next future. In 1988 the International Standards Organization (ISO) began work on preparing standards for Open Distributed Processing(ODP). These standards have now been completed, and define the interfaces and protocols to be used in the various components of an ODS.The ODP standards provide the framework within which ODSs may be built and executed. One of the most popular (if not the most) specifications for some parts of the ODP is the Common Object Request Broker Architecture (CORBA) [OMG95a]. This middleware proposed by the Object Management Group (OMG) provides a standard for interoperability between independently 1. Software Consultant, ObjectShare AG. Zurich, BelleriveStrasse 201, CH 8034. 2. Author s address: IAM University of Berne, Neubruckstrasse 10, CH 3012 Berne, Switzerland. Tel: 41+(31) 6313315. Fax: 41+(31) 6313965. E-mail: {cruz, ducasse}@iam.unibe.ch.

2. Coordinating Open Distributed Systems developed components across networks of computers. Details such as the language in which they are written or the operatingsystem in which they run is transparent to their clients. The OMG focused on distributed objects as a vehicle for system integration. The key benefit of buildingdistributed systems with objects is encapsulation: data and state are only available through invocation of a set of defined operations. Object encapsulation makes system integration and evolution easier: differences in data representation are hidden inside objects, and new objects can be introduced or replaced in a system without affectingother objects. Although the CORBA middleware seems to provide all the necessary support for building and executingodss, it only provides a very limited support to the evolution of requirements in those systems.the main problem is that the description of the elements from which systems are built, and the way in which they are composed remains mixed into the application code. Making them difficult to understand, modify and customize. To our point of view a possible solution to this problem goes through the introduction of the so called coordination models and languages into the CORBA model. Coordination technology addresses the construction of open, flexible systems from active and independent software entities in concurrent and distributed systems. The main goal of a coordination model and language is to separate the coordination aspect from the computational aspect in a distributed system. Separation of concerns facilitates abstraction, understandingand evolution of concerns. In the Software Composition Group (SCG) we have been workingin the last few years in the definition of a coordination model and language for concurrent object oriented systems. Some of our results are [Cruz98a][Duca98c]. The coordination model in which we actually work called CoLaS [Cruz99a] is based on the notion of Coordination Groups. A Coordination Group is an entity that specifies and enforces cooperation protocols, multi-action synchronizations, and proactive behaviour within groups of collaborating active objects. 2 The CoLaS Coordination Model Active Objects message Coordination Group R1 R3 R2 Rules. Non-Coordinated Active Object Coord. State Fig. 1 The CoLaS coordination model is built of two kinds of entities: the participants and the coordination groups.

Juan Carlos Cruz, Stephane Ducasse 3. 2.1 Participants In CoLaS the participants are active objects [Brio96a]: objects that have control over concurrent message invocations. Active objects represent independent units of execution in a concurrent system. By default active objects communicate in an asynchronous way. Replies are managed using explicit futures so that objects do not blocked while waitingfor their replies. 2.2 Coordination Groups A Coordination Group (CG in the following) is an entity that specifies and enforces the coordination of a group of participants in the realization of a common task. The primary tasks of a CG are: (1) to enforce cooperation actions between participants, (2) to synchronize the occurrence of those actions, and (3) to enforce proactive actions [Andr96a] (in the followingproactions) in participants based on the state of the coordination. Coordination Specification A CG is composed of five elements (Fig. 1): a Role Specification, a Coordination State, a Cooperation Protocol, Multi-Action Synchronizations and Proactions. The Role Specification: defines the roles that participants play in the group. A role identifies abstractly entities sharinga common behavior. To play a role, an object should possess at least the functionalities required by the role (interface compatibility). A role can be played by more than one participant. The Coordination State: defines the information needed for the coordination of the group. It concerns historical information like whether a given action has occurred or not in the system or participant state information. The Coordination state is global to the group, and/or global to all the participants of a given role, and/or local to each participant within a given a role. The coordination state is specified by declaring coordination variables. The Cooperation Protocol: defines implications between participant actions. These implications have the form <Role> <Message> <Operator> <Coordination Actions>. The <Operator> specifies <Coordination Actions> that have to be done when a participant playing the role <Role> receives the message <Message>. We have three types of operator: ImpliesBefore, ImpliesAfter and Corresponds. -The operators ImpliesBefore and ImpliesAfter specify different moments at which the coordination Actions must be executed. ImpliesBefore (resp. after) specifies that the coordination actions have to be executed before (resp. after) the execution of the <Message> [Cruz99a]. -The Corresponds operator 1 allows the definition of participant behavior specific to the coordination, i.e. the fact that an object plays a role in a GC gives it an extra behavior 1. The Corresponds operator has been recently introduced. It allows a clear separation between the intrinsic behavior of a participant and his behavior due to his participation to a CG. Note this is possible because the implementation language of CoLaS is dynamically typed.

4. Coordinating Open Distributed Systems defined usingthe Corresponds operator. The Corresponds operator specifies the coordination actions that have to be executed when a participant receives the <Message>. The Multi-Action Synchronizations: specifies synchronizations constraints over message exchanged between participants. They have the form <Role> <Message> <Operator> <Synchronization Conditions>. They specify conditions that constraint the execution of the message <Message> received by a participant playing the role <Role>. Three different types of operators can be specified: Ignore, Disables, and Atomic. Depending on the operator, the message <Message> should be ignored or delayed by the object. In the Atomic case the <Message> represents a set of messages that must be executed as an atomic unit. The synchronization conditions refers to information like: the state of the group, the identity of the receiver/sender of a message, historical information on the coordination, etc. [Cruz99a]. The Proactions: specifies Coordination Actions that must be enforced by the CG independently of messages exchanged by participants assuming that a certain condition holds. These conditions are expressed in terms of the coordination state. Proactions have the form <Condition> <ProOperator> <Coordination Actions>. One kind of ProOperators can be used: Once.It ensures that the coordination actions are executed only one time when the condition is satisfied. The evaluation of the conditions is done by the CG. The last three elements of this model are specified usingrules [Andr96a][Mins97a]. 2.3 Dynamic Aspects CoLaS support three types of dynamic coordination changes [Cruz99a]: (1) new participants can join and leave the group at any time, (2) new groups can be created and destroyed at any time, and (3) the coordination behavior can be changed by adding and removing rules to the CG. Evolution of coordination requirements can be addressed by combiningthe different types of dynamic changes. 2.4 Evaluation The CoLaS model combines the advantages of using groups as an organisation abstraction and rules as explicit entities regulating the coordination. It provides the following concrete advantages: Separation of Concerns: The coordination and the computational aspects are specified separately in two different entities the CGs and participants. This separation promotes reuse of computation and coordination abstractions:participants can be reused independently of how they are coordinated, and coordination protocols can be reused independently on different groups of active objects. Encapsulation: The coordination is specified in CGs independently of the internal representation of the objects it coordinates. Participants are referred abstractly accordingto the role they play in the CG. High-Level Abstraction: All low level operations concerningthe coordination are managed by CoLaS. Programmers focus on how to express coordination and not on how to do it.

Juan Carlos Cruz, Stephane Ducasse 5. Multi-Object Coordination: The coordination is not limited to two objects but to groups of objects. Their behavior is specified abstractly in terms of roles and their respective interfaces. Dynamic Evolution of the Coordination: The model supports dynamic coordination changes in three distinct aspects: (1) coordination behavior can be changed by adding and removingrules, (2) new coordination groups can be created and destroyed at any time, (3) new participants can join and leave the group at any time. 2.5 CoLaS-D Actually we experiment the construction of a coordination programming system for distributed active objects called CoLaS-D. The CoLaS-D programming system (Fig. 2) is based in the Co- LaS coordination model. CoLaS-D is been built on top of a middleware framework called Distributed Smalltalk (DST)[Objs98]. DST is a CORBA 2.0 compliant framework for Smalltalk. Coordination Group CoLaS CoLaS-D distributed objects DST CoordService DST CoordService Fig. 2 network We use in CoLaS-D a specific facility offered by the DST framework called the Implicit Invocation Interface (I3), an extension to the CORBA facilities that provides a more natural Smalltalk paradigm for developing distributed Smalltalk object systems. This facility can be used to realize interaction only between distributed Smalltalk objects. No IDLs definitions are required to interact. Instead of explicitly specify distributed classes interfaces usingidls, developers can turn on the I3 message transmission mechanism and allow I3 to handle marshallingand unmarshallingof messages between distributed objects. From a coordination viewpoint DST provides all the basic facilities required to realize coordination in a distributed object environment: remote communication of distributed objects, location of remote objects by usinga NamingService, control of concurrent access to objects by usinga Concurrency Control Service, creation of remote objects by usinga LifeCycle Service, and management of distributed transactions by using a Transaction Service. We decided to limited our work in a first time to the coordination of distributed Smalltalk active objects. We used the DST I3 facility to realize the distributed interaction necessary to the coordination. The first version of the CoLaS-D programming system defines a coordination service CoordService that maintains references to CGs across the network. Whenever a CG is created in a distributed system, the reference to the CG and its name its automatically register into the coordination service. Objects can join CGs in this way wherever they found in the network. They only need to request to the Coordination Service for remote references to the CGs where they want to partic-

6. Coordinating Open Distributed Systems ipate. From a coordination viewpoint it is transparent whether the CG founds local or remote. The problem with this approach is that CGs become critical points of failure. To recover from a CG failure a new CG can be created (or one of the participants could be picked to play a dual role as CG). Actually we work in a second version of CoLaS-D in which a solution to this problem is proposed usingreplicas [Coul94a]. 3 Conclusion We consider that a coordination model and language for heterogeneous distributed objects on top of CORBA is still missing. A such model and language will provide the necessary support for buildingand evolvingods. We consider the CoLaS model as a good candidate to this. In our research agenda this work corresponds to the third version of the CoLaS-D programming system. References [Andr96a] J-M.Andreoli, S. Freeman and R.Pareschi, The Coordination Language Facility: Coordination of Distributed Objects, Journal of Theory and Practice of Object Systems (TAPOS), vol.2, no. 2, 1996, pp. 635-667. [Brio96a] J-P. Briot, An experiment in the Specification and Classification of Synchronization Schemes, LNCS vol. 1049, Springer-Verlag, 1996, pp. 227-249. [Coul96a] G. Coulouris, J. Dollimore and T. Kindberg, Distributed Systems, Addison-Wesley, 1994. [Crow96a] J. Crowcroft, Open Distributed Systems, UCL Press, 1996. [Duca98c] S.Ducasse and Manuel Guenter, Coordination of Active Objects by Means of Explicit Connectors, CTIS 98, IEEE Computer Society Press, pp. 572-577. [Cruz98a] J.C.Cruz and S. Tichelaar, Managing Evolution of Coordination Aspects in Open Systems, CTIS 98,IEEE Computer Society Press. [Cruz99a] J.C.Cruz and S. Ducasse, A Group Based Approach for Coordinating Active Objects, COORDINA- TION 99, LNCS 1594, Springer Verlag, pp. 355-370. [Gele92a] D. Gelernter and N. Carriero, Coordination Languages and their Significance, Communication of the ACM vol. 35, no. 2, February 1992. [Mins97a] N.Minsky and V. Ungureanu, Regulated Coordination in Open Distributed Systems, COORDINA- TION 97, LNCS 1282, Springer-Verlag, 1997, pp. 81-97. [Obje98a] ObjectShare Inc., Distributed Smalltalk, 1998, http://www.objectshare.com/products/dst/info/dst.h [OMG95a]The Common Object Request Broker: Architecture and Specification. Object Management Group, Framingham, MA, July 1995.