The ECO Model: Events + Constraints + Objects.

This document describes the rationale and design of a programming model based on events, constraints, and objects and the use of this model in the Moonlight project. It describes the inter-object communication or invocation mechanism, and the way in which concurrency, synchronisation, and timing properties are expressed and controlled. The invocation mechanism is unusual in that it is event-based. It encourages loose coupling among the objects and this supports a high degree of encapsulation for each object. Concurrency, synchronisation, and timing properties are expressed in a uniform way using constraints which may be associated with objects and events. We describe the way in which the abstractions of the ECO model are expressed at the language level, and the support for them which is required from the runtime code and the underlying system.

[1]  Bjørn N. Freeman-Benson,et al.  Integrating Constraints with an Object-Oriented Language , 1992, ECOOP.

[2]  Yen-Ping Shan An Event-Driven Model-View-Controller Framework for Smalltalk , 1989, OOPSLA.

[3]  David H. Jameson,et al.  Events: a structuring mechanism for a real-time runtime system , 1989, [1989] Proceedings. Real-Time Systems Symposium.

[4]  Nissim Francez Cooperating Proofs for Distributed Programs with Multiparty Interactions , 1989, Inf. Process. Lett..

[5]  John R. Corbin The Art of Distributed Applications: Programming Techniques for Remote Procedure Calls , 1991 .

[6]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[7]  Satoshi Matsuoka,et al.  Using tuple space communication in distributed object-oriented languages , 1988, OOPSLA '88.

[8]  Sharma Chakravarthy,et al.  Snoop: An Expressive Event Specification Language for Active Databases , 1994, Data Knowl. Eng..

[9]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[10]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[11]  Robbert van Renesse,et al.  Reliable Distributed Computing with the Isis Toolkit , 1994 .

[12]  Asher Reuveni The event based language and its multiple processor implementations , 1980 .

[13]  Mark D. Wood Replicated RPC using Amoeba closed group communication , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.

[14]  Kwei-Jay Lin,et al.  Building flexible real-time systems using the Flex language , 1991, Computer.

[15]  Dale Skeen,et al.  The Information Bus: an architecture for extensible distributed systems , 1994, SOSP '93.

[16]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[17]  Professor Dr. Niklaus Wirth,et al.  Programming in Modula-2 , 1982, Springer Berlin Heidelberg.

[18]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[19]  Uday O. Pabrai,et al.  X window system user's guide , 1994 .

[20]  Partha Dasgupta,et al.  Asynchronous event handling in distributed object-based systems , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.

[21]  B. Dasarathy,et al.  Timing Constraints of Real-Time Systems: Constructs for Expressing Them, Methods of Validating Them , 1989, IEEE Transactions on Software Engineering.

[22]  Gul Agha,et al.  ActorSpaces: a model for scalable heterogeneous computing , 1993, [1993] Proceedings of the Twenty-sixth Hawaii International Conference on System Sciences.

[23]  Hideyuki Tokuda,et al.  Object-oriented real-time language design: constructs for timing constraints , 1990, OOPSLA/ECOOP '90.

[24]  John R. Corbin The Art of Distributed Applications , 1991, Sun Technical Reference Library.

[25]  Bryan Carl Bayerdorffer,et al.  Associative broadcast and the communication semantics of naming in concurrent systems , 1993 .

[26]  Michael L. Scott,et al.  Messages vs. remote procedures is a false dichotomy , 1983, SIGP.

[27]  Henry M. Levy,et al.  Separating data and control transfer in distributed operating systems , 1994, ASPLOS VI.

[28]  Tracy Larrabee,et al.  Gambit: A Prototyping Approach to Video Game Design , 1984, IEEE Software.

[29]  Patricia Florissi,et al.  On remote procedure call , 1992, CASCON.

[30]  D. Decouchant,et al.  A synchronization mechanism for typed objects in a distributed system , 1988, OOPSLA/ECOOP '88.

[31]  Gregory R. Andrews,et al.  Concepts and Notations for Concurrent Programming , 1983, CSUR.

[32]  David Notkin,et al.  Reconciling environment integration and software evolution , 1992, TSEM.

[33]  Michael Zyda,et al.  NPSNET:A Network Software Architecture for LargeScale Virtual Environments , 1994, Presence: Teleoperators & Virtual Environments.

[34]  Eshrat ArjomandiDepartment Concurreny Support for C + + : An Overview , 1993 .

[35]  Michel Banâtre,et al.  The Concept of Multi-function: A General Structuring Tool for Distributed Operating System , 1986, ICDCS.

[36]  Richard Gerber,et al.  Semantics-based compiler transformations for enhanced schedulability , 1993, 1993 Proceedings Real-Time Systems Symposium.