Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2009<br />
<strong>Mémoire</strong> <strong>de</strong> <strong>fin</strong> d’étu<strong>de</strong>s<br />
<strong>esiea</strong><br />
Portail d’Architecture et environnement<br />
collaboratif – Opportunités du Web 2.0 et <strong>de</strong>s<br />
portlets<br />
Enterprise architecture portal and collaborative<br />
environments: Opportunities of Web 2.0 and<br />
portlets<br />
Société : Arismore à Saint-Cloud (92)<br />
Prési<strong>de</strong>nt <strong>de</strong> Jury, Tuteur, Parrain :<br />
Mr Lambarki, Mr Tonnelier, Mr Doriot<br />
Benjamin Petitprez<br />
Arismore<br />
03/03/2009
Table <strong>de</strong>s matières<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Remerciements ....................................................................................... 4<br />
Résumé ................................................................................................. 5<br />
Introduction générale ............................................................................... 7<br />
Introduction ......................................................................................... 7<br />
Contexte ................................................................................................ 9<br />
Arismore : Une société innovante en forte croissance .............................. 9<br />
Organisations <strong>de</strong>s stages chez Arismore ...............................................13<br />
Contexte du stage ............................................................................14<br />
Architecture d’entreprise et Urbanisme .......................................................17<br />
Introduction ........................................................................................17<br />
Dé<strong>fin</strong>ition ........................................................................................17<br />
Architecture et Urbanisme à l’heure actuelle ..........................................18<br />
Les Framework ....................................................................................18<br />
Zachman .........................................................................................18<br />
Le TOGAF ........................................................................................19<br />
Autres.............................................................................................20<br />
Etu<strong>de</strong> d’une démarche d’architecture idéale .............................................21<br />
Le modèle en couche .........................................................................21<br />
Le métier ........................................................................................22<br />
Le fonctionnel ..................................................................................25<br />
L’applicatif .......................................................................................30<br />
Le technique ....................................................................................34<br />
Le bilan ..............................................................................................36<br />
Synthèse technique du projet ...................................................................37<br />
Présentation détaillée du sujet ...............................................................37<br />
Les différentes phases du projet .............................................................38<br />
Phase d’étu<strong>de</strong> ..................................................................................38<br />
Principaux besoins attendus ...............................................................44<br />
Solutions techniques apportées aux <strong>de</strong>man<strong>de</strong>s <strong>de</strong> besoins .......................49<br />
Phase <strong>de</strong> conception.............................................................................50<br />
Objectifs .........................................................................................50<br />
Description globale <strong>de</strong> l’architecture logicielle ........................................50<br />
Comment cette architecture répond aux cas d’utilisation .........................51<br />
Arismore | Remerciements 2
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Présentation <strong>de</strong>s différentes interactions...............................................53<br />
Résultats obtenus ...................................................................................56<br />
Difficultés rencontrées .............................................................................58<br />
Conduite <strong>de</strong> projet ..................................................................................59<br />
Conduite <strong>de</strong> projet ..................................................................................59<br />
Première phase : Travail seul.................................................................59<br />
Deuxième phase : Travail en équipe .......................................................62<br />
Conclusion .............................................................................................64<br />
Bibliographie ..........................................................................................66<br />
Glossaire ...............................................................................................67<br />
Annexes ................................................................................................68<br />
Grilles d’évaluation <strong>de</strong>s différents portails ................................................69<br />
Liferay ............................................................................................69<br />
JBoss Portal .....................................................................................73<br />
Jetspeed .........................................................................................75<br />
Différence Flex/Ajax .............................................................................78<br />
Présentation ....................................................................................78<br />
Description détaillée d’Ajax ................................................................81<br />
Librairies .........................................................................................82<br />
Description détaillée <strong>de</strong> Flex ...............................................................85<br />
Communication Flex ..........................................................................86<br />
Mise en place d’une Portlet Client Riche (Flex) ..........................................88<br />
Présentation <strong>de</strong>s différentes technologies utilisées ....................................89<br />
Les portlets JSR-286 .........................................................................89<br />
Java Content Repository JSR-170 ...........................................................94<br />
Réunion <strong>de</strong> travail avec Olivier Tonnelier .................................................95<br />
Arismore | Remerciements 3
Remerciements<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Je voudrais dans un premier temps remercier toute l’équipe Arismore qui a<br />
facilité mon intégration dans l’entreprise.<br />
Et plus particulièrement, Olivier Tonnelier qui me guida, m’orienta et me<br />
forma aux bonnes pratiques <strong>de</strong> travail en entreprise. Je remercie également<br />
Johan Brelet qui m’épaula tout au long <strong>de</strong> mon stage sur les différentes parties<br />
techniques.<br />
Je tiens à remercier l’équipe <strong>de</strong> travail (Johan Brelet, Julien Lefebvre et<br />
Jean-Christophe Bohin) qui c’est construite vers la <strong>fin</strong> <strong>de</strong> mon stage, pour<br />
m’avoir intégré au sein d’une vraie équipe projet et ainsi avoir pu connaître les<br />
enjeux et les différentes démarches <strong>de</strong> travail que peut amener cette<br />
organisation.<br />
Je remercie également Mr Guy Doriot, qui a accepté <strong>de</strong> me suivre tout au<br />
long <strong>de</strong> ce stage <strong>de</strong> <strong>fin</strong> d’étu<strong>de</strong>. De plus, j’en profite pour remercier toute l’équipe<br />
enseignante du MIC <strong>esiea</strong> (Mr Jean-Paul Ve<strong>de</strong>l, Mr Gérard Delatour et Mr. Guy<br />
Doriot) pour la clarté <strong>de</strong> leur formation.<br />
Je remercie également tout le corps enseignant <strong>de</strong> l’<strong>esiea</strong>, qui m’a permis<br />
<strong>de</strong> m’épanouir lors <strong>de</strong> ces cinq <strong>de</strong>rnières années, qui m’a donné l’opportunité <strong>de</strong><br />
côtoyer différents domaines et environnements <strong>de</strong> travail.<br />
Je remercie également tous les élèves <strong>de</strong> ma promotion 2008, avec qui j’ai<br />
partagé et avec qui je partage toujours <strong>de</strong> très bons moments qu’il soient d’ordre<br />
amical ou professionnel.<br />
Et pour <strong>fin</strong>ir, je remercie Mr Lambarki, Mr Guy Doriot et Mr Olivier<br />
Tonnelier pour leurs présences lors <strong>de</strong> ma soutenance <strong>de</strong> <strong>fin</strong> <strong>de</strong> stage.<br />
Arismore | Remerciements 4
Résumé<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Ce stage a été effectué dans le cadre du stage <strong>de</strong> <strong>fin</strong> d’étu<strong>de</strong> <strong>de</strong> l’<strong>esiea</strong>. Il<br />
a été effectué au sein <strong>de</strong> la société Arismore basée à Saint-Cloud (92). Arismore<br />
est une jeune société dynamique en pleine croissance composé d’une centaine <strong>de</strong><br />
salariés. Le cœur <strong>de</strong> métier <strong>de</strong> cette société est l’architecture d’entreprise et le<br />
conseil d’entreprise.<br />
Mon stage, intitulé portail d’Architecture et environnement collaboratif :<br />
Opportunités du Web 2.0 et <strong>de</strong>s Portlets, a été effectué au sein du pôle<br />
innovation d’Arismore. Il possè<strong>de</strong> donc un fort enjeu, d’une part par l’utilisation<br />
<strong>de</strong> nouvelles technologies (Portail, Portlet, Client riche, Système <strong>de</strong> gestion <strong>de</strong><br />
contenu) et d’autre part par l’attrait <strong>de</strong> clients par une telle solution qui n’existe<br />
pas encore sur le marché.<br />
A<strong>fin</strong> <strong>de</strong> dé<strong>fin</strong>ir ce portail d’architecture, il faut bien comprendre ce qu’est la<br />
technologie <strong>de</strong> portail Web. Un portail Web est un environnement constitué <strong>de</strong><br />
plusieurs Portlet ou mini applications interagissant entre elle (messagerie, forum,<br />
wiki, annuaire…). Il existe également <strong>de</strong>s portails d’entreprise qui servent <strong>de</strong><br />
serveur <strong>de</strong> gestion <strong>de</strong> document ou d’espace <strong>de</strong> collaboration. Contrairement à<br />
ces portails qui sont orientés ressources, notre portail d’architecture est plus<br />
orienté processus et objectifs. Le travail <strong>de</strong> l’architecte lui impose la production<br />
<strong>de</strong> rapports expliquant différentes solutions. L’accumulation, la redondance ou le<br />
suivi <strong>de</strong> ces rapports est un <strong>de</strong>s principaux problèmes <strong>de</strong>s entreprises. C’est<br />
pourquoi, ce portail s’inscrit dans un projet d’innovation car il permettra d’éviter<br />
la redondance <strong>de</strong>s informations et surtout permettra <strong>de</strong> réaliser un réel suivi <strong>de</strong>s<br />
rapports produits.<br />
Notre portail d’Architecture permettra <strong>de</strong> sélectionner via un ban<strong>de</strong>au <strong>de</strong><br />
navigation, représentant un processus (Process, Activity, Task), un document<br />
qui pourra être édité en ligne en suivant un certain template préalablement<br />
dé<strong>fin</strong>i. Ce document s’appuiera directement sur les références du Système<br />
d’Information (SI) <strong>de</strong> l’entreprise. Ainsi toute modification sur le SI sera<br />
Arismore | Résumé 5
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
immédiatement reflétée sur les documents produits. Et ainsi, une simple reprise<br />
du document sera nécessaire pour la mise à jour.<br />
Mon stage c’est entièrement déroulé dans les locaux d’Arismore. On peut<br />
le décomposer en 4 phases successives. Une première a été la compréhension <strong>de</strong><br />
la documentation autour du sujet et <strong>de</strong>s technologies à utiliser. La secon<strong>de</strong> a été<br />
une phase <strong>de</strong> spécification qui a été <strong>de</strong> mettre en adéquation mes recherches<br />
avec les attentes du projet. Une troisième a été une phase <strong>de</strong> développement <strong>de</strong><br />
ces différentes fonctionnalités. Puis la <strong>de</strong>rnière phase a été l’intégration a une<br />
équipe projet qui c’est construite sur le portail d’Architecture. J’ai donc côtoyé le<br />
réel travail en équipe autour d’un modèle agile, ce qui signifie qu’on avance par<br />
petites itérations rapi<strong>de</strong>s. Ceci dans le fait que les différents acteurs du projet<br />
pouvaient à tout moment rejoindre un autre projet.<br />
Pour conclure, ce stage a été très fructueux. J’ai pu me former à <strong>de</strong><br />
nombreuses et innovantes technologies, ce qui est un grand plus pour se<br />
positionner sur le marché <strong>de</strong> l’emploi. De plus, l’équipe Arismore a été très<br />
accueillante et très disponible pour répondre à mes questions.<br />
En<strong>fin</strong>, ce stage m’a permis <strong>de</strong> trouver un emploi, puisque Arismore<br />
m’embauche dès le 16 Février 2009.<br />
Arismore | Résumé 6
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Introduction générale<br />
Introduction<br />
Ce stage s’inscrit dans la continuité <strong>de</strong> l’enseignement <strong>de</strong> l’<strong>esiea</strong> et <strong>de</strong> la<br />
volonté <strong>de</strong> faire connaître aux étudiants, dès leur première année, le mon<strong>de</strong><br />
professionnel <strong>de</strong> l’entreprise. Ceci par la pratique <strong>de</strong> nombreux stages (ouvrier,<br />
technique, à l’étranger et <strong>de</strong> <strong>fin</strong> d’étu<strong>de</strong>). Cette dynamique permet à l’étudiant<br />
d’appréhen<strong>de</strong>r <strong>de</strong> la meilleure <strong>de</strong>s façons ce <strong>de</strong>rnier stage <strong>de</strong> 9 mois.<br />
Arismore, étant une jeune entreprise avec une forte croissance et une<br />
importante dynamique, attire <strong>de</strong> nombreux étudiants pour la réalisation <strong>de</strong> leurs<br />
stages <strong>de</strong> <strong>fin</strong> d’étu<strong>de</strong>. Un <strong>de</strong>s points forts <strong>de</strong> cette société est l’attractivité et<br />
l’intérêt porté aux stages proposés. En effet, les sujets proposés sont établis <strong>de</strong><br />
façon à apporter une utilité aux réflexions, aux étu<strong>de</strong>s, et aux futurs projets <strong>de</strong> la<br />
société. Ils présentent donc un réel centre d’intérêt commun au stagiaire et à<br />
l’entreprise.<br />
Le stage que j’ai choisi entre donc tout a fait dans cette perspective. Le<br />
projet proposé, se basant sur une réflexion et l’étu<strong>de</strong> <strong>de</strong> différentes technologies<br />
proposées par le mon<strong>de</strong> Open Source, s’ouvre sur la réalisation d’une maquette<br />
<strong>de</strong> portail d’architecture en <strong>fin</strong> stage. Cette étu<strong>de</strong> s’ouvre sur la mise en place<br />
d’un réel projet interne à la société qui aboutira par sa commercialisation <strong>fin</strong><br />
2009.<br />
A<strong>fin</strong> <strong>de</strong> bien comprendre les différents enjeux <strong>de</strong> ce stage, il faut tout<br />
d’abord présenter le métier d’Arismore. Je continuerai en menant une analyse<br />
sur le métier <strong>de</strong> l’architecture d’entreprise qui joue un rôle primordial dans un<br />
portail d’architecture et qui présente le cœur <strong>de</strong> métier d’Arismore. Je poursuivrai<br />
avec une présentation détaillée du sujet pour mieux comprendre les opportunités<br />
Arismore | Introduction générale 7
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
<strong>de</strong> la mission. Puis je détaillerai les différentes phases menées lors <strong>de</strong> ce stage<br />
en apportant, avec le recul, une analyse sur les choix pris. Pour terminer, je<br />
mènerai une réflexion sur la façon dont j’ai conduit ce projet durant les sept<br />
premiers mois et comment je me suis intégré à l’équipe projet mise en place par<br />
la suite.<br />
Arismore | Introduction générale 8
Contexte<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Arismore : Une société innovante en forte croissance<br />
Arismore en bref<br />
Arismore <strong>de</strong>puis sa création accompagne la transformation <strong>de</strong>s systèmes<br />
d’information <strong>de</strong> très gran<strong>de</strong>s entreprises et <strong>de</strong> gran<strong>de</strong>s organisations.<br />
Le rythme <strong>de</strong>s changements <strong>de</strong>s entreprises et <strong>de</strong>s organisations impose<br />
<strong>de</strong> transformer le système d’information pour améliorer certaines<br />
caractéristiques parfois contradictoires : l’agilité, la performance, la sécurité et la<br />
maturité.<br />
Ainsi l’accompagnement <strong>de</strong> ces évolutions <strong>de</strong>puis plusieurs années ont<br />
permis <strong>de</strong> capitaliser au sein d’Arismore sur l’usage <strong>de</strong> nouvelles pratiques <strong>de</strong><br />
management et <strong>de</strong> nouvelles technologies.<br />
Fort <strong>de</strong> son investissement et <strong>de</strong> son expérience, Arismore est <strong>de</strong>venu le<br />
spécialiste en France du conseil en Architecture d’Entreprise et <strong>de</strong> la<br />
construction <strong>de</strong> services partagés; ce qui se traduit auprès <strong>de</strong>s clients par :<br />
La réalisation <strong>de</strong> prestation <strong>de</strong> conseil en<br />
Stratégie et Gouvernance <strong>de</strong>s systèmes d’information<br />
Architecture <strong>de</strong>s systèmes d’information<br />
La conception et l’intégration <strong>de</strong> solutions<br />
Gestion <strong>de</strong>s accès et <strong>de</strong>s i<strong>de</strong>ntités<br />
Gestion <strong>de</strong> la qualité <strong>de</strong> service,<br />
SOA (Architecture Orientée Services)<br />
La diffusion <strong>de</strong>s bonnes pratiques avec un centre <strong>de</strong> formation et <strong>de</strong><br />
certification :<br />
Arismore | Contexte 9
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Architecture d’entreprise<br />
TOGAF : The Open Group Architecture Framework<br />
ITIL<br />
Convergence telecom : IMS : IP Multimedia Subsystem<br />
Le Chiffre d’Affaires d’Arismore est <strong>de</strong> 8 420 K€ avec un résultat <strong>de</strong> 730 K€<br />
au 31 Mars 2008.<br />
axes :<br />
Innovation et Croissance rentable<br />
Arismore investit 8% <strong>de</strong> son chiffre d’Affaires en innovation sur <strong>de</strong>ux<br />
Les technologies en rupture et leurs usages<br />
Les métho<strong>de</strong>s et outils d’Architecture d’Entreprise<br />
Ainsi, Arismore s’est positionné sur <strong>de</strong>s domaines à forte valeur ajoutée<br />
auprès <strong>de</strong>s directions <strong>de</strong>s systèmes d’information et <strong>de</strong>s opérateurs télécom,<br />
notamment pour mettre en œuvre <strong>de</strong>s projets innovants et critiques tant pour<br />
leur impact métier que pour leur transversalité.<br />
D’une part Arismore est i<strong>de</strong>ntifiée comme une PME innovante en forte<br />
croissance par le Ministère <strong>de</strong>s PME et par OSEO et d’autre part obtient <strong>de</strong>puis<br />
trois années consécutives la note G3, attribuée par la Banque <strong>de</strong> France, pour<br />
récompenser sa santé <strong>fin</strong>ancière. Cette note correspond à la note maximum <strong>de</strong><br />
sa catégorie.<br />
Arismore | Contexte 10
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Engagement et relation <strong>de</strong> confiance<br />
Arismore inscrit sa relation avec ses clients dans la durée, <strong>de</strong> part sa<br />
démarche qui repose sur son engagement forfaitaire, la transparence dans sa<br />
relation, la focalisation sur l’atteinte <strong>de</strong>s objectifs, son indépendance et <strong>de</strong>s<br />
convictions affichées.<br />
Cela se traduit par un taux <strong>de</strong> fidélité <strong>de</strong> 100% et un mo<strong>de</strong> <strong>de</strong> contractualisation<br />
innovant.<br />
Les cinq plus grands clients d’Arismore sont :<br />
Arismore | Contexte 11
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
L’équipe Arismore<br />
L’organisation d’Arismore s’articule autour <strong>de</strong> 3 Domaines d’Activités<br />
Métier (DAM) et d’un pôle d’innovation ArisLabs. Ces 3 DAM sont chevauché par<br />
différents Domaines d’Expertise Métier (DET) qui jouent un rôle transverse sur<br />
l’ensemble <strong>de</strong>s 3 DAM. Ces différents DET représente les différents pôles <strong>de</strong><br />
compétence du métier d’Arismore.<br />
Arismore | Contexte 12
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Organisations <strong>de</strong>s stages chez Arismore<br />
Les stages chez Arismore sont conçus comme un vecteur d’intégration<br />
dans la société sous la forme d’un premier échange entre la société et le futur<br />
employé.<br />
Dans l’esprit <strong>de</strong> dynamique <strong>de</strong> l’entreprise et <strong>de</strong> croissance actuelle <strong>de</strong>s<br />
équipes, les stages sont une collaboration <strong>de</strong> pré embauche.<br />
Le stagiaire travaille directement sur <strong>de</strong>s sujets qui intéressent<br />
directement l’une <strong>de</strong>s offres et activités <strong>de</strong> la société. Il est amené à contribuer à<br />
une capitalisation, à l’animation du savoir-faire et au développement <strong>de</strong>s<br />
compétences au sein <strong>de</strong> la société, à titre individuel et collectif.<br />
Le processus <strong>de</strong> recrutement est donc similaire à un processus<br />
d’embauche avec <strong>de</strong>s entretiens avec le directeur <strong>de</strong> projet et le directeur<br />
technique.<br />
Un entretien <strong>de</strong> <strong>fin</strong> <strong>de</strong> stage est effectué avec le tuteur. Ceci dans le but<br />
d’avoir un ressenti sur le travail effectué et d’ouvrir une discussion sur les<br />
potentielles opportunités d’embauches.<br />
Arismore | Contexte 13
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Contexte du stage<br />
Etant entré dans la cellule innovation d’ArisLabs, je me suis inscrit sur un<br />
projet d’innovation, <strong>de</strong> recherche et <strong>de</strong> conception.<br />
Le contexte du stage fut donc d’étudier dans un premier temps les<br />
solutions innovantes <strong>de</strong> l’apport du Web 2.0, les technologies portails et les<br />
solutions <strong>de</strong> gestion <strong>de</strong> contenu.<br />
Objet du projet<br />
Sujet <strong>de</strong> stage<br />
Ce sujet <strong>de</strong> stage peut se découper en plusieurs objectifs complémentaires :<br />
Le premier objectif est celui <strong>de</strong> l’analyse <strong>de</strong>s fonctionnalités <strong>de</strong>s<br />
portails, portlets, puis leurs capacités d’intégration.<br />
Le second fut l’analyse et l’intégration d’un système <strong>de</strong> gestion <strong>de</strong><br />
contenu.<br />
Le troisième fut l’étu<strong>de</strong> <strong>de</strong>s technologies client riches et leurs capacités<br />
d’intégration au sein <strong>de</strong> portlets.<br />
Le <strong>de</strong>rnier objectif et objectif <strong>fin</strong>al est <strong>de</strong> produire une maquette<br />
fonctionnelle <strong>de</strong> portail et d’y intégrer les différents outils étudiés ci-<br />
<strong>de</strong>ssus.<br />
Arismore | Contexte 14
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Démarche générale<br />
Le stage se déroula dans une démarche projet <strong>de</strong> bout en bout. Ceci<br />
signifie qu’il suit un processus projet qui comprend différentes phases<br />
(préliminaire, d’étu<strong>de</strong>, <strong>de</strong> développement).<br />
Le stage se déroule entièrement dans les locaux d’Arismore.<br />
Le stagiaire est piloté <strong>de</strong> manière opérationnelle par un responsable<br />
technique, expert du sujet, qui apporte ses compétences tant techniques que<br />
méthodologiques.<br />
Les résultats du stage feront l’objet d’un partage et d’un échange avec les<br />
équipes d’Arismore aux différents jalons du projet, permettant ainsi que le stage<br />
s’inscrive dans une perspective métier et projet en phase avec les<br />
problématiques rencontrées dans le cadre <strong>de</strong>s missions que la société mène chez<br />
ses clients.<br />
De plus un comité technique est prévu en <strong>fin</strong> d’échéance a<strong>fin</strong> <strong>de</strong> faire<br />
partager les connaissances acquises et ainsi <strong>de</strong> capitaliser les différentes étu<strong>de</strong>s<br />
technologiques effectuées.<br />
Principales étapes<br />
Les différentes étapes du stage sont les suivantes :<br />
Phase d’étu<strong>de</strong> et <strong>de</strong> documentation<br />
o Portails du marché Open Source<br />
o Technologie <strong>de</strong> Portlet (JSR168 et JSR286)<br />
o Client riche (Flex, Ajax)<br />
o Système <strong>de</strong> gestion <strong>de</strong> contenu (JSR170)<br />
o Editeur Web (WYSIWYG)<br />
Phase <strong>de</strong> spécification<br />
o Description <strong>de</strong>s différentes fonctionnalités via la dé<strong>fin</strong>ition <strong>de</strong><br />
Use case UML<br />
o Description <strong>de</strong>s enchaînements via diagramme <strong>de</strong> séquence<br />
UML<br />
Arismore | Contexte 15
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Phase <strong>de</strong> conception<br />
o Description <strong>de</strong> l’architecture logicielle du portail<br />
o Dé<strong>fin</strong>ition du modèle <strong>de</strong> conception<br />
o Dé<strong>fin</strong>ition <strong>de</strong> l’implémentation <strong>de</strong>s fonctionnalités<br />
o Conception itérative <strong>de</strong>s différents blocs fonctionnels<br />
Objectif personnel<br />
Les objectifs personnels <strong>de</strong> ce stage sont nombreux. Ces objectifs<br />
viendront compléter les différentes expériences en entreprises que j’ai déjà<br />
effectuées.<br />
Une première partie repose sur <strong>de</strong>s objectifs humains :<br />
o Compléter mon expérience <strong>de</strong> travail en entreprise<br />
o Acquérir une réelle méthodologie <strong>de</strong> travail sur un projet<br />
complexe<br />
o Améliorer ma capacité <strong>de</strong> travailler en équipe<br />
o Profiter <strong>de</strong> ce stage pour m’intégrer dans la société<br />
Une secon<strong>de</strong> partie repose sur <strong>de</strong>s objectifs techniques :<br />
o Engranger un bagage technique important sur différentes<br />
technologies innovantes<br />
o Améliorer ma capacité d’adaptation et <strong>de</strong> compréhension d’un<br />
projet complexe<br />
o Connaître les différents livrables nécessaires au bon<br />
fonctionnement d’un projet<br />
o Apprendre la maitrise <strong>de</strong> conduite <strong>de</strong> projet avec les livrables<br />
à fournir, les échéances <strong>de</strong> travail et la communication au<br />
sein <strong>de</strong> l’équipe<br />
Arismore | Contexte 16
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Architecture d’entreprise et Urbanisme<br />
L’architecture d’entreprise est le cœur <strong>de</strong> métier d’Arismore. De plus,<br />
ayant le besoin <strong>de</strong> créer un portail d’architecture, la bonne compréhension <strong>de</strong><br />
cette démarche et <strong>de</strong> ce métier étaient primordiales. Je vais présenter ici les<br />
aspects principaux <strong>de</strong> la démarche d’architecture d’entreprise a<strong>fin</strong> d’en donner<br />
une vision la plus complète et compréhensible possible. Dans ce contexte, je<br />
serai amené à parler <strong>de</strong> l’urbanisme (ou urbanisation).<br />
Introduction<br />
Dé<strong>fin</strong>ition<br />
Architecture d’entreprise<br />
L’architecture d’entreprise est une démarche qui permet <strong>de</strong> décrire les<br />
structures et les comportements d’une organisation existante ou cible en termes<br />
<strong>de</strong> métier, d’organisation fonctionnelle, applicative et technique dans le but<br />
d’établir et <strong>de</strong> maintenir la cohérence entre la stratégie <strong>de</strong> l’entreprise et celle du<br />
Système d’Information (SI).<br />
La cohérence du SI doit être maintenue tout au long du processus <strong>de</strong><br />
transformation et <strong>de</strong>s projets. L’objectif majeur <strong>de</strong> l’architecture d’entreprise est<br />
<strong>de</strong> fournir un cadre permettant le maintien <strong>de</strong> cette cohérence et une certaine<br />
transparence.<br />
Urbanisme<br />
L’urbanisme est un concept créé en France par Jacques Sassoon dans les<br />
années 90 dans le secteur bancaire. Il s’agit <strong>de</strong> réutiliser les concepts<br />
d’urbanisme et d’organisation du territoire en les adaptant au domaine <strong>de</strong>s<br />
systèmes d’information. Les domaines adressés sont : la stratégie, le métier, le<br />
système d’information et le système informatique.<br />
L’urbanisme offre une couverture qui paraît semblable à celle <strong>de</strong><br />
l’architecture d’entreprise. Cependant la démarche n’est pas la même.<br />
Arismore | Architecture d’entreprise et Urbanisme 17
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
L’urbanisme répond à une conception cible alors que l’architecture d’entreprise<br />
est un processus continu avec une gestion du changement permanente, guidée<br />
par le(s) Framework(s).<br />
Architecture et Urbanisme à l’heure actuelle<br />
L'architecture d'entreprise est un concept qui est apparu il y a une<br />
quinzaine d’années. Sa mise en place effective a commencé au sein <strong>de</strong>s<br />
administrations aux Etats-Unis et notamment dans le secteur <strong>de</strong> la défense. Puis,<br />
la démarche s’est progressivement étendue à <strong>de</strong> gran<strong>de</strong>s entreprises telles<br />
qu’Intel ou British Petroleum. En France, l’architecture d’entreprise est un<br />
concept moins développé, même au sein <strong>de</strong>s gran<strong>de</strong>s directions informatiques.<br />
La notion d’urbanisme est plus présente. Cependant la nécessité est présente et<br />
il est clair que cette discipline va se développer rapi<strong>de</strong>ment au cours <strong>de</strong>s années<br />
à venir. En effet, <strong>de</strong>s mesures légales telles que Sarbanes-Oxley aux Etats-Unis,<br />
la loi <strong>de</strong> protection <strong>fin</strong>ancière en France ou encore Bâle II pour les banques<br />
européennes, obligent les entreprises à une plus gran<strong>de</strong> transparence. Pour cela,<br />
ces <strong>de</strong>rnières doivent se structurer, s’organiser <strong>de</strong> manière plus efficace et<br />
compréhensible, ce qui implique souvent une démarche d’architecture<br />
d’entreprise. En<strong>fin</strong>, le jeu <strong>de</strong> la concurrence et <strong>de</strong> la compétitivité va pousser les<br />
entreprises à s’aligner les unes sur les autres.<br />
Les Framework<br />
La démarche d’architecture est basée sur un cadrage <strong>de</strong>s activités<br />
réalisées. Il est donc nécessaire <strong>de</strong> dé<strong>fin</strong>ir <strong>de</strong>s cadres ou Framework. Ces<br />
<strong>de</strong>rniers englobent l’intégralité <strong>de</strong> la démarche d’architecture et permettent <strong>de</strong><br />
gui<strong>de</strong>r l’architecte dans sa réalisation. Nous allons présenter citer ici les plus<br />
connus et en donner une brève <strong>de</strong>scription.<br />
Zachman<br />
Créé par John Zachman à la <strong>fin</strong> <strong>de</strong>s années 80, ce Framework propose une<br />
manière très structurée <strong>de</strong> dé<strong>fin</strong>ir un système d’information. Il s’agit du premier<br />
Arismore | Architecture d’entreprise et Urbanisme 18
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Framework d’architecture d’entreprise : il présente un cadre permettant <strong>de</strong><br />
mettre en relation toutes les couches du SI, tout en assurant leur cohérence.<br />
Le Framework <strong>de</strong> Zachman se base sur une matrice mettant en relation les<br />
différentes questions : Quoi (Données), Comment (Fonctions), Où (Réseaux),<br />
Qui (Personnes), Quand (Temps) et Pourquoi (Objectifs) avec les différentes<br />
entités : Direction/organisation, Responsables, Concepteurs, Développeurs et<br />
Sous-traitants. Chaque case <strong>de</strong> la matrice doit être cohérente avec les cases<br />
alentour (en ligne et en colonne) ce qui assure une cohérence globale <strong>de</strong><br />
l’architecture ainsi dé<strong>fin</strong>ie. Cependant, une telle approche présente le<br />
désavantage <strong>de</strong> produire beaucoup <strong>de</strong> documentation, dont l’utilité n’est pas<br />
toujours avérée.<br />
Il est à noter que tous les autres Framework sont basés sur celui-ci, qui offre la<br />
couverture la plus complète.<br />
Le TOGAF<br />
The Open Group Architecture Framework (TOGAF) est, comme son nom<br />
l’indique, le Framework d’architecture créé par l’Open Group. Il en est<br />
actuellement à sa version 9. Il est composé d’un cycle <strong>de</strong> conception<br />
d’architecture en 8 étapes détaillées : Architecture Development Method et d’un<br />
référentiel <strong>de</strong>s modèles architecturaux <strong>de</strong> l’entreprise : l’Enterprise Continuum.<br />
ARCHITECTURE DEVELOPMENT METHOD ENTERPRISE CONTINUUM<br />
Arismore | Architecture d’entreprise et Urbanisme 19
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Autres<br />
Il existe <strong>de</strong> nombreux autres Framework adaptés à <strong>de</strong>s organisations<br />
particulières telles que les administrations ou le secteur <strong>de</strong> la défense. On citera<br />
notamment le DoDAF (Department of Defense Architecture Framework), utilisé<br />
par l’armée américaine, AGATE (Atelier <strong>de</strong> Gestion <strong>de</strong> l’ArchiTecturE), le<br />
Framework militaire français ou encore NAF (NATO Architecture Framework), le<br />
Framework <strong>de</strong> l’OTAN. On constate donc que les organisations militaires qui<br />
nécessitent rigueur et clarté dans leur fonctionnement et leur gestion, sont les<br />
premières à mettre en place <strong>de</strong>s architectures d’entreprise et créent leurs<br />
propres Framework, adapté à leur cas. Ceci montre que l’architecture<br />
d’entreprise est bien une démarche qui consiste à utiliser <strong>de</strong>s cadres et à<br />
structurer la conception, l’évolution et le pilotage du système d’information et <strong>de</strong><br />
ce qui est lié, et non une recette toute faite qui s’applique <strong>de</strong> manière similaire<br />
dans tous les cas.<br />
Arismore | Architecture d’entreprise et Urbanisme 20
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Etu<strong>de</strong> d’une démarche d’architecture idéale<br />
Le modèle en couche<br />
La démarche d’architecture d’entreprise dont il s’agit s’appuie sur le<br />
modèle en quatre couches que voici :<br />
MODELE D’ARCHITECTURE D’ENTREPRISE EN 4 COUCHES<br />
Ce modèle est un classique, et il est utilisé aussi bien pour l’urbanisme que<br />
pour l’architecture d’entreprise. Il propose un découpage <strong>de</strong>s grands domaines<br />
<strong>de</strong> l’entreprise affectés et/ou affectant le SI. Notamment, il adresse la<br />
problématique <strong>de</strong> l’alignement <strong>de</strong>s objectifs métiers avec les moyens<br />
informatique mis en œuvre.<br />
Par la suite, nous allons détailler chaque couche séparément. Pour autant,<br />
il est nécessaire <strong>de</strong> comprendre que l’enchaînement entre les couches est<br />
primordial et qu’elles ne sont pas indépendantes les unes <strong>de</strong>s autres. De même il<br />
Arismore | Architecture d’entreprise et Urbanisme 21
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
n’y a pas d’ordre préétabli dans le traitement <strong>de</strong>s couches, on peut faire du Top-<br />
Down (conception <strong>de</strong>scendante à partir du métier), du Bottom-Up (conception<br />
ascendante) ou encore un mélange <strong>de</strong>s <strong>de</strong>ux. Cela dépend <strong>de</strong>s objectifs <strong>de</strong> la<br />
mise en place <strong>de</strong> l’architecture.<br />
Le métier<br />
Description<br />
La couche métier a pour objectif <strong>de</strong> formaliser le métier <strong>de</strong> l’entreprise et<br />
pour cela <strong>de</strong> répondre aux questions quoi, qui, où et pourquoi. Il s’agit <strong>de</strong> décrire<br />
l’entreprise mais aussi <strong>de</strong> dé<strong>fin</strong>ir quels sont les besoins du métier vis-à-vis du SI.<br />
Cette <strong>de</strong>scription ne concerne pas seulement l’existant mais aussi les<br />
évolutions du métier, qui impacteront <strong>de</strong>s modifications du SI.<br />
Modélisation<br />
Les <strong>de</strong>ux éléments principaux qui permettent <strong>de</strong> décrire le métier sont les<br />
processus métier et les activités.<br />
Les processus métiers constituent un découpage logique plus ou moins<br />
détaillé <strong>de</strong>s actions ou ensembles d’actions réalisés par l’entreprise dans le but<br />
<strong>de</strong> produire une valeur ajoutée pour un client. Il existe différents types <strong>de</strong><br />
processus métier : les processus opérationnels qui adressent directement le<br />
cœur <strong>de</strong> métier tandis que d’autres, les processus <strong>de</strong> support, représentent<br />
l’environnement nécessaire à la réalisation <strong>de</strong>s processus opérationnels (comme<br />
par exemple la comptabilité, les ressources humaines, la gestion du SI…). On<br />
peut représenter les processus <strong>de</strong> la manière suivante :<br />
Arismore | Architecture d’entreprise et Urbanisme 22
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
REPRESENTATION DES PROCESSUS : ON DISTINGUE LES PROCESSUS OPERATIONNELS<br />
(HORIZONTAUX), DES PROCESSUS DE SUPPORT (VERTICAUX)<br />
Les Use Case ou cas d’utilisation présentent une vision intéressante <strong>de</strong>s<br />
interactions <strong>de</strong> l’entreprise avec les acteurs externes, en insistant sur la notion<br />
<strong>de</strong> déclenchement.<br />
Arismore | Architecture d’entreprise et Urbanisme 23
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
USE CASES<br />
Les Use Case sont ensuite détaillés en diagrammes d’activité ou<br />
diagrammes BPMN (Business Process Mo<strong>de</strong>lisation Notation). Ces <strong>de</strong>ux types <strong>de</strong><br />
diagrammes appartiennent à <strong>de</strong>s normes différentes (UML et BPMN) mais ils<br />
présentent le même objectif : décrire la manipulation et la transformation<br />
d’objets métier par <strong>de</strong>s ressources <strong>de</strong> l’entreprise. Un même diagramme décrit<br />
un nombre limité d’activités ayant une sémantique commune. On pourra<br />
éventuellement décrire différents scénarios.<br />
La <strong>de</strong>scription <strong>de</strong>s activités est une phase d’une importance capitale pour <strong>de</strong>ux<br />
raisons :<br />
Elle implique la <strong>de</strong>scription <strong>de</strong>s objets métiers et <strong>de</strong>s ressources <strong>de</strong><br />
l’entreprise.<br />
Elle permet <strong>de</strong> commencer à faire le lien entre un objectif métier et la<br />
manière <strong>de</strong> l’accomplir (manipulation d’objets métiers, mise en œuvre <strong>de</strong><br />
ressources).<br />
Arismore | Architecture d’entreprise et Urbanisme 24
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
DIAGRAMME D’ACTIVITE<br />
La <strong>de</strong>scription <strong>de</strong>s activités implique la spécification <strong>de</strong>s objets métiers<br />
(quoi), <strong>de</strong>s entités organisationnelles (qui) et décrivent <strong>de</strong>s processus répondant<br />
à <strong>de</strong>s objectifs (pourquoi). La majeure partie <strong>de</strong> la couche métier est donc<br />
décrite par ces trois diagrammes (processus, use case et activité) mais il est<br />
possible d’agréger <strong>de</strong>s <strong>de</strong>scriptions si elles sont pertinentes et fournissent <strong>de</strong>s<br />
informations supplémentaires sur le métier <strong>de</strong> l’entreprise. Par exemple, un<br />
diagramme hiérarchique <strong>de</strong>s entités <strong>de</strong> l’entreprise ou un diagramme <strong>de</strong>s<br />
différents sites ou zones géographiques sont bienvenus.<br />
Le fonctionnel<br />
Description<br />
La couche fonctionnelle décrit les ressources logiques qui vont être mises<br />
en œuvre pour réaliser les activités décrites dans la couche métier. Le terme<br />
fonctionnel fait référence à un ensemble <strong>de</strong> fonctions logiques et sémantiques et<br />
non à <strong>de</strong>s fonctions applicatives. Il s’agit ici <strong>de</strong> décrire une organisation, <strong>de</strong>s<br />
Arismore | Architecture d’entreprise et Urbanisme 25
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
traitements, <strong>de</strong>s échanges en restant en <strong>de</strong>hors <strong>de</strong> toute considération<br />
applicative ou technique.<br />
Le but recherché est une organisation logique <strong>de</strong>s fonctions, fortement<br />
découplée et sans redondance. L’urbanisation est la métho<strong>de</strong> qui semble la plus<br />
appropriée pour arriver à ce résultat.<br />
Les données manipulées par ces fonctions sont également décrites ainsi<br />
que les échanges entre les différents blocs fonctionnels.<br />
Il est important d’établir un ensemble <strong>de</strong> règles <strong>de</strong> gestion précis en ce qui<br />
concerne l’éclatement en blocs fonctionnels et la dé<strong>fin</strong>ition <strong>de</strong>s données qu’ils<br />
manipulent.<br />
Modélisation<br />
L’urbanisation <strong>de</strong>s fonctions consiste en la séparation en zones, quartiers<br />
et blocs fonctionnels. Le bloc est l’entité <strong>de</strong> plus faible granularité qui contient les<br />
fonctions.<br />
Le découpage consiste premièrement à séparer les zones <strong>de</strong> référentiels<br />
(données), d’échange (communication avec l’extérieur), <strong>de</strong> gestion (<strong>fin</strong>ance, RH,<br />
informatique…) et les zones opérationnelles (métier proprement dit).<br />
Arismore | Architecture d’entreprise et Urbanisme 26
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
PATTERN DE DECOUPAGE FONCTIONNEL REGROUPANT LES ZONES EN 4 GROUPES :<br />
OPERATIONNEL, GESTION, ECHANGE ET REFERENTIEL<br />
Après cette première séparation, chaque zone est découpée en blocs plus<br />
<strong>fin</strong>s (parfois appelés quartiers) qui sont eux-mêmes découpés en blocs<br />
fonctionnels. Le nombre <strong>de</strong> niveaux <strong>de</strong> découpage est libre et dépend du niveau<br />
<strong>de</strong> complexité <strong>de</strong> l’organisation qui est décrite. L’important est d’effectuer un<br />
découpage logique et sémantique.<br />
Prenons l’exemple <strong>de</strong> la zone « Gestion commerciale <strong>de</strong> l’énergie », elle<br />
est découpée en quartiers suivants : « Se charger <strong>de</strong>s relations clients », « Se<br />
charger <strong>de</strong>s affaires européennes »… qui traitent chacun d’un thème différent et<br />
séparé <strong>de</strong>s autres. Le quartier « Se charger <strong>de</strong>s relations clients » peut quant à<br />
lui être découpé en blocs : « Bloc gestion clients et contrats ARP », « Bloc<br />
gestion clients et contrats raccor<strong>de</strong>ment »… qui contiendront <strong>de</strong>s fonctions<br />
spécifiques. Un tel découpage, soucieux <strong>de</strong> ne pas adresser plusieurs fois le<br />
Arismore | Architecture d’entreprise et Urbanisme 27
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
même problème, permet une répartition judicieuse <strong>de</strong>s fonctions et assure un<br />
bon découplage.<br />
DIAGRAMME D’URBANISME FONCTIONNEL : DETAIL DE LA ZONE OPERATIONNELLE « GESTION<br />
COMMERCIALE DE L’ENERGIE ». EN GRIS ON VOIT LES QUARTIERS ; EN BLEU, LES BLOCS<br />
FONCTIONNEL ET EN JAUNE, LES FONCTIONS.<br />
Il est possible <strong>de</strong> réaliser plusieurs diagrammes a<strong>fin</strong> <strong>de</strong> conserver une<br />
bonne compréhension.<br />
Ces diagrammes d’urbanisation, une fois réalisés, offrent une bonne<br />
visibilité <strong>de</strong> l’organisation que l’on souhaite mettre en place. Il est intéressant <strong>de</strong><br />
les compléter par une <strong>de</strong>scription <strong>de</strong>s objets manipulés et <strong>de</strong>s principaux<br />
échanges entre zones ou blocs fonctionnels.<br />
Arismore | Architecture d’entreprise et Urbanisme 28
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Les échanges peuvent être représentés directement sur les diagrammes<br />
d’urbanisme fonctionnel. Quant aux objets, ils peuvent être représentés en UML,<br />
grâce à un diagramme <strong>de</strong> classe qui constituera une ébauche pour la couche<br />
applicative.<br />
Lien avec la couche métier<br />
L’organisation qui est décrite dans la couche fonctionnelle dépend<br />
fortement <strong>de</strong> la <strong>de</strong>scription <strong>de</strong>s processus et <strong>de</strong>s activités qui a été faite dans la<br />
couche métier. Le lien entre ces <strong>de</strong>ux couches est notamment réalisé par :<br />
La projection <strong>de</strong>s activités (UML) ou <strong>de</strong>s Elementary Business Process (BPMN)<br />
sur les fonctions présentes dans les blocs<br />
La couverture fonctionnelle <strong>de</strong>s activités décrites dans la couche métier<br />
doit être complète. Cependant, il ne s’agit pas d’un mapping systématique et il<br />
est possible d’affecter plusieurs activités à la même fonction si elles sont<br />
sémantiquement similaires.<br />
DECOUPAGE DES ZONES, EN ZONES OU QUARTIERS DE PLUS PETITE TAILLE CONTENANT DES<br />
BLOCS PRESENTANT DES FONCTIONS ADRESSANT LES ACTIVITES DECRITES DANS LA COUCHE<br />
METIER.<br />
Arismore | Architecture d’entreprise et Urbanisme 29
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
La projection <strong>de</strong>s objets métier manipulés dans les diagrammes d’activités sur<br />
les objets décrits dans la couche fonctionnelle<br />
Dans la couche métier ces objets sont utilisés et non décrits en termes <strong>de</strong><br />
structure. Dans la couche fonctionnelle, la structure <strong>de</strong>s objets manipulés est<br />
étudiée sans toutefois en arriver à une <strong>de</strong>scription <strong>de</strong> classes applicatives.<br />
CORRESPONDANCE ENTRE LES OBJETS METIERS MANIPULES DANS LES DIAGRAMMES D’ACTIVITE<br />
DE LA COUCHE METIER ET LA DESCRIPTION STRUCTURELLE DES OBJETS EFFECTUEE DANS LA<br />
L’applicatif<br />
Description<br />
COUCHE FONCTIONNELLE.<br />
La couche applicative décrit les composants technologiques répondant à<br />
l’organisation fonctionnelle spécifiée précé<strong>de</strong>mment.<br />
L’objectif est la distribution et la réutilisation <strong>de</strong>s fonctions applicatives.<br />
L’accès aux données doit également être distribué et va influer sur le choix <strong>de</strong> la<br />
métho<strong>de</strong> d’intégration. En effet, au niveau applicatif, il existe plusieurs<br />
Arismore | Architecture d’entreprise et Urbanisme 30
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
possibilités et le choix <strong>de</strong> la métho<strong>de</strong> dépend <strong>de</strong>s objectifs qui ont été fixés ainsi<br />
que du cas qui est traité.<br />
Dans cette couche, sont modélisés : les applications, leur fonctionnement,<br />
leurs composants et la manière dont elles communiquent ainsi que la structure<br />
<strong>de</strong>s données manipulées et l’utilisation <strong>de</strong> ces données par les applications en<br />
termes d’accès et <strong>de</strong> persistance.<br />
La proposition d’architecture applicative doit répondre à la modélisation<br />
fonctionnelle dans le cadre <strong>de</strong>s exigences et contraintes spécifiques au contexte.<br />
Modélisation<br />
UML offre tous les diagrammes nécessaires à la modélisation <strong>de</strong> la couche<br />
applicative mais il est possible d’ajouter d’autres types <strong>de</strong> diagrammes existants<br />
ou « maison », s’ils facilitent la compréhension et apportent <strong>de</strong>s informations<br />
pertinentes.<br />
La modélisation d’application et <strong>de</strong> données à l’ai<strong>de</strong> d’UML étant largement<br />
connue, employée et étudiée en cours, j’ai choisi <strong>de</strong> ne pas la développer dans ce<br />
rapport.<br />
Le traitement <strong>de</strong> la couche applicative peut avoir plusieurs objectifs :<br />
Audit <strong>de</strong> l’architecture applicative existante.<br />
Cela consiste à effectuer un mapping <strong>de</strong>s applications existantes sur les<br />
zones fonctionnelles délimitées précé<strong>de</strong>mment. Grâce aux diagrammes ainsi<br />
obtenus, il est possible <strong>de</strong> déterminer <strong>de</strong> nombreuses informations sur<br />
l’architecture applicative existante et sur sa logique. Si une application est située<br />
sur <strong>de</strong> nombreuses zones fonctionnelles, cela met en évi<strong>de</strong>nce un couplage trop<br />
fort et donc une dépendance importante vis-à-vis <strong>de</strong> cette application. Un autre<br />
exemple est celui <strong>de</strong>s zones fonctionnelles contenant un trop grand ou un trop<br />
petit nombre d’applications.<br />
Arismore | Architecture d’entreprise et Urbanisme 31
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Conception d’une nouvelle architecture applicative ou évolution <strong>de</strong><br />
l’architecture existante<br />
Il s’agit donc <strong>de</strong> décrire une architecture cible.<br />
Dans le cas <strong>de</strong> la <strong>de</strong>scription d’une architecture cible, l’architecture<br />
applicative type choisie va fortement impacter la conception.<br />
applicatifs :<br />
On désigne par architecture applicative, l’agencement <strong>de</strong>s éléments<br />
d’accès aux données<br />
<strong>de</strong> traitement<br />
<strong>de</strong> présentation<br />
Il existe différents modèles et différentes technologies pour réaliser et<br />
agencer ces éléments. C’est à ce niveau que le modèle est choisi, mais sa<br />
conception doit rester indépendante <strong>de</strong> l’architecture technique sur lequel il sera<br />
déployé. Une fois l’architecture applicative choisie, la modélisation <strong>de</strong>s<br />
applications peut commencer. Elle favorise généralement le découpage en blocs<br />
applicatifs réutilisables, aussi appelés services. Si les services sont hétérogènes,<br />
<strong>de</strong>s métho<strong>de</strong>s <strong>de</strong> communication sont prévues (EAI). Tout ce qui concerne la<br />
partie applicative est détaillé : les algorithmes, les <strong>de</strong>sign patterns utilisés…<br />
Arismore | Architecture d’entreprise et Urbanisme 32
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
EXEMPLE DE DECOUPAGE D’UNE APPLICATION (CC) EN BLOCS APPLICATIFS.<br />
La modélisation <strong>de</strong>s données sous forme <strong>de</strong> schéma entité relation est<br />
également traitée dans la couche applicative ainsi que la question <strong>de</strong> la<br />
persistance <strong>de</strong>s données.<br />
Liens avec la couche fonctionnelle<br />
Le lien avec la couche fonctionnelle se fait au niveau <strong>de</strong> la répartition <strong>de</strong>s blocs<br />
applicatifs sur les blocs fonctionnels<br />
Il est nécessaire <strong>de</strong> gar<strong>de</strong>r un découplage maximum tout en couvrant<br />
l’ensemble <strong>de</strong>s fonctions. Pour autant, chaque fonction <strong>de</strong> la couche fonctionnelle<br />
ne doit pas nécessairement correspondre à une fonction applicative différente.<br />
Les fonctions applicatives peuvent être utilisées dans plusieurs blocs.<br />
Au niveau <strong>de</strong>s objets métiers, modélisés sous forme <strong>de</strong> classe dans la couche<br />
fonctionnelle, ils vont être modélisés sous forme <strong>de</strong> données auxquelles il sera<br />
fait appel dans les applications.<br />
Arismore | Architecture d’entreprise et Urbanisme 33
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Le technique<br />
Description<br />
Au niveau <strong>de</strong> la couche technique, sont dé<strong>fin</strong>ies quelles sont les<br />
infrastructures nécessaires au déploiement <strong>de</strong>s éléments dé<strong>fin</strong>is dans la couche<br />
applicative ainsi que la manière dont ils communiquent.<br />
Le principal objectif lors <strong>de</strong> la conception <strong>de</strong> la couche technique est la<br />
mutualisation <strong>de</strong>s plateformes techniques dans le but <strong>de</strong> réaliser <strong>de</strong>s économies<br />
d’échelle.<br />
Modélisation<br />
La modélisation <strong>de</strong> la couche technique est principalement constituée par<br />
<strong>de</strong>s diagrammes réseau (avec la notation Cisco par exemple) qui permettent <strong>de</strong><br />
montrer la connexion entre les serveurs. Le déploiement <strong>de</strong>s composants<br />
applicatifs sur les différents serveurs peut se représenter <strong>de</strong> la manière suivante<br />
(ce qui permet <strong>de</strong> faire le lien entre les couches applicatives et techniques) :<br />
Arismore | Architecture d’entreprise et Urbanisme 34
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
EXEMPLE DE MODELISATION DE L’ARCHITECTURE TECHNIQUE D’UNE APPLICATION : ON PEUT<br />
VOIR LE DEPLOIEMENT DES COMPOSANTS APPLICATIFS SUR LES SERVEURS.<br />
La mutualisation <strong>de</strong>s serveurs entraînant une virtualisation <strong>de</strong>s serveurs à<br />
divers niveaux, il pourra être nécessaire <strong>de</strong> réaliser <strong>de</strong>s vues <strong>de</strong> l’architecture<br />
technique selon certains points <strong>de</strong> vue.<br />
Liens avec la couche applicative<br />
Le lien entre les couches techniques et applicatives est constitué par le<br />
déploiement <strong>de</strong>s composants (blocs applicatifs ou services et données) sur <strong>de</strong>s<br />
machines physiques.<br />
Arismore | Architecture d’entreprise et Urbanisme 35
Le bilan<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
La démarche d’architecture d’entreprise permet d’aboutir à un ensemble<br />
structuré <strong>de</strong> documents et <strong>de</strong> spécifications qui concernent l’existant, la cible et<br />
la manière <strong>de</strong> passer <strong>de</strong> l’un à l’autre.<br />
Il s’agit d’un processus généralement long qui, si l’on souhaite qu’il soit<br />
efficace, doit bénéficier d’un bon encadrement et d’une bonne méthodologie.<br />
Pour cela le Framework est un bon gui<strong>de</strong> mais il ne fait tout. La motivation et<br />
l’expérience <strong>de</strong>s personnes concernées est essentielle. La documentation n’est<br />
pas produite pour « faire du papier » mais dans le but <strong>de</strong> constituer un<br />
référentiel clair et réutilisable, notamment pour <strong>de</strong> futures évolutions <strong>de</strong><br />
l’architecture. Dans le TOGAF, la démarche proposée ne constitue d’ailleurs pas<br />
tout le Framework, une secon<strong>de</strong> partie, l’Enterprise Continuum propose la<br />
création d’un référentiel <strong>de</strong>s modèles d’architecture <strong>de</strong> l’entreprise.<br />
Arismore | 36
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Synthèse technique du projet<br />
Comme je l’ai rapi<strong>de</strong>ment détaillé ci-<strong>de</strong>ssus, mon stage c’est déroulé en 3<br />
étapes majeures.<br />
J’ai tout d’abord du comprendre et assimiler le sujet, ceci impliqua une<br />
forte documentation et une recherche approfondie sur le sujet. Ensuite une<br />
phase <strong>de</strong> recherche, <strong>de</strong> documentation et <strong>de</strong> test technologiques a été réalisée<br />
a<strong>fin</strong> <strong>de</strong> choisir les technologies pivot du projet (choix du portail, choix d’un<br />
système <strong>de</strong> gestion <strong>de</strong> contenu, choix d’un serveur d’application, etc.). Ces<br />
différents choix furent très structurant pour la suite du projet c’est pourquoi, il<br />
n’a pas fallu les prendre à la légère. Suite à toutes ces étu<strong>de</strong>s, j’ai pu rédiger un<br />
dossier d’étu<strong>de</strong> expliquant pourquoi j’ai proposé telles et telles technologies et<br />
résumant la portée <strong>de</strong> mon stage par rapport au projet global.<br />
Suite à toutes ces réflexions et choix technologiques, j’ai pu commencer la<br />
rédaction d’un dossier <strong>de</strong> conception expliquant le modèle <strong>de</strong> conception qui sera<br />
mis en place et quelle démarche sera utilisée pour l’implémentation du portail<br />
d’architecture.<br />
Puis une troisième partie fut la réalisation concrète <strong>de</strong> ce portail. Après le<br />
choix <strong>de</strong>s technologies, il a fallu monter en compétences sur certaines comme le<br />
Flex, qui est une technologie innovante dont j’étais novice, ou JackRabbit, qui a<br />
été retenu comme implémentation <strong>de</strong> notre système <strong>de</strong> gestion <strong>de</strong> contenu.<br />
Présentation détaillée du sujet<br />
Ce projet consiste à la mise en place d’un portail d’architecture. Ce portail<br />
permettra la mise à disposition d’un ensemble <strong>de</strong> documents relatif à<br />
l’architecture au sein d’un même et unique socle. Ce portail a pour but la<br />
collaboration, la mise à disposition et le partage d’informations.<br />
Il a pour objectif <strong>de</strong> simplifier la production <strong>de</strong> documents et surtout<br />
d’éviter leurs redondances et d’assurer la pérennité <strong>de</strong>s documents via <strong>de</strong>s mises<br />
à jour bidirectionnelles avec le référentiel d’architecture.<br />
Arismore | Synthèse technique du projet 37
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Ce projet se situe dans un contexte d’innovation. En effet, aucun produit<br />
semblable n’existe encore sur le marché. Certains grands groupes sont en train<br />
<strong>de</strong> réfléchir à <strong>de</strong> telles solutions mais nous nous différentions d’eux par notre<br />
approche qui est plus basée processus et objectifs que ressources.<br />
En effet, le but <strong>de</strong> ce portail n’est pas l’accumulation <strong>de</strong> documents ou <strong>de</strong><br />
comités mais plutôt <strong>de</strong> permettre <strong>de</strong> mettre en regard les contributions avec les<br />
capacités humaines déployées et d’offrir un environnement <strong>de</strong> travail facilitant le<br />
support <strong>de</strong> l’activité et le travail au quotidien. De plus, le but <strong>de</strong> ce portail est<br />
d’être utile par un usage par intérêt <strong>de</strong>s utilisateurs et non par une obligation <strong>de</strong><br />
travail.<br />
De nos jours, le marché <strong>de</strong>s solutions informatiques est en perpétuelle<br />
évolution, c’est pourquoi il faut avoir une vision assez lointaine (environ 2 ans)<br />
<strong>de</strong>s futures technologies, métho<strong>de</strong>s et solutions qui inon<strong>de</strong>ront le marché a<strong>fin</strong> <strong>de</strong><br />
pouvoir dès maintenant les incorporer à notre solution.<br />
On peut distinguer 3 principaux acteurs impliqués dans ce projet :<br />
Benjamin Petitprez, Johan Brelet et Olivier Tonnelier. Benjamin Petitprez<br />
s’occupe <strong>de</strong> l’étu<strong>de</strong> et <strong>de</strong> la conception du projet, il est supervisé par Johan<br />
Brelet qui l’appuie sur un point <strong>de</strong> vue technique. Olivier Tonnelier, quant à lui,<br />
est responsable du projet, c'est-à-dire qu’il coordonne le travail, apporte les<br />
exigences liées au projet ainsi que les fonctionnalités attendues.<br />
Les différentes phases du projet<br />
Phase d’étu<strong>de</strong><br />
Objectif d’une phase d’étu<strong>de</strong><br />
L’objectif <strong>de</strong> cette présente phase est <strong>de</strong> présenter l’étu<strong>de</strong> du projet Portail<br />
d’Architecture. Il va permettre d’avoir une vue d’ensemble du projet et<br />
comprendre les besoins attendus. Nous détaillerons par la suite les différentes<br />
Arismore | Synthèse technique du projet 38
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
étu<strong>de</strong>s et tests réalisés durant la phase d’étu<strong>de</strong> préliminaire, a<strong>fin</strong> <strong>de</strong> montrer et<br />
d’expliquer les solutions choisies.<br />
Les fondamentaux<br />
Le but <strong>de</strong> ce projet est la réalisation d’un portail d’architecture. Ce nouvel<br />
outil vise à regrouper et structurer toutes les informations utiles du métier <strong>de</strong><br />
l’architecte. Ce socle commun <strong>de</strong> l’information <strong>de</strong> l’architecte suivra <strong>de</strong>s normes<br />
et <strong>de</strong>s standards comme (TOGAF, ITIL). Il <strong>de</strong>vra tenir compte <strong>de</strong> l’existant dans<br />
un premier temps puis s’ouvrir à l’ajout et la modification <strong>de</strong> données. Ceci sera<br />
réalisé sur la base d’un portail Open Source qui <strong>de</strong>vra être compréhensible par<br />
tous types d’acteurs (production, commercial, fonctionnel, technique). Pour cela,<br />
il <strong>de</strong>vra s’articuler autour <strong>de</strong> différentes vues ou méta-modèles compréhensibles<br />
par chacun.<br />
Le concept <strong>de</strong> portail Web<br />
Le portail Web est la base principale <strong>de</strong> notre projet. C’est autour <strong>de</strong> ce<br />
concept que nous allons construire notre solution <strong>fin</strong>ale. Il existe aujourd’hui une<br />
multitu<strong>de</strong> d’offres <strong>de</strong> portail Web sur le marché <strong>de</strong> l’Open Source.<br />
Il existe plusieurs types <strong>de</strong> portail : les portails web et les portails<br />
d’entreprise ou applicatif. Le portail d’entreprise doit pouvoir offrir un bureau<br />
virtuel aux utilisateurs a<strong>fin</strong> qu’ils puissent avoir accès à différentes informations<br />
sur l’entreprise, un domaine ou un projet.<br />
Nous allons par la suite donner une dé<strong>fin</strong>ition détaillée d’un portail<br />
d’architecture, qui est un sous-ensemble d’un portail d’entreprise. Puis, nous<br />
détaillerons par la suite, le choix du portail utilisé et les raisons qui nous ont<br />
poussés à choisir ce <strong>de</strong>rnier.<br />
Dé<strong>fin</strong>ition<br />
Le portail d’entreprise peut être assimilé à une plate-forme intranet<br />
donnant accès à <strong>de</strong>s données <strong>de</strong> l’entreprise ainsi qu’à différentes ressources du<br />
système d’information au sein d’une interface unique. Il se décompose souvent<br />
en <strong>de</strong>ux parties. La première est une partie information qui permet <strong>de</strong> référencer<br />
Arismore | Synthèse technique du projet 39
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
les différents artefacts constituant le SI d’une entreprise (Serveurs, Applications,<br />
Composants, …). La secon<strong>de</strong> partie est plus orientée gestion <strong>de</strong> contenu ce qui<br />
permet aux utilisateurs d’interagir au sein du portail et ainsi <strong>de</strong> publier, modifier<br />
ou supprimer <strong>de</strong> l’information (Section Documentaire). La jonction <strong>de</strong> ces <strong>de</strong>ux<br />
éléments permet <strong>de</strong> rendre le portail très interactif et bidirectionnel.<br />
Un portail est un environnement <strong>de</strong> travail qui se compose d’une partie<br />
commune à tous les utilisateurs et d’une partie privée qui permet <strong>de</strong> se créer son<br />
propre espace personnel <strong>de</strong> travail. Ces <strong>de</strong>ux parties sont composées <strong>de</strong> Portlet.<br />
Les Portlets peuvent être considérés comme <strong>de</strong>s blocs qui traitent <strong>de</strong>s<br />
requêtes d’une tâche ou d’un service et génèrent dynamiquement un contenu.<br />
Ces portlets sont soumises à la norme JSR-168 et plus récemment à la norme<br />
JSR-286, que nous détaillerons par la suite. Cette norme permet <strong>de</strong> qualifier les<br />
actions possibles <strong>de</strong> la Portlet et surtout <strong>de</strong> les construire selon un modèle qui<br />
permettra <strong>de</strong> les déployer sur n’importe quel portail.<br />
Un portail dispose également d’une partie administration qui permet <strong>de</strong><br />
dé<strong>fin</strong>ir les droits <strong>de</strong>s différents utilisateurs et d’administrer le portail général. Le<br />
choix <strong>de</strong>s portlets disponibles sur le portail commun est géré par<br />
l’administrateur. Il donne ainsi l’accès à différentes ressources en fonction du<br />
profil <strong>de</strong> l’utilisateur connecté.<br />
Choix du portail<br />
Nous avons du retenir un portail Open Source pour la réalisation <strong>de</strong> notre<br />
portail d’architecture. Pour cela, nous avons dans un premier temps regardé les<br />
différentes offres que nous offrait le marché <strong>de</strong> l’Open Source. Nous avons pu<br />
ainsi élaborer une liste <strong>de</strong>s différentes possibilités, après une première étu<strong>de</strong> <strong>de</strong><br />
documentation, nous avons pu effectuer une première short liste.<br />
Les 5 portails qui nous ont particulièrement intéressé et donc qui ont été<br />
retenus sont les portails Liferay, Uportal, Exo Plateform, Jetspeed et JBoss portal.<br />
Nous avons donc mené une étu<strong>de</strong> détaillée <strong>de</strong> ces différents portails.<br />
suivants :<br />
Les différents points, fonctionnalités que nous avons étudiées sont les<br />
Authentification<br />
Arismore | Synthèse technique du projet 40
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Gestion <strong>de</strong> contenu<br />
Outils collaboratifs<br />
Administration fonctionnelle<br />
Administration Technique<br />
Personnalisation<br />
Installation<br />
Intégration<br />
Business Intelligence<br />
Développement (OS, Base <strong>de</strong> données, Environnement, Normes<br />
respectées, Serveurs d’application)<br />
Point faible / Point fort<br />
Cette première étu<strong>de</strong>, nous a permis <strong>de</strong> mieux comprendre les<br />
technologies <strong>de</strong> portails. On s’aperçoit qu’ils respectent dans l’ensemble les<br />
normes standard comme JSR-168, WRSP, JSF. De plus, ils sont tous les cinq<br />
développés sur un environnement JAVA. D’un point <strong>de</strong> vue base <strong>de</strong> données, ils<br />
acceptent en gran<strong>de</strong> majorité les principales comme MySQL, Oracle, Postgres<br />
SQL,….<br />
Nous avons dû choisir <strong>de</strong>s critères, pour nous permettre <strong>de</strong> restreindre<br />
cette liste. Pour cela, nous avons regardé l’étendu et le fonctionnement <strong>de</strong>s<br />
portlets disponibles <strong>de</strong> base.<br />
On a pu ainsi éliminer Uportal qui proposait peu <strong>de</strong> portlets et surtout qui<br />
n’était pas très adapté à notre utilisation. Ce portail est plus <strong>de</strong>stiné à une<br />
communauté étudiante que professionnelle, par suite les outils dont il dispose<br />
sont orientés presque exclusivement affichage d’information et promotion<br />
d’évènement.<br />
Ensuite, nous nous sommes posé la question <strong>de</strong> la facilité <strong>de</strong> prise en main<br />
<strong>de</strong> la future solution. Sur ce point, Exo Plateform nous est apparue très<br />
complexe. En effet, il dispose <strong>de</strong> beaucoup <strong>de</strong> bons éléments comme Exo Web<br />
OS, Exo ECM et Exo CS mais tous ces éléments très complets technologiquement<br />
Arismore | Synthèse technique du projet 41
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
et graphiquement nous seront très durs à modifier. Par conséquent, nous avons<br />
du supprimer <strong>de</strong> notre liste ce portail également.<br />
En résumé, après cette première phase notre short list ne contient plus<br />
que 3 portails :<br />
Liferay<br />
Jetspeed<br />
JBoss Portal<br />
Une secon<strong>de</strong> étu<strong>de</strong> est donc nécessaire a<strong>fin</strong> <strong>de</strong> choisir un seul portail pour<br />
notre solution <strong>fin</strong>ale. Pour cela, nous avons porté attention à d’autres critères<br />
comme :<br />
La communauté qui soutient le portail<br />
La documentation technique et fonctionnelle qui est disponible<br />
La partie administration<br />
La gestion <strong>de</strong>s droits utilisateurs<br />
La facilité <strong>de</strong> prise en main<br />
Exigences <strong>de</strong>mandées<br />
On s’aperçoit ainsi que le portail Liferay, est très complexe dans la gestion<br />
<strong>de</strong> l’administration et la gestion <strong>de</strong>s utilisateurs. En effet, contrairement aux<br />
portails dit « classiques », il ne dispose pas uniquement d’un socle commun et<br />
d’un socle privé mais aussi 3 autres types <strong>de</strong> socle (location, guest, …) qui ne<br />
nous seront pas utiles. Ensuite, d’un point <strong>de</strong> vue esthétique, le portail Jetspeed<br />
reste très sobre et ancestral. C’est pourquoi, nous l’avons également supprimé.<br />
Pour conclure, nous avons choisi d’utiliser le portail JBoss.<br />
Arismore | Synthèse technique du projet 42
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Le client riche<br />
Aujourd’hui, il existe <strong>de</strong> plus en plus d’applications web qui utilisent les<br />
technologies riches. On peut distinguer <strong>de</strong>ux principaux éditeurs Microsoft et<br />
Adobe avec respectivement Silverlight et Flex. On peut voir ensuite <strong>de</strong>s solutions<br />
comme Mozilla avec XUL, Google avec la gestion <strong>de</strong> l’AJAX et Open Laszlo.<br />
De nos jours, la gran<strong>de</strong> majorité <strong>de</strong>s sites internet essayent <strong>de</strong> se<br />
convertir à ces nouvelles technologies. Elles permettent d’embarquer les<br />
nouveaux mo<strong>de</strong>s <strong>de</strong> communication comme l’écoute ou la vidéo <strong>de</strong> façon assez<br />
simple. Ensuite, on souhaite que les sites web soient le plus intuitif possible et<br />
qu’il n’y ait pas <strong>de</strong> perte <strong>de</strong> temps lors <strong>de</strong> la recherche d’informations, grâce à<br />
ces technologies cela est optimisé.<br />
En contre partie <strong>de</strong> ces atouts, une application client riche reste plus<br />
lour<strong>de</strong> en temps <strong>de</strong> chargement qu’une application basique. De plus, quelques<br />
problèmes <strong>de</strong> compatibilité d’affichage suivant le navigateur utilisé peuvent être<br />
ressentis.<br />
Java Content Repository (JCR)<br />
Dans le cadre <strong>de</strong> ce projet, la principale fonction est la gestion <strong>de</strong><br />
document. Pour cela, nous allons nous servir d’un JCR qui s’appuie sur la<br />
spécification JSR-170. Le JCR nous permettra <strong>de</strong> manager nos documents, que<br />
ce soit pour l’ajout, la modification, le versioning ou la suppression.<br />
Le JCR permet à l’utilisateur <strong>de</strong> ne pas se soucier <strong>de</strong> la façon dont est<br />
stockée en base <strong>de</strong> données l’information. L’utilisation du JCR est équivalente à<br />
la gestion d’arbres qui comporte un ensemble <strong>de</strong> nœuds qui peuvent eux-mêmes<br />
possé<strong>de</strong>r un ensemble <strong>de</strong> propriétés.<br />
Notre JCR s’appuie sur l’implémentation JackRabbit, qui est la solution<br />
open-source <strong>de</strong> référence. Le stockage s’effectue au sein d’une base MySQL 5.<br />
Arismore | Synthèse technique du projet 43
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Principaux besoins attendus<br />
Saisie documentaire<br />
Description fonctionnelle<br />
L’espace <strong>de</strong> saisie documentaire est l’un <strong>de</strong>s éléments importants du<br />
portail d’architecture. Cet espace est <strong>de</strong>stiné à la création ou à la modification <strong>de</strong><br />
contenu. Un contenu est stocké dans le registre du portail, il doit pouvoir<br />
s’adosser aux informations issues du registre du référentiel. Pour cela, il doit être<br />
possible <strong>de</strong> faire <strong>de</strong>s tags sémantiques vers <strong>de</strong>s informations du référentiel<br />
(préciser le contexte, le modèle, …) ou <strong>de</strong> faire un push d’informations issues<br />
d’un outil extérieur (modèle Sparx (modèle UML), …).<br />
Cet espace s’appuie principalement sur le ban<strong>de</strong>au <strong>de</strong> navigation a<strong>fin</strong> <strong>de</strong><br />
pouvoir naviguer au sein du processus et ainsi effectuer une tâche.<br />
Voici un aperçu <strong>de</strong> l’IHM <strong>de</strong> notre espace <strong>de</strong> saisie documentaire avec le<br />
ban<strong>de</strong>au <strong>de</strong> navigation :<br />
Arismore | Synthèse technique du projet 44
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Après la saisie <strong>de</strong> notre contenu, on dispose <strong>de</strong> plusieurs possibilités<br />
d’enregistrement :<br />
Simple validation<br />
Deman<strong>de</strong> <strong>de</strong> validation auprès d’un ou d’autres acteurs<br />
Deman<strong>de</strong> <strong>de</strong> complément auprès d’un ou d’autres acteurs<br />
Description technique<br />
A<strong>fin</strong> <strong>de</strong> pouvoir créer <strong>de</strong>s contenus, il faudra intégrer un éditeur <strong>de</strong> texte.<br />
Plusieurs offres du marché s’offrent à nous, 2 principales, FCKeditor et tinyMCE<br />
(éditeur utilisé dans le CMS <strong>de</strong> JBoss), pourraient nous intéresser. Elles disposent<br />
toutes <strong>de</strong>ux d’un éditeur WYSIWYG permettant <strong>de</strong> mettre facilement en forme<br />
son texte. Les composites ainsi créés seront stockés au sein du JCR dans le<br />
registre Portail.<br />
Section explorateur et catalogue<br />
Description fonctionnelle<br />
L’explorateur sera également très important au sein du portail. Il<br />
permettra <strong>de</strong> pouvoir accé<strong>de</strong>r rapi<strong>de</strong>ment aux ressources, qu’elles soient situées<br />
dans la section documentaire, dans le registre du référentiel ou dans le<br />
continuum.<br />
Arismore | Synthèse technique du projet 45
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Explications <strong>de</strong> fonctionnement :<br />
On sélectionne dans un premier temps le choix du registre à explorer<br />
(Section documentaire (Rapport), Référentiel d’architecture ou continuum)<br />
On peut effectuer une recherche directement par type <strong>de</strong> support ou à<br />
l’ai<strong>de</strong> du nom du fichier.<br />
Cas section documentaire (Mo<strong>de</strong> view et modif)<br />
On choisi le domaine et le travail (obligatoire)<br />
Choix <strong>de</strong> la tâche (optionnel)<br />
Visualisation <strong>de</strong>s différents documents dans l’explorateur<br />
• Si tâche sélectionnée : visibilité uniquement <strong>de</strong>s documents<br />
associés<br />
• Si tâche non sélectionnée : visibilité <strong>de</strong> toutes les tâches et <strong>de</strong> leurs<br />
documents associés<br />
Arismore | Synthèse technique du projet 46
Redirection<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Après sélection du document redirection vers un viewer ou la Portlet<br />
d’édition pour modification<br />
Description technique<br />
D’un point <strong>de</strong> vue technique, cet explorateur s’appuie sur les différents<br />
JCR. En effet, il va faire une lecture <strong>de</strong>s différents registres et ainsi afficher et<br />
mettre à disposition les différents documents qui les composent. Ceci va se faire<br />
en parcourant l’arbre <strong>de</strong> chaque registre et ainsi on récupérera les différents<br />
documents et propriétés associées. Ensuite via plusieurs actions, nous pourrons<br />
être redirigés vers l’espace <strong>de</strong> travail ou vers un simple viewer.<br />
Ban<strong>de</strong>au <strong>de</strong> navigation au sein d’un processus<br />
Description fonctionnelle<br />
Le ban<strong>de</strong>au <strong>de</strong> navigation doit permettre à l’utilisateur d’accé<strong>de</strong>r <strong>de</strong> façon<br />
intuitive à la tâche sur laquelle il souhaite travailler et ainsi le gui<strong>de</strong>r au travers<br />
<strong>de</strong>s différentes phases et activités.<br />
Voici une IHM non dynamique du futur ban<strong>de</strong>au :<br />
Explications <strong>de</strong> fonctionnement :<br />
Ce ban<strong>de</strong>au sera appelé dans le cas d’un travail. Il est généré à partir d’un<br />
fichier XML en fonction du domaine et du travail choisi préalablement.<br />
Il se divise en 3 parties :<br />
• Choix <strong>de</strong> la phase du processus<br />
Arismore | Synthèse technique du projet 47
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
• Choix <strong>de</strong> l’activité<br />
• Choix <strong>de</strong> la tâche<br />
Les activités et tâches auxquelles on ne peut pas contribuer sont grisées.<br />
Lorsque nous allons sur une tâche, nous pouvons voir la liste <strong>de</strong>s entrants<br />
et sortants <strong>de</strong>mandés.<br />
Lorsque nous cliquons sur le sortant auquel nous voulons contribuer, nous<br />
sommes redirigés vers la zone d’édition.<br />
Lorsque qu’une tâche possè<strong>de</strong> tous ces entrants, elle passe en mo<strong>de</strong><br />
accessible et lorsqu’elle possè<strong>de</strong> tous ces sortants, on peut la clôturer.<br />
Description technique<br />
A<strong>fin</strong> <strong>de</strong> réaliser le ban<strong>de</strong>au, nous avons du faire <strong>de</strong> la lecture <strong>de</strong> fichier<br />
XML stocké en base <strong>de</strong> données. Pour cela, nous avons utilisé un mapping<br />
Hibernate a<strong>fin</strong> <strong>de</strong> récupérer le fichier en base et ensuite nous utilisons la librairie<br />
DOM pour traiter et récupérer les informations (phase, activité, tâche) a<strong>fin</strong> <strong>de</strong><br />
pouvoir générer le ban<strong>de</strong>au.<br />
Dans un état <strong>fin</strong>al, le ban<strong>de</strong>au <strong>de</strong>vra être dynamique et utiliser les<br />
nouvelles technologies client riche comme le Flex. Ceci permettra <strong>de</strong> le mettre en<br />
avant et <strong>de</strong> le rendre le plus intuitif possible pour les utilisateurs.<br />
Arismore | Synthèse technique du projet 48
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Solutions techniques apportées aux <strong>de</strong>man<strong>de</strong>s <strong>de</strong> besoins<br />
Utilisation d’un JCR pour le management <strong>de</strong>s données<br />
A<strong>fin</strong> <strong>de</strong> pouvoir gérer les fichiers issus <strong>de</strong> notre espace <strong>de</strong> travail, nous<br />
utilisons un Java Content Repository. Ce JCR s’appuie sur la norme JSR-170 et<br />
est implémenté par JackRabbit. Le stockage <strong>de</strong>s données d’un JCR s’effectue <strong>de</strong><br />
manière très ordonnée en base. En effet, il sépare les nœuds <strong>de</strong>s propriétés, <strong>de</strong>s<br />
fichiers, <strong>de</strong>s versions. Ceci dans le but <strong>de</strong> faire du content management, c'est-à-<br />
dire <strong>de</strong> gérer les versions <strong>de</strong> fichiers, créer, supprimer ou <strong>de</strong> modifier les<br />
documents. Mais grâce au Java Content Repository, cette couche base <strong>de</strong><br />
données est transparente pour le développeur. Il accè<strong>de</strong> directement aux<br />
données via JackRabbit, on récupère ainsi un arbre avec un nœud Root en tant<br />
que racine, il ne reste plus qu’à le parcourir pour récupérer les éléments<br />
souhaités.<br />
Utilisation d’Hibernate<br />
Pour la génération du ban<strong>de</strong>au nous utilisons différents Template XML qui<br />
représentent les différents travaux qui peuvent être réalisés. Ces fichiers XML<br />
sont enregistrés dans une base <strong>de</strong> données, nous avons utilisé Hibernate a<strong>fin</strong> <strong>de</strong><br />
réaliser un mapping entre les éléments <strong>de</strong> la base et <strong>de</strong>s objets java. Ceci dans<br />
le but <strong>de</strong> simplifier l’utilisation <strong>de</strong>s données <strong>de</strong> la base <strong>de</strong> données.<br />
Utilisation <strong>de</strong> Flex pour dynamiser le ban<strong>de</strong>au<br />
L’utilisation d’une technologie riche comme le Flex permettrait <strong>de</strong> rendre<br />
dynamique le ban<strong>de</strong>au <strong>de</strong> navigation et ainsi le rendre le plus intuitif possible. De<br />
plus, grâce à cette technologie on peut donner un aspect visuel très intéressant.<br />
Arismore | Synthèse technique du projet 49
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Phase <strong>de</strong> conception<br />
Suite à cette phase d’étu<strong>de</strong> qui s’effectua sur les 4 premiers mois, j’ai pu<br />
avoir une bonne connaissance du contexte du projet et <strong>de</strong>s technologies qui s’y<br />
rattachent. J’ai donc proposé un premier modèle <strong>de</strong> conception qui m’a servi <strong>de</strong><br />
base <strong>de</strong> travail pour la suite.<br />
Objectifs<br />
Le but <strong>de</strong> ce présent document est <strong>de</strong> montrer le modèle <strong>de</strong> conception<br />
choisi et la démarche utilisée pour l’implémentation <strong>de</strong> ce portail d’architecture.<br />
Seront ainsi détaillés les différents diagrammes <strong>de</strong> séquence <strong>de</strong>s principaux cas<br />
d’utilisation détaillé dans le dossier <strong>de</strong> spécification. Nous détaillerons également<br />
l’architecture logicielle et les technologies choisies. Nous commencerons par une<br />
étu<strong>de</strong> générale du projet puis nous nous attar<strong>de</strong>rons plus précisément sur une<br />
<strong>de</strong>scription plus <strong>fin</strong>e <strong>de</strong>s différents lots <strong>de</strong> conception qui ont été dé<strong>fin</strong>is.<br />
Description globale <strong>de</strong> l’architecture logicielle<br />
L’architecture logicielle <strong>de</strong> notre projet va nous permettre <strong>de</strong> décrire les<br />
différents composants utilisés, leurs interrelations et leurs interactions. Nous<br />
allons donc essayer <strong>de</strong> décrire comment notre portail doit être conçu a<strong>fin</strong> <strong>de</strong><br />
répondre aux spécifications <strong>de</strong>mandées.<br />
Notre projet va s’articuler autour d’une architecture 3-tiers :<br />
Une couche IHM qui permettra aux utilisateurs <strong>de</strong> naviguer via les<br />
différentes interfaces présentes.<br />
Une couche traitements qui réalisera les différents traitements<br />
nécessaires à l’affichage, à la sauvegar<strong>de</strong> ou la gestion <strong>de</strong>s<br />
différentes données.<br />
Une couche données qui, comme son nom l’indique, servira à<br />
stocker les différentes informations <strong>de</strong> notre portail.<br />
Arismore | Synthèse technique du projet 50
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Voici 2 schémas présentant l’architecture logicielle mise en place :<br />
Comment cette architecture répond aux cas d’utilisation<br />
Comme nous l’avions vu précé<strong>de</strong>mment, notre architecture doit répondre à<br />
différents cas d’utilisation.<br />
Dans le cadre <strong>de</strong> la contribution à un travail, notre architecture répond<br />
également parfaitement au cas d’utilisation. En effet, la Portlet Travail permettra<br />
à l’utilisateur <strong>de</strong> contribuer sur un document. Ensuite le bloc <strong>de</strong> traitement <strong>de</strong><br />
gestion <strong>de</strong> contenu (JSR-170) organisera et gérera le versioning du contenu au<br />
sein du référentiel portail.<br />
Une Portlet explorateur était également <strong>de</strong>mandée a<strong>fin</strong> <strong>de</strong> pouvoir accé<strong>de</strong>r<br />
aux différents contenus sauvegardés dans les référentiels. Ceci est également<br />
géré via le gestionnaire <strong>de</strong> contenu et affiché dans la Portlet Explorateur.<br />
Arismore | Synthèse technique du projet 51
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
A<strong>fin</strong> <strong>de</strong> pouvoir contribuer facilement à un document voulu, nous avons<br />
mis en place un ban<strong>de</strong>au <strong>de</strong> navigation visant à ai<strong>de</strong>r l’utilisateur à naviguer au<br />
sein <strong>de</strong>s activités et tâches d’un travail. La génération <strong>de</strong> ce ban<strong>de</strong>au se réalise à<br />
l’ai<strong>de</strong> d’un fichier XML qui sera envoyé et traité par le bloc Gestion XML.<br />
Arismore | Synthèse technique du projet 52
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Présentation <strong>de</strong>s différentes interactions<br />
Récupération d’une section documentaire<br />
Arismore | Synthèse technique du projet 53
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
La création d’un nouveau travail s’effectue à partir <strong>de</strong> l’IHM d’accueil. L’utilisateur choisi un nom <strong>de</strong> Domaine,<br />
d’Entreprise et le nom <strong>de</strong> son travail. A l’ai<strong>de</strong> <strong>de</strong> ces différents éléments, notre programme va récupérer en base le template<br />
XML <strong>de</strong> notre travail et ainsi créer les différents nœuds dans notre registre.<br />
Cette création permettra <strong>de</strong> pouvoir générer notre ban<strong>de</strong>au <strong>de</strong> navigation si besoin et rendre disponible les différents<br />
nœuds dans notre explorateur.<br />
Stockage d’une section documentaire<br />
Arismore | Synthèse technique du projet 54
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
L’explorateur permet d’accé<strong>de</strong>r rapi<strong>de</strong>ment à une section documentaire. Après avoir choisi le document souhaité, nous<br />
ouvrons ce <strong>de</strong>rnier dans la Portlet Travail. Nous pouvons ainsi le modifier ou simplement le visualiser. Dans le cas où le<br />
fichier a été modifié une version n+1 du document est créée dans le registre, ceci nous permet ainsi <strong>de</strong> ne pas perdre les<br />
versions antérieures <strong>de</strong> document et <strong>de</strong> pouvoir les récupérer dans le cas voulu.<br />
Arismore | Synthèse technique du projet 55
Résultats obtenus<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Les objectifs principaux étaient ma montée en compétence sur les<br />
différentes technologies étudiées (JCR, Portail, Portlet et Client Riche comme<br />
Flex), réaliser un entrant pour une future équipe <strong>de</strong> travail et la réalisation d’une<br />
maquette fonctionnelle présentant le portail d’architecture.<br />
La monté en compétence est effective. En effet, j’ai acquis <strong>de</strong> très bonnes<br />
bases sur 2 spécifications, la JSR-286 qui régit la technologie <strong>de</strong> Portlet et la<br />
JSR-170, qui régit la technologie <strong>de</strong> Java Content Repository.<br />
La maîtrise <strong>de</strong> la technologie <strong>de</strong> Portlet induit :<br />
Développement <strong>de</strong> Portlet en Java<br />
Déploiement sur un portail et plus particulièrement sur JBoss<br />
portal<br />
Communication InterPortlet<br />
Maitrise <strong>de</strong>s différentes vues et états (View, Edit, Help et<br />
Minimized, Maximized)<br />
La maîtrise <strong>de</strong> la Technologie <strong>de</strong> Java Content Repository induit :<br />
Connaissance <strong>de</strong> JackRabbit, une implémentation <strong>de</strong> cette<br />
technologie<br />
Maitrise <strong>de</strong> l’ajout, suppression, modification, versioning d’un<br />
système <strong>de</strong> gestion <strong>de</strong> contenu<br />
Mon stage a permis <strong>de</strong> réaliser un bon entrant pour l’équipe <strong>de</strong> travail qui<br />
s’est composée par la suite. En effet, une première ébauche <strong>de</strong> l’architecture<br />
logicielle était réalisée. J’ai ainsi pu préparer l’arriver <strong>de</strong> nouveaux membres, ceci<br />
par le biais <strong>de</strong> la documentation que j’avais réalisé et par les différentes<br />
explications que j’ai pu leurs apporter.<br />
Arismore | Résultats obtenus 56
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Quant à la réalisation <strong>de</strong> la maquette fonctionnelle, elle est également<br />
réalisée. Cette maquette ne présente pas toutes les fonctionnalités dé<strong>fin</strong>ies en<br />
milieu <strong>de</strong> stage car à partir du mois <strong>de</strong> Décembre une équipe c’est constituée<br />
autour du projet ce qui a modifié mon planning et donc changé les objectifs <strong>de</strong><br />
cette réalisation.<br />
Le principal résultat obtenu a été ma compréhension du métier <strong>de</strong><br />
l’architecture, qui représente le cœur <strong>de</strong> métier d’Arismore. Cette connaissance a<br />
surement facilité la signature <strong>de</strong> mon futur contrat au sein <strong>de</strong> la société.<br />
Pour conclure, Olivier Tonnelier a validé les résultats obtenus lors <strong>de</strong> ce<br />
stage et a été satisfait <strong>de</strong> l’investissement et <strong>de</strong> la motivation montrés.<br />
Arismore | 57
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Difficultés rencontrées<br />
Ces difficultés ou, comme les appelés Olivier Tonnelier, ces challenges à<br />
relever ont été nombreux. En effet, s’attaquant à <strong>de</strong> nombreuses technologies<br />
innovantes comme les portails ou le Flex amènent plusieurs points <strong>de</strong> blocage.<br />
Tout d’abord, parlons du cas <strong>de</strong> Flex. Ce client riche, très novateur induit<br />
une bonne connaissance <strong>de</strong> l’Action Script 3. Ne connaissant que très peu ce<br />
langage, il a fallu se documenter et réalisé plusieurs test a<strong>fin</strong> d’apprendre,<br />
comprendre et maitrisé cette technologie. Un <strong>de</strong>s problèmes rencontrés était le<br />
manque d’informations sur Internet, ceci étant du au manque <strong>de</strong> maturité <strong>de</strong><br />
cette jeune technologie.<br />
Ensuite, quand on parle <strong>de</strong> portail on parle forcément <strong>de</strong> Portlet. Comme<br />
je vous l’ai expliqué précé<strong>de</strong>mment, les Portlets sont régi par une spécification.<br />
Lors du début <strong>de</strong> mon stage, la spécification <strong>de</strong> référence était la JSR-168, puis<br />
vers le courant Août, une nouvelle spécification est arrivée sur le marché (JSR-<br />
286) qui est une évolution <strong>de</strong> la JSR-168. Les problèmes rencontrés ont été<br />
principalement la perte <strong>de</strong> temps. Ceci, car j’ai voulu réaliser <strong>de</strong>s fonctionnalités<br />
qui n’était pas natives à la JSR-168 et qui ont été spécifiées dans la JSR-286<br />
comme l’inter Portlet communication.<br />
D’un point <strong>de</strong> vue projet, il a été aussi compliqué pour moi <strong>de</strong> réaliser les<br />
premiers documents à fournir, n’ayant pas tout le vocabulaire, les terminologies<br />
et une bonne démarche, il a été difficile <strong>de</strong> réaliser un dossier d’étu<strong>de</strong> par<br />
exemple. Mais Olivier Tonnelier, a pris le temps <strong>de</strong> bien m’expliquer et à toujours<br />
été à l’écoute <strong>de</strong> mes requêtes, difficultés ou besoins.<br />
Arismore | Difficultés rencontrées 58
Conduite <strong>de</strong> projet<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Lors <strong>de</strong> ce stage, j’ai connu 2 phases <strong>de</strong> travail. Lors dès 7 premiers mois,<br />
j’ai travaillé seul sur le projet avec l’ai<strong>de</strong> <strong>de</strong> Johan Brelet, qui me guidait<br />
techniquement sur les méthodologies <strong>de</strong> recherches, d’étu<strong>de</strong>s, <strong>de</strong> tests et <strong>de</strong><br />
réalisation. Puis par la suite une équipe <strong>de</strong> 4 personnes, composée <strong>de</strong> Johan<br />
Brelet, Julien Lefebvre et Jean-Christophe Bohin et moi, s’est construite autour<br />
du projet. J’ai donc pu avoir <strong>de</strong>ux vues totalement différentes sur le travail. Voici<br />
une <strong>de</strong>scription et le ressenti que j’ai pu rencontrer.<br />
Première phase : Travail seul<br />
Lors <strong>de</strong> ces 7 sept premiers mois, j’ai donc travaillé <strong>de</strong> façon autonome.<br />
Mon maître <strong>de</strong> stage, Olivier Tonnelier, m’avait parlé qu’il y aurait surement une<br />
équipe qui serait déployée sur le projet mais aucune date n’avait été avancée.<br />
Par la suite, j’ai du apprendre et mettre en place <strong>de</strong> la rigueur et <strong>de</strong> la<br />
méthodologie dans l’ensemble <strong>de</strong> mes travaux, ceci dans plusieurs buts :<br />
D’un point <strong>de</strong> vue personnel, j’ai ainsi pu me former aux métho<strong>de</strong>s<br />
Arismore. En effet, comme la majorité <strong>de</strong>s entreprises, Arismore s’appuie<br />
sur <strong>de</strong>s modèles <strong>de</strong> document (compte rendu <strong>de</strong> réunion, présentation,<br />
dossier d’étu<strong>de</strong>, …).<br />
Dans l’optique <strong>de</strong> l’arrivé <strong>de</strong> nouvelles personnes sur le projet, une bonne<br />
capitalisation <strong>de</strong> l’information et du travail déjà effectué est une bonne<br />
pratique et permet un gain <strong>de</strong> temps important le jour venu.<br />
Les premiers mois furent consacrés, d’une part à la compréhension du<br />
sujet, qui n’était pas évi<strong>de</strong>nt et très diversifié. En effet, il a fallu comprendre<br />
l’ensemble du sujet avant <strong>de</strong> dé<strong>fin</strong>ir un périmètre plus restreint pour la<br />
réalisation du stage. D’autre part, il a donc fallu faire <strong>de</strong> nombreuses recherches<br />
et se documenter sur les différents points techniques sur lesquels j’étais<br />
débutant.<br />
Arismore | Conduite <strong>de</strong> projet 59
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
A<strong>fin</strong> <strong>de</strong> tenir une rigueur et un suivi dans ce stage, j’effectuais un point<br />
bihebdomadaire avec Olivier Tonnelier. Ces réunions permettaient <strong>de</strong> faire le<br />
point sur le travail effectué, les documents produits et sur les nouveaux objectifs.<br />
Après cette phase <strong>de</strong> recherche et documentation, nous nous sommes<br />
fixés 2 jalons avec Olivier. L’avantage <strong>de</strong> créer <strong>de</strong>s lotissements, puis <strong>de</strong>s blocs<br />
<strong>de</strong> travail permet d’éviter les effets tunnel. En effet, sur <strong>de</strong> grands projets, une<br />
<strong>de</strong>s principales difficultés est <strong>de</strong> ne pas se perdre et savoir par quel bout<br />
commencer. Le premier se trouvait <strong>fin</strong> Novembre 2008 et un second qui était<br />
planifié pour la <strong>fin</strong> <strong>de</strong> Janvier 2009. Ces objectifs ont permis <strong>de</strong> vraiment se<br />
focaliser sur 3 technologies précises, ainsi d’avoir une meilleure montée en<br />
compétence. De plus, cette organisation a permis <strong>de</strong> réaliser une maquette<br />
fonctionnelle moins étoffé mais plus rapi<strong>de</strong>ment.<br />
PLANNING MONTRANT LE DECOUPAGE EN JALONS<br />
Le premier jalon a été validé avec succès, il consistait à la réalisation d’une<br />
première maquette qui mettait en place une partie <strong>de</strong>s technologies étudiés lors<br />
Arismore | Conduite <strong>de</strong> projet 60
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
<strong>de</strong>s premiers mois. Le second jalon était en bonne voie lorsqu’une équipe c’est<br />
mise en place autour du projet, ce qui a totalement changé ma façon <strong>de</strong><br />
travailler. Je me suis donc intégré à cette équipe, ce qui n’était pas pour me<br />
déplaire car j’allais pouvoir vraiment faire du travail en équipe <strong>de</strong> projet ce qui<br />
est beaucoup plus intéressant et enrichissant.<br />
Arismore | Conduite <strong>de</strong> projet 61
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Deuxième phase : Travail en équipe<br />
Cette phase commença courant Décembre 2008 mais une réelle<br />
méthodologie <strong>de</strong> travail c’est mise en place début Janvier 2009.<br />
Julien Lefebvre, architecte fonctionnel <strong>de</strong>puis 2 ans, a pris les reines du<br />
projet en main, c'est-à-dire qu’il coordonne l’équipe, dé<strong>fin</strong>it l’architecture<br />
fonctionnel du portail d’architecture, organise les différents points<br />
hebdomadaires, gère le suivi du projet et joue le rôle <strong>de</strong> responsable <strong>de</strong> l’équipe<br />
sous Olivier Tonnelier.<br />
EXEMPLE DE TABLEUR EXCEL DE SUIVI DE PROJET<br />
Jean-Christophe Bohin, nous apporte, quant à lui, une connaissance<br />
générale sur <strong>de</strong> nombreuses technologies (Application Server, Database,..) et sur<br />
l’architecture applicative et technique qu’il maîtrise vue sa position chez<br />
Arismore.<br />
Arismore | Conduite <strong>de</strong> projet 62
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Ensuite, Johan Brelet apporte sa connaissance d’intégration d’application,<br />
<strong>de</strong> projet <strong>de</strong> développement et <strong>de</strong> façon plus générale sa connaissance<br />
technique.<br />
Et pour <strong>fin</strong>ir, moi, qui est apporté ma connaissance générale sur le projet<br />
et sur les systèmes <strong>de</strong> gestion <strong>de</strong> contenu que j’avais étudié lors <strong>de</strong> ma phase <strong>de</strong><br />
recherche. De plus, j’ai pu apporter mes connaissances en développement J2EE.<br />
Nous avons mis en place une méthodologie <strong>de</strong> travail s’articulant autour<br />
du modèle agile. Ce modèle s’articule autour d’une métho<strong>de</strong> d'organisation <strong>de</strong><br />
projets par itérations courtes et incrémentales, assurant une certaine souplesse,<br />
un meilleur respect <strong>de</strong>s objectifs fonctionnels et une meilleure proximité avec le<br />
client, MOA ou le donneur d'ordres. Ce modèle permet après une bonne<br />
répartition <strong>de</strong>s rôles <strong>de</strong> pouvoir travailler indépendamment sur différents<br />
modules. De plus, elle permet <strong>de</strong> produire rapi<strong>de</strong>ment <strong>de</strong>s maquettes<br />
fonctionnelles. Ceci est le cas dans notre projet, car le cahier <strong>de</strong>s charges<br />
présenté par Olivier et Julien <strong>de</strong>man<strong>de</strong> <strong>de</strong> réaliser une démonstration toutes les 2<br />
semaines a<strong>fin</strong> <strong>de</strong> présenter et montrer l’avancement du travail.<br />
A<strong>fin</strong> <strong>de</strong> pouvoir être efficace dans notre travail nous avons mis en place un<br />
logiciel <strong>de</strong> subversion (TortoiseSVN). Ce logiciel permet <strong>de</strong> partager un répertoire<br />
<strong>de</strong> travail entre tous les acteurs d’un projet. Ainsi, après chaque réalisation <strong>de</strong><br />
document, <strong>de</strong> diagramme, <strong>de</strong> modèle et <strong>de</strong> co<strong>de</strong>, il est possible très facilement<br />
<strong>de</strong> les partager.<br />
Arismore | Conduite <strong>de</strong> projet 63
Conclusion<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Arrivant à la <strong>fin</strong> <strong>de</strong> mon stage et donc par conséquent à la <strong>fin</strong> <strong>de</strong> mon<br />
cursus scolaire, je vais réaliser un check-up <strong>de</strong> ces 5 <strong>de</strong>rnières années à l’<strong>esiea</strong>.<br />
Tout d’abord, d’un point <strong>de</strong> vue scolaire, l’<strong>esiea</strong> Laval m’a offert un cadre<br />
prestigieux et très convivial. L’enseignement reçu a été <strong>de</strong> bonne qualité,<br />
diversifié, parfois général et parfois spécialisé, ce qui donne <strong>de</strong> la profon<strong>de</strong>ur et<br />
du poids à l’ingénieur <strong>esiea</strong>. Un <strong>de</strong>s atouts a été la proximité avec le corps<br />
enseignant et directorial. Cela permet, en cas <strong>de</strong> problème, <strong>de</strong> trouver<br />
rapi<strong>de</strong>ment les solutions adaptées.<br />
De plus m’étant intégré au bureau <strong>de</strong>s élèves en tant que responsable<br />
Colloque 2007, j’ai pu porter un lourd et intéressant projet sur mes épaules. Ce<br />
qui permet d’acquérir <strong>de</strong> l’expérience personnelle, <strong>de</strong> la confiance en soi et du<br />
professionnalisme auprès <strong>de</strong>s différentes entreprises rencontrés.<br />
Pour <strong>fin</strong>ir avec ce cursus, il ne faut pas négliger tout les projets effectués<br />
qu’il soit interne (PFE, PFH) ou externe (Réalisation <strong>de</strong> 2 Raid Expérience<br />
Lavallois, APIC avec les salons fréquentés et le projet <strong>de</strong> questionnaire a<strong>fin</strong> <strong>de</strong><br />
savoir comment est connu et ressenti notre école au sein <strong>de</strong>s lycéens, grand<br />
public et entreprise.<br />
Ensuite, l’<strong>esiea</strong> met un point d’honneur à former ses étudiants à la vie en<br />
entreprise. Pour cela, elle prône un grand nombre <strong>de</strong> stages qui débute en<br />
première année avec un stage <strong>de</strong> découverte <strong>de</strong> l’entreprise pour se terminer par<br />
2 stages plus techniques (stage technique et stage <strong>de</strong> <strong>fin</strong> d’étu<strong>de</strong>) ceci en<br />
effectuant un stage à l’étranger a<strong>fin</strong> d’apprendre <strong>de</strong> nouvelles cultures.<br />
D’un point <strong>de</strong> vue professionnel, ce stage s’est très bien déroulé, l’équipe<br />
d’Arismore m’a parfaitement intégré et le sujet <strong>de</strong> stage m’a permis <strong>de</strong><br />
m’épanouir sur <strong>de</strong> nombreux points. J’ai donc pu acquérir une sérieuse<br />
expérience <strong>de</strong> travail et par suite je me sens tout à fait apte à poursuivre cette<br />
aventure au sein <strong>de</strong> l’équipe d’Arismore dès le début Mars 2009.<br />
Arismore | Conclusion 64
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
En conclusion, je suis très satisfait d’avoir choisi l’<strong>esiea</strong> comme école pour<br />
la réalisation <strong>de</strong> mes étu<strong>de</strong>s d’ingénieur et Arismore comme entreprise pour mon<br />
stage <strong>de</strong> <strong>fin</strong> d’étu<strong>de</strong> et j’espère pour une belle et longue carrière professionnelle.<br />
Arismore | Conclusion 65
Bibliographie<br />
Livres<br />
Site Web<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Marco Casario, « Flex Solutions Essential Techniques for Flex 2 and<br />
3 <strong>de</strong>velopers », FriendSof, 2007<br />
Sunil Patil, « What is a Java content Repository » 10 Mars 2009,<br />
http://www.onjava.com/pub/a/onjava/2006/10/04/what-is-java-<br />
content-repository.html?page=1<br />
Thomas Heute, Julien Viet, « JBoss Portal 2.7, reference gui<strong>de</strong> »<br />
July 2008,<br />
http://docs.jboss.com/jbportal/v2.7.0/referenceGui<strong>de</strong>/html<br />
Stephan Hepper, Olivier Köth, « What's new in the Java Portlet<br />
Specification V2.0 (JSR 286)? », 18 Mars 2008,<br />
http://www.ibm.com/<strong>de</strong>veloperworks/websphere/library/techarticles/<br />
0803_hepper/0803_hepper.html<br />
Moxieco<strong>de</strong> Sytems, « TinyMCE, free javascript editor », 2003-2009,<br />
http://tinymce.moxieco<strong>de</strong>.com/in<strong>de</strong>x.php<br />
Apache Foundation Softaware, « Welcome to Apache Jackrabbit »,<br />
2003-2009, http://jackrabbit.apache.org/<br />
Wikipedia, Wikipedia Foundation, « Wikipedia, L’encyclopédie libre »<br />
http://fr.wikipedia.org/wiki/Accueil<br />
Arismopedia, Arismore, « Intranet d’Arismore », 2009<br />
https://extranet.arismore.fr/arismopedia/bin/view/Main/WebHome<br />
Nabble, « <strong>Free</strong> Forum », 2003-2009, http://www.nabble.com/<br />
Arismore | Bibliographie 66
Glossaire<br />
Comité technique<br />
JSR<br />
Sparxs<br />
Open Source<br />
JCR<br />
Flex<br />
Portlet<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Inter-Portlet Communication<br />
Ajax<br />
Arismore | Glossaire 67
Annexes<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
GRILLES D’EVALUATION DES DIFFERENTS PORTAILS<br />
LIFERAY<br />
JBOSS PORTAL<br />
JETSPEED<br />
DIFFERENCE FLEX/AJAX<br />
PRESENTATION<br />
DESCRIPTION DETAILLEE D’AJAX<br />
FRAMEWORK<br />
LIBRAIRIES<br />
DESCRIPTION DETAILLEE DE FLEX<br />
COMMUNICATION FLEX<br />
MISE EN PLACE D’UNE PORTLET CLIENT RICHE (FLEX)<br />
PRESENTATION DES DIFFERENTES TECHNOLOGIES UTILISEES<br />
LES PORTLETS JSR-286<br />
JAVA CONTENT REPOSITORY JSR-286<br />
Arismore | Annexes 68
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Grilles d’évaluation <strong>de</strong>s différents portails<br />
Annotation <strong>de</strong>s fonctionnalités<br />
0 -> absent, 1 -> partiellement couvert, 2 -> présent, 3 -> présent + possibilités d’extension intéressantes<br />
Liferay<br />
Fonctionnalités Outils<br />
proposés<br />
Appréciation Description<br />
Authentification 2 Authentification via un LDAP avec la connexion SSO sécurisé CAS.<br />
Gestion <strong>de</strong><br />
contenu<br />
Possibilité d’intégrer d’autres SSO comme Netegrity.<br />
2 Présent sous forme <strong>de</strong> journal avec la seule possibilité <strong>de</strong> créer <strong>de</strong>s<br />
articles et <strong>de</strong> les publier sur une page. Les articles sont structurés<br />
(titre, photos, texte HTML).<br />
Gestion <strong>de</strong> catégorie, date <strong>de</strong> publication, d’expiration<br />
Possibilité d’ajouter le CMS Alfresco<br />
Outils collaboratif Blog 2 Blog avec interaction avec les flux RSS a<strong>fin</strong> d’avoir les <strong>de</strong>rnières<br />
news en live<br />
Favoris 1 Gestion <strong>de</strong> favoris<br />
Arismore | Annexes 69
Administration<br />
fonctionnelle<br />
Administration<br />
Technique<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Forum 2 Création <strong>de</strong> fils <strong>de</strong> discussion avec possibilités d’ajout <strong>de</strong> pièces<br />
Chat 0<br />
jointes<br />
Mail 1 Serveur mail Imap. Connexion à un seul serveur pour tous les<br />
utilisateurs.<br />
Sondage 1 Outils <strong>de</strong> publication <strong>de</strong> sondages<br />
Wiki 2 Wiki qui permet à tous utilisateur <strong>de</strong> créer, modifier <strong>de</strong>s pages<br />
intégré au sein d’une Portlet<br />
Calendrier 3 Publication d’évènement et <strong>de</strong> partage au sein <strong>de</strong>s membres d’une<br />
communauté<br />
RSS 1 Lecture <strong>de</strong> flux RSS issu du blog interne ou <strong>de</strong> site extérieur.<br />
2 Possibilité <strong>de</strong> regrouper <strong>de</strong>s utilisateurs basée en 3 niveaux :<br />
entreprise, organisation ou par « location »<br />
1 Gestion par Portlet est également possible<br />
Un système <strong>de</strong> logging (débogage) est présent sous la forme log4j<br />
Personnalisation 2 Il est possible <strong>de</strong> modéliser son poste <strong>de</strong> travail à souhait que ce soit<br />
Business 0<br />
sur le nombre <strong>de</strong> portlets ou leurs dispositions (layout différents)<br />
Une gran<strong>de</strong> variété <strong>de</strong> skins différents est également mise à<br />
disposition<br />
Arismore | Annexes 70
Intelligence<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Installation 1 Assez simple mais l’utilisation <strong>de</strong> certaine portlets mis à disposition<br />
peut rester assez complexe<br />
Intégration 1 Supporte presque tous les serveurs d’exploitation et un grands<br />
nombre <strong>de</strong> base <strong>de</strong> données. De plus, il est possible <strong>de</strong> le connecter à<br />
un annuaire LDAP et il respecte la norme JSR-168<br />
Développement OS 2 Windows XP, Linux, Mac, Windows server<br />
Base <strong>de</strong><br />
données<br />
2 Une base <strong>de</strong> données HSQL intégré a<strong>fin</strong> d’avoir un développement<br />
rapi<strong>de</strong>.<br />
Possibilité <strong>de</strong> mettre en place : DB2, Firebird,Hypersonic, Interbase,<br />
JDataStore, MySQL, Oracle, PostgresSQL, SAP, SQLServer<br />
Des scripts <strong>de</strong> création sont fournis pour un grand nombre <strong>de</strong> ces<br />
bases.<br />
Environnement 2 JAVA<br />
Normes<br />
respectées<br />
Serveurs<br />
d’application<br />
2 Possibilités <strong>de</strong> déployer <strong>de</strong>s portlets <strong>de</strong> normes JSR-168 et WRSP,<br />
JSF, Struts, Spring<br />
2 Borland ES, Geronimo,GlassFish, JBoss, JOnAS, JRun, OracleAS,<br />
Orion, Pramati, RexIP, Sun JSAS, WebLogic,WebSphere<br />
Point faible 0 Aucun outil <strong>de</strong> reporting n’est présent.<br />
Arismore | Annexes 71
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Perspectives Produit assez mature avec une gran<strong>de</strong> communauté <strong>de</strong> développeur<br />
ce qui peut annoncer une belle vie<br />
Le portail Liferay est un portail très complet. En effet, il dispose d’un très grand nombre <strong>de</strong> fonctionnalités, que ce soit<br />
sur la diversité <strong>de</strong> ces portlets ou sur la gestion <strong>de</strong> son administration. Ce portail possè<strong>de</strong> 60 portlets prêt à l’emploi qui se<br />
décline en plusieurs catégories (collaboration, news, bureautique, …).<br />
Il est également possible <strong>de</strong> créer <strong>de</strong> nouvelles portlets. Il dispose d’un plugin eclipse (LiferayPedia) qui facilite<br />
gran<strong>de</strong>ment la création <strong>de</strong> Portlet. Le déploiement s’effectue ensuite grâce à une Portlet d’ajout intégré au portail. Il suffit<br />
ensuite d’uploa<strong>de</strong>r un *.war ou un zip. Il est possible <strong>de</strong> développer <strong>de</strong>s portlets en PHP, JSP, JSF, Hibernate and DAO,<br />
IceFaces, Sun Facelets, Struts. Le portail suit la norme JSR-168, on peut donc déployer toutes portlets respectant cette<br />
norme.<br />
Il dispose également une gran<strong>de</strong> communauté. Un wiki (anglais) réparti en 6 catégorie (Installation, Starting with<br />
Liferay, Using Liferay, développement, customisation, comprendre Liferay), nous apporte un grand nombre <strong>de</strong> solutions aux<br />
différents problèmes que nous pouvons rencontrer. De plus, il existe aussi un forum actif, qui est géré par les développeurs<br />
<strong>de</strong> Liferay.<br />
Le point faible <strong>de</strong> ce portail pourrait se porter sur la partie administration, gestion <strong>de</strong>s utilisateurs, gestion <strong>de</strong>s pages<br />
(communauté, location, groupe, rôle) qui est très complète et donc très complexe à prendre en main.<br />
Le point fort, quant à lui, est la multitu<strong>de</strong> <strong>de</strong> Portlet préinstallées ainsi que le <strong>de</strong>sign général du portail.<br />
Arismore | Annexes 72
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
JBoss Portal<br />
Fonctionnalités Outils proposés Appréciation Description<br />
Authentification 2 SSO et LDPA : Authentification classique<br />
Gestion <strong>de</strong> contenu CMS Portlet 3 Création <strong>de</strong> répertoire, fichier via un éditeur CMS.<br />
Arismore | Annexes 73<br />
Upload et edit <strong>de</strong>s fichiers Text et Html via<br />
l’éditeur WYSIWYG HTML.<br />
Cpoy, Move, Delete<br />
Avec gestion <strong>de</strong>s droits View, edit , <strong>de</strong>lete<br />
Fonction <strong>de</strong> Secure ressources<br />
Outils collaboratif Blog 1 Sous forme <strong>de</strong> Portlet à télécharger<br />
Wiki Une portlet spécifique Blog peut être ajouté<br />
Forum Wiki, Forum<br />
Widget google<br />
Administration 2 Gestion d’administration <strong>de</strong>s droits d’utilisateurs<br />
et <strong>de</strong>s pages<br />
Personnalisation 2 Drag And Drop<br />
Business Intelligence 0<br />
Installation 2 Base <strong>de</strong> donnée HSQL intégré puis serveur JBoss<br />
Intégration 0
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Développement OS 2 Linux, Windows, Unix, Mac Os X<br />
Base <strong>de</strong> données 3 MySQL 4.x., MySQL 5, PostgreSQL 8.x, Hypersonic<br />
SQL<br />
Arismore | Annexes 74<br />
Derby, Oracle 9 and 10g, Microsoft SQL Server,<br />
MaxDB<br />
Environnement 2 Java<br />
Normes respectées 2 JSR 168, WSRP 1.0, JSR 170<br />
Serveurs<br />
d’application<br />
2 JBoss 4.2.1, 4.2.2, EAP 4.2, EAP 4.3<br />
Autres 3 Documentation complète et compréhensible ++<br />
Perspectives Portail très simple et ne disposant pas <strong>de</strong> tous les<br />
gadgets non utiles.<br />
Une très bonne base documentaire<br />
JBoss portail est très intuitif d’utilisation. Il possè<strong>de</strong> une base d’administration qui s’oriente autour <strong>de</strong> rôle et<br />
d’utilisateur : chaque utilisateur possè<strong>de</strong> un rôle Administrators ou User. En fonction <strong>de</strong> ce rôle, l’utilisateur peut ou non avoir<br />
accès à la base d’administration. Le portail s’ouvre sur 2 types <strong>de</strong> pages, une première qui est le portail commun à tous les<br />
utilisateurs et la secon<strong>de</strong> est une page privée qui est paramétrable (type, nombre et disposition <strong>de</strong> Portlets) par l’utilisateur<br />
lui-même. Ce paramétrage se fait via la page Dashboard editor, qui propose les portlets disponibles et permet <strong>de</strong> choisir<br />
l’emplacement. L’ajout <strong>de</strong> Portlet est assez simple également, il suffit <strong>de</strong> déployer la Portlet au format *.war dans le
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
répertoire C:\jboss-portal-2.6.5.SP1\server\<strong>de</strong>fault\<strong>de</strong>ploy du portail. Le déploiement est ensuite automatique et la Portlet se<br />
rend disponible. Les portlets doivent suivre la norme JSR-168 a<strong>fin</strong> qu’elle puisse être compatible au sein du portail.<br />
Une documentation très détaillée, nous montre le fonctionnement <strong>de</strong> toutes les fonctionnalités du portail :<br />
JBossPortalUserGui<strong>de</strong>.pdf.<br />
De plus une documentation plus technique est aussi disponible : JBossPortalreferenceGui<strong>de</strong>.pdf.<br />
Jetspeed<br />
Fonctionnalités Outils proposés Appréciation Description<br />
Authentification Login Portlet 2 Via un LDAP et utilise l’API JASS via une Portlet<br />
Request Password 2 Module d’envoi <strong>de</strong> mot <strong>de</strong> passe par mail en cas d’oubli<br />
User registration 2 Portlet d’inscription d’un nouvel utilisateur<br />
Arismore | Annexes 75<br />
(enregistrement en tant que user)<br />
Gestion <strong>de</strong> contenu 0 Possibilité d’intégré un outil <strong>de</strong> gestion <strong>de</strong> contenu sous la<br />
norme WSRP<br />
Outils collaboratif Favoris 1 Gestion <strong>de</strong>s favoris<br />
Calendrier 1 Application légère. Possibilité <strong>de</strong> prendre <strong>de</strong>s notes<br />
exclusivement<br />
Bloc Note 1 Bloc note ou seul l’utilisateur peut voir ses notes : genre <strong>de</strong><br />
mémo
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
RSS 1 Lecteur <strong>de</strong> flux RSS 2.0<br />
Administration 2 4 types <strong>de</strong> droits : utilisateur, groupe, rôle et propriétaire<br />
Arismore | Annexes 76<br />
Possibilités : view, edit, help<br />
Personnalisation 2 Personnalisation <strong>de</strong> ses pages, portlets suivant les droits.<br />
Business Intelligence 0<br />
Plusieurs layout a<strong>fin</strong> <strong>de</strong> disposer les portlets n’ importe où<br />
Installation 1 Installation simple, avec base <strong>de</strong> données HSQL livré avec<br />
le projet<br />
Intégration 2 Accepte Tomcat 4/5 et JBoss<br />
Prise en main assez difficile, manque <strong>de</strong> documentation<br />
pour la modification même si il y a un Wiki <strong>de</strong> mis en place<br />
Base <strong>de</strong> données : HSQL, MySQL et Oracle<br />
Permet <strong>de</strong> récupérer <strong>de</strong>s contenus JSR168, WSRP, XML,<br />
RSS<br />
Développement OS 2 Windows Xp, Linux<br />
Possibilité <strong>de</strong> créer <strong>de</strong>s portlets en Struts ou PHP<br />
Base <strong>de</strong> données 2 Une base HSQL est intégrée <strong>de</strong> base mais possibilité <strong>de</strong><br />
Environnement JAVA, J2EE<br />
mettre en place une base MySQL ou Oracle 8i/9i<br />
Normes respectées 2 JSR-168, Struts, XML, Portlet en PHP, RSS, WSRP, Perl
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Serveurs<br />
d’application<br />
2 Tomcat 4/5, JBoss<br />
Autres 2 Possibilité <strong>de</strong> déploiement sur WAP<br />
Perspectives Vu les évolutions entre Jetspeed 1 et 2, on peut croire à un<br />
bel avenir<br />
Arismore | Annexes 77<br />
Petit bémol sur la complexité <strong>de</strong> prise en main<br />
Jetspeed portail est un outil classique, la gestion d’administration est assez complexe. L’aspect graphique n’est pas très<br />
évolué (carré). On peut également développer plusieurs types <strong>de</strong> Portlet JSP, JSP et Velocity, PHP, Struts. La communauté<br />
est assez importante également, on peut disposer d’un wiki (anglais) qui nous montre sous forme d’exemple les différentes<br />
créations, configuration ou customisation du portail. Il suit aussi la norme JSR-168. Il n’existe pas <strong>de</strong> forum dédié<br />
principalement à ce portail, ce qui peut rendre le développement plus difficile en cas <strong>de</strong> problème.
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Différence Flex/Ajax<br />
Présentation<br />
Flex<br />
La technologie Flex a été créée en 2004 par Macromedia. A la <strong>fin</strong> <strong>de</strong><br />
l’année 2005, Abobe opère au rachat <strong>de</strong> Macromedia. Pensant que le Flex pouvait<br />
<strong>de</strong>venir la technologie riche <strong>de</strong> référence, il décida <strong>de</strong> poursuivre son<br />
développement jusqu'à Flex 3 sorti courant 2007. Flex est ensemble d’outil<br />
formant un Framework <strong>de</strong> développement d’application en flash. Il s’appuie sur<br />
le langage XML et sur l’Action Script 3 (mi chemin entre java et c#)<br />
Il existe différents outils Adobe permettant un meilleur développement :<br />
Flex SDK : compilateur gratuit<br />
Flex Buil<strong>de</strong>r : l’IDE, version gratuite 60 jours<br />
Flex Charts : création <strong>de</strong> graphique<br />
Flex Data services : briques fournissant divers services vers le<br />
serveur<br />
Le point fort <strong>de</strong> cette technologie est la rapidité <strong>de</strong> développement<br />
d’application grâce à son IDE qui propose les différents utilitaires d’interfaces<br />
(bouton, liste,...). De plus, <strong>de</strong> nouveaux composants sont ajoutés (sli<strong>de</strong>r,<br />
accordéon), ce qui permet d’enrichir nos applications. Les appels à <strong>de</strong>s Web<br />
Services sont très simplifiés. Il possè<strong>de</strong> également une large communauté, ce<br />
qui permet d’interagir sur <strong>de</strong> nombreux problèmes.<br />
riche.<br />
L’avantage d’une base flash lui permet une création innovante, belle et<br />
Flex est sous licence MPL (Mozilla Public License) toutes les briques <strong>de</strong> son<br />
SDK, notamment :<br />
Arismore | Annexes 78
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
les compilateurs ActionScript 3 et MXML, c'est à dire le langage <strong>de</strong><br />
script utilisé par Flex et la grammaire XML <strong>de</strong> <strong>de</strong>scription d'interfaces<br />
Flex<br />
le débuggeur ActionScript ainsi que les core librairies (toutes les<br />
fonctionnalités "<strong>de</strong> base")<br />
l'ensemble <strong>de</strong>s composants Flex (correspondant par exemple aux<br />
accordéons, aux grilles <strong>de</strong> données, etc.)<br />
Ajax<br />
L’Ajax (Asynchronous JavaScript and XML) n’est pas une technologie mais<br />
une métho<strong>de</strong> d’utilisation <strong>de</strong> plusieurs technologies : Html, Xml,<br />
XmlHttpRequest, Css et JavaScript. Son principe <strong>de</strong> fonctionnement est que l’on<br />
ne recharge plus la page tout entière à chaque <strong>de</strong>man<strong>de</strong> mais seulement une<br />
partie ce qui permet un temps <strong>de</strong> réaction beaucoup plus rapi<strong>de</strong>. De plus, avec<br />
l’Ajax le traitement est effectué par le navigateur, et les données envoyées et<br />
reçues sont moins nombreuses. On peut donc ainsi avoir la possibilité du<br />
glisser/déposer par exemple.<br />
Plusieurs Framework sont mis à disposition a<strong>fin</strong> <strong>de</strong> faciliter son<br />
développement (Dojo, Rialto, ATF, …).<br />
Le point fort <strong>de</strong> cette métho<strong>de</strong> est sa gratuité totale. Le nombre <strong>de</strong><br />
Framework du marché assiste maintenant le développement pour le ren<strong>de</strong><br />
beaucoup plus simple et respectueux <strong>de</strong>s normes en vigueur.<br />
AJAX n'est pas une technologie.<br />
AJAX est indépendant <strong>de</strong> tout environnement.<br />
AJAX peut être implémenté sur toute plateforme Web (PHP, JSP, Zope,<br />
...).<br />
AJAX désigne l'utilisation conjointe <strong>de</strong> plusieurs technologies Open<br />
Source.<br />
Arismore | Annexes 79
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Site avec plusieurs exemples pour débuter : http://miniajax.com/<br />
Laszlo<br />
Cette plateforme open source utilise le Xml et le JavaScript et est compilé<br />
sur une base Flash.<br />
Arismore | Annexes 80
diffusion<br />
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Description détaillée d’Ajax<br />
Framework<br />
Prototype : ce Framework Javascript est utilisable tel quel, mais il sert<br />
également <strong>de</strong> base pour <strong>de</strong>s librairies plus évoluées et plus lour<strong>de</strong>s comme<br />
Rico et Script.aculo.us (à voir ci-<strong>de</strong>ssous). Il n’inclut donc pas d’effets<br />
visuels, mais comporte tout le nécessaire pour effectuer <strong>de</strong>s requêtes en<br />
Ajax<br />
jQuery : JQuery est une librairie Javascript très prometteuse. Elle est<br />
légère, extensible et très simple à utiliser. La documentation est vraiment<br />
très complète, avec <strong>de</strong>s tutoriaux abordant <strong>de</strong> manière thématique les<br />
différentes fonctionnalités. Idéal pour se lancer dans le développement<br />
Ajax<br />
Google Web Toolkit (Java) : Le Google Web Toolkit (GWT) est un<br />
Framework AJAX atypique dans le sens où :<br />
le développement se fait intégralement sous Java 1.4 (avec<br />
une API spécifique rappelant celle <strong>de</strong>s bibliothèques<br />
graphiques Swing ou AWT) ;<br />
la compilation traduit le co<strong>de</strong> Java en JavaScript (co<strong>de</strong> illisible<br />
pour une modification future)<br />
Cette translation <strong>de</strong> co<strong>de</strong> est une solution élégante pour développer <strong>de</strong>s<br />
applications AJAX sans même connaître JavaScript<br />
Autorisation Google obligatoire pour la commercialisation, modification et<br />
<strong>de</strong> gwt-<strong>de</strong>v-***.jar (Java2Javascript)<br />
Arismore | Annexes 81
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Atlas : Microsoft Atlas est un framework AJAX conçu pour s'intégrer au<br />
framework .NET. Ses bibliothèques Javascript sont construites et liées <strong>de</strong><br />
manière complexe ce qui rend difficile leur utilisation sans les outils<br />
Microsoft (Visual Studio). De fait, Atlas prévoit <strong>de</strong>s mécanismes exploitant<br />
la puissance <strong>de</strong> son framework .NET (par exemple, l'accès via C# à une<br />
base <strong>de</strong> données). De nombreux Widgets sont non compatibles Safari et<br />
Firefox. Solution propriétaire.<br />
Rico : A l’inverse <strong>de</strong> Prototype, Rico propose donc en plus du support Ajax<br />
la possibilité <strong>de</strong> fabriquer <strong>de</strong>s animations ou d’effectuer <strong>de</strong>s glissers-<br />
déposers (ou drags and drops en anglais) comme dans un logiciel<br />
classique. Malheureusement, sa documentation semble un peu succincte<br />
Librairies<br />
Script.aculo.us : sûrement un <strong>de</strong>s plus connus (probablement à cause <strong>de</strong><br />
son intégration à Ruby on Rails). Il bénéficie d’une communauté par<br />
conséquent importante et dispose même d’un mécanisme d’extension.<br />
Script.aculo.us est fournit <strong>de</strong> base avec l’auto-complétion en Ajax. Elle<br />
possè<strong>de</strong> une large palette graphique. S’utilise avec la version 1.5.0 RC <strong>de</strong><br />
prototype.<br />
Mootools : une librairie compacte et modulaire qui a été conçue en suivant<br />
les principes <strong>de</strong> la programmation orientée objet. Sa syntaxe est très<br />
agréable et <strong>de</strong> nombreuses extensions viennent compléter les<br />
fonctionnalités <strong>de</strong> base. Le module Ajax est capable <strong>de</strong> gérer le format<br />
Json<br />
Dojo Toolkit : certainement une <strong>de</strong>s librairies les plus complètes qui<br />
soient. Dojo Toolkit est supportée par une fondation qui regroupe <strong>de</strong>s<br />
entreprises comme IBM ou encore Sun Microsystems. Elle repose sur un<br />
système <strong>de</strong> widgets et le package Ajax prend en compte différents types<br />
<strong>de</strong> transport comme les iframes<br />
Arismore | Annexes 82
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
MochiKit : apparemment, les développeurs Python <strong>de</strong>vraient s’y retrouver<br />
plus facilement que les autres, car on retrouve dans cette librairie un peu<br />
la philosophie <strong>de</strong> ce langage. MochiKit dispose <strong>de</strong> tout le nécessaire pour<br />
implémenter <strong>de</strong>s tâches asynchrones. Peut <strong>de</strong> possibilité technique<br />
Yahoo! UI Library : Yahoo! a mis à disposition sa librairie Javascript sous<br />
une licence open source. Il est donc maintenant possible <strong>de</strong> concevoir <strong>de</strong>s<br />
pages tout aussi riches et interactives que celles <strong>de</strong>s nombreux portails <strong>de</strong><br />
la société. Le support est bien évi<strong>de</strong>mment exemplaire. Gestion <strong>de</strong>s CSS.<br />
Mais un nombre restreint <strong>de</strong> composant. Possibilité <strong>de</strong> mettre cette<br />
bibliothèque au sein <strong>de</strong> Framework.<br />
Il existe encore bien d’autres librairies Ajax, dont certaines dépen<strong>de</strong>nt d’un<br />
langage <strong>de</strong> programmation comme Google Web Toolkit (Java) ou Xajax (Php) ou<br />
bien d’un environnement propriétaire comme Aflax (Flash).<br />
Il faut vraiment prendre le temps d’étudier en détails ces librairies a<strong>fin</strong> <strong>de</strong><br />
choisir celle qui correspond le mieux à ses besoins. Ce choix est important car il<br />
n’est pas facile ensuite <strong>de</strong> faire machine arrière et <strong>de</strong> migrer vers un autre<br />
Framework.<br />
On peut également citer Google Web Toolkit, qui est assez original par son<br />
modèle <strong>de</strong> développement : programmez en Java, le GWT génère le javascript<br />
pour vous ! Pratique pour bénéficier <strong>de</strong>s environnements <strong>de</strong> développement<br />
Java, et surtout pour éviter d’avoir à maîtriser le Javascript (une connaissance<br />
rudimentaire ne suffit souvent pas pour faire <strong>de</strong>s développements Ajax). GWT<br />
masque également les différences <strong>de</strong> comportement sur les principaux browsers,<br />
et permet d’automatiser les tests unitaires.<br />
Arismore | Annexes 83
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
SOURCE :HTTP://WWW.SIMPLEENTREPRENEUR.COM/2007/05/08/UNE-LISTE-DE-<br />
LIBRAIRIES-JAVASCRIPT-POUR-DEVELOPPER-EN-AJAX/<br />
HTTP://AJAXIAN.COM/ARCHIVES/AJAXIANCOM-2006-SURVEY-RESULTS<br />
Tous ces produits sont Open Source sauf le GWT et Atlas qui sont <strong>de</strong>s<br />
produits propriétaires.<br />
Arismore | Annexes 84
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Description détaillée <strong>de</strong> Flex<br />
Un seul produit Adobe est disponible.<br />
Une version gratuite <strong>de</strong> Flex 3 SDK peut être installée dans Eclipse. Quant<br />
à lui, le Framework complet n’existe que en version free 60 jours et sinon est<br />
payant.<br />
Depuis 1 an Adobe à décidé <strong>de</strong> publier un socle <strong>de</strong> base au sein d’une<br />
communauté open-source a<strong>fin</strong> <strong>de</strong> faire connaitre sa technologie. Il est donc<br />
possible <strong>de</strong> récupérer les applications <strong>de</strong> bases pour développer en Flex.<br />
Langages<br />
Le langage MXML est utilisé par les développeurs pour dé<strong>fin</strong>ir<br />
l'agencement, l'aspect et le comportement d'une application Flex. Le langage<br />
ActionScript 3 permet <strong>de</strong> dé<strong>fin</strong>ir les fonctions <strong>de</strong> traitement côté client. Il s'agit<br />
d'un langage orienté objet reposant sur le standard ECMAScript. La compilation<br />
<strong>de</strong>s contenus MXML et ActionScript produit un fichier .swf unique constituant<br />
votre application Flex. Le compilateur étant fourni sous forme d'utilitaire distinct<br />
dans le kit SDK Flex 3 ou <strong>de</strong> composant d'Adobe Flex Buil<strong>de</strong>r 3, les<br />
développeurs optent pour l'environnement <strong>de</strong> développement intégré à Flex<br />
Buil<strong>de</strong>r, basé sur Eclipse, ou pour celui <strong>de</strong> leur choix.<br />
Bibliothèque <strong>de</strong> classes et services applicatifs<br />
Flex comprend une bibliothèque <strong>de</strong> classes prédé<strong>fin</strong>ies et <strong>de</strong>s services<br />
applicatifs facilitant l'assemblage et l'élaboration d'applications Internet riches<br />
côté développeurs. Ces services incluent les liaisons <strong>de</strong> données, le glisser-<br />
déposer, le système d'affichage applicable à l'agencement <strong>de</strong> l'interface<br />
utilisateur, le système stylistique gérant l'aspect <strong>de</strong> tous les composants <strong>de</strong><br />
l'interface utilisateur, ainsi que le système d'effets spéciaux et d'animations<br />
applicables aux animations et transitions.<br />
Arismore | Annexes 85
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Composants (Optimisation Flex 3)<br />
Options, cases à cocher ou boutons radio simples, ou grilles <strong>de</strong> données,<br />
listes modifiables ou éditeurs complexes, la bibliothèque <strong>de</strong> composants<br />
comprend toutes les comman<strong>de</strong>s d'interfaces utilisateur requises par les<br />
développeurs. Servez-vous <strong>de</strong>s conteneurs fournis pour concevoir facilement <strong>de</strong>s<br />
agencements complexes et évolutifs, et utilisez les superbes habillages<br />
(modifiables à loisir) pour obtenir l'aspect recherché.<br />
Source : http://www.adobe.com/fr/products/flex/features/flex_framework/<br />
Communication Flex<br />
Nous utilisons la technologie Flex a<strong>fin</strong> <strong>de</strong> pouvoir créer un ban<strong>de</strong>au <strong>de</strong><br />
navigation dynamique qui nous permettra <strong>de</strong> se bala<strong>de</strong>r au sein même <strong>de</strong>s<br />
différentes activités et taches <strong>de</strong>s processus Travail. A<strong>fin</strong> <strong>de</strong> pouvoir le créer<br />
dynamiquement à partir d’un fichier XML représentant notre structure du JCR,<br />
nous utilisons un service Web. Ensuite, a<strong>fin</strong> <strong>de</strong> pouvoir interagir avec le broker<br />
d’évènement <strong>de</strong> la JSR-286, nous utilisons une communication Flex-JavaScript.<br />
Via Service Web<br />
En Flex l’appel d’un service Web est assez simple, il est réalisé à l’ai<strong>de</strong> <strong>de</strong><br />
la balise . Il a donc fallut créer un<br />
Service Web qui renvoi un Objet String représentant un fichier XML <strong>de</strong> notre JCR.<br />
Ensuite à l’ai<strong>de</strong> <strong>de</strong> l’Action Script, nous recréons un fichier XML à partir <strong>de</strong> la<br />
réponse.<br />
Il ne reste plus qu’a traiter notre fichier XML a<strong>fin</strong> <strong>de</strong> pouvoir créer<br />
dynamiquement notre processus.<br />
Via JavaScript<br />
Nous avons utilisé cette communication, qui est transparente pour<br />
l’utilisateur, a<strong>fin</strong> <strong>de</strong> pouvoir récupérer et traiter un événement Flex (appuie sur<br />
un bouton). Ainsi, lorsque nous cliquons sur une section documentaire Flex appel<br />
Arismore | Annexes 86
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
une fonction ExternalInterface qui envoie un évènement qui est interprété par<br />
une fonction JavaScript présente dans la jsp embarquant notre application SWF.<br />
Il ne reste qu’a se plugger sur le système <strong>de</strong> communication « classique »<br />
(Récupération d’un formulaire html). On peut ainsi envoyer un évènement au<br />
broker qui le dispatchera à la Portlet appropriée.<br />
Arismore | Annexes 87
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Mise en place d’une Portlet Client Riche (Flex)<br />
Comme nous l’avons décrit précé<strong>de</strong>mment, ce portail est basé sur<br />
l’innovation et les nouvelles technologies. C’est pourquoi, l’arrivée <strong>de</strong>s<br />
technologies client riche ne pouvait pas nous laisser indifférents.<br />
Nous avons donc décidé <strong>de</strong> mettre en place ces technologies au sein <strong>de</strong><br />
notre ban<strong>de</strong>au <strong>de</strong> navigation. Nous avons retenu le Flex pour l’ergonomie <strong>de</strong> son<br />
<strong>de</strong>sign et pour la portée <strong>de</strong> ses actions. Ainsi, il a fallut l’intégrer au sein d’une<br />
Portlet.<br />
Voici un aperçu du concept à mettre en place a<strong>fin</strong> <strong>de</strong> pouvoir l’utiliser :<br />
JSP portlets<br />
Wrapper.html<br />
chargeant le<br />
SWF<br />
Classe Java <strong>de</strong><br />
traitement<br />
Transformation<br />
du Html en Jsp<br />
Web Service<br />
Wrapper.html<br />
AC_OETags.js<br />
History.js<br />
SWF<br />
MXML<br />
Compilation<br />
Arismore | Annexes 88
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Présentation <strong>de</strong>s différentes technologies utilisées<br />
Les portlets JSR-286<br />
La spécification JSR-286 est sorti courant été 2008 et elle est venue en<br />
complément <strong>de</strong> la spécification JSR-168. La principale nouveauté <strong>de</strong> cette<br />
spécification est la possibilité <strong>de</strong> coordination entre les différentes Portlet d’un<br />
même portail.<br />
De plus, la sortie <strong>de</strong> la nouvelle version <strong>de</strong> JBoss Portal 2.7, incorporant un<br />
Portlet container interprétant cette nouvelle spécification, nous a permis <strong>de</strong><br />
totalement l’exploiter.<br />
Cycle <strong>de</strong> vie d’une Portlet<br />
Le conteneur <strong>de</strong> Portlet permet <strong>de</strong> faire le lien entre le portail (IHM) et les<br />
Portlets, il se charge <strong>de</strong> réceptionner les requêtes client et <strong>de</strong> les transmettre à la<br />
Portlet concernée.<br />
Phase d’initialisation<br />
HTTP://SZNAJDERMAN.DEVELOPPEZ.COM/ARTICLES/PORTLET/JSR168/<br />
Durant cette phase (démarrage du serveur) les métho<strong>de</strong>s init() <strong>de</strong><br />
chacune <strong>de</strong>s Portlets sont appelées successivement.<br />
Arismore | Annexes 89
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Phase d’exécution<br />
HTTP://SZNAJDERMAN.DEVELOPPEZ.COM/ARTICLES/PORTLET/JSR168/<br />
Pendant la phase d’exécution, le Portal container exécute la métho<strong>de</strong><br />
processAction() <strong>de</strong> la Portlet concernée par l’appel. Ensuite, les différents<br />
ren<strong>de</strong>r() ou doView() <strong>de</strong>s autres portlets sont appelés. On opère ainsi un<br />
rafraichissement <strong>de</strong> toutes les portlets <strong>de</strong> la page.<br />
<strong>de</strong>stroy().<br />
Lors <strong>de</strong> l’arrêt du serveur, toutes les portlets sont détruites via l’appel <strong>de</strong><br />
Arismore | Annexes 90
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Broker d’évènement<br />
Event<br />
Une <strong>de</strong>s lacunes <strong>de</strong> la JSR-168 était la possibilité <strong>de</strong> communication entre<br />
les différentes portlets d’un portail. Avec l’arrivée <strong>de</strong> la JSR-286, cela <strong>de</strong>vient<br />
possible à l’ai<strong>de</strong> du broker d’évènement.<br />
Portlet.<br />
Voici un petit schéma qui explique parfaitement la communication inter-<br />
HTTP://WWW.IBM.COM/DEVELOPERWORKS/WEBSPHERE/LIBRARY/TECHARTICLES/0803_HEPP<br />
ER/0803_HEPPER.HTML<br />
Il suffit <strong>de</strong> dé<strong>fin</strong>ir dans le fichier <strong>de</strong> configuration Portlet.xml, quelles<br />
Portlets peuvent publier un évènement et quelles Portlets peuvent en recevoir.<br />
Ceci s’effectue à l’ai<strong>de</strong> <strong>de</strong>s tags respectivement publishing (nom <strong>de</strong> l’évènement<br />
à envoyer) et processing (nom <strong>de</strong> l’évènement à recevoir). Ensuite la Portlet<br />
réceptrice doit contenir une métho<strong>de</strong> processEvent() qui lui permettra <strong>de</strong><br />
recevoir et traiter l’évènement.<br />
Lors <strong>de</strong> l’envoi d’un évènement, c’est le broker qui dispatchera les<br />
évènements vers les portlets appropriées.<br />
Arismore | Annexes 91
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Public Ren<strong>de</strong>r Parameters and aliases<br />
Nous avons du utiliser les public ren<strong>de</strong>r parameters et les aliases, en<br />
complément <strong>de</strong>s évents a<strong>fin</strong> <strong>de</strong> pouvoir faire communiquer <strong>de</strong>s portlets qui se<br />
trouvent sur 2 pages différentes (espace accueil et espace travail).<br />
Mise à part cet avantage <strong>de</strong> pouvoir partager un paramètre sur plusieurs<br />
pages, les public parameters sont limité au partage d’un seul paramètre alors<br />
que les évents sont plus appropriés lors du partage d’une structure.<br />
Le but <strong>de</strong> ces « public ren<strong>de</strong>r parameters » est <strong>de</strong> partager au sein <strong>de</strong>s<br />
portlets, préalablement dé<strong>fin</strong>ie, un paramètre public. A l’ai<strong>de</strong> <strong>de</strong>s aliases, on peut<br />
également faire le lien entre 2 paramètres et ainsi pouvoir communiquer entre 2<br />
portlets qui se trouvent sur 2 pages différentes.<br />
Arismore | Annexes 92
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Voici comment on dé<strong>fin</strong>it un public parameters :<br />
<br />
nomTravail<br />
qnomTravail<br />
<br />
Il suffit ensuite <strong>de</strong> dé<strong>fin</strong>ir qu’elle Portlet supporte ce paramètre :<br />
nomTravail).<br />
Puis, une fois dans la Portlet, on récupère ce paramètre à l’ai<strong>de</strong> <strong>de</strong> la<br />
fonction classique :<br />
request.getParameter(« nomParamètre »).<br />
Arismore | Annexes 93
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Java Content Repository JSR-170<br />
A<strong>fin</strong> <strong>de</strong> pouvoir réaliser une gestion <strong>de</strong> contenu digne <strong>de</strong> ce nom, nous<br />
nous sommes appuyés sur la JSR-170 et nous l’avons implémentée à l’ai<strong>de</strong> <strong>de</strong><br />
l’outil Open Source d’Apache, JackRabbit.<br />
Cette implémentation permet <strong>de</strong> parfaitement séparer la couche<br />
traitement et la couche données. Ainsi, le développeur ne s’occupe pas <strong>de</strong> la<br />
façon dont sont stockées les données en base <strong>de</strong> données. Il ne s’appuiera que<br />
sur les métho<strong>de</strong>s <strong>de</strong> JackRabbit pour sauver ses données. Comme nous l’avons<br />
expliqué dans les dossiers précé<strong>de</strong>nts, la structuration <strong>de</strong> nos données s’effectue<br />
sous forme d’un arbre comprenant différents nœuds et chaque nœud peut<br />
possé<strong>de</strong>r <strong>de</strong> 0 à n propriété(s).<br />
Dans notre cas d’enregistrement d’une nouvelle section documentaire, le<br />
programme va vérifier si le nœud existe, si ce n’est pas le cas il va en créer un<br />
nouveau. Ensuite, nous allons sauvegar<strong>de</strong>r le contenu <strong>de</strong> ce nœud dans une<br />
propriété « content » via la métho<strong>de</strong> Nœud.setProperty (« content », content). Il<br />
ne reste plus qu’à sauvegar<strong>de</strong>r la session a<strong>fin</strong> que tous les changements soient<br />
effectifs. Ensuite nous allons sauvegar<strong>de</strong>r une version du nœud courant a<strong>fin</strong> <strong>de</strong><br />
pouvoir versionner nos contenu.<br />
Arismore | Annexes 94
[MEMOIRE DE FIN D’ETUDES ESIEA] 3 mars 2009<br />
Réunion <strong>de</strong> travail avec Olivier Tonnelier<br />
Arismore | Annexes 95