Les services web
L’internet du futur sera caractérisé par une nouvelle génération d’applications construites par la composition des services et des données provenant de différents fournisseurs et d’organisations, afin de fournir aux utilisateurs des services à valeur ajoutée adaptés à leurs besoins. Les services web jouent un rôle clé dans la réalisation de cette vision, car ils peuvent être publiés, découverts, et composés par Internet en utilisant des standards comme WSDL, UDDI, SOAP. La sélection d’une composition n’est pas simplement un regroupement quelconque de services web, mais un ensemble dont les tâches sont ordonnées en fonction des relations reliant ces services web.
Les services web sont généralement fournis par des organisations différentes et indépendamment de tout contexte d’exécution. Puisque chaque organisation possède ses propres règles de travail, les services web doivent être traités comme des unités strictement autonomes. En raison de l’augmentation du nombre de services disponibles et offrant des fonctionnalités similaires, il est difficile pour les utilisateurs de sélectionner une composition de service optimale parmi une liste de services candidats qui répondent à leurs besoins. Par conséquent, la sélection des services est un défi majeur dans l’Internet du futur.
La littérature offre une grande quantité de travaux sur la composition et la sélection des services web. Malgré ces efforts, le concept de la vie privée pose toujours des problèmes dans le composition et la sélection des services web. Généralement ces tâches impliquent la recueille d’une grande quantité de données personnelles sur les clients, et leurs partage avec les fournisseurs des services. Ceci peut entraîner des risques d’utilisation abusive des données, par exemple : un fournisseur de services peut utiliser les données des clients à des fins illicites. En conséquence, de plus en plus d’utilisateurs envisagent des pratiques de confidentialité adoptées par les fournisseurs des services web comme un facteur important pour le choix de service. Les utilisateurs des services web doivent exiger leurs propres préférences de confidentialité pour que les fournisseurs respectent les données confidentielles de ces clients.
Avec des utilisateurs qui exigent de plus en plus des mesures de protection de la vie privée, il est essentiel que les nouvelles technologies répondent à ce besoin de manière adéquate. L’une des questions de recherche les plus importantes est de savoir si les services web peuvent être exploités pour assurer une protection efficace de la vie privée.
Les Services Web
L’accès aux systèmes d’informations s’appuie de plus en plus sur des technologies Internet. Les efforts de standardisation de ces technologies ont accentué l’engouement des personnes et des organisations (académiques, industrielles, commerciales ou institutionnelles) à l’utilisation de l’Internet et ont permis l’émergence des développements d’applications accessibles par Internet, nommées par les services web. Ainsi, les technologies associées aux services web sont devenues incontournables pour le développement des applications interagissant les unes avec les autres par le biais de l’Internet. Par ailleurs, le service web tend à donner plus d’interactions pour permettre à deux entités hétérogènes (entreprises, clients, applications, etc.) de dialoguer à travers le réseau Internet. Ainsi, les logiciels écrits par divers langages de programmation (C, Visual Basic, Java, etc.), sur différentes plateformes (Linux, Windows, etc.) et avec plusieurs architectures peuvent employer des services web pour échanger les données à travers des réseaux informatique. Chaque service web doit pouvoir être découvert et invoqué dynamiquement par les applications. D’autre part, l’architecture des services web s’est imposée (tout comme le langage XML) grâce à sa simplicité, à sa lisibilité et à ses fondations normalisées. L’objectif principal des services web est de faciliter l’accès aux applications entre entités et ainsi de simplifier les échanges de données. Cette interopérabilité est due à l’utilisation de normes ouvertes. L’OSI et le W3C sont les comités de coordination responsables de l’architecture et de la standardisation des services web. Pour améliorer l’interopérabilité entre les réalisateurs des services web, l’organisation WS-I a développée une série de profils pour faire évoluer les futures normes impliquées. L’aspect le plus important dans les services web est le fait qu’ils reposent sur plusieurs standards permettant ainsi la structuration de leurs architectures. Cette collection de normes et de protocoles est appelée services web Protocol Stack. Elle contient entre autre XML et SOAP pour le formatage des données, WSDL pour la description des services web et UDDI pour la recherche des services web, nécessaires au bon fonctionnement des applications. Par conséquent, nous présentons dans ce chapitre les aspects conceptuels de la modélisation des services web et les aspects liés à leur implémentation.
Définition des services web
Un service web est un composant logiciel indépendant, qui rassemble un ensemble de standards web et de langages dérivés du XML. Ces derniers permettent sa publication, sa découverte et son invocation à distance. Il expose des fonctionnalités via une interface publique et permet de communiquer avec d’autres applications et services web en utilisant des messages XML transportés par des protocoles internet comme le HTTP. Plusieurs définitions des services web ont été mises en avant par différents auteurs. Citons :
IBM
« Les services web sont la nouvelle vague des applications web. Ce sont des applications modulaires, auto-contenues et auto-descriptives qui peuvent être publiées, localisées et invoquées depuis le web. Les services web effectuent des actions allant de simples requêtes à des processus métier complexes. Une fois qu’un service web est déployé, d’autres applications (y compris des services web) peuvent le découvrir et l’invoquer » [PONGE, 2004].
W3C
« Un service web est un système logiciel identifié par un URI dont les interfaces publiques et les incarnations sont définies et décrites en XML. Sa définition peut être découverte dynamiquement par d’autres systèmes logiciels. Ces derniers peuvent ensuite interagir avec le service web en utilisant des messages XML transportés par des protocoles Internet » [RICARDO, 2004].
Architecture des services web
L’exposition et l’utilisation des services se fait dans un contexte particulier qui définit clairement les interactions entre le service et ses utilisateurs. Les services web communiquent via un ensemble de technologies fondamentales qui partagent une architecture commune. Ils ont été conçus pour être réalisés sur de nombreux systèmes développés et déployés de façon indépendante.
Les différentes couches de l’architecture d’un service web s’interfacent avec des standards, comme suit [DEHANE, 2012]:
◆ La couche de publication: repose sur le protocole UDDI (Universal Description, Discovery and Integration) qui assure le regroupement, le stockage et la diffusion des descriptions des services web.
◆ La couche description: est prise en charge par le langage WSDL (Web Service Description Language) [CHRISTENSEN ET AL., 2001] qui décrit les fonctionnalités fournies par le service web, les messages reçus et envoyés pour chaque fonctionnalité, ainsi que le protocole utilisé pour la communication.
◆ La couche communication: la couche de communication des messages propose différents mécanismes liés à l’acheminement des messages (format de communication des messages, adressage, routage…etc.). Cette couche utilise des protocoles reposants sur le langage XML, qui résout les conflits syntaxiques lors de l’encodage des données et cela grâce à sa syntaxe unique. Actuellement SOAP (Simple Object Access Protocol) est le protocole le plus utilisé pour cette couche.
◆ La couche transport: le protocole le plus utilisé dans cette couche est l’HTTP (Hyper Text Transfert Protocol). Cependant, d’autres protocoles peuvent être utilisés, tels que le SMTP (Simple Mail Transfer Protocol) ou le FTP (File Transfer Protocol), permettant ainsi aux services web de rester indépendants du mode de transport utilisé.
Utilisation des services web
Les services web sont une nouvelle voie dans le développement des logiciels, en d’autres termes, se sont des composants logiciels qui peuvent cohabiter dans une application sur un réseau local ou Internet, et sont accessibles par des applications tiers. Les trois composants essentiels pour la fonction et l’interopérabilité de ces services web sont les suivants [CORTES, 2003].
Description des services web
Un service web a besoin d’être décrit pour autoriser des organisations de l’utiliser. WSDL est utilisé dans ce cas pour décrire un service web. La description du service web indique les fonctions de ce service, comme les paramètres entrée/sortie et le protocole de transport.
Publication et découvert des services web
Une organisation a besoin de publier les services web qu’elle possède pour les autres organisations, afin que ces dernières puissent les découvrir. Universal Description, Discovery and Intégration (UDDI) sont utilisés pour publier les services web sur un dépôt central UDDI. D’autres organisations peuvent exécuter les opérations UDDI pour accéder au dépôt UDDI et découvrir les services web qui les intéressent.
Invocation des services web
Une fois que l’organisation a découvert le service web via l’interface UDDI et qu’elle a prit la décision d’utiliser ce service dans son application, elle a besoin d’invoquer le service web. L’invocation d’un service web est faite via le protocole SOAP qui est implémenté au-dessus du protocole HTTP.
Les technologies des services web
XML, SOAP, WSDL, et UDDI sont les technologies dominantes des services web. Une pléthore d’autres technologies viendront aux fils du temps pour enrichir l’architecture de ces derniers. Sans entrer dans les détails techniques, nous vous exposons dans le paragraphe suivant les grandes lignes de ces technologies.
XML
XML (eXtensible Markup Language) est un format texte simple très flexible tiré du SGML (Standard Generalized Markup Language) [RAGGETT, 1999]. À l’origine conçu pour la publication électronique à grande échelle, XML joue aussi un rôle de plus en plus important dans l’échange d’une large variété de données sur le Web et ailleurs. W3C le recommande depuis 1998 comme standard de description de données. XML est un méta langage qui permet d’identifier la structure d’un document. Un document est composé d’une définition de sa structure et d’un contenu. La structure d’un document XML est souvent représentée graphiquement comme un arbre. La racine du document constitue le sujet du document, et les feuilles sont les éléments de ce sujet. Grâce à sa flexibilité et extensibilité, XML est devenu rapidement le standard d’échange de données sur le web. Les avantages du XML sont multiples. Citons :
◆ Lisibilité : il est facile pour un humain de lire un fichier XML car le code est structuré et simple à comprendre. Il est même possible de dire qu’aucune connaissance spécifique n’est nécessaire pour comprendre les données comprises à l’intérieur d’un document XML.
◆ Disponibilité : un fichier XML peut être créé à partir d’un simple logiciel de traitement de texte (exemple : bloc-note).
◆ Interopérabilité : ce langage est lu avec n’importe quel système d’exploitation. Les technologies utilisées sont transparentes lors de la lecture d’un fichier XML.
◆ Extensibilité : en fonction des besoins, des nouvelles balises peuvent être ajoutées.
◆ Divers parseurs XML doivent produire le même résultat, à condition qu’ils soient bien codés.
◆ Tous les récents navigateurs Internet intègrent un parseur XML pour lire les documents de ce langage informatique.
SOAP
SOAP (Simple Object Access Protocol), ce qui signifie « Protocole Simple d’Accès aux Objets », consiste à faire circuler du XML via le HTTP sur le port 80. Cela induit à la facilité des communications, car ce langage est standard et l’utilisation du port 80 ne pose aucun problème pour les firewalls. SOAP peut donc être utilisé dans tous les styles de communications : synchrone ou asynchrone, point à point ou multipoint, Intranet ou Internet [KULCHENKO, 2001]. Ce protocole est caractérisé par sa facilité d’implémentation dans les serveurs Web, destiné à l’échange d’informations dans un environnement distribué et décentralisé [GARDIEN, 2002]. SOAP utilise principalement les deux standards HTTP et XML :
◆ HTTP comme protocole de transport des messages SOAP. Il constitue un bon moyen de transport en raison de sa popularité sur le web.
◆ XML pour structurer les requêtes et les réponses, pour indiquer les paramètres des méthodes et les valeurs de retour, ainsi pour les éventuelles erreurs de traitements. Les messages SOAP sont englobés dans une enveloppe constituée d’un entête et d’un corps [DRISS, 2011]:
◆ L’enveloppe (obligatoire), contient le nom du message et l’espace de nom (namespace).
◆ L’entête (facultatif), apporte des données supplémentaires au message SOAP, comme des informations concernant l’authentification et la gestion des transactions.
◆ Le corps (obligatoire) renferme :
• du côté client, l’opération du service invoquée ainsi que les valeurs et les paramètres nécessaires à cette invocation.
• du coté service, le résultat de l’exécution de l’opération invoquée.
Conclusion générale
Les services web sont une technologie très répondue pour l’intégration et l’interopérabilité des systèmes répartis. Ils sont caractérisés par leurs indépendances aux plateformes et aux systèmes d’exploitation, ce qui a impliqué leur adoption par les différentes organisations commerciales et industrielles offrant leurs services à travers le web, et par conséquence l’augmentation du nombre de services offerts. Lorsqu’une application est de type web, ses tâches composantes peuvent être exécutées à l’aide des services web. En particulier, pour une même tâche, on peut découvrir plusieurs services web aptes à l’exécuter, on serait alors face à un problème de sélection de services web afin de choisir la combinaison de services qui fournit le meilleurs offre, cette combinaison nécessite un partage des données personnelles entre les différentes entités participantes au service, cela peut entraîner des risques d’utilisation abusive des données qui peut atteinte à la vie privée des utilisateurs.
|
Table des matières
Introduction générale
Chapitre I : Les services web
I. Introduction
II. Définition des services web
II.1. IBM
II.2. W3C
III. Architecture des services web
IV. Cycle de vie d’un service web
V. Utilisation des services web
V.1. Description des services web
V.2. Publication et découvert des services web
V.3. Invocation des services web
VI. Les technologies des services web
VI.1. XML
VI.2. SOAP
VI.3. WSDL
VI.4. UDDI
VII. Composition des services web
VII.1. Définitions
VII.2. Types de composition de services web
VIII. Sélection des services web
IX. Quelques domaines d’application des services web
X. Avantages et inconvénients des services web
X.1. Avantages
X.2. Inconvénients
XI. Conclusion
Chapitre II : La vie privée dans les web services
I. Introduction
II. Définition
II.1. La vie privée (Sphère privée)
II.2. Droit à la vie privée
II.3. Protection de la vie privée (ou de la sphère)
II.4. La vie privée sur Internet
II.5. Surveillance
II.6. Sécurité
III. Les attaques de la vie privée
III.1. Vol d’identité
III.2. L’hameçonnage (phishing)
IV. Technologies de protection de la vie privée
IV.1. Privacy by design
IV.2. Privacy Enhancing Technologies (PET)
IV.2.1. Les systèmes de communications et accès anonymes
IV.2.2. Les systèmes de gestion d’identités
V. Les langages de protection de la vie privée
V.1. Le Langage d’expression de politique de la vie privée
V.1.1. Platform for Privacy Preferences (P3P) [LGMM ,2005]
V.2. Le Langage de préférence en termes de vie privée
V.2.1. APPEL
VI. Synthèse des travaux de recherche
VII. Conclusion
Chapitre III : Conception et Implémentation du prototype
I. Introduction
II. Scénario de motivation
III. Approche proposée
III.1. Les règles de confidentialité
III.2. Matching entre services
III.2.1. Critères de matching
III.2.2. Subsomption de confidentialité
III.2.3. Exemple
III.3. Algorithme proposé
IV. Conception
IV.1. Diagramme de cas d’utilisation
IV.2. Diagramme de séquence
IV.3. Diagramme de classes
V. Présentation des outils technologiques utilisés
VI. Présentation de l’IHM
VII. Expérimentation
VII.1. Description de la base
VII.2. Expérimentation 1
VII.3. Expérimentation 2
VII.4. Expérimentation 3
VIII. Discussion
IX. Conclusion
Conclusion générale
Télécharger le rapport complet