De nombreux environnements de distribution d'objets (e.g. CORBA) offrent un cadre (framework) pour développer des applications distribuées avec une approche orientée objet. Ces outils sont avant tout conçus pour les développeurs d'applications. Les applications ainsi développées sont souvent statiques, elles agissent sur un nombre restreint de types d'objets (e.g. interfaces IDL) toujours prédéfinis dans la phase de compilation de ces applications. Cette approche n'est pas envisageable pour des applications de navigation, d'administration de plusieurs milliers de types d'objets car un outil de navigation (style Mosaic) ne peut pas connaître à l'avance tous les types d'objets rencontrés au cours de la navigation.

Le type d'applications précédentes peut être envisagé en se reposant sur une méta description des types d'objets. Ainsi, l'objectif principal de GOODE (Generic Object-Oriented Dynamic Environment) est de fournir un environnement pour concevoir des applications dynamiques manipulant des types d'objets non prévus dans la phase de compilation de ces applications. Les premières expérimentations sur GOODE ont permis de concevoir deux outils : CorbaScript, un langage de script pour appliquer des invocations sur tout objet CORBA, et CorbaWeb, une passerelle entre le Web et Corba offrant une navigation hypertextuel au travers des objets.

CorbaScript est un langage interprété de commandes (style Shell, Tcl) offrant des variables, des structures de contrôle et un accès à toute information décrite en IDL. Ce langage permet d'appliquer des invocations de méthodes sur n'importe quel objet CORBA. Ce langage permet de concevoir des scripts pour configurer des objets ou pour les consulter interactivement. CorbaScript est conçu comme un composant logicielle et sert de brique de base pour concevoir de nouvelles applications dans l'environnement GOODE.

CorbaWeb est un exemple d'utilisation du composant CorbaScript. CorbaWeb est un programme CGI tournant au sein d'un serveur HTTP. Ce programme génére des pages HTML pour représenter les résultats de l'exécution de scripts CorbaScript. Cet environnement permet de facilement naviguer dans un ensemble d'objets. Les références d'objets sont représentées par des liens hypertextes, les méthodes par des formulaires pour compléter les arguments. De nombreux exemples d'utilisation de CorbaWeb ont été développé pour valider cette approche et définir ses limites. Les illustrations de CorbaWeb ont permis de concevoir rapidement des browsers sur l'Interface Repository, le Naming Service. Les travaux CorbaScript et CorbaWeb ont mis en évidence le besoin de définir une politique de contrôle des invocations sur les objets. Car si dans une approche "classique", le développeur peut cacher certaines opérations en fonction de l'utilisateur, CorbaWeb autorise l'invocation de toutes les méthodes de tous les objets. CorbaScript contiendra donc un mécanisme de contrôle des invocations : une méthode pourra être invoquée seulement si l'utilisateur possède le droit de l'invoquer. Cette association entre utilisateurs et méthodes est défini à travers la notion de rôle. Un rôle est un ensemble de droits sur des méthodes de certains types d'objets. Chaque individu se verra associer un ensemble de rôles donc de droits. Lors d'une invocation, le moteur CorbaScript vérifiera si l'un des rôles de l'utilisateur l'autorise à invoquer cette méthode. L'environnement GOODE est en cours d'expérimentation sur de "réelles" applications : le système d'information PLACO. Ces expérimentations mèneront à la définition de l'Osaca Navigator : le navigateur de l'environnement de coopération OSACA.