14.07.2013 Views

Mémoire de fin d'études esiea - Free

Mémoire de fin d'études esiea - Free

Mémoire de fin d'études esiea - Free

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!