GraniteDS et le frameworkSpring<br />
GraniteDS et Spring<br />GraniteDSestuneplateforme open source pour les applications RIA baséessur les technologies Adobe ...
2<br />Le projet GraniteDS<br /><ul><li>Créé fin 2006, licence LGPL v2
Version actuelle 2.2.1, 2.3 imminente
Plusieursmilliersd’utilisateurs
Utilisé par de grandesentreprises et administrations, en Europe et aux USA
Reconnucommel’alternativeprincipale aux solutions serveursd’Adobe
Support du framework Spring dès les premières versions</li></ul>Objectif: Simplifier au maximum l’intégrationd’une interfa...
3<br />La plateforme GraniteDS<br />GraniteDSestuneplateformed’intégrationcomplète qui couvrel’ensemble du cycle de dévelo...
4<br />GraniteDS dans une architecture Spring<br />Transparent côtéserveur :<br /><ul><li>Initialisation et configuration ...
Intégration avec Spring MVC pour le remoting
Quasimentaucunedépendance de compilation aux librairiesGraniteDS, hormisquelques annotations optionnelles
Support complet de l’environnement Spring et Java EE (JPA, Bean Validation, Spring Security, JMS, …)</li></ul>Framework d’...
Upcoming SlideShare
Loading in...5
×

Présentation Granite ds lyon 2011 par William Draï

1,527

Published on

