Bases de données documentaires et distribuées Cours NFE04



Documents pareils
Bases de données documentaires et distribuées Cours NFE04

Bases de données documentaires et distribuées Cours NFE04

Bases de données documentaires et distribuées Cours NFE04

Bases de données documentaires et distribuées Cours NFE04

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

Architectures Web Services RESTful

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Bien architecturer une application REST

Architecture Orientée Service, JSON et API REST

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Programmation Web. Madalina Croitoru IUT Montpellier

Mise en œuvre des serveurs d application

Devenez un véritable développeur web en 3 mois!

Bases de données documentaires et distribuées Cours NFE04

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

Petite définition : Présentation :

L3 informatique TP n o 2 : Les applications réseau

Architectures web/bases de données

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Hébergement de site web Damien Nouvel

4. SERVICES WEB REST 46

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Application Web et J2EE

Applications et Services WEB: Architecture REST

Développement des Systèmes d Information

Intégration du Web 2.0 dans les solutions IBM

(structure des entêtes)

Technologies pour Web Services faciles : REST, JSON

Rédiger : le numérique dans la préparation de la thèse

Sécurité des Web Services (SOAP vs REST)

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Solutions informatiques (SI) Semestre 1

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

UE 8 Systèmes d information de gestion Le programme

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

FICHE DE POSTE. Gestionnaire des données du Portail des savoirs (H/F)

Catalogue des formations Edition 2015

Programmation Web. Introduction

Mobilisez votre Système d Information

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Les services usuels de l Internet

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Interaction entre réseaux sociaux et sites web

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Technologies Web avancées. ING1 SIGL Technologies Web avancées

Tests de montée en charge avec Tsung

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Créer et animer une boutique en ligne avec Wordpress (environnement PC et MAC)

Serveurs de noms Protocoles HTTP et FTP

Créer un site e-commerce avec PrestaShop Cloud Mise en place et suivi du projet

CRM pour le marketing

Par KENFACK Patrick MIF30 19 Mai 2009

les techniques d'extraction, les formulaires et intégration dans un site WEB

Cartographie des solutions BigData

Webmaster / Webdesigner / Wordpress

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Intégration de systèmes

COMMENT OPTIMISER MA VISIBILITÉ SUR LE WEB? AMÉLIORER MON RÉFÉRENCEMENT

Etude et implémentation d un système de travail collaboratif entre le logiciel D-Sight et une plateforme web.

Fiche Technique Windows Azure

Fiche technique Les fonctionnalités selon les versions de Sage CRM. Introduction

Le stockage local de données en HTML5

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

Programmation Internet Cours 4

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Les Architectures Orientées Services (SOA)

Je catalogue, tu FRBRises, il/elle googlise. L évolution des catalogues et les bibliothécaires Vendredi 29 mars 2013 Manufacture des tabacs

.ARCHITECTURE ET FONCTIONNEMENT

Formation Webmaster : Création de site Web Initiation + Approfondissement

SIG Propreté. Mehdi Huguet

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Network Efficiency Monitoring - version 2

Guide d utilisation. Version 1.1

Introduction aux applications réparties

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Drive your success. «Un écosystème complexe implique une capacité de gestion temps réel des aléas»

Dans un contexte économique difficile, comment exploiter tout le potentiel d'un assistant virtuel en ligne? Odile BEURIER & Frédéric DURKA

La fédération d identités, pourquoi et comment? Olivier Salaün, RENATER ANF Mathrice 2014

CalDav Manager : Gestionnaire d emploi du temps

Les technologies du Big Data

Introduction à. Oracle Application Express

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

S8 - INFORMATIQUE COMMERCIALE

GUIDE DE DEMARRAGE V1.02

IBM Tivoli Compliance Insight Manager

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Le Web de Données Dan VODISLAV Université de Cergy-Pontoise Master Informatique M2 Plan

Orchestrer son cloud OpenStack avec Heat

La Geo-Business Intelligence selon GALIGEO avec 26/10/2005 1

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

GKR. Geological Knowledge Representation Base de connaissances métallogéniques

Transcription:

Bases de données documentaires et distribuées Cours NFE04 Web, REST et CouchDB Auteurs : Raphaël Fournier-S niehotta, Philippe Rigaux, Nicolas Travers prénom.nom@cnam.fr Département d informatique Conservatoire National des Arts & Métiers, Paris, France

Parlons du Web et du REST Ce qu il faut savoir (pour nous) Web = immense base de données documentaire! Les notions essentielles. Le Web est constitué de ressources. Une ressource est une entité fournissant des services et communiquant par message. Les ressources sont identifiées et accessibles à des URL. https://www.example.com: 443/chemin/vers/doc?nom=b3d&type=json#fragment Les messages sont codés selon un protocole, HTTP. Très utile (indispensable?) : l outil curl pour parler le HTTP avec la ligne de commande. Un "message" est une enveloppe dont le contenu est un document. Souvent le document est en HTML (affichage). Mais cela peut être un document structuré.

