Plate-forme ISICIL : choix techniques

Transcription

Plate-forme ISICIL : choix techniques
Plate-forme ISICIL :
choix techniques
Emetteurs
Relecteur
Date
Référence
Version
Destinataires
Nicolas DELAFORGE, Sébastien COMOS
Fabien GANDON, Frédéric HERLEDAN
09/06/2009
ISICIL-ANR-RA01-ChoixTechniques-0906
1.0
ANR
Projet ISICIL :
Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Appel ANR CONTINT 2008
ANR-08-CORD-011-05
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
Sommaire
I. Contexte de l’étude ..................................................................................................................................... 3
A. Contraintes techniques liées au projet.................................................................................................... 3
B. Méthode de développement .................................................................................................................. 3
C. Technologies du web sémantique........................................................................................................... 4
D. Langage de programmation ................................................................................................................... 4
E. Architecture client-serveur ..................................................................................................................... 4
1. Spécificités de l’architecture 2-tier ..................................................................................................... 5
2. Spécificités de l’architecture 3-tier ..................................................................................................... 5
3. Spécificités de l’architecture N-tier sous l’approche SOA (Service Oriented Architecture) ................... 6
F. Hétérogénéité des données .................................................................................................................... 6
1. Sources multiples, formats et protocoles variés ................................................................................. 6
2. L’outil privilégié du veilleur : Le navigateur ......................................................................................... 6
II. Détails de l’architecture.............................................................................................................................. 8
A. Choix techniques dans un contexte SOA ................................................................................................. 8
1. Définition d’un framework ................................................................................................................. 8
2. Contexte ............................................................................................................................................ 8
3. Objectifs............................................................................................................................................. 8
4. Choix technologiques ......................................................................................................................... 9
5. Mise en œuvre des Web Services REST..............................................................................................11
6. Persistance........................................................................................................................................13
7. Gestion des accès ..............................................................................................................................14
B. Modules clients .....................................................................................................................................14
1. Les extensions ISICIL..........................................................................................................................14
2. Injection RDFa ...................................................................................................................................15
C. Perspectives ..........................................................................................................................................15
1. Gestionnaire de profil .......................................................................................................................16
2. Gestionnaire de ressources ...............................................................................................................16
D. Conclusion ............................................................................................................................................17
III. Annexes....................................................................................................................................................18
A. Outils annexes ......................................................................................................................................18
1. Outils de build ...................................................................................................................................18
2. Autres ...............................................................................................................................................18
B. Serveur d’application.............................................................................................................................19
C. Références ............................................................................................................................................20
Plate-forme ISICIL : Choix techniques
Page 2 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
I. Contexte de l’étude
A. Contraintes techniques liées au projet
Le projet ISICIL vise à tester l'efficacité de l'intégration des technologies du web sémantique et des réseaux
sociaux au sein d'outils collaboratifs, notamment dans le cadre de la veille en entreprise.
Dans cette optique, différentes équipes scientifiques et deux partenaires industriels ont été rassemblés afin
de bénéficier à la fois d’un regard interdisciplinaire sur la question mais aussi d’un terrain expérimental varié.
En l’occurrence, dans ISICIL, les compétences techniques sont pour la plupart rassemblées à Sophia au sein
de l’équipe Edelweiss de l’INRIA et au sein de l’équipe KEWI du CNRS. Dans chacun de ces laboratoires,
plusieurs outils ont été développés au cours des travaux scientifiques précédents. C’est le cas par exemple de
SemTag, SemServices et SweetWiki qui sont tous basés sur le moteur de recherche sémantique Corese[1]
développé par l’INRIA et qui représente à lui seul 20 homme/ans de développement. ISICIL n’a pas vocation à
redévelopper ces solutions mais plutôt à les intégrer à des outils de veille collaborative.
Il était donc indispensable pour nous de nous appuyer sur ces outils à la fois pour capitaliser au patrimoine
scientifique et technique de ces institutions mais aussi pour se concentrer sur les véritables enjeux
scientifiques du projet. Néanmoins, la reprise de cet existant et son adaptation aux besoins d’ISICIL n’a pas
un coût nul en termes de développement et a imposé de perpétuer certains choix techniques historiques.
Une autre contrainte qui a pesé directement sur les choix techniques réside dans le déploiement de nos
solutions au sein des services informatiques de nos partenaires industriels. En effet, l’un des critères qui fera
le succès d’ISICIL sera sa capacité à expérimenter ses solutions directement sur le poste des veilleurs. Or cela
implique que la plate-forme soit déployée au sein des entreprises. Dès lors, il est impensable de se contenter
d’un prototype semi-fonctionnel ou d’une preuve de concept. La qualité des technologies développées, leur
attractivité pour l’utilisateur, la sécurité et la fiabilité de leur fonctionnement représentent des objectifs
essentiels sans quoi les résultats de l’étude seraient totalement faussés.
B. Méthode de développement
ISICIL, comme tout projet de recherche appliquée, redéfinit perpétuellement ses contours au fil des
discussions entre ses participants. Ainsi le cahier des charges de la plate-forme technique est amené à
évoluer continuellement.
La durée de trois ans représente à l’échelle du développement informatique une période assez longue pour
que le contexte technologique ait également évolué avant la fin du projet.
Il serait donc très difficile et assez peu judicieux de planifier le développement trois ans à l’avance. C’est
pourquoi nous avons opté pour une solution plus souple et d’une manière générale plus adaptée à la gestion
de projet informatique dans le contexte de la recherche : la méthode Agile.
Il s’agit d’un modèle de gestion basé sur des cycles courts, un modèle de développement itératif et
incrémental impliquant fortement l’utilisateur final. Cette méthode s’oppose au modèle traditionnel très
rigide pour lequel les besoins du client sont figés de façon contractuelle en début de projet.
Plate-forme ISICIL : Choix techniques
Page 3 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
C. Technologies du web sémantique
Le Web sémantique est fondé sur les protocoles et langages standards du Web (HTTP, URI, XML…) ainsi que
sur les technologies qui lui sont propres comme RDF[2], RDFS[3], OWL[4] et SPARQL[5].
L’ingénierie des connaissances a produit ces dernières années, avec l’essor des réseaux sociaux et du web dit
« 2.0 », un grand nombre de langages de modélisation comme FOAF[6], SKOS[7], SIOC[8], Relationship[9]…
Tous ces formalismes sont pour la plupart décrits en RDF et sont extensibles. Edelweiss et Kewi disposent
d’une connaissance et d’un savoir-faire importants autour de ces technologies. La primitive technique
transversale à tous les projets de ces équipes est incarnée par Corese. Il s’agit d’un moteur d’inférences
sémantiques capable de manipuler des graphes RDF en s’appuyant sur les graphes conceptuels pour
l’opérationnalisation. Corese implante aussi un moteur de requêtes SPARQL et l’a enrichi de nombreuses
fonctionnalités. De plus il dispose de plusieurs formats de sortie : JSON, XML, RDF…
Corese constituera donc la brique logicielle de base autour de laquelle toute la plate-forme technique sera
articulée.
D. Langage de programmation
Pour la partie serveur dans ISICIL, le choix s’est rapidement porté sur Java et cela pour plusieurs raisons.
Des raisons historiques tout d’abord. En effet, depuis quelques années, ce langage s’est imposé dans l’équipe
Edelweiss. Corese a été développé en Java et des outils comme Sewese, SemCore, SemTags et SemServices
qui sont des surcouches de Corese ont logiquement été développés avec ce langage.
Comme la plupart des projets de l’équipe reposent sur ces outils, l’utilisation du même langage nous est
apparue comme naturelle afin d’assurer une pérennité et une interopérabilité avec l’existant.
Les autres raisons de ce choix sont liées aux qualités intrinsèques de Java à savoir :
• Stabilité et fiabilité
• Richesse des API disponibles
• indépendance au système d’exploitation
• Paradigme objet adapté aux projets de développement modulaires.
De plus, Java a su s’imposer comme LE langage adapté aux projets de qualité industrielle ainsi que dans le
monde de la recherche.
Les nombreux outils qui permettent de fiabiliser le développement sont un gage de qualité vis-à-vis des
services informatiques de nos partenaires industriels qui seront chargés l’intégration de la plate-forme ISICIL
au sein de leur software bus.
E. Architecture client-serveur
Un des objectifs d’ISICIL est de transposer les facteurs clés du succès du modèle Web 2.0 dans le cadre intraorganisationnel en prenant comme domaine d’application le partage et la fertilisation de connaissances dans
la démarche de la veille.
Plate-forme ISICIL : Choix techniques
Page 4 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
Etant donné l’utilisation dans le projet du moteur sémantique Corese, l’architecture client/serveur s’est
imposée face à une architecture P2P. En effet, cette technologie nécessite de centraliser les données et
requiert une puissance de calcul supérieure à celle disponible sur un poste utilisateur standard.
Dès lors, trois types d’architectures client/serveur s’offrent à nous :
• 2-tier (client lourd)
• 3-tier (client web)
• N-tier sous l’approche SOA
1. Spécificités de l’architecture 2-tier
L’ensemble des traitements applicatifs est supporté par le client le serveur ne gérant que les données.
Problèmes :
• Le poste client est fortement sollicité, il devient de plus en plus complexe et doit être mis à jour
régulièrement pour répondre aux besoins des utilisateurs.
• Echanges intenses entre le client et le serveur. Solution mal adaptée à des bandes passantes étroites.
• Fort couplage client serveur amenant un coût de maintenance élevé.
• Client non standard
• Déploiement lourd sur les postes utilisateurs
2. Spécificités de l’architecture 3-tier
La logique applicative est prise en charge par un serveur intermédiaire.
Le client est de type léger comme par exemple un navigateur web.
On retrouve ainsi 3 niveaux :
• Le client léger en charge des problématiques d'affichage et de mise en forme
• Un serveur en charge des traitements applicatifs
• Un serveur en charge de la gestion des données
Avantages :
• Client moins complexe donc moins couteux
• Gestion des montées en charge simplifiée
• Mutualisation de ressources et traitements
• Etc.
Problèmes :
• répartition de la charge complexe (serveur fortement sollicité)
• intégration au poste utilisateur limitée par les API disponibles et leurs contraintes de sécurité
Plate-forme ISICIL : Choix techniques
Page 5 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
3. Spécificités de l’architecture N-tier sous l’approche SOA (Service Oriented
Architecture)
On a toujours les 3 niveaux d’une architecture 3-tier mais le serveur en charge des traitements applicatifs est
découpé en de multiples services (composants métiers réutilisables). Ces services peuvent communiquer
entre eux par le réseau et donc être répartis sur une ou plusieurs machines.
Avantages :
• Modularité
• Intégration
• Maintenance
• Réutilisabilité
• Interopérabilité
• Répartition de la charge
• Pallie les faiblesses des architectures précédentes
L’architecture N-tier par sa modularité nous semble particulièrement adaptée pour répondre aux besoins du
projet.
F. Hétérogénéité des données
1. Sources multiples, formats et protocoles variés
La pratique de veille implique la consultation de multiples sources d’information qu’elles soient instantanées
ou monolithiques. En entreprise, la veille peut être tournée vers l’extérieur ou vers l’intérieur selon ses
objectifs. Il faut donc tenir compte des spécificités des applications intra et extranet qui pour la plupart n’ont
(malheureusement) pas été développées de manière compatible avec tous les navigateurs.
Le web d’aujourd’hui est également très différent de ce qui avait été imaginé au commencement comme la
plus grande bibliothèque du monde. D’un simple réseau de documents, nous sommes passés à un vaste
réseau d’applications communicantes ou l’information est plus labile que jamais. Dans ce panorama, de
nombreux outils en ligne ont vu le jour, Netvibes, Delicious, Facebook, Twitter, Les « Google documents »…
De ce fait, le rayonnement applicatif de la veille dépasse largement le périmètre du poste de travail de
l’utilisateur dans son bureau. Le veilleur peut travailler à différents endroits géographiques, dispose de
multiples comptes sur les applications de son entreprise mais aussi sur les outils dits « 2.0 » en ligne comme
Google Reader ou Netvibes, un blog perso hébergé sur un serveur externe etc.
2. L’outil privilégié du veilleur : Le navigateur
Le veilleur est confronté à un large panel de formats numériques, de médias et d’outils. Ce contexte
technologique très hétérogène fait du navigateur web l’outil indispensable à toute activité de ce genre. En
effet, le navigateur web est conçu comme un lecteur universel extensible, capable de s’adapter à de
multiples formats et protocoles notamment grâce aux mécanismes de plugins audio/vidéo/flash/java.
Certains navigateurs récents proposent également des fonctionnalités avancées pour le développement
d’extensions visant à augmenter la consultation.
Plate-forme ISICIL : Choix techniques
Page 6 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
Dans le cadre d’ISICIL, le navigateur semble le support adapté pour nos développements côté « client ». En
effet, dans le processus de consultation, le navigateur se trouve précisément à l’interface entre le contenu et
l’utilisateur, entre l’intérieur et l’extérieur, entre le public et le privé. Cet outil stratégique nous permet d’agir
de façon « quasi-transparente » sur le contenu en cherchant à étendre le champ des possibles pour le
veilleur sans pour autant perturber sa pratique globale. Cet enrichissement de la veille passe le plus souvent
par les métadonnées issues des modèles formels mis à disposition par le serveur d’application dont nous
avons parlé plus tôt dans ce document.
Parmi tous les navigateurs du marché, le plus utilisé est encore Internet Explorer, tout simplement car il est
installé par défaut sur les postes sous Windows. Malheureusement, les versions installées sont rarement
mises à jour et les versions varient entre IE6.0 et IE8.0. De plus ces différentes versions implémentent
différemment les standards et sont d’une manière générale peu extensibles. Un autre facteur limitant quant
à l’utilisation d’IE pour nos développements réside dans son attachement à un seul système d’exploitation, or
nombre de veilleurs sont équipés d’ordinateurs sous MAC OS ou Linux.
Dans un cycle court d’expérimentation comme nous l’impose la méthode Agile, il était difficile d’envisager le
développement de plusieurs versions de nos outils en parallèle. C’est pourquoi nous avons favorisé le
navigateur Firefox qui est déjà largement utilisé, est disponible sur tous les OS, est respectueux de la plupart
des standards du web et qui est de plus facilement extensible.
Tout au long du projet, nous développerons donc des extensions Firefox connectées à nos services applicatifs
sémantiques côté serveur.
Plate-forme ISICIL : Choix techniques
Page 7 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
II. Détails de l’architecture
A. Choix techniques dans un contexte SOA
1. Définition d’un framework
Un framework est la concrétisation dans un squelette d’application d’un ensemble de choix techniques et
architecturaux sur lesquels les développements futurs seront basés.
2. Contexte
Les modules qui devront être développés ou repris sur la base du framework qui va être présenté
apparaissent dans le schéma suivant :
Figure 1 : Organisation des services ISICIL
3. Objectifs
A : Décharger des choix techniques et architecturaux les personnes amenées à développer et ainsi faciliter
l’intégration et la productivité.
Beaucoup de personnes seront amenées à participer aux phases de développement et notamment des
stagiaires. L’objectif est donc d’éviter que chacun perde du temps sur des questions de « comment faire » et
fasse ses choix techniques dans son coin pour éviter de se retrouver avec des problèmes de conception et
d’intégration.
Plate-forme ISICIL : Choix techniques
Page 8 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
Il faut également structurer les développements pour ne pas se retrouver avec des applications fortement
boguées et difficile voire impossible à maintenir et faire évoluer.
B. Assurer une interopérabilité et une compatibilité maximale entre les différents modules
Cette interopérabilité sera assurée par le biais de WebServices REST mais nous y reviendrons dans la suite du
document.
4. Choix technologiques
a) SemServices – SemCore – Corese
Comme évoqué dans la première partie de ce document, la partie sémantique sera gérée par Corese.
SemServices est une WebApp mettant à disposition des WebServices REST permettant d’accéder à Corese via
une API publique nommée SemCore
SemServices a été repris de manière à permettre à plusieurs clients de partager leurs données dans Corese,
d’améliorer son fonctionnement et de coller aux choix architecturaux du projet pour des questions de
cohérence, de performance et de maintenance.
b) Communication entre les couches
Dans une architecture SOA, le découplage entre les couches est essentiel. Or comme nous l’avons vu, pour
pouvoir faire face à des montées en charge, il a été prévu que les différents modules ou services puissent
être déployés sur des machines différentes.
Pour assurer la communication entre ces différentes couches diverses solutions s’offrent à nous :
Solutions
Corba
Avantages
• Indépendant du système d’exploitation et du langage de
programmation.
• Permet l’intégration des systèmes propriétaires grâce à
l’IDL
• CORBA standardisé par l’OMG
• CORBA intègre les aspects métiers.
Inconvénients
• Incompatibilité entre les implémentations
• CORBA complexe à appréhender et à mettre en
place.
• Problème de pare-feu
• Sécurité et administration
• Nécessite des changements dans les applications…
• La version 2.3 inter-opère avec RMI
RMI
• Plus simple que le développement des sockets JAVA
• Limité à la plate-forme JAVA
• Supporte la POO
• Architecture fortement couplée
• Transparence dans les communications entre objets
• Pas de gestion de session
• Gestion distribuée des ressources
COM/DCOM
• Simple d’utilisation.
• Spécifique à Microsoft
• Portabilité binaire
• Problème de gestion des états et de sessions
• Pas de portabilité du code
Services Web
• XML est utilisé pour l’échange des données et messages.
• Sécurité faible
• Ils permettent l’intégration de plateformes hétérogènes
• Inadapté à l’approche synchrone
Plate-forme ISICIL : Choix techniques
Page 9 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
via le protocole HTTP
• L’utilisation du protocole HTTP permet de passer les
pare-feux
• Les développeurs ont l’embarras du choix en matière de
langage de programmation : Java, C, C++, Perl, Python,
C#, et/ou Visual Basic,
• Peu ou pas de modification des applications existantes
• Permet une intégration faible, les composants sont
simples mais peuvent résoudre des problèmes
complexes
• Peuvent être créés facilement une fois l’application
terminée pour exposer un service sur le net
• Il n’existe pas de client propriétaire
• Outils de développement et de déploiement fournis par
les principales plateformes J2EE et Microsoft .NET
• Permettent la localisation et l’invocation dynamique
d’autres services à partir de registres privés ou publics
La solution des Services Web est celle qui présente le plus d’intérêt dans le contexte du projet du fait de ses
nombreux avantages.
Il existe toute fois deux types d’approches concernant les Services Web à savoir SOAP et REST.
L'introduction de la spécification Web Method dans SOAP 1.2 permet à SOAP de se conformer au style REST.
Cette faiblesse de SOAP ayant été comblée, le débat sur la différence entre ces deux approches est donc
devenu en partie sans objet.
Dans les 2 cas, les données sont échangées sous la forme de XML sur HTTP. Il n'y a donc pas, de ce point de
vue, de différence en termes de performance ou de fiabilité. Le fait d'ajouter une enveloppe SOAP autour des
données est neutre.
La plupart des grands sites qui offrent des services web aux développeurs comme Amazon ou eBay offrent
simultanément les deux types d'interfaces. L'écrasante majorité (plus de 85%) des centaines de milliers de
développeurs choisissent REST comme interface, essentiellement pour des raisons de simplicité. La barre
d’adresse d'un navigateur suffit pour écrire et tester une requête REST alors que SOAP impose l'emploi d'un
langage de programmation et de l'infrastructure correspondante. Ces sites ont par ailleurs unifié les données
manipulées par les services SOAP ou REST, ce qui réduit encore l'écart qui aurait pu exister.
La plus grande différence entre les deux styles est le nom de la ressource. Dans le style REST, le nom de la
ressource est dans l'URI alors que dans le style SOAP, tous les messages sont généralement envoyés vers
point d'entrée unique. Le nom de la fonction à effectuer est caché à l'intérieur de l'enveloppe. Cette manière
de faire peut présenter des avantages dans certains cas, en particulier quand certaines parties du message
doivent rester confidentielles. En revanche, dans la majorité des cas, c'est plutôt un inconvénient. Le point
d'entrée unique entraîne un couplage fort qui complique la gestion des priorités et des performances. Un
Plate-forme ISICIL : Choix techniques
Page 10 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
mécanisme simple pour assurer la sécurité d'accès ne peut plus être mis en œuvre. Avec SOAP, la sécurité
redevient donc fortement couplée avec l'application ce qui n’est pas le cas avec REST.1
Le style REST a donc été adopté.
5. Mise en œuvre des Web Services REST
Différentes implémentations de JAX-RS (JSR 311) existent pour construire des WebServices REST:
• CXF [10]
• Jersey [11]
• RESTeasy [12]
• Restlet [13]
Jersey est l’implémentation de référence de JAX-RS [14] (JSR 311), c’est dont celle-ci qui est retenue.
Pour faire face au besoin de générer des données XML à partir d’objet Java et inversement, l'API Java de Sun
JAXB [15] (Java Architecture for XML Binding) s’impose d’elle-même faute de concurrent sérieux.
a) Respect des couches : le modèle MVC
L’un des objectifs est de fournir des outils et méthodes pour construire des applications robustes.
Le modèle MVC permettant de bien structurer le code en différentes couches, chacune ayant un rôle bien
définit dans le but d’avoir un code facile à maintenir et à faire évoluer, ce modèle doit est implémenté dans
notre architecture.
1
Cette description a été largement inspirée du site : http://www.figer.com/Publications/SOA.htm
Plate-forme ISICIL : Choix techniques
Page 11 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
Figure 2 : Le modèle MVC
Après saisie d’une URL dans un navigateur, la requête est interceptée par le Contrôleur qui récupère des
données via la couche Modèle, qui les transmet ensuite à la Vue qui se charge de les mettre en forme et
renvoie le tout au navigateur pour affichage.
b) Spring MVC
Il existe de nombreux frameworks MVC, Struts [16], JSF [17] et Tapestry [18] font partie des plus connus.
Spring MVC [19] tout comme Jersey s’intègre naturellement avec Spring IOC [20] qui sera décrit plus loin et
est l’un des premiers à utiliser les annotations pour configurer la partie contrôleur.
Il est performant, relativement simple et il existe une communauté importante.
Figure 3 : Schéma d’architecture du serveur
La couche « Modèle »
Faisons maintenant un zoom sur cette couche Modèle.
Elle comporte 2 sous couches :
• Couche « Métier » : traitements
• Couche « DAO » (Data Access Object) : accès aux données (DataBase, Corese, XML, etc).
Accès aux différentes couches : Spring IOC
Spring IOC est un framework qui permet de découpler et de bien cloisonner les différentes couches.
Plate-forme ISICIL : Choix techniques
Page 12 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
6. Persistance
a) Base de données embarquée
Il est possible, voire probable, que le serveur de tags et le serveur de profiles aient besoin de stocker des
données ne pouvant être gérées par Corese.
Pour cela une base de données relationnelle doit être mise à disposition.
Dans le monde du logiciel libre plusieurs choix s’offrent à nous. On peut ainsi citer MySQL, PostgreSQL,
Ingres, Firebird.
Ce type de solutions est particulièrement adapté aux gros volumes de données. Le revers de la médaille
concerne la lourdeur, la difficulté d’installation, d’intégration et d’administration de ce type de système.
Dans le cadre du projet Isicil, le volume de données manipulées propres à chaque service (donc hors Corese)
ne devrait pas être très important.
De plus, l’intégration est une contrainte forte. Ces produits ne sont donc pas des solutions viables dans notre
contexte.
Le projet ISICIL et ses différents services devant être simples à déployer et la configuration de la base se
devant être d’intégration facile avec les frameworks de mapping objet relationnel (voir plus bas), 3 solutions
de type embarqué (création et initialisation au démarrage de l’application) se sont alors démarquées :
• HSQLDB [21], utilisée le plus souvent pour les tests unitaires possède des limitations en taille des
fichiers stockables par Blob. De plus les données étant stockées en mémoire, un problème de
persistance se pose en cas de redémarrage de l’application ou d’un redéploiement.
• JavaDB [22] intégré au JDK depuis la version 1.6 autorise le stockage de fichiers plus conséquents en
utilisant le disque dur. Cependant un bug Hibernate/Derby existe dans la génération de schémas pour
lequel les deux projets se renvoient la balle l'un à l'autre.
• H2 [23] qui semble particulièrement intéressante à la lecture de la documentation (assez fournie au
demeurant). La configuration est simple, les comparatifs élogieux et les fonctionnalités au rendezvous. De plus, les problèmes rencontrés avec le couple Hibernate/Derby ne se produisent pas ici. Elle
possède une console applicative embarquée accessible via un browser.
H2 semble donc être le meilleur choix.
b) Mapping relationnel
Pour faciliter la manipulation des données relationnelles avec Java qui est un langage objet des outils existent
qui sont des implémentations de JPA (Java Persistence API) [24] :
• EclipseLink [25]
• Hibernate [26]
• OpenJPA [27]
Les 2 premières solutions sont les plus populaires. Pour des raisons de connaissances avancées sur
l’utilisation d’Hibernate au sein de l’équipe, le choix s’est porté sur ce dernier.
Plate-forme ISICIL : Choix techniques
Page 13 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
7. Gestion des accès
Le projet Isicil comporte des contraintes de sécurité à savoir :
• Sécuriser l’accès par des utilisateurs aux URLs via un formulaire
• Sécuriser les WebServices REST Isicil.
Très souvent, la gestion des accès est gérée par le serveur d’application. Chaque serveur implémente sa
propre solution d’identification et d’autorisation ce qui entraîne des problèmes de compatibilités lorsqu’il
s’agit de migrer une application d’un serveur à un autre.
Pour pallier à ce problème nous faisons appel à Spring Security [28].
Ce framework permet donc de gérer les problématiques d’identification et d’autorisation de façon non
spécifique à un serveur d’application.
B. Modules clients
1. Les extensions ISICIL
a) Xml User interface Language (XUL)
Comme nous l’avons expliqué précédemment, le navigateur est l’outil privilégié dans l’activité de veille.
Après avoir étudié les diverses solutions notamment les userscripts de Greasemonkey, qui présentaient de
grands risques de sécurité et une incompatibilité avec IE, nous avons choisi de baser nos applications sur la
technologie XUL [29] issue du framework Mozilla/Firefox. Ce langage permet de développer des extensions
d’interface directement intégrées dans le navigateur. Celles-ci respectent totalement les caractéristiques
d’interface de l’OS sur lequel est installé le navigateur. Cette caractéristique de XUL nous semble intéressante
pour l’intégration « transparente » de nos solutions dans le poste de l’utilisateur.
Firefox dispose également d’un système éprouvé de mise à jour automatique de ses extensions. Ces
dernières peuvent être signées numériquement afin d’éviter tout risque lors de l’installation depuis
l’extérieur.
Le langage XUL est entièrement déclaratif, exprimé en XML et respectueux des standards du W3C. Il permet
de décrire entièrement une interface utilisateur, de l’organisation spatiale des éléments graphiques
jusqu’aux interactions avancées. Il est également possible de lier les composants graphiques à des sources de
données externes XML, bases de données ou RDF. XUL dispose également d’un système natif de gestion de la
localisation/internationalisation des applications basé sur la mécanique de définition des entités XML dans
une DTD.
XUL utilise ECMAScript [30] (la version standardisée de Javascript) pour programmer les interactions.
Ce langage est également extensible via la technologie XBL [31] proche des taglib Java qui permet de définir
ses propres balises XUL et des les programmer facilement en ECMAScript.
La librairie XPCOM[32], la bibliothèque « bas niveau » du framework Mozilla, est conséquente et bien
documentée. Elle dispose de nombreuses fonctions intéressantes pour ISICIL comme la gestion des différents
protocoles, l’accès au système de fichier du poste utilisateur, différents parseurs…
Plate-forme ISICIL : Choix techniques
Page 14 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
Cette librairie s’enrichit au fur et à mesure.
Toutes ces méthodes possèdent des interfaces IDL qu’il est possible de mobiliser selon les besoins dans le
code des extensions.
b) Couplage Client – Serveur d’Application
Le couplage faible entre les extensions et le serveur d’application ISICIL, se fera par des appels AJAX aux
services REST. Pour la plupart, ces services se contenteront de valider les droits de l’utilisateur, d’interroger
Corese et de renvoyer les résultats sous la forme demandée. Néanmoins, rien n’interdit avec ce système
d’interroger d’autres sources AJAX ou RSS, comme les web services Google, Delicious ou Twitter.
De plus, il est possible que, pour certaines tâches bien précises, les extensions Firefox soient inadaptées.
C’est le cas par exemple de l’édition riche de document. Dans ce cas, nous utiliserons plutôt des solutions
existantes et rôdées de type wiki.
2. Injection RDFa
La plupart des entreprises disposent déjà d’outils collaboratifs sur lesquels se trouve un contenu parfois
conséquent. Il est très délicat de demander à ces entreprises de changer leurs outils et d’abandonner leurs
contenus. Parfois des solutions de migration existent ou peuvent être développées, mais le coût peut
s’avérer élevé et souvent cette migration engendre une perte d’information (ne serait-ce que la mise en
forme).
ISICIL a fait le choix d’aborder le problème sous un autre angle. En effet, un des gros enjeux du projet
consiste à s’adapter à l’existant et à l’enrichir.
La plupart des gestionnaires de contenu (CMS) en entreprise sont écrits en PHP, ASP ou JSP et disposent d’un
système de templates destiné à factoriser la mise en forme. En agissant intelligemment sur ces templates et
en injectant des métadonnées dans la page, il est possible de « sémantiser » ce contenu.
Les métadonnées pourraient être exprimées sous différents formats déjà couramment utilisés comme
RDFa[33] ou Microformats[34]. Selon les besoins elles contiendront des informations concernant l’auteur, le
contenu ou encore les précédents lecteurs.
Nous faisons l’hypothèse que par cette mécanique d’injection en amont de la consultation, il est possible
d’augmenter considérablement les informations disponibles pour le lecteur. Là où la plupart des solutions de
veille existantes tentent de se substituer aux systèmes en place, ISICIL se place à un niveau d’abstraction
supérieur en proposant de faire le lien entre tous les outils disponibles.
Les premières expérimentations sur la plate-forme ISICIL viseront à évaluer et à valider ce positionnement
innovant.
C. Perspectives
A l’heure actuelle, le développement de la plate-forme ISICIL n’a pas réellement commencé.
Les entretiens et les observations faites par les ergonomes chez les veilleurs nous fourniront d’ici peu une
liste d’exigences sur laquelle il sera possible de construire un cahier des charges fonctionnel plus précis.
Néanmoins, la méthode agile, que nous nous efforçons de suivre pour la planification du développement,
Plate-forme ISICIL : Choix techniques
Page 15 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
nous donne la réactivité nécessaire pour s’adapter à des besoins qui seraient identifiés tardivement dans le
projet.
Pour l’instant nous avons mis en place une mécanique souple et adaptée au contexte technoscientifique du
projet. Même si nous ne savons pas encore précisément quels seront les services développés d’ici 2012,
l’orientation scientifique actuelle nous donne une visibilité assez bonne quant aux informations de base qui
seront indispensables à la plate-forme.
Par exemple, les notions de tag, ressource et utilisateur sont déjà clairement identifiées. C’est pourquoi les
premiers développements ISICIL se concentreront sur la mise en place de couples extension/webservice
basés sur ces concepts.
1. Gestionnaire de profil
Ce développement permettra tout simplement, aux utilisateurs de s’identifier au sein de la plate-forme.
A terme, ce gestionnaire de profil permettra à l’utilisateur, entre autres, de :
• renseigner ses compétences professionnelles,
• gérer ses multiples identités,
• renseigner des informations concernant ses réseaux professionnels, sociaux, groupes de travail,
• faire des recherches sémantiques parmi les informations publiques des autres utilisateurs de la
plateforme,
• visualiser des réseaux d’utilisateurs,
• partager ses informations,
• etc.
Le modèle utilisé pour la description des utilisateurs et des groupes sera basé sur FOAF et Relationship. Ce
modèle sera enrichi au fur et à mesure de l’avancement du projet, notamment par des indicateurs de
centralité ou de confiance implémentés suivant les travaux de Guillaume Erétéo (doctorant CIFRE
OrangeLabs/INRIA pour ISICIL) et Talel Abdessalem (Telecom ParisTech).
2. Gestionnaire de ressources
Le gestionnaire de ressources permettra à l’utilisateur de marquer n’importe quelle ressource à partir du
moment où elle dispose d’une URI. Ainsi selon les cas, il pourra s’agir d’une page web, d’un document PDF,
d’un flux RSS, d’un collègue, etc.
Ces tags auront une visibilité paramétrable selon les choix de l’utilisateur qui pourra décider de rendre son
tag public ou privé. Cet outil permettra également à l’utilisateur de faire des recherches évoluées parmi ses
tags ou ceux de son réseau et éventuellement parmi les concepts des ontologies ou thesaurus mis en place
au sein de son service.
Plate-forme ISICIL : Choix techniques
Page 16 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
D. Conclusion
La plate-forme logicielle ISICIL interviendra donc à plusieurs niveaux comme indiqué dans la figure suivante :
Figure 4 : Architecture générale de la plate-forme ISICIL
1. Au niveau des contenus existants, en enrichissant ceux dont les templates seront accessibles par des
annotations RDFa,
2. Dans le navigateur, par des extensions Firefox/XUL, qui augmenteront le travail de veille en
s’interfaçant avec le serveur ISICIL et en collectant selon le contexte de navigation les métadonnées
les plus pertinentes.
3. Au niveau infrastructure en mettant à disposition des outils ISICIL, un serveur d’applications Tomcat
dont les services seront publiés en REST et qui sera en charge du traitement sémantique des
requêtes, de la gestion des utilisateurs ainsi que de leurs droits d’accès.
Cette architecture nous paraît suffisamment souple et riche pour répondre entièrement aux besoins du
projet. Son intérêt majeur réside dans le couplage faible entre les services REST et leur matérialisation
dans les extensions Firefox. En effet, rien n’interdit ici de développer en parallèle des extensions ISICIL,
une plate-forme web qui proposerait une ergonomie différente et peut-être plus adaptée à certaines
activités ou contextes applicatifs.
Plate-forme ISICIL : Choix techniques
Page 17 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
III. Annexes
A. Outils annexes
1. Outils de build
Dans un souci de mise en place des bonnes pratiques de développement, un outil de build structurant,
performant et indépendant de l’EDI a été choisi.
Deux outils répondent à ces critères, à savoir :
• ANT
• Maven 2
Ant et Maven2 reposent sur une philosophie diamétralement opposée.
Le premier se comporte comme un makefile et impose donc de définir un ensemble d’opérations alors que le
second impose une description du projet sur laquelle il se basera pour réaliser les opérations dessus. Il est
capable de gérer tout le cycle de vie du projet.
Maven2 propose de renverser le problème. Ce ne sont plus les opérations à faire qui sont définies mais le
projet qui est décrit. En sachant où se trouvent les éléments dont il a besoin dans le projet, il est à même de
réaliser les opérations dessus. On n'écrit plus de script avec Maven. Maven propose une configuration par
défaut très complète qui permet une standardisation de la structure des projets Java. Au besoin, Maven
permet de surcharger les configurations pour s'adapter à plus de situations.
Les points forts de Maven2 sont les suivants :
• « Standardise » l’arborescence d’un projet (c’est donc très structurant)
• Simplifie la gestion des dépendances
• Unifie le système de build
• Intégration avec des gestionnaires de version comme CVS [35] et Subversion [35]
• Aide à construire des applications robustes
Pour l’ensemble de ces raisons Maven2 a été retenu.
2. Autres
a) Outil de log : Log4J
API permettant la gestion des logs
b) Tests unitaires : JUnit
Toujours dans un souci de réaliser des applications fiables, on fait appel à Junit.
Junit est un framework opensource permettant de réaliser des tests unitaires sur du code java.
Le test unitaire est le procédé permettant de s’assurer du bon fonctionnement d’une partie déterminée d’un
logiciel ou d’une portion d’un programme.
Plate-forme ISICIL : Choix techniques
Page 18 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
Le principal intérêt de ce type d’outil est de pouvoir s’assurer que le code réponde toujours au besoin même
après d’éventuelles modifications et d’éviter ainsi des régressions.
c) Client HTTP : HttpClient
Permet de créer et de gérer des requêtes http. HttpClient permet donc de créer des clients capables
de consommer des WebServices REST.
B. Serveur d’application
Les choix architecturaux et techniques présentés ici ne nécessitent pas de faire appel à un gros serveur
d’application J2EE. Un simple conteneur de servlets est suffisant pour nos besoins.
Les solutions open source en la matière sont parfaitement mûres. Glassfish et Tomcat sont les deux
représentants les plus performants et les plus diffusés à l’heure actuelle et sont sensiblement de même
valeur.
Actuellement au sein de l’équipe Edelweiss la totalité des projets tournent sur Tomcat. Pour des raisons de
cohérence et de maintenance le choix s’est porté sur ce dernier.
Plate-forme ISICIL : Choix techniques
Page 19 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
C. Références
[1] Corese, COnceptual REsource Search Engine, http://www-sop.inria.fr/edelweiss/software/corese/
[2] RDF, Resource Description Framework, http://www.w3.org/RDF/
[3] RDFs, RDF Schema, http://www.w3.org/TR/rdf-schema/
[4] OWL, Web Ontology Language, http://www.w3.org/TR/owl-features/
[5] SPARQL, Query Language for RDF, http://www.w3.org/TR/rdf-sparql-query/
[6] FOAF, The Friend of a Friend project, http://www.foaf-project.org/
[7] SKOS, Simple Knowledge Organisation System, http://www.w3.org/2004/02/skos/
[8] SIOC, Semantically-Interlinked Online Communities, http://sioc-project.org/
[9] Relationship, A vocabulary for describing relationships between people,
http://vocab.org/relationship/.html
[10] CXF, open source services framework, http://cxf.apache.org/
[11] Jersey, open source JAX-RS (JSR 311) Reference Implementation for building RESTful Web services,
https://jersey.dev.java.net/
[12] RESTeasy, Boss project that provides various frameworks to help us build RESTful Web Services,
http://www.jboss.org/resteasy/
[13] Restlet, open source framework for REST, http://www.restlet.org/
[14] JAX-RS, Java API for RESTful Web Services, https://jsr311.dev.java.net/
[15] JAXB, develops and evolves the code base for the reference implementation of the JAXB specification,
https://jaxb.dev.java.net/
[16] Struts, open-source framework for creating Java web applications, http://struts.apache.org/
[17] JSF, establishes the standard for building server-side user interfaces,
http://java.sun.com/javaee/javaserverfaces/
[18] Tapestry, open-source framework for creating dynamic, robust, highly scalable web applications in Java,
http://tapestry.apache.org/
[19] Spring MVC, open-source framework for creating Java web applications,
http://www.springsource.org/
[20] Spring IOC, inversion of Control, http://www.springsource.org/
[21] HSQLDB, HyperSQL DataBase, SQL relational database engine written in Java, http://hsqldb.org/
[22] JavaDB, SQL relational database engine written in Java, http://developers.sun.com/javadb/
[23] H2, SQL relational database engine written in Java, http://www.h2database.com/
Plate-forme ISICIL : Choix techniques
Page 20 sur 21
ISICIL : Intégration Sémantique de l'Information
par des Communautés d'Intelligence en Ligne
Document émis le : 09/06/2009
Réf : ISICIL-ANR-RA01-ChoixTechniques-0906
ANR-08-CORD-011-05
[24] JPA, Java Persistence API, http://java.sun.com/javaee/overview/faq/persistence.jsp
[25] EclipseLink, open source Java persistence framework project, http://www.eclipse.org/eclipselink/
[26] Hibernate, open source Java persistence framework project, https://www.hibernate.org/
[27] OpenJPA,, open source Java persistence framework project, http://openjpa.apache.org/
[28] Spring Security, powerful and flexible security solutions for enterprise applications,
http://static.springsource.org/spring-security/site/
[29] XUL, Xml User interface Language, https://developer.mozilla.org/fr/XUL
[30] ECMAScript, ECMA scripting language, http://www.ecmainternational.org/publications/standards/Ecma-262.htm
[31] XBL, XML Binding Language, http://www.w3.org/TR/xbl/
[32] XPCOM, Mozilla API, https://developer.mozilla.org/fr/XPCOM
[33] RDFa, RDF Annotations, http://www.w3.org/TR/xhtml-rdfa-primer/
[34] Microformats, http://microformats.org/
[35] CVS, Concurrent Version System, http://www.cvshome.org/
[36] Subversion, Open Source version control system, http://subversion.tigris.org/
Plate-forme ISICIL : Choix techniques
Page 21 sur 21