gPM  <ul><ul><li>Formation Technique </li></ul></ul>
Sommaire <ul><li>L'IHM de gPM </li></ul><ul><ul><li>La situation actuelle... </li></ul></ul><ul><ul><li>... un possible fu...
L'interface WEB de gPM <ul><ul><li>Un point sur la situation actuelle </li></ul></ul>
L'interface graphique WEB de gPM Comment elle naquit...  Comment elle grandit... <ul><li>Conçue initialement comme un prot...
L'interface graphique WEB de gPM Le résultat aujourd'hui... <ul><li>Beaucoup (trop ?) de langages, bibliothèques, technolo...
Karora <ul><ul><li>Un Framework WEB  Centré Serveur </li></ul></ul>
Karora <ul><li>Framework IHM WEB / AJAX </li></ul><ul><ul><li>Libre  (licence MPL / LGPL)‏ </li></ul></ul><ul><ul><li>Bran...
Karora Un framework multi-couches API de l'environnement Eclipse pour Cooee API JFace (modèle MVC)‏ Bibliothèque de compos...
Le Développement AJAX avec Karora <ul><ul><li>Caractéristiques principales </li></ul></ul>
AJAX Centré serveur Caractéristiques principales <ul><li>Actions exécutées sur le serveur d'application </li></ul><ul><ul>...
Karora Une nouvelle approche du développement WEB <ul><li>Une API de type client riche </li></ul><ul><ul><li>Très loin du ...
Travail réalisé sur gPM <ul><ul><li>Une interface simple MAIS plutôt convaincante ! </li></ul></ul>
Vue d'ensemble de la maquette Karora de gPM
Choix des Bibliothèques <ul><li>Cooee : couche basique de Karora </li></ul><ul><ul><li>Widgets Utilisés : </li></ul></ul>W...
Choix des Bibliothèques <ul><li>Orana : Une deuxième couche de Karora. </li></ul><ul><ul><li>Contenu de table issu d'un mo...
Choix des Bibliothèques <ul><ul><li>La classe IstructuredContent :  </li></ul></ul><ul><ul><li>La classe LabelProvider :  ...
Les points forts par rapport à l'IHM actuelle Une IHM qui met en valeur la généricité de gPM ... <ul><li>Une IHM entièreme...
Les points forts par rapport à l'IHM actuelle  Une IHM qui met en valeur la généricité de gPM ... <ul><ul><ul><li>Fonction...
Contraintes du Framework Karora  <ul><li>Framework récent </li></ul><ul><ul><li>Majorité de la documentation disponible un...
Place à la Démonstration Une seule démonstration me frappe plus que cinquante faits. [ Pensées philosophiques (1746) ]
Prochain SlideShare
Chargement dans…5
×

Presentation Karora Gpm V5

