Component-oriented programming yields a tension between higher-order features (deployment, reconfiguration, passivation), encapsulation, and component sharing. We propose a programming discipline for component-oriented programming to address this issue, and we define a process calculus whose operational semantics embodies this programming discipline. We present several examples that illustrate how the calculus supports component sharing, while allowing strong encapsulation and higher-order primitives.La programmation par composants génère une tension entre (1) ses aspects d’ordre supérieur (déploiement, reconfiguration, passivation), (2) l’encapsulation et (3) le partage de composants. Nous proposons une discipline pour la programmation par...