SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
Restlet Framework et Google App Engine
17 janvier 2012
INTERVENANT
     Noelios Technologies
     •Editeur de logiciel
              – création en 2008
     •R&D
              – open source (Restlet)
              – collaboratif (Cap Digital)
     •Services
              – conseil
              – co-développement
              – support technique

     Thierry Templier
              – Architecte R&D chez Noelios Technologies
              – Co-auteur « Spring par la pratique » et
                « JavaScript pour le Web 2.0 »
              – Co-auteur « Spring DM in action » et
                « Spring Batch in action »
              – Co-auteur « Restlet in action »

 Copyright Noelios Technologies – Tous droits réservés
AGENDA
Introduction: Restlet et le multiplateforme
–   Restlet : fonctionnements, extensions,...
–   Ouverture au cloud

Restlet et GAE
–   Développer une application Restlet pour GAE
–   Prise en charge des restrictions de GAE
–   SDC

Perspectives: Restlet et les APIs web
–   Marché des APIs web
–   Livre « Restlet in Action »
–   Lancement d’APISpark
                  Copyright Noelios Technologies – Tous droits réservés
Partie 1/3
INTRODUCTION: RESTLET ET LE
MULTIPLATEFORME
RESTLET FRAMEWORK
• Premier framework REST pour Java
  –   Lancement en 2005
  –   Large communauté
  –   Innovation constante
  –   http://www.restlet.org

• Fonctionnalités principales
  – Couverture complète de HTTP et REST
  – API Java à la fois cliente et serveur
  – Routage intégré (basé sur les URIs, virtual hosts, etc.)
  – Sécurité intégrée (authentification, autorisation,
    confidentialité)
  – Serveur web complet (fichiers statiques, conneg)
  – 36 extensions (Atom, EMF, JSON, OData, JAAS, OAuth,
    etc.)

                    Copyright Noelios Technologies – Tous droits réservés
RÉFÉRENCES




 Copyright Noelios Technologies – Tous droits réservés
STRUCTURE D’UN PROJET
      RESTLET

                         Projets utilisateurs




    API Restlet                                         Restlet Extensions
                                                         Restlet Extensions
                                                           Extension Restlet




                            Moteur Restlet




             Copyright Noelios Technologies – Tous droits réservés
FILTRAGE ET ROUTAGE

             A

         B

             C
                                                                Next Restlet
                                      Filter




                                                                         Route 1   A



     A
                                                                                   B
 B                                                                       Route 2
                                                                                   C
     C


                          Router
                                                                         Route 3



                 Copyright Noelios Technologies – Tous droits réservés
INTERFACES ANNOTÉES
                         REST API




     Client                                       Server
     proxy                                       subclass



                         Annotated
                        Java interface




      Client                                      Server
    resource                                     resource
                            HTTP




       Copyright Noelios Technologies – Tous droits réservés
SERVICE DE CONVERSION
   Atom



 Form Data



  HTML                                                                 Resource


             Converter                    Representation
   XML                                        bean                      State
              service


   JSON



   RDF



    …




               Copyright Noelios Technologies – Tous droits réservés
EDITIONS DE RESTLET
    FRAMEWORK




     Copyright Noelios Technologies – Tous droits réservés
PORTAGE SEMI-
AUTOMATIQUE




  Copyright Noelios Technologies – Tous droits réservés
PERSONNALISATION DU
        CODE SOURCE
• Inclusion ou exclusion

  – par fichier via extensions spéciales
  – au niveau d’une méthode
  – au niveau d’un bloc de code




                   Copyright Noelios Technologies – Tous droits réservés
OUVERTURE AU CLOUD
  CÔTÉ SERVEUR ET CLIENT




     Copyright Noelios Technologies – Tous droits réservés
Partie 2/3
RESTLET ET GAE
GOOGLE APP ENGINE
• Description
  – Plateforme Cloud de Google
  – Développement et hébergement d'applications Web
    dans les systèmes de Google
  – PAAS : Plateform As A Service
  – Java et Python supportés

• Caractéristiques
  –   Hardware et scalabité gérés de manière transparente
  –   BigTable pour les données
  –   Console d'administration
  –   SDK GAE
                 Copyright Noelios Technologies – Tous droits réservés
