13
GraniteDS et le framework Spring

Présentation Granite ds lyon 2011 par William Draï

  • Upload
    lyonjug

  • View
    1.416

  • Download
    4

Embed Size (px)

DESCRIPTION

Octobre 2011

Citation preview

Page 1: Présentation Granite ds lyon 2011 par William Draï

GraniteDS et le framework Spring

Page 2: Présentation Granite ds lyon 2011 par William Draï

GraniteDS et Spring

GraniteDS est une plateforme open source pour les applications RIA basées sur les technologies Adobe Flex et Java

GraniteDS offre en particulier une intégration très poussée avec le framework Spring et les technologies connexes comme JPA

« The easiest way to RIA »

2

Page 3: Présentation Granite ds lyon 2011 par William Draï

3Le projet GraniteDS

Créé fin 2006, licence LGPL v2 Version actuelle 2.2.1, 2.3 imminente Plusieurs milliers d’utilisateurs Utilisé par de grandes entreprises et administrations, en Europe et aux USA Reconnu comme l’alternative principale aux solutions serveurs d’Adobe Support du framework Spring dès les premières versions

Objectif: Simplifier au maximum l’intégration d’une interface Flex avec une application serveur basée sur Spring

Open Source

Projet mature

(Créé en 2006)

1500 téléchargements/

mois

Page 4: Présentation Granite ds lyon 2011 par William Draï

4La plateforme GraniteDS

GraniteDS est une plateforme d’intégration complète qui couvre l’ensemble du cycle de développement jusqu’à la production

Page 5: Présentation Granite ds lyon 2011 par William Draï

5GraniteDS dans une architecture Spring

Transparent côté serveur : Initialisation et configuration très simples directement depuis le contexte Spring

avec le namespace graniteds Intégration avec Spring MVC pour le remoting Quasiment aucune dépendance de compilation aux librairies GraniteDS, hormis

quelques annotations optionnelles Support complet de l’environnement Spring et Java EE (JPA, Bean Validation,

Spring Security, JMS, …)

Framework d’intégration complet côté Flex : Remoting Persistance et gestion de données Validation, sécurité Messaging temps réel

Page 6: Présentation Granite ds lyon 2011 par William Draï

6Remoting

Support de RemoteObject ou de l’API spécifique Tide

Il est possible d’exposer un service Spring avec une simple annotation ou une déclaration dans la configuration XML

Appels de services fortement typés :

Les outils de génération de code reconnaissent les services Spring et générent des classes AS3 typées

L’intégration côté serveur est capable de déterminer une cible de remoting par son type plutôt que par un nom

Facilité de développement : auto-complétion sur le code Flex, possibilités de refactoring améliorées, détection précoce des erreurs

Page 7: Présentation Granite ds lyon 2011 par William Draï

7Persistance et gestion de données (1/2)

Intégration complète de JPA :

Les entités JPA détachées peuvent être sérialisées et échangées entre client et serveur sans risque de perte de données

Les associations “lazy” sont sérialisées dans les deux sens pour gagner en performances, et peuvent être chargées de manière transparente par GraniteDS

GraniteDS s’intègre complètement avec la configuration transactionnelle et de persistance de Spring (EntityManagerFactory, TransactionManager, …)

Support de toutes les implémentations usuelles de JPA : Hibernate, EclipseLink, OpenJPA, DataNucleus

Les outils de génération de code reconnaissent les entités JPA et générent des classes AS3 optimisées

Page 8: Présentation Granite ds lyon 2011 par William Draï

8Persistance et gestion de données (2/2)

Fonctionnalités avancées :

Entity manager côté Flex avec un cache de données permettant d’assurer l’unicité des instances dans l’application

Pagination : support de très grandes listes de données avec une occupation mémoire minimale et un chargement au fur et à mesure

“Dirty checking” : possibilité de détecter si un graphe d’objet a été modifié pour par exemple griser un bouton et/ou émettre une alerte pour proposer à l’utilisateur d’enregistrer son formulaire

Gestion des conflits de modifications concurrentes grâce à l’intégration avec l’”optimistic locking” de JPA

Version entreprise : amélioration des performances grâce à la synchronisation différentielle, seules les propriétés réellement modifiées sont transmises

Page 9: Présentation Granite ds lyon 2011 par William Draï

9Validation

Intégration complète avec l’API Bean Validation :

Implémentation Flex de l’API Bean Validation permettant d’effectuer le maximum de contrôle des données côté Flex avec un rendu visuel en temps-réel

Intégration avec la validation serveur pour reporter automatiquement les erreurs de validation sur l’interface graphique

Cohérence systématique des métadonnées de validation grâce au report par le générateur de code des annotations Bean Validation depuis les entités Java vers les entités AS3

Composants Flex permettant d’effectuer à la volée des validations distantes des données par le serveur

Page 10: Présentation Granite ds lyon 2011 par William Draï

10Sécurité

Intégration complète avec Spring Security :

Composant Flex d’authentification Possibilité de récupérer un contexte de sécurité déjà authentifié, dans le cas d’un

SSO ou lors d’un rafraîchissement de page Web par ex. Intégration avec les autorisations par rôles de Spring Security avec mise en cache

des droits d’accès Intégration avec les autorisations par “access lists” (Spring Security ACL) pour

gérer des droits d’accès sur les données elles-mêmes Il est par exemple très simple par exemple d’afficher ou masquer un bouton

suivant les droits de l’utilisateur sur une instance d’objet particulière

Page 11: Présentation Granite ds lyon 2011 par William Draï

11Messaging temps-réel

Implémentation “scalable” de la technologie long-polling:

Mode “long-polling” compatible avec les proxies Web Utilisation des capacités asynchrones / NIO des serveurs d’applications récents

(Tomcat 6+, Jetty 6+, JBoss 4+, GlassFish 3+, WebLogic 10+, Servlet 3) Intégration avec JMS pour accéder à des données externes Clustering grâce à l’utilisation d’un serveur JMS local du type ActiveMQ ou

HornetQ Possibilité de transmettre de manière transparente, transactionnelle et en temps-

réel les modifications détectées sur des entités JPA à tous les clients souscrits

Page 12: Présentation Granite ds lyon 2011 par William Draï

12Roadmap 2011 / 2012

Des nouvelles fonctionnalités centrées sur le temps-réel et la mobilité:

Protocoles temps-réel RTMP et WebSocket (Q3/Q4) Librairies clientes mobiles natives iOS et Android (Q3/Q4) Mode déconnecté (Q1 2012)

Page 13: Présentation Granite ds lyon 2011 par William Draï

13Contactez-nous

www.graniteds.org

www.granitedataservices.com

France

William Draï24 rue de l’Est75020 PARISFrance+33 1 40 33 76 77

USA

Franck Wolff1501 BroadwayNew York City, NY 10036USA+1 646 287 4747