Architecture Orientée Service, JSON et API REST

Documents pareils
4. SERVICES WEB REST 46

Les Architectures Orientées Services (SOA)

Architectures Web Services RESTful

Applications et Services WEB: Architecture REST

Web Tier : déploiement de servlets

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.

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

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

Mise en œuvre des serveurs d application

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

Petite définition : Présentation :

Programmation Web. Madalina Croitoru IUT Montpellier

Compte Rendu d intégration d application

Technologies pour Web Services faciles : REST, JSON

Bien architecturer une application REST

Développement des Systèmes d Information

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

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

Architectures d'intégration de données

Business Process Execution Language

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

2 Chapitre 1 Introduction

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

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Formation en Logiciels Libres. Fiche d inscription

Application Web et J2EE

Hébergement de site web Damien Nouvel

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

Architecture SOA Un Système d'information agile au service des entreprises et administrations

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Urbanisation des Systèmes d'information

SÉCURITÉ POUR LES ENTREPRISES UN MONDE NUAGEUX ET MOBILE. Sophia-Antipolis 01/07/2013 Cyril Grosjean

Editeurs de logiciels. Votre guide SMS

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Cours Bases de données

RMI le langage Java XII-1 JMF

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Le stockage local de données en HTML5

Module BD et sites WEB

Introduction aux. services web 2 / 2

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Problématiques de recherche. Figure Research Agenda for service-oriented computing

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

Intégration du Web 2.0 dans les solutions IBM

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Le cadre des Web Services Partie 1 : Introduction

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

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

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

Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET

Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Programmation Web. Introduction

Programmation Objet Java Correction

Remote Method Invocation (RMI)

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

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)

Les architectures 3-tiers Partie I : les applications WEB

ABB personnalise son service client avec la plate-forme en ligne One ABB on the Web Jan Anders Solvik, Håkan Wärdell, Nathan Becker

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques

Hébergement de sites Web

RTDS G3. Emmanuel Gaudin

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

1. Installation d'un serveur d'application JBoss:

Alfstore workflow framework Spécification technique

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Intergiciel - concepts de base

Introduction à la plateforme J2EE

Documentation CAS à destination des éditeurs

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

BASE DE DONNÉES XML NATIVE

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Cahier des charges. Liny EIP 2013 EPITECH. seban_j, jaspar_y, ringue_t, rousse_g, thierr_o

Aspects techniques : guide d interfaçage SSO

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

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Environnements de Développement

Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus

Paris Airports - Web API Airports Path finding

CORBA. (Common Request Broker Architecture)

La dernière base de données de Teradata franchit le cap du big data grâce à sa technologie avancée

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Urbanisme du Système d Information et EAI

Cloud et SOA La présence du Cloud révolutionne-t-elle l approche SOA?

JavaServer Pages (JSP)

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

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

Transcription:

UPMC 3 février 2015

Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API - SOAP (un peu)

Paradigmes de programmation Différents paradigmes : Procédures Programmation Orientée Objet Programmation Orientée Composants Programmation Orientée Service

Paradigmes de programmation Différents paradigmes : Procédures (source wikipedia) La programmation procédurale est un paradigme de programmation basé sur le concept d appel procédural. Une procédure contient simplement une série d étapes à réaliser. N importe quelle procédure peut être appelée à n importe quelle étape de l exécution du programme. Programmation Orientée Objet Programmation Orientée Composants Programmation Orientée Service

Paradigmes de programmation Différents paradigmes : Procédures Programmation Orientée Objet (source wikipedia) Un objet représente un concept, une idée ou toute entité du monde physique. Il possède une structure interne et un comportement, et il sait communiquer avec ses pairs. Il s agit donc de représenter ces objets et leurs relations ; la communication entre les objets via leurs relations permet de réaliser les fonctionnalités attendues, de résoudre le ou les problèmes. Programmation Orientée Composants Programmation Orientée Service

Paradigmes de programmation Différents paradigmes : Procédures Programmation Orientée Objet Programmation Orientée Composants (source wikipedia) La programmation orientée composant (POC) consiste à utiliser une approche modulaire au niveau de l architecture d un projet informatique, ce qui permet d assurer au logiciel une meilleure lisibilité et une meilleure maintenance. Les développeurs, au lieu de créer un exécutable monolithique, se servent de briques réutilisables. Programmation Orientée Service

Architecture orientée Service Une architecture orientée services (notée SOA pour Services Oriented Architecture) est une architecture logicielle s appuyant sur un ensemble de services simples. Elle permet de décomposer une fonctionnalité en un ensemble de fonctions basiques, appelées services, fournies par des composants et de décrire finement le schéma d interaction entre ces services. Lorsque l architecture SOA s appuie sur des web services, on parle alors de WSOA, pour Web Services Oriented Architecture.