APPLICATION RESTLET
• Caractéristiques
  – Utilisation de l'édition GAE de Restlet
  – Utilisation de l'extension Servlet
    (org.restlet.ext.servlet)
  – Mécanismes classiques de Restlet sont supportés
  – Utilisation de l'extension GAE si nécessaire
    (org.restlet.ext.gae >2.1)

• Packaging et déploiement
  – Packaging classique des applications GAE (WAR)
  – Ajout d'un fichier appengine-web.xml
  – Déploiement via la console ou le SDK GAE
                Copyright Noelios Technologies – Tous droits réservés
EXTENSION SERVLET




    Copyright Noelios Technologies – Tous droits réservés
APPLICATION RESTLET (1/6)
• Caractéristiques
  – Utilisation de l'édition GAE de Restlet
  – Utilisation de l'extension Servlet
    (org.restlet.ext.servlet)
  – Mécanismes classiques de Restlet sont supportés
  – Utilisation de l'extension Net (org.restlet.ext.net) pour
    les appels HTTP

• Packaging et déploiement
  – Packaging classique des applications GAE (WAR)
  – Ajout d'un fichier appengine-web.xml
  – Déploiement via la console ou le SDK GAE
                 Copyright Noelios Technologies – Tous droits réservés
APPLICATION RESTLET (2/6)
• Modèle




           Copyright Noelios Technologies – Tous droits réservés
APPLICATION RESTLET (3/6)
• ServerResource
 - Sélection des méthodes de traitement via annotations
 - Conversion automatique en bean




                Copyright Noelios Technologies – Tous droits réservés
APPLICATION RESTLET (4/6)
• Application Restlet




              Copyright Noelios Technologies – Tous droits réservés
APPLICATION RESTLET (5/6)
• web.xml




            Copyright Noelios Technologies – Tous droits réservés
APPLICATION RESTLET (6/6)
• appengine-web.xml




            Copyright Noelios Technologies – Tous droits réservés
CLIENT RESTLET
• Utilisation des classes Client ou
  ClientResource




              Copyright Noelios Technologies – Tous droits réservés
LIMITATIONS (1/2)
• Chunk encoding pour les requêtes

  – Envoi de données par lots dans une même connexion
    HTTP
  – Pas de connaissance de la taille des données avant
    envoi
  – Non supporté par GAE


• Solution dans Restlet

  – Désactiver le chuck encoding lors des appels
    (setRequestEntityBuffering > 2.1)
  – Pré calcul de la taille des données à envoyer
  – Disponible pour tous les environnements
                Copyright Noelios Technologies – Tous droits réservés
LIMITATIONS (2/2)
• API restreintes dans GAE
  – Utilisation des threads
  – Fichiers locaux
  – Sockets

• Solution dans Restlet
  – Adaptation du code source pour utiliser les services
    GAE
  – Worker / Task runner
  – Service Storage
  – URL Fetch pour les appels client (URLConnection)


                 Copyright Noelios Technologies – Tous droits réservés
SECURITY AVEC GAE
• Possibilité d'utiliser Google Accounts
  – Extension GAE (org.restlet.ext.gae)
  – A partir de la version 2.1
  – Authentification et autorisation

• Exemple




                Copyright Noelios Technologies – Tous droits réservés
GOOGLE SDC
                SDC : Googe Secure Data
                Connector

          • Protocole SDC
                   –    tunnel SSL multiplexé
                   –    basé sur Google Prot.Buffer
                   –    tunnels HTTP et socket
                   –    lecture et écriture

          • Agent SDC
                   – installé dans l’intranet
                   – open source (Apache License)
 Copyright Noelios Technologies – Tous droits réservés
RESTLET SDC (1/3)




   Copyright Noelios Technologies – Tous droits réservés
RESTLET SDC (2/3)
• Mise en place du Tunnel Server dans Restlet
 - JAR de l'extension SDC dans le classpath
 (org.restlet.ext.sdc)
 - Configuration et démarrage du connecteur via la classe
 Client de Restlet




                Copyright Noelios Technologies – Tous droits réservés
RESTLET SDC (3/3)
• Exécution de requêtes vers l'intranet via
  Restlet:




• Dans le contexte d'applications GAE:
  - Entête use-intranet automatiquement positionnée (>
  2.1 M4)
  - Pas d'authentification nécessaire

                 Copyright Noelios Technologies – Tous droits réservés
