Services WEB

Qu'est-ce qu'un service WEB ?

Les sites ou applications web sont fait de code qui est transmis par des serveurs aux navigateurs web (Firefox, Chrome, etc.). Le navigateur web interprète ce code et l'exécute grâce aux ressources matérielles (processeur, mémoire, etc.) du poste client.

Le contenu (des données comme les positions d'observations ou des métadonnées comme la description de jeux de données) présenté et traité par ces applications web est accédé au chargement des pages web ou au gré des actions de l'utilisateur. Ce contenu est transmis par Internet par des web services.

Exemple :

WebServices1

L'utilisation d'un WebService peut se diviser en différentes étapes :

  • En 1, le client demande au service comment l’invoquer (c’est-à-dire comment bien lui demander un service). On demande au WebService son contrat WSDL (Web Service Description Language) : c'est un document formalisé (XML, W3C) qui spécifie quels sont les méthodes pouvant être appelées sur ce WebService.
  • En 2, le service renvoit sa description (WSDL) où est indiqué comment invoquer ce service (méthodes, format des appels, paramètres, valeurs retournées, etc.). A l'utilisation : on appelle la méthode (SOAP+XML) désirée conformément au format précédemment acquis. Et ceci, tout simplement en instanciant et en utilisant ses méthodes. C'est transparent.
  • En 3, le client invoque le service en envoyant une requête SOAP conformément au format précédemment acquis.
  • En 4, le service renvoit la réponse au client dans une réponse (toujours en SOAP). On récupère le résultat de la méthode.

WebServices2

Les points commun aux différents webservices

L'ensemble des WebServices présentent des points communs :

  • Services WEB HTTP(POST/GET)
    • Paramètres communs : SERVICE, VERSION, REQUEST, etc.
  • Auto-description des service rendus : REQUEST=GetCapabilities
  • Format XML (Format de sortie des réponses texte : toujours xml)
  • Coordinate Reference Systems (CRS ou SRS) : Codification EPSG (Liste complète : http://www.epsg-registry.org)

Quels contenus ?

Les portails d'accès aux informations marines permettent d'explorer les contenus suivant :

  • les descriptions de :
    • moyens d'observation et d'analyse de l'environnement marin
    • observations réalisées
    • produits de données assemblés pour les utilisateurs
    • services de transformation, de traitement des données
    • publications scientifiques
    • personnes et des organisations contribuant à l'observation et l'analyse de l'environnement marin.
    • vocabulaires et termes de référence utilisés dans les contenus
  • les données de :
    • résultats des observations
    • compilations de résultats d'observation ou synthèses

Pourquoi standardiser les services WEB ?

Il y a deux raisons pour lesquelles on standardise les services WEB qui transmettent ces contenus.

La première est que la structure des contenus (description des moyens d'observation, résultats d'observation, etc.) est plus stable que la façon dont on les présente dans les pages web. Ainsi le même service web transmettant un contenu pourra être présenté de différentes manière pour différents projets, dans différents contextes suivant les demandes des utilisateurs sans qu'il soit nécessaire de redévelopper les logiciels qui fournissent les web services et transmettent les contenus.

La seconde est que les contenus peuvent être partagés avec des sites partenaires. L'utilisation de standards pour interroger et transmettre les contenus facilite leur utilisation par les sites partenaires.

Quels standards pour quels contenus ?

Parmi les standards on distingue parfois:

  • les protocoles : ils définissent les modalités d'interrogation des webs services, par exemple: “je veux les résultats des observations de température de la colonne d'eau dans la Méditerranée”.
  • les formats : ils définissent la structure des réponses, des contenus, envoyés par les web services, par exemple CSV.

Les standards sont développés par des organisations diverses (OGC, W3C, ISO, OAI, WebID, etc.).

Pour les contenus géo-référencés, les protocoles de l'Open GIS Consortium :

Protocoles généraux

Contenu

Protocole

Format

Distribution de cartes dynamiques (images de cartes géographiques)

OGC/WMS

png, tiff, jpeg, ...

Distribution de composants géographiques (“feature”) : description d'entités géoréférencées (lieux, limites, trajectoires, ...)

OGC/WFS

GML

Distribution de couvertures géographiques (“coverage”)

OGC/WCS

Distribution de données et de métadonnées de moyens d'observations (capteurs)

OGC/SOS

Interrogation de catalogues de métadonnées

OGC/CSW

Protocoles dédiés

Contenu

Protocole

Format

Description des moyens d'observation, des méthodes d'analyse

OGC/SOS

SensorML

Description des observations

OGC/SOS

O&M

Résultat des observations

  • Résumés

OGC/WFS

GML

  • Détails

OGC/SOS

GML, JSON, netCDF, CSV

Description des produits de données assemblés

OGC/CSW

ISO19139, Dublin-Core

Résultats des produits de données

  • Collections d'observations

OGC/SOS

NetCDF, CSV

  • Synthèses géo-spatiales

OGC/WCS

NetCDF, CSV

Services de transformation, de traitement des données

OGC/WPS

any

Pour les contenus non géo-référencés, des standards particuliers :

Contenu

Standard

Description des publications

OAI-PMH, OAI-ORE

Description des personnes

WebID/FOAF

Vocabulaires et terme de référence

W3C / SPARQL, SKOS, OWL, RDF, ...

Des standards communautaires dédiés sont également utilisés pour transmettre certains résultats d'observation ou d'analyse :

Contenu

Standard

Physique et bio-géo-chimie de l'ocean et de l'atmosphère

OPENDAP

Biodiversité

Darwin-Core

Enfin, les applications web dynamiques qui se sont développées depuis les années 2000 sous l’appellation d'AJAX ou web2.0 font un usage intensif de services web appelés RESTful. Ces services implémentent la logique web (des ressources contenant des liens vers d'autres ressources) pour l'accès aux contenus. Le format des contenus est le plus souvent JSON. Ces services web se standardisent également pour l'accès aux informations marines à l'image de SensorThings API proposé par l'OGC.