Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parFleuretta Cheron Modifié depuis plus de 11 années
1
14 novembre 2002Julien CARSIQUE17 diapositives JAC Java Aspect Components Serveur dapplications Java Open-Source (LGPL) basé sur la Programmation Orientée Aspect IHM de développement orienté Objet et Aspect Modélisation UML et génération de code http://www.jac.aopsys.com http://www.carsique.fr/JAC
2
Julien CARSIQUETitre de la pagePage 2 sur 17 Sommaire Introduction POA – Programmation Orientée Aspect Le projet Java Aspect Components Lapproche Java Aspect Concept Le serveur dapplications JAC Larchitecture JAC, les interfaces fournies Framework, classes et méthodes, aspects… Développer en JAC, exemples Conclusion Sommaire
3
Julien CARSIQUETitre de la pagePage 3 sur 17 Programmation Orientée Aspect La POO identifie des problématiques (concern) dun point de vue Objet implémentés en Classes Caractéristiques: emmêlement et éparpillement du code Conséquences: mauvaise traçabilité, faible productivité, faible réutilisation et pauvre qualité du code, évolution complexe. Concept: modulariser limplémentation des problématiques entrelacées, en trois étapes: Décomposition par aspects Implémentation des besoins Recomposition en fonction des aspects (tissage) Évolution logique de la POO, la POA pourrait être la prochaine grande étape en matière de méthodologie de développement. Introduction
4
Julien CARSIQUETitre de la pagePage 4 sur 17 POA: les problématiques Deux types de concern : Problématique métier Fonctionnalités techniques Analogie au prisme Gains: Interactions minimisées Évolutivité Planning de dev. aisé Réutilisation du code POOPOA Besoins communs spécifiques métier implémentés par modules Modules séparés pour les problématiques métier et les aspects techniques Modules communs implémentés nommés: « Classes » Modules techniques implémentés nommés: « Aspects » Introduction
5
Julien CARSIQUETitre de la pagePage 5 sur 17 POA: les applications Diverses approches dont JAC et AspectJ AspectJJAC Extension du langage JAVAFramework POA, serveur dapplications Nouvelle grammaire pour les aspectsAspects écrits en Java pur Utilise le code source. Chaque modif. nécessite une nouvelle compilation Un bytecode permet lajout, la suppr. et la modification dynamique des aspects Ne gère pas la distributionDistribue automatiquement les aspects sur des serveurs distants Ne permet que le développement daspects Permet le développement daspects ou leur simple configuration Atelier UML supportant les aspectsSintègre à JBuilder, Forte et Emacs Pas daspects pré-développésBibliothèque daspects pré-développés configurables Version 1.0.5Version 0.8.1 Open Source Mozilla Public LicenseDisponible en licence LGPL Introduction
6
Julien CARSIQUETitre de la pagePage 6 sur 17 Le projet JAC: « Java Aspect Components » Projet coordonné par la compagnie AOPSYS (Renaud Pawlak, Laurent Martelli) Développé par le groupe CAOLAC du laboratoire CEDRIC-CNAM (Pr. Gerard Florin, R. Pawlak) et le projet AProDis du LIP6 (Lionel Seinturier) En collaboration avec le LIFL (Laurence Duchien) Application directe de la thèse du Pr. Pawlak Initié en 2001 Dans la continuité du projet « Tcl Object System » Introduction
7
Julien CARSIQUETitre de la pagePage 7 sur 17 JAC, plus quun serveur – 1 JAC intègre : Un environnement de développement UML orienté POA et permettant de modéliser la logique métier des applications, de générer et de compiler le code Java Des aspects prêts à lemploi et configurables Un conteneur léger et ouvert pour les classes métier et les aspects purement techniques. Ces derniers peuvent être ajoutés dynamiquement pour fournir de nouvelles caractéristiques techniques au conteneur. Un noyau capable de tisser les aspects à la logique métier au runtime. Une interface dadministration permettant de débuguer lapplication et de modifier dynamiquement la configuration des aspects. Un tutorial, un guide du développeur et des exemples. Introduction
8
Julien CARSIQUETitre de la pagePage 8 sur 17 JAC, plus quun serveur – 2 Trois principales composantes: Serveur d'applications Java orienté aspect Interface d'administration Atelier UML de développement Introduction
9
Julien CARSIQUETitre de la pagePage 9 sur 17 Concept du serveur JAC Contraintes de la POA Exemple dun serveur dapplications J2EE Le conteneur JAC utilise des classes Java purement métier Au runtime: configuration des aspects pour tisser le technique avec le métier Serveur dapplications
10
Julien CARSIQUETitre de la pagePage 10 sur 17 Un serveur à part Serveur dapplications Serveur dapplications J2EEServeur dapplications JAC Conteneur pour EJBsConteneur pour des classes Java pures et pour des aspects techniques Services techniques hardcodés, ne peuvent être modifiés Aspects techniques pré-développés : peuvent être modifiés Les EJBs doivent être configurés pour appeler les services techniques : entrelacement des préoccupations (concern) Chaque aspect technique est configuré dans un fichier qui lui est propre et est tissé au runtime : bonne modularisation Lourd, intègre toujours tous les services techniques Léger, chaque aspect technique nest ajouté que si il est utile Demande de nombreuses compétencesFacile à apprendre et à utiliser. Nécessité dappréhender la philosophie orientée aspect Séparation des préoccupations seulement pour les services techniques pré-développés Les préoccupations nouvelles et spécifiques peuvent être modularisées et implémentées par de nouveaux aspects Coûteux à mettre en placeGratuit sous licence LGPL. Peu de formation nécessaire Fiable et éprouvéDoit encore faire ses preuves, première applications pilotes en cours de développement JAC bénéficie des avantages de lAOP : meilleures traçabilité, productivité, réutilisabilité du code, qualité du code, évolutivité de lapplication
11
Julien CARSIQUETitre de la pagePage 11 sur 17 Exemples darchitectures JAC Architecture de base: Montée en charge et tolérance aux pannes: Architecture
12
Julien CARSIQUETitre de la pagePage 12 sur 17 Développer en JAC Architecture des applications JAC (Framework) Architecture
13
Julien CARSIQUETitre de la pagePage 13 sur 17 Lobjet JAC Trois concepts techniques: Joinpoints: pointe une exécution du programme Pointcuts: Recense les critères dexécution des joinpoints Méthodes dencapsulation (Wrapping): code à exécuter quand les joinpoints répondent aux critères spécifiés par les pointcuts Architecture
14
Julien CARSIQUETitre de la pagePage 14 sur 17 Aspects purement techniques pré-développés Persistance (SGBD et Systèmes de Fichiers) Authentification Session Utilisateur Transactions Déploiement Load-balancing Broadcasting Cohérence des données Synchronisation Accès distant Intégrité GUI (SWING et Web) JAC API Doc. Architecture
15
Julien CARSIQUETitre de la pagePage 15 sur 17 Processus dinstallation dynamique des aspects JAC Noyau JAC (objets systèmes) Application repository AC manager Composition aspect JAC container Chargeur JAC (BCEL) R.T.T.I Classes métier Aspect Aspect configuration Aspect Component Object métier Java loader tags génère metamodel new calls Wrappers creates Pointcuts creates dispatches calls orders Application descriptor (.jac) reads JAC.prop reads load Classes encapsulables Traduit
16
Julien CARSIQUETitre de la pagePage 16 sur 17 Encapsulation (Wrapping) Chaîne dencapsulation Architecture
17
Julien CARSIQUETitre de la pagePage 17 sur 17 Conclusion Séparation du technique et du fonctionnel Facilité de déploiement Gain de temps dans les développements Utilisation simple de services techniques Réutilisation facilitée du code Bonne montée en charge, évolutivité Conclusion
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.