Partie 3/3
PERSPECTIVES: RESTLET ET LES APIS
  WEB
ROADMAP RESTLET
• Version 2.1 (Mars 2012)
   – Connecteur HTTP/NIO interne : alternative à Jetty
   – Support de SIP unifié : alternative à SIPServlets
   – Support d’OAuth et OpenID 2.0 : contribution Ericsson
     Labs
   – Connecteur SDC (Secure Data Connector)
   – Extension EMF : conversion automatique XML/XMI
   – Formulaires web multi-part client

• Version 2.2 (Octobre 2012)
   –   Optimisation de taille (Android et GWT)
   –   Support du protocole SPDY
   –   Migration GitHub, StackOverflow, Google Groups
   –   Nouveau tutoriel
   –   etc.

                    Copyright Noelios Technologies – Tous droits réservés
VERSION JAVASCRIPT
• Portage de Restlet en JavaScript
   – Même mécanisme que pour le framework Java
   – Edition pour les navigateurs Web
   – Edition pour Node.js

• Développement en cours

   – Source disponible sur GitHub
     (https://github.com/restlet/restlet-framework-js)
   – Première version partie cliente (février 2012)
   – Première version partie serveur (mai 2012)




                    Copyright Noelios Technologies – Tous droits réservés
PITCH
• Aujourd’hui tout le monde possède son site
  web et l’on ne débat plus que sur la meilleure
  façon de les développer.


• Demain, tout le monde aura son API web, de
  préférence RESTful et les sites web
  s’appuieront directement sur des APIs web.




               Copyright Noelios Technologies – Tous droits réservés
ECOSYSTÈME
                                                                Développeurs
                                                              utilisateurs d’APIs
                                                                                                             W       API web


Interopérabilité
   maximale
                   ANDROID                         FACEBOOK                         SITE WEB               MASH UP
                                                                                                            WEB OS




                                                                       W APIs web

Ouverture du SI
par les APIs web                 Développeurs              DonnéesServices                 Gestionnaires
                                créateurs d’APIs                                              d’APIs




 Hébergement        CLOUD                          CLOUD                            CLOUD                  CLOUD



  adaptable        Amazon
                    EC2
                                                  Google
                                                 App Engine
                                                                                Windows
                                                                                 Azure
                                                                                                           Cloud
                                                                                                           privé




                             Copyright Noelios Technologies – Tous droits réservés
QUELQUES CHIFFRES




    Copyright Noelios Technologies – Tous droits réservés
CAS D’USAGES
Application mobiles connectées
– natives ou HTML 5

Cloud computing
– IaaS/PaaS (AWS, GAE, Azure)
– SaaS (Basecamp, SalesForce, Google Apps)

Objets communicants
– Personnels (Karotz, pèse personnes)
– Professionnels (M2M, RFID, GPS, 3G, géoloc.)

E-marketing
– Places de marchés, comparateurs de prix, affiliation
  (Amazon, eBay, Kelkoo)

                Copyright Noelios Technologies – Tous droits réservés
INTÉRÊT POUR UN
       DÉVELOPPEUR JAVA
• Apprendre REST et HTTP est un
  investissement sur le long terme
  – nécessite du temps, comme l’orienté objet
  – premiers bénéfices faciles à obtenir
  – rester pragmatique

• Nombreuses opportunités avec les APIs web
  – exposition d’APIs
  – consommation d’APIs
  – mashups d’APIs

• Restlet Framework offre
  – une boîte à outil multiplateforme, complète et éprouvée
  – qui peut vous accompagner tout au long de ce chemin
                  Copyright Noelios Technologies – Tous droits réservés
POUR ALLER PLUS LOIN…
• Livre « Restlet in Action »
  – Publication début 2012
  – Restlet, REST, ROA/D, cloud
  – Version « early access » dispo.


• Lancement « API Spark »
  – Plate-forme cloud pour APIs web
  – basée sur Restlet Framework
  – inscription beta privée:
    http://apispark.com


                  Copyright Noelios Technologies – Tous droits réservés

Contenu connexe

Similaire à Nantes GTUG - Restlet & AppEngine

Web APIs in Action (in French)
Web APIs in Action (in French)Web APIs in Action (in French)
Web APIs in Action (in French)Restlet
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)Restlet
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiAZUG FR
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiSamir Arezki ☁
 
