\begin{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 {\em applicative} approach,the {\em integrative} approach, and the {\em 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.\end{abstract}