Vous êtes sur la page 1sur 110

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le CMS LIFERAY
Claude Duvallet
Universit du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Claude.Duvallet@gmail.com http://litis.univ-lehavre.fr/duvallet/

Claude Duvallet 1/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le portail Liferay et le moteur de Workow JBPM

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Claude Duvallet 2/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Prsentation de Liferay (1/3)


Liferay est un portail J2EE open source compatible avec le standard JSR-168. Une de ses particularits est de pouvoir sexcuter sur la majorit des serveurs dapplications et de bases de donnes disponibles actuellement. La socit Liferay a t fonde en 2000 dans le but de dvelopper un portail abordable, proposant une alternative aux solutions commerciales souvent trs chres. Liferay Portal est distribu sous licence MIT, ce qui permet de pouvoir le modier et le redistribuer librement. Une offre de service est fournie directement par Liferay et par des partenaires.

Claude Duvallet 3/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Prsentation de Liferay (2/3)


Adhrant strictement aux standards Java et J2EE, Liferay peut sintgrer dans des environnements multiples :
Il peut sexcuter sur la quasi-totalit des serveurs dapplications Java actuels et se connecter un trs grand nombre de serveurs de base de donnes. Respectant galement le standard JSR-168, il est possible dy dployer un grand nombre de portlets.

Actuellement la dernire version utilise est la version 6.


Liferay est encore aujourdhui en dveloppement. De nouvelles fonctionnalits sont ajoutes rgulirement.

Liferay est un portail dintgration permettant aux utilisateurs daccder des pages regroupant divers contenus et outils.

Claude Duvallet 4/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Prsentation de Liferay (3/3)


Liferay respectant le standard JSR-168, cela lui offre la facult dintgrer un grand nombre dextensions. Dvelopp en suivant les standards Java et J2EE, Liferay peut tre dploy sur des architectures trs varies (serveur dapplications et de base de donnes) et peut galement sintgrer un annuaire LDAP. Rapide installer et possdant un nombre de portlets consquents, il offre une solution simple et rapide pour dployer un portail dentreprise tout en permettant de le faire voluer avec des extensions dveloppes spciquement ou disponibles dans le commerce. Il pourra donc intresser aussi bien ceux qui ncessitent des outils standards prts fonctionner que ceux qui ont des besoins plus spciques et souhaitent btir de nouveaux portlets pour les intgrer dans Liferay.
Claude Duvallet 5/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Forces et faiblesses de Liferay

Les forces :
Il possde de nombreux environnements de dploiement. Il est conforme au standard JSR 168. Il permet un agencement des portlets trs facile. Il offre de nombreuses possibilits dextension. Il repose sur le dveloppement de portlets standards. Il possde la vitalit des projets Open Source.

Les faiblesses :
La documentation de certaines fonctionnalits est manquante. La concurrence dautres projets Open Source est importante. Il possde une communaut restreinte de dveloppeurs.

Claude Duvallet 6/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Principe de base (1/2)


Un portail a pour rles :
dintgrer plusieurs applications distinctes (portlets) par page, doffrir une gestion des droits daccs chacune de ces applications : en vue (standard), et en conguration. de permettre indirectement un dcouplage entre le template de page, et les applications quelle contient.

Liferay est aussi un CMS :


gestion de contenus WEB, gestion des images et documents attachs ces contenus, gestion des espaces de publication, gestion des droits lis au workow standard de publication (contribution/approbation).

Claude Duvallet 7/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Principe de base (2/2)


Liferay traite de ces points avec les notions suivantes :
Des espaces et une gestion de droits commune entre la gestion de contenus web et le portail Un espace = une communaut (ou une organisation), Contient des pages (correspond la notion de sous-site), et par
consquent les contenus web et les proprits des portlets qui les constituent.

Une gestion de droits dlgus, exploitant la notion de rle. Chaque rle peut tre appliqu une communaut, ou bien lensemble du portail. Administrateur, Contributeur, Validateur. Une sparation entre : La prsentation et la navigation. Le modle de disposition des portlets (colonage). Les gabarits de la gestion de contenus. Les portlets.
Claude Duvallet 8/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le vocabulaire de Liferay
Contenu web = Article Type de contenu = Structure gabarit de contenu = template Application = portlet Page = Layout Prsentation (charte graphique) = Theme colonage = modle de disposition = Layout template Action possible sur un objet (Permissions) :
Applicable aux portlets, contenus, sujets de forum...

Prol thmatique = Rome


sert tablir les permissions autorises pour ce prol

Espace de publication (et/ou sous-site) :


groupe de travail = Communaut organisationnel = Organisation
Claude Duvallet 9/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Installation et conguration de Liferay


Linstallation est trs facile. Liferay nous offre la possibilit de tlcharger divers bundles incluant des serveurs dapplication (Geronimo, JBoss, ou JOnAS) et conteneurs de servlet (Jetty, Resin ou Tomcat). Pour un dploiement sur un autre serveur, il suft de le tlcharger sous forme de chier WAR ou EAR. La documentation de linstallation et de la conguration est bien fournie. Il est particulirement facile de congurer la base de donnes que lon souhaite utiliser grce des scripts de cration de bases tlchargeables pour un grand nombre de SGBD. Par dfaut, Liferay utilise une base HSQLDB ce qui permet davoir un portail fonctionnel sans aucune installation de base de donne.
Claude Duvallet 10/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Intgration de Liferay (1/2)


Liferay supporte tous les serveurs dapplication suivant : Borland ES , Geronimo, GlassFish, JBoss, JOnAS, JRun, OracleAS, Orion, Pramati, RexIP, Sun JSAS, WebLogic, WebSphere. Grce lutilisation en interne dHibernate pour la persistance des donnes, tous ses serveurs peuvent tre combins avec les bases de donnes suivantes : DB2, Hypersonic, Interbase, MySQL, Oracle, PostgresSQL, SQLServer. Cette capacit dintgration est vritablement un point fort de Liferay. Il offre une trs grande libert de choix et peut permettre de mettre prot des ressources dj existantes. Lauthentication des utilisateurs peut se faire grce une connexion un annuaire LDAP. En outre, il est possible de dployer les portlets compatibles avec la JSR-168 et des portlets WSRP.
Claude Duvallet 11/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Intgration de Liferay (2/2)


