Page History

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Ce paragraphe définit les choix techniques pris après réflexions, tests, etc. Ces choix ont été fonction des technos, de leur efficacité par rapport aux besoins, de leur souplesse mais aussi de leur robustesse, de l'expérience de chacun, des habitudes et technos usités dans la communauté ESUP Portail, etc.

OsWorkflow

OSWorkflow est un produit OpenSource d'OpenSymphony.

OSWorkflow est une bonne solution de Workflow dans le monde de l'OpenSource. On constate qu'il est utilisé dans différents produits et qu'il est choisi par des projets +/- similaires à ORI.

Une de ses principales spécificités est de fonctionner de manière autonome. La servlet d'exemple fournie par défaut et qui tourne sans aucune configuration le montre bien, OSWorkflow peut fonctionner seul. Il est aisé de pluguer OSWorkflow à une application déjà existante. OSWorkflow peut ainsi être vu comme un composant réellement indépendant dans ORI-OAI-Workflow. La possibilité qu'il offre de le commander via de simples appels WEBService (SOAP) le prouve également.

OSWorkflow gère de manière autonome tout ce qui concerne le Workflow. Les Workflows (diagrammes états-transitions) se configurent via un fichier XML. Une Application Graphique Java peut permettre de créer/modifier des Workflows (attention : cela reste cependant avant tout expérimental). Les Workflows peuvent être relativement complexes. Ils permettent d'appeller des scripts Java BeanShells lors d'une transition (ou mieux encore des méthodes définies dans des "beans spring", et c'est ce qui nous intéresse ici), de faire des splits/joins, de mettre des conditions de tous types sur des transitions (par exemple des conditions sur l'appartenance d'un utilisateur à un rôle), de définir des permissions en fonction des états, etc.

Indépendant, OSWorkflow peut s'utiliser avec sa propre base de données (en tout cas, il gère ses propres tables). L'édition des workflows se fait de manière indépendante du reste de l'application, en éditant le fichier XML OSWorkflow avec un simple éditeur texte. L'indépendance de OsWorkflow ne gêne pas son intégration complète dans le module ORI-OAI-Workflow : on utilise OsWorkflow conjointement à spring, ce qui permet d'utiliser des méthodes spécifiques au module ORI-OAI-Workflow en tant que fonctions et conditions dans des workflows OsWorkflow. Aussi les possibilités du module ORI-OAI-Workflow en matière de conditions ou de fonctions à appeler lors de transitions sont facilement extensibles et cela fait partie des gros points forts de ce module.

http://www.opensymphony.com/osworkflow

...

Framework de mapping objet-relationnel (MySql)
http://www.hibernate.org/
http://www-fr.mysql.com/

Acegi Security

Acegi Security est la solution en terme de sécurité intégrée dans une application Spring.

Acegi Security est un produit complexe qui couvre un grand nombre d'aspects autour de la sécurité : "authentication " + "authorisation". Il permet surtout de sécuriser en fonction des rôles de l'utilisateur les appels à des méthodes, les urls.

ORI-OAI-Workflow utilise Acegi Security pour :

Pour sécuriser l'application
  • la gestion de l'authentification.,
  • la gestion de RBAC (Role Based Access Control) qui est le Design Pattern décrivant le fait que l'on assigne les permissions à des rôles et non directement aux "Principals" (~ Groupes et Utilisateurs), cf la
  • et donc la gestion des autorisations.
    Ainsi Acegi a été utilisé comme base pour implémenter une solution de RBAC.

XFire

Pour la communication entre Spring et Orbeon OPS, ainsi que la communication inter-modules
http://xfire.codehaus.org

...