Professional Documents
Culture Documents
Sujet
A toute ma famille.
Abdellah
Dédicace
A toute ma famille.
Omar
Remerciements
Introduction---------------------------------------------------------------------------- 4
Bibliographie ------------------------------------------------------------------------ 63
ANNEXES---------------------------------------------------------------------------- 65
Annexe 1 : Plan d’Assurance Qualité ------------------------------------------- 66
Annexe 2 : Grille de Compétences----------------------------------------------- 70
Annexe 3 : Processus Y ------------------------------------------------------------ 71
Annexe 4 : Types de Design Patterns ------------------------------------------- 72
Annexe 5 : TopLink ---------------------------------------------------------------- 74
Listes des abréviations
Introduction
Après quelques décennies, la formation continue, plutôt sporadique et inégalement répartie,
est reconnue comme un prolongement naturel et indispensable de l'école. Les mutations et les
évolutions récentes de l’économie mondiale accentuent cette tendance et rendent nécessaire
une réflexion profonde et renouvelée sur la formation continue.
Ainsi, notre projet a pour but de doter les responsables de la formation continue au sein de
l’administration d’un système transactionnel (Web) leurs permettant la gestion des différentes
composantes de la formation à savoir :
• Grille de compétences,
• Plans de formations,
• Rapports d’évaluation.
Le présent rapport comporte trois parties. La première partie, composée de deux chapitres,
définit le contexte général du projet. Elle débute par la présentation de l’organisme d’accueil.
La présentation de notre projet et la démarche suivie feront l’objet du deuxième chapitre de
cette partie.
Dans la deuxième partie, nous exposons les concepts de modélisation de notre projet. Ainsi, le
premier chapitre est consacré à l’analyse et la spécification des besoins afin d’énumérer les
fonctionnalités principales du système à développer et de délimiter le périmètre fonctionnel de
ce futur système. Le deuxième chapitre fera l’objet de la phase de conception du projet en
utilisant le standard UML.
Quant à la troisième partie, elle présente les aspects techniques du projet. Elle décrit les
différentes technologies et outils utilisés ainsi que les étapes de la mise en œuvre de ce projet
selon la démarche choisie. Dans le premier chapitre, nous allons décrire l’architecture et les
technologies J2EE, les outils ainsi que les frameworks utilisés pour la concrétisation de notre
projet : Struts, TopLink, JDevelopper 10g et le serveur d’applications Oracle 9i AS. Le
deuxième chapitre abordera l’étape de la mise en œuvre du projet tout en présentant la mise
en place de chaque couche de l’architecture technique du système.
A la fin du rapport, nous présentons un complément dans les différents annexes traitant le
plan d’assurance qualité, la grille de compétences, le processus de développement, les types
des Design Patterns et le framework TopLink.
Introduction
Comme nous l’avons indiqué auparavant, notre projet s’est déroulé au sein de l’ADII, dont le
fonctionnement est axé autour de plusieurs activités, et se base sur un système d’information
mature.
• L’application des dispositions relatives aux avantages fiscaux accordés aux matériels,
outillages et autres équipements importés ;
• La promotion des régimes économiques en douanes, notamment l’admission
temporaire et l’entrepôt industriel franc ;
• La simplification des procédures de dédouanement ;
• La mise en place d’une organisation efficiente des services douaniers basés sur un
recours de plus en plus accru au traitement automatique rendu possible grâce à la
généralisation de l’outil informatique.
La protection du consommateur
Dans le cadre de la mise en application de certaines législations particulières, l’ADII veille,
aussi bien à l’importation qu’à l’exportation, au respect d’un certain nombre de règlements en
matière de contrôle de la qualité, des normes techniques, des mesures sanitaires, vétérinaires
et photo sanitaires, de la protection de la propriété intellectuelle et de contrôle de la répression
des fraudes. Cette protection s’exerce également à travers le contrôle des ouvrages en métaux
précieux.
conditions essentielles pour l’octroi des avantages prévus par lesdits accords. De même une
attention particulière est accordée à la valeur des marchandises importées pour prévenir toute
action de dumping pouvant porter préjudice à la production nationale.
L’équité fiscale
L’ADII veille à ce que les importations d’une même marchandise (même origine, même
valeur, etc..) acquittent les mêmes droits et taxes quelque soit l’importateur ou le bureau
d’importation. L’équité fiscale implique également une lutte contre la contrebande et la fraude
sous toutes ses formes.
2. Organisation de l’ADII
L’ADII est organisée en services centraux et services extérieurs. Le nombre du personnel au
sein des services Centraux et Extérieurs s’élève à 4795 répartis sur des échelles et des
catégories diverses.
2.1. Organigramme de l’ADII
ADII
Divisions Circonscriptions
centrales
Les services centraux sont placés sous l'autorité du directeur général de l'administration,
assisté des directeurs centraux et des chefs de division. L'organisation des services centraux
repose sur quatre directions, groupant dix divisions, et une division de l’audit rattachée
directement au directeur général.
2.2 Service de la Programmation et de l’Evaluation
Notre projet s’est déroulé dans le service de la programmation et de l’évaluation. Ce service
appartient à la division de la programmation et de la communication composée de trois
services :
• Service de la Programmation et de l'Evaluation ;
• Service de la Gestion de l'Information ;
• Service de la Communication.
Introduction
La politique de formation adoptée par l'ADII entre dans le cadre du plan d’action stratégique
du ministère de l’économie et des finances, qui a inscrit la formation parmi ses priorités. Dans
cette même optique, l'administration a entrepris un programme de réformes et de
modernisation, où la formation professionnelle servirait cette même mission.
La transmission ainsi que l’amélioration des savoir-faire sont réalisées au moyen de deux
types de formation : la formation de base et la formation continue.
Quant à la formation continue, elle permet de faire évoluer d’une part, les compétences des
agents pour la bonne maîtrise des opérations, qui contribuent à la production d’une plus-value
au sein de l’ADII, et d’autre part leurs savoir-faire.
Une telle politique ne peut être efficace que si elle permet une bonne identification des
besoins. Celle-ci doit se baser sur une analyse fine des écarts entre les compétences
disponibles et les compétences exigées, aussi bien à court terme, pour corriger les
dysfonctionnements actuels, qu'à long terme, pour accompagner les évolutions futures.
Cette démarche permet l’élaboration et la mise en œuvre d’actions de formation répondant
aux besoins stratégiques de l'administration, de ses agents et de ses partenaires.
Ainsi, l’ADII a adopté une approche scientifique qui consiste à approfondir la connaissance
de l'existant, écouter les intéressés, et les associer étroitement à la préparation des plans de
formation les concernant, et enfin, à mettre en adéquation les orientations générales de
l'administration.
L’approche adoptée par l’ADII en matière de formation continue est inspirée de la méthode
de formation intégrée mise au point par l’Institut de Socio économie des Entreprises et des
Organisations (ISEOR) en France.
Cette phase d’identification des besoins se termine par la cotation des agents qui se fait sur la
base de la qualité de la réalisation effective d’une opération par un individu et non sur la base
du jugement de ses capacités potentielles à son éventuelle exécution.
Sur la base de cette cotation, les deux indicateurs : Indicateur de Polyvalence, qui mesure la
polyvalence des agents, et Indicateur de Vulnérabilité, qui mesure le niveau de vulnérabilité
d’un service, sont calculés pour pouvoir identifier les besoins en formation (Annexe 2).
Une note d’orientations générales doit permettre au Service de dégager des axes stratégiques
de formation qui seront également intégrés dans le plan national de formation.
Enfin, les actions de formation retenues dans le plan national en faveur des formateurs
régionaux qui vont assurer les mêmes formations à leurs collègues dans le cadre des plans
régionaux, sont mises en œuvre ou bien par des formateurs internes à l’administration, ou bien
par des formateurs externes provenant des organismes de formations spécialisés.
• Evaluation quantitative
Elle a pour objectif de mettre en évidence l’effort quantifié de formation. Elle porte sur :
Le nombre d’agents formés (par catégorie, sexe, structure, etc.) ;
Le nombre de jours de formation par agent et par an ;
Le nombre d’actions de formation réalisées au niveau central, régional, et local.
• Evaluation qualitative
L’évaluation qualitative a pour objectif de vérifier, d’une part, le degré de mise en œuvre
effective des connaissances acquises dans les situations réelles de travail et, d’autre part, le
degré de satisfaction des agents formés, aussi bien par rapport à la qualité de la formation, que
par rapport aux conditions de son déroulement.
• Evaluation financière
Si l’évaluation qualitative permet de s’assurer de l’efficacité de la formation, l’évaluation
financière permet de rendre compte de son efficience. Ainsi, au moyen de cette évaluation,
doivent être appréciés les coûts financiers générés par la formation, tout en les rapportant à sa
qualité.
Relevant du domaine des RH, le projet qui nous a été assigné comprend trois phases :
• Etude et modélisation du processus de gestion de la formation, qui est l’un des piliers
de la stratégie de la gestion des ressources humaines dans l’administration ;
• La mise en œuvre d’une solution répondant aux différentes exigences fonctionnelles et
techniques ;
• L’intégration de la solution dans le projet RIAD.
Ainsi, notre travail consiste à gérer les composantes des quatre phases du processus de la
formation précitées : l’élaboration des grilles de compétences, l’élaboration des plans de
4. Conduite du projet
4.1. Processus de développement
Traditionnellement, la modélisation des systèmes se base sur les trois hypothèses suivantes :
• Les fonctionnalités d'un système sont stables, elles n'évoluent pas avec les temps;
• Les besoins relatifs à un système sont donnés au départ;
• La validation des besoins peut se faire en référence aux fonctionnalités du système
[CORCA01].
Aujourd'hui, il est clair que ces hypothèses ne sont plus valides. Ainsi, une séparation entre le
fonctionnel et le technique, lors du développement, est dictée par le besoin d'un produit
extensible.
Pour livrer un produit qui respecte les besoins des utilisateurs tout en s'adaptant aux futurs
changements, nous avons optés pour le processus 2TUP (Two «2» Tracks Unified Process).
C'est un processus unifié qui apporte une réponse aux contraintes de changement continuel
imposées aux systèmes d'information de l'entreprise. "2 Tracks" signifie littéralement que le
processus suit deux chemins. Il s'agit des chemins "fonctionnel" et "d'architecture technique",
qui correspondent aux deux axes de changement [ROVA00]:
sur les différentes étapes du projet ainsi que leur séquencement. Cela consistait en trois
grandes étapes: la première est une phase d'analyse et de spécification dont les objectifs est de
bien cerner le sujet d'une part et de délimiter le périmètre du projet d'autre part. La seconde est
consacrée à la conception de la solution et quant à la troisième étape, elle traite la mise en
oeuvre de la solution.
Le tableau suivant présente sommairement le planning des étapes du déroulent de notre projet,
le planning détaillé figure dans le Plan d'Assurance Qualité (Annexe 1)
Ce planning était un fil conducteur tout au long du projet. Il nous a permis d’ajuster les
dérives et de maîtriser la gestion du temps alloué pour la réalisation du projet. Les livrables
des différentes phases de ce planning servent de documentation pour le projet et nous ont
servis à la rédaction de ce rapport.
Conclusion
Dans ce chapitre, nous avons présenté la politique de formation adoptée par l’ADII. Cette
politique n’est autre que le processus de gestion de la formation au sein de l’administration.
La présentation du but du projet est la seconde partie de ce chapitre suivie de la description du
processus de développement 2TUP que nous avons adopté pour le développement du système
de gestion de la formation. A base de ce processus que nous avons établi un planning de
travail afin de bien maîtriser les ressources allouées au projet.
Le chapitre suivant est consacré à l’analyse et la spécification du sujet.
Cette partie traite les deux phases les plus importantes et les
plus critiques de tout cycle de développement. Ce sont l’analyse
et la conception.
Introduction
Lors de cette phase nous avons effectué une étude des besoins des utilisateurs du système à
développer. Ces besoins ont été identifiés lors des réunions tenues avec ces utilisateurs. Cette
première phase du cycle de développement avait comme livrables, le cahier des charges
utilisateur et le cahier des charges fonctionnel.
Dans le présent chapitre nous présentons la synthèse de ces deux livrables.
1. Fonctionnalités principales
Cette partie est réservée à l’énumération ainsi qu’à la description des différentes
fonctionnalités que le système de gestion de la formation doit assurer. Une analyse profonde
du cahier des charges utilisateur établie suite aux réunions avec nos encadrants, nous a mené à
dégager les sept fonctionnalités suivantes :
Plan régional
Chaque formateur régional consulte les plans internes des UO relevant de son autorité afin de
dégager les besoins en formation à caractère régional. Le système lui permet d’élaborer un
plan régional de formation contenant les formations répondant aux besoins dégagés des plans
internes.
Dans le cas où une circonscription est directement attachée à la direction centrale, le chef de
circonscription joue le même rôle que celui du formateur régional : il établit le plan régional
des UO qui sont sous son autorité.
Plan national
Quant au plan national, le service central de la formation procède à un regroupement des
besoins exprimés dans les plans régionaux en vue de tirer ceux à caractère national, ensuite il
recense les besoins des services de l’administration centrale. Enfin, tenant compte des
orientations générales du comité directeur, le service élabore le plan national en précisant les
formations répondant aux besoins ainsi identifiés.
Ce plan doit être remis au comité pédagogique pour la planification et une éventuelle
modification. Tous ces aspects doivent être gérés par notre système à développer.
L’évaluation est aussi effectuée au niveau financier. En effet, cet axe financier permet
d’optimiser les ressources lors des prochaines réalisations.
L’opération d’évaluation a pour résultat l’élaboration d’un rapport d’évaluation qui permet de
donner une vision synthétique sur les formations réalisées au profit des agents de
l’administration.
2. Analyse du contexte
L’analyse du contexte a pour objectif l’identification des différentes entités qui interagiront
avec le système. Ces entités seront regroupées par la suite sous forme de rôles dont chacun
englobe un ensemble d’entités. Le regroupement sera effectué en se basant sur les
interactions.
• Responsable immédiat
• Formateur régional
• Chef de circonscription
• Cadre du service de formation central
• Fonctionnel de formation
• Comité directeur
• Comité pédagogique
• Système de gestion du budget
• Système de gestion des profils et compétences
• Système d’Habilitation
• Système de gestion organisationnel
• Système de gestion du personnel GIPE
L’identification des interactions des acteurs avec le système consiste à l’identification des
différents messages échangés par ces acteurs avec le système à développer.
Les messages que nous avons identifiés après l’analyse des rôles des acteurs listés ci-dessus
sont résumés dans le tableau de la page suivante :
• Vue Humaine
Sur ce diagramme nous avons regroupé les différents acteurs humains et leurs interactions
avec le système. Les acteurs potentiels sont le cadre de formation, le responsable immédiat et
le formateur régional.
• Vue Système
Ce deuxième diagramme de contexte, montre les interactions du système avec les autres
modules du projet RIAD. Ces interactions permettent de concevoir les interfaces nécessaires à
l’intégration du système au projet RIAD.
Parmi les système qui figurent sur le diagramme ceux qui sont déjà mis en place à savoir :
GIPE, Système des habilitations et le système de gestion des organisations. Les deux autres
sont en cours de développement.
Conclusion
Au cours de ce chapitre, nous avons présenté les différentes fonctionnalités auxquelles doit
répondre le système de gestion de la formation. Cela nous a permis par la suite d’identifier les
différentes entités composant l’environnement d’interactions du système, à savoir : les acteurs
humains, les acteurs systèmes et les messages échangés avec ces acteurs.
Le chapitre suivant est consacré à la présentation de la phase de conception du système de
gestion de la formation, et donc nous allons passer de l’étude de l’environnement externe du
système à l’étude de sa structure interne.
Introduction
« Diviser pour régner », c’est un principe appliqué presque partout. Cette fois, on le trouve
très pratique lors de la conception du système de gestion de la formation.
Vu la taille du système à développer, nous avons jugé très utile sa décomposition en sous
modules à faible couplage afin de bien maîtriser les aspects de modélisation.
1. Décomposition du système
Après avoir élaborer les diagrammes de contexte (Vue humaine et système), le regroupement
des messages et des interactions par catégories permet la décomposition du système selon les
différentes phases du processus de gestion de la formation dans l’ADII à savoir :
• Identification des besoins
• Elaboration des plans de formation
• Réalisation des actions de formation
• Evaluation des formations
Lors de cette décomposition en sous modules, nous nous sommes fixés l’objectif suivant : le
flux d’échange entre les sous modules doit être minimale tout en répondant à la totalité des
besoins identifié lors de la phase d’analyse des besoins.
Ainsi, cet aspect de modularité n’était en aucun cas au détriment des fonctionnalités
auxquelles le système doit répondre.
Le schéma ci-après, présente la décomposition du système (les acteurs ne sont pas tous
représentés pour ne pas surcharger le diagramme) :
UML est la plus appropriée pour des projets orientés objet. Ce choix peut être justifié
également par plusieurs raisons :
• Le processus de développement adopté se base sur les diagrammes UML
• La notation UML facilite la compréhension et la communication d’une modélisation
objet ;
• UML est aujourd’hui un standard, adopté par les grands constructeurs de logiciel du
marché.
3. Packages du système
Dans l’optique de s’aligner avec le choix du formalisme UML, les sous modules de la
décomposition sont traduit en cinq packages essentiels à savoir :
• Package grille
• Package plan
• Package action
• Package évaluation
• Package interface permettant de communiquer avec les autres systèmes.
Dans la suite de ce chapitre, nous allons nous focaliser sur les quatre packages métier et
essentiellement sur les composantes principales de chacun de ces packages. Pour mieux
expliciter ces composantes, nous nous sommes appuyés sur la méthodologie suivante :
Le diagramme suivant montre les interactions entre les cas d’utilisation de ce package et les
utilisateurs du système :
Les acteurs interagissant avec le système dans le cadre de ce package sont le responsable
immédiat qui établit les grilles de compétences et le cadre de formation qui valide l’ajout de
nouveaux savoir-faire et des opérations.
Description du cas d’utilisation « Gestion des grilles de compétences »
Sommaire d’identification
Pré condition :
1. Le responsable immédiat est authentifié.
Enchaînement : Ce cas d’utilisation commence lorsque le responsable immédiat
demande au système de créer, modifier ou supprimer une grille.
Scénario principal :
1. Création d’une nouvelle grille
Après diagnostic des compétences disponibles au sein de sa structure, le
responsable immédiat fournit les informations du diagnostic à savoir:
Une fois validée, le système calcule les deux indicateurs qui servent à
l’élaboration des plans internes.
Scénarios secondaires :
2. Mise à jour d’une grille
Le responsable immédiat peut mettre à jour une grille sélectionnée tout en :
enlevant une opération, un agent et/ou modifiant les compétences mentionnées
dans la grille.
3. Suppression d’une grille
Le responsable immédiat peut également supprimer une grille existante.
Post condition
La grille ne contient que les opérations effectuées au sein de la structure ainsi
que les agents de cette dernière.
Besoins d’IHM
Diagramme d’objets
Ce diagramme montre qu’une fois une instance de grille est créée, il y a automatiquement
création de plusieurs instances de « Savoir-faire », « Opération » et « Agent ».
Diagramme de classes
Pour ne pas surcharger le diagramme, nous avons opté à présenter les classes sans méthodes.
Diagramme de séquence
Nous allons présenter celui de la création d’une grille parce qu’il constitue le noyau de tout le
package :
Sur ce diagramme, nous illustrons les différentes interactions entre les objets participant à la
création d’une grille de compétences.
La création des grilles de compétences déclenche la deuxième phase du processus de gestion
de la formation qui est l’élaboration des plans. La partie suivante, montre la conception du
package « Plan ».
Les acteurs cette fois-ci sont : le responsable immédiat, le cadre de formation, le chef de
circonscription et le formateur régional. Ces deux derniers jouent le même rôle et ce dans le
cas où la circonscription est attachée directement à la direction centrale.
Pré condition :
1. Le responsable de formation est authentifié.
2. Les plans internes sont validés.
Enchaînement : Ce cas d’utilisation commence lorsque le responsable de formation
demande au système de créer, modifier ou supprimer un plan régional.
Scénario principal :
1. Création d’un nouveau plan régional
Le responsable de formation sélectionne les plans internes et élabore son plan
régional en se basant sur le plan provisoire offert par le système.
Il est appelé à fournir les informations nécessaires à la finalisation du plan
régional. Une fois le plan est validé par le Directeur régional, une notification
est envoyée au cadre de formation.
Scénarios secondaires :
2. Mise à jour d’un plan
Le responsable de formation peut mettre à jour un plan tout en le sélectionnant
de la liste.
3. Suppression d’un plan
Le responsable de formation peut également supprimer un plan existant.
Post condition :
Les formations qui figurent dans le plan régional peuvent être parmi celles des
plans internes.
Besoins d’IHM
Diagramme d’objets
Nous prenons comme exemple, celui du cas d’utilisation « gestion des plans régionaux » :
Diagramme de séquences
Le diagramme suivant montre les interactions entre les cas d’utilisation de ce package et les
utilisateurs du système :
Les interactions entre les entités composant ce diagramme, permettent de mettre en place les
programmes de mise en place des formations retenues dans les plans régionaux et national.
Sommaire d’identification
Pré condition :
1. Le responsable de formation est authentifié
2. L’action de formation doit être prévue dans un plan de formation
Enchaînement : Ce cas d’utilisation commence lorsque le responsable de formation
demande la création, la modification ou la suppression d’un planning de réalisation
d’une action de formation.
Scénario principal :
1. Création d’un planning
Le responsable de formation sélectionne une action de formation prévue dans un
plan de formation puis crée un planning de réalisation de l’action.
Dans le planning, il précise :
a. le lieu de déroulement
b. les dates de début et de fin
c. l’heure de début et de fin de chaque séance et sa durée
d. l’animateur de l’action…
Scénarios secondaires :
2. Modification d’un planning
Le responsable de formation sélectionne une action de formation et modifie les
éléments figurant dans le planning de l’action de formation en modifiant un ou
plusieurs des éléments cités dans la description du scénario précédent.
3. Suppression d’un planning
Le responsable de formation sélectionne une action de formation et supprime son
planning créé auparavant.
Post condition ;
Besoins d’IHM
Diagramme d’objets
Les objets figurant sur ce diagramme sont des instances des classes constituant le diagramme
de classes suivant :
Diagrammes de classes
Diagramme de séquences
Le diagramme suivant montre les interactions entre les cas d’utilisation de ce package et les
utilisateurs participants à la réalisation de la phase d’évaluation des résultats :
D’après ce diagramme, il est clair que l’évaluation s’effectue essentiellement à base des fiches
d’appréciation remplies par les participants aux formations, des fiches d’évaluation
permettant le contrôle du niveau d’apprentissage des participants et des fiches de présences.
La synthèse de ces fiches constitue le noyau du rapport d’évaluation qui est le fruit final de
cette phase.
Sommaire d’identification
Pré condition :
1. Le cadre de formation est authentifié
Enchaînement : Ce cas d’utilisation commence lorsque le cadre de formation
demande la création, la modification ou la suppression d’un rapport d’évaluation
d’une formation.
Scénario principal :
1. Création d’un rapport d’évaluation
Le cadre de formation sélectionne un plan de formation et choisit une formation,
puis crée un rapport d’évaluation de la formation.
Scénarios secondaires :
2. Modification d’un rapport d’évaluation
Le cadre de formation sélectionne un rapport d’évaluation et modifie son contenu.
3. Suppression d’un rapport d’évaluation
Le cadre de formation sélectionne une formation et supprime son rapport
d’évaluation.
Post condition :
1. Le rapport à créer doit concerner une formation déjà réalisée
Besoins d’IHM
Le plan de formation est choisi à partir d’une liste de plans qui peut être ordonnée
selon l’année pour laquelle le plan est élaboré. Lors de la création du rapport
d’évaluation d’une formation, le cadre de formation doit pouvoir accéder directement
aux fiches d’évaluation et d’appréciation.
Diagramme d’objets
Diagramme de séquences
Client
Cette architecture comporte cinq couches dont chacune a un rôle bien déterminé :
• Couche Présentation : Elle regroupe les interfaces de l’application du système qui
reçoivent les actions des utilisateurs ;
• Couche Services : Cette couche traduit les scénarios identifiés lors de la phase de
conception sous forme de services mis à disposition des utilisateurs ;
• Couche Métier : Cette couche est constituée des objets métier identifiés lors de la
phase de conception après l’élaboration des diagrammes de classes des différents
packages ;
• Couche Mapping et Persistance : Cette couche se charge de la persistance des objets
et du mapping (association des objets avec les éléments de la BD relationnelle) ;
• Couche Données : Cette dernière couche assure le stockage des données manipulées
par les utilisateurs.
Conclusion
Dans ce chapitre, nous avons exploré les différents packages métiers qui ont été identifiés lors
de la décomposition du système étudié et nous avons mis en place l’architecture technique du
système de gestion de la formation.
La conception présentée dans ce chapitre est la base de la phase de réalisation du système qui
fera l’objet de la partie suivante.
Introduction
L’infrastructure informatique mise à disposition par l’ADII pour la réalisation du projet
RIAD, est basée sur l’architecture et les technologies J2EE. Ainsi, les frameworks et les
Design Patterns open source en plus du pack Oracle9i AS sont les piliers de cette
infrastructure.
1. L’architecture J2EE
Les entreprises recherchent, de plus en plus, des solutions qui permettent la diminution des
coûts des applications et la réduction du temps de développement tout en respectant les
standards de qualité logicielle.
Typiquement, les applications qui répondent à ces besoins doivent combiner entre les
systèmes d’information existants et les nouvelles fonctions métiers qui apportent des services
à un large intervalle des utilisateurs. Ces services doivent assurer :
• Une haute disponibilité, pour répondre aux besoins actuels de l’environnement
métier ;
• La sécurisation des applications et des données.
• Une meilleure fiabilité, pour s’assurer que les transactions sont exécutées d’une
manière exacte et prompte.
Pour répondre à ces critères, ces services sont conçus à base d’applications multicouches
reposant sur plusieurs niveaux à savoir la couche client, la couche donnée et plusieurs
couches intermédiaires [wwwSUNJ2EE].
L’architecture J2EE (Java 2 Entreprise Edition) promue par SUN® MICROSYSTEMS définit
et fournit un modèle de programmation multi tiers basé sur des composants. Avec ce modèle,
des applications légères peuvent interagir facilement avec le système d'information et les
composants implantant la logique d'entreprise sur des serveurs d'applications.
L’architecture J2EE consiste en trois parties :
• Components : les composants qui prennent en charge la présentation et la logique
métier ;
• Containers : fournit un contexte aux composants ;
• Connectors : fournit l’accès aux sources de données de l’entreprise.
Transactions
Connectors
JavaBeans
Container
Messaging Mail
Applets
Un Design Pattern donne un nom, isole et identifie les principes fondamentaux d'une structure
générale, pour en faire un moyen utile à l'élaboration d'une conception orientée objet
réutilisable [GAMMA95]. Ce type de Patterns, également appelés Patterns de conception
orientés objet, sont les Patterns les plus utilisés.
Trois catégories des Design Patterns sont définies [wwwECKEL]: les patterns de création, les
patterns structuraux et les patterns de comportement (Annexe 4).
Le modèle MVC est un type de Design Patterns de la catégorie « Patterns structuraux ». Il est
simple mais en même temps très utile, il permet essentiellement de concevoir une application
en utilisant les trois niveaux suivants :
• MODEL : c’est le noyau de l’application. Il maintient l’état et les données que
l’application représente. Quand des changements significatifs apparaîtront dans le
modèle, les vues aussi seront changées ;
• CONTROLLER : il définit le comportement de l’application et gère l’interaction avec
l’utilisateur. Il fait appel au modèle des composants pour répondre aux requêtes de
l’utilisateur
• VIEW : l’interface utilisateur qui est la représentation visuelle du « modèle ».
Application Web
Servlet Modèle
Contrôleur
JSPs
Servlet Classes
NAVIGATEUR BD,
Métiers
fichiers
JSPs
Servlet
Vue
JSPs
Le modèle MVC 2 propose de palier à cet inconvénient en utilisant un seul point d’entrée
pour chaque application. Ainsi, une application contient un seul contrôleur frontal sous la
forme d'un servlet d'entrée unique.
Application Web
Servlet Modèle
Contrôleur Frontal
niq e
Classes
NAVIGATEUR BD,
Métiers
JSPs fichiers
JSPs
Vue
JSPs
C'est sur ce modèle que plusieurs frameworks sont conçus afin d'aider les développeurs à
construire la couche de présentation de leur applications web. Dans la communauté java, c'est
le projet Jakarta Struts qui fait référence
4. Framework « Struts »
Un framework est un ensemble d'outils et de composants qui aident au développement
d'application, pour un contexte donné. Cela inclut :
• Un ensemble de Design Patterns ;
• Un ensemble d’interfaces et d’implémentations ;
• Des outils associés.
4.1. Choix du framework Struts
Pour remédier aux inconvénients du modèle MVC, nous avons proposé au comité de pilotage
du projet RIAD de concevoir le système de gestion de la formation selon le modèle MVC2.
La proposition a été retenue et nous avons choisi de bénéficier des atouts du framework Struts
qui seront listés dans cette partie.
Le projet Struts est géré au sein de la communauté « Apache Software Foundation » dans le
cadre des projets « Jakarta ». La motivation de ce projet est de fournir à la communauté Java
un framework basé sur le design pattern MVC2 tout en utilisant les technologies J2EE
standards : JSP/Servlet, JavaBean, XML.
Cependant, Struts n‘est pas le seul framework permettant la gestion de la couche présentation.
En effet, d’autres frameworks ont été conçus pour le même objectif, tels que Barracuda,
Hammock, Tapestry et Webwork.
Le tableau suivant résume une comparaison entre plusieurs frameworks MVC2 [wwwAS] :
Ainsi, l’atout principal qui fait la force de Struts est la complexité réduite par rapport aux
autres Frmework de même degré de puissance.
Le manque d'expertise technique sur les technologies web de Java n'est plus un frein pour
aboutir à une application robuste, évolutive et maintenable : on peut utiliser Struts pour la
couche de présentation avec un niveau d'expertise minime.
Contrôleur
Le contrôleur du framework Struts est chargé de faire le lien entre la vue et le modèle. Il
réceptionne toutes les requêtes clientes et les redirige vers des actions spécifiques. Ces
correspondances (mapping) sont décrites dans un fichier de configuration « struts-
config.xml ».
Le contrôleur principal est matérialisé par un unique servlet offert par le framework :
« ActionServlet ». Les autres actions sont des modules actions construits à partir de classes
Struts « Action ». Chaque action accède au modèle pour récupérer les données nécessaires au
traitement de la requête cliente.
La centralisation des accès à l’application permet un contrôle fin et personnalisé des
traitements des requêtes. La gestion de la navigation est déclarative et n’est pas figée dans le
code java. Cette solution est très flexible.
Vue
La vue est un ensemble de pages JSP. Afin de faciliter leur construction, le framework struts
propose plusieurs librairies de "tag" (ou balise).
Un tag permet de séparer le code java du rendu de la page. L'écriture du tag repose sur deux
composants : les classes de gestion de tag et le fichier de description des tags. Les tags
peuvent ensuite être utilisés dans les JSPs. On évite ainsi la présence de code java au sein
même de la page JSP.
Modèle
Suivant le pattern MVC2, le modèle est indépendant du contrôleur. Le framework Struts n'en
impose aucun. Le choix technologique incombe au développeur (JDBC, EJB, JDO, XML,
Composant métier maison ...) suivant ses besoins.
Serveur d’application
Framework Struts
Contrôleur 2 Modèle
3
Action
Action Action
1 servlet
1 Action
5 EJB, CORBA,
6
JDO, JDBC,
4
7 XML,…
Vue
Navigateur JSP
JSP
JSP
Struts-config.xml
5. Framework « TopLink »
5.1. La problématique de la persistance objet
Si le modèle objet offre des capacités de modélisation et d’abstraction avancées, il est en
revanche handicapé par une grave limitation : il se focalise exclusivement sur les aspects
dynamiques de l’exécution des programmes, sans couvrir réellement la problématique de la
persistance des objets.
Par contraste, dans le modèle relationnel, les données sont persistantes : une fois que la
structure du schéma relationnel a été définie, les données qui y sont ajoutées restent
accessibles durablement, tant qu’elles ne sont pas explicitement supprimées. La durée de vie
des données est donc totalement indépendante du cycle de vie des sessions applicatives qui les
manipulent.
Pour apporter ce caractère de durabilité des données au modèle objet, il convient donc de
trouver un moyen de prolonger l’existence des objets au-delà de l’existence d’une session
applicative. Pour désigner cette capacité des objets à survivre en dehors du contexte
d’exécution applicatif, on parle de persistance objet. La problématique de la persistance objet
consiste donc à élaborer et à mettre en œuvre les mécanismes permettant de sauvegarder de
façon fiable et durable l’état des objets manipulés par une application.
La persistance objet est donc une problématique très complexe, qui nécessite la mise en
œuvre d’outils spécifiques et sophistiqués.
Parmi ces outils, on trouve Oracle9iAS TopLink qui représente la solution la plus mature sur
le marché (Annexe 5).
d’extraire des objets Java de manière transparente à l’aide d’une base de données relationnelle
ou d’autres systèmes de stockage.
Oracle9iAS TopLink permet aux applications Java d’accéder aux données stockées dans des
bases de données relationnelles en tant qu’objets. Les développeurs d’applications peuvent
travailler avec des bases de données relationnelles comme ils le feraient avec n’importe quelle
application Java, indépendamment de la persistance.
Oracle9iAS TopLink ne remplace pas JDBC, mais l’utilise efficacement et isole les
développeurs de ses détails. Les développeurs d’applications travaillent uniquement en
langage Java avec des objets via Oracle9iAS TopLink, et non avec des lignes relationnelles et
le langage SQL via des appels JDBC.
Dans l’ADII, le serveur d’applications utilisé pour le déploiement des applications du projet
RIAD, est le serveur d’application d’Oracle : Oracle 9i Application Server.
Oracle9iAS est une plate-forme très fiable dédiée au déploiement d’applications
Internet/Intranet. Ce serveur d’applications comprend des environnements J2EE et Web
Services très bien optimisés; une excellente évolutivité sur un ou plusieurs processeurs;
plusieurs fonctions de haute disponibilité telles que la tolérance aux pannes, le clustering, les
mises à jour et la maintenance en ligne; l’administration centralisée des systèmes et de la
sécurité pour les applications Internet et les utilisateurs.
Il est conçu pour réduire le coût total d’exploitation associé au développement, au
déploiement et à l’utilisation des applications.
Oracle9iAS, permet de :
• développer et déployer des sites Web Internet/Intranet dynamiques, des applications
J2EE et des Web Services ;
• créer des portails personnalisés ;
• rendre les sites et les applications accessibles depuis les navigateurs traditionnels et les
terminaux mobiles ;
• émettre des recommandations personnalisées en temps réel, analyser les journaux de
flux de clics et extraire des informations de type Business Intelligence du trafic sur le
Web ;
• intégrer les applications, sources de données et partenaires commerciaux existants au
sein d’une infrastructure e-business commune ;
• redimensionner les sites Web et applications à mesure que l’entreprise se développe ;
• administrer et sécuriser l’ensemble de l’infrastructure Web.
Conclusion
Au cours de ce chapitre, nous avons présenté les différentes technologies et outils que nous
avons mis en œuvre pour la réalisation du système de gestion de la formation de l’ADII.
Dans le chapitre suivant, nous présentons l’architecture applicative du système, ainsi que
l’implémentation de chacune des couches de cette architecture tout en utilisant les différents
outils présentés ci-dessus.
Introduction
La mise en place l’architecture technique et le choix des outils de travail présentés dans le
chapitre précédant, nous ont permis de mettre en place l’architecture applicative du système
de gestion de la formation. L’implémentation de cette architecture est le fruit de la phase de
réalisation.
La phase des tests permet de vérifier la validité du système, avant d’entamer la phase
d’intégration avec les autres modules du projet RIAD.
1. Architecture Applicative
L’architecture applicative comporte les différentes couches applicatives du système, et associe
à chaque couche l’outil de réalisation adéquat.
Afin de bien maîtriser le développement du système, l’architecture applicative du système de
gestion de la formation a été décomposée en cinq couches :
• couche Présentation ;
• couche Services ;
• couche Métier ;
• couche Mapping et persistance ;
• couche Données ;
Oracle9iAS TopLink
SGBD Oracle9i
Couche Données
(Base de données relationnelle)
Ce schéma, associe à chaque couche l’outil utilisé pour son implémentation. Ces couches ont
été développées dans l’ordre donné au début de ce paragraphe.
Chaque package de l’arborescence comporte les beans correspondant aux classes lui
appartenant.
Ces beans sont appelés par les composants de la couche Services pour répondre aux requêtes
des utilisateurs.
A travers cette interface graphique, on associe à chaque classe sa table correspondante, ainsi
que les différentes relations entre les classes.
Une fois le maping est terminé, alors on génère le code XML ou JAVA correspondant au
projet de mapping achevé afin d’exécuter les fonctions de persistance. Dans notre cas, nous
avons choisi de générer le code JAVA pour optimiser le temps d’exécution de l’application.
En effet, le code XML que génère WorkBench est transformé en code JAVA avant d’être
utilisé dans un environnement JDevelopper.
Conclusion
Dans ce chapitre nous avons présenté la dernière phase du cycle de développement du
système de gestion de la formation. Cette phase a été décomposée en deux sous phases
principales : la réalisation et l’intégration du système dans le système d’information de
l’ADII.
Conclusion et Perspectives
Nous avons pu découvrir, à travers ce projet, une nouvelle approche qui facilite grandement le
développement d’applications web. En effet, l’intégration des frameworks dans le
développement d’applications réduit considérablement le coût de développement, grâce
notamment à leur qualité d’être paramétrable.
Au cours de la période de notre projet de fin d’études, nous avons eu l’opportunité de mettre
en application les différentes connaissances acquises durant notre formation à l’ENSIAS. De
plus, nous avons eu l’occasion d’acquérir de nouveaux concepts, à savoir : la technologie
J2EE, les Design Patterns ainsi que l’utilisation des frameworks Struts et TopLink.
Les difficultés majeures que nous avons rencontrées durant ce projet résident essentiellement
dans la nouveauté du framework Open Source Struts, qui manque énormément de
documentation.
Bibliographie
Ouvrages
[LAI97] Michel LAI, UML la notation unifiée de modélisation objet, Édition InterEdition,
1997
[GAMMA95] E. Gamma et al., Design Patterns: Elements of Reusable Object Oriented
Software,Addison-Wesley Professional Computing Series. 1995.
[HUSTED03] Ted Husted et al. : Struts in Action. 2003
[SQLI03] Groupe SQLI : Maîtriser la persistance objet métier au sein d’une architecture
J2EE. 2003.
Adresses Internet
[wwwAPACHE] http://www.apache.org
Site de la fondation Apache pour le développement des logiciels Open Source
[wwwAS] http://www.application-servers.com
[wwwONJAVA] http://www.onjava.com
(Introduction to Jakarta Struts framework)
[wwwECKEL] http://www.mindview.net/Books/TIPatterns/; Bruce ECKEL (Thinking in
Patterns with Java)
[wwwLEA] http://g.oswego.edu/dl/pd-FAQ/pd-FAQ.html
D. Lea, Patterns Discussion FAQ.
[wwwTHOMAS] http://www.psgroup.com
A. THOMAS, Java 2 Platforme Entreprise Edition
[wwwIBM] http://www-106.ibm.com/developerworks/java/
(Manage complexity in large Web sites with this servlets and JSP framework)
[wwwMyCGI] http://www.mycgiserver.com
[wwwSTRUTS] http://jakarta.apache.org/struts/
Site du projet Open Source Struts
[wwwSUNJ2EE] http://Java.sun.com/J2EE
Simplified Guide to the J2EE, Sun Microsystems
ANNEXES
2. Description du projet
Afin d’assurer la polyvalence des agents et d’atténuer la vulnérabilité des structures
composants l’administration des douanes d’une part, et d’accompagner la politique de
redéploiement du personnel d’autre part, l’administration opte pour une politique de
régionalisation de la formation en se basant sur un méthode scientifique permettant d’extraire
les besoins en formation. Ces besoins sont répertories dans trois types de plans : plans
internes, plans régionaux et plan nationaux de formation.
Ainsi notre projet consiste à l’automatisation de ce processus tout en gérant les différentes
composantes de ce processus, à savoir :
La gestion des grilles de compétences qui nécessite à son tour la gestion
des opérations des structures.
La gestion ainsi que l’élaboration de tous les types de plan de formation.
La programmation des actions de formations retenues dans les plans de
formation
Elaboration du rapport d’évaluation
3. Rôles et responsabilités
L’organisation du projet est la suivante :
• Côté Administration du Douanes et Impôts Indirects :
Personne Rôle
Youssef EL MAZOURI
Mourad ZEKRAOUI
Mohamed LAHLOU Chef du service de la formation
Zouhair FADIL
Tableau 4 : Les participants au projet côté ADII
• Côté ENSIAS :
Personne Rôle
Bouchra BERRADA Professeur Encadrant
Abdellah SKAL Stagiaire élève ingénieur
Omar BEL LAKHDAR Stagiaire élève ingénieur
Tableau 5 : Les participants au projet côté ENSIAS
Personne
ENSIAS
Mme Bouchra BERRADA
ADII
Mr. Youssef EL MAZOURI
Mr. Mourad ZEKRAOUI
Mr. Mohamed LAHLOU
Mr. Zouhair FADIL
Tableau 6 : Membres du comité de pilotage
5. Planning du projet
Dans ce qui suit, le planning détaillé du déroulement du projet.
6. Plan de livrable
Afin d’assurer une bonne qualité du produit qui va être réalisé par ce projet, chaque phase du
projet va être jalonnée par un livrable comme il est indiqué ci-dessous :
SAVOIR-FAIRE EXISTANTS
NOUVEAUX
POLYVALENCE
DE GESTION A CREER
DE GESTION -SECURITE
DEVELOPPEMENT DANS LA FORMATIONS PERIODES
PERIODE INTERNES
ordonnancement
acquits a caution
Établissement et
gestion des actes
droits et taxes et
des mains levées
des déclarations
informatique de
PREVUES
Liquidation des
Prise en charge
reconnaissance
administrative
administrative
documentaire
Informatique
Décharge des
(évolution de
Bureautique
contentieux
Statistiques
en français
Validation
Rédaction
Rédaction
l'étude et l’organisation)
Partielles
en arabe
Étude
Acteurs
Forte
P1
■ ■ ■ ■ ■ ◪ ◪ ◪ ◪ ◪
Moyenne
P2
■ ◪ ◪ ◪ ■ ■ ◪ □ ■ ◪ O
Faible ♦ - Du
◪ ◪ ◪ □ ■ ◪ ◪ ◪ □ □
Liquidation des
Anglais 28/02/2000
droits et taxes et
P3 O ordonnancement au 03/03/2000
Faible ♦ - Du
□ ■ ■ □ ■ □ ◪ ◪ □ □
Etablissement et
Allemand 28/02/2000
gestion des actes
P4 contentieux
au 03/03/2000
O ♦ Liquidation des
- Du
06/03/2000
droits et taxes et au 10/03/2000
ordonnancements
Très ♦ - Du
■ ■ ◪
Etablissement et
___ ___ ___ ___ ___ ___ ___ faible 06/03/2000
gestion des actes
P5 contentieux au 10/03/2000
O ♦ Liquidation des
- Du
20/03/2000
droits et taxes et au 24/03/2000
ordonnancements
Forte Moyen Faible Très Nulle Forte Forte Forte Forte Très forte
ne forte
Vulnérabilité
■ Bonne connaissance théorique et pratique courante ou occasionnelle. □Connaissance des principes sans pratique.
◪ Connaissance des principes avec pratique occasionnelle ou bonne connaissance mais sans pratique. ━ Ni connaissance théorique ni pratique
Projet de Fin d’Etudes / ENSIAS 2004 70
Annexe3 : Processus « Y »
Annexe 3 : Processus Y
Le processus en « Y » est un processus de développement logiciel qui se caractérise par :
Fabrique de création
Une fabrique de création (ou factory) est une classe qui n'a pour rôle que de construire des
objets. Cette classe utilise des interfaces ou des classes abstraites pour masquer l'origine des
objets.
Singleton
Un singleton sert à contrôler le nombre d'instances d'une classe présent à un moment donné.
C'est souvent très pratique pour les classes sans état et effectuant toujours les mêmes
traitements.
Builder
Le Builder ou Monteur est une classe offrant des moyens de construction d'un objet. Il ne doit
pas être confondu avec la Fabrique. Le problème d'une Fabrique de création, c'est qu'elle ne
permet de définir comment un objet va être construit, certes, il est toujours possible de passer
plusieurs paramètres dans la méthode de création d'une fabrique mais cela s'avère souvent très
réducteurs voire délicat pour la maintenance.
Ces modèles de conception tentent de composer des classes pour bâtir de nouvelles structures.
Ces structures servent avant tout à ne pas gérer différemment des groupes d'objets et des
objets uniques.
Adapter
L'Adapter ou Adapter est un moyen commode de faire fonctionner un objet avec une interface
qu'il ne possède pas. L'idée est de concevoir une classe supplémentaire qui se charge
d'implémenter la bonne interface (L'Adapter) et d'appeler les méthodes correspondantes dans
l'objet à utiliser (L'adapté).
Proxy
Assez proche de l'Adapter, le Proxy cherche à ajouter un niveau de redirection entre l'appel
d'une méthode d'un objet et l'action associée. A cet effet, on construit une nouvelle classe
implémentant l'interface de l'objet à manipuler et déportant toutes les actions sur un autre
objet implémentant la même interface. Ce type de structure vise à pouvoir changer l'objet
cible sans changer l'objet source (manipulé).
Les Proxy sont très utilisés pour la gestion d'objets distribués (protocole RMI en Java par
exemple). L'idée étant de construire des Proxy capable de communiquer avec des objets
distants (usage de la sérialisation en Java) sans que l'exploitant fasse de différences entre un
accès locale ou un accès distant.
Composite
Le modèle Composite cherche à éliminer toute différence entre un groupe d'objets et un objet.
Il s'agit d'une démarche récurrente valable pour tous les problèmes qui font émerger de
nouvelles structures par association.
Iterator
L'Itérateur ou Iterator est le plus connu des modèles de comportement. L'idée étant de limiter
la vision d'une collection par un utilisateur. Typiquement une collection contient un ensemble
d'objets stockés par différentes méthodes (un tableau, un vecteur...), l'exploitant qui accède au
contenu de la collection ne souhaite pas être concerné par cette manière de gérer les objets. La
collection offre donc un point d'accès unique sous la forme d'une interface Iterator.
Template
Un Template ou Patron de méthode est très utilisé dans la conception objet. Ce modèle utilise
simplement les mécanismes de surcharge pour déléguer à d'autres classes certaines parties
d'un algorithme. L'idée ressemble un peu au modèle Builder sauf qu'ici, il sert à construire un
traitement et non un objet.
Annexe 5 : TopLink
1. Descripteur TopLink
Oracle 9iAS Toplink se base essentiellement sur les descripteurs qui lui permettent de stocker
les informations décrivant comment une instance d’objet peut être représenté dans la base de
données relationnelle
(*) ProjetToplink c’est la classe java générer une fois le mapping est terminé
Exemple 2 :
Soit le modèle objet suivant :
Une opération peut être dans plusieurs organisations et l’activité de chaque organisation se
base sur un ensemble d’opérations.
Lors de l’implémentation de cette relation, on doit trouver une collection des opérations dans
la classe organisation et une autre collection d’organisation dans la classe opération.
Avec le recul et l’expérience accumulés depuis quelques années, d’autres normes co-existent
avec J2EE, et certaines se posent même comme potentiellement concurrentes à certaines de
ses fonctionnalités. C’est le cas notamment de JDO qui se pose comme une alternative
sérieuse au modèle EJB pour la persistance.
Dans le domaine de la persistance objet, des produits comme Oracle9iAS TopLink, Hybernate
et OJB ont été conçus de sorte qu’ils soient neutres par rapport au modèle d’architecture
applicative. De plus, ces alternatives se posent non pas uniquement comme approches
concurrentes à J2EE et au modèle EJB, mais également en tant que briques complémentaires
dans une architecture multi-tiers J2EE pouvant mettre en œuvre le modèle d’application EJB.
Dans ce qui suit, une étude comparative et objective est menée entre les trois alternatives
pour la persistance d’objets métier en architecture multi-tiers J2EE :
• la persistance de composants métier à travers le modèle EJB de J2EE ;
• la persistance d’objets métier à travers le modèle JDO ;
• la persistance d’objets métier à travers Oracle9iAS TopLink, l’un des outils
de mapping objet/relationnel les plus évolués disponibles sur le marché.
Cette étude procède d’une évaluation méthodique, et s’appuie sur une grille de critères
détaillée qui regroupe en huit domaines les différents aspects de la problématique de
persistance objet:
1. Transparence de modélisation : La Flexibilité dans la modélisation permet de
modéliser le domaine métier le plus fidèlement possible ;
6. Cache objet et optimisations : La présence d’un cache objet distribué, favorise une
meilleure montée en charge des applications ;
La norme EJB définit une architecture de composants transactionnels qui couvre largement le
spectre de la modélisation métier :
• les EJB session permettent de modéliser des processus métier ;
• les EJB orienté message (message-driven beans) permettent de modéliser
des processus asynchrones ;
• enfin, les EJB entité permettent de modéliser des entités métier persistantes.
Modélisation 42%
Mapping 55%
IDE 63%
Ces résultats illustrent clairement les limitations du modèle EJB en termes de respect du
paradigme objet, avec des capacités de modélisation et de requêtage réduites. On note
également des capacités de projection (mapping) limitées, ainsi que des faiblesses au niveau
du cache objet et des optimisations proposées. Enfin, ce modèle est limité en termes de
déploiement à une architecture J2EE 4 tiers. En revanche, il bénéficie intrinsèquement d’un
haut niveau d’intégration dans l’architecture J2EE, de la disponibilité d’outils de
développement adaptés, et d’un potentiel transactionnel satisfaisant.
Modélisation 100%
Mapping 60%
IDE 50%
Les notes obtenues par le modèle JDO sur les capacités de modélisation et de requêtage
démontrent sa prise en charge complète du paradigme objet. On note également sa versatilité
en termes de support de sources de données et de déploiement, ainsi que sa facilité
d’intégration au sein d’une architecture J2EE. En revanche, les capacités de projection
(mapping) de ce modèle restent moyennes : l’explication vient d’une part du support limité
pour les relations d’association (pas de support de relations bi-directionnelles et de gestion de
l’intégrité référentielle avec la prise en charge des suppressions en cascade), et d’autre part du
faible niveau de compatibilité entre implémentations (mapping non-standardisé). Enfin, les
implémentations JDO sont des produits encore jeunes. Bien que les produits disponibles
intègrent un cache objet transactionnel sophistiqué, les possibilités de paramétrage et
d’optimisation restent limitées.
Modélisation 100%
Mapping 90%
IDE 88%
Le modèle Oracle9iAS TopLink excelle dans la plupart des domaines. On notera tout
particulièrement ses possibilités étendues en matière de requêtage objet, ses capacités de
mapping exhaustives, et un potentiel transactionnel remarquable. D’autre part, Oracle9iAS
TopLink inclut un cache objet transactionnel de haut niveau, qui offre des possibilités de
paramétrage étendues et intègre de nombreuses optimisations pour l’amélioration des
performances (optimisations au niveau de l’exécution des requêtes notamment). Enfin, ce
modèle, facilement intégrable au sein d’une architecture J2EE, offre une grande versatilité
pour le déploiement. Seuls points perfectibles, la richesse de l’IDE et le support des sources
de données. Durant les phases de développement, un environnement de test pour les objets
persistants serait un plus. D’autre part, la prise en charge des bases de données objet et des
sources de données J2C serait également appréciable.