WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Planification multi-agents pour la composition dynamique

( Télécharger le fichier original )
par Brakni Ilhem
Université de Tébessa -algerie - Ingénieur d'état en informatique 2010
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

II. Outils exploités

Afin de bien réaliser les étapes précédentes, plusieurs outils de développement peuvent nous aider.

· L'IDE (Environnement de Développement Intégré), Eclipse ;

· Le plug-in OWL-S IDE pour Eclipse ;

· L'IDE, JBuilder ;

· La plateforme JADE.

III. Création des descriptions OWL-S

Cette étape consiste à créer les différentes descriptions OWL-S des Modèles de processus des services proposés dans le chapitre précédent. Cette description sert à décrire chaque service comme un processus atomique. Chaque processus atomique est décrit en terme de son flux de données (inputs et outputs) ainsi qu'en terme de ses contraintes d'utilisation (préconditions et effets).

Cette création peut être faite manuellement, mais plusieurs outils sont apparus pour faciliter la tache. Pour notre travail nous avons choisis d'utiliser l'éditeur OWL-S IDE utilisé comme un plug-in Eclipse (voir l'annexe).

Cet éditeur fournit deux modes pour l'édition des descriptions OWL-S :

· Le mode graphique et

· Le mode textuel

Il permet de créer ces descriptions de différentes manières :

· Depuis un code Java implémentant le service web ;

· Depuis un fichier WSDL décrivant le service web ; ou bien

· De les créer directement vides puis de les compléter à travers l'éditeur.

Comme nous avons vus, les services proposés on presque la même description OWL-S de leurs modèles de processus. Il suffit donc dans cette section de présenter le procédé suivi pour la génération de l'une de ces descriptions ; celle du service de réservation de vols aériens. En plus, ce qui nous concerne dans notre travail est seulement la description du modèle de processus du service. Ainsi, le procédé suivi est le suivant :

1. Génération d'une classe Java implémentant le service web ;

2. Génération de la description OWL-S du service à l'aide du support Java2OWL-S fournit par l'éditeur ;

3. Utilisation de l'éditeur des modèles de processus (process models) pour compléter la description OWL-S du modèle de processus du service générée.

III.1. Génération de la classe Java implémentant le service web

Notre service contient une seule opération ; lorsqu'il reçoit une demande de réservation d'un utilisateur, il renvoie soit une confirmation (réservation possible) ou une infirmation (réservation impossible).

La classe Java pouvant l'implémenter peut donc contenir une seule fonction « Réserver_Vol() », ayant comme entrées : le nom de l'utilisateur, sa ville de départ, sa date de départ, sa ville d'arrivée et sa date d'arrivée et ayant comme une seule sortie une expression exprimant l'existence ou non de la réservation demandée. Ce que fait le service ne nous concerne pas ; ce qui nous concerne est seulement la signature de la fonction. Cette génération est faite par l'Eclipse IDE.

Notre classe Java sera donc la suivante :

public class Reservation_Vol {

public boolean Reserver_Vol(String Nom_Utilisateur, String Ville_Depart,

String Date_Depart, String Ville_Arrivee, String Date_Arrivee)

{

}

}

Figure 5.1 : classe Java implémentant le service de réservation de vols aériens III.2. Génération de la description OWL-S du service

Une fois la génération du code Java implémentant le service soit terminée, l'éditeur fournit un support « Java2OWL-S » permettant de générer la description OWL-S du service à partir de ce code Java. La conversion Java2OWL-S est faite en deux phases : dans la première le code Java est converti à un fichier WSDL et dans la deuxième ce dernier est converti à des fichiers OWL-S. Le résultat de ce processus est des descriptions WSDL et grounding OWL-S complètes et des descriptions du profile et du modèle de processus incomplètes.

Puisque la description du modèle de processus est la seule description qui nous concerne dans notre travail, nous ne présenterons dans ce qui suit que ce fichier généré dans cette étape.

Dans ce qui suit nous présentons la description OWL-S du modèle de processus dans le mode graphique de l'éditeur puis dans le mode textuel (format XML) :

Figure 5.2 : Une partie de la description OWL-S du modèle de processus générée en mode graphique

Figure 5.3 : Une partie de la description OWL-S du modèle de processus générée en mode textuel III.3. Compléter la description OWL-S générée

La description OWL-S du modèle de processus du service générée dans l'étape précédente décrit le service en terme de son flux de données seulement, mais pas en terme de ses contraintes d'utilisation (préconditions et effets). Pour faire la compléter nous allons exploités l'éditeur des modèles de processus fournit par l'outil OWL-S IDE.

Notre processus atomique a deux préconditions et un seul effet.

Préconditions :

- (À Nom_Utilisateur Ville_Départ Date_Depart)

- (Existe_Trajet Ville_Depart Date_Depart Ville_Arrivee Date_Arrivee)

Effet :

- (À Nom_utilisateur Ville_arrivée Date_arrivée)

Après avoir la compléter et l'organiser (afin de faciliter sa manipulation en suite), la description OWL-S du modèle de processus pour notre service de réservation de voles aériens sera donc la suivante :

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE uridef[

<!ENTITY rdf " http://www.w3.org/1999/02/22-rdf-syntax-ns">

<!ENTITY rdfs " http://www.w3.org/2000/01/rdf-schema">

<!ENTITY owl " http://www.w3.org/2002/07/owl">

<!ENTITY xsd " http://www.w3.org/2001/XMLSchema">

<!ENTITY service " http://www.daml.org/services/owl-s/1.1/Service.owl"> <!ENTITY process " http://www.daml.org/services/owl-s/1.1/Process.owl"> <!ENTITY profile " http://www.daml.org/services/owl-s/1.1/Profile.owl"> ]>

<rdf:RDF

xmlns:rdf= "&rdf;#"

xmlns:rdfs= "&rdfs;#"

xmlns:owl= "&owl;#"

xmlns:xsd= "&xsd;"

xmlns:service= "&service;#"

xmlns:process= "&process;#"

xmlns:profile= "&profile;#"

xml:base= " http://www.daml.ri.cmu.edu/bravoair/Réservation_VolProcess.owl" >

<owl:Ontology about="">

<owl:versionInfo>

$Id: OWLSProcessModelEmitter.java,v 1.1 naveen </owl:versionInfo>

<rdfs:comment>

Add Comment

</rdfs:comment>

<owl:imports rdf:resource="&service;" /> <owl:imports rdf:resource="&process;" /> <owl:imports rdf:resource="&profile;" /> <!-- WSDL2OWL-S :: Add More Imports If needed -->

</owl:Ontology>

<!-- WSDL2DAML-S_was_here -->

<!-- WSDL2OWL-S :: Add composite processes if needed-->

<!--WSDL 2 OWL-S Generated code--> <!--**List of Atomic Processes**--> <!--ProcessName :Reserver_Vol-->

<!--*****************************-->

<!--Definitions for Atomic Process : Reserver_Vol--> <process:AtomicProcess rdf:ID="Reserver_Vol"> <!--Inputs-->

<process:hasInput>

<process:Input rdf:ID="Nom_Utilisateur">

<process:parameterType rdf:datatype="&xsd;#anyURI">

&xsd;#string

</process:parameterType>

</process:Input>
</process:hasInput>

<process:hasInput>

<process:Input rdf:ID="Ville_Arrivee">

<process:parameterType rdf:datatype="&xsd;#anyURI">

&xsd;#string

</process:parameterType>

</process:Input>
</process:hasInput>

<process:hasInput>

<process:Input rdf:ID="Ville_Depart">

<process:parameterType rdf:datatype="&xsd;#anyURI">

&xsd;#string

</process:parameterType>

</process:Input>
</process:hasInput>

<process:hasInput>

<process:Input rdf:ID="Date_Depart">

<process:parameterType rdf:datatype="&xsd;#anyURI">

&xsd;#string

</process:parameterType>

</process:Input>
</process:hasInput>

<process:hasInput>

<process:Input rdf:ID="Date_Arrivee">

<process:parameterType rdf:datatype="&xsd;#anyURI">

&xsd;#string

</process:parameterType>

</process:Input>
</process:hasInput>

<!--Outputs-->

<process:hasOutput>

<process:Output rdf:ID="Reservation_Existe">

<process:parameterType rdf:datatype="&xsd;#anyURI">

&xsd;#boolean

</process:parameterType>

</process:Output>
</process:hasOutput>

<!--Preconditions-->

<process:hasPreConditon>

<process:PreCondition rdf:about="#Etat_Utilisateur"> <process:expressionLanguage rdf:resource="#DRS"/> <process:expressionBody>

(A Nom_Utilisateur Ville_Depart Date_Depart) </process:expressionBody>

</process:PreCondition> </process:hasPreConditon>

<process:hasPreConditon>

<process:PreCondition rdf:about="#Existe_Trajet">

<process:expressionLanguage rdf:resource="#DRS"/> <process:expressionBody>

(Existe_Trajet Ville_Depart Date_Depart Ville_Arrivee Date_Arrivee)

</process:expressionBody>

</process:PreCondition> </process:hasPreConditon>

<!--Effects-->

<process:hasEffect>

<process:Effect rdf:about="#Existe_Trajet"> <process:expressionLanguage rdf:resource="#DRS"/> <process:expressionBody>

(A Nom_Utilisateur Ville_Arrivee Date_Arrivee) </process:expressionBody>

</process:Effect>

</process:hasEffect>

</process:AtomicProcess> </rdf:RDF>

Figure 5.3 : La description OWL-S du process model du service « Réservation de vols aériens »

Les descriptions des modèles de processus des deux autres services sont faites en suivant le même procédé précédent.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Il y a des temps ou l'on doit dispenser son mépris qu'avec économie à cause du grand nombre de nécessiteux"   Chateaubriand