# Logiciels > Solutions d'entreprise > BPM >  [Open-Source][GWT]OsBPM - Gestionnaire de processus

## pedouille

Bonjour,

Je souhaite prsenter le projet Open Source sur lequel je travaille depuis quelques mois.

Il s'agit d'un gestionnaire de processus (BPM) bas sur GWT ct client, Java/Tomcat ct serveur et MySQL pour la persistence.

Pour commencer, quelques screenshots :
Cration d'un ticket
Excuter une action
Rsultats d'une requte

Le principe de ce BPM est de dfinir le processus de gestion  travers la structure de la base de donnes, afin de simplifier la rdaction des requtes, et de s'affranchir de la cration d'une syntaxe complexe autour de la dfinition du schma. Vous trouverez plus d'info sur le fonctionnement du projet sur http://osbpm.axeiya.com.

A l'heure actuelle, ce projet n'est absolument pas abouti, et inutilisable. J'ai cependant dfini un processus de base permettant de tester les quelques concepts implments (je n'ai mme pas encore dfini de numro de version) disponible sur le site (http://osbpm.axeiya.com/?/Example-de...ts-and-defects)

Il n'y a pas non plus de roadmap actuellement ; je souhaite implmenter de nombreux concepts :
 - Notification par email lors des actions paramtrable
 - Rappel de notification paramtrable (nouvelle notification une heure aprs, un jour aprs, etc...)
 - Cration de requtes personnalises  partir d'un diteur de requtes pour chaque utilisateur
 - Cration de rapports graphiques simples (2 axes) bass sur les rsultats d'une requte
 - Gestion de l'historique complet de chaque ticket.

Par ailleurs, les fonctionnalits disponibles (partiellement implmentes) :
 - Gestion des champs (textes, chaine de caractre et combobox seulement)
 - Gestion des tickets
 - Gestion des requtes gnrales (rdaction en SQL seulement)
 - Gestion des contraintes Action->Champ : champ obligatoire, valeur obligatoire lors de l'excution d'une action (comparaisons textuelles seulement)
 - Pices jointes

Je serais ravi d'avoir des avis sur ce logiciel, principalement sur son interface utilisateur, qui est la partie la plus aboutie du projet, mais aussi sur les concepts implments ou  implmenter, et ventuellement sur une roadmap pertinentes (quels sont les besoins fondamentaux d'un tel logiciel ?).

Accs direct  la dmo :
http://osbpm.axeiya.com/WebUI/WebUI.html
Utilisateur : demo
Mot de passe : demo
Base de donnes : osbpm

(Il faut parfois insister pour arriver  se connecter, le temps que Tomcat rengocie la connexion avec MySQL ; il faut absolument que je songe  rgler ce pb :p )

Merci.

----------


## rlegall

Bonjour pedouille,

c'est pas mal pour un dbut  :;):  Du coup j'ai quelques questions  propos de ton projet:

1) Comment prvois tu la dfinition des processus ?
2) L'interface graphique sera t elle gnre automatiquement  partir de la dfinition du processus ou faudra t il dfinir une interface en GWT pour chaque formulaire?
3) Ce projet est il soutenu par une socit? Si oui laquelle ?

Bon courage  toi et merci d'avance pour tes rponses.

-- 
Rodrigue

----------


## pedouille

Bonsoir,

Merci pour ce retour  ::): .

1) La dfinition des processus se fait uniquement dans la base de donnes MySQL, sous diffrents formes.
Les champs d'un enregistrement correspondent aux champs de la table dans la base de donnes (mapping entre les types MySQL et les widgets dans le formulaire avec  terme, la possibilit de forcer les widgets).
Les tats d'un enregistrement sont galement dfini dans la structure de la base, par un type MySQL ENUM.
Les actions et les contraintes sont dfinies par des lignes dans des tables "systmes" lies  l'enregistrement.
Enfin, les relations unaires (jointures) sont dfinies dans les commentaires d'un champ de l'enregistrement.

Un exemple, implmente dans la dmo :

Enregistrement "Defect" :


```

```

Tout les champs de cette table seront repris pour alimenter le formulaire d'un Defect. Les champs Id et State sont obligatoires pour tout les enregistrements, et ils ne sont pas modifiables directement (Id renseign automatiquement et State modifi par les actions sur l'enregistrement).
Petite subtilit pour le champ "Target Component" : Le commentaire dfini la rgle


```

```

qui dfini un RELation unaire (UNIQUE) vers un enregistrement de type Component, en affichant (SHOW) le champ "Name" du composant dans le widget sur le formulaire.

Actions sur Defect :
Les actions sont des tuples de la table "transition_defect" (le nom de la table est de la forme transition_[recordName]). Sa structure est, quant  elle, fixe, et les tuples de cette table dfinissent les actions :


```

```

Le principe de fonctionnement sera le mme pour les droits des utilisateurs (ou groupes) sur les actions et les notifications/rappels

Enfin, la dfinition des contraintes se fait dans une table de structure fixe, dont les tuples formalisent les contraintes.

Contraintes sur Version :


```

```

La contrainte dfinie ici oblige le champ "Name"  tre renseign "mandatoryField" lors de l'action "create" ; si la contrainte n'est pas respecte, le message d'erreur "The name is mandatory" est remont  l'utilisateur.

2)L'interface graphique est en effet gnre automatiquement  partir des structures et des rgles voques ci-dessus. Il n'y a aucun code Java ou autre  fournir.

3)Le projet est soutenu par ma socit (Axeiya).

Merci pour tes questions, j'espre que mes explications sont claires.

----------


## toomsounet

Je ne peux pas juger ton application mais je trouve l'initiative trs bonne !

J'aime bien l'utilisation de GWT.

Pourquoi ne pas utiliser une brique bpm open source comme jbpm?