Octobre 2011

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,527
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Présentation Granite ds lyon 2011 par William Draï

  1. 1. GraniteDS et le frameworkSpring<br />
  2. 2. GraniteDS et Spring<br />GraniteDSestuneplateforme open source pour les applications RIA baséessur les technologies Adobe Flex et Java<br />GraniteDSoffre en particulieruneintégrationtrèspoussée avec le framework Spring et les technologies connexescommeJPA<br />« The easiest way to RIA »<br />1<br />
  3. 3. 2<br />Le projet GraniteDS<br /><ul><li>Créé fin 2006, licence LGPL v2
  4. 4. Version actuelle 2.2.1, 2.3 imminente
  5. 5. Plusieursmilliersd’utilisateurs
  6. 6. Utilisé par de grandesentreprises et administrations, en Europe et aux USA
  7. 7. Reconnucommel’alternativeprincipale aux solutions serveursd’Adobe
  8. 8. Support du framework Spring dès les premières versions</li></ul>Objectif: Simplifier au maximum l’intégrationd’une interface Flex avec une application serveurbaséesur Spring<br />Open Source<br />Projet mature<br />(Créé en 2006)<br />1500téléchargements/mois<br />
  9. 9. 3<br />La plateforme GraniteDS<br />GraniteDSestuneplateformed’intégrationcomplète qui couvrel’ensemble du cycle de développementjusqu’à la production<br />
  10. 10. 4<br />GraniteDS dans une architecture Spring<br />Transparent côtéserveur :<br /><ul><li>Initialisation et configuration très simples directementdepuis le contexte Spring avec le namespace graniteds
  11. 11. Intégration avec Spring MVC pour le remoting
  12. 12. Quasimentaucunedépendance de compilation aux librairiesGraniteDS, hormisquelques annotations optionnelles
  13. 13. Support complet de l’environnement Spring et Java EE (JPA, Bean Validation, Spring Security, JMS, …)</li></ul>Framework d’intégrationcompletcôté Flex :<br /><ul><li>Remoting
  14. 14. Persistance et gestion de données
  15. 15. Validation, sécurité
  16. 16. Messaging temps réel</li></li></ul><li>5<br />Remoting<br />Support de RemoteObjectou de l’APIspécifique Tide<br /><ul><li>Il est possible d’exposer un service Spring avec une simple annotation ouunedéclarationdans la configuration XML</li></ul>Appels de services fortementtypés :<br /><ul><li>Les outils de génération de code reconnaissent les services Spring et générent des classes AS3 typées
  17. 17. L’intégrationcôtéserveurest capable de déterminerunecible de remoting par son type plutôtque par un nom
  18. 18. Facilité de développement : auto-complétionsur le code Flex, possibilités de refactoring améliorées, détectionprécoce des erreurs</li></li></ul><li>6<br />Persistance et gestion de données (1/2)<br />Intégrationcomplète de JPA : <br /><ul><li>Les entités JPA détachéespeuventêtresérialisées et échangées entre client et serveur sans risque de perte de données
  19. 19. Les associations “lazy” sontsérialiséesdans les deuxsens pour gagner en performances, et peuventêtrechargées de manièretransparente par GraniteDS
  20. 20. GraniteDSs’intègrecomplètement avec la configuration transactionnelle et de persistance de Spring (EntityManagerFactory, TransactionManager, …)
  21. 21. Support de toutes les implémentationsusuelles de JPA : Hibernate, EclipseLink, OpenJPA, DataNucleus
  22. 22. Les outils de génération de code reconnaissent les entités JPA et générent des classes AS3 optimisées</li></li></ul><li>7<br />Persistance et gestion de données (2/2)<br />Fonctionnalitésavancées : <br /><ul><li>Entity manager côté Flex avec un cache de donnéespermettantd’assurerl’unicité des instances dansl’application
  23. 23. Pagination : support de trèsgrandeslistes de données avec une occupation mémoireminimale et un chargement au fur et àmesure
  24. 24. “Dirty checking” : possibilité de détectersi un graphed’objet a étémodifié pour par exemplegriser un bouton et/ouémettreunealerte pour proposer àl’utilisateurd’enregistrer son formulaire
  25. 25. Gestion des conflits de modifications concurrentes grâce àl’intégration avec l’”optimistic locking” de JPA
  26. 26. Version entreprise : amélioration des performances grâce à la synchronisationdifférentielle, seules les propriétésréellementmodifiéessonttransmises</li></li></ul><li>8<br />Validation<br />Intégrationcomplète avec l’API Bean Validation : <br /><ul><li>Implémentation Flex de l’API Bean Validation permettantd’effectuer le maximum de contrôle des donnéescôté Flex avec un renduvisuel en temps-réel
  27. 27. Intégration avec la validation serveur pour reporter automatiquement les erreurs de validation surl’interfacegraphique
  28. 28. Cohérencesysté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
  29. 29. Composants Flex permettantd’effectuerà la volée des validations distantes des données par le serveur</li></li></ul><li>9<br />Sécurité<br />Intégrationcomplète avec Spring Security : <br /><ul><li>Composant Flex d’authentification
  30. 30. Possibilité de récupérer un contexte de sécurité déjà authentifié, dans le cas d’un SSO oulors d’un rafraîchissement de page Web par ex.
  31. 31. Intégration avec les autorisations par rôles de Spring Security avec mise en cache des droitsd’accès
  32. 32. Intégration avec les autorisations par “access lists” (Spring Security ACL) pour gérer des droitsd’accèssur les donnéeselles-mêmes
  33. 33. Il est par exempletrès simple par exempled’afficheroumasquer un boutonsuivant les droits de l’utilisateursurune instance d’objetparticulière</li></li></ul><li>10<br />Messaging temps-réel<br />Implémentation “scalable” de la technologie long-polling: <br /><ul><li>Mode “long-polling” compatible avec les proxies Web
  34. 34. Utilisation des capacitésasynchrones / NIO des serveursd’applicationsrécents (Tomcat 6+, Jetty 6+, JBoss 4+, GlassFish 3+, WebLogic 10+, Servlet 3)
  35. 35. Intégration avec JMS pour accéderà des donnéesexternes
  36. 36. Clustering grâce àl’utilisation d’un serveur JMS local du type ActiveMQouHornetQ
  37. 37. Possibilité de transmettre de manièretransparente, transactionnelle et en temps-réel les modifications détectéessur des entités JPA àtous les clients souscrits</li></li></ul><li>11<br />Roadmap 2011 / 2012<br />Des nouvelles fonctionnalités centrées sur le temps-réel et la mobilité: <br /><ul><li>Protocoles temps-réel RTMP et WebSocket (Q3/Q4)
  38. 38. Librairies clientes mobiles natives iOS et Android (Q3/Q4)
  39. 39. Mode déconnecté (Q1 2012)</li></li></ul><li>12<br />Contactez-nous<br />www.graniteds.org<br />www.granitedataservices.com<br />France<br />William Draï<br />24 rue de l’Est<br />75020 PARIS<br />France<br />+33 1 40 33 76 77<br />USA<br />Franck Wolff<br />1501 Broadway<br />New York City, NY 10036<br />USA<br />+1 646 287 4747<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×