Parlons du Web et du REST L architecture REST REST = une définition de services Web basée sur les standards du Web. on s adresse à des ressources qui fournissent des services ; les messages se font en HTTP, et sont (le plus souvent) structurés en XML ou JSON ; les documents structurés fournis par une ressource sont (le plus souvent) produits à la volée (par calcul : distinction entre service et ressource statique). Très répandu! Excellent moyen de récupérer des informations directement exploitables par une machine (par comme HTML).

Parlons du Web et du REST Ressources et opérations Quatre opérations (celles de HTTP). GET lit (la représentation d )une ressource. PUT crée une nouvelle ressource (ou, plus flexible : la remplace). POST envoie un message (demande de service) à une ressource. DELETE détruit une ressource.

Parlons du Web et du REST Un peu de rigueur Qu est-ce qu un bon (un vrai) service REST? Des ressources clairement organisées et stables. Des services bien conçus (simples, clairs, concis) et stables. Respect de la sémantique des 4 opérations. Notamment : 1 GET : lecture seule, pas d effet de bord (état des ressources inchangé). 2 PUT : création, donc idempotent (plusieurs appels = même effet qu un seul). 3 POST : envoi de message : s adresse à une ressource existante (modification possible de l état des ressources). Ce sont des principes : détails sujets à de longues discussions...

Parlons du Web et du REST Où sont les services REST? Ils sont partout! Beaucoup d applications Web (Twitter, Facebook par exemple) ont une interface HTML et une interface REST. Essayons : quel temps fait-il à Paris aujourd hui? curl -X GET api.openweathermap.org/data/2.5/weather?q=paris Et à Londres? Et ailleurs? Vous essaierez (au moins) les services de géolocalisation de Google. Ou ceux de velib : https ://developer.jcdecaux.com/#/opendata/vls De quoi se constituer au fil du temps une base de documents à analyser.

CouchDB, en bref Un système typiquement NoSQL. gère des documents structurés (JSON) ; pas de schéma, pas de langage d interrogation, entièrement non normalisé. échanges client/serveur basés sur REST ; passe en mode distribué facilement (à vérifier). applique quelques techniques courantes de calcul distribué (MapReduce). Pas le système le plus répandu, mais facile à mettre en œuvre, intéressant à étudier.

Serveurs, bases, documents Souvenez-vous : on s adresse à des ressources

Comment disposer de CouchDB? Le plus simple : demander un serveur à un fournisseur d accès Cloudant (http://cloudant.com) ou IrisCouch (http://iriscouch.com) Gratuit (aux dernières nouvelles) pour une utilisation limitée. Possibilité d utiliser http://nfe204.cloudant.com (compte réservé aux auditeurs du Cnam). Si vous comptez aller plus loin : Suivre la procédure pour votre système (http://couchdb.apache.org) Normalement relativement facile... Lancez le serveur, puis : Dialoguez par l intermédiaire de curl. Complétez en accédant à l interface graphique (suivez le chemin _utils). La suite : démonstration des fonctionnalités REST.

Démonstration (REST) Vérifions que le serveur (ici, machine locale) est prêt à nous parler. $ curl -X GET http://localhost:5984 {"couchdb":"welcome","version":"1.0.1"} Création d une base de données = PUT d une nouvelle ressource. $ curl -X PUT http://localhost:5984/films Récupérons la nouvelle ressource (sa représentation) avec GET. Création d une base de données = PUT d une nouvelle ressource. $ curl -X GET http://localhost:5984/films Création d un document = PUT d une nouvelle ressource dans la base de données. $ curl -X PUT http://localhost:5984/films/doc1 -d {"clef": "valeur"} {"ok":true,"id":"doc1","rev":"1-25eca"} Notez le champ rev. Et bien sûr on peut lire la nouvelle ressource. $ curl -X GET http://localhost:5984/films/doc1

Ajout de documents complets Toujours avec curl : on envoie des messages PUT (à la nouvelle ressource) ou POST (à la base de données). On adresse un PUT à une nouvelle ressource (il faut donc produire l URL). curl -X PUT http://localhost:5984/films/us -d @movie_52.json -H "Content-Type: application/json" On adresse un POST à la base de données. $ curl -X POST http://localhost:5984/films/ -d @movie_52.json \ -H "Content-Type: application/json" Réponse : { "ok":true, "id":"movie:52", "rev":"1-68d58b7e3904f702a75e0538d1c3015d" }

Mise à jour CouchDB est un système multiversions Mettre à jour un document = ajouter une version à une version existante ; $ curl -X PUT http://localhost:5984/films/us -d @newdoc.json -H "Content-Type: image/jpg" {"ok":true,"id":"tsn","rev":"2-26863"} Détruire avec DELETE = ajouter une version marquée "détruite". $ curl -X DELETE http://localhost:5984/films/us?rev=2-26863 {"ok":true,"id":"tsn","rev":"3-48e92b"}

Bilan À retenir : REST = échange de documents sur le Web. Possibilité de constituer à peu de frais une base documentaire. Opérations de type "dictionnaire" : le minimum syndical des bases NoSQL. CouchDB : un système original concrétisant une vision de Web comme un serveur de documents structurés. À vous de jouer : reproduire les commandes CouchDB, trouver et interroger des services REST en JSON ou XML.