cancel
Showing results for 
Search instead for 
Did you mean: 

WCM : le processus de publication

nico73_6606
Champ in-the-making
Champ in-the-making
Bonjour,

Je travaille actuellement dans une société où une plateforme de WCM a été mise en place avec un outil différent d'Alfresco. Un des inconvénients de cet outil est qu'il ne gère pas réellement de transaction pour son processus de publication des contenus vers les différents sites ciblés.

Par processus de publication, j'entends (en résumé) l'extraction du référentiel des contenus et leur envoi vers les différents serveurs cibles qui accueillent les sites Web (ou d'autres types d'applications utilisant les contenus stockés dans le référentiel).

Plus précisément, l'outil utilisé dans cette société est incapable d'annuler une publication en cours si le processus a échoué sur l'un des serveurs cibles. Dans ces cas là, les différents serveurs cibles ne sont pas dans un même état et cela peut poser problème :!:

J'ai cru comprendre qu'Alfresco disposait de cette fonctionnalité intéressante. Je connais encore très mal Alfresco WCM. Quelqu'un pourrait me le confirmer ? Est ce qu'Alfresco, de base, gère aussi la publication des propriétés des contenus (dans une base de données) ?

Plus généralement, afin de solutionner ce problème sans changer (malheureusement) d'outil, nous réfléchissons à utiliser une solution matérielle afin de gérer la publication multi-cibles.  :idea: Une des idées proposéesest de publier  sur un seul serveur (qui peut d'ailleurs être le même que celui hébergeant le référentiel) et dans une base de données Oracle RAC et sur un système de fichiers en GPFS. Ainsi les différents serveurs cibles peuvent accéder directement aux contenus (fichiers et propriétés). Cela revient en résumé à passer d'un mode "push" à un mode "pull".

L'avantage de cette solution serait donc de ne pas avoir à gérer les problématiques de la publication vers différentes cibles.

Les inconvénients sont éventuellement le coût de ce type de système, les problématiques réseaux (les serveurs cibles doivent pouvoir accéder au serveur Oracle RAC et au GPFS).

Je crains que cette solution finalement assez simple ne soit en fait simpliste. Est ce que les modules de publication intégrés aux outils de WCM ne proposent pas d'autres fonctionnalités ? Est ce que la solution envisagée à terme ne risque pas de s'avérer trop rigide :?: 

Je n'ai pas beaucoup d'expérience sur les problématiques WCM. Si certains d'entre vous peuvent m'éclairer sur ce point là, je leur en serais reconnaissant Smiley Happy Et pourquoi me montrer qu'Alfresco WCM serait la solution révée… Cela me donnerait de bons arguments pour (enfin) réussir à le faire entrer dans la société où je suis actuellement!
5 REPLIES 5

michaelh
Champ on-the-rise
Champ on-the-rise
Plus précisément, l'outil utilisé dans cette société est incapable d'annuler une publication en cours si le processus a échoué sur l'un des serveurs cibles. Dans ces cas là, les différents serveurs cibles ne sont pas dans un même état et cela peut poser problème :!:

J'ai cru comprendre qu'Alfresco disposait de cette fonctionnalité intéressante. Je connais encore très mal Alfresco WCM. Quelqu'un pourrait me le confirmer ? Est ce qu'Alfresco, de base, gère aussi la publication des propriétés des contenus (dans une base de données) ?
La réponse se trouve ici : http://wiki.alfresco.com/wiki/WCM_Deployment_Features
La transaction n'est pas globale mais par serveur.
Par contre on a la possibilité de visualiser les différents états, et relancer/annuler un déploiement sur une ou n machine(s).

Si par publication depuis une base vous entendez "générer des pages statiques à partir de la base", ce n'est pas le but de WCM.
Si c'est accéder à des bases depuis le frontal web, la réponse est oui (en fait ce n'est pas le travail d'Alfresco, mais c'est possible en fonction du langage utilisé sur le site).

Plus généralement, afin de solutionner ce problème sans changer (malheureusement) d'outil, nous réfléchissons à utiliser une solution matérielle afin de gérer la publication multi-cibles.
Une solution matérielle ?

