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
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
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
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
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
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