UP | HOME

Développement logiciel - Pourquoi recourir aux services ?

Table of Contents

1 La double origine des services Web

  • Deux facteurs moteurs
    • Intégration d'applications
    • Le développement du Web

1.1 Intégration de plusieurs applications

soc_integration.png

Figure 1: Intégration de plusieurs applications

soc_multiIntegration.png

Figure 2: Orchestration de plusieurs applications

L'intégration d'applications logicielles repose sur un modèle client-serveur. L'ensemble des interactions forme une session et se spécifie par une orchestration des appels élémentaires de type requête-réponse. L'intégration suppose que les applications partagent un modèle commun pour représenter les données échangées. Chaque application est vue comme une boîte noire : elle peut donc évoluer librement, tant que l'interface est préservée.

1.2 Le web

soc_webCern.png

Figure 3: Le web à son origine - Clients, serveurs et passerelles vers d'autres serveurs

soc_webDiscovery.png

Figure 4: L'hypertexte pour découvrir de nouveaux serveurs

Le Web repose sur le transport de messages, la gestion de noms universels et des hyperliens. Son architecture est de type REST ("Representational State Transfer") :

  • architecture client-serveur,
  • ressources avec des identifiants universels et des représentations hypermédias (des médias utilisant des hyperliens),
  • manipulation via une interface commune (comme "put/delete" et "get/post" pour le protocole http).

Il bénéficie du réseau mondial Internet, qui forme un éther de communication dans lequel baignent tous les objets communiquant et calculant.

2 Les deux modèles concrets pour les services web

  • Modèle inspiré par l’intégration : services Web SOAP (ancienne mode), WS* (nouvelle mode) dits (un peu péjorativement) services Web lourds ("Big Web Services") parce que lourdement normalisés
    • Appel de procédure distante (RPC, "remote procedure call")
  • Modèles inspiré de REST : services Web Restful dits (par opposition) légers
    • Automatisation de l’interaction avec les serveurs
    • Échanges asynchrones de messages contenant des hyperliens

  • Popularité auprès des développeurs : Rest
  • Contextes d'utilisation pouvant être différents
  • Idéal
    • Légèreté des services web Restful
    • Richesse des normes WS* pour répondre aux différents besoins

2.1 Les services Web WS*

  • Première génération (SOAP)
    • "Web Services Description Language" (WSDL)
    • "XML Schema Definition Language" (XSD)
    • "Simple Object Access Protocol" (SOAP)
    • "Universal Description, Discovery, and Integration" (UDDI)
    • "Web Services Interoperability - Basic Profile" (WS-I BP)
  • Seconde génération (WS*)
    • "WS-Policy"
    • "WS Security" et "WS Secure Exchange" (WS-SX)
    • "WS Coordination", "WS Atomic Transaction", "WS Business Activity" et "WS-Transactions" (WS-TX) "WS ReliableMessaging" et "WS Reliable Exchange" (WS-RX)
    • "WS-Addressing"
  • Des normes complètes (et complexes) et des implémentations (parfois manquantes)

2.2 Les services Web Restful

  • Protocole de communication : http
  • Norme pour identifier les ressources : "Uniform Resource Identifier" (URI)
  • Format quelconque pour les messages (XML, Json, texte, etc.)
  • Des bibliothèques simples dans la plupart des langages de programmation

2.3 Panorama rapide

  • 1990 - Apparition du World Wide Web, "toile d’araignée mondiale", suivant une idée de Tim Berners-Lee
    • Réseau mondial reliant des ressources
  • 1993 - Premier navigateur (utilisant http)
    • Programme client qui va devenir universel
  • 1994 - Premier moteur de recherche (Yahoo)
    • Annuaire des ressources muni de fonctions élaborées de recherche
  • 1994 - Naissance du W3C ("World-Wide-Web Consortium")
    • Compatibilité des technologies utilisées sur le Web
  • 1998 - Création de Google
  • 1998 - Conception de SOAP
  • 2000 - Première version de WSDL
  • 2000 - Définition du style d’architecture REST (par Fielding)
  • 2006 - Premières spécifications WS*
  • 2007 - Première version de la bibliothèque Java pour les services Restful

Le panorama, vu par Google : L’évolution du Web

3 Motivations et objectifs

Les deux facteurs (intégration et expansion d'Internet) sont et resteront moteurs.

Compétences recherchées (cf. Trendy skills)

  • Architecture
    • Services : 40 %
    • Cloud : 25 %
    • Client-serveur : 25 %
  • Projet Apache
    • Services : 25 %
    • Tomcat : 20 %
    • Hadoop : 15 %

Objectifs du cours

  • Appliquer correctement les principes fondamentaux de la programmation concurrente et répartie
  • Savoir produire et consommer des services Web en différents langages, avec différentes technologies
  • Savoir définir des architectures d'intégration en utilisant des services

Version history: v1: 2016-10-19.
Comments or questions: Send a mail.
The webpage content is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.