Seminaire Portail Open Source
Seminaire Portail Open SourceSeminaire Portail Open Source
Seminaire Portail Open SourceIppon
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented ArchitectureDNG Consulting
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EESabri Bouchlema
 
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système JavaLes ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système JavaDocDoku
 
BreizhCamp 2022
BreizhCamp 2022BreizhCamp 2022
BreizhCamp 2022SpikeeLabs
 
Tendances Futures du Web - GTI780 & MTI780 - ETS - A09
Tendances Futures du Web - GTI780 & MTI780 - ETS - A09Tendances Futures du Web - GTI780 & MTI780 - ETS - A09
Tendances Futures du Web - GTI780 & MTI780 - ETS - A09Claude Coulombe
 
GlassFish ESB Ch'ti JUG
GlassFish ESB Ch'ti JUGGlassFish ESB Ch'ti JUG
GlassFish ESB Ch'ti JUGCh'ti JUG
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeMicrosoft
 
CV Saddam ZEMMALI Professionel Fr
CV Saddam ZEMMALI Professionel FrCV Saddam ZEMMALI Professionel Fr
CV Saddam ZEMMALI Professionel FrSaddam ZEMMALI ☁
 
resume-theorique-m107-2203-6246f60d6b994.pdf
resume-theorique-m107-2203-6246f60d6b994.pdfresume-theorique-m107-2203-6246f60d6b994.pdf
resume-theorique-m107-2203-6246f60d6b994.pdfFootballLovers9
 
defuzeme_documentation_technique.pdf
defuzeme_documentation_technique.pdfdefuzeme_documentation_technique.pdf
defuzeme_documentation_technique.pdfSami Asmar
 
Soirée SOA - 2010-06-15 - Présentation de l'ESB Petals
Soirée SOA - 2010-06-15 - Présentation de l'ESB PetalsSoirée SOA - 2010-06-15 - Présentation de l'ESB Petals
Soirée SOA - 2010-06-15 - Présentation de l'ESB PetalsNormandy JUG
 

Similaire à Nantes GTUG - Restlet & AppEngine (20)

Web APIs in Action (in French)
Web APIs in Action (in French)Web APIs in Action (in French)
Web APIs in Action (in French)
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
 
Seminaire Portail Open Source
Seminaire Portail Open SourceSeminaire Portail Open Source
Seminaire Portail Open Source
 
Objectif fluid<fab />
Objectif fluid<fab />Objectif fluid<fab />
Objectif fluid<fab />
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented Architecture
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server Internals
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système JavaLes ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
 
BreizhCamp 2022
BreizhCamp 2022BreizhCamp 2022
BreizhCamp 2022
 
Tendances Futures du Web - GTI780 & MTI780 - ETS - A09
Tendances Futures du Web - GTI780 & MTI780 - ETS - A09Tendances Futures du Web - GTI780 & MTI780 - ETS - A09
Tendances Futures du Web - GTI780 & MTI780 - ETS - A09
 
GlassFish ESB Ch'ti JUG
GlassFish ESB Ch'ti JUGGlassFish ESB Ch'ti JUG
GlassFish ESB Ch'ti JUG
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicative
 
CV Saddam ZEMMALI Professionel Fr
CV Saddam ZEMMALI Professionel FrCV Saddam ZEMMALI Professionel Fr
CV Saddam ZEMMALI Professionel Fr
 
Gdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetesGdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetes
 
Retour d'expérience Minio
Retour d'expérience MinioRetour d'expérience Minio
Retour d'expérience Minio
 
resume-theorique-m107-2203-6246f60d6b994.pdf
resume-theorique-m107-2203-6246f60d6b994.pdfresume-theorique-m107-2203-6246f60d6b994.pdf
resume-theorique-m107-2203-6246f60d6b994.pdf
 
defuzeme_documentation_technique.pdf
defuzeme_documentation_technique.pdfdefuzeme_documentation_technique.pdf
defuzeme_documentation_technique.pdf
 
Soirée SOA - 2010-06-15 - Présentation de l'ESB Petals
Soirée SOA - 2010-06-15 - Présentation de l'ESB PetalsSoirée SOA - 2010-06-15 - Présentation de l'ESB Petals
Soirée SOA - 2010-06-15 - Présentation de l'ESB Petals
 

Plus de GDG Nantes