Des portlets utilisant JSF, Struts, Spring peuvent galement tre dvelopps. Un portlet RSS est fourni, permettant de lire des ux RSS provenant de sites externes. Lintgration dautres application du Systme dInformation peut se faire de plusieurs manires :
Un portlet WebProxy (PortletBridge) est dployable et permet daccder une application distante lintrieur dun portlet. Une authentication basique est possible avec cette portlet et elle permet galement dutiliser une feuille de style XSLT pour modier la page distante rapatrie. Si lapplication expose des WebServices SOAP, un portlet exploitant ces services peut tre dvelopp.

Par contre, contrairement aux portails commerciaux, aucun connecteur vers des progiciels ou des outils de reporting nest fourni.
Claude Duvallet 12/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Extensibilit de Liferay (1/2)

De nombreux portlets sont dj intgrs Liferay et permettent de rpondre certains besoins. Nanmoins, lintgration ou le dveloppement de nouveaux portlets permet dutiliser Liferay comme un framework de portail. Il offre ainsi des services de bases trs pousss (Gestion des utilisateurs, des permissions, de lauthentication,...).

Claude Duvallet 13/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Extensibilit de Liferay (2/2)


Les portlets dvelopps seront fournis dans une archive .war comprenant un chier portlet.xml dcrivant les proprits de dploiement (standard JSR-168). ventuellement lajout des chiers liferay-display.xml et liferay-portlet.xml permettront de congurer des paramtres par dfaut propres Liferay (exemple : droits par dfaut sur le portlet,...). Ces paramtres spciques Liferay ne sont pas un frein linteroprabilit car :
ils concernent uniquement des fonctionnalits propres Liferay, ils permettent simplement de faire gagner du temps ladministrateur lors du dploiement et de laffectation des droits aux portails.

Claude Duvallet 14/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le rendu de Liferay
Liferay est fourni avec plusieurs thmes prinstalls et beaucoup dautres raliss par la communaut dutilisateurs sont tlchargeables sur le site. Deux possibilits sont offertes pour crer ses propres thmes : les dvelopper laide de pages JSP ou bien en utilisant le moteur Velocity. Les thmes construits avec Velocity sont dployable chaud , sans redmarrage du serveur. Dans les 2 cas, il sagit de fournir un modle pour les diffrents lments de la page (en-tte, pied-de-page, portlet,...), dajouter les images qui sont utilises pour construire le site et la feuille de style qui sera applique. Un chier xml accompagnera le thme permettant de dnir le nom sous lequel apparatra le thme dans linterface de choix.
Claude Duvallet 15/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Administration de Liferay (1/2)


Administration des utilisateurs
Liferay nous propose une administration des utilisateurs base sur 3 niveaux hirarchiques : Enterprise, Organisation et Location. Enterprise est le niveau le plus haut dans lequel on peut crer des Organisations dans lesquelles on peut crer des Locations. Ce principe permet de dnir des droits dadministration sur ces diffrents niveaux (on peut avoir des administrateurs soccupant uniquement dune Organisation ou dune Location) et permet de sadapter des organisations complexes.

Entreprise

Organisation

Organisation

Location

Location
Claude Duvallet 16/110 LIFERAY

Location

Location

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Administration de Liferay (2/2)

Paralllement cela, des Groupes peuvent tre crs permettant de regrouper des utilisateurs provenant dOrganisations ou de Locations diffrentes. Voici un aperu du portlet dadministration du niveau Enterprise :

Claude Duvallet 17/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Personnalisation de Liferay

La personnalisation des pages du portail seffectue en 2 tapes :


la cration des pages, la personnalisation de celles-ci.

Des thmes peuvent ensuite tre appliqus aux Communauts ou individuellement aux pages. La personnalisation des pages propres une communaut ou propre lutilisateur est similaire. Ladministrateur modie les pages des communauts de la mme manire quun utilisateur modie sa page personnelle (ou les pages sur lesquelles il dispose de droits de modication).

Claude Duvallet 18/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Personnalisation de Liferay : Cration des pages


Tout dabord, on cre une hirarchie de pages qui sont associs soit directement un utilisateur, soit une communaut. Voil par exemple, lensemble des pages associes la communaut Guest :

Cette hirarchie pourra tre parcourue trs facilement grce lajout sur les pages du portlet de navigation qui permet dobtenir des liens vers les pages enfants.
Claude Duvallet 19/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Personnalisation des pages de Liferay

La personnalisation des pages seffectue directement depuis la page en question. En effet, en disposant des droits ncessaires, on peut :
modier larrangement de la page en dplaant les portlets lintrieur de celle-ci avec un simple drag & drop, ajouter des portlets en faisant apparatre la liste des portlets disponibles grce loutil Add Content .

Claude Duvallet 20/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Exemple : Dplacement du portlet Journal

Claude Duvallet 21/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Exemple : Ajout de nouveaux portlets

Claude Duvallet 22/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Personnalisation de Liferay : Les thmes


Les thmes :
Le rendu des pages peut tre modi grce aux thmes. Ces thmes peuvent tre dnis pour lensemble des pages dune communaut ou pour des pages individuellement. Liferay est fourni avec quelques thmes prinstalls et beaucoup dautres disponibles en tlchargement sous forme de chiers WAR dployer sur le serveur. Cette mthode dinstallation est trs pratique et permet de dployer un nouveau thme en quelques secondes, sans avoir besoin de redmarrer le serveur. Lcriture de thmes personnaliss semble aise. Linterface de Liferay est construite sur Tiles (Struts), systme de templates trs rpandu. Il suft de crer ou modier quelques chiers .JSP ou Velocity et CSS correspondant aux diffrentes zones du portail, dajouter les images utilises dans ces zones, de packager le tout dans un chier WAR et le tour est jou.
Claude Duvallet 23/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le CMS de Liferay : Journal (1/7)

