Introduction
Dans les années récentes, l’échange de document multimédia composé en des éléments tel que l’audio, l’image, le texte et la vidéo est de plus en plus populaire, notamment depuis l’apparition des langages définissant le document multimédia comme SMIL 1 , SVG 2 , etc En plus, l’Internet haut débit est presque connecté dans tout le monde entier
Dans notre cas, l’utilisateur veut ou il peut travailler seulement dans un ou des contextes bien définis Un document multimédia général est peut-être quelconque Donc, tout le contenu du document multimédia est peut-être souvent inconvenable pour l’utilisateur Il veut personnaliser le document multimédia selon son contexte d’utilisation Ces exigences entraợnent d’avoir un systốme d’adaptation de document multimédia Dans ce cas, on a deux approches : une approche concernant un logiciel local et l’autre approche concernant un système distribué Un logiciel local a des limites telles que la capacité de périphérique, la nouvelle version mise a jour, etc Avec un système distribué, on peut éviter ces problèmes
Fig 1.1 Un contexte d'adaptation de document multimédia
Ce stage est fait au sein de l’ộquipe MM (MultiMộdia) du dộpartement ô Traitement du signal et des images ằ à la TELECOM-ParisTech (ex ENST Paris) Il fait suite à la thốse de Z Kazi-Aoul [KA07] portant sur l'adaptation de documents multimédia par composition de services élémentaires Dans ce cadre, un moteur de prise de décision met en correspondance une description d'un document multimédia et un contexte d'utilisation de ce document et en déduit une description de l'adaptation à réaliser Cette description est un arbre de composition d'un ensemble de services élémentaires
Image en couleur et texte en anglais
Image en noir et blanc et texte en franỗais
Then I stumbled upon Paris Hilton, I didn’t even think about her before because I wouldn’t even categorize her in the loosest for of an “artist.”
Ensuite, je suis tombé sur Paris Hilton, je n'ai même pas penser à elle avant parce que je n'aurait même pas classer dans le son pour loosest d'un "artiste"
Au cours du stage, on s'efforcera de trouver un formalisme adéquat pour rendre exploitables ces descriptions de faỗon automatique; probablement, il faudra s'appuyer sur les travaux concernant les web services sémantiques, avec description de pré-conditions et de post-conditions
L'évolution de nos travaux nous a conduit à choisir BPEL 1 comme langage de description de la composition des services élémentaires et d'utiliser principalement des web services pour les adaptations
L'essentiel du stage portera sur la constitution d'un ensemble de web services exploitables dans ce contexte et sur des réalisations visant à une utilisation efficace et réaliste de moteurs d'exécution BPEL pour réaliser les adaptations
La contribution principale de ce stage est de donner un démonstrateur des possibilités offertes par l’utilisation de Web Services multimédias distribués, notamment pour l’adaptation de document multimédia
Dans ce document, le mémoire est organisé en trois parties La première concerne l’introduction et la revue de la bibliographie En suit, ce sont trois chapitres principaux du document : Adaptation de document multimédia par web service, Web service sémantique et Composition des web services Ces chapitres sont vraiment techniques Il n’est pas facile à comprendre D’ailleurs, le chapitre 4 concernant WSDL-S est en cours d’élaboration Ce stage réalisé se base sur seulement une proposition de W3C Il manque des outils pour valider le résultat La dernière partie est deux chapitres concernant Analyse des résultats et Conclusion
Etat de l’art
Classification des services
Dans sa thèse, M Kimiaei [KIMIAEI05] a proposé une classification des services Pour adapter le contenu multimédia, on va envisager les traitements tels que transcodage de ressource 1 , transmodage de ressource 2 et transformation de ressource 3
Architecture du système d’adaptation
La première approche concerne l’adaptation du côté du client Dans ce cas, le contexte de l’utilisateur (le profil de l’utilisateur telles que ses préférences, la capacité de son terminal) est enregistré au niveau client Le rôle du serveur est seulement l’envoi de document multimédia Dans [RAN06], les auteurs ont proposé un système d’adaptation du côté du client pour diminuer la consommation d’énergie lors de l’affichage
La deuxième approche concerne l’adaptation du côté du serveur (client/serveur) Comme ce que j’ai présenté dans la partie 1 Introduction , cette approche évite les limites de périphérique du terminal, etc
Dans ce cas, le serveur peut avoir plusieurs versions de document multimédia à partir d’un document d’origine Chaque version concerne un contexte de l’utilisateur Cependant, il faut avoir une machine de grande capacité de disque dur pour cette approche Dans les années récentes, il existe des projets d’adaptation de contenu multimédia basée sur web service comme [PAN06] Dans [PAN06], les auteurs ont proposé une architecture de RMob 4 Dans cette architecture, l’adaptation de contenu multimédia est basée sur seulement le transcodage du web service Donc, il existe encore des choses manquées comme transmodage et transformation Mais, cette architecture est très similaire de l’architecture proposée dans la thèse de Z Kazi-Aoul
La troisième approche concernant l’adaptation de document multimédia est de type client/serveur
Cependant, un module intermédiaire est ajouté entre le client et le serveur Dans ce cas, le nombre des nœuds pour chaque système d’adaptation est forcement défini Donc, le système n’est pas vraiment souple On doit calculer les charges dans chaque nœud intermédiaire pour avoir une configuration du système convenable
4 Rich Media on-line broker
PAAM
Dans sa thèse, Z Kazi-Aoul a proposé une architecture fonctionnelle de PAAM (Peer-2-Peer Architecture for the provision of Adaptable Multimedia contents) On la trouvera en Fig 2.1
Fig 2.1 Architecture fonctionnelle de PAAM [KA07]
L’utilisation de PAAM peut être expliquée comme le comportement suivant : un utilisateur envoie une demande qui se compose des documents multimédia et un contexte d’utilisation au planificateur Donc, le planificateur obtient une description du document Après l’analyse conjointe de cette description et du contexte d’utilisation, il prépare un plan d’adaptation à communiquer au gestionnaire d’adaptation Le gestionnaire d’adaptation cherche sur le réseau des adaptateurs élémentaires capables d’exécuter les différentes étapes du plan d’adaptation Il en invoque pour réaliser la demande de l’utilisateur
L’architecture de PAAM est de type P2P 1 Cela veut dire que le nombre des nœuds dans ce réseau n’est pas forcement défini Un nœud dans le réseau est peut-être un client ou un serveur Donc, il faut avoir un système de gestion de l’adaptation pour gérer les fonctionnalités des nœuds dans le réseau
Dans sa thèse, Z Kazi-Aoul a validé le fait que BPEL était une bonne technologie à utiliser pour faire cette composition En plus, elle a donné un prototype pour l’architecture PAAM Mais, son prototype utilise des méthodes très limitées qui lui ont permis d’un certain nombre de tests et de validations D’ailleurs, elle n’a pas encore utilisé le BPEL dans son prototype C’est la raison pour laquelle je réalise ce stage à la suite de sa thèse
Web services du traitement de document multimédia
Web service
Un web service est une technologie permettant à des applications de dialoguer à distance via l’Internet indépendant de tout langage de programmation et de toute plate-forme d’exécution [WS04] La communication du web service est basée sur le protocole HTTP 1 et le principe de demandes et réponses, effectuée par message sous la forme XML 2 (messages SOAP 3 ) Donc, en général, les communications sont non filtrées par les pare-feux
Le web service est décrit par un fichier WSDL 4 qui précise la description des interfaces (types de données, paramètres des fonctions) En fait, dans un document WSDL, il se compose de sept éléments [WS02] :
- Type : un conteneur pour définitions des types de données utilisant quelques types existants (string, int, float, date, etc.)
- Message : une définition abstraite pour les données échangées entre web services
- Operation : une description abstraite d’une action fournie par le web service
- Port Type : un ensemble abstrait d’opérations fournies par un ou des points d’accès
- Binding : un protocole concret et la spécification du format de données pour un port type
- Port : un seul point d’accès défini comme la combinaison d’un binding et une adresse du réseau
- Service : une collection de points d’accès reliés
3.1.1 Comment peut-on créer un web service
De nos jours, dans des outils open source (Eclipse, Netbeans) ou des outils commerciaux (Websphere, JBuider, MyEclipse, etc.), on peut créer facilement un web service en JAVA en utilisant l’interface
4 Web Service Definition Language graphique En fait, il y a deux faỗons pour construire un nouveau web service La premiốre faỗon s’appelle Top-down [WS15] C’est-à-dire l’utilisation d’un fichier WSDL pour gộnộrer des classes en JAVA Aprốs ỗa, on va implộmenter le web service La deuxiốme faỗon s’appelle Bottom-up [WS15] Cela veut dire que depuis une classe en JAVA, on peut générer le web service C’est complet pour créer un web service selon la méthode Bottom-up Les deux méthodes décrites sont vraiment concrètes et compréhensibles dans [WS15] On se référera à ce document pour plus de détails
Le web service synchrone (le service est fait comme dans la partie 3.1.2) est seulement convenable si le temps de traitement du service est petit car le web service synchrone utilise un même tube pour recevoir la requête et envoyer le résultat Si le traitement du service est longtemps par exemple un ou deux jours, etc., la connexion entre le serveur et le client est rompue Dans ce cas, on ne peut pas recevoir le résultat Pour éviter ce problème, il faut utiliser le service asynchrone En fait, le service asynchrone utilise deux tubes différents : un tube pour recevoir la requête du client et l’autre pour envoyer le résultat au client Donc, le temps de connexion concerne seulement la pộriode de la requờte reỗue ou la pộriode du résultat envoyé
Le serveur de web service Axis2 [AXIS2] fournit le web service asynchrone On se référence à [WS- ASYNC] pour mieux comprendre comment on peut faire un web service asynchrone et comment on peut invoquer un service asynchrone à côté de client Cependant, il y a une petite peu différence de la configuration du serveur entre le guide à [WS-ASYNC] et la rộalisation rộelle pour que ỗa marche Donc, je présente seulement cette configuration
En fait, pour créer un web service asynchrone, tout d’abord on crée un service synchrone comme dans la partie 3.1.1 en utilisant Axis2 Le web service généré par Axis2 a un fichier de définition de la méthode du transport services.xml , par exemple /code/mobic/WebContent/WEB-INF/services/Video/META- INF/services.xml On ajoute une ligne comme dans la Fig 3.1
Fig 3.1 Configuration de web service asynchrone
UDDI (Universal Description, Discovery and Intégration) est une spécification indiquant la manière de publier et découvrir des web services dans le réseau Pour publier un web service, on utilise le message XML sous la forme de ebXML 1 Ce message contient des informations nécessaires comme suit : adresse
1 Electronic Business using eXtensible Markup Language
IP 1 , noms de domaines, les informations sur les modalités d’usage du web service, etc Pour découvrir, la recherche se fait grâce à un moteur de recherche intégré au site de l’opérateur UDDI choisi Ce moteur de recherche nous permettra d’affiner notre recherche selon plusieurs critères : nom de web service, nom de l’entreprise, etc.
Catégorie de web services du traitement
Dans notre architecture du système de l’adaptation de document multimédia, nous examinons de diviser l’adaptation en trois catégories : transcodage, transmodage et transformation Donc, on peut présenter les catégories comme le schéma en Fig 3.2
La catégorie transcodage permet de changer la méthode de codage d’un média élémentaire (texte, image, audio, vidéo) En fait, pour l’image, l’audio et la vidéo, le transcodage est de changer le type du format On montre un exemple dans Tab 3-1
Format d’origine Format du résultat
Tab 3-1 Un exemple du transcodage
Documents d’entrée contenant le langage présent, le format, etc
Cependant, pour le texte, le transcodage concerne l’encodage du caractère Cela veut dire que le transcodage du texte est le changement d’encodage du caractère, par exemple entre l’encodage ASCII et l’encodage UTF-8, etc
La catégorie transmodage consiste à changer le type de média Par exemple, si un terminal ne dispose pas de la police de caractère lui permettant d'afficher convenablement un texte en cyrillique, on va lui préparer une image de ce texte ; on a alors un transmodage de texte en image Dans les sous-sections suivantes de cette section, on présente des possibilités du traitement de document multimédia en transmodage
Le service s’occupe de transférer un texte en images (une ou des images) Le nombre des images dépend les besoins de l’utilisateur comme la dimension d’image affichée, la longueur du texte, etc
Il s’agit d’extraction OCR 1 du texte contenu dans une image Donc, il existe des erreurs (caractères incorrects) pour le retour du web service
Il s’occupe de convertir un texte en son Cela signifie qu’on a une lecture automatique Il est très nécessaire car on est de plus en plus occupé Grâce à ce service, on peut travailler et savoir des informations comme politique, économie, etc parallèlement
La conversion de texte en son concerne le langage d’utilisation C’est très important Chaque langage a des caractéristiques différentes comme intonation, structure, etc Donc, on ne peut pas avoir un service pour les langages dans le monde entiers Mais, on essaie d’avoir une fourniture pour des langages possibles comme anglais, franỗais, etc
Il s’agit de convertir un fichier audio en texte Cela veut dire qu’on a une transcription automatique pour quelques buts comme diminution de taille, etc
Il s’agit de prendre une image dans une vidéo Cela peut permettre de donner une publicité automatique basée sur des images dans une vidéo
Il s’agit de prendre une série d'images constituant un résumé Cela peut permettre de comprendre des scènes d’une vidéo avec quelques images Cela peut diminuer l’espace de stockage par rapport le stockage d’une vidéo
La catégorie transformation consiste à modifier un média sans en modifier le format de codage Par exemple, il s'agira de réduire la taille d'une image par changement d'échelle ou par rognage des bords
Dans les sous-sections, on va discuter sur les services de transformation
Il s’agit de traduire un texte d’un langage en un autre langage, par exemple : un texte d’anglais en texte de franỗais, etc Pour cela, il est intộressant de profiter des outils existants, notamment la traduction de Google
3.2.3.2 Rognage d’une image ou une vidéo
Il s’agit de rogner une image ou une vidéo Cela signifie que les deux dimensions (largeur et hauteur) d’une image ou une vidéo sont rognées
3.2.3.3 Changement d’échelle d’une image ou une vidéo
Il s’agit de changer l’échelle d’une image ou d’une vidéo Le changement d’échelle consiste à changer une dimension selon l’autre dimension
3.2.3.4 Changement de résolution d’une image
Il s’agit de changer les dimensions d’une image C’est-à-dire qu’il y a une nouvelle largeur et une nouvelle hauteur, mais le contenu de l’image est inchangé
3.2.3.5 Passage en noir et blanc d’une image ou d’une vidéo
Il s’agit de passer en noir et blanc une image ou une vidéo Cela veut dire que depuis une image ou une vidéo en couleur, elles sont passées en noir et blanc
3.2.3.6 Changement de fréquence d’échantillonnage d’un audio
Il s’agit de changer la fréquence d’échantillonnage d’un audio
3.2.3.7 Changement de débit pour un son ou une vidéo
Il s’agit de changer le débit en octet pour jouer Il est important dans le cas ó la bande passante disponible du réseau est petite
3.2.3.8 Diminution de poids en octet
Il s’agit de diminuer ô le poids ằ en octet d’une image Le poids concerne le nombre des bits prộsentant un pixel
Il s’agit de diminuer le bruit sur l’image, le son et la vidéo.
Réalisation
Comme dis dans la section 3.1.1, il est facile et simple de faire un web service avec une classe JAVA
Donc pour cette section, on parle seulement de la méthode de réalisation en JAVA
En général, il est impossible de faire tous les travaux détaillés dans section 3.2 en JAVA Cependant, on peut baser sur des programmes existants (en langage C par exemple) C’est l’idée principale pour la réalisation d’adaptation de document multimédia
3.3.1.1 Utilisation du logiciel pour les web services
On va montrer les logiciels utilisés (tous sont open source) pour l’adaptation dans Tab 3-2
Logiciel Description ffmpeg Pour réaliser ceux qui concernent l’audio et la vidéo, il est utilisé par les trois catégories imageMagick Pour réaliser ceux qui concernent l’image, il est utilisé par deux catégories : transcodage et transformation mplayer Il passe en noir et blanc une vidéo tesseract Il transfère l’image en texte (extraction du texte contenu dans une image)
Tab 3-2 Description des logiciels utilisés pour les web services
3.3.1.2 Transport de données Concernant les données traitées, il y a deux approches La première approche enregistre des données sur un dossier local Les avantages de cette approche sont les suivantes : simples à comprendre, faciles à faire, etc Cependant, cette approche a quelques inconvénients On ne peut pas enregistrer des données à distance Cela amène qu’on doit avoir un disque dur de grand volume car la taille du document multimédia est souvent grande Il est peut-être difficile dans quelques cas ó on ne veut pas fournir un grand disque dur sur cette machine ou il existe peut-être des risques sur celle
Une autre approche concerne l’utilisation d’un des protocoles populaires comme HTTP, FTP 1 , etc pour envoyer des documents traités à un serveur distant Cette approche perd peut-être un peu de temps par rapport à la première approche Mais, on peut résoudre l’inconvénient de l’approche précédente Dans ce stage, j’ai choisi la deuxième approche pour envoyer des documents traités car il est facile d’envoyer de grands fichiers, de configurer le système PAAM et aussi de déployer PAAM par rapport au protocole HTTP
3.3.2 Conception des Web services de PAAM
Fig 3.3 Comment peut-on réaliser le transcodage
Le schéma dans Fig 3.3 nous montre comment on peut réaliser le transcodage En fait, pour faire le transcodage de Vidộo et Audio, on utilise le logiciel ô ffmpeg ằ Pour faire le transcodage d’Image, on utilise le logiciel ô ImageMagick ằ Cependant, pour faire le transcodage de Texte, on n’utilise pas de bibliothốques externes Le document multimộdia traitộ va ờtre envoyộ par le bloc ô transport de donnộes ằ Dans des sections suivantes, on ne rappelle plus cela
Le schéma dans Fig 3.4 nous montre comment peut-on réaliser le transmodage En fait, pour faire le transmodage de Vidộo en Slideshow et Vidộo en Image , on utilise le logiciel ô ffmpeg ằ Pour faire le transmodage de Texte en son (Texte en Audio), on utilise le logiciel ô eSpeak ằ Pour faire le transmodage de Image en Texte , on utilise le logiciel ô tesseract ằ Mais, pour faire le transmodage de Texte en Image , on n’utilise pas de bibliothèques externes
Fig 3.4 Comment peut-on réaliser le transmodage 3.3.2.3 Transformation a) Transformation de Texte
Fig 3.5 Comment peut-on réaliser la transformation de Texte
Le schéma dans la Fig 3.5 nous montre comment on peut réaliser la transformation de Texte En fait, la transformation de Texte se compose de seulement un service concernant la traduction de texte Pour faire la traduction de texte, on utilise l’outil Google Translate b) Transformation de Image
Fig 3.6 Comment peut-on réaliser la transformation de Image
Le schéma dans la Fig 3.6 nous montre comment on peut réaliser la transformation de Image En fait, pour la catégorie Transformation en image, il y a six services Les six services sont exécutés en utilisant l’outil ô ImageMagick ằ c) Transformation de Vidéo
Le schéma dans la Fig 3.7 nous montre comment on peut réaliser la transformation de Vidéo En fait, pour la catégorie Transformation en vidéo, il y a cinq services Comme la transformation de Image utilisant un mờme l’outil ô ImageMagick ằ, les cinq services sont aussi exộcutộs en prenant l’outil ô ffmpeg ằ
Changement de résolution d’une image
Passage en noir et blanc d’une image
Diminution de poids en octet
Diminution de bruit Transport de données
Fig 3.7 Comment peut-on réaliser la transformation de Vidéo d) Transformation de Audio
Fig 3.8 Comment peut-on réaliser la transformation de Audio
Le schéma dans la Fig 3.8 nous montre comment peut-on réaliser la transformation de Audio En fait, pour le service de Transformation de Audio, il y a trois services Comme deux types précédents ( Transformation de Image et Transformation de Vidéo ) utilisant un même outil, la transformation de Audio est exộcutộe en prenant l’outil ô ffmpeg ằ
En fait, dans trois parties 3.3.2.1, 3.3.2.2 et 3.3.2.3, j’ai déjà présenté des schémas de réalisation des web services Donc, dans cette partie, je vais présenter deux seuls diagrammes de séquence pour montrer clairement la réalisation des web services basée sur des outils existants pas à pas Le travail présenté ici est le changement de débit d’un audio (voyez Fig 3.8 pour savoir le schéma de réalisation)
Ce diagramme est montré en Fig 3.9 et Fig 3.10
Changement de fréquence d’échantillonnage d’un audio
Changement de débit d’un audio
Passage en noir et blanc d’une vidéo
Changement de débit d’une vidéo
Diminution de bruit Transport de données
Utilisateur AudioService Audio FFMPEG FTP Serveur
1 : changer le debit d'un audio()
2 : changer le debit d'un audio()
3 : changer le debit d'un audio()
4 : changer le debit d'un audio()
Fig 3.9 Diagramme de séquence du changement de débit d'un audio en synchrone
Utilisateur AudioService Audio FFMPEG FTP Serveur
1 : changer le debit d'un audio()
2 : changer le debit d'un audio()
3 : changer le debit d'un audio()
4 : changer le debit d'un audio()
Fig 3.10 Diagramme de séquence du changement de débit d'un audio en asynchrone
Web service sémantique : WSDL-S
Ontologie PAAM
Pour construire l’ontologie de PAAM, on se base sur la thèse de G Hagos [HA06] car nous trouvons que le modèle de sa proposition est convenable avec le projet PAAM C’est pourquoi nous l’utilisons pour construire l’ontologie de PAAM Dans sa thốse, il a proposộ une faỗon trốs simple pour construire l’ontologie concernant WSDL-S En fait, chaque opération de services est définie par un concept correspondant dans l’ontologie D’ailleurs, il a donné une manière de définir des conditions d’entrée et de sortie à partir du type d’entrée et de sortie On va montrer quelques concepts concernant des opérations au document WSDL comme dans la Fig 4.1
Le schéma dans la Fig 4.1 nous montre le concept MultimediaAdaptationServices qui se compose de quatre sous-concepts : ImageAdaptationServices , AudioAdaptationServices , TextAdaptationServices , VideoAdaptationServices Les sous-concepts sont présentés par le message subClassOf ; par exemple AudioTranscodingAdaptationServices est sous-concept de AudioAdaptationServices Dans le chapitre 3, on voit que le service du transcodage d’un élément Audio se compose de deux opérations illustrant deux sous-concepts de AudioTranscodingAdaptationServices Cependant, ce schéma ne nous montre pas suffisamment tous les concepts dans notre ontologie PAAM On liste tous les concepts de PAAM dans l’annexe 3
1 OWL-S is an ontology, within the OWL-based framework of the Semantic Web
2 Le processus de Member Submission permet de proposer la technologie ou d’autres idées pour l’équipe de W3C
Fig 4.1 Hiérarchie de concept dans l’ontologie PAAM
Annotation du document WSDL
Avant d’ajouter des annotations au document WSDL, on a besoin de définir le nom de Namespace 1 On montre le Namespace dans Tab 4-1 En plus, il existe encore une attention pour annoter le document WSDL C’est que sa version est 2.0 Mais, la version du document WSDL généré par la section 3.1.1 est 1.1 Donc, on a besoin de convertir en version 2.0 un document WSDL avant de l’annoter C’est fait à partir de l’outil dans [WCON]
Préfix Nom de Namespace wssem http://lsdis.cs.uga.edu/projects/meteor-s/wsdl-s/examples/WSSemantics.xsd
Tab 4-1 Namespace du document WSDL
En général, chaque élément opération est annoté par un concept dans l’ontologie Cette annotation est définie par utilisant l’attribut modelReference Elle est illustrée en Fig 4.2
1 Le terme est utilisé dans le document XML XML Namespace permet d'employer des éléments et des attributs nommés dans une instance XML
Une instance XML peut contenir des noms d'éléments ou d'attributs de plus d'un vocabulaire XML Si on attribue à chaque vocabulaire un espace de noms, alors on peut rộsoudre les ambiguùtộs entre des noms identiques d'ộlộments ou d'attributs Tous les noms d'ộlộment dans un espace de noms doivent être uniques
VideoAdaptationServices subClassOf subClassOf subClassOf subClassOf
AudioSpeedAdaptationService subClassOf subClassOf subClassOf subClassOf subClassOf subClassOf subClassOf
Il existe encore d’autres concepts
4.2.2 Eléments d’entrée et de sortie
En fait, chaque opération se compose de deux éléments : un pour l’entrée et l’autre pour la sortie
Chaque élément est sous le type simple 1 ou complexe 2 Pour annoter l’entrée et la sortie d’une opération, on annote sur des définitions du type
Pour annoter un type simple, on fait comme dans la section 4.2.1 Cela veut dire qu’on utilise le Namespace wssem et l’attribut modelReference On peut citer un exemple comme dans Fig 4.3
Fig 4.3 Annotation d'un type simple Avant de parler d’annotation du type complexe, on donne un exemple pour celui comme Fig 4.4
Fig 4.4 Exemple du type complexe Pour annoter cet élément, on a deux manières : une concernant l’annotation sur toutes les feuilles 3 , l’autre concernant l’annotation sur le type complexe Quant à la deuxième manière, on doit définir un schéma 4 pour faire le mapping entre le contenu et le schéma Quant à la première manière, on ajoute les informations sur tous les sous-éléments Il semble que la deuxième manière est moins claire que la première pour une nouvelle personne de ce domaine Dans ce stage, nous utilisons la première manière
On va donner quelques lignes dans la Fig 4.5 pour traiter l’exemple dans Fig 4.4
Fig 4.5 Annotation du type complexe
1 Un type simple est composé par un des types fondamentaux du document WSDL comme la description dans la section 3.1
2 Un type complexe est composé par plus d’un type fondamental du document WSDL comme la description dans la section 3.1
3 Une feuille est un sous-ộlộment dans le type complexe Dans Fig 4.4, on a deux feuilles avec les noms de ô stUrl ằ et de ô to_format ằ
4 Dans le domaine XML, un schéma pour définir une structure XML Autrement dit, le contenu de XML est défini par le schéma
Une précondition définit un ensemble d'affirmations qui doivent être réunies pour un web service qui peut être invoqué Elle peut préciser les exigences qui doivent être respectées, telles que "doit avoir un compte existant avec cette sociộtộằ, ou des restrictions, telles que "seulement les clients vietnamiens peuvent être servis" Les préconditions sont spécifiées comme éléments d’enfant de cette opération Le schéma pour une précondition est indiqué dans la Fig 4.6
On va expliquer quelques mots pour ce schéma :
/precondition : Cet élément spécifie l’annotation sémantique pour l’opération
/precondition/@name : L’attribut name spécifie un identificateur unique dans l'ensemble des préconditions dans le document WSDL
/precondition/@modelReference : L’attribut modelReference spécifie l'URI 1 de la part d'un modèle sémantique qui décrit la précondition L’attribut modelReference et expression sont mutuellement exclusifs
Fig 4.6 Schéma de précondition /precondition/@expression : C’est une expression qui définit la précondition Le format de l'expression est défini par le langage de représentation sémantique utilisé pour exprimer le modèle sémantique L’attribut modelReference et expression sont mutuellement exclusifs
On va donner un exemple pour illustrer l’application de précondition et d’effet à partir de la Fig 4.7 Le schéma d’effet sera expliqué dans la section 4.2.4
Fig 4.7 Exemple d'annotation avec précondition et effet Dans la Fig 4.7, l’opộration ô convert2Base64 ằ est annotộe par le concept ô AudioBase64ConversionAdaptationService ằ dans l’ontologie PAAM La precondition ô Base64ConversionInputSubject ằ dans ce cas spộcifie que l’entrộe de l’opộration doit ờtre une ressource de l’audio
Un effet définit le résultat de l'invocation d'une opération Il peut simplement affirmer que la sortie est retourné ou il peut faire des déclarations sur ce qui change dans l'état et sur ce qui est attendu en invoquant le service Par exemple, ô le nouveau solde du compte sera disponible ằ ou ô le compte de carte de crộdit sera dộbitộ ằ Le schộma d’un effet est comme Fig 4.8
Comme pour la précondition, on a quelques descriptions pour le schéma d’effet :
/effect : Cet élément spécifie l’annotation sémantique pour l’opération
Fig 4.8 Schéma d'un effet /effect/@name : L’attribut name spécifie un identificateur unique dans l'ensemble des effets dans le document WSDL
/effect/@modelReference : L’attribut modelReference spécifie l'URI de la part d'un modèle sémantique qui décrit l’effet L’attribut modelReference et expression sont mutuellement exclusifs
",
$plTranslateTextResponse.parameters/ns0:translateReturn, "")]]>
$plUserProfileResponse.parameters/ns0:getUserLanguageReturn]]>
$plXMLtoolsTextResponse.parameters/ns0:getTextElementValueReturn, "")]]>
$plVideoResponse.parameters/ns0:changeScaleReturn, "")]]>
$plUserProfileHeightResponse.parameters/ns0:getScreenHeightReturn or
$plUserProfileWidthResponse.parameters/ns0:getScreenWidthReturn]]>
$plXMLtoolsVideoLinkResponse.parameters/ns0:getVideoElementReturn, "")]]>