Web Services pour la gestion de comptes utilisateurs

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

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

Programmation Web. Madalina Croitoru IUT Montpellier

Automatisation de l administration système

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

4. SERVICES WEB REST 46

Architecture Orientée Service, JSON et API REST

Bien architecturer une application REST

Petite définition : Présentation :

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

Grid 5000 : Administration d une infrastructure distribuée et développement d outils de déploiement et d isolation réseau

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

SYSTÈMES D INFORMATIONS

BES WEBDEVELOPER ACTIVITÉ RÔLE

GUIDE DE DEMARRAGE V1.02

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

Architectures Web Services RESTful

Formation : WEbMaster

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Alfstore workflow framework Spécification technique

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

Consultant.NET / SharePoint

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

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

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

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Bonnes pratiques de développement JavaScript

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Documentation technique

Profil. Formations Certifications. Etienne de LONGEAUX Architecte logiciel/ Lead développeur PHP5/SYMFONY2/ZEND 13 ans d expérience.

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

Formation : Langues : Types d Intervention et Secteurs d Activité :

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Catalogue Formations Jalios

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

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

Grid5000 aujourd'hui : Architecture & utilisation

Olivier Deheurles Ingénieur conception et développement.net

e-obs : Conception et utilisation Rémy Decoupes Ether // ums3365

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Nouveautés de Drupal 8. Léon

Les Architectures Orientées Services (SOA)

1/15. Jean Bernard CRAMPES Daniel VIELLE

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

Résumé DOMAINES DE COMPETENCES

Gestion de configuration

CQP Développeur Nouvelles Technologies (DNT)

Introduction à. Oracle Application Express

Joomla! Création et administration d'un site web - Version numérique

Gestion d identités PSL Exploitation IdP Authentic

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

4D Web 2.0 Pack DATA LIVES HERE. TM. Internet Riche et Solutions Mobiles en toute simplicité. 4D Ajax Framework 4D Ajax for Dreamweaver 4D for Flex

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Intégration du Web 2.0 dans les solutions IBM

FileMaker Server 12. publication Web personnalisée avec XML

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É PHP - MAGENT O. 30 ans - 6 ans d'expérience

May Lopez PETIT COUTEAU SUISSE CRÉATIF. May Lopez Petit couteau suisse créatif

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2

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

Point sur les solutions de développement d apps pour les périphériques mobiles

Programmation Internet Cours 4

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

Applications et Services WEB: Architecture REST

BIRT (Business Intelligence and Reporting Tools)

Présentation du Framework BootstrapTwitter

Technologies pour Web Services faciles : REST, JSON

Hébergement de site web Damien Nouvel

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

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Karim EL KHALIFA Web developer

IBM System i. DB2 Web Query for System i : le successeur de Query/400? Oui, mais bien plus!!!

Guide d utilisation. Version 1.1

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Marie-Christine Spengler

Outils de développement collaboratif

Drupal un CMS orienté mé2er. Romain JARRAUD Mathieu GROS

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

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

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

SQL Server Installation Center et SQL Server Management Studio

Task Server 6.0 Aide

RELEASE NOTES. Les nouveautés Desktop Manager 2.8

Vérifier la qualité de vos applications logicielle de manière continue

IBM DB2 Alphablox. d administration GC

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

TP 5 Les CMS, la forme et le fond Internet et Outils (IO2)

1.2 - Définition Web 2.0 ( wikipedia )

Internet. Licence Pro R&S. TD 5 - Wifi / Radius. 1 Sur le réseau de distribution (DS) 1.1 Configuration des routeurs PC6

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

Paul FLYE SAINTE MARIE

Programme ASI Développeur

Développeur - Conseiller - Formateur web

Service de covoiturage nouvelle-génération

W4 - Workflow La base des applications agiles

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Présentation SafeNet Authentication Service (SAS) Octobre 2013

Transcription:

Web Services pour la gestion de comptes utilisateurs Benjamin Dexheimer benjamin.dexheimer@inria.fr INRIA Nancy Grand-Est Service d Expérimentation et de Développement (SED) 4ème rencontres DevelopR6 Vandoeuvre-Les-Nancy B.Dexheimer (INRIA) User Management System 16 Juin 2011 1 / 34

