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é).