:idea: Une des idées proposées est de publier  sur un seul serveur (qui peut d'ailleurs être le même que celui hébergeant le référentiel) et dans une base de données Oracle RAC et sur un système de fichiers en GPFS. Ainsi les différents serveurs cibles peuvent accéder directement aux contenus (fichiers et propriétés). Cela revient en résumé à passer d'un mode "push" à un mode "pull".
Un retour aux grands classiques si je comprends bien, mais je ne suis pas certain de bien comprendre les tenants et aboutissants en même temps …  :?

nico73_6606
Champ in-the-making
Champ in-the-making
Merci pour cette 1ère réponse.

La transaction n'est pas globale mais par serveur.
Par contre on a la possibilité de visualiser les différents états, et relancer/annuler un déploiement sur une ou n machine(s).

J'avoue être un peu déçu sur ce point. Je n'avais pas fait attention que la transaction n'est pas globale. Est ce que c'est une fonctionnalité envisagée à l'avenir ? Finalement si on peut gérer une transaction d'un point de vue d'un serveur, cela doit pouvoir se faire sur x serveurs. Non ? En tous cas le suivi des publications et de leurs historiques semblent très clairs!

Si par publication depuis une base vous entendez "générer des pages statiques à partir de la base", ce n'est pas le but de WCM.
Si c'est accéder à des bases depuis le frontal web, la réponse est oui (en fait ce n'est pas le travail d'Alfresco, mais c'est possible en fonction du langage utilisé sur le site).

Je ne sais pas si j'ai une bonne définition du WCM. Je manque surement d'expérience sur ce sujet… La plateforme WCM sur laquelle je travaille aujourd'hui est utilisée pour éditer facilement du contenu par des informaticiens (ou non informaticiens), transformer ce contenu (en XML par exemple, voire en JSP baah!) et pousser ensuite ce contenu vers des serveurs de front (dans certains cas plus simples, on pousse aussi seulement des PDF stockés dans le référentiel)… Les contenus sont publiés (poussés) dans un FS sur les serveurs front cibles. Suivant le projet, les contenus publiés sont accompagnés de leurs propriétés. Celles-ci sont insérées dans une base de données sur les serveurs front cibles. Toujours suivant le projet, le serveur cible peut héberger une simple application liée au métier de ma société ou un serveur d'application. Dans ce second cas, les contenus publiés sont intégrés dans une application Web (J2EE dans notre cas).

Une solution matérielle ?