Plan Grid 5000 : le contexte 1 Grid 5000 : le contexte La plateforme un Système de Gestion des Utilisateurs (UMS) 2 Les interfaces d UMS Architecture globale Interface programmatique Généralités JQuery jquery UI datatables 3 Conclusion B.Dexheimer (INRIA) User Management System 16 Juin 2011 2 / 34

Plan Grid 5000 : le contexte La plateforme 1 Grid 5000 : le contexte La plateforme un Système de Gestion des Utilisateurs (UMS) 2 Les interfaces d UMS Architecture globale Interface programmatique Généralités JQuery jquery UI datatables 3 Conclusion B.Dexheimer (INRIA) User Management System 16 Juin 2011 3 / 34

Grid 5000 : le contexte La plateforme Des machines et des hommes Les machines 11 sites : Bordeaux, Grenoble, Lille, Luxembourg, Lyon, Nancy, Orsay, Reims, Rennes, Sophia, Toulouse 25 clusters, 1528 machines, 7468 cores Interconnexions inter-sites a 10Gbps + re seaux rapides (Myrinet, Infiniband) B.Dexheimer (INRIA) User Management System 16 Juin 2011 4 / 34

Grid 5000 : le contexte La plateforme Les hommes 1800+ comptes utilisateurs Un staff technique de 11 ingénieurs Réunion physique bi-annuelle. Un comité de direction Un comité exécutif Une communauté active : Mailing-lists d échange et entraide Salons jabber Ecole de Printemps annuelle https://www.grid5000.fr/mediawiki/index.php/grid5000: School2011 Dépôt de code communautaire sur la Forge INRIA https://gforge.inria.fr/projects/grid5000-code Un Wiki extensif organisé en 3 portails : public, user, admin https://www.grid5000.fr/mediawiki/index.php/grid5000:home Nombreux contributeurs actifs et power users. B.Dexheimer (INRIA) User Management System 16 Juin 2011 5 / 34

Plan Grid 5000 : le contexte un Système de Gestion des Utilisateurs (UMS) 1 Grid 5000 : le contexte La plateforme un Système de Gestion des Utilisateurs (UMS) 2 Les interfaces d UMS Architecture globale Interface programmatique Généralités JQuery jquery UI datatables 3 Conclusion B.Dexheimer (INRIA) User Management System 16 Juin 2011 6 / 34

Grid 5000 : le contexte un Système de Gestion des Utilisateurs (UMS) Cahier des charges fonctionnel Centraliser la source d informations de référence pour un utilisateur de Grid 5000. Conserver l historique des utilisateurs (affiliations successives au cours du temps). Dériver les bases annexes (authentification LDAP) de cette base centrale. Gérer la délégation de responsabilité par une arborescence de privilèges : observer < user < account-manager < site-manager / top-manager < admin Gérer les workflows de gestion des comptes avec des notifications aux intervenants. Gérer des scripts périodiques de maintenance (crons). B.Dexheimer (INRIA) User Management System 16 Juin 2011 7 / 34

Contexte technique Grid 5000 : le contexte un Système de Gestion des Utilisateurs (UMS) https://api.grid5000.fr/version/grid5000/resource S insérer dans la continuité architecturale et technologique des API Grid 5000 existantes B.Dexheimer (INRIA) User Management System 16 Juin 2011 8 / 34

Plan Les interfaces d UMS 1 Grid 5000 : le contexte La plateforme un Système de Gestion des Utilisateurs (UMS) 2 Les interfaces d UMS Architecture globale Interface programmatique Généralités JQuery jquery UI datatables 3 Conclusion B.Dexheimer (INRIA) User Management System 16 Juin 2011 9 / 34

Plan Les interfaces d UMS Architecture globale 1 Grid 5000 : le contexte La plateforme un Système de Gestion des Utilisateurs (UMS) 2 Les interfaces d UMS Architecture globale Interface programmatique Généralités JQuery jquery UI datatables 3 Conclusion B.Dexheimer (INRIA) User Management System 16 Juin 2011 10 / 34

Différents composants Les interfaces d UMS Architecture globale Un ensemble de web services servis par un serveur d application. Réalisent les opérations de gestion des comptes Gèrent les accès transactionnels à la base centrale S exposent à travers une API REST couvrant toutes les opérations (Users API) Une interface utilisateur Web Interaction en Ajax avec la Users API Une série de crons (scripts périodiques) Purge des comptes expirés Création des entrées dans les bases annexes (LDAP, MySQL) Création des homedirs... B.Dexheimer (INRIA) User Management System 16 Juin 2011 11 / 34

