Sommaire
<<
Applications: AspectJ et JAC
<
Le projet JAC
>
Package fourni
>>
Liens / Contacts


Groupe de travail

Le projet JAC est coordonné par la compagnie AOPSYS (Renaud Pawlak, Laurent Martelli), créée en 2000, et se fonde sur les travaux des laboratoires les plus avancés en la matière: le CEDRIC, le LIP6 et le LIFL.

C'est à l'origine un projet de recherche commun aux laboratoires informatiques CEDRIC-CNAM et LIP6.
Les premiers résultats ont été obtenus pendant les DEA et DED (1997-1999) de Renaud Pawlak au sein du CEDRIC. Il s'agit d'un modèle de tissage générique d'aspects implantable à l'aide d'encapsulation d'objets (wrapping) ou de filtres d'objets et permettant un ordonnancement automatique et dynamique des encapsuleurs.
Ce modèle a été bien accueilli lors de sa présentation à la conférence internationale "Reflection 1999".

Dans la continuité du projet « Tcl Object System » (TOS).
Ce modèle de tissage a ensuite été implanté sous la forme d'un prototype appelé TOS et intégré dans un modèle de programmation à base de composants spécifiques appelés Composants d'Aspect (Aspect Components). Ce système a fait la preuve de sa flexibilité et de sa capacité à gérer des aspects dans un environnement réparti en programmant quelques exemples d'applications comportant un certain nombre de Composants d'Aspect (transaction, réplication, cohérence faible, authentification, etc.).
Les résultats de ces recherches ont été présentés à la conférence internationale "TOOLS Europe 2000" .

Application directe de la thèse du Pr. Pawlak; projet initié en 2001.
C'est de ce modèle initial qu'est née l'implémentation en Java: JAC (Java Aspect Components).
JAC est un framework pour la programmation orientée aspect. Il devait fournir un ensemble d'aspects pré-programmés et configurables, ainsi qu'un atelier UML de dévelopement orienté aspect (et depuis, d'autres outils).
JAC est développé en parallèle 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).


Détails Techniques

JAC (Java Aspect Components), est un outil de RAD (Développement Applicatif Rapide) open-source.
C'est un cadre logiciel pour la programmation orientée aspect en Java.
Contrairement aux langages tels AspectJ qui adoptent une approche essentiellement basée sur les classes,
JAC adopte une granularité objet et ne requiert aucune extension syntaxique du langage Java.
Il utilise Javassist qui est un MOP intervenant au moment du chargement des classes.

Un programme orienté aspect avec JAC est un ensemble d'objets d'aspects qui peuvent être dynamiquement déployés et retirés sur des objets applicatifs en cours d'exécution.
Les objets d'aspects peuvent définir trois types de méthodes d'aspects: des méthodes encapsulantes (qui encapsulent des méthodes applicatives et permettent d'exécuter du code avant et après la méthode encapsulée), des méthodes de rôle (qui ajoutent de nouvelles fonctionnalités aux objets applicatifs) et des gestionnaires d'exceptions.
Le problème de la composition d'aspects est traité à l'aide d'un contrôleur d'encapsulation bien défini qui spécifie pour chaque objet encapsulé, au moment de l'encapsulation, à l'exécution ou dans les deux cas, l'ordre d'exécution des objets d'aspects.


Applications

L'entreprise AOPSYS utilise JAC pour la réalisation de solutions sur mesure, en particulier pour des solutions Internet accessibles par de simples navigateurs, sans installation supplémentaire sur le poste client.
Il permet le développement rapide d'applications :
> Robustes
> Ergonomiques
> Evolutives
> Répondant parfaitement aux exigences métier

Afin de répondre aux exigences techniques des applications, JAC intègre des modules adaptés à chacun des besoins critiques de l'entreprise :
> Le module de montée en charge garantit des performances irréprochables en cas d'augmentation du nombre d'utilisateurs
> Le module de tolérance aux pannes assure la cohérence et la sauvegrade des données en cas de panne réseau
> Le module d'IHM génère un design intuitif et une ergonomie avancée
> Le module de cryptage vous garantit la sécurité des données et des transactions

Disponible en open-source, l'ouverture du code de la plate-forme JAC garantit sa robustesse et sa pérrenité. Le choix de l'open-source laisse une totale liberté pour les développements à venir. Il ne lie pas définitivement à un éditeur particulier.


En bref...

“JAC (Java Aspect Components) est un serveur d'applications qui offre une alternative open-source (licence LGPL) aux environnements J2EE (Java 2 Enterprise Edition) pour la réalisation en Java d'applications distribuées. JAC est également un environnement de développement qui intègre un atelier UML (Unified Modelling Language). Cet atelier permet au développeur de modéliser en UML le cœur métier de son application et d'en auto-générer le code. Ces classes Java, exécutées au sein du conteneur JAC, peuvent bénéficier indépendamment de services techniques tels que la persistance des données, l'authentification, le déploiement, le load-balancing ou la gestion de sessions. Basé sur la technologie de la programmation orientée aspect, JAC permet de parfaitement séparer ces préoccupations techniques de la logique métier de l'application.”
Renaud Pawlak, AOPSYS.



Sommaire
<<
Applications: AspectJ et JAC
<
Le projet JAC
>
Package fourni
>>
Liens / Contacts