Expérience de développement
Environnement CORBA
La société Atlantide
Le projet Forum de discussion
Autres projets en objets distribués
Conclusion
La société Atlantide
Activité SSII
Statut S.A filiale du groupe ALTRAN
Capital 1,2 MF
Création 1984
Effectifs 50
Implantation Brest (Siège social)
Rennes (Agence)
Métiers Informatique
Electronique
Scientifique(mathématiques,physique)
Secteurs Télécommunications
Environnement
Défense
Clients France Télécom
Ifremer
Epshom
DCN
Commission européenne
Thomson Marconi Sonar
Alcatel Business Systems
Thomson CSF RCM
EDF
La Poste
CRNAO
IFRTP
CMB
MORS
Le projet Forum de discussion
Contexte du projet
CCETT département TMS/PMA
1996
Evaluation des nouvelles technologies appliquées au domaine des forums de discussions.
Logiciel expérimental, testé sur un ensemble restreint d'utilisateurs (quelques centaines).
Contexte internet.
Fonctionnalités du logiciel
Permettre aux utilisateurs connectés de se déplacer dans des lieux de discussions graphiques.
Permettre une personnalisation de son personnage, mémorisée dans une base de données du serveur de forum.
Le déplacement d'un personnage sur un poste client est répercuté sur l'ensemble des postes clients.
Le contexte technique
Postes clients PC windows 95 ou NT Serveur avec un navigateur supportant Java.
Serveur Windows NT.
Environnement de développement CAFE de Symantec.
Java ORBIX pour les clients.
C++ ORBIX pour le serveur.
Base de données POET.
Les principes mis en uvre
IHM
IHM au démarrage du forum
IHM de contrôle d'accès au forum
IHM de navigation par chemin menant aux lieux de discussions.
IHM de navigation par Plan
IHM lieu de discussion
IHM principale de personnalisation
IHM pour personnalisation par composition d'un personnage
IHM de personnalisation par fichier gif personnel
Mise en uvre ORBIX
ü Le fichier IDL sert à décrire les classes distribuées (attributs et méthodes).
ü Les fichiers sources client fournissent le code permettant laccès aux objets distribuées.
ü Les fichiers sources serveur fournissent le code permettant au serveur de rendre accessible les objets distribuées.
ü ORBIX conforme à CORBA
Cas concret
Fichier IDL
// apibas.idl
interface apibas {
readonly attribute long numNoeudRacine;
void Connect();
void Disconnect();
};
Fichiers générés par le compilateur IDL C++ et Java
Accès depuis le code java client
public class ApibasEvents extends apibasDemo.ApibasPanel {
public apibasDemo.apibas.Ref gRef;
public void bindObject () {
String tmp;
String markerServer;
String hostName;
// get server name from text field
if ((tmp = nameField.getText ()) == null)
markerServer = "";
else
markerServer = ":" + tmp;
// get host name from text field
hostName = hostField.getText ();
// bind to server object
try {
gRef = apibasDemo.apibas._bind (markerServer, hostName);
}
catch (SystemException se) {
displayMsg ("Connect failed.\n" + "Unexpected exception:\n"
+ se.toString ());
return;
}
public void getRoot () {
int numNoeud;
Integer affiche;
// check that proxy exists
if (gRef == null) {
displayMsg ("Récupération du numéro de noeud impossible - non connecté au serveur.");
return;
}
try {
gRef.Connect ();
numNoeud = gRef.numNoeudRacine ();
gRef.Disconnect ();
}
catch (SystemException se) {
displayMsg ("Récupération du numéro de noeud impossible.\n"
+ "Unexpected exception:\n" + se.toString ());
return;
}
affiche = new Integer(numNoeud);
dField.setText (affiche.toString (numNoeud));
displayMsg ("Récupération du numéro de noeud réussie.");
}
}
Implémentation du code sur le serveur
CORBA_Long apibas_i::numNoeudRacine(CORBA_Environment &)
{
return m_numNoeudRacine;
}
void apibas_i::Connect(CORBA_Environment &)
{
int lv_Stat;
if( _op_apiBase != NULL )
{
_op_apiBase->Connect();
lv_Stat = _op_apiBase->Connect();
if(lv_Stat == OK)
{
_op_noeudCourant = new C_ApiNoeud(NULL);
_op_apiBase->GetRoot(_op_noeudCourant);
m_numNoeudRacine = _op_noeudCourant->ov_Id;
}
}
}
void apibas_i::Disconnect(CORBA_Environment &)
{
if( _op_apiBase != NULL )
{
_op_apiBase->Disconnect();
}
}
Conclusion
ü Mise en uvre simple.
ü Rend transparent le réseau, les objets sont manipulés comme sils étaient locaux.
ü Utiliser dans le cas de serveurs dobjets spécialisés.
Autres expériences dobjets distribués à Atlantide
ü ROV 6000 (IFREMER), Véhicule sous marin commandé depuis la surface.
Utilisation dORBIX pour communiquer entre les objets du véhicule et les objets
ü Serveur de jeux collaboratifs pour la cité des sciences.