Abstract. This paper aims at classifying and discussing the various ways along which the object paradigm is used in concurrent and distributed contexts. We distinguish the applicative approach, the integrative approach, and the reflective approach. The applicative approach applies object-oriented concepts, as they are, to structure concurrent and distributed systems through libraries. The integrative approach consists in merging concepts such as: object and activity, message passing and transaction, etc. The reflective approach integrates protocol libraries intimately within an object-based programming language. We discuss and illustrate each of these approaches and we point out their complementary levels and goals. Mr. President and fellow citizens of New York: The facts with which I shall deal this evening are mainly old and familiar; nor is there anything new in the general use I shall make of them. If there shall be any novelty, it will be in the mode of presenting the facts, and the inferences and observations following that presentation. Abraham Lincoln 1
|
364
|
Concepts and experiments in computational reflection
– Maes
- 1987
|
|
197
|
Dimensions of object-based language design
– Wegner
- 1987
|
|
192
|
Guardians and Actions: Linguistic Support for Robust, Distributed Programs
– Liskov, Scheifler
- 1983
|
|
184
|
The Apertos reflective operating system: The concept and its implementation
– Yokote
- 1992
|
|
180
|
Distribution and Abstract Types in Emerald
– Black, Hutchinson, et al.
- 1987
|
|
167
|
Abstracting Object Interactions Using Composition-Filters
– AKSIT, WAKITA, et al.
- 1993
|
|
163
|
Analysis of inheritance anomaly in object-oriented concurrent programming languages
– Matsuoka, Yonezawa
- 1993
|
|
134
|
The Essential CORBA: Systems Integration Using Distributed Objects
– Mowbray, Zahavi
- 1995
|
|
124
|
Towards a method of object-oriented concurrent programming
– Caromel
- 1993
|
|
109
|
Concurrent Programming in Java
– Lea
- 2000
|
|
99
|
POOL-T: A Parallel Object-Oriented Language
– America
|
|
83
|
Experiences designing and implementing Choices: an objectoriented system in C
– Campbell, Islam, et al.
- 1993
|
|
77
|
Actalk: A testbed for classifying and designing actor languages in the Smalltalk80 environment
– Briot
- 1989
|
|
75
|
Local Atomicity Properties: Modular Concurrency Control for Abstract Data Types
– Weihl
|
|
70
|
Actors: A Model of Concurrent Computation
– Agha
- 1986
|
|
70
|
A linguistic framework for dynamic composition of dependability protocols
– Agha, Frølund, et al.
- 1992
|
|
68
|
Run-time support for object-oriented distributed programming
– Maffeis
- 1995
|
|
68
|
Concepts and Experiments
– Maes
- 1987
|
|
52
|
Object orientation in heterogeneous distributed computing systems
– Nicol, Wilkes, et al.
- 1993
|
|
48
|
Transaction model vs virtual synchrony model: bridging the gap
– Guerraoui, Schiper
- 1995
|
|
47
|
Concurrent object-oriented programming in Act 1
– Lieberman
- 1987
|
|
41
|
Abstracting process-to-function relations in concurrent object-oriented applications
– Lopes, Lieberherr
- 1994
|
|
40
|
Object location control using meta-level programming
– Okamura, Ishikawa
- 1994
|
|
39
|
Synchronisation in Concurrent, Object-oriented Languages: Expressive Power, Genericity and Inheritance
– McHale
- 1995
|
|
37
|
Compiling away the meta-level in object-oriented concurrent reflective languages
– Masuhara, Matsuoka, et al.
- 1995
|
|
37
|
Analysis of Inheritance Anomaly
– Matsuoka, Yonezawa
- 1993
|
|
28
|
Introducing Concurrency to a sequential Language
– Karaormann, Bruno
- 1993
|
|
24
|
COOL: System Support for Distributed Programming
– LEA, JACQUEMOT, et al.
- 1993
|
|
20
|
Implementing concurrency control in reliable distributed object-oriented systems
– Parrington, Shrivastava
- 1988
|
|
17
|
Nesting Actions through Asynchronous Message Passing: the ACS protocol
– Guerraoui, Capobianchi, et al.
- 1992
|
|
16
|
Using the strategy design pattern to compose reliable distributed protocols
– Garbinato, Guerraoui
- 1997
|
|
15
|
An Experiment in Classification and Specialization of Synchronization Schemes
– Briot
- 1996
|
|
15
|
Software Based Replication for Fault Tolerance
– Guerraoui, Schiper
- 1997
|
|
14
|
Integration of concurrency control in a language with subtyping and subclassing
– Baquero, Oliveira, et al.
- 1995
|
|
14
|
Protocol Classes for Designing Reliable Distributed Environments
– Garbinato, Felber, et al.
- 1996
|
|
13
|
The Guide Language
– Balter, Lacourte, et al.
- 1994
|
|
13
|
A Practical and Modular Implementation of Extended Transaction Models
– Barga, Pu
- 1995
|
|
13
|
Implementation of the GARF Replicated Objects Platform
– Garbinato, Guerraoui, et al.
- 1995
|
|
12
|
Understanding transactions in the operating system context
– Black
- 1991
|
|
10
|
Building Reliable Client-Server Software Using Actively Replicated Objects
– Mazouni, Garbinato, et al.
- 1995
|
|
10
|
Extensibility and Reuse of Object-Oriented Synchronization Components
– Thomas
- 1992
|
|
8
|
Procol: A Concurrent Object-Language with Protocols, Delegation and Persistence
– Bos, Laffra
- 1991
|
|
6
|
Decomposing and Recomposing Transaction Concepts
– Wing
- 1994
|
|
6
|
Prototypage d'Environnements de Programmation pour les Langages `a Objets Concurrents : une R'ealisation en
– Lescaudron
- 1992
|
|
5
|
Some Experiments in Object-Oriented Simulation
– ezivin
- 1987
|
|
5
|
An Overview of EuLisp
– Padget, Nuyens, et al.
- 1993
|
|
4
|
Object-Oriented Distributed Programming
– Brandt, Madsen
- 1994
|
|
4
|
des Rivi` eres and
– Kiczales, J
- 1991
|
|
4
|
Towards a Method of Object-Oriented Concurrent
– Caromel
- 1993
|
|
4
|
Modular atomic objects. Theory and Practice of Object Systems
– Guerraoui
- 1995
|