Un systme basique de gestion de contenu (CMS) appel Journal est prsent dans Liferay. Loin des vrais systmes de CMS, il permet simplement de crer des articles et de les publier sur des pages. On peut ainsi raliser simplement un petit site statique. Pour grer les articles, on utilise des Structures. Elles permettent de dnir quels lments composeront larticle (par exemple, un texte reprsentant le titre, une image et un contenu HTML qui reprsentera le corps de larticle).

Claude Duvallet 24/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le CMS de Liferay : Journal (2/7)


Exemple de structure utilise pour grer les articles :

Claude Duvallet 25/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le CMS de Liferay : Journal (3/7)


Ensuite, pour chaque structure cre, on y ajoute un ou plusieurs Templates. Ils servent dnir lagencement des diffrents lments composant larticle.

Claude Duvallet 26/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le CMS de Liferay : Journal (4/7)


Les templates peuvent tre dnis avec une feuille de style XSL ou en langage VTL (Velocity Template Language).

Claude Duvallet 27/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le CMS de Liferay : Journal (5/7)


On peut ensuite rdiger un ou plusieurs articles sappuyant sur la structure et le template dnis. On dnit tout dabord les proprits gnrales de larticle : nom, catgorie, date de publication, dexpiration, ...

Claude Duvallet 28/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le CMS de Liferay : Journal (6/7)


Puis, on peut ajouter le contenu en sappuyant sur le template et la structure dnies prcdemment.

Claude Duvallet 29/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le CMS de Liferay : Journal (7/7)