Google Analytics 22/05/2012
Google Analytics 22/05/2012Google Analytics 22/05/2012
Google Analytics 22/05/2012GDG Nantes
 
20120402 nantes gtug - app engine
20120402   nantes gtug - app engine20120402   nantes gtug - app engine
20120402 nantes gtug - app engineGDG Nantes
 
Gtug nantes big table et nosql
Gtug nantes   big table et nosqlGtug nantes   big table et nosql
Gtug nantes big table et nosqlGDG Nantes
 
20-06 Google Apps dans l'entreprise
20-06 Google Apps dans l'entreprise20-06 Google Apps dans l'entreprise
20-06 Google Apps dans l'entrepriseGDG Nantes
 
Android Optimisations Greendroid
Android Optimisations GreendroidAndroid Optimisations Greendroid
Android Optimisations GreendroidGDG Nantes
 

Plus de GDG Nantes (6)

Google Analytics 22/05/2012
Google Analytics 22/05/2012Google Analytics 22/05/2012
Google Analytics 22/05/2012
 
20120402 nantes gtug - app engine
20120402   nantes gtug - app engine20120402   nantes gtug - app engine
20120402 nantes gtug - app engine
 
Gtug nantes big table et nosql
Gtug nantes   big table et nosqlGtug nantes   big table et nosql
Gtug nantes big table et nosql
 
20-06 Google Apps dans l'entreprise
20-06 Google Apps dans l'entreprise20-06 Google Apps dans l'entreprise
20-06 Google Apps dans l'entreprise
 
Guava & EMF
Guava & EMFGuava & EMF
Guava & EMF
 
Android Optimisations Greendroid
Android Optimisations GreendroidAndroid Optimisations Greendroid
Android Optimisations Greendroid
 

