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 library approach, the integrative approach, and the reflective approach. The library approach applies object-oriented concepts, as they are, to structure concurrent and distributed systems through class libraries. The integrative approach consists in merging concepts such as: object and activity, message passing and transaction, etc. The reflective approach integrates class 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. Technical Report - May 1998 Laboratoire de Syst`emes d'Exploitation D'epartement d'Informatique Ecole Polytechnique F'ed'erale de Lausanne CH-1015 Lausanne, Switzerland To appear in ACM Computing Surveys, September 1998. 1 Introduction It is now well accepted that the object paradi..