0% ont trouvé ce document utile (0 vote)
28 vues3 pages

Gestion des employés en CORBA

Ce document décrit comment implémenter une interface CORBA pour gérer des employés de manière distribuée. Il présente les classes nécessaires côté serveur et client pour offrir et consommer le service à distance.

Transféré par

fala
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
28 vues3 pages

Gestion des employés en CORBA

Ce document décrit comment implémenter une interface CORBA pour gérer des employés de manière distribuée. Il présente les classes nécessaires côté serveur et client pour offrir et consommer le service à distance.

Transféré par

fala
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Exercice 

Soit le fichier [Link] suivant:

module CorbaEmploye{

struct Employe{

long id;

string nom,prenom,poste;

float salaire;

};

typedef sequence <Employe>LE;

interface GererEmploye{

string AjouterEmploye(in Employe e);

Employe getEmploye(in long id);

float getSaliare(in string poste);

LE getEmployes();

};};

1. Ecrire l’interface qu’on peut générer de ce fichier.

public interface GererEmployeOperations


{
String AjouterEmploye ([Link] e);
[Link] getEmploye (int id);
float getSaliare (String poste);
[Link][] getEmployes ();
} // interface GererEmployeOperations
2. Développer la lasse implémentant cette interface.

public class EmployeImpl extends GererEmployePOA {


List <Employe> L= new ArrayList<Employe>();
@Override
public String AjouterEmploye(Employe e) {
[Link](e);
return "vous avez ajouté "+[Link]()+" Employées";
}

@Override
public Employe getEmploye(int id) {
for(int i=0; i<[Link](); i++)
if([Link](i).id==id)
return [Link](i);
return new Employe();
}

@Override
public float getSaliare(String poste) {
for(int i=0; i<[Link](); i++)
if([Link](i).[Link](poste))
return [Link](i).salaire;
return 0;
}

@Override
public Employe[] getEmployes() {
Employe []T=[Link](new Employe[[Link]()]);
return T;
}

[Link] la classe Serveur et la classe cliente.


public class Serveur {
public static void main(String[] args) {
try {
// Initialiser l'ORB
ORB orb=[Link]( args,null) ;

// Créer le POA Manager


POA rootPOA=
[Link](orb.resolve_initial_references("RootPOA"));
// Activer le POA Manager
rootPOA.the_POAManager().activate();
// Créer l'objet qui offre le service distant
EmployeImpl od=new EmployeImpl ();
// Créer un contexte de noms
NamingContext root=[Link]
(orb.resolve_initial_references("NameService"));
//Créer un tableau de noms qui seront attribués à l'objet
NameComponent[] nsNom=new NameComponent[1];
// Définir un nom publique de l'objet distant
nsNom[0]=new NameComponent("MonEmploye","");
//Enre istrer la référence de l'ob et distant dans le Namin

//Service
[Link](nsNom,rootPOA.servant_to_reference(od));
// Démarrer le serveur
[Link]();
} catch (Exception e) {
[Link]();
}
}
}

public class Client {


public static void main(String[] args) {
try{
// Initialiser l'ORB
ORB orb=[Link](args,null);
// Créer le contexte de Naming Service
NamingContext
root=[Link](orb.resolve_initial_references("NameService"));
// Créer un tableau de noms
NameComponent[] nsNom=new NameComponent[1];
// Initialiser le nom de l'objet Distant
nsNom[0]=new NameComponent("MonEmploye","");
// Récupérer la référence de l'objet distant à partier du Naming Service
[Link] remoteRef=[Link](nsNom);
// Créer le représentant local de l'objet distant
GererEmploye b=[Link](remoteRef);
// Invocation des méthodes distantes.
[Link]([Link](new Employe(1,"ben
mahmoud","asma","développeur",(float) 2000.0)));
[Link]([Link](new Employe(2,"ben
salah","ali","prof",(float) 2100.0)));
Employe e= [Link](1);
[Link]( [Link]+[Link]);
[Link]( [Link]("développeur"));
Employe []l=[Link]();
for(int i=0; i<[Link];i++)
{
[Link]( l[i].nom+l[i].prenom);
}
}catch (Exception e) { [Link]();}}

Vous aimerez peut-être aussi