Avantages des WS Les services Web fournissent l interopérabilité entre divers logiciels fonctionnant sur diverses plates-formes. Les services Web utilisent des standards et protocoles ouverts. Les protocoles et les formats de données sont au format texte dans la mesure du possible, facilitant ainsi la compréhension du fonctionnement global des échanges. Basés sur le protocole HTTP, les services Web peuvent fonctionner au travers de nombreux pare-feu sans nécessiter des changements sur les règles de filtrage. Les outils de développement, s appuyant sur ces standards, permettent la création automatique de programmes utilisant les services Web existants.

Inconvénients des WS Les normes de services Web dans certains domaines sont actuellement récentes. Les services Web souffrent de performances faibles comparée à d autres approches de l informatique répartie telles que le RMI, CORBA, ou DCOM.[réf. nécessaire] Par l utilisation du protocole HTTP, les services Web peuvent contourner les mesures de sécurité mises en place au travers des pare-feu.

Les Web Services

API REST (Wikipedia) REST REST = REpresentational State Transfer C est une manière de construire une application pour les systèmes distribués REST n est pas un protocole ou un format, c est un style d architecture Il est de plus en plus utilisé pour la réalisation d architectures orientées services utilisant des services Web destinés à la communication entre machines.

API REST Principes l URI est important : connaître l URI doit suffire pour nommer et identifier une ressource. HTTP fournit toutes les opérations nécessaires (GET, POST, PUT et DELETE, essentiellement). Chaque opération est auto-suffisante : il n y a pas d état. Utilisation des standards hypermedia : HTML ou XML ou JSON Référence : RESTful Web Services, par Leonard Richardson et Sam Ruby

API REST : Exemple Twitter

API REST : Exemple Flickr

API REST : Exemple Flickr

API REST : Exemple Flickr

API REST : Exemple Flickr

API REST : Principes Principes Généraux Les paramètres sont passé (à travers HTTP) en utilisant le protocole GET (le plus souvent) La réponse est un document sous forme JSON ou XML Avantages Simplicité Lisibilité par l humain Evolutivité Repose sur les principes du Web Représentations multiples

Avantages Simplicité Lisibilité par l humain Evolutivité Repose sur les principes du Web Représentations multiples Inconvénients Sécurité restreinte par l emploi de HTTP Cible uniquement l appel de ressources Architecture orientée ressources (ROA) ou Architecture orientée données (DOA)

REST vs SOAP Les Services Web étendus (SOAP) et les Services Web REST sont différents par le fait que : Services Web étendus (SOAP) Avantages Standardisé Interopérabilité Sécurité (WS-Security) Outillé Inconvénients Performances (enveloppe SOAP supplémentaire) Complexité, lourdeur Cible l appel de service

JSON JavaScript Object Notation Initialement créé pour la sérialisation et l échange d objets JavaScript Langage pour l échange de données semi-structurées (et éventuellement structurées) Format texte indépendant du language de programmation utilisé pour le manipuler. Assez proche du XML, mais moins c**** embêtant

JSON Un document JSON ne comprend que deux éléments structurels : des ensembles de paires nom / valeur ; des listes ordonnées de valeurs. Ces mêmes éléments représentent 3 types de données : des objets ; des tableaux ; des valeurs génériques de type tableau, objet, booléen, nombre, chaine ou null.

JSON

JSON

JSON

JSON et JAVA Nous allons utiliser la librairie JSONObject de JAVA. Un JSONObject est une collection non-ordonnée de paires nom/valeur La méthode put permet d ajouter une paire à l objet Le texte de la méthode tostring est conforme à la spécification JSON 1 mystring = new JSONObject (). put ("JSON ", "Hello, World!"). tostring (); 2 // mystring is {" JSON ": "Hello, World "}

TOMCAT et REST 1 2 public class Example extends HttpServlet 3 { 4... 5 6 protected void doget ( HttpServletRequest request, HttpServletResponse response ) throws Se 7 { 8 response. setcontenttype ("text / plain "); 9 String prenom = request. getparameter (" prenom "); 10 if ( prenom == null ) 11 { 12 JSONObject json=new JSONObject (); 13 try { 14 json.put (" error "," Missing parameter "); 15 } catch ( JSONException e) { 16 e. printstacktrace (); 17 } 18 response. getwriter (). println (json. tostring ()); 19 } 20 else 21 { 22 JSONObject json=new JSONObject (); 23 try { 24 json. put (" output ","OK"); 25 } catch ( JSONException e) { 26 // TODO Auto - generated catch block 27 e. printstacktrace (); 28 } 29 response. getwriter (). println (json. tostring ()); 30 } 31 } 32 }

Conclusion Conclusion Vous connaissez : TOMCAT REST TD / TP Specifier les services à développer Mettre en place l architecture des services (en attendant l accès au BDs) Prochain Cours : SQL et JDBC

Quelques mots sur le projet Vous devez tenir à jour un fichier spécifiant les services développés (à développer) Les rappels de cours seront évalués lors des TDs Vous devez séparer les traitements des servlets et tester vos traitements avant de déployer les servlets. Une (grosse) erreur dans vos servlet risque de faire planter tout le serveur et donc tous les servlets de vos camarades Les binomes de travail devront être fixés définitivement lors du prochain TD