J’ai assisté à la dernière conférence de Tom Baeyens, le project lead de jBPM, vendredi dernier au Riviera JUG.

L’objectif était d’avoir une présentation générale du produit.

La présentation très intéressante nous a exposé comment JBPM permet au monde marketing de discuter avec les développeur en mettant en place un graphique (diagramme d’état) éditable en ligne que le développeur importe dans son environnement de développement. Le principe est effectivement très séduisant.

Nous ne sommes cependant pas trop entrés dans les détails de l’implémentation de ces états. A chacun de se faire son idée en installant le produit. La démonstration enregistrée nous montre comment rapidement mettre en place un business process et comment cela fonctionne a travers les pages générées par le framework.

Les état des process sont persisté en BDD (de nombreux conecteurs sont disponibles).

Les règles ne sont pas déployables à chaud et il faut faire très attention lors de la modification d’un Business Process (en l’occurrence, la suppression d’un état peut s’avérer impossible)

La seule représentation disponible actuellement est le diagramme d’état (pas de tables de décisions).

JBPM peut s’intégrer facilement a un projet java en standalone.

Ayant un peu travaillé avec JRules, il semble que JBPM soit un peu moins complet, mais cependant semble bien plus simple à mettre en place et rapidement en plus (d’après le second interlocuteur ayant mis en place le produit dans son entreprise)

ref. jBPM 4.1 (démos vidéo)


Wireshark est un outils puissant qui permet de voir l’activité réseau. C’est un outil gratuit très complet sous licence GPLv2.

L’outil a l’inconvénient de son avantage, c’est un outil complet qui rends les choses simples difficiles pour un novice.

Voici donc comment simplement sniffer les request/response HTTP:

  • Premiere chose à faire: configurer le « Capture filter » dans les options

wsCaptureFilter

  • Aller dans « Edit/preference/Protocols/HTTP » et ajouter les ports que vous voulez sniffer dans « TCP Ports »
  • Lancer la capture (Start)
  • Configurer le « Display Filter » = http.response==True or http.request==True
  • Et voilà le résultat:

wsPackets


P6Spy est un outil open source qui permet d’intercepter les requette SQL passées via JDBC.

Ce framework utilise log4j pour tracer les requettes, donc ecrire au choix:
- dans un fichier texte
- une base de donnée
- ou une Socket qui va nou permettre avec Sql Profiler qui va nous permettre d’exploiter les requettes sous forme de graph.

Un outils vraiment pratique à découvrir sur le site.


Après avoir cherché des outils pour mesurer la qualité de l’implémentation d’un projet java, je suis tombé sur jdepend4eclipse qui permet de visualiser les dépendances inter-packages, ce qui est déjà intéressant (une petite explication ici ).

Depuis, je suis tombé sur CAP. qui s’intègre aussi à eclipse et qui parrait beaucoup plus complet. à voir…


Liferay Portal est un portail J2EE libre et gratuit assurant le respect de la JSR 168.

j’ai cependant noté quelques points négatifs:
- la demo fonctionne beaucoup mieux sous IE que sous Firefox (pb d’alignements, affichage plus lent)
- le compte utilisateur (screen, conf des portlets) est stockée sur le serveur > chaque modif = requette en BDD. il est possible que cela pose des problèmes lors de montée en charge.
- lifeRay n’est pas simple à mettre en place.
- De nombreuses questions qui restent en attente sur le forum
- j’ai fait planter la demo en ligne en modifiant mes user’s properties.

Un outil très intéressant mais qui manque un peu de maturité.


CVS(concurent version system) est largement utilisé sur les projets. mais saviez vous qu’il est possible d’ajouter dynamiquement des informations (auteur, version, date de derniere modif..) dans vos sources java, XML, etc.. ?

pour faire cela il suffit d’ajouter des mot clefs dans vos sources.

par exemple:

$Id$

ainsi, au moment du commit, CVS va se charger de compléter les informations dans le fichier:

$Id: MaClasse.java,v 1.4 2006/04/28 16:08:33 slever Exp $

plus de détails ici


Encore un produit free de Google qui nous offre cette foi un éditeur 3D gratuit.

Google nous permet de faire des recherche sur des modèles 3D qui sont ensuite intégrables dans GoogleEarth.

voici le résultat:


Voilà un plugin pour Eclipse qui va permettre d’uniformiser les logs de votre application.
ce plugin permet d’ajouter des logs à l’entrée/sorties de chaque méthode très simplement, avec un click droit sur la méthode ou sur la classe.

if (logger.isDebugEnabled()) {
logger.debug(« maMethode() – start »);
}

le plugin permet aussi de remplacer tous les system out du code par des écritures de logs.

voir ici


Voici un blog qui vous propose toute une panoplie d’icones designable via CSS. la technique est vieille comme le monde, ou presque…

à voir ici


Je travail depuis plusieurs mois avec JRules dans le cadre d’un projet SOA.
Il sagit de ma premiere avec un moteur de règle je ne pourais donc pas faire de comparaisons.

Comment fonctionne JRules ?

  • JRules est donc un moteur permettant de creer des règles en langage naturel. pour cela, l’editeur se base sur un BOM Business Object Model, qui est une décoration du modèle objet.
  • Ce BOM est de la responsablilité de l’équipe technique, il délimite la portée des objets qui seront utilisés lors de la rédactions des règles. la phase de conception de ce BOM est donc très importante.
  • Ilog propose plusieurs éditeurs pour générer les livrables (.irl) des règles.
  • Il est possible de déployer nos règles sur des repository distant via FTP.

JRules est il performant ?

  • JRules se base sur l’algorythme de rete, ce qui lui permet d’évaluer un minimum de règles.
  • Nous avons pu constater l’efficacité de cette méthode sur le projet, aucun problème de perfs lié à JRules.

Les points négatifs

  • les règles métiers peuvent parfois être difficiles à lire si le vocabulaire défini à part n’a pas été clairement défini.
  • l’éditeur lourd (JRulesBuilder) est parfois instable, je n’ai pas pu tester l’éditeur en ligne.
  • le debuger de règles est limité à partir du moment ou le model objet devient gros. Nous avons du développer des test unitaires externes su le projet.

voir aussi: jrules sur le blog d’aurelien