This paper aims at classifying and discussing the various ways along which the ``object'' paradigm is used in parallel 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 parallel and distributed systems through libraries. The integrative approach consists in merging concepts such as: object and activity, message passing and transaction. 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.