Mémoire de stage : Master1
Mention : Responsable Etude et Développement du système d’information
Intitulé du mémoire
Année Scolaire Auteur Tuteur de stage Société
2009 – 2010 Ly Mamadou Makhtar Mr. Patrick Valliamee STRUCTIS
Le 31 – 08 - 2010
Table des matières
I. Présentation du groupe STRUCTIS ................................................................................................... 7
I.1. Bouygues-Construction : ............................................................................................................... 7
I.1.2. Organisation : ............................................................................................................................. 7
I.1.3. Savoir-Faire : ............................................................................................................................... 7
I.1.4. Valeurs : ...................................................................................................................................... 8
I.1.5. Chiffres clés: ............................................................................................................................... 8
I.1.6. Stratégie : ................................................................................................................................... 8
I.2. Structis : ......................................................................................................................................... 9
I.2.1. Organigramme :.......................................................................................................................... 9
I.2.2. Implantation : ............................................................................................................................. 9
I.2.3. Missions et axes stratégiques : ................................................................................................ 10
I.2.4. Organisation de STRUCTIS : ...................................................................................................... 10
II. Alfresco : Présentation : .................................................................................................................... 13
II.1. Les fonctionnalités d’Alfresco : .................................................................................................. 13
II.1.1. Alfresco : fonctionnalités, composants, architecture : ............................................................ 13
II.2. Installation Alfresco : ...................................................................................................................... 16
II.2.1. Alfresco archive : ..................................................................................................................... 16
I.2.2. Configuration Tomcat : ............................................................................................................. 17
II.2.3. Authentification SSO : Kerberos : .......................................................................................... 20
II.2.3.1 : Création de fichiers .keytab : .............................................................................................. 20
II.2.3.2 : krb5.conf et java.login.config : ........................................................................................... 22
II.2.4. alfresco-global.properties : ..................................................................................................... 22
II.2.5. SQL Server : ............................................................................................................................. 22
II.2.5.1 : Création d’un compte de connexion : ................................................................................. 22
II.2.5.2 : Création de la base de données : ......................................................................................... 23
II.2.5.3 : Activation des niveaux d’isolement : ................................................................................. 24
II.2.6. Module alfresco-mssql.amp: ................................................................................................... 24
II.2.7. Démarrage Alfresco : ............................................................................................................... 25
III .Médiathèque : Présentation : ...................................................................................................... 28
III.1. ExtJS : ......................................................................................................................................... 29
III.1.2. Les composant de la mediatheque : ...................................................................................... 30
III.2. Interface de la mediatheque : ................................................................................................... 31
III.2.1. Bandeau de recherche :.......................................................................................................... 32
Structis Page 1
III.2.2 Filtre des types : ...................................................................................................................... 32
III.2.3 Filtre par notation : ................................................................................................................. 32
III.2.4. Présentation des facettes : ..................................................................................................... 33
III.2.5. Affichage des résultats : ......................................................................................................... 34
IV. Alfresco : Les avantages ............................................................................................................... 36
Montée en charge Java ............................................................................................................. 37
Architecture agrégée avec REST .......................................................................................... 37
Normes ........................................................................................................................................... 37
Lecteur réseau partagé ............................................................................................................ 37
Intégration avec Microsoft Office.......................................................................................... 37
Règles pour la gestion de contenu ....................................................................................... 37
IV.1. Comparatif des ECM.................................................................................................................. 38
IV.2. Les partenaires d’Alfresco : ....................................................................................................... 39
Conclusion ......................................................................................................................................... 42
Bilan Personnel : ................................................................................................................................ 42
Glossaire : .......................................................................................................................................... 43
Bibliographie :.................................................................................................................................... 44
ANNEXES............................................................................................................................................ 45
Structis Page 2
Avant-Propos Remerciements
Ce travail a été réalisé dans le cadre du stage de master1 à HITEMA, école
supérieure d’informatique et de management, dispensant des formations en alternance
qui visent la double compétence : informatique et management.
Le stage s’est déroulé au sein de l’entreprise STRUCTIS à Guyancourt sous la
tutelle de Mr. Valliamee Patrick pour une durée de 7 mois.
STRUCTIS est une filiale informatique de Bouygues Construction qui a pour
mission d’apporter aux collaborateurs de Bouygues Construction des services
informatiques de qualité adaptés à leurs métiers et aux meilleurs coûts.
Ce mémoire traite des systèmes de gestion de contenu d’entreprise (Enterprise
Content Management) et plus précisément de l’outil open source Alfresco ainsi que de la
AVANT-PROPOS REMERCIEMENTS
mise en place d’un prototype d’application web appelé médiathèque.
Le présent stage a pu être réalisé grâce à l’aide et la collaboration de l’ensemble du
personnel de STRUCTIS et particulièrement à mon maître de stage Mr Valliamee
Patrick mais aussi de Mlle Leclerc Laurène.
A l’issue de cette nouvelle expérience, je tiens tout d’abord à remercier toute
l’équipe de la direction du Bureau d’études de STRUCTIS dirigé par Mr CHAPMAN
Andy, Mme Marchand Andree, à Mr MOUTY Laurent de m’avoir accepté en tant que
stagiaire dans leurs locaux et pour la confiance qu’ils m’ont accordée.
Je tiens tout particulièrement aussi à remercier d’une part Leclerc Laurène et
Jonathan Marie-Reine pour leur disponibilité, leur patience et l’aide efficace qu’ils ont
su m’apporter régulièrement lors du stage et d’autre part à Mr Oysel Pierre, professeur
de développement à HITEMA, pour la qualité de ses cours de J2EE, Mme Geneviève
TERRENOIRE directrice d’HITEMA.
Je remercie plus particulièrement mon maître de stage Mr. VALLIAMEE
Patrick. Je lui suis particulièrement reconnaissant de m’avoir fait confiance lors des
différentes tâches qu’il m’a données et également de m’avoir aidé à résoudre les
problèmes qui n’ont pas manqué de se présenter au quotidien. Sa philosophie, sa méthode
de travail, son encadrement m’a permis d’acquérir une compétence à la fois de
management et de technique.
Je voudrais également remercier tous les autres employés de STRUCTIS pour la
bonne humeur générale qui régnait au sein de l’entreprise.
Je suis extrêmement reconnaissant à toutes ces personnes d’avoir fait de mon stage
une expérience riche et inoubliable.
Structis Page 3
Introduction
Ce stage d’une durée de 7 mois, a consisté à mettre en place une application de gestion de
contenu (ECM, Enterprise Content Management) qui vise à gérer l’ensemble des contenus
d’une entreprise sous forme électronique.
La gestion de contenu est un terme générique ciblant un large spectre de fonctionnalités
couvrant des domaines tels que : la création, l’approbation, l’agrégation, la communication, la
diffusion, la publication, la réutilisation, l’archivage d’informations structurées et non
structurées ainsi que la collaboration, le workflow, le record management, etc.
Comme nous le verrons par la suite, il est primordial pour un responsable d’entreprise de
prendre les décisions les plus adaptées en matière de fonctionnalités et services attendus de la
gestion de contenu.
L’Enterprise Content Management (ECM) est devenu une préoccupation stratégique
d’investissement comme l’a été le PGI (Progiciel de Gestion Intégré ou encore ERP) dans le
passé. Le manque de gestion de contenu est déjà en train de pénaliser la profitabilité de
INTRODUCTION
nombreuses entreprises.
Dès lors, il n’y a aucune surprise à constater qu’il existe aujourd’hui des centaines de
systèmes de gestion de contenu (CMS), y compris un certain nombre de solutions Open
Source, et que de nombreuses consolidations d’éditeurs, par opérations de fusion/acquisition,
voient le jour dans ce marché très dynamique.
Il s’avère aujourd’hui que les entreprises et les administrations publiques doivent faire face à
l’explosion du volume de contenus électroniques, non structurés ou semi-structurés, et à leur
diversité, qu’ils soient issus de documents bureautiques (textes, tableaux, etc.), d’applications
web (portails, intranets, extranets, sites web, etc.), de documentations techniques (photos,
vidéos …), des e-mails, etc.
Les enjeux majeurs de la gestion de contenu ont en effet trait à l’amélioration du travail
collaboratif, à une meilleure accessibilité aux contenus, au partage des connaissances et à une
recherche facilitée et accélérée.
Comme exemple d’application nous étudierons l’outil ECM Open Source Alfresco.
Ainsi je m’emploierai dans un premier temps à vous présenter la société STRUCTIS.
Dans un second temps, j’analyserai les outils d’ECM et plus précisément d’Alfresco sous un
angle théorique en me référant à de nombreuses sources d’informations et ouvrages différents
traitant du sujet ; à savoir comment mettre en place une application web basée sur le moteur
de gestion de contenu Alfresco.
La troisième partie exposera les applications faites durant mon stage (la médiathèque), dans la
construction de la nouvelle entité, de l’analyse de la problématique.
Structis Page 4
La quatrième partie mettra en relief les avantages d’Alfresco ainsi que la présentation d’autres
outils ECM comme SharePoint, Documentum.
Pour finir, je résumerai mon bilan personnel de ce stage
Ce mémoire permettra donc de découvrir et de suivre d’une façon globale l’évolution,
l’importance et la portabilité de l’outil open source Alfresco ainsi que la mise en pratique
d’une solution web pour illustrer la flexibilité des systèmes de gestion de contenu.
Structis Page 5
Structis Page 6
I. Présentation du groupe STRUCTIS :
Structis est le Groupement d’Intérêt Economique de Bouygues-Construction crée en Janvier
2001afin d’assurer la mise en commun des informatiques existantes. Le GIE est basé sur le
site de Challenger à Guyancourt et emploie plus de 200 collaborateurs. Dans le cadre de sa
mission Structis propose des services de différentes natures tels que : la mise disposition
d’infrastructures informatiques, le développement, l’intégration et maintenance
d’applications, l’assistance aux utilisateurs ainsi que le pilotage des systèmes d’informations.
I.1. Bouygues-Construction :
Bouygues Construction, filiale du groupe Bouygues, est un des leaders mondiaux dans les
domaines du bâtiment, des travaux publics, de l'électricité et de la maintenance. Organisé en
grandes entités opérationnelles, il met en œuvre ses savoir-faire en matière de financement, de
conception, de construction, de maintenance et d'exploitation pour offrir à ses clients des solutions
globales et innovantes.
Face aux enjeux environnementaux de ses métiers, Bouygues Construction s'est engagé dans une
démarche pragmatique et structurante, qui porte à la fois sur la conception, la réalisation et
l'exploitation des ouvrages qui lui sont confiés. Il affirme ainsi une ambition : être un leader en
matière de construction durable.
Avec 52 600 collaborateurs répartis à travers le monde, le Groupe a réalisé en 2009 un chiffre
d'affaires de 9,5 milliards d'euros.
I.1.2. Organisation :
I.1.3. Savoir-Faire :
Bâtiment (financement, conception, construction/rénovation, exploitation,
développement immobilier) :
Immeubles de logements et de bureaux / Ouvrages publics / Centres commerciaux / Hôtels /
Centres d’expositions et de congrès/ Ensembles logistiques / Bâtiments industriels et
scientifiques / Aéroports…
Entreprises : Bouygues Bâtiment Ile-de-France, Bouygues Entreprises France-Europe,
Bouygues Bâtiment International, VSL, ETDE
Travaux Publics (financement, conception, construction/rénovation, exploitation,
concession) :
Structis Page 7
Ponts / Tunnels / Routes et autoroutes / Aménagement urbain / Lignes de chemin de fer et de
métro / Barrages / Digues et ports / Centrales nucléaires…
Entreprises : Bouygues Entreprises France-Europe, Bouygues Travaux Publics, VSL, DTP
Terrassement, Pôle Concessions, ETDE
Électricité/maintenance (ingénierie, travaux, maintenance et exploitation) :
Réseaux extérieurs aériens ou enfouis / Éclairage public / Systèmes de communication / Génie
électrique / Génie mécanique / Génie thermique / Facility management…
Entreprise : ETDE
I.1.4. Valeurs :
La réussite de Bouygues Construction repose sur ses équipes, leur savoir-faire et leur état
d’esprit. Elle est également fondée sur des valeurs fortes la marque distinctive du Groupe.
Exigence du résultat Écoute et satisfaction du client Entrepreneur et professionnel
Courage et vérité Sens de l'intérêt commun et solidarité Respect des hommes et des engagements
I.1.5. Chiffres clés:
Le groupe Bouygues c’est :
52 600 collaborateurs dont 29 000 hors de France
9,5 milliards d'euros de chiffre d'affaires en 2009, en progression de 0,5 %
Une présence dans 80 pays
I.1.6. Stratégie :
La stratégie de Bouygues Construction repose sur quatre axes prioritaires, complémentaires
de ses métiers de base.
Partenariats public –privé / Concessions
Développement immobilier
Développement des activités en Europe
Energies et Services
Structis Page 8
I.2. Structis :
Crée en 2001 Structis a pour mission d’apporter aux collaborateurs de Bouygues
Construction des services informatiques de qualité adaptés à leurs métiers et aux meilleurs
coûts.
Durant mon stage j’ai intégré l’équipe Bureau d’études de Structis. Donc cette partie abordera
juste la présentation et les valeurs de Structis.
I.2.1. Organigramme :
Ci-dessous j’ai représenté une partie de l’organigramme de la direction bureau d’étude de
Structis avec à sa tête Mr Chapman Andy. Cet organigramme illustre un peu ma place au sein
de l’équipe de Structis.
Chapman Andy
Marchand Andree Mouty Laurent Planes Isabelle
Mon maitre de stage
Valliamee Patrick
Stagiaire
Ly Mamadou
I.2.2. Implantation :
Ce stage s’est déroulé à Challenger
(siège central de Bouygues)
construit en 1985 par l'architecte
américain Kevin Roche sur un
terrain de 30 hectares à
Guyancourt, il accueille,
environ 3.000 personnes y
travaillent. Situé au milieu d'un
écrin de verdure taillé au cordeau
(14 jardiniers y travaillent chaque
jour), Challenger est composé de
deux bâtiments "triangles" et d'un
grand bâtiment principal
Structis Page 9
I.2.3. Missions et axes stratégiques :
Structis regroupe et mutualise les moyens informatiques du Groupe pour apporter les services
suivants aux collaborateurs de Bouygues Construction :
Mise à disposition d'infrastructures informatiques (micro-ordinateurs, serveurs,
réseaux, messagerie, logiciels, supervision, administration...) ;
Développement, intégration et maintenance d'applications créées spécifiquement par
nos équipes ou à partir de logiciels du marché ;
Assistance aux utilisateurs (installation ou remplacement, assistance téléphonique,
gestion des incidents et réclamations) ;
Pilotage des Systèmes d'Information - composés de 8 domaines : RH Paye, Finances,
Achats, Partage de la connaissance, Commercial, Matériel, Technique Travaux
et « Autres ».
I.2.4. Organisation de STRUCTIS :
La Direction des Opérations et Services (DOS) est la Direction la plus importante
en nombre de collaborateurs (plus de 135). Elle a pour principales missions d’assurer
l'installation et le remplacement des équipements informatiques, de fournir une
assistance aux utilisateurs, de concevoir et déployer les infrastructures S.I, de
développer et maintenir les infrastructures techniques, etc.
La Direction des Études se compose d'une soixantaine de personnes, principalement
des chefs de projet informatique, des ingénieurs d’études et des développeurs. Elle
prend en charge : l'intégration de progiciels (avec ou sans développement spécifique),
le développement de petits, moyens ou grands projets (de quelques jours à plusieurs
centaines), la maintenance des applications, le support applicatif.
La Direction de Service et d’Assistance à Maîtrise d’Ouvrage se compose de 2
fonctions :
- Les Assistants de Domaine (AD) qui ont pour mission de définir et de mettre en
œuvre le plan SI à trois ans en garantissant la cohérence, la pertinence et la
performance du SI du domaine ;
- Les Architectes des Systèmes d’Information (ASI) qui organisent le système
d’information en adéquation avec les entités/métiers dont ils sont responsables, dans le
respect des objectifs fixés par les Directions Générales des entités concernées et la
stratégie des SI Bouygues Construction fixée par le DCSI. Ils sont relayés sur le terrain
par des Correspondants Système d’Information (CSI).
La Direction e-Services a pour mission, au sein de Structis, de déployer des
offres de solutions «Software as a Service » – appelées e-services – qui répondent
à des besoins propres au cœur de métier de la construction. e-Services a accumulé
au fil des années une forte expertise dans le domaine de l’ouverture du Système
d’Information sur l’extérieur : saisies en mobilité à l’aide de tablettes PC,
plateformes d’échange via Internet, portails chantiers ou sous-traitants, etc.
I.2.5. Projets :
Quelques projets informatiques sont mise en place chez Structis parmis les quels l’on peut
citer
EDIFICE : Refonte et harmonisation du système d’information financier de
Bouygues Construction à l’aide du progiciel SAP.
Structis Page 10
MOBILITE : Déploiement de PDA renforcés pour la maîtrise ETDE afin de
moderniser et de faciliter la saisie des pointages et des demandes d’achat.
La médiathèque :
On peut élargir la liste mais nous allons parler du projet qui nous intéresse le plus qui est à
l’origine de ce mémoire à savoir le projet nommé la médiathèque.
Ainsi après présentation du groupe Bouygues et de Structis, nous pourrons aborder désormais
la partie II qui traitera l’outil de gestion d’entreprise : Alfresco
Structis Page 11
Structis Page 12
II. Alfresco : Présentation :
Alfresco est l'alternative open source de référence pour la gestion de contenu d'entreprise crée
en 2005. Alfresco combine l'innovation du monde open source avec la stabilité et les
performances d'une plateforme dédié à l'entreprise. Le modèle open source permet à Alfresco
d'utiliser les composants de référence existants et d'obtenir des contributions de la
communauté afin d'obtenir un logiciel de plus innovant, plus rapidement, de grande qualité et
à moindre coût.
L’objectif d’Alfresco n'est pas seulement de fournir une alternative open source, mais aussi de
surpasser les offres commerciales comme Documentum ou Microsoft SharePoint tant en
terme de fonctionnalités que de bénéfices pour les utilisateurs.
C’est une solution basée sur un système ouvert et basé sur la technologie J2EE JSF (Java
Server Faces) permettant la gestion de contenu d’entreprise et l’accès fluide et aisé au contenu
pour les différents utilisateurs. Elle utilise de nombreux outils libres reconnus comme Tomcat
(serveur Web et compilateur JSP), HSQLDB (base de données relationnelle en Java), Lucene
(moteur de recherche libre en Java), Hibernate, Spring et bien d’autres…
II.1. Les fonctionnalités d’Alfresco :
Alfresco permet de gérer les documents électroniques (GED) au sein d’une entreprise et
fournit des services de recherche et de catégorisation du contenu.
Gestion de Contenu d'Entreprise (ECM)
Gestion Documentaire
Gestion de Contenu Web
Collaboration
Plateforme de Contenu
Gestion des Connaissances
Gestion des Archives
Gestion des Documents Numérisés
Référentiel Open Source JSR-170
II.1.1. Alfresco : fonctionnalités, composants, architecture :
Alfresco propose de nombreuses fonctionnalités: voir figure1
Structis Page 13
Figure 1: Vue d'ensemble Alfresco
Alfresco utilise les composants suivants :
Spring Framework orienté aspects
ACEGI Framework de sécurité orienté
aspects
MyFaces Implémentation de JSF
Hibernate Mapping Objet-Relationnel et
Persistance
Lucene Moteur de recherche textuelle
JLAN serveur CIFS, FTP, NFS
POI Conversion de fichiers
PDFBox Conversion PDF
OpenOffice Suite bureautique
Axis services web
Freemarker - langage de modèles
Rhino Moteur javascript
EHCache Cache distribué
Log4J Gestion de logs
XFire Framework SOAP
Quartz Planificateur
TinyMCE Editeur riche
Jaxen Moteur XPATH
Chiba Moteur XForms
Quercus Moteur PHP
Structis Page 14
Architecture Alfresco
Alfresco présente une architecture très avancées et apporte les bénéfices suivants.
Facile à utiliser
Facile à administrer
Intégration des meilleures pratiques de collaboration
Recherche documentaire et Gestion de Connaissance Avancée
Architecture distribuée
Productivité des développeurs
Open Source
Accès aux données
CIFS/SMB Protocole de partage de
fichiers Microsoft
FTP Framework de sécurité orienté
aspects
NFS Implémentation de JSF
WebDav Mapping Objet-Relationnel et
Persistance
WebServices Moteur de recherche textuelle
Interface Web serveur CIFS, FTP, NFS
Structis Page 15
II.2. Installation Alfresco :
Alfresco utilise les derniers outils open-source pour optimiser les performances, et la
programmation Orientée Aspects (AOP) facilitant ainsi la modularité et l’adaptabilité de
l’application.
La procédure d’installation d’Alfresco sera réalisée en fonction de l’environnement (Windows
Server), du serveur d’application (Tomcat), du système de stockage (SQL Server), du
framework (Spring, JSF)… choisis.
Donc dans cette section j’explique la procédure d’installation que j’ai effectué durant mon
stage car le projet mediatheque nécessite obligatoirement le fonctionnement de la plateforme
Alfresco.
II.2.1. Alfresco archive :
Alfresco offre deux éditions différentes : la version Enterprise et la version Community. A
l’origine le projet mediatheque a été réalisé avec la version Enterprise qui nécessite une
licence, depuis le début de mon stage l’objectif était de migrer la mediatheque vers la version
community et que les développements et nouveautés soient assurés en interne et ne plus faire
appel au support.
Alfresco Enterprise Edition est testée et certifiée Alfresco Community Edition fonctionne dans un
dans des environnements applicatifs open source environnement applicatif open source. Son
et propriétaires. Elle inclut également un support support est assuré par la communauté Alfresco et
commercial complet. à travers les forums de développeurs.
La procédure d’installation d’alfresco que je vais étudier et expliquer par la suite, concerne
bien la version community et la version enterprise, néanmoins il existe des différences dont
nous tiendrons bien sûr en compte.
Récupérons par ici, l’archive.zip d’alfresco qui englobe un serveur d’application Tomcat
préconfiguré.
Pour faciliter le lecteur, je nommerai ALF_HOME le répertoire de cet archive et il présente
l’arborescence suivant.
Structis Page 16
I.2.2. Configuration Tomcat :
Tomcat est un serveur d'applications Java. Il permet de générer une réponse HTML à une requête
après avoir effectué un certain nombre d'opérations (connexion à une base de données, à un annuaire
LDAP...). Pour le client (un navigateur web en général), il n'y a pas de différence avec une page web
statique : il reçoit toujours du HTML, seul langage qu'il comprend. Seule la manière dont la réponse
est formée côté serveur change.
Les requêtes, pour le client, ne diffèrent pas non plus. Qu'il souhaite accéder à une ressource statique
ou à une application web, il utilise toujours une URL au même format (standard HTTP). C'est donc
côté serveur que la distinction doit s'opérer. Le schéma suivant montre le déroulement classique d'une
requête vers un serveur d'applications :
Structis Page 17
Remarque: CATALINA_HOME =ALF_HOME\tomcat
Dans le répertoire CATALINA_HOME\bin contient les fichiers exécutables de Tomcat. En
l'occurrence, principalement les fichiers batchs Windows permettant le démarrage et l'arrêt du
serveur. Mais également l'archive bootstrap.jar, contenant les classes permettant le
démarrage et l'initialisation du serveur.
catalina.bat
J’édite le fichier CATALINA_HOME\bin\catalina.bat, pour ajouter/modifier les lignes que
vous pouvez repérer via les tableaux ci-dessous. Ce fichier permet de démarrer la machine
virtuelle de tomcat avec un connecteur RMI activé.
Alfresco Home
set ALF_HOME= D:\InetPub\Dev\catalina_alfresco_community
set ALF_HOME_URI=%ALF_HOME:\=/%
PATH Configuration
set PATH=%ALF_HOME%bin;%PATH%
JAVA Configuration
set JAVA_HOME=D:\runtime\jdk1.6.0_19
set JAVA_OPTS=-Xms512m -Xmx1024m -Xss96k -XX:MaxPermSize=512m -server -
Dcom.sun.management.jmxremote
service.bat
Le fichier CATALINA_HOME\bin\service.bat nous permet de configurer Tomcat en
tant que service Windows, donc il nous permettra de démarrer ou arrêter tomcat en
exécutant respectivement les scripts startup.bat et shutdown.bat. Pour ce faire j’ai édité
éditez le fichier puis j’ai ajouté/modifié les lignes suivants
JAVA Configuration
set JAVA_HOME=Path de la JDK (example C:\mly\jdk1.6.0_19)
TOMCAT Home
set CATALINA_HOME= Path de tomcat (example:
D:\InetPub\Dev\catalina_alfresco_community\tomcat)
Service Configuration
set SERVICE_NAME=Nom du service (example CatalinaAlfrescoCommunity)
set PR_DISPLAYNAME=example(Catalina_Alfresco_Community)
set PR_DISPLAYNAME=example (Catalina_Alfresco_Community %2)
set PR_DESCRIPTION=description du service (example Service Catalina pour Alfresco Maison)
Kerberos, JVM Configuration
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-XX:MaxPermSize=128m;-
Djava.io.tmpdir=%CATALINA_BASE%\temp;-
Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-
Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;-
Djava.security.auth.login.config=%CATALINA_HOME%\kerberos\java.login.config;-
Structis Page 18
Djava.security.krb5.conf=%CATALINA_HOME%\kerberos\krb5.conf" --JvmMs 128 --JvmMx 512 -
-JvmSs=96
"%EXECUTABLE%" //US//%SERVICE_NAME% --DisplayName "Catalina_Alfresco_Maison"
"%EXECUTABLE%" //US//%SERVICE_NAME% --Environment
PATH=C:/mly/catalina_alfresco_community/bin;%PATH%
"%EXECUTABLE%" //US//%SERVICE_NAME% --
Install="D:\InetPub\Dev\catalina_alfresco_community\bin\tomcat6.exe" --Jvm auto
Après avoir configurer ces fichiers, j’exécute le fichier service.bat via le cmd pour que mon
serveur Tomcat soit installé comme service de Windows
CATALINA_HOME\bin>service.bat install
server.xml
La configuration du serveur Tomcat s'effectue en majeure partie dans le
fichier server.xml, situé dans le répertoire CATALINA_HOME/conf. Celui-ci contient
les éléments de configuration du serveur.
Editons le fichier CATALINA_HOME\conf\server.xml et ajustons le numéro de port
sur lequel Tomcat est à l'écoute des requêtes http.
Port HTTP
sqljdc4.jar
Le pilote JDBC Microsoft SQL Server, permet d’accéder aux données de la base de données
SQL Server.
La bibliothèque de classes sqljdbc4.jar requiert la version 6.0 de l'environnement d'exécution
Java (JRE, Java Runtime Environment) ou une version ultérieure. L'utilisation
de sqljdbc4.jar dans JRE 1.4 ou JRE 5.0 lève une exception.
J’ai déployé cette librairie dans le répertoire CATALINA_HOME\lib.
mediatheque.war
L’application mediatheque.war est à déployer dans le répertoire
CATALINA_HOME\webapps qui contient les applications web. C'est en tout cas le
répertoire par défaut pour ce faire. Je reviendrai cette application dans la partie III car elle
représente une grande partie de mon stage.
Structis Page 19
II.2.3. Authentification SSO : Kerberos :
Avec un nombre croissant d'applications à leur disposition, et donc avec autant de mots de
passe à mémoriser, les utilisateurs font de leur mieux : ils inscrivent ces codes secrets dans
leur agenda papier, les notent sur des Post-it qu'ils collent autour de leur écran ou, plus
simple, laissent leurs connexions ouvertes lorsqu'ils quittent leur poste de travail. Et ce, afin
de ne pas avoir à répéter le rituel quotidien de l'accès sécurisé à leurs applications.
Pour juguler cette prolifération de mots de passe, un remède existe : le Single Sign-On (SSO).
Il s'agit d'une gamme d'outils qui mémorise à la place des utilisateurs l'ensemble de leurs
codes secrets et les présente automatiquement à chaque application qui en fait la demande.
L'utilisateur n'a qu'à s'authentifier une seule fois, le plus souvent à l'ouverture de sa session de
travail, le reste est pris en charge par le SSO. Les mots de passe peuvent être stockés de façon
centralisée ou localement, sur une carte à puce, par exemple.
Cependant vous l’avez deviné finalement mon maître de stage m’a demandé de mettre en
place ce type d’authentification SSO basé sur Kerberos et Active Directory. Je me suis basé
donc sur l’infrastructure Microsoft (AD, Windows qui utilise Kerberos pour l’authentification
depuis la version 2000) et la sécurité java.
Remarques : Le fichier CATALINA_HOME\shared\classes\alfresco-global.properties est
le fondamental et pratique pour la configuration d’alfresco, car c’est dans ce dernier que je
spécifierai tous les paramètres de connexion à la base de données, d’authentification (SSO
Kerberos)…
Configuration Kerberos :
Mon maître de stage m’a beaucoup apporté lors de la mise en place de kerberos, il m’a bien
expliqué et détaillé le processus des authentifications kerberos, cependant j’ai mis en place
des authentifications pour notre instance d'alfresco (Enterprise ou Community), Kerberos
(avec Active Directory) utilise un système de tickets au lieu de mots de passe en texte clair.
Ce principe renforce la sécurité du système et empêche que des personnes non autorisées
interceptent les mots de passe des utilisateurs.
Rappel : Dans le fichier CATALINA_HOME\bin\service.bat, nous avions ajouté les lignes
ci-dessous qui permettent de déclarer les fichiers (java.login.config et krb5.conf) de
configuration de kerberos.
Djava.security.auth.login.config=%CATALINA_HOME%\kerberos\java.login.config;-
Djava.security.krb5.conf=%CATALINA_HOME%\kerberos\krb5.conf"
II.2.3.1 : Création de fichiers .keytab :
Pour définir des hôtes KDC (Contrôleurs de domaines) et des mappages utilisateur/service, il
faut obligatoirement générer un fichier d’extension. keytab, d'où l'utilisation de l'utilitaire
Ktpass, fourni avec le kit de ressources Microsoft Windows 2000.
Pour cette tâche j’ai travaillé avec mon maître de stage ainsi qu’un membre de l’équipe DOS
pour la création des utilisateurs sous Active Directory ainsi que les commandes que
nécessaires que j’expliquerai juste après.
Structis Page 20
Remarques : La commande Ktpass peut être exécutée à partir du serveur Active Directory
Encryption Type Windows Windows Windows Windows
2000 2003 2008 2008 R2
DES-CBC-CRC Yes Yes Yes Disabled
DES-CBC-MD5 Yes Yes Yes Disabled
RC4-HMAC Yes Yes Yes Yes
AES128-CTS-HMAC- No No Yes Yes
SHA1-96
AES256-CTS-HMAC- No No Yes Yes
SHA1-96
Nous (mon maître de stage et moi) avions choisi l’encryptage RC4-HMAC.
A la suite de la création de deux utilisateurs (user_cifs et user_http) par l’équipe de la DOS,
j’utilise finalement l’outil Ktpass pour générer les 2 fichiers que j’appellerai cifs.keytab et
http.keytab grâce aux commandes ci-dessous :
Création de cifs.keytab
>ktpass -princ cifs/alf_media_int.bouygues-construction.com@BOUYGUES-
CONSTRUCTION.COM -pass **** -mapuser BCNDOMAIN\user_cifs -crypto RC4-HMAC-
NT -ptype KRB5_NT_PRINCIPAL -out c:\temp\cifs.keytab
Création de http.keytab
>ktpass -princ HTTP/bcnssrv505.bouygues-construction.com@BOUYGUES-
CONSTRUCTION.COM -pass **** -mapuser BCNDOMAIN\user_http -crypto RC4-HMAC-
NT -ptype KRB5_NT_PRINCIPAL -out c:\temp\ http.keytab
Structis Page 21
Remarques : A noter que le nom de domaine (exemple BOUYGUES-CONSTRUCTION) est en
majuscule
II.2.3.2 : krb5.conf et java.login.config :
Le contenu de ces 2 fichiers de configuration qui sont très importants pour la mise en place de
kerberos est à retrouver aux annexes pages 44.
II.2.4. alfresco-global.properties :
Le fichier CATALINA_HOME\shared\classes\ alfresco-global.properties définit
l’ensemble des paramètres de l’architecture tels que :
l’accès à la base de données
la synchronisation et la gestion de la base des utilisateurs (via des annuaires LDAP,
Active Directory) par une authentification (SSO).
Les modèles de données (la modélisation des contenus avec le dictionnaire de
données Alfresco)
Les webscripts …
Vous trouverez un exemple en annexe.
II.2.5. SQL Server :
La mise en place de la base de données alfresco sera effectuée en 3 étapes grâce à SQL Server
Management Studio 2008 :
Création un compte de connexion user/login
Création de la base de données
Activation des niveaux d’isolements
II.2.5.1 : Création d’un compte de connexion :
La procédure à suivre pour la création d’un compte de connexion SQL Server qui utilise
l'authentification SQL Server est la suivante :
Dans SQL Server Management Studio, ouvrez l'Explorateur d’objets
Cliquez avec le bouton droit sur le dossier Sécurité/Connexions, puis cliquez sur
Nouvelle connexion comme l’illustre la figure ci-dessous.
Structis Page 22
Dans la page Général, entrez un nom pour le nouveau compte de connexion dans la
zone Nom d'accès (Ce nom doit correspondre à la variable db.username défini dans le fichier
alfresco-global.properties).
Sélectionnez Authentification SQL Server. L'authentification Windows est l'option la plus
sécurisée.
Entrez un mot de passe pour le compte de connexion (Ce mot de passe doit correspondre à la
valeur de la variable db.password défini dans alfresco-global.properties).
Sélectionnez les options de stratégie de mot de passe à appliquer au nouveau compte de
connexion. En général, conserver l'expiration du mot de passe est l'option la plus sécurisée.
Cliquez sur OK pour finir
II.2.5.2 : Création de la base de données :
Dans l'Explorateur d'objets, connectez-vous à une instance du moteur de base de données
SQL Server, puis développez-la
Cliquez avec le bouton droit sur Bases de données, puis cliquez sur Nouvelle base de
données.
Structis Page 23
Dans Nom de la base de données, entrez le nom de la base de données qui doit correspondre
à la valeur de la variable db.name défini dans le fichier alfresco-global.properties.
Dans Propriétaire, entrez le nom de l’utilisateur créé précédemment dans la partie II.2.3.1
Cliquez sur OK.
II.2.5.3 : Activation des niveaux d’isolement :
L’activation des niveaux d’isolement sera effectuée via l’exécution de la requête suivante :
avec alfresco comme nom de la base de donnée. Référence.
Requête transaction
ALTER DATABASE alfresco SET ALLOW_SNAPSHOT_ISOLATION ON;
II.2.6. Module alfresco-mssql.amp:
Le module alfresco-mssql.amp disponible ici, permet d'utiliser IBATIS comme couche de
persistance pour mapper et exécuter dynamiquement les données de l’objet dans la requête
SQL.
Ce module est à déployer dans le répertoire CATALINA_HOME\amps
A noter que pour installer un module pour Alfresco il faut exécuter le fichier
CATALINA_HOME\bin\alfresco-mmt.jar avec la commande ci-dessous
Install Module Alfresco
java –jar CATALINA_HOME\bin\alfresco-mmt.jar install
Structis Page 24
CATALINA_HOME\amps\alfresco-mssql.amp
CATALINA_HOME\webapps\alfresco.war
Remarque : vous pouvez voir la liste des modules installés sur votre instance alfresco grâce à
la commande ci-dessous :
Liste Modules Alfresco
java –jar ALF_HOME\bin\ alfresco-mmt.jar list CATALINA_HOME\
webapps\alfresco.war
II.2.7. Démarrage Alfresco :
Désormais la configuration étant terminée je peux démarrer le service alfresco pour déployer
l’application alfresco.war
Pour ce faire j’exécute la commande ci-dessous
Lancement Service Windows
services.msc
Figure 8: Services.msc
Cliquez sur Démarrer pour lancer le service Alfresco
log4j
Pour debugger l’application alfresco, j’utilise l’API log4j ce dernier est paramétrable via le fichier
CATALINA_HOME\webapps\WEB-INF\classes\log4j.properties après déploiement de l’archive
alfresco.war.
Editez le fichier et activer/désactiver les logs en fonctions de vos besoins
Finalement alfresco est désormais fonctionnel via l’url : http://server_name:port/alfresco
Structis Page 25
Figure 9: alfresco web
Pour donner un peu de saveur à ce rapport, je vais vous présenter en partie III ce qui constitue
le cœur de ma mission durant ce stage il s’agit bien sûr du projet mediatheque.
Structis Page 26
Structis Page 27
III .Médiathèque : Présentation :
La médiathèque est une application de gestion de contenu (ECM, Enterprise Content
Management) qui vise à gérer l’ensemble des contenus d’une entreprise sous forme
électronique.
L’application sera composée de différentes « couches » communicant entre elles et assurant
chacune un aspect de l’application.
Ainsi on trouve le référentiel Alfresco qui apporte les fonctionnalités de GED et la couche
présentation qui prend en charge l’interface avec l’utilisateur.
Ces deux couches échangent des informations à travers des communications s’appuyant des
appels http et des réponses au format JSON sur http, sauf dans le cas des fichiers médias qui
transitent en binaire.
Structis Page 28
http, get, post
Web Scripts
alfresco mediatheque
html, json, xml
Les étapes de configuration et d’installation de la médiathèque va se reposer sur
Un principe général : qui permet d’avoir des paramètres généraux Véga (modèle de
données général des contenus de la médiathèque voir annexe page 45), des paramètres
s’appliquant à l’ensemble des médiathèques, et des paramètres propres à une
médiathèque.
A noter que des adaptations du client Alfresco ont été apportées pour permettre l’utilisation
des catégories comme taxons et optimiser leur utilisation par la mise en place d’un cache de
données.
Avant d’entrer dans le vif du sujet il est important que je vous présente les api qui sont utilisés
pour le développement de cette application web :
III.1. ExtJS :
Ext est une bibliothèque Javascript permettant de construire des applications web
interactives. C'était au départ une extension à la bibliothèque Javascript YUI de Yahoo, Ext
peut maintenant être utilisée avec les bibliothèques Prototype, JQuery ou encore toute seule.
Ext apporte un certain nombre de composants visuels d'une grande qualité comme des champs
de formulaires avancés, des arbres, des tableaux, menu et barre d'outils, onglets, boites de
dialogue. La version 2.0 est de sortie le 4 décembre 2007. Il s'agit d'une amélioration majeure
de la bibliothèque. D’ailleurs la mediatheque a été développé avec cette version.
Le SDK d’ExtJS
La première phase consiste à télécharger le SDK complet contenant toutes les sources du
framework via cet url http://extjs.com/products/extjs/download.php
Ensuite, deux fichiers seront impérativement appeler dans nos pages, à partir
desquels, presque toutes les fonctionnalités pourront être utilisées (excepté l’Ajax avec les
jquery, se trouvant dans un dossier annexe du Sdk, ou la bibliothèque
scryptaculous permettant du design …).
Voici donc les lignes à rajouter dans toutes les pages :
Structis Page 29
Ensuite, un design complet est fourni d’office dans le kit, il est donc préférable de copier le
contenu des ressources d’extjs ainsi que le CSS ext-all.css
Ce second CSS concerne le design des popups du site
III.1.2. Les composant de la mediatheque :
Les différents types de composant proposés par ExtJS sont listés dans le tableau ci-dessous.
Nous les avons utilisés et en avons ajouté quelques-uns par assemblage de ces composants
élémentaires.
Type Class
Box Ext.BoxComponent
Button Ext.Button
Colorpalette Ext.ColorPalette
Component Ext.Component
Container Ext.Container
Cycle Ext.CycleButton
Dataview Ext.DataView
Datapicker Ext.DatePicker
Editor Ext.Editor
EditorGrid Ext.grid.EditorGridPanel
Grid Ext.grid.GridPanel
Paging Ext.PagingToolbar
Panel Ext.Panel
Progress Ext.ProgressBar
Propertygrid Ext.grid.PropertyGrid
Slider Ext.Slider
Splitbutton Ext.SplitButton
Toolbar Components
Toolbar Ext.Toolbar
Tbbutton Ext.Toolbar.Button
Tbfill Ext.Toolbar.Fill
Tbitem Ext.Toolbar.Item
Tbseparator Ext.Toolbar.Separator
Tbspacer Ext.Toolbar.Spacer
Tbsplit Ext.Toolbar.SplitButton
Tbtext Ext.Toolbar.TextItem
Form Component
Form Ext.FormPanel
Structis Page 30
Checkbox Ext.form.Checkbox
Combo Ext.form.ComboBox
panel Ext.
Datefield Ext.form.DateField
Field Ext.form.Field
Fieldset Ext.form.FieldSet
Hidden Ext.form.Hidden
Htmleditor Ext.form.HtmlEditor
Label Ext.form.Label
Numberfield Ext.form.NumberField
Radio Ext.form.Radio
Textarea Ext.form.TextArea
Textfield Ext.form.TextField
Timefield Ext.form.TimeField
Trigger Ext.form.TriggerField
Les composants sont présentés selon différents « layout » qui définissent la manière dont les
composants sont assemblés : côte à côte, les uns au-dessus des autres, … Les différents types
de layout sont : absolute, accordion, anchor, border, card, column, fit, form, table
III.2. Interface de la mediatheque :
Après avoir présenté la couche Extjs, l’image ci-dessous montre vraiment l’interface
graphique de l’application mediatheque qui est réalisable facilement grâce à l’API ExtJS.
Cependant après cette présentation photographique, il est important de savoir comment est
établie la relation mediatheque alfresco ? Effectivement cette relation est rendue possible
grâce à une technologie appelée Webscripts cette dernière permet de composer des
« services », similaires à des services web, capables de retourner divers formats de données :
XML, JSON, ATOM, etc... Ainsi, ces interfaces ne sont qu'un retour au format HTML d'un
service de navigation.
Structis Page 31
III.2.1. Bandeau de recherche :
Le bandeau de recherche se présente ainsi :
Un style globale est ajouté pour ce bandeau dans le fichier « resources\css\extension-all.css »
avec le nom « searchBar » permettant de spécialiser les éléments contenu.
Recherche plein text
Cette zone est constituée d’un composant Ext.form.TextField et d’un composant Ext.Button.
Aucun style spécifique n’a été ajouté sur ces éléments.
Cette recherche s’effectue sur un ensemble de propriété configurable par médiathèque à l’aide
du paramètre « FULL_TEXTE_ATTR » dans le fichier config. Ce paramètre doit lister
l’ensemble des propriétés sous forme d’un tableau. Un exemple de syntaxe est le suivant :
"FULL_TEXTE_ATTR" : ["@cm\\:name","@cm\\:description","@cm\\:title"]
Ces syntaxes sont écrites en Lucene (Lucene est un moteur de recherche libre écrit en Java qui permet
d'indexer et de rechercher du texte. C'est un projet open source de la fondation Apache mis à disposition sous
licence Apache. Il est également disponible pour les langages Ruby, Perl, C++, PHP.)
Par ce paramètre, les propriétés utilisées seront le nom, la description ainsi que le titre.
III.2.2 Filtre des types :
Cette zone est constituée de quatre composants Ext.form.Checkbox. Aucun style spécifique
n’a été ajouté sur ces éléments.
Donc elle offre une recherche spécifique selon les critères suivants :
Tous pour visualiser tous les contenus d’un espace
Photos retourne que les medias de type Photos
Logos retourne que les medias de type Logos
Vidéos retourne que les medias de type Vidéos
A noter que les type de medias sont définis dans le modèle de données voir annexe page 46
III.2.3 Filtre par notation :
Cette zone est constituée de quatre images cliquables représentant les notations des éléments
de la médiathèque. Trois styles déclarées dans le fichier « resources\css\extension-all.css sont
utilisés :
rating-filter (1): style générique pour les images.
rating-filter-no (2): style de spécialisation pour l’option aucun filtre.
rating-filter-gold (3): style de spécialisation pour le choix d’un filtre.
Structis Page 32
III.2.4. Présentation des facettes :
Les facettes sont représentées à l’aide de panneau affiché les uns au-dessous des autres ainsi :
Les facettes sont vraiment pratiques pour avoir une vision plus globale des contenus de
l’entreprise. La structure obtenue respecte bien celle définies par les collaborateur et
administrateurs d’une entité opérationnelle.
Structis Page 33
III.2.5. Affichage des résultats :
Mode vignette
L’affichage des résultats d’une recherche (depuis les facettes, la recherche plein texte ou
l’espace privé) les éléments peuvent être présentés sous la forme de vignette :
Grande vignette
Petite vignette
Les copies d’écran ci-dessus présentent l’affichage d’un espace privé
Le principe de présentation pour ces deux modes est identique, la différence concerne
uniquement la taille des vignettes. L’enchainement des css est le suivant :
Structis Page 34
Les css utilisées sont :
Zone 1 : thumb-wrap (dans tous les cas) et high-res pour les grandes vignettes ou
high-small-res pour les petites vignettes. Lors de la sélection d’un élément la css « xview-
selected » est ajoutée. Lorsque la souri survole cette zone, la css « x-view-over »
est ajoutée.
Zone 2 : thumb (dans tous les cas) et private lorsque l’élément n’est pas encore publié ou
public dans le cas contraire. La classe private est responsable du cadre rouge autour de
l’élément. Leur définition se trouve dans le fichier « resources\css\extensionall.css ».
Zone 3 : Affichage du type d’élément. L’icône présentée est le résultat de la définition des
css photo, logo, video dont la définition se trouve dans le fichier
« resources\css\extension-all.css ». A noter que leur définition a été spécialisée pour la css
thumb-wrap, par exemple « .thumb-wrap .photo »
Zone 4 : Affichage de la case à cocher. Le principe retenu est celui de ExtJs, à savoir une
css définissant l’image de la case « imgItemSel ». Celle-ci est spécialisée pour représenter la
case à cocher par la définition « .x-view-selected .imgItemSel ».
Zone 5 : Affichage de l’outil de téléchargement. L’icône présentée est le résultat de la
définition de la css « imgDownload ». Sa définition est spécialisée ainsi « .thumbwrap
.imgDownload » dans le fichier « resources\css\extension-all.css ».
Zone 6 : Affichage de l’outil d’envoi de lien. L’icône présentée est le résultat de la
définition de la css « imgForward ». Sa définition est spécialisée ainsi « .thumb-wrap
.imgForward » dans le fichier « resources\css\extension-all.css ».
Zone 7 : Affichage de l’outil de suppression d’un élément, disponible uniquement si
l’utilisateur n’est pas simple lecteur de la médiathèque. L’icône présentée est le
résultat de la définition de la css « imgDelete » dans le fichier
« resources\css\extension-all.css ». Aucune spécialisation n’est faite pour celle-ci car elle est
utilisée sur d’autre fonctionnalité.
Cette présentation utilise le mécanisme de « DataView » d’ExtJs et repose sur la définition
des css définies dans le fichier « resources/css/data-view.css ». Les définitions sont
spécialisées finement par l’ajout du préfix « # main-content » correspondant à la zone centrale
de l’affichage, y compris la barre d’outil.
Mode diaporama
Le mode diaporama permet de présenter les objets à l’aide d’un carousel avec un zoom sur la
vignette en bas de page. La sélection est unique dans ce mode d’affichage. Les fonctionnalités
de téléchargement, envoi, suppression ne sont disponibles que depuis la barre d’outils dans ce
mode de navigation :
Structis Page 35
Chacune des vignettes par un div auquel est ajouté le style fixe « x-carousel-item » et dont la
taille est fixée. Celui-ci permet la sélection des éléments avec les mécanismes d’ExtJs. Lors
de la sélection de l’élément le style « x-view-selected » est ajouté.
Un autre div est encapsulé avec le style « private » ou « public » ajouté en fonction de l’objet,
classe définie dans le fichier « resources\css\extension-all.css ».
Aucune spécificité n’est mise en place pour le zoom sur l’image.
La génération des vignettes, ainsi que la personnalisation de l’affichage a été effectuée en java
avec des outils comme ImageMagik (pour la génération des vignettes), ffmpeg (pour la
transformation d’une vidéo en flash).
IV. Alfresco : Les avantages
La gestion de contenu d'entreprise (ECM) est extrêmement coûteuse à déployer et à faire
évoluer et demande souvent du matériel et des logiciels complémentaires coûteux. Les sites
les plus évolutifs du monde s'exécutent maintenant sur du logiciel Open Source. Les sites
Web 2.0 ont banalisé le processus de montée en charge afin de se focaliser sur :
- la voie Open Source
- l’évolution sur un ensemble de matériels et logiciels génériques, faiblement liés et de
faible coût.
Alfresco Content Platform offre le contenu en tant que service à partir du référentiel de
contenu Java le plus extensible, qui est clusterisé, fédéré et répliqué.
Comme vous pouvez le constater le choix de la plateforme Alfresco pour le projet de la
médiathèque n’est pas fait au hasard car elle offre un service orienté contenu extrêmement
puissant :
Structis Page 36
Montée en charge Java
Alfresco Content Platform offre le Java CMS le plus apte à monter en charge, avec
environ 100 millions de documents selon un benchmark certifié indépendamment et
réalisé par Unisys Corporation.
Architecture agrégée avec REST
Le Web nouveau repose sur REST (REpresentational State Transfert). Pour intégrer
les applications externes et internes et le contenu, vous devez adopter la même
architecture : accès par URL, scripts légers et standards partagés.
Normes
Alfresco repose sur des standards tels que REST, RSS, Atom publishing, JSON,
OpenSearch, OpenSocial, OpenID, Web Services, JSR 168, JSR 170 Level 2,
MyFaces, CIFS, FTP, WebDAV, SQL et ODF. Le respect de ces standards simplifie
fortement l'intégration dans votre architecture et vous permet de diminuer les coûts.
Lecteur réseau partagé
Le référentiel Alfresco est identique à un lecteur réseau partagé. Vous pouvez donc
immédiatement continuer à utiliser vos outils d'édition préférés, de Microsoft Office à
Open Office, Dreamweaver ou AutoCAD, sans installation de logiciel complémentaire
sur le poste de travail ni de formation supplémentaire. Vous obtenez juste ce que vous
souhaiter : la capacité d'enregistrer, de contrôler les versions, de partager, de
rechercher et de contrôler l'accès aux données.
Intégration avec Microsoft Office
Alfresco s'intègre avec Microsoft Office et Open Office. Vous pouvez donc continuer
à travailler dans votre environnement bureautique sans formation supplémentaire.
Vous obtenez juste ce que vous et votre société voulez : la capacité d'enregistrer, de
contrôler les versions, de partager, de rechercher et de contrôler l'accès aux données, et
utiliser des workflows simples à mettre en place.
Règles pour la gestion de contenu
Alfresco transforme le simple lecteur réseau partagé en un système de fichiers virtuel
où vous pouvez créer les applications de gestion de contenu dont vous avez besoin
grâce à de simples assistants. Si vous glissez-déposez un document dans un dossier,
vous pouvez démarrer un workflow, éventuellement convertir le document en un autre
format, le déplacer dans un autre dossier ou notifier un ensemble d'utilisateurs par
email. Le workflow peut même extraire des propriétés telles que le nom de l'auteur ou
d'autres mots clés à partir du document, vous permettant de les utiliser ultérieurement
pour rechercher le document. Vous utilisez juste les fonctionnalités dont vous ou votre
service avez besoin, aussi simplement que vous créez des règles de filtrage de mail.
La médiathèque est un exemple d’application qui prouve encore une fois que l’on peut faire
beaucoup de chose avec Alfresco.
Structis Page 37
Néanmoins l’objectif de cet outil n'est pas seulement de fournir une alternative opensource,
mais aussi de surpasser les offres commerciales comme Documentum® ou Microsoft®
SharePoint® tant en terme de fonctionnalités que de bénéfices pour les utilisateurs
IV.1. Comparatif des ECM
Ci-dessous je vous présente un tableau comparatif des GED collaboratifs [EMC
Documentum, OPENTEXT ECM (ex : Livelink), SharePoint] et leurs concurrents
opensource : Alfresco, OpenText et Nuxeo
Logiciel/Editeur Prix Forces/Faiblesse Fonctionnalités OS Compatibles
Abonnement Points forts: Process/Workflow Serveurs:
obligatoire Rapidité, robustesse Gestion des Windows Server 2003,
à partir de Etendue fonctionnelle emails 2008
16 125 euros Recherches fulltext Red Hat Enterprise
par CPU Points faibles: Sauvegarde de Linux 5
(environ 50 Complexe à recherches Sun Solaris 10
utilisateurs). configurer (fichiers
Alfresco/Alfresco XML) Gestion des droits Clients:
A version
community est Authentification Windows 2000,
gratuite LDAP/SSO XP,Vista
Records Mac OS X
management
Archivage
légal
Web Content
Management
Gratuit (licence Points forts: Business Serveurs:
LGPL) Gratuité des licences, Process/Workflow Windows Server 2000,
pas d'abonnement Gestion des 2003,2008
obligatoire emails RedHat Linux 3.x, 4.x,
Etendue fonctionnelle Recherches fulltext 5.x
Nuxeo DM/ Flexibilité Sauvegarde de Sun Solaris 9.x, 10.x
Nuxeo
Capacités d'extension et recherches
d'intégration aux Clients:
systèmes d'informations Gestion des droits Windows XP, Vista,
existants Authentification Mac OS X
Points LDAP/SSO
faibles: Records
Complexe à configurer management
Archivage
légal
Web Content
Management
License Serveur Points forts: Business Serveurs:
MOSS 2007: Portail collaboratif Process/Workflow Windows Server 2003,
3730€ performant et simple à Gestion des 2008
Licence Client utiliser emails
(CAL): Solution moins Recherches fulltext Clients:
SharePoint/
Microsoft 80€ couteuse et moins Sauvegarde de Windows XP, Vista
complexe à mettre en recherches Mac OS X
œuvre que Opentext et Gestion des droits
Documentum Authentification
LDAP/SSO
Points faibles: Records
fonctionnalités GED management
moins avancées que ses
concurrents, notamment Web Content
Structis Page 38
en termes d'archivage Management
légal et longue durée
Prix minimum Points forts: Business Serveurs:
de départ non Fonctionnalités GED Process/Workflow Windows Server 2003,
communiqué optimisées grâce à Gestion des 2008
(Cout de 1000 l'intégration MS Office, emails Red Hat Enterprise
licences:475400 SharePoint, SAP,etc. Recherches fulltext Linux 5
OpenText €) Sauvegarde de Sun Solaris 10
ECM Suite (ex Points faibles: recherches
Livelink)/ cout des licences et de Clients:
OpenText mise en œuvre Gestion des droits Windows 2000,
Authentification XP,Vista
LDAP/SSO Mac OS X
Records
management
Archivage
légal
Web Content
Management
Prix minimum Points forts: Business Serveurs:
de départ non Rapidité, robustesse: le Process/Workflow
communiqué temps de réponse Gestion des Windows Server 2003,
(Cout de 1000 moyen est de 0,86s pour emails 2008
licences: 100000 utilisateurs Recherches fulltext Red Hat Enterprise
557300 €) connectés Sauvegarde de Linux 5
simultanément pendant recherches Sun Solaris 10
12H
EMC Gestion des droits Clients:
Documentum/
Points faibles: Authentification Windows 2000,
EMC
GED la plus chère du LDAP/SSO XP,Vista
marché, complexe et Records Mac OS X
longue à mettre en management
œuvre Archivage
légal
Web Content
Management
Comme nous pouvons le constater Alfresco n’est pas seul sur le marché mais possède une
longueur d’avance considérable par rapport aux autres systèmes opensource.
IV.2. Les partenaires d’Alfresco :
La demande croissante pour les produits et services Alfresco a donné naissance à un large
réseau de partenaires. Cette communauté d'intégrateurs, éditeurs de logiciels et revendeurs est
en mesure de vous apporter des services à forte valeur ajoutée et une aide au déploiement
d'Alfresco.
En tant qu'utilisateur final, vous pouvez être assurés qu'Alfresco va collaborer avec ses
partenaires pour vous proposer une large gamme de solutions et services autour de nos
produits. En tant que partenaire, vous pouvez toucher une communauté d'utilisateurs qui a
téléchargé Alfresco plus d'un million de fois !
Structis Page 39
Intégrateurs Exemples Sociétés
Les intégrateurs fournissent une expertise en
conseil, en intégration, en développement, et en
migration vers la solution ECM Alfresco. Tous
les intégrateurs ont une équipe formée et certifiée
par nos soins.
Editeurs et Solutions OEM Exemples Sociétés
Les partenaires éditeurs fournissent des solutions
complémentaires à Alfresco ou utilisent Alfresco
comme composant de leurs logiciels. Dans les
deux cas, nous certifions la compatibilité de leurs
travaux.
Partenaires Technologiques Exemples Sociétés
Les partenaires technologiques fournissent
l'infrastructure ou les plateformes requises pour
l'installation d'Alfresco. Les clients peuvent
déployer des environnements critiques en toute
confiance sachant que les solutions de ces
partenaires sont certifiées et validées avec les
solutions Alfresco.
Hébergeurs Exemples Sociétés
Les partenaires hébergeurs fournissent
l'infrastructure managée necessaire à un
déploiement d'Alfresco en mode ASP. Ces
partenaires fournissent aussi un support pour la
version Alfresco Entreprise.
Partenaires Formateurs Exemples Sociétés
Ces partenaires peuvent délivrer des formations
certifiées Alfresco en français en utilisant des
supports développés par Alfresco. Les formateurs
sont certifiés par Alfresco.
Structis Page 40
Structis Page 41
Conclusion
Bilan Personnel :
Après plus de six mois passés au sein de Structis, je peux établir un bilan plus que
satisfaisant sur ce que tout cela m’a apporté. En premier lieu, j’ai pu mettre en application
toutes les notions qui m’ont été enseignées à HITEMA, tant sur le plan technique que sur le
plan de la communication dans l’entreprise.
En effet, je tiens à souligner que les cours de développement et de gestion de projet
dispensés ont un réel intérêt, car ils m’ont servis pour dialoguer régulièrement avec les
différents interlocuteurs, collègues, maître de stage…notamment lors des réunions techniques
avec mon maître de stage qui m’a aussi beaucoup aidé dans la communication, la
méthodologie…
Je suis pleinement satisfait de ce stage qui m’a enrichi car j’ai eu à manipuler des
concepts que je ne connaissais pas ou peu auparavant. J’ai pu acquérir au niveau technique
des connaissances indéniables sur les outils et notions utilisés.
Je tire un bilan vraiment très positif de ce stage qui fut conforme à mes attentes. Ce fut
une expérience très fructueuse car je pense pouvoir tirer bénéfice de l’apport de celui-ci lors
de mon insertion future dans la vie professionnelle.
Apport pour Structis
Pour résumer :
Alfresco est un outil libre très employé pour gérer intelligemment les documents en entreprise
Il offre la possibilité de créer des workows adaptées à ses besoins
Il supporte le passage l'échelle et peut être hautement disponible.
Le projet mediatheque de Structis sur lequel je travaillé durant mon stage, est le fruit
qu’Alfresco peut fournir sans pour autant être un expert dans les domaines des GED.
En ce qui concerne le travail réalisé, j’ai tâché d’accomplir les missions que l’on m’a
confiées avec sérieux et efficacité.
La mise en place d’une application alfresco a été réalisée et mise en place assez
rapidement ainsi que la migration de la base de données sur SQL Server 2008.
J’ai également rédigé quelques documents techniques pour les futures intervenants sur
le projet mediatheque.
La mise en place d’une authentification SSO Kerberos est aussi fonctionnelle et
permettra à tous les collaborateurs de Structis d’accéder au portal mediatheque. Une
documentation technique a aussi été rédigée pour les futurs administrateurs de la
médiathèque.
Enfin, le travail considérable consister à faire fonctionner la mediatheque avec une
version récente d’Alfresco (3.2r2 Community), ce travail s’est abouti avec succès avec la mise
Structis Page 42
en place de WebServices spécifiques à la médiathèque, ainsi que des librairies qui permettront
de gérer les différents traitements qui font la beauté de l’application mediatheque parmis les
quels l’on peut citer la génération des vignettes, la conversion des vidéos en flv, la
catégorisation des contenus en fonction du modèle de données.
En annexe, j’ai ajouté quelques capture d’écran pour voir l’interface de la médiathèque
Glossaire :
Ce glossaire définit les termes spécifiques utilisés dans le document et sert à compléter la partie
concepts et outils utilisés. Ma principale source a été wikipédia.
Open Source :
La désignation Open Source (Code source accessible en français) s'applique aux
logiciels dont la licence respecte des critères précisément établis par l'Open Source Initiative.
Les principaux critères étant la libre redistribution, un code source disponible et les travaux
dérivés possibles.
Licence GNU GPL:
La licence GNU (General Public License) offre la liberté d'utiliser, d'étudier, de modifier et de diffuser
le logiciel et ses versions dérivées librement. C’est la licence la plus utilisée dans le monde des
logiciels libres
Gestion Electronique de Documents :
La GED (Gestion Electronique de Documents) est un système informatisé d'acquisition,
classement, stockage et d’archivage de documents. Elle est utilisée dans l’entreprise pour
partager et avoir accès facilement aux documents communs.
Single Sign On :
L'authentification unique ou identification unique (en anglais Single Sign-On ou SSO)
est une méthode permettant à un utilisateur de ne procéder qu'à une seule authentification
pour accéder à plusieurs applications informatiques (ou sites web sécurisés).
ECM : Gestion de contenu d’Entreprise (Enterprise Content Management)
La gestion de contenu (en anglais Enterprise Content Management : ECM) vise à
gérer l'ensemble des contenus d'une entreprise. Il s'agit de prendre en compte sous forme
électronique les informations qui ne sont pas structurées, comme les documents électroniques,
par opposition à celles déjà structurées dans les bases de données.
Structis Page 43
Bibliographie :
Cette bibliographie reprend les sites principaux utilisés lors de mes recherches.
Site officiel d’Alfresco : http://www.alfresco.com
Wiki (Forum, Blog, API Service…) : http://wiki.alfresco.com
Transformation contenus alfresco : http://wiki.alfresco.com/wiki/Content_Transformations
Projets community : http://forge.alfresco.com/
ImageMagick : http://www.imagemagick.org/script/index.php
Ffmpeg : http://www.ffmpeg.org/
Structis Page 44
ANNEXES
Krb5.conf
[libdefaults]
default_realm = BOUYGUES-CONSTRUCTION.COM
efault_tkt_enctypes = rc4-hmac
default_tgs_enctypes = rc4-hmac
permitted_enctypes = rc4-hmac
udp_preference_limit = 1
[realms]
BOUYGUES-CONSTRUCTION.COM = {
kdc = bcnssys101.bouygues-construction.com
default_domain = BOUYGUES-CONSTRUCTION.COM
admin_server = bcnssys101.bouygues-construction.com
}
[domain_realm]
bcnssys101.bouygues-construction.com = BOUYGUES-CONSTRUCTION.COM
.bcnssys101.bouygues-construction.com = BOUYGUES-CONSTRUCTION.COM
Java.loging.config
Alfresco {
com.sun.security.auth.module.Krb5LoginModule sufficient;
};
AlfrescoCIFS {
com.sun.security.auth.module.Krb5LoginModule required
storeKey=true
useKeyTab=true
keyTab="D:/InetPub/Dev/catalina_alfresco_community/tomcat/kerberos/adminbe_cifs.keytab"
principal="cifs/alf_mediatheque_dev.bouygues-construction.com";
};
AlfrescoHTTP {
com.sun.security.auth.module.Krb5LoginModule required
storeKey=true
useKeyTab=true
keyTab="D:/InetPub/Dev/catalina_alfresco_community/tomcat/kerberos/adminbe_http.keytab"
principal="HTTP/bcnssrv505.bouygues-construction.com";
};
com.sun.net.ssl.client {
com.sun.security.auth.module.Krb5LoginModule sufficient;
};
other {
com.sun.security.auth.module.Krb5LoginModule sufficient;
};
Structis Page 45
VegaModel
Type/Aspect Nom Description
Type vega:content Type principal des documents Véga contenant les
attributs
génériques comme le titre, l’auteur, le statut du
document, …
Type vega:blogcontent Type des billets de blog
Type vega:static Type des pages rédactionnelles : aide, contacts, liens,
info
légale.
Type vega:space Type des espaces Véga contenant les éventuels
attributs
génériques.
Rq. : les attributs désignant les fichiers de
configuration de
cet espace n’est plus utile par la mise en place du
cache
des fichiers de données.
Aspect vega:aspCateg Extension des catégories pour gérer les libellés en
différentes langues
Aspect vega:aspFacette Aspect racine des facettes. Permet de définir des
attributs
s’appliquant à toutes les facettes.
Aspect vega:aspTypeOuv Aspect définissant la facette « Type d’ouvrage »
rage
Aspect vega:aspLocalisat Aspect définissant la facette « Localisation »
ion
Aspect vega:aspOrganisa Aspect définissant la facette « Organisation »
tion
Aspect vega:aspTypeTra Aspect définissant la facette « Type de travaux »
vaux
Aspect vega:aspDomaine Aspect définissant la facette « Domaine »
Type vega:config Type des fichiers de configuration n’est plus utile car
l’identification de ces fichiers se faisant par leur nom
et
leur emplacement
Type vega:dico Type des fichiers dictionnaire : n’est plus utile car
l’identification de ces fichiers se faisant par leur nom
et
leur emplacement
Structis Page 46
MediathequeModel
Type/Aspect Nom Description
Type mtq:space Type des espaces médiathèques qui complète le type
vega:space
Type mtq:content Type des contenus médiathèques qui complète le type
vega:content. On y trouve les attributs spécifiques aux
médiathèques comme le crédit photo et le type de
média, ainsi
que les aspects correspondants aux facettes.
Aspect mtq:aspCommun Aspect contenant les attributs communs aux
médiathèques
Aspect mtq:aspXXXX Aspect contenant les attributs de la médiathèque
XXXX. Il doit
y avoir un aspect par médiathèque, éventuellement
sans
attributs dédiés.
Contraintes mtq :typeMedia Définit 3 types de médias : Photos, Logos ou Vidéos
Structis Page 47
Structis Page 48