----------


## pedouille

Merci ! En fait, j'ai souvent besoin de grer des processus, mme simples. Comme je voulais me former  GWT, j'ai commenc  travailler sur un moteur de workflow en Java, et son interface graphique ct client en GWT.

Je n'ai pas utilis de brique Open Source car je n'ai jamais cherch  savoir si ce genre d'outils existaient dj en Open Source, et que je voulais implmenter le logiciel de A  Z ; a a aussi et surtout un intrt didactique pour moi.

J'aimerai ajouter quelques fonctionnalits que j'ai oubli de prciser dans le premier post :

- Accs total en webservices au moteur
- Gestion des droits d'utilisateurs et groupes par action (un utilisateur ou groupe a-t-il le droit d'excuter une action sur un enregistrement ?)
- Gestion des relations n-aires (seul les relations unaires sont implmentes actuellement)

----------


## rlegall

Salut,

je rejoins l'ide de toomsounet. L'utilisation d'une brique open source pour ton moteur est une bonne ide. La raison est assez simple: le dveloppement d'un moteur de processus est quelque chose de trs spcifique, complexe et long. Si ton intrt se situe plus dans l'interface graphique via la technologie GWT, tu gagneras du temps et ton projet de la crdibilit en te basant sur une technologie prouve.

Au niveau des moteurs de processus open source, perso je vais prcher pour ma paroisse: Bonita est un moteur qui pourrait te sduire. De plus la dernire version a t entirement redveloppe et est base sur une technologie dveloppe conjointement entre les quipes du projet Bonita et celle de JBPM.
Pour plus d'info: http://bonita.ow2.org

Courage pour la suitede ton projet

-- 
Rodrigue

----------


## pedouille

Salut,

Comme tout projet Open Source, mon intrt se situe surtout dans l'auto-formation.
S'il est vrai que dvelopper une interface graphique riche avec GWT est quelque chose d'important pour moi, dvelopper le moteur, si imparfait soit-il, l'est aussi.

De plus, je souhaite proposer un outil rapide  dployer (un war sur un serveur tomcat au plus et ventuellement la lib extJS  ajouter dans un dossier, question de licence...) afin d'viter les complexits de dploiement  n tiers, avec des contraintes sur les versions etc...

Cependant, je pense intgrer  terme un outil d'import/export de schmas XPDL, afin d'tre compatible avec les normes du domaine...

Un petit UP du projet :

J'ai ajout une premire bauche du systme de notification. 
On peut dcrire, pour chaque action sur un ticket, un email  alerter (soit en absolu, soit un email contenu dans un champ du ticket).
Je mettrai  jour le site ds que possible, et probablement traduire en franais tout la doc "fonctionnelle" du projet. (La javadoc restera en anglais).

----------


## pedouille

Bonjour,

J'ai au final choisi d'hberger le projet en partie sur Google Code : http://code.google.com/p/osbpm/
Et crer une mailing liste en prvision des questions (lorsqu'une version "prsentable" sera propose) : http://groups.google.com/group/osbpm

Pour les news, je suis pass  SmartGWT ct client, GWT-Ext tant abandonn.

----------


## pedouille

Bonjour,

Quelques nouvelles sur OsBPM ; nous avons commenc la ralisation d'un diteur de requte, qui permet de slectionner les donnes, leur affichage, gre les jointure, et permet l'criture de la clause WHERE

Dmo : http://osbpm.axeiya.com/demo/
Utilisateur : demo
mot de passe : demo
Base de donnes : osbpm

Pour crer une nouvelle requte : General -> New Query

Pour faire une requete simple montrant les jointures : Slectionner la table "enhancement". Dans cette table, slectionner quelques champs (id, status, summary).
Slectionner ensuite "Target Component" ; lors de la slection de ce champ, l'diteur fait automatiquement la jointure sur la table component, et slectionne son champ "name".
Dans le tableau, vous pouvez slectionner les champs  afficher  l'aide de la clause "SELECT" ; vous pouvez changer l'ordre des champs avec un drag n drop.
Vous pouvez galement diter la clause where  l'aide de l'diteur au dessus du tableau.

Lorsque c'est fait, cliquer sur "generate query" ; le code SQL de la requete est dit ; enfin, vous pouvez enregistrer la requete en cliquant sur "save query", et en lui donnant un nom. Vous la verrez apparatre dans la liste des requetes "General".

Sinon, il y a eu quelques corrections de bugs, et du reformatage du code (qui est loin d'tre fini).

Bonne journe

----------


## Titi41

Bonjour,

Je prends la suite des nouvelles sur OsBPM.
Je me prsente rapidement : Je suis tudiant  l'UTC (4me anne) et j'ai effectu durant le 2me semestre 2009 un stage de 6 mois dans l'entreprise Axeiya. J'ai alors travaill sur le projet OsBPM.

Aujourd'hui, je continue  travailler dessus.
Quelques modifications ont t apportes au projet. Nous avons appliqu un pattern MVC. La documentation du code et du MVC a galement progress. Elle n'est cependant pas termine. Elle est consultable sur le site google code du projet : http://code.google.com/p/osbpm/
J'ai galement dmarr la gestion des bugs et des exigences grce aux outils de google code.

D'un point de vue fonctionnel, nous prenons en compte de nouveaux types de donnes (des listes d'lments existant dj dans le BPM, des tests et suite de tests fonctionnels).
Les tests fonctionnels ne semblent pas fonctionner sur la dmo. Cependant, vous pouvez tlcharger le code source et compiler sur votre propre machine. L'excution des tests fonctionnels ncessite l'application Slnium RC (http://seleniumhq.org/projects/remote-control/). Encore une fois, un tutoriel viendra complter la documentation.

Bonne soire
Romain

----------