Pour terminer, il suft dajouter un portlet Journal Content sur la page o lon souhaite afcher larticle pour quil apparaisse. Il est noter que les articles peuvent tre localiss et peuvent donc sadapter la langue choisie par lutilisateur. La page daccueil de Liferay (http://www.liferay.com) est un bon exemple de lutilisation de Journal.

Claude Duvallet 30/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Intgration avec le CMS Alfresco

Loutil Alfresco peut tre intgr au portail Liferay an de remplir diffrentes fonctions dans le cadre de la gestion lectronique de document. Un portlet client est disponible dans Liferay permettant de se connecter un serveur Alfresco.

Claude Duvallet 31/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Quelques outils collaboratifs (1/5)


Liferay propose une srie de petits outils collaboratifs sous forme de Portlets. Les fonctionnalits sont basiques mais les outils sont fonctionnels. On trouve :
Favoris : Ce portlet permet de stocker des favoris et de les organiser par dossier. Mail Le portlet Mail permet de se connecter un serveur IMAP pour lire
et envoyer des messages.

Toutefois, ce portlet nautorise que la connexion un seul serveur


pour tous les utilisateurs.

Claude Duvallet 32/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Quelques outils collaboratifs (2/5)


Calendrier
Le calendrier permet de publier des vnements et de les partager ventuellement entre les membres dune communaut. Chaque vnement peut faire lobjet de permissions particulire (aucun accs, lecture, lecture/criture).

Claude Duvallet 33/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Quelques outils collaboratifs (3/5)


Forum
Le forum permet de crer des ls de discussion organisable par catgorie. Il est possible de poster galement des pices jointes aux messages.

Claude Duvallet 34/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Quelques outils collaboratifs (4/5)


Blog : Un blog est disponible et permet aux membres dune communaut de poster des billets.

Wiki : Le portlet wiki permet tous les utilisateurs de crer ou modier des pages.

Claude Duvallet 35/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Quelques outils collaboratifs (5/5)

Sondages
Un portlet Poll permet de crer des sondages. Ceux-ci pourront tre visible pour quelques utilisateurs seulement, toute un communaut ou mme par les visiteurs du site.

Claude Duvallet 36/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Business intelligence

Depuis 2007, Liferay propose un Portlet Liferay reporting Portlet . Un systme de logging (Log4j) est prsent. Il est congurable laide dun simple chier xml. Le portlet Admin permet galement de modier les niveaux de dclenchement des logs.

Claude Duvallet 37/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Perspectives (1/2)
Aprs 10 annes dexistence, Liferay nous offre un produit trs abouti. Les fonctionnalits de base (gestion des utilisateurs, dploiement de nouveaux portlets,...) sont solides et bien conues. Laspect visuel est trs russi et les portlets fournis sont nombreux et fonctionnels. Les pistes de dveloppement actuelles vont vers encore plus de fonctionnalits offertes dans le package de base. Si linstallation et la conguration gnrale sont bien documentes, en revanche la documentation de certains portlets est lgre et peut conduire des difcults congurer certaines fonctionnalits.

Claude Duvallet 38/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Perspectives (2/2)
Avec un portail fonctionnel et utilisable ds linstallation mais possdant une base solide pour lintgration et le dveloppement de nouveaux portlets, Liferay offre un trs bon outil capable de se dployer rapidement et de sadapter des besoins complexes. Liferay est sans aucun doute le mieux ni des portails Open Source mais il lui manque encore des connecteurs vers les applications du SI et les outils de reporting pour faire face ses concurrents propritaires. Mme si depuis la sortie de la version 6, la communaut semble saccrotre, elle nest pas encore trs importante. Elle est malgr tout trs active notamment grce lappui de la socit Liferay.

Claude Duvallet 39/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Administration en ligne du portail


Contrairement dautres solutions portail (particulirement open source), Liferay offre laccs une interface graphique dadministration : le panneau de commande (control panel)
Compte personnel : Public type : Utilisateur enregistr Contenus et outils communautaires Public type : contributeurs, gestionnaires Portail : congurations et rfrentiels Public type : webmasters, responsables mtier Serveur : gestion des ressources et applications fournies Public type : exploitant

La plupart des paramtres non administrables sont inclus dans un chier unique.

Claude Duvallet 40/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Prsentation de la plateforme logicielle (1/3)


Larchitecture gnrale

Claude Duvallet 41/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Prsentation de la plateforme logicielle (2/3)


Larchitecture dintgration de Liferay

Claude Duvallet 42/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Prsentation de la plateforme logicielle (3/3)

Installation : emplacement des sous-composants.


Un rpertoire de travail : Data/ Fichiers de la Bibliothque de documents (selon paramtrage), Index Lucene (selon paramtrage), hsql (selon paramtrage). Lib/ext : librairies ncessaires au fonctionnement du portail. Rpertoire de dploiement chaud des plugins : deploy, Rpertoire de dploiement des webapps du serveur dapplication :
le portail (ROOT.war).

Les plugins installs.

Claude Duvallet 43/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Installation du portail (1/2)

Java
Procdure dinstallation standard. V1.5 ou 1.6

Bundle Liferay + Tomcat


Il suft de dcompresser !

La base de donnes HSQL :


Liferay embarque une base HSQL (hypersonic) Les donnes sont stockes dans /data/hsql/lportal.script Les requtes de la session en cours sont stockes dans lportal.log Pour un usage de type dmo, voire dveloppement uniquement.

Claude Duvallet 44/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Installation du portail (2/2)

Fates de rgulires sauvegardes de votre rpertoire data


Cela revient sauvegarder un dump de la base de donnes + des documents

Pour dmarrer :
Aller dans le rpertoire (tomcat)/bin Excuter startup.bat Une fentre doit souvrir, avec la sortie standard de Tomcat.

Pour arrter :
Aller dans le rpertoire (tomcat)/bin Excuter shutdown.bat

Claude Duvallet 45/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Aprs linstallation du portail

Le chier liferay-display.xml recense les portlets dorigine de Liferay, qui peuvent tre ajoutes une page du portail :
Dans (tomcat)/webapps/ROOT/WEB-INF/. Ensemble des portlets disponibles depuis le menu contextuel, Ajouter une application.

Dans ce chier :
Dans la catgorie category.cms (au dbut), rajouter la ligne suivante <portlet id="15" />

Cela nous permettra dajouter ladministration des contenus web (id=15), dans des pages accs restreint.

Claude Duvallet 46/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Vue densemble sur les portlets


Quest-ce que JSR-168 ? Quest-ce quun Portlet ? Cycle de vie dun Portlet Avantages des portlets Standard Java Quest-ce que JSR-286 ? Modes dun Portlet tats dcran Prfrences Actions et vnements Communication Inter-Portlets (IPC)

Claude Duvallet 47/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Quest-ce que JSR 168 ?

JSR-168 est la spcication 1.0 des Portlets ? Cre suite au besoin davoir une spcication pour lafchage multiple de plusieurs applications sur une mme page JSR-168 dnit le cycle de vie dun Portlet ainsi que ses caractristiques

Claude Duvallet 48/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Quest-ce quun Portlet ?

Une Portlet est un composant web qui met des requtes et gnre du contenu dynamique Le contenu gnr par un Portlet est aussi appel Fragment (i.e. HTML, XHTML, WML). Il peut tre assembl avec dautres contenus pour former un document complet

Claude Duvallet 49/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Exemple de portlets

Les portlets sont des fragments de pages WEB :

Claude Duvallet 50/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Quest-ce quune application de type Portlet ?


Le serveur dapplications considre une application portlet comme tant une autre application web qui vit au sein dune archive web (.WAR) Outre le chier descripteur de dploiement standard web.xml, les applications Portlet requirent un descripteur de dploiement additionnel appel portlet.xml Ce descripteur de dploiement informe le conteneur de portlets (Liferay) sur :
Les portlets incluses dans lapplication Rles supports Modes de portlet supports Etc.

Claude Duvallet 51/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Phases dun Portlet (1/2)

Les portlets sont diffrentes des Servlets du moment o elles ont plus quun type de requte : Phases. Servlet : la mthode service() traite toutes les requtes. JSR-168 (Portlet 1.0) possde deux phases :
Phase de prsentation (Render Phase) : excute chaque fois que la portlet a besoin dtre redessine Phase daction (Action Phase) : appele comme rsultat dune ActionURL. Permet la portlet deffectuer du traitement spcique pour changer dtat, visible quand la portlet est redessine.

Claude Duvallet 52/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Phases dun Portlet (2/2)

JSR-286 (Portlet 2.0) ajoute deux nouvelles phases :


Phase dvnement (Event Phase) : appele quand un vnement est sur le point dtre lanc. Les vnements (Events) peuvent tre lancs dans la phase daction (Action Phase) de la portlet et traits durant la phase dvnement (Event Phase). Resource Serving Phase : appele par la mthode serveResource().

Claude Duvallet 53/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Cycle de vie dun Portlet

La mthode init () : elle initialise la Portlet. La mthode processAction () : elle est appele quand lutilisateur lance une action. La mthode render () : elle dessine le contenu. La mthode destroy : elle libre lobjet Portlet (Garbage collection).

Claude Duvallet 54/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Avantage des Portlets Standard Java


Elles fournissent une architecture de base. Larchitecture de base est la mme travers les Portails respectant le Standard Java. Les portlets dveloppes selon ce standard peuvent tre excutes sur tous les conteneur de Portlet respectant ce standard. Documentation (Blue Sunrise). La spcication des Portlets ne va pas changer et vous pouvez de faon able vous y rfrer en cas de besoin dinformation. API standard pour les dveloppeurs. Les dveloppeurs peuvent dvelopper un ensemble de portlets standardises pouvant tre dployes sous nimporte quel Portail standardis. Attention, standardis signie : aucun import com.liferay...
dans les classes et jsp.
Claude Duvallet 55/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Portlet 2.0 (JSR-286)

Dmarrage au mois de Novembre 2005 (3 ans aprs la version 1.0). Mene par IBM et rvise par les principaux vendeurs de solutions Portail (Liferay inclus). Approuve et publie au mois le 12 Juin 2008. Conserve la compatibilit avec les portlets 1.0 (JSR-168). Ajoute de nouvelles fonctionnalits en se basant sur lexprience des diffrents vendeurs de solutions Portail (dont Liferay).

Claude Duvallet 56/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les nouveauts
Communication Inter-Portlets standardise :
Paramtres publics. vnements.

Resource serving :
Support dAJAX. Support des donnes binaires.

Filtres pour Portlets. Meilleur support des Frameworks Web :


Les dveloppeurs ne veulent pas forcment utiliser lAPI Portlet directement (Notion de ponts ou Bridges).

Des correctifs mineurs et des nouveauts.

Claude Duvallet 57/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Paramtres public ou Public Render (1/3)

La mthode la plus simple pour une communication Inter-Portlets (IPC). Un dveloppeur peut dclarer plusieurs paramtres publics pour une application Portlet dans le chier portlet.xml. <portlet-app> <public-render-parameter> <identifier>foo</identifier> <qname xmlns:x="http://foo.com/p">x:foo2</qname> <public-render-parameter> . . . </portlet-app> Ne peuvent accder ces paramtres que les portlets au sein de lapplication.

Claude Duvallet 58/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Paramtres public ou Public Render (2/3)


Les portlets doivent dclarer quel paramtre public elles vont utiliser en utilisant llment supported-public-render-parameter. Ces paramtres seront disponibles travers le cycle de vie de la portlet (processAction, processEvent, render, serveResource).
<portlet> <portlet-name>portletA</portlet-name> . . . <supported-render-public-parameter> foo </supported-render-public-parameter> </portlet>

Un portlet peut lire un paramtre public en utilisant :


request.getPublicParameterMap()

Claude Duvallet 59/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Paramtres public ou Public Render (3/3)

Les paramtres public sont fusionns avec les paramtres rguliers. Ils peuvent donc tres lus en utilisant getParameter(name) et getParameterMap(). Un portlet peut effacer un paramtre public en invoquant :
Response.removePublicRenderParameter(name) portletURL.removePublicRenderParameter(name)

Claude Duvallet 60/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Gestion des vnements (1/3)


Mthode puissante et fortement dcouple pour la communication inter-portlets (IPC) Utilise un Producer-Listener pattern
Un portlet gnre un vnement Zro ou plusieurs portlets sont en coute et agissent en fonction de cet vnement

Permet la communication entre portlet dans diffrentes applications Optionnellement, le conteneur peut aussi gnrer ses propres vnements
Pas dvnements conteneur spciques standardiss pour le moment.

Les portlets peuvent publier un vnement depuis leur propre code de processAction() :
actionResponse.setevent(event, eventPayLoad)
Claude Duvallet 61/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Gestion des vnements (2/3)


La publication dun vnement engendre une ou plusieurs invocations de la nouvelle mthode processEvent dans la mme ou les autres portlets. De nouveaux vnements peuvent aussi tre publis en implmentant processEvents :
actionResponse.setevent(event, eventPayLoad)

Il faut noter que lordre de production des vnements nest pas garanti. Exemple de traitement dvnement :
public void processEvent(EventRequest request, EventResponse response) throws PortletException, IOException { String eventName = request.getEvent().getQName().toString() ; if(eventName.equals(...)) { ... } else if (eventName.equals(...)) { ... } }
Claude Duvallet 62/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Gestion des vnements (3/3)

Par contre, cest plus propre et plus facile dutiliser les annotations (ncessite un hritage de GenericPortlet) :
/** * Cette mthode reoit lvnement "MyEvent" * @ProcessEvent (qname={http://foo.com}MyEvent) */ public void processMyEvent(EventRequest request, EventResponse response) throws PortletException, IOException { ... }

Claude Duvallet 63/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le Resource Serving

Il permet aux portlets de servir des ressources :


Dans la version 1.0 des Portlet, les requtes dun Portlet retournaient une page entire.

Il est utile pour :


la cration dynamique dimages et dautres ressources binaires, le renvoi de fragments XML, JSON, HTML et des appels AJAX etc.

Claude Duvallet 64/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les ltres

Ce sont des composants Java permettant dajouter des traitements en amont et en aval de lexcution des portlets. Il sont postrieurs aux ltres de la spcication des Servlets.

Claude Duvallet 65/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les autres aspects


Les portlets permettent une meilleure gestion du cache : Etags, resource caching, etc. Ils permettent aussi une meilleure introspection que les Servlets. Ils sont trs utile pour les Frameworks de dveloppement. Ils offrent un support lcriture de headers HTTP. Ils utilisent des Annotations pour simplier la conguration. Ils grent aussi les attributs de prole P3P (The Plateform for Privacy Preferences Project) :
Cest un projet qui vise standardiser le moyen par lequel un site web peut informer linternaute de sa politique en matire de protection des donnes personnelles.

Claude Duvallet 66/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Caractristiques dun Portlet

Elles offrent des caractristiques supplmentaires par rapport aux Servlets. Modes de Portlets (Portlet Modes). tats dcran (Window States). Prfrences Portlet.

Claude Duvallet 67/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les mode de Portlet

Chaque portlet a un mode courant indiquant la fonction quelle est en train de raliser. Tous les portails Standard JAVA doivent supporter les diffrents modes : Edit, View et Help. Les modes dun Portlet sont dnis dans portlet.xml. Les dveloppeurs peuvent crer leurs propres modes.

Claude Duvallet 68/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les portlets Liferay

Liferay permet dajouter deux descripteurs de dploiement qui tendent portlet.xml : liferay-portlet.xml. liferay-display.xml. Optionnels mais permettent dimplmenter des fonctionnalits spcique Liferay Un chier liferay-plugin-package.properties pour :
Renseigner les versions de Liferay compatibles avec la portlet. Etc.

Claude Duvallet 69/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le chier liferay-portlet.xml
<?xml version="1.0"?> <!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 5.0.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_5_0_0.dtd"> <liferay-portlet-app> <portlet> <portlet-name>jsf-portlet</portlet-name> <instanceable>true</instanceable> <render-weight>1</render-weight> <ajaxable>true</ajaxable> </portlet> <role-mapper> <role-name>administrator</role-name> <role-link>Administrator</role-link> </role-mapper> <role-mapper> <role-name>guest</role-name> <role-link>Guest</role-link> </role-mapper> </liferay-portlet-app>

Claude Duvallet 70/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le chier liferay-display.xml

<?xml version="1.0"?> <!DOCTYPE display PUBLIC "-//Liferay//DTD Display 5.0.0//EN" "http://www.liferay.com/dtd/liferay-display_5_0_0.dtd"> <display> <category name="category.sample"> <portlet id="jsf-portlet"/> </category> </display>

Claude Duvallet 71/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Bilan

Tous les produits, de type portail, majeurs du marchs adhrent la spcication Java pour les Portlets (1.0 ou 2.0). Liferay Portal 4.x Portlet 1.0 (JSR-168). Liferay Portal 5.x Portlet 2.0 (JSR-286). Toute connaissance acquise autour de la spcication des Portlets Java peut tre applique pour nimporte quel autre produit commercial ou libre disponible sur le march.

Claude Duvallet 72/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Personnalisation de Liferay (1/2)

Il est frquent, an de rpondre de la manire la plus adapte qui soit, davoir modier le comportement dorigine du portail.
Par paramtrage. Par modication.

Ces modications, parfois trs simples, peuvent devenir une relle difcult au moment de procder une monte de version du logiciel :
si elles ne sont pas effectues dans un cadre normalis et conforme la stratgie voulue par la communaut Liferay.

Claude Duvallet 73/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Personnalisation de Liferay (2/2)


Le dploiement de sous-composants :
Plugin : Portlet, Theme (modle de disposition), Hook. Extension, patch.

Le dploiement de plugins se fait la plupart du temps chaud dans le rpertoire deploy. Le dploiement dextension ou de patch se fait la plupart dans les rpertoires librairie ou webapps.
Claude Duvallet 74/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Lenvironnement de dveloppement (1/2)


Le moyen privilgi est le plugins SDK, permettant de dvelopper des plugins Liferay :
Portlet, Layout Template, Thmes de prsentation, Hook.

Il fournit un projet de dveloppement et des scripts ANT structurants :


Compilation et dploiement unitaires, Travail diffrentiel, Dploiement chaud.

Claude Duvallet 75/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Lenvironnement de dveloppement (2/2)

Il permet notamment de raliser des :


Thmes de prsentation : Utilis pour porter la charte graphique, et la navigation. Modles de disposition : Colonage complexe ou placement au pixel. Portlets : soit la cration de portlets spciques, soit le clonage de portlets dorigine. Hooks : Cest la mthode dextension privilgier.

Claude Duvallet 76/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les Hooks
Les hooks permettent la ralisation :
dvnements sur : le dmarrage de lapplication. le login (pr et post). les services (pr et post). de chiers de traductions (language bundle). dvnements sur le modle (en particulier des entits comme User, Account, Layout...) : create update delete de JSP personnalises : les JSP dorigine peuvent tre surcharges.

Claude Duvallet 77/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les Hooks JSP

Les hooks jsp permettent de surcharger une jsp dorigine ;


mais en cas de monte de version, le problme reste entier...

On peut rajouter des lments une jsp dorigine :


On privilgie alors lextension par inclusion. La jsp dorigine ne contient quune balise dinclusion, vers une jsp contenant les nouveaux lments. Cela facilite la monte de version : seule la jsp dorigine (avec pour seule modication une balise
dinclusion) est potentiellement impacte.

Claude Duvallet 78/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Environnement de dveloppement
Composants requis sur le poste : JDK 1.5 ou plus. Un IDE Java adapt :
Netbeans, Eclipse JEE (conseill).

Liferay (bundle Tomcat, JBoss...). (optionnel) une base locale (gnralement MySQL) :
Pour consulter la base de donnes avec un browser sql. Sinon, jetez il faut regarder les chiers dans data/hsql.

(optionnel) Ant :
pour le dploiement via ligne de commande

Claude Duvallet 79/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les thmes de prsentation (1/2)

Le thme est le porteur de la charte graphique du site :


Cest une personnalisation dun produit existant. un forum = le forum de Liferay. Idem pour lagenda, le wiki, le blog, etc. On ne construit pas un nouveau site de A Z.

Le "maximum de logique de mise en forme" doit tre plac dans la CSS principale :
Styles CSS (chier custom.css, voire les autres si besoin). Et dans les templates .vm.

Claude Duvallet 80/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les thmes de prsentation (2/2)

Pour personnaliser la prsentation, on peut modier et crer sur :


Les styles CSS, Les images, Les portlets (applications) spciques, Via des templates (extension .vm), on peut modier le contenu HTML sur : La structure gnrale de la page (y compris lentte ou le pied de
page),

La navigation, Le colonage des portlets, Le contour des portlets.

Claude Duvallet 81/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les droits et les espaces dans Liferay

Les espaces de publication dans Liferay sont des sites autonomes.


La navigation est interne chacun de ces espaces

Deux types despaces sont offerts par Liferay


Communaut Correspond un espace de publication transverse : site ou
mini-site, groupe de travail.

Organisation Encapsule une communaut Dispose dautres attributs Une organisation peut avoir une organisation parente.

Claude Duvallet 82/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les URL dans Liferay


Les friendly URL dans Liferay :
3 niveaux : /web/guest/home /group/7cogs/home /user/john/social

Niveau 1 : dsigne la porte de la page


web : zone publique user : zone prive dun espace personnel group : zone prive dune communaut ou dune organisation

Niveau 2 : dsigne lespace o chercher la page


les friendly URL de la communaut, de lorganisation, ou screen name de lutilisateur.

Niveau 3 : dsigne le nom de la page (facultatif).

Claude Duvallet 83/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Conguration des droits et gestion de la scurit


Rle : peut tre rgulier, appliqu sur une communaut ou sur une organisation.

Pour chaque rle cr, il faut dnir les permissions :


Sur lapplication Sur le portail
Claude Duvallet 84/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Conguration des droits et gestion de la scurit


Permissions associes un rle, sur une application donne :

Claude Duvallet 85/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Conguration des droits et gestion de la scurit


Rles et permissions : une notion transverse.
Dans Liferay, pratiquement tout objet (instance de portlet, sujet de forum, etc) peut tre gr via un tableau de cases cocher, croisant : Permissions accordes sur lobjet (vue, conguration, etc.). Rle pour lequel la permission est accorde.

Permissions Rles

Claude Duvallet 86/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Conguration des droits et gestion de la scurit


Exemple : Rles et permissions associes un utilisateur.

Claude Duvallet 87/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Installation de plugins (1/2)


Cest identique la conguration des plugins, mais un bouton supplmentaire est prsent.

Pour les thmes et la prsentations des plugins, il est possible dutiliser des modles de disposition.

Claude Duvallet 88/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Installation de plugins (2/2)


Actions possibles
Upload dun plugin, pour dploiement chaud. Tlchargement dun plugin (via une url). Parcourir la liste des plugins de la communaut Liferay

Claude Duvallet 89/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Autres actions
Administration du serveur :
Prsente un intrt pour la surveillance et lanalyse, mais aussi pour des actions ponctuelles.

Plusieurs ressources sont disponibles pour :


la surveillance de la mmoire de la JVM et du garbage collector.

Claude Duvallet 90/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Gestion des ressources


Il est possible :
de mettre jour des caches (hibernate, cluster, etc.) dutiliser la rindexation du moteur de recherche.

Claude Duvallet 91/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Prsentation de JBPM

Projet rachet par JBoss. Licence apache. Lun (sinon le) des projets de workow le mieux document. Trs lger : 2 jar indpendants, ne ncessite pas lutilisation dun serveur dapplication (ex : JBoss). Le seul supporter la plupart des langues (XPDL, BPEL, etc.). Enrichi XPDL pour donner JDPL (JBPM Process Denition Language).

Claude Duvallet 92/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le moteur de workow jBPM (1/3)


JBPM est un moteur de workow et de gestion de processus BPEL, adapt aux individus, aux applications et aux services. Le produit est parfait pour tre intgre dans un environnement Java lightweight. Le kernel workow est trs lger et peut tre extensible pour supporter des langages de dnition de processus trs varies. Actuellement les langages suivants sont supports :
JPDL : pour le workow humain, PageFlow : pour la dnition des enchanements des formulaires, BPEL : pour lorchestration des services web.

Les outils dadministration et monitoring workow sont limits dans la version actuelle.

Claude Duvallet 93/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le moteur de workow jBPM (2/3)


JBoss jBPM est un moteur de workow et de gestion de processus mtiers. Il permet le contrle des processus qui coordonnent les personnes, les applications et les services. Avec son architecture modulaire, JBoss jBPM combine le dveloppement des applications workow avec un moteur de processus exible et extensible. Lditeur de processus JBoss jBPM reprsente graphiquement les tapes dun processus mtier et facilite le lien entre les analystes et les dveloppeurs. Puisque JBoss jBPM est prsent sous la forme dune simple bibliothque Java, il peut tre utilis
de faon indpendante dans un programme Java ou avec un serveur dapplications comme JBoss Application Server, pour des applications dentreprise hautement extensibles.
Claude Duvallet 94/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le moteur de workow jBPM (3/3)

JBoss jBPM facilite les modications des processus mtiers complexes, ce qui amliore signicativement la souplesse de lentreprise. Le projet est hberg par la communaut JBoss et fait partie du stack middleware JEMS propos par JBoss Group. RedHat est le leader du projet avec une quipe de dveloppement partag entre la Belgique et les tats Unis. En plus de la communaut anime par JBoss Group, le projet est actif avec des utilisateurs et validateurs en Europe et tats-Unis.

Claude Duvallet 95/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les fonctionnalits de jBPM (1/2)


JBPM est un moteur de processus exible et extensible : Conu pour fonctionner seul ou pour fonctionner parfaitement au sein de toute application Java ou J2EE. Modle de programmation orient processus qui associe le meilleur de Java aux avantages des techniques de programmation dclaratives. Support des langages de processus JPDL, PageFlow et BPEL. Dnition graphique des processus via le Graphical Process Designer (GPD). Le langage JPDL propos pour la dnition des processus workow humain est trs intuitif mais on regrette que des standards workow humain type XPDL ne soit pas supports.

Claude Duvallet 96/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les fonctionnalits de jBPM (2/2)


Linterface graphique de dnition des processus sous forme de plugin Eclipse permet de masquer lutilisation du langage JPDL. Lintgration avec le framework JBoss Seam permet dinterfacer facilement le workow avec une application web. Les outils dadministration et monitoring workow sont trs limits dans la version actuelle. Nanmoins, elles offrent la possibilit dexcuter graphiquement un processus workow. De futures versions mettront en uvre la technologie innovante de Process Virtual Machine dveloppe en commun par JBoss, OW2 et Bull.

Claude Duvallet 97/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Caractristiques de jBPM (1/2)


Versions :
La version actuelle est la 3.2.3. La prochaine version majeure devrait inclure le support complet du langage BPEL ainsi que lditeur graphique BPEL grce lintgration du plugin Eclipse BPEL. La version 4.x est en cours de dveloppement et vise une nouvelle architecture plus lgre et facilement extensible.

Robustesse et performance :
JBPM est dploy en production dans des organisations appartenant des domaines dactivits trs diffrents tels que les nances ou la sant.

Documentation :
La documentation en Anglais est complte. Elle couvre linstallation du produit, les concepts de base, les exemples dutilisation ainsi que la dnition des processus et les concepts lis la programmation. Elle est disponible sous forme dun document html.
Claude Duvallet 98/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Caractristiques de jBPM (2/2)


Facilit demploi :
JBPM est une librairie gnrique pour la gestion des diffrents langages des processus. Cette gnricit rajoute de la complexit lors de la premire prise en main du produit. Le modle de base est bas sur le concept Graph Oriented Programming qui certes apporte de la exibilit mais qui diffre des approches traditionnelles de workow.

Intgration :
JBPM peut tre intgr dans des systmes trs lgers type Java : application Java stand-alone, ou application web ainsi que dans systmes plus complexes type
J2EE.

Lutilisation de JBPM dans des solutions non-java ncessite le dveloppement dune couche de communication web services.
Claude Duvallet 99/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Gnralisation de la notion de workow (1/2)


Par workow on entends beaucoup de choses...
Cinmatique des interactions utilisateurs. La gestion des donnes.

Toutes les applications ont un workow :


Mais il est en gnral x, ou peu modiable.

Quelques exemples :
Un wizard, Un formulaire suivi dune validation.

Certaines applications mtiers ont une ncessit particulire de devoir sadapter aux besoins dune entreprise. Par exemple, tout gestionnaire de contenu (GED, CMS)
Rarement le mme processus de validation. Un nombre de validation diffrents, par des acteurs diffrents (un relecteur, suivi dune validation par un autre journaliste, puis une autre validation par un directeur de programme).
Claude Duvallet 100/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Gnralisation de la notion de workow (2/3)

Mais aussi toutes les applications lies la scurit :


PKI (Gestion du cycle de vie des certicats). Provisionning didentit.

Quelques constats :
Les dveloppeurs sont rarement spcialiss mtier. Les consultants mtiers ont rarement des connaissances techniques sufsantes pour manipuler du code.

Les ides :
Cration de moteur de workow permettant un dcoupage entre les parties techniques et les parties mtiers.

Claude Duvallet 101/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Gnralisation de la notion de workow (3/3)


Certaines personnes ont rchis des moteurs de workow :
WfMC (Workow Management Coalition).

Les ides :
Grer, archiver les instances de workow. Grer les donnes manipules au sein dune instance de workow. Orchestrer les diffrents modules que composent une instance de workow (briques mtiers).

En pratique cela donne :


Une vision mtier (reprsentation sous forme de graphique) dun workow, gnralement ralis par un consultant mtier. Une glue technique permettant la mise en oeuvre du workow mtier.

Claude Duvallet 102/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les WebFlow

Les webow (ou pageow) sont un cas particulier des workow dans le cas dune utilisation dun site web. Dcris lenchanement des pages. Pas de persistance systmatique. Une brique mtier (au sens workow) peut tre compos dun webow lorsquil y a interaction avec lutilisateur via une interface web.

Claude Duvallet 103/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Exemples dutilisation (1/2)

Lquipe scurit travaille sur le workow pour lapplication de PKI EJBCA, pourquoi ? Aucun client na le mme besoin mtier. Dans le cas dune demande de certicat, il peut exister de trs nombreux points dentre diffrents, et des cinmatiques totalement diffrentes en fonction du point dentre. Les workow mtiers peuvent voluer au sein dun client, do lide de faire une application trs modulaire.

Claude Duvallet 104/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Exemples dutilisation (2/2)


Pour bien comprendre, prenons un exemple :
La DRH - la signature dun contrat - rempli un formulaire web (outil de gestion des identits interne la socit). Cela provoque la demande de deux certicats pour cet utilisateur (signature et chiffrement). son arrive, lemploy gnre une carte puce avec son certicat de signature. Plus tard dans la journe, obtention de son certicat de chiffrement.

Et un autre totalement diffrent :


Une entreprise souhaite quiper tous ses routeurs de certicats pour authentication ipsec. Les routeurs gnrent une demande de certicat (via le protocole SCEP) auprs de la PKI. Un administrateur doit valider les demandes.
Claude Duvallet 105/110 LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Les aspects pratiques de la gestion de Workow

Dans un premier temps, il est question de dnir un langage permettant de reprsenter le workow, malheureusement il en existe un certains nombres :
BPM (Business Process Management) XPDL (XML Process Denition Language) BPEL (Business Process Execution Language)

La dnition de ces langages permettent dutiliser indpendamment diffrents moteurs de workow. Permet galement la cration dinterface graphique permettant la manipulation des workow.

Claude Duvallet 106/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le langage JDPL

JBPM Process Denition Language Un workow est compos dun ensemble de node :
Un (unique) startNode : tape lorigine de la cration de linstance du workow. TaskNode : tape en attente dune interaction avec lutilisateur. State : tape en attente dune action extrieure (webservices, attente de rponse dun composant externe lapplication). Un ou plusieurs endNode : archivage de linstance du workow et libration des ressources.

Les nodes task et state ont un tat wait

Claude Duvallet 107/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Dautres types de nodes

Fork : sparation du workow en N branches devant se runir via un node de type join DecisionNode : condition sur une variable de linstance de workow (utilisation dun langage simple ou dlgation une classe java). Node : action interne lapplication mais nayant pas dinteraction ni avec lutilisateur ni avec un lment externe (exemple : notication par courriel). On relie tous ces nodes par des transitions, reprsentant le changement dun node un autre au sein de linstance.

Claude Duvallet 108/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

Le comportement dun node

Chaque node possde trois vnements dclencheurs :


onNodeEnter : dclenche lentre du node. onNodeLeave : dclenche la sortie du node (na pas conscience du node suivant). onTransition : dclenche lors de la transition vers le node suivant.

Pour information : un vnement nest pas li qu une seule action, mais peut dclencher plusieurs actions.

Claude Duvallet 109/110

LIFERAY

Les portlets Liferay : personnalisation Les thmes de prsentation La gestion des droits Le moteur de workow jBPM

La gestion des donnes dans un workow

Trs important : un node na pas connatre lexistence des autres nodes, il manipule un ensemble de donnes dans un contexte dexcution. Cest--dire :
Il ny a pas de variables directement passes dun node lautre Un node utilise linstance du workow pour manipuler ses donnes Limitation possible de la visibilits des variables en utilisant le mcanisme des swimlanes

Claude Duvallet 110/110

LIFERAY

Vous aimerez peut-être aussi