Présentation du framework jSeduite pour les JM2L.
L’équipe MODALIS du laboratoire CNRS / I3S s’interesse à la définition de modèles pour les architectures largement distribuées. Dans le cadre de nos recherches sur les Architectures Orientées Services (SOA), nous avons mis en place (en partenariat avec l’Institut d’Education Sensoriel Clément Ader, établissement scolaire niçois accueillant de jeunes handicapés) une architecture orientée services permettant de diffuser des informations en milieu scolaire : menu de la cantine, Horaire de bus, Albums Photos, Vidéos, ... Le framework ainsi créé (jSeduite, publié sous licence LGPL) est déployé sur le site de l’EPU Polytech’Nice - Sophia Antipolis ainsi qu’à l’IES.
Nous nous proposons d’illustrer le fonctionnement d’une SOA sur cet exemple. Comment le Web 2.0, de par sa nature participative, nous permet de mettre en place un système de diffusion d’information libre relié aux principaux acteurs du marché (Google, Yahoo, Twitter, ...) ? Comment intégrer la multitude d’information existantes sur la toile dans le système ? Comment techniquement déployer une architecture orientée service sans être débordé ? Quelles solutions ’libres’ peuvent supporter une telle infrastructure ? Comment manipuler les informations récupérées pour les diffuser efficacement aux utilisateurs ? C’est à ces questions que nous tenterons de répondre en décrivant l’architecture ainsi que la mise en oeuvre du framework jSeduite.
9. EN (TRÈS TRÈS) BREF ...
• «SOA» en 3 lignes et 20 mots:
• Un «service» est une entité élémentaire
• Lire un flux RSS, Interroger Picasa, Stocker des Tweets, ...
• Une «processus métier» est un assemblage de services
• Interroger Picasa & Flickr puis concatener les résultats
• Une «architecture» est ... la somme des précédents !
8
10. PROPRIÉTÉS DES SERVICES
• Sans état, Indépendant
• Gros Grain PartnersKey
• On ne fait pas de l’objet
• Interface
• Explicitation d’un contrat
WeatherBug
• Couplage lâche
• Pas d’interconnections
9
11. UN SERVICE EXPOSE
DES OPÉRATIONS
WeatherBug
findCity(search) -> cities
forecast(key,city) -> weather
live(key,city) -> weather
10
13. UN PROCESSUS EST UNE
OPÉRATION DE SERVICE
ProxyMétéo
getMétéo(city) -> weather
:= receive()
PartnersKey
:= PartnersKey::get(‘weather’)
:= WeatherBug::forecast( , )
reply( w )
« Partenariat » WeatherBug
12
31. WEB SERVICES (JAVA JAX-WS)
• Implémentation Java du standard Web Services
• e.g., Requêtes SOAP, Contrats WSDL, Schémas XSD, ...
• Les services sont des Classes Java
• Avec quelques annotations supplémentaires
• Les artefacts sont générés automagiquement
• Contrats WSDL & Schémas XSD
23
35. BPEL : «BUSINESS PROCESS
EXECUTION LANGUAGE»
• Langage d’orchestration (XML) orienté messages
• Réception & Retour de messages, Invocation de service
• Manipulation des messages: affectations, boucles, ...
• Standard Industriel d’assemblage de services
• Maintien du couplage lâche, Bus de Services (ESB), ...
27
39. OBJECTIFS
• Problème : Il faut «gérer» les informations !!
• Diffusion d’informations :
• Récupérer les informations, « skinner » le diffuseur, ...
• Administration :
• Rentrer les «news», configurer les différents écrans, ...
• Avec des technologies simples & peu contraignantes
• => On fait du Web !
31
59. SOLUTION NAÏVE :
ACCÈS BASE DE DONNÉES
... ...
Provider
...
... ...
...
Accès direct aux tables MySQL ...
39
60. SOLUTION NAÏVE :
ACCÈS BASE DE DONNÉES
... ...
Provider
...
... ...
... t ir
an ?
r ?
ga e
t nc
en re
m hé
m o
o c
Accès direct aux tables MySQL ...
C la
XML ? SqLite ?
Postgres ? Fichiers ?39
61. MÉTHODOLOGIE DE
DÉVELOPPEMENT
Provider
FeedBusiness
...
Diffuser les
informations
FeedFinder FeedCRUD
Retrouver toutes Gérer le
les informations stockage
existantes 40
62. PATTERN
«BUSINESS ~ CRUD ~ FINDER»
• Business:
• Diffuse les informations utiles pour le client d’affichage
• CRUD : FeedBusiness
• Create, Read, Update, Delete
• Finder : FeedCRUD
(et explore) toutes les
• Liste
informations stockées
41
FeedFinder
63. AVANTAGES DE CE PATTERN
• Maintenance facilitée
• Développement cohérent
• Séparation des préoccupations
• Chaque service est «simple»
• Interconnexion assurée
• Tout est Web Services !!
42
67. POUR LES UTILISATEURS
• Un système de diffusion d’information
• Adapté aux milieux scolaires
• Une liaison avec les outils collaboratifs Web 2.0
• Photos Picasa / Flickr, Google Calendar, ...
• Une installation « définitive » avec un ./install.sh
• La gestion des infos et des écrans passe ensuite par le Web
• Et surtout adaptable à l’établissement
• C’est à une CSS près !! 46
68. POUR LES DÉVELOPPEURS
• Publication de 23 Web Services pour la communauté
• Twitter, Picasa, News, iCal, Cache de données, Cantine, ...
• Diffusion de 7 orchestrations « métier »
• (Le Web manque cruellement d’exemples BPEL & SOA)
• Diffusion d’un « Provider » complet
• Orchestrations sources, manipulation de listes d’informations
• Mise à disposition de jDisplayer et de WebAdmin
• Exemple de templates, de style CSS, ... 47
70. NOUS AVONS BESOINS
D’UTILISATEURS !!!!!!!
• jSeduite est déployée à Polytech’Nice
• Partenariat avec l’IES Clément Ader
• Prise en compte du handicap en cours ...
• Et peut-être bientôt chez vous ??
49
71. ET AUSSI DE
DÉVELOPPEURS !!!!!!!
• Développement de nouvelles sources d’informations ...
• Horaires des Bus, Vidéos YouTube, ...
• Ou encore de nouveaux providers ...
• Gestiondes pauses (informations filtrées),
profils utilisateurs plus précis, ...
• Voir de nouveaux interacteurs !!
• Téléphone portables, PDA, Desktop, ...
50
73. IDENTIFICATION DE
FRAGMENTS RÉUTILISABLES
• Développement de processus métiers par composition
• Définir initialement des processus métiers simples
• Et utiliser des fragments pour les enrichir
• Capitaliser les connaissances des architectes
http://www.adore-design.org
52
74. EXEMPLE
• Processus initial:
• Récupérer toutes les informations disponibles
• Fragments :
• «Pas avant» + TV => pas la télé avant 16h
• «Pas après» + RestoU => plus de menu après 14h
• «Mélanger» + «Tronquer» + PictAlbum => photos différentes
• Système final « customisé » sans avoir écrit de code !!
53
75. GÉNÉRATION AUTOMATIQUE
DE SYSTÈMES DE DIFFUSION
• Permettre à l’utilisateur de définir ses informations
• Menu, Alarmes, Absences, Flickr, Picasa, WeatherBug, ...
• Fournir un ensemble de politiques
• Pas avant, Pas après, Mélanger, Authentifier, ...
• Laisser l’utilisateur «cocher» ce dont il a besoin
• Et générer automagiquement l’application qu’il a spécifié
54
76. CONSTRUCTION AUTOMATIQUE
D’ARCHITECTURE ORIENTÉES SERVICES
• Métamodélisation des processus
• Quel est mon métier dans la SOA ?
• Quelle en est l’évolution ?
• Définition de méta-outils
• Composition de processus
• Génération des codes associés
55
77. L’ÉQUIPE JSEDUITE
• Team Leaders
• Mireille Blay - Fornarino, Sébastien Mosser
• Styles CSS & Visuels
• Céline Auzias ( C.line Design )
• Etudiants ayant participé au projet :
• Clémentine Delerce - Mauris,
Lionel Palacin,
Stéphane Martarello,
Steve Colombié
56