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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. Series in Artificial Intelligence. MIT Press, Cambridge (1986)
Agha, G., Frølund, S., Panwar, R., Sturman, D.: A Linguistic Framework for Dynamic Composition of Dependability Protocols, Dependable Computing for Critical Applications III (DCCA-3). In: IFIP Transactions, pp. 197–207. Elsevier, Amsterdam (1993)
Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting Object Interactions Using Composition Filters. In: [28], pp. 152–184
America, P.: POOL-T: A Parallel Object-Oriented Language. In: [63], pp. 199–220
Balter, R., Lacourte, S., Riveill, M.: The Guide Language. The Computer Journal 37(6), 519–530 (1994); Special Issue on Distributed Operating Systems
Barga, R., Pu, C.: A Practical and Modular Implementation of Extended Transaction Models, Technical Report, no 95-004, CSE, Oregon Graduate Institute of Science & Technology, Portland OR, USA (1995)
Bernstein, P., Hadzilacos, V., Goodman, N.: Concurrency Control and Recovery in Database Systems. Addison Wesley, Reading (1987)
Bézivin, J.: Some Experiments in Object-Oriented Simulation. In: ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1987), December 1987, vol. 20(12), pp. 394–405 (1987)
Birtwistle, G.M., Dahl, O.-J., Myhrhaug, B., Nygaard, K.: Simula Begin. Petrocelli Charter (1973)
Black, A., Hutchinson, N., Jul, E., Levy, H., Carter, L.: Distribution and abstract types in Emerald. IEEE Transactions on Software Engineering 12(12) (December 1986)
Black, A.: Understanding Transactions in the Operating System Context. Operating Systems Review 25(28), 73–77 (1991)
Black, A., Immel, M.P.: Encapsulating plurality. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 57–79. Springer, Heidelberg (1993)
van den Bos, J., Laffra, C.: Procol: A Concurrent Object-Language with Protocols, Delegation and Persistence. Acta Informatica (28), 511–538 (1991)
Brandt, S., Madsen, O.L.: Object-Oriented Distributed Programming in BETA. In: [28], pp. 185–212
Briot, J.-P., Yonezawa, A.: Inheritance and Synchronization in Concurrent OOP. In: Bézivin, J., Hullot, J.-M., Cointe, P., Lieberman, H. (eds.) ECOOP 1987. LNCS, vol. 276, pp. 32–40. Springer, Heidelberg (1987)
Briot, J.-P.: Actalk: a Testbed for Classifying and Designing Actor Languages in the Smalltalk-80 Environment. In: Cook, S. (ed.) European Conference on Object Oriented Programming (ECOOP 1989), pp. 109–129. Cambridge University Press, Cambridge (1989)
Briot, J.-P.: An Experiment in Classification and Specialization of Synchronization Schemes. In: Futatsugi, K., Matsuoka, S. (eds.) ISOTAS 1996. LNCS, vol. 1049. Springer, Heidelberg (1996)
Briot, J.-P., Guerraoui, R.: Smalltalk for Concurrent and Distributed Programming. Special Issue on: Smalltalk, edited by R. Guerraoui, Informatik/Informatique, Swiss Informaticians Society, Switzerland, (1),16–19 (February 1996)
Briot, J.-P., Guerraoui, R., Löhr, K.-P.: Concurrency and Distribution in Object-Oriented Programming. In: ACM Computing Surveys (1998) (to appear in late)
Campbell, R., Islam, N., Raila, D., Madany, P.: Designing and Implementing Choices: An Object-Oriented System in C++. In: [50], pp. 117–126
Capobianchi, R., Guerraoui, R., Lanusse, A., Roux, P.: Lessons from Implementing Active Objects on a Parallel Machine. In: Usenix Symposium on Experiences with Distributed and Multiprocessor Systems, pp. 13–27 (1992)
Caromel, D.: Towards a Method of Object-Oriented Concurrent Programming. In: [50], pp. 90–102
Garbinato, B., Guerraoui, R., Mazouni, K.R.: Distributed Programming in GARF. In: [28], pp. 225–239
Garbinato, B., Guerraoui, R., Mazouni, K.R.: Implementation of the GARF Replicated Objects Platform. Distributed Systems Engineering Journal, 14–27 (February 1995)
Garbinato, B., Felber, P., Guerraoui, R.: Protocol classes for designing reliable designing reliable distributed environments. In: Cointe, P. (ed.) ECOOP 1996. LNCS, vol. 1098, pp. 316–343. Springer, Heidelberg (1996)
Garbinato, B., Guerraoui, R.: Using the strategy design pattern to compose reliable distributed protocols. In: Vinoski, S. (ed.) Usenix Conference on Object-Oriented Technologies and Systems (COOTS 1997), Usenix (June 1997)
Guerraoui, R., Capobianchi, R., Lanusse, A., Roux, P.: Nesting Actions Through Asynchronous Message Passing: the ACS Protocol. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 170–184. Springer, Heidelberg (1992)
Guerraoui, R., Riveill, M., Nierstrasz, O. (eds.): ECOOP-WS 1993. LNCS, vol. 791. Springer, Heidelberg (1994)
Guerraoui, R., Schiper, A.: The Transaction Model vs Virtual Synchrony Model: Bridging the Gap, Distributed Systems: From Theory to Practice. In: Birman, K., Cristian, F., Mattern, F., Schiper, A. (eds.) Dagstuhl Seminar 1994. LNCS, vol. 938. Springer, Heidelberg (1995)
Guerraoui, R.: Modular Atomic Objects. In: Theory and Practice of Object Systems (TAPOS), November 1995, vol. 1(2), pp. 89–99. John Wiley & Sons, Chichester (1995)
Guerraoui, R., et al.: Strategic Directions in Object-Oriented Programming. ACM Computing Surveys 28(4), 691–700 (1996)
Guerraoui, R., Schiper, A.: Software based replication for fault-tolerance. IEEE Computer 30(4), 68–74 (1997)
Jézéquel, J.-M.: Transparent Parallelization Through Reuse: Between a Compiler and a Library Approach. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 384–405. Springer, Heidelberg (1993)
Karaorman, M., Bruno, J.: Introducing Concurrency to a Sequential Language. In: [50], pp. 103–116
Kiczales, G., des Riviéres, J., Bobrow, D.: The Art of The Meta-Object Protocol. MIT Press, Cambridge (1991)
Kiczales, G. (ed.): Foil For The Workshop On Open Implementation (October 1994), http://www.parc.xerox.com/PARC/spl/eca/oi/workshop-94/foil/main.html
Lea, R.: Concurrent Programming in Java. Addison-Wesley, Reading (1997)
Lescaudron, L.: Prototypage d’Environnements de Programmation pour les Langages á Objets Concurrents: une Réalisation en Smalltalk-80 pour Actalk, PhD Thesis, LITP, Université Paris VI - CNRS, France, TH93.11 (May 1992)
Lea, R., Jacquemot, C., Pillevesse, E.: COOL: System Support for Distributed Programming. In: [50], pp. 37–47
Lieberman, H.: Concurrent Object-Oriented Programming in Act 1. in: [63], 9–36
Liskov, B., Sheifler, R.: Guardians and Actions: Linguistic Support for Robust, Distributed Programs. ACM Transactions on Programming Languages and Systems 5(3) (1983)
Lopes, C.V., Lieberherr, K.J.: Abstracting Process-to-Function Relations in Concurrent Object-Oriented Applications. In: Tokoro, M., Pareschi, R. (eds.) ECOOP 1994. LNCS, vol. 821, pp. 81–99. Springer, Heidelberg (1994)
Maes, P.: Concepts and Experiments in Computational Reflection. In: ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1987), December 1987, vol. 22(12), pp. 147–155 (1987); Special Issue of Sigplan Notices
Maffeis, S.: Run-Time Support for Object-Oriented Distributed Programming, PhD Dissertation, University of Zurich, Switzerland (February 1995)
Masuhara, H., Matsuoka, S., Asai, K., Yonezawa, A.: Compiling Away the Meta-Level in Object-Oriented Concurrent Reflective Languages Using Partial Evaluation. In: ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1995), October 1995, vol. 30(10), pp. 300–315 (1995); Special Issue of Sigplan Notices
Matsuoka, S., Yonezawa, A.: Analysis of Inheritance Anomaly in Object- Oriented Concurrent Programming Languages. In: Agha, G., Wegner, P., Yonezawa, A. (eds.) Research Directions in Concurrent Object-Oriented Programming, pp. 107–150. MIT Press, Cambridge (1993)
Mazouni, K., Garbinato, B., Guerraoui, R.: Building Reliable Client- Server Software Using Actively Replicated Objects. In: Graham, I., Magnusson, B., Meyer, B., Nerson, J.-M. (eds.) Technology of Object- Oriented Languages and Systems (TOOLS Europe 1995), March 1995, pp. 37–53. Prentice Hall, Englewood Cliffs (1995)
MeAffer, J.: Meta-Level Programming with CodA. In: Olthoff, W. (ed.) ECOOP 1995. LNCS, vol. 952, pp. 190–214. Springer, Heidelberg (1995)
McHale, C.: Synchronization in Concurrent, Object-oriented Languages: Expressive Power, Genericity and Inheritance, PhD Thesis, Dept. of Computer Science, Trinity College, Dublin, Ireland (October 1994), ftp://ftp.dsg.cs.tcd.ie/pub/doc/dsg-86b.ps.gz
Meyer, B. (ed.): Concurrent Object-Oriented Programming, Special Issue, Communications of the ACM (CACM), vol. 36(9) (September 1993)
Meyer, B.: Systematic Concurrent Object-Oriented Programming. In: [50], pp. 56–80
Mowbray, T.J., Zahavi, R.: The Essential CORBA: System Integration Using Distributed Objects. John Wiley & Sons and The Object Management Group, Chichester (1995)
Nicol, J., Wilkes, T., Manola, F.: Object-Orientation in Heterogeneous Distributed Computing Systems. IEEE Computer 26(6), 57–67 (1993)
Okamura, H., Ishikawa, Y.: Object Location Control Using Meta-Level Programming. In: Tokoro, M., Pareschi, R. (eds.) ECOOP 1994. LNCS, vol. 821, pp. 299–319. Springer, Heidelberg (1994)
Padget, J., Nuyens, G., Bretthauer, H.: An Overview of EuLisp. Journal of Lisp and Symbolic Computation 6(1/2), 9–98 (1993)
Parrington, G.D., Shrivastava, S.K.: Implementing Concurrency Control in Reliable Distributed Object-Oriented Systems. In: Gjessing, S., Nygaard, K. (eds.) ECOOP 1988. LNCS, vol. 322, pp. 234–249. Springer, Heidelberg (1988)
Rozier, M.: Chorus. In: Usenix International Conference on Micro-Kernels and Other Kernel Architectures, pp. 27–28 (1992)
Thomas, L.: Extensibility and Reuse of Object-Oriented Synchronization Components. In: Etiemble, D., Syre, J.-C. (eds.) PARLE 1992. LNCS, vol. 605, pp. 261–275. Springer, Heidelberg (1992)
Wegner, P.: Dimensions of Object-Based Language Design. In: ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1987), vol. 22(12), pp. 168–182 (1987), Special Issue of Sigplan Notices
Weihl, W.: Local Atomicity Properties: Modular Concurrency Control for Abstract Data Types. ACM Transactions on Programming Languages and Systems 11(2) (1989)
Wing, J.: Decomposing and Recomposing Transaction Concepts. In: [28], pp. 111–122.
Yokote, Y.: The Apertos Reflective Operating System: The Concept and its Implementation. In: ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1992), October 1992, vol. 27(10), pp. 414–434 (1992), Special Issue of Sigplan Notices
Yonezawa, A., Tokoro, M. (eds.): Object-Oriented Concurrent Programming, Computer Systems Series. MIT Press, Cambridge (1987)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Briot, JP., Guerraoui, R. (1999). A Classification of Various Approaches for Object-Based Parallel and Distributed Programming. In: Padget, J.A. (eds) Collaboration between Human and Artificial Societies. Lecture Notes in Computer Science(), vol 1624. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10703260_1
Download citation
DOI: https://doi.org/10.1007/10703260_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66930-2
Online ISBN: 978-3-540-46624-6
eBook Packages: Springer Book Archive