Plan Les interfaces d UMS Interface programmatique 1 Grid 5000 : le contexte La plateforme un Système de Gestion des Utilisateurs (UMS) 2 Les interfaces d UMS Architecture globale Interface programmatique Généralités JQuery jquery UI datatables 3 Conclusion B.Dexheimer (INRIA) User Management System 16 Juin 2011 12 / 34

Les interfaces d UMS Interface programmatique REST : Representational State Transfer Principes pragmatiques Un web service RESTful définit au minimum: l URI de base : https://api.grid5000.fr/sid/grid5000/users Le format des données échangées (Content-Type:, Accept:) Les opérations HTTP supportées pour chaque classe de ressources: GET, POST, PUT, DELETE B.Dexheimer (INRIA) User Management System 16 Juin 2011 13 / 34

Les interfaces d UMS Interface programmatique REST : Representational State Transfer Un Web service RESTful : Manipule une ressource ou une collection de ressources Utilise les URIs pour désigner chaque ressource (collection ou individuelle) Utilise des messages auto-suffisants : opérations autorisées, MIME type, cacheability Représente les ressources avec un Internet Media-Type valide (généralement XML, JSON, YAML) Utilise les liens hypermedias pour naviguer d une ressource à l autre B.Dexheimer (INRIA) User Management System 16 Juin 2011 14 / 34

Les interfaces d UMS Interface programmatique Technologies logicielles utilisées Langage Ruby 1.8 http://www.ruby-doc.org Sinatra DSL pour la description de routes route = Méthode HTTP + URL put /users/:uid do uid [...] end http://www.sinatrarb.com ActiveLDAP ORM pour les objets LDAP http://ruby-activeldap.rubyforge.org/ B.Dexheimer (INRIA) User Management System 16 Juin 2011 15 / 34

Les interfaces d UMS Interface programmatique Technologies logicielles utilisées Sequel : gestion de la base de données DSL de construction de requêtes SQL Couche ORM entre Ruby et les bases de données Gestion des migrations http://sequel.rubyforge.org/ user = Grid5000::User.find(:uid => uid) RSpec 1 : tests unitaires http://rspec.info/ Mocks, Stubs, Expectations,... B.Dexheimer (INRIA) User Management System 16 Juin 2011 16 / 34

Les interfaces d UMS Interface programmatique Technologies logicielles utilisées Thin+Rack : composante serveur de l API Serveur Web + Interface Application-serveur web Thin : http://code.macournoyer.com/thin/ Rack : http://rack.rubyforge.org/ Rakefile : la glue entre les composantes du projet Makefile version Ruby http://rake.rubyforge.org/ rake start RACK ENV=development B.Dexheimer (INRIA) User Management System 16 Juin 2011 17 / 34

Les interfaces d UMS Interface programmatique Technologies logicielles utilisées Bundler : packaging Définition et construction de l environnement de l application Définir les Gems utilisées et leurs versions autorisées Gestion des dépendances inter-gems S assurer d avoir un environnement identique entre la machine de dev et celle(s) de production Aide au packaging de l application http://gembundler.com/deploying.html B.Dexheimer (INRIA) User Management System 16 Juin 2011 18 / 34

Les interfaces d UMS Interface programmatique Technologies logicielles utilisées Capistrano : Déploiement DSL pour formaliser le déploiement d une application sur son/ses serveur(s) de production machines POSIX, avec shell par défaut sh connexions SSH par clef publique https://github.com/capistrano/capistrano/wiki/ B.Dexheimer (INRIA) User Management System 16 Juin 2011 19 / 34

Plan Les interfaces d UMS 1 Grid 5000 : le contexte La plateforme un Système de Gestion des Utilisateurs (UMS) 2 Les interfaces d UMS Architecture globale Interface programmatique Généralités JQuery jquery UI datatables 3 Conclusion B.Dexheimer (INRIA) User Management System 16 Juin 2011 20 / 34

Création et utilisation d un objet : var p = new Profile(attributes); [...] B.Dexheimer (INRIA) User Management System 16 Juin 2011 21 / 34 Les langages utilisés Les interfaces d UMS L interface web est bâtie sur les langages classiques du web : XHTML 1.0 : squelette de la page CSS 2 : mise en forme + design Javascript Parties dynamiques de la page Développement POO en utilisant les prototypes