552 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
552
Sur SlideShare
0
Issues des intégrations
0
Intégrations
9
Actions
Partages
0
Téléchargements
2
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Presentation Karora Gpm V5

  1. 1. gPM <ul><ul><li>Formation Technique </li></ul></ul>
  2. 2. Sommaire <ul><li>L'IHM de gPM </li></ul><ul><ul><li>La situation actuelle... </li></ul></ul><ul><ul><li>... un possible futur </li></ul></ul><ul><li>Présentation de Karora </li></ul><ul><ul><li>Présentation technique </li></ul></ul><ul><ul><li>Les différentes couches disponibles </li></ul></ul><ul><ul><ul><li>Cooee </li></ul></ul></ul><ul><ul><ul><li>Orana </li></ul></ul></ul><ul><ul><ul><li>Moomba </li></ul></ul></ul><ul><ul><li>Framework WEB centré serveur </li></ul></ul><ul><ul><ul><li>Caractéristiques principales </li></ul></ul></ul><ul><ul><ul><li>Différences et avantages comparés aux autres type de devt WEB </li></ul></ul></ul><ul><li>Travail réalisé sur gPM </li></ul><ul><ul><li>Choix initiaux </li></ul></ul><ul><ul><ul><li>Utilisation des Cooee & Orana </li></ul></ul></ul><ul><ul><li>Prototype IHM </li></ul></ul><ul><ul><ul><li>Interface simple pour l'exécution de filtres </li></ul></ul></ul><ul><ul><li>Démonstration </li></ul></ul>
  3. 3. L'interface WEB de gPM <ul><ul><li>Un point sur la situation actuelle </li></ul></ul>
  4. 4. L'interface graphique WEB de gPM Comment elle naquit... Comment elle grandit... <ul><li>Conçue initialement comme un prototype... </li></ul><ul><ul><li>Charge allouée sur l'IHM de la v1 relativement faible </li></ul></ul><ul><ul><li>Peu d'analyse 'à priori' des difficultés techniques d'une IHM générique </li></ul></ul><ul><ul><li>Impossible d'imaginer les (grosses) évolutions futures </li></ul></ul><ul><li>...il y a (presque) 3 ans maintenant </li></ul><ul><ul><li>Utilisation de bibliothèques obsolètes (ex: Struts)‏ </li></ul></ul><ul><ul><li>Pas d'utilisation d'AJAX (technologie considérée comme peu stable à l'époque)‏ </li></ul></ul><ul><li>Une évolution par empilage successifs </li></ul><ul><ul><li>Une IHM initialement assez simple, basée sur des technologies maîtrisées (exemple: JSP, Struts, etc.)‏ </li></ul></ul><ul><ul><li>Évolutions vers une IHM de plus en plus riche (demandées par le client)‏ </li></ul></ul><ul><ul><ul><li>Introduction de nouvelles bibliothèques, technologies: ajout de nouvelles fonctionnalités, mais au prix d'une explosion de la complexité </li></ul></ul></ul><ul><ul><ul><li>Technologies disparates, parfois peu compatibles entre elles (exemple: Struts-menu & DOJO)‏ </li></ul></ul></ul><ul><ul><li>Mais aucune refonte profonde de l'IHM, juste des changements cosmétiques </li></ul></ul>
  5. 5. L'interface graphique WEB de gPM Le résultat aujourd'hui... <ul><li>Beaucoup (trop ?) de langages, bibliothèques, technologies à connaitre </li></ul><ul><ul><li>Technologies que personne ne maitrise totalement d'ailleurs... </li></ul></ul><ul><ul><li>Maintenance du code délicate & ajout de nouvelle fonctionnalité problématique </li></ul></ul><ul><ul><ul><li>Nombre important (inquiétant ?) du nombre de bugs et régressions à chaque changement de l'IHM </li></ul></ul></ul><ul><ul><ul><li>Coût de réalisation élevé pour des fonctionnalités ( que le client considère comme ) basiques </li></ul></ul></ul><ul><li>Lenteur d'exécution </li></ul><ul><ul><li>Due (entre autre) au besoin de reconstruire, retransmettre, et redessiner la page complète à chaque action </li></ul></ul><ul><li>Les clients (Airbus, Astrium) demandent des fonctionnalités d'une IHM riche </li></ul><ul><li>Problème : </li></ul><ul><ul><li>Améliorer l'existant de l'IHM </li></ul></ul><ul><ul><ul><li>Meilleure performances, nouvelles fonctionnalités </li></ul></ul></ul><ul><ul><li>Réduire la complexité du développement IHM </li></ul></ul><ul><ul><ul><li>Et donc améliorer la robustesse </li></ul></ul></ul><ul><ul><li>Tout en conservant une vraie IHM WEB </li></ul></ul>
  6. 6. Karora <ul><ul><li>Un Framework WEB Centré Serveur </li></ul></ul>
  7. 7. Karora <ul><li>Framework IHM WEB / AJAX </li></ul><ul><ul><li>Libre (licence MPL / LGPL)‏ </li></ul></ul><ul><ul><li>Branche issue de Echo2 </li></ul></ul><ul><li>Centré serveur </li></ul><ul><ul><li>Toutes les actions exécutées sur le serveur d'applications (ex: Tomcat)‏ </li></ul></ul><ul><ul><ul><li>Note: c'est déjà le cas sur une application WEB 'classique' </li></ul></ul></ul><ul><ul><ul><li>Comportement différent des applications AJAX toutefois, qui sont généralement architecturées en client (Javascript sur le browser) / serveur </li></ul></ul></ul><ul><ul><li>Les actions sont codées en Java, exécutées sur le serveur d'application </li></ul></ul><ul><ul><ul><li>Appels directs vers l'API métier possibles </li></ul></ul></ul>
  8. 8. Karora Un framework multi-couches API de l'environnement Eclipse pour Cooee API JFace (modèle MVC)‏ Bibliothèque de composants graphiques (API de type client riche / SWING)‏ Moomba Orana Cooee
  9. 9. Le Développement AJAX avec Karora <ul><ul><li>Caractéristiques principales </li></ul></ul>
  10. 10. AJAX Centré serveur Caractéristiques principales <ul><li>Actions exécutées sur le serveur d'application </li></ul><ul><ul><li>Java, du coté du serveur </li></ul></ul><ul><ul><li>Actions 'atomiques' </li></ul></ul><ul><ul><ul><li>Chaque action répond à un évènement reçu du browser WEB (exemple: clic sur un bouton, sélection d'un élément sur un arbre, etc.)‏ </li></ul></ul></ul><ul><ul><ul><li>Le code de l'action réalise les différents effets de bord requis (exemple: appel de l'API métier), et réalise la mise à jour des composants de l'IHM </li></ul></ul></ul><ul><li>Coté client </li></ul><ul><ul><li>Un code Javascript générique </li></ul></ul><ul><ul><ul><li>Fournit par le framework Karora </li></ul></ul></ul><ul><ul><li>Chargé de </li></ul></ul><ul><ul><ul><li>Transmettre vers le serveur, sous forme d'évènement, les actions réalisées par l'utilisateur </li></ul></ul></ul><ul><ul><ul><li>Attendre, et appliquer, les mise à jour individuelles de l'IHM reçues en réponse du serveur </li></ul></ul></ul>
  11. 11. Karora Une nouvelle approche du développement WEB <ul><li>Une API de type client riche </li></ul><ul><ul><li>Très loin du développement WEB traditionnel </li></ul></ul><ul><ul><li>Utilisation de composant graphiques </li></ul></ul><ul><ul><ul><li>Boutons, listes, menus, arbre... </li></ul></ul></ul><ul><ul><ul><li>Qui conservent leur état entre chaque action </li></ul></ul></ul><ul><ul><li>Des composants réellement réutilisables </li></ul></ul><ul><ul><ul><li>Chaque vue / panneau / composant peut être réutilisé facilement </li></ul></ul></ul><ul><ul><ul><li>Réutilisation facile car chaque composant conserve son état ! </li></ul></ul></ul><ul><li>Une interface graphique WEB moderne, mais en douceur </li></ul><ul><ul><li>Un code IHM écrit en Java uniquement ! </li></ul></ul><ul><ul><ul><li>HTML , JSP, Javascript </li></ul></ul></ul><ul><ul><li>Le même code pour tous les browsers WEB </li></ul></ul><ul><ul><ul><li>Karora supporte IE6, IE7, Firefox 2 & 3... </li></ul></ul></ul><ul><li>Avec les avantages d'une interface AJAX </li></ul><ul><ul><li>Grande interactivité possible avec l'utilisateur final </li></ul></ul><ul><ul><li>Bien meilleure performances qu'un rechargement de page </li></ul></ul>
  12. 12. Travail réalisé sur gPM <ul><ul><li>Une interface simple MAIS plutôt convaincante ! </li></ul></ul>
  13. 13. Vue d'ensemble de la maquette Karora de gPM
  14. 14. Choix des Bibliothèques <ul><li>Cooee : couche basique de Karora </li></ul><ul><ul><li>Widgets Utilisés : </li></ul></ul>Window Tree TabPane Button MenuBar Table
  15. 15. Choix des Bibliothèques <ul><li>Orana : Une deuxième couche de Karora. </li></ul><ul><ul><li>Contenu de table issu d'un modèle : «Les Vues de tables et d'arbres» </li></ul></ul>Création du TableViewer Mise à jour du contenu de la table
  16. 16. Choix des Bibliothèques <ul><ul><li>La classe IstructuredContent : </li></ul></ul><ul><ul><li>La classe LabelProvider : </li></ul></ul>
  17. 17. Les points forts par rapport à l'IHM actuelle Une IHM qui met en valeur la généricité de gPM ... <ul><li>Une IHM entièrement en Java. ( facilité de maintenance, programmation MVC ...)‏ </li></ul><ul><li>Modèle MVC inspiré de la bibliothèque Jface (Eclipse)‏ </li></ul><ul><li>Chargement à la volée d'un contenu arborescent </li></ul><ul><li>Applications Karora compatibles avec IE7 ( reste à tester )‏ </li></ul><ul><li>Widgets à états ( pas de chargement de pages ) ... </li></ul>
  18. 18. Les points forts par rapport à l'IHM actuelle Une IHM qui met en valeur la généricité de gPM ... <ul><ul><ul><li>Fonctionnalité d'affinement de la recherche après exécution d'un filtre </li></ul></ul></ul><ul><li>Des fonctionnalités additionnelles </li></ul><ul><ul><li>Beaucoup plus facile a intégrer / développer </li></ul></ul><ul><ul><li>Exemples: </li></ul></ul><ul><ul><ul><li>Exécution de chaque filtre dans un onglet </li></ul></ul></ul>
  19. 19. Contraintes du Framework Karora <ul><li>Framework récent </li></ul><ul><ul><li>Majorité de la documentation disponible uniquement via le Wiki de Karora </li></ul></ul><ul><li>Orana encore en version de développement </li></ul><ul><ul><li>Aucune version stable et complète de la bibliothèque Orana n'existe aujourd'hui </li></ul></ul>
  20. 20. Place à la Démonstration Une seule démonstration me frappe plus que cinquante faits. [ Pensées philosophiques (1746) ]

×