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 :
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.
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 |
||
|
OGC/WFS |
GML |
|
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 |
||
|
OGC/SOS |
NetCDF, CSV |
|
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.