Composants



La recherche en composants logiciels vise à créer une industrie et un marché de « pièces  détachées » comme il en existe dans bien d'autres secteurs industriels arrivés à maturité. Comme pour toute pièce détachée, l'utilisation d'un composant pour la fabrication d'un assemblage (on parlera aussi de composition) requiert d'en connaître précisément  ses « propriétés ». 

L'interface d'un composant est une abstraction de son implémentation mais les informations que l'on peut prendre en compte et celles effectivement prises en compte dans les différentes approches sont très variées.  Un minimum semble de considérer des aspects syntaxiques (ports, typage) et des aspects dynamiques (protocole du composant). L'interface du composant guide l'assemblage d'un point de vue syntaxique (ou structurel) d'interconnexion et d'un point de vue sémantique (ou comportemental) d'interaction, incluant des propriétés de ces interactions, par exemple des propriétés de qualité de service.

Même s'il n'existe pas encore de modèle de composants de référence, les différentes expériences menées au niveau industriel et académique permettent de dégager un consensus sur les propriétés minimales que devraient posséder un tel modèle.  Les infrastructures industrielles à composants distribués  offrent, actuellement de manière ad hoc et très limitée, la possibilité de programmer déclarativement un certain nombre de services techniques. En particulier en ce qui concerne la sécurité dans les EJB le modèle est très restreint, paramétrable lors du déploiement et basé sur l'affectation de permission d'exécution à des rôles.  Une approche plus récente consiste à intégrer des considérations de sécurité au niveau du modèle de composant, comme en ArchJava, un langage qu'on pourrait qualifier de langage de programmation d'architecture, qui garantit une propriété d'intégrité des communications (absence de canal de communication caché).