L'interface et les données d'interface
Avec une programmation classique, l'accès aux données se fait en travaillant directement sur les tables du logiciel. Cette pratique est formellement interdite dans une application à la norme "composant". En effet, l'accès direct aux tables depuis n'importe quel objet outrepasserait les contrôles de cohérence programmés dans les méthodes publiques du composant.
Avec une programmation "composant", c'est l'interface du composant qui maîtrise les informations qu'elle traite et qui doit définir celles qui sont considérées comme étant des données publiques.
Pour atteindre cet objectif, l'interface des composants dispose d'un nouveau moyen d'échange d'informations basé sur une structure d'interface que l'on définit depuis le Descripteur de données d'Oxygène. Les méthodes publiques sont donc en mesure de renvoyer (ou de recevoir) des informations par l'intermédiaire de cette structure d'interface. Dans la suite de ce document, nous ne parlerons plus de données publiques, mais de données d'interface ; ceci afin de clairement mettre en évidence qu'elles transitent par cette nouvelle structure.

On touche ici une notion fondamentale de la programmation "composant".
Le fait de communiquer les informations par l'intermédiaire d'une structure
d'interface donne la possibilité de faire évoluer la définition et le
stockage des données persistantes sans remettre en question le reste du
logiciel.
Définition de la structure d'interface d'un composant :
La structure d'interface d'un composant est décrite depuis le descripteur de données. La définition s'opère de la façon classique. Les différences essentielles sont les suivantes :
La structure d'interface doit porter le même nom que le composant, préfixé par "I_". Ainsi un composant STOCK aura comme table disque principale une table STOCK et une structure d'interface nommée I_STOCK
La structure doit être de type "Structure d'interface", ce type étant un nouveau choix disponible sur le premier onglet du descripteur de données.
Les champs de cette structure d'interface sont en général le reflet de la table principale du composant. Pour bénéficier des automatismes de la programmation "composant", certains codes de champ ont été normalisés.