International audienceComponent models such as EJB or CCM are increasingly used to create complex and distributed systems and applications. Unless the details of the API and mechanisms used for programming with these models differ, the general features provided by the models share many characteristics. In this paper, we propose to capture these features in a common layer that can be used to develop model independant component programs. The layer is then mapped either onto EJB or CCM. This layer is defined with the AspectJ aspect-oriented programming language. We report on two samples applications that were developped with this layer: an application-level load balancing service and a contract enforcement service