Les interfaces d UMS jquery (http://jquery.com/) Un framework très complet Propose une solution de codage élégante pour tous les champs d action de Javascript. Quelques exemples : Parcours du DOM et des éléments HTML avec les sélecteurs : Code plus compact et efficace Syntaxe cohérente avec la CSS B.Dexheimer (INRIA) User Management System 16 Juin 2011 22 / 34

Les interfaces d UMS Quelques exemples jquery Gestion des évenements : <selector>.live(event, handler) : attache un handler à l évènement qui surviendra aux éléments sélectionnés <selector>.trigger(event, data) : lance l exécution de tous les handlers attachés au sélecteur pour cet évènement. Gestion aisée des appels Ajax : jquery.ajax() Fournitures de handlers pré/post requête, sur échec, sur completion B.Dexheimer (INRIA) User Management System 16 Juin 2011 23 / 34

jquery UI Les interfaces d UMS Le complément IHM à jquery Efficace pour le développement d IHM Mise en oeuvre rapide et simple Thémable à volonté B.Dexheimer (INRIA) User Management System 16 Juin 2011 24 / 34

Les interfaces d UMS jquery UI : utilisation dans le projet Utilisation de widgets : Onglets : Les onglets sont générés au préalable par du code HTML <ul><li>...</ul> Zones de sélection : Les objets selectionnables sont générés au préalable par du code HTML <ul><li>...</ul> Boutons... : button() B.Dexheimer (INRIA) User Management System 16 Juin 2011 25 / 34

Les interfaces d UMS jquery UI : utilisation dans le projet Utilisation de widgets : Fenêtres de dialogue modale B.Dexheimer (INRIA) User Management System 16 Juin 2011 26 / 34

Les interfaces d UMS jquery UI : utilisation dans le projet Utilisation des classes CSS pré-définies par jquery Création de boites et éléments d interfaces qui récupèrent le design global ui-button ui-widget ui-state-default ui-corner-all ui-text-only ui-state-highlight ui-state-error Ces classes sont à utiliser sur des éléments HTML standards : <div>, <a> B.Dexheimer (INRIA) User Management System 16 Juin 2011 27 / 34

Les interfaces d UMS un plugin jquery : datatables Très efficace et complet pour afficher des tableaux de données dynamiques. Fonctions de tri par colonne, de recherche... Fournitures de hooks pour des traitements différenciés par ligne Peut intégrer plusieurs types de sources des données : DOM (post-analyse d un tableau HTML statique) Tableau Javascript Requête Ajax Script côté serveur Graphiquement avancé : Effet de dépliement de lignes Controles de pagination Thémable par JQuery B.Dexheimer (INRIA) User Management System 16 Juin 2011 28 / 34

Les interfaces d UMS datatables : un exemple de mise en oeuvre 2 datatables imbriquées B.Dexheimer (INRIA) User Management System 16 Juin 2011 29 / 34

Plan Conclusion 1 Grid 5000 : le contexte La plateforme un Système de Gestion des Utilisateurs (UMS) 2 Les interfaces d UMS Architecture globale Interface programmatique Généralités JQuery jquery UI datatables 3 Conclusion B.Dexheimer (INRIA) User Management System 16 Juin 2011 30 / 34

Conclusion Conclusion Les points vitaux Couverture du code en tests unitaires Prévient les régressions Aide au développement ( TDD) Le debugger Firebug Git Organiser facilement le workflow de développement multi-branches, multi-développeurs Redmine Planifier le développement : demandes de correctifs et fonctionnalités Garder la trace de l activité de développement Organiser la communication entre développeurs et utilisateurs B.Dexheimer (INRIA) User Management System 16 Juin 2011 31 / 34

Conclusion Conclusion (suite) Les points positifs Ruby et son écosystème jquery Gain de productivité Les points négatifs La documentations des gems Ruby L évolutivité des versions de Gems Nécessité de fixer les versions dans un intervalle pour stabiliser le projet (Gemfile) B.Dexheimer (INRIA) User Management System 16 Juin 2011 32 / 34

Conclusion Conclusion (fin) Et si c était à refaire... Rails 3? Rspec 2 Utilisation d un IDE Ruby plus intégré (Aptana)? B.Dexheimer (INRIA) User Management System 16 Juin 2011 33 / 34

... Conclusion Questions? B.Dexheimer (INRIA) User Management System 16 Juin 2011 34 / 34