:idea: Une des idées proposées est de publier sur un seul serveur (qui peut d'ailleurs être le même que celui hébergeant le référentiel) et dans une base de données Oracle RAC et sur un système de fichiers en GPFS. Ainsi les différents serveurs cibles peuvent accéder directement aux contenus (fichiers et propriétés). Cela revient en résumé à passer d'un mode "push" à un mode "pull".

Un retour aux grands classiques si je comprends bien, mais je ne suis pas certain de bien comprendre les tenants et aboutissants en même temps … :?

L'idée est de publier en fait vers un seul endroit : le système de fichiers GPFS (même idée si on veut publier des propriétés vers une base de données Oracle RAC). Celui-ci est accessible par tout les serveurs front cible. Cela permettrait d'éviter le problème de la cohérence des contenus publiés sur les différentes cibles.

Mais j'ai peur qu'en utilisant une solution matérielle de la sorte, on se prive des solutions apportées par les outils de publication.

Qu'apportent les "deployment servers" ASR et FSR ?

michaelh
Champ on-the-rise
Champ on-the-rise
La transaction n'est pas globale mais par serveur.
Par contre on a la possibilité de visualiser les différents états, et relancer/annuler un déploiement sur une ou n machine(s).
J'avoue être un peu déçu sur ce point. Je n'avais pas fait attention que la transaction n'est pas globale. Est ce que c'est une fonctionnalité envisagée à l'avenir ? Finalement si on peut gérer une transaction d'un point de vue d'un serveur, cela doit pouvoir se faire sur x serveurs. Non ? En tous cas le suivi des publications et de leurs historiques semblent très clairs!
Dans l'absolu on peut en effet, mais ça pose des problèmes d'un autre genre, parce que sur un gros parc de serveurs frontaux (il y a des utilisateurs de WCM avec plusieurs dizaines de serveurs sur lesquels déployer) on se retrouve avec un risque de ne jamais pouvoir finaliser la transaction globale …
Je ne sais pas si j'ai une bonne définition du WCM. Je manque surement d'expérience sur ce sujet… La plateforme WCM sur laquelle je travaille aujourd'hui est utilisée pour éditer facilement du contenu par des informaticiens (ou non informaticiens), transformer ce contenu (en XML par exemple, voire en JSP baah!) et pousser ensuite ce contenu vers des serveurs de front (dans certains cas plus simples, on pousse aussi seulement des PDF stockés dans le référentiel)… Les contenus sont publiés (poussés) dans un FS sur les serveurs front cibles. Suivant le projet, les contenus publiés sont accompagnés de leurs propriétés. Celles-ci sont insérées dans une base de données sur les serveurs front cibles. Toujours suivant le projet, le serveur cible peut héberger une simple application liée au métier de ma société ou un serveur d'application. Dans ce second cas, les contenus publiés sont intégrés dans une application Web (J2EE dans notre cas).
C'est un résumé des fonctionnalités de WCM ça Smiley Happy
L'idée est de publier en fait vers un seul endroit : le système de fichiers GPFS (même idée si on veut publier des propriétés vers une base de données Oracle RAC). Celui-ci est accessible par tout les serveurs front cible. Cela permettrait d'éviter le problème de la cohérence des contenus publiés sur les différentes cibles.
C'est une approche.
Dans un projet WCM l'architecture a un rôle prépondérant, et chacune apporte sa part d'avantages, et d'inconvénients (j'enfonce des portes ouvertes). C'est une approche qui n'a rien de délirant dans un contexte donné, après donner un avis sur ce contexte …
Qu'apportent les "deployment servers" ASR et FSR ?
L'un est un mode de déploiement vers une instance (un runtime plus exactement) Alfresco. On pousse le contenu et la base de données.
Le second est un mode de déploiement vers un système de fichier. On pousse le rendu et les fichiers XML.
Deux méthodes pour des besoins différents donc (le wiki donne plus d'infos)

nico73_6606
Champ in-the-making
Champ in-the-making
Dans l'absolu on peut en effet, mais ça pose des problèmes d'un autre genre, parce que sur un gros parc de serveurs frontaux (il y a des utilisateurs de WCM avec plusieurs dizaines de serveurs sur lesquels déployer) on se retrouve avec un risque de ne jamais pouvoir finaliser la transaction globale …

Dans ce cas là, peut être qu'un système de quorum pourrait faire l'affaire.

Qu'apportent les "deployment servers" ASR et FSR ?
L'un est un mode de déploiement vers une instance (un runtime plus exactement) Alfresco.
Le second est un mode de déploiement vers un système de fichier.
Deux méthodes pour des besoins différents donc (le wiki donne plus d'infos).

Merci pour cette précision, je n'avais pas percuté que ASR permettait seulement de déployer vers un runtime Alfresco.

Pour conclure cette discussion, je viens d'avoir une présentation du protocole GPFS. Et bien entendu, ce n'est pas la solution miracle… Par exemple, hors le problème du coût, cette solution nécessite une infrastructure réseau assez lourde (un SAN entre les différents noeuds du cluster).

En tous cas, merci de t'être intéressé à mon problème! Je vais essayer de trainer un responsable de ma société au petit déjeuner du 8 octobre prochain sur WCM!

michaelh
Champ on-the-rise
Champ on-the-rise
Dans ce cas là, peut être qu'un système de quorum pourrait faire l'affaire.
Oui, à condition de le mettre en place Smiley Wink
Pour conclure cette discussion, je viens d'avoir une présentation du protocole GPFS. Et bien entendu, ce n'est pas la solution miracle… Par exemple, hors le problème du coût, cette solution nécessite une infrastructure réseau assez lourde (un SAN entre les différents noeuds du cluster).
Je connais un peu GPFS et … comment dire … ça me semble être l'utilisation d'artillerie lourde pour tuer une mouche …