Elle a donné un prototype de PAAM, mais il n’est pas encore validé.Ce stage porte des web services du traitement de document multimédia, des web services sémantiques et de composition de
Trang 1Démonstrateur de l'adaptation distribuée de documents multimédia par
composition de web services
Rapport de stage de fin d’études dans le cadre du Master en informatique à
l’Institut de la Francophonie pour l’Informatique
Réalisé par NGUYEN Cong Kinh Encadrant : Jean-Claude MOISSINAC
Ce stage est effectué au sein de l’équipe MultiMédia du département Traitement du Signal et
des Images de la TELECOM-ParisTech
9 septembre 2008
Trang 21 Introduction
2 Etat de l’art
2.1 Classification des services
2.2 Architecture du système d’adaptation
2.3 PAAM
3 Web services du traitement de document multimédia
3.1 Web service
3.1.1 Comment peut-on créer un web service
3.1.2 Annuaire UDDI
3.2 Catégorie de web services du traitement
3.2.1 Transcodage
3.2.2 Transmodage
3.2.2.1 3.2.2.2 3.2.2.3 3.2.2.4 3.2.2.5 3.2.2.6 3.2.3 Transformation
3.2.3.1 3.2.3.2 3.2.3.3 3.2.3.4 3.2.3.5 3.2.3.6 3.2.3.7 3.2.3.8 3.2.3.9 3.3 Réalisation
3.3.1 Méthode de réalisation
3.3.1.1 3.3.1.2 3.3.2 Conception des Web services de PAAM
3.3.2.1 3.3.2.2 3.3.2.3 3.3.2.4 4 Web service sémantique : WSDL-S
4.1 Ontologie PAAM
4.2 Annotation du document WSDL
4.2.1 Elément opération
4.2.2 Eléments d’entrée et de sortie
4.2.3 Précondition
4.2.4 Effet
4.3 Publication des informations sémantiques
Trang 35.2 Expériences
5.2.1 BPEL simple : HelloWorld
5.2.2 Ajout du document WSDL
5.2.3 Variable
5.2.4 Fichier du déploiement
5.2.5 Bilan
6 Résultats
6.1 Web services de traitement du document multimédia
6.2 Web service sémantique
6.3 Composition des web services
6.4 Conclusion
7 Conclusion
Références
Annexe 1 : Abréviation
Annexe 2 : Rapport technique
1 Description du rôle du web service
1.1 TextService
1.2 ImageService
1.3 AudioService
1.4 VideoService
1.5 TextToImageService
2 Description de l’installation Tomcat
3 Description des logiciels nécessaires
3.1 ffmpeg
3.2 tesseract
3.3 Mplayer-1.0rc2
3.4 ImageMagick
4 Description de configuration des web services
Annexe 3 : Ontologie PAAM
Annexe 4 : WSDL-S
1 Audio
2 Image
3 Texte
4 Vidéo
Annexe 5 : Compositions de web services dans PAAM
1 Fichier de déploiement
2 BPEL
3
Trang 4Je voudrais aussi remercier Brahim Elloumi qui m’a donné plusieurs conseils utiles pendant la réalisation du stage ou ainsi la vie en France.
D’ailleurs, je voudrais remercier NGUYEN Toan Linh Tam et Tieu Kim Cuong, qui m’ont donné des repas vietnamiens très délicieux ou ainsi l’air de vivre en France très cool.
En fin, je tiens tout particulièrement à remercier M Jean-Claude Moissinac, responsable du stage, qui m’a permis de faire ce stage et m’a donné beaucoup de conseils pendant tout le temps du stage.
Trang 5Résumé L’objectif de notre stage est de donner un démonstrateur des possibilités offertes par l’utilisation des web services multimédias distribués, notamment l’adaptation des documents multimédias L’architecture PAAM de ce démonstrateur est proposée par la thèse de Zakia Kazi Aoul Elle a donné un prototype de PAAM, mais il n’est pas encore validé.
Ce stage porte des web services du traitement de document multimédia, des web services sémantiques et de composition des web services par l’utilisation du langage BPEL pour adaptation de document multimédia par contexte de l’utilisateur.
Pour réalisation de stage, nous avons choisi des outils existants possibles pour faire des traitements de document multimédia au niveau du web service Concernant le web service sémantique, nous avons utilisé la version Submission de W3C (pas encore une norme) pour annoter des documents WSDL Concernant le dernier domaine, nous avons fait un scénario pour montrer la composition semi automatique des web services pour qu’on puisse faire l’adaptation de document multimédia par le contexte de l’utilisateur.
5
Trang 6The objective of our internship is to give a demonstration of the possibilities afforded by the use of web services multimedia, specially the adaptation of multimedia documents The architecture PAAM is proposed in the thesis of Zakia Kazi Aoul She has proposed a prototype
of PAAM However, it is not yet valid.
This internship deals with web services processing multimedia document, semantic web services and composition of web services through the use of language BPEL to adapt multimedia document by context of user.
We have chosen existent possible tools for multimedia document processing at the level of web service On the semantic Web service, we used the Submission of W3C (not yet a standard) to annotate documents WSDL Concerning the last domain, we made a scenario to show semi-automatic composition des web services to demonstrate the adaptation of multimedia document by user context.
Trang 7Liste des figures
Fig 1.1 Un contexte d'adaptation de document multimédia 9
Fig 2.1 Architecture fonctionnelle de PAAM [KA07]
12
Fig 3.1 Configuration de web service asynchrone
14
Fig 3.2 Adaptation en catégories
15
Fig 3.3 Comment peut-on réaliser le transcodage
19
Fig 3.4 Comment peut-on réaliser le transmodage
20
Fig 3.5 Comment peut-on réaliser la transformation de Texte
20
Fig 3.6 Comment peut-on réaliser la transformation de Image
21
Fig 3.7 Comment peut-on réaliser la transformation de Vidéo
22
Fig 3.8 Comment peut-on réaliser la transformation de Audio
22
Fig 3.9 Diagramme de séquence du changement de débit d'un audio en synchrone
23
Fig 3.10 Diagramme de séquence du changement de débit d'un audio en asynchrone
23
Fig 4.1 Hiérarchie de concept dans l’ontologie PAAM
25
Fig 4.2 Annotation d'une opération
25
Fig 4.3 Annotation d'un type simple
26
Fig 4.4 Exemple du type complexe
26
Fig 4.5 Annotation du type complexe
26
Fig 4.6 Schéma de précondition
27
Fig 4.7 Exemple d'annotation avec précondition et effet
28
Trang 8Fig 4.8 Schéma d'un effet
28
Fig 5.1 Un scénario de composition de web services
30
Fig 5.2 Deux activités de receiveInput et replyOutput
31
Fig 5.3 Activité partnerLink
32
Fig 5.4 Activité variable
32
Fig 5.5 Activité invoke
33
Fig 5.6 Ajout d'un document WSDL utilisant Bpel-designer
34
Fig 5.7 Initialisation d'une variable
35
Fig 5.8 Utilisation du Namespace d'une variable
36
Fig 5.9 Déploiement de BPEL
37
Fig 6.1 Un scénario d'adaptation de document multimédia par composition de web services 39
Fig 6.2 un exemple du fichier MetaDoc
40
Fig 6.3 un document multimédia de type SVG
40
Fig 0.1 Configuration de FTP
55
Trang 97
Trang 10Liste des tableaux Tab 3-1 Un exemple du transcodage
15
Trang 118
Trang 121 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 SMIL1, SVG2, 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.
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.”
Image encouleur ettexte enanglais
Image en noir etblanc et texte enfrançais Ensuite, je suis tombé sur Paris Hilton, je n'ai même pas penser à elle avant
parce que je n'aurait même pas classerdans le son pour loosest d'un "artiste".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.
Trang 13Au 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 BPEL1 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.
1 Business Process Execution Language
Trang 152 Etat de l’art
2.1 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 ressource1, transmodage
de
2.2 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 RMob4 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.
Trang 162.3 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 P2P1 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.
Trang 173 Web services du traitement de document
Le web service est décrit par un fichier WSDL4 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
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
1 HyperText Transfer Protocol
2 eXtensible Markup Language
3 Simple Object Access Protocol
Trang 19graphique 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
1 Electronic Business using eXtensible Markup Language
Trang 21IP1, 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.
3.2 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
Adaptation en Adaptation en Adaptation en
Adaptation de document multimédia
Documents d’entrée contenant le langage présent, le format, etc.
Fig 3.2 Adaptation en catégories
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
Tab 3-1 Un exemple du transcodage
1 Internet Protocol
Trang 23Cependant, 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.
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.
1 Optical Character Recognition
16
Trang 243.2.3 Transformation
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.
3.2.3.1 Traduction de texte
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.
3.2.3.9 Diminution du bruit
Il s’agit de diminuer le bruit sur l’image, le son et la vidéo.
Trang 253.3 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
à 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, FTP1, 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.
1 File Transfer Protocol
Trang 273.3.2 Conception des Web services de PAAM
3.3.2.1 Transcodage
Adaptation de documentTransport multimédia
de données
Transcodage
Texte
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.
3.3.2.2 Transmodage
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.
19
Trang 28Adaptation de documentTransport multimédia
de données
Transformation
Transduction
de texte
Trang 29Le 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
Adaptation de documentTransport multimédia
de données
Transformation
Rognage d’une 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 ».
Trang 31Adaptation de documentTransport multimédia
de données
Transformation
Rognage d’une vidéo Fig 3.7 Comment peut-on réaliser la transformation de Vidéo
d) Transformation de Audio
Transport
de données
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 ».
3.3.2.4 Diagramme de conception
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
Trang 331 : changer le debit d'un audio()
5 : retourner un nouvel audio()
6 : retourner un nouvel audio()
7 : envoyer un nouvel audio()
8 : retourner un nouvel URL()
Fig 3.9 Diagramme de séquence du changement de débit d'un audio en synchrone
Utilisateur
1 : changer le debit d'un audio()
5 : retourner un nouvel audio()
6 : retourner un nouvel audio()
7 : envoyer un nouvel audio()
Trang 348 : envoyer un nouvel URL()
Fig 3.10 Diagramme de séquence du changement de débit d'un audio en asynchrone
Trang 354 Web service sémantique : WSDL-S
Le web service sémantique WSDL-S est la suite de OWL-S1 La spécification du web service sémantique WSDL-S est un W3C Member Submission2 Elle définit comment ajouter des informations sémantiques au document WSDL Des annotations sémantiques définissent le sens de l’entrée, de la sortie, de la précondition et de l’effet des opérations décrites dans une interface du service Ces annotations sont référencées avec des concepts dans une ontologie.
Jusqu’à cet instant, il y a une norme de W3C pour annoter le document WSDL Elle est décrite dans [WS05] Mais, il y a des limitations pour cette norme car il existe des concepts manquants On ne peut pas ajouter des conditions comme précondition et effet pour chaque opération C’est-à-dire qu’on ne peut pas présenter la condition et l’effet de chaque opération En fait, ces deux choses sont très importantes car on a besoin de savoir quelles sont les conditions pour l’entrée d’une opération et quels sont les effets pour la sortie d’une opération C’est la raison pour laquelle dans notre choix, nous utilisons la version Submission qui est décrite dans [SA07].
4.1 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
Trang 37ImageAdaptationServices
AudioTranscodageAdaptationServicessubClassOf
Fig 4.2 Annotation d'une opération
1 Le terme est utilisé dans le document XML XML Namespace permet d'employer des éléments et des attributs nommés dans une instanceXML Une instance XML peut contenir des noms d'éléments ou d'attributs de plus d'un vocabulaire XML Si on attribue à chaque vocabulaire unespace 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
Trang 394.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 simple1 ou complexe2 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
<element name=”convert2BlackWhiteImageRequest”
type=”xsd:string” wssem:modelReference=”paam#URL”/>
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
<element name="convert2Base64">
<complexType>
<sequence>
<element name="stUrl" type="xsd:string"/>
<element name="to_format" type="xsd:string"/>
on doit définir un schéma4 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