Nantes GTUG - Restlet & AppEngine

  • 1. Restlet Framework et Google App Engine 17 janvier 2012
  • 2. INTERVENANT Noelios Technologies •Editeur de logiciel – création en 2008 •R&D – open source (Restlet) – collaboratif (Cap Digital) •Services – conseil – co-développement – support technique Thierry Templier – Architecte R&D chez Noelios Technologies – Co-auteur « Spring par la pratique » et « JavaScript pour le Web 2.0 » – Co-auteur « Spring DM in action » et « Spring Batch in action » – Co-auteur « Restlet in action » Copyright Noelios Technologies – Tous droits réservés
  • 3. AGENDA Introduction: Restlet et le multiplateforme – Restlet : fonctionnements, extensions,... – Ouverture au cloud Restlet et GAE – Développer une application Restlet pour GAE – Prise en charge des restrictions de GAE – SDC Perspectives: Restlet et les APIs web – Marché des APIs web – Livre « Restlet in Action » – Lancement d’APISpark Copyright Noelios Technologies – Tous droits réservés
  • 4. Partie 1/3 INTRODUCTION: RESTLET ET LE MULTIPLATEFORME
  • 5. RESTLET FRAMEWORK • Premier framework REST pour Java – Lancement en 2005 – Large communauté – Innovation constante – http://www.restlet.org • Fonctionnalités principales – Couverture complète de HTTP et REST – API Java à la fois cliente et serveur – Routage intégré (basé sur les URIs, virtual hosts, etc.) – Sécurité intégrée (authentification, autorisation, confidentialité) – Serveur web complet (fichiers statiques, conneg) – 36 extensions (Atom, EMF, JSON, OData, JAAS, OAuth, etc.) Copyright Noelios Technologies – Tous droits réservés
  • 6. RÉFÉRENCES Copyright Noelios Technologies – Tous droits réservés
  • 7. STRUCTURE D’UN PROJET RESTLET Projets utilisateurs API Restlet Restlet Extensions Restlet Extensions Extension Restlet Moteur Restlet Copyright Noelios Technologies – Tous droits réservés
  • 8. FILTRAGE ET ROUTAGE A B C Next Restlet Filter Route 1 A A B B Route 2 C C Router Route 3 Copyright Noelios Technologies – Tous droits réservés
  • 9. INTERFACES ANNOTÉES REST API Client Server proxy subclass Annotated Java interface Client Server resource resource HTTP Copyright Noelios Technologies – Tous droits réservés
  • 10. SERVICE DE CONVERSION Atom Form Data HTML Resource Converter Representation XML bean State service JSON RDF … Copyright Noelios Technologies – Tous droits réservés
  • 11. EDITIONS DE RESTLET FRAMEWORK Copyright Noelios Technologies – Tous droits réservés
  • 12. PORTAGE SEMI- AUTOMATIQUE Copyright Noelios Technologies – Tous droits réservés
  • 13. PERSONNALISATION DU CODE SOURCE • Inclusion ou exclusion – par fichier via extensions spéciales – au niveau d’une méthode – au niveau d’un bloc de code Copyright Noelios Technologies – Tous droits réservés
  • 14. OUVERTURE AU CLOUD CÔTÉ SERVEUR ET CLIENT Copyright Noelios Technologies – Tous droits réservés
  • 16. GOOGLE APP ENGINE • Description – Plateforme Cloud de Google – Développement et hébergement d'applications Web dans les systèmes de Google – PAAS : Plateform As A Service – Java et Python supportés • Caractéristiques – Hardware et scalabité gérés de manière transparente – BigTable pour les données – Console d'administration – SDK GAE Copyright Noelios Technologies – Tous droits réservés
  • 17. APPLICATION RESTLET • Caractéristiques – Utilisation de l'édition GAE de Restlet – Utilisation de l'extension Servlet (org.restlet.ext.servlet) – Mécanismes classiques de Restlet sont supportés – Utilisation de l'extension GAE si nécessaire (org.restlet.ext.gae >2.1) • Packaging et déploiement – Packaging classique des applications GAE (WAR) – Ajout d'un fichier appengine-web.xml – Déploiement via la console ou le SDK GAE Copyright Noelios Technologies – Tous droits réservés
  • 18. EXTENSION SERVLET Copyright Noelios Technologies – Tous droits réservés
  • 19. APPLICATION RESTLET (1/6) • Caractéristiques – Utilisation de l'édition GAE de Restlet – Utilisation de l'extension Servlet (org.restlet.ext.servlet) – Mécanismes classiques de Restlet sont supportés – Utilisation de l'extension Net (org.restlet.ext.net) pour les appels HTTP • Packaging et déploiement – Packaging classique des applications GAE (WAR) – Ajout d'un fichier appengine-web.xml – Déploiement via la console ou le SDK GAE Copyright Noelios Technologies – Tous droits réservés
  • 20. APPLICATION RESTLET (2/6) • Modèle Copyright Noelios Technologies – Tous droits réservés
  • 21. APPLICATION RESTLET (3/6) • ServerResource - Sélection des méthodes de traitement via annotations - Conversion automatique en bean Copyright Noelios Technologies – Tous droits réservés
  • 22. APPLICATION RESTLET (4/6) • Application Restlet Copyright Noelios Technologies – Tous droits réservés
  • 23. APPLICATION RESTLET (5/6) • web.xml Copyright Noelios Technologies – Tous droits réservés
  • 24. APPLICATION RESTLET (6/6) • appengine-web.xml Copyright Noelios Technologies – Tous droits réservés
  • 25. CLIENT RESTLET • Utilisation des classes Client ou ClientResource Copyright Noelios Technologies – Tous droits réservés
  • 26. LIMITATIONS (1/2) • Chunk encoding pour les requêtes – Envoi de données par lots dans une même connexion HTTP – Pas de connaissance de la taille des données avant envoi – Non supporté par GAE • Solution dans Restlet – Désactiver le chuck encoding lors des appels (setRequestEntityBuffering > 2.1) – Pré calcul de la taille des données à envoyer – Disponible pour tous les environnements Copyright Noelios Technologies – Tous droits réservés
  • 27. LIMITATIONS (2/2) • API restreintes dans GAE – Utilisation des threads – Fichiers locaux – Sockets • Solution dans Restlet – Adaptation du code source pour utiliser les services GAE – Worker / Task runner – Service Storage – URL Fetch pour les appels client (URLConnection) Copyright Noelios Technologies – Tous droits réservés
  • 28. SECURITY AVEC GAE • Possibilité d'utiliser Google Accounts – Extension GAE (org.restlet.ext.gae) – A partir de la version 2.1 – Authentification et autorisation • Exemple Copyright Noelios Technologies – Tous droits réservés
  • 29. GOOGLE SDC SDC : Googe Secure Data Connector • Protocole SDC – tunnel SSL multiplexé – basé sur Google Prot.Buffer – tunnels HTTP et socket – lecture et écriture • Agent SDC – installé dans l’intranet – open source (Apache License) Copyright Noelios Technologies – Tous droits réservés
  • 30. RESTLET SDC (1/3) Copyright Noelios Technologies – Tous droits réservés
  • 31. RESTLET SDC (2/3) • Mise en place du Tunnel Server dans Restlet - JAR de l'extension SDC dans le classpath (org.restlet.ext.sdc) - Configuration et démarrage du connecteur via la classe Client de Restlet Copyright Noelios Technologies – Tous droits réservés
  • 32. RESTLET SDC (3/3) • Exécution de requêtes vers l'intranet via Restlet: • Dans le contexte d'applications GAE: - Entête use-intranet automatiquement positionnée (> 2.1 M4) - Pas d'authentification nécessaire Copyright Noelios Technologies – Tous droits réservés
  • 34. ROADMAP RESTLET • Version 2.1 (Mars 2012) – Connecteur HTTP/NIO interne : alternative à Jetty – Support de SIP unifié : alternative à SIPServlets – Support d’OAuth et OpenID 2.0 : contribution Ericsson Labs – Connecteur SDC (Secure Data Connector) – Extension EMF : conversion automatique XML/XMI – Formulaires web multi-part client • Version 2.2 (Octobre 2012) – Optimisation de taille (Android et GWT) – Support du protocole SPDY – Migration GitHub, StackOverflow, Google Groups – Nouveau tutoriel – etc. Copyright Noelios Technologies – Tous droits réservés
  • 35. VERSION JAVASCRIPT • Portage de Restlet en JavaScript – Même mécanisme que pour le framework Java – Edition pour les navigateurs Web – Edition pour Node.js • Développement en cours – Source disponible sur GitHub (https://github.com/restlet/restlet-framework-js) – Première version partie cliente (février 2012) – Première version partie serveur (mai 2012) Copyright Noelios Technologies – Tous droits réservés
  • 36. PITCH • Aujourd’hui tout le monde possède son site web et l’on ne débat plus que sur la meilleure façon de les développer. • Demain, tout le monde aura son API web, de préférence RESTful et les sites web s’appuieront directement sur des APIs web. Copyright Noelios Technologies – Tous droits réservés
  • 37. ECOSYSTÈME Développeurs utilisateurs d’APIs W API web Interopérabilité maximale ANDROID FACEBOOK SITE WEB MASH UP WEB OS W APIs web Ouverture du SI par les APIs web Développeurs DonnéesServices Gestionnaires créateurs d’APIs d’APIs Hébergement CLOUD CLOUD CLOUD CLOUD adaptable Amazon EC2 Google App Engine Windows Azure Cloud privé Copyright Noelios Technologies – Tous droits réservés
  • 38. QUELQUES CHIFFRES Copyright Noelios Technologies – Tous droits réservés
  • 39. CAS D’USAGES Application mobiles connectées – natives ou HTML 5 Cloud computing – IaaS/PaaS (AWS, GAE, Azure) – SaaS (Basecamp, SalesForce, Google Apps) Objets communicants – Personnels (Karotz, pèse personnes) – Professionnels (M2M, RFID, GPS, 3G, géoloc.) E-marketing – Places de marchés, comparateurs de prix, affiliation (Amazon, eBay, Kelkoo) Copyright Noelios Technologies – Tous droits réservés
  • 40. INTÉRÊT POUR UN DÉVELOPPEUR JAVA • Apprendre REST et HTTP est un investissement sur le long terme – nécessite du temps, comme l’orienté objet – premiers bénéfices faciles à obtenir – rester pragmatique • Nombreuses opportunités avec les APIs web – exposition d’APIs – consommation d’APIs – mashups d’APIs • Restlet Framework offre – une boîte à outil multiplateforme, complète et éprouvée – qui peut vous accompagner tout au long de ce chemin Copyright Noelios Technologies – Tous droits réservés
  • 41. POUR ALLER PLUS LOIN… • Livre « Restlet in Action » – Publication début 2012 – Restlet, REST, ROA/D, cloud – Version « early access » dispo. • Lancement « API Spark » – Plate-forme cloud pour APIs web – basée sur Restlet Framework – inscription beta privée: http://apispark.com Copyright Noelios Technologies – Tous droits réservés