mardi 30 juin 2009

Netbeans IDE 6.7 est là : sans la prise en charge de JavaFX, ni JBPM

Quelques jours après le release de son rival directe Galileo, voilà que NetBeans est lui même disponible pour le téléchargent

clip_image001

Les technologies supportées par cette version de NetBeans

Java SE et Java Web et EE

En plus des outils de production de code source en Java ( un éditeur, un débogueur, le refactoring), et Java EE, se trouve le profiler : c’est l’outil le plus précieux à mon avis.

Ce profiler est le seul lien que j’ai avec NetBeans depuis des années.

Cette nouvelle version est compatiblesavec les spécifications J2EE 1.4 et Java EE 5. Elle Inclut le support des servlets, des JSPs, des tag libs, de Spring, de Struts, de (JPA) Java Persistence API, des Enterprise Java Beans, de JAX-WS et des services web RESTful ainsi que de Java Server Faces. Fournit un environnement visuel pour le développement d'applications par glisser-déposer.

Java ME

Un ensemble complet d'outils pour créer des applications Java Micro Edition pour téléphones mobiles et autres appareils portables. Inclut un outil de conception visuel, un assistant de connexion à des services web et des outils pour gérer les problèmes de fragmentation sur ces appareils.

Il faut noter que cette version confirme la tendance du monde java vers les langages dynamique et propose des outils pour Ruby, JRyby et Groovy

NetBeans propose un ensemble complet d'outils pour créer des applications ruby et Ruby on Rails. Il comprend un interpréteur JRuby, le framework Ruby on Rails, un éditeur, un débogueur, un gem manager et un shell interactif Ruby. Il supporte la création, la modification et l'exécution d'applications Ruby on Rails en toute facilité.

Il fournit, aussi, le support du langage Groovy et du framework Grails.

C/C++ ne sont pas oubliés :

NetBeans propose des outils pour le développement d'applications en C et C++ .

Attirer la communauté PHP (ça été fait avant Eclipse)

NetBeans propose des outils pour le développement d'applications PHP, comprenant un éditeur et un débogueur PHP, la gestion de projets, l'intégration avec le serveur Apache, le support de MySQL et d'autres bases de données, le chargement et le téléchargement avec FTP, le support de JavaScript et bien d'autres fonctionnalités encore.

La version 6.7 de NetBeans inclus les Serveurs suivants :

Sun GlassFish Enterprise Server v2.1

Sun GlassFish Enterprise Server v2.1 est un serveur compatible avec la plate-forme Jave EE 5 pour le développement et le déploiement à grande échelle d'applications Java EE et de services web basés sur la technologie Java

Sun GlassFish Enterprise Server v3 Prelude

Sun GlassFish Enterprise Server v3 Prelude est une offre avec support commercial autour de GlassFish v3 Prelude.

Apache Tomcat 6.0.18

Conteneur web open-source supportant les spécifications Java Servlet et JSP.

JavaFX JavaFX disponible seulement pour NetBeans 6.5.1

D’autre part, NetBeans reste focalisé sur l’IDE et n’a pas pris le chemin de l’ALM

Mais ceci est aune autre question

NB : voilà ce qu’on trouve sur le site de SUN

Supported Technologies

Ajax C/C++ Databases Debugger Desktop Editor Groovy GUI Builder Hudson Java EE JavaFX Java ME Java SE JavaScript Kenai Maven Mobile PHP Profiler Python Refactor REST Rich Client Platform Ruby SOAP Web

NB : autres sujets

Eclipse & l’ALM pour quand ?: Eclipse lance sa distribution de 33 plugins et en attendant l’ère de l’ALM

lundi 29 juin 2009

Achat de SUN par Oracle & La position de Sun dans l'Open Source : qu’est qui va rester ?

En pensant à SUN, qui se définit comme le plus grand contribuer à l’open source, une question me vient à l’esprit : qu’est qui va rester de cette contribution ?

rappelons que l'achat n'est pas encore validé par les autorités américaines, à ce jour ...


Mysql

clip_image002

Java (Hotspot)

clip_image004

glassfish

clip_image006

Sun xVM

VirtualBox : un concurrent de VMware, permet de simuler des ordinateurs virtuels, pour ensuite installer des systèmes d'exploitation invités.

clip_image008


clip_image010

OpenSolaris

clip_image012

lustre : Lustre est un gestionnaire de fichiers distribués pour les supercalculateurs en cluster ou massivement parallèle.

clip_image014

openDS : un serveur d'annuaire conforme au standard LDAPv3 et supporte la plus part des extensions et schemas LDAP standard et expérimentaux, assurant ainsi une meilleure interopérabilité avec les applications clientes.

clip_image016

Openoffice (startOffice)

clip_image018

Solaris

clip_image020

ZFS (a new File System)

clip_image022

NetBeans

clip_image024

Sun MDM

clip_image026

La question est qu’est ce que la communauté pourra développer sans SUN

La virtualisation, pas possible : Oracle cherche une position dominante dans ce domaine …

MySQL possible

Java c’est sûre

Et les autres …

Heureusement que des produits tel que Spring, JBPM, Hibernate ne dépendent pas de SUN …

Mais ceci est un autre sujet

samedi 27 juin 2009

Eclipse & l’ALM pour quand ?: Eclipse lance sa distribution de 33 plugins et en attendant l’ère de l’ALM

Eclipse Galileo c'est 33 projets qui collaborent depuis un an pour livrer leurs versions majeures de manière simultanée. La version 3.5 d’Eclipse c’est aussi 24 millions de lignes de code, de plus, par rapport à l'année dernière.

Galileo couvre ainsi de nombreux domaines qui vont, de java, à l'embarqué, aux applications web JEE, C et PHP, le reporting", la modélisation, la gestion des données.

Voilà ce qu’il faut retenir de ce super effort collectif soutenu par les grands de l’industrie Java.

clip_image001

Mais, Eclipse, avec son système de plugin et son focus sur les développeurs, risque de perdre le pas, face à un Visual Studio toujours plus envahissant avec son VSTFS 2010.

Visual Studio Team Foundation Server 2010 gère le cycle de vie d’une application en un seul endroit ce qui le rapproche de plus en plus de l’ALM (Application Life cycle Management).

Notons que VSTFS propose déjà une version « Teamprise for Eclipse » et s’intègre avec ANT et CruisControl, il ne lui reste qu’une proposition d’un IDE Java !!

IBM avec son Jazz essaye de suivre la tendance du marché, mais nous restons encore sur notre faim.

Il faut rappeler que, « feu Borland » a compris il y a longtemps (mais un peu en retard) qu’il n’est plus possible de résister et de gagner de l’argent en vendant uniquement des outils de création de code source (IDE).

L’avènement de l’ALM dans le software était inéluctable.

Il a basculé JBuilder vers une application basée sur Eclipse et il a filialisé ses outils de développement dans Codegear qui a été reprise par Embarcadero. Puis il s'est recentré sur les outils de gestion du cycle de vie applicatif,

Mais, Borland n’est plus là pour témoigner : il a été acheté il y a à peine un mois (source le monde informatique) par Micro Focus pour environ 75 M$.

Pour Eclipse, Proposer une distribution annuelle (Galileo juin 2009, Ganymede juin 2008 , Europa juin 2007, Callisto juin 2006) était « la » bonne solution à l’époque, il y a quelques années, afin de limiter les dégâts causés par l’incompatibilité des plugins …

Mais, en attendant la nouvelle version e4, ou la version 3.6 dite Helios, et malgré, la disparition supposée de son rivale (le NetBeans de SUN) n’a aucune chance de rester dans la course s’il ne propose pas une solution ALM.

Espérons que Les prochaines versions seront la release d’un vrai ALM et non plus un simple outil de création de code.

Une solution ALM, devra être viable et intégrer la gestion des tests logiciels, de l’assurance qualité, de la collaboration, des tableaux bord, de la gestion de projet …. Bref, traiter à pied d’égalité tous les acteurs d’un projet informatique, sans privilégier « la caste des développeurs » …

Mais ceci est un autre sujet

vendredi 26 juin 2009

Est-ce que vous voulez connaitre ce que fait votre application coté base de données : employer un espion (open source)

Vous faites partie d’une équipe TMA ?

Vous avez hérité d’une application, suite au départ de votre collègue vers d’autres fonctions ?

Vous cherchez à cerner connaitre les requêtes lancés par JBPM ou Quartz, …

Et vous cherchez à cerner les causes de mauvais fonctionnement de votre application

La réponse est simple :

Utiliser un « mouchard » pour découvrir les requêtes SQL lancées par l’application vers la base de données.

L’installation est très simple

1) télécharge p6spy.jar ( le jar date de 2003, depuis il n’a pas évolué)

http://www.p6spy.com/survey.html

2) le fichier p6spy.jar doit être ajouté dans le classpath de l’application : pour une application Tomcat cela revient à mettre dans /web-inf/lib

3) Le fichier spy.properties doit être mis dans le même endroit que p6spy.jar.

a. dans la configuration de JDBC driver de l’application

i. changer le nom de driver réele par celui de p6spy.jar com.p6spy.engine.spy.P6SpyDriver

ii. mettre le « vraie » driver dans ce fichier realdriver=org.postgresql.Driver

Exemple avec JDBC Template de Spring

<bean id="dataSource"

class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName">

<value>com.p6spy.engine.spy.P6SpyDriver</value>

</property>

<property name="url">

<value>jdbc:postgresql://localhost/jsf</value>

</property>

<property name="username">

<value>jsf</value>

</property>

<!-- Make sure <value> tags are on same line - if they're not,

authentication will fail -->

<property name="password">

<value>password</value>

</property>

</bean>

Le résultat est immédiat

Lancer l’application

Un fichier spy.log sera crée dans le répertoire de base de l’application

Le log est de type

current time|execution time|category|statement SQL String|effective SQL string

1245846292012|15|0|statement||

select count(*) from client

1245846292012|-1||resultset|

select count(*) from client

|count = 0

1245846292090|0|1|statement||select label from article where id=1

1245846292090|-1||resultset|select label from article where id=1 |label = 1

1245846292168|0|2|statement||select * from client

Nous avons même le temps d’exécution en ms, ce qui permettra d’évaluer les temps de réponse …

Mais ceci est une autre histoire

Log File Format

The log file format of spy.log follows:

current time|execution time|category|statement SQL String|effective SQL string

  • current time—The current time is obtained through System.getCurrentTimeMillis() and represents the number of milliseconds that have passed since January 1, 1970 00:00:00.000 GMT. (Refer to the J2SE documentation for further details on System.getCurrentTimeMillis().) To change the format, use the dateformat property described in Common Property File Settings.
  • execution time—The time it takes for a particular method to execute. (This is not the total cost for the SQL statement.) For example, a statement SELECT * FROM MYTABLE WHERE THISCOL = ? might be executed as a prepared statement, in which the .execute() function will be measured. This is recorded as the statement category. Further, as you call .next() on the ResultSet, each .next() call is recorded in the result category.
  • category—You can manage your log by including and excluding categories, which is described in Common Property File Settings.
  • statement SQL string—This is the SQL string passed to the statement object. If it is a prepared statement, it is the prepared statement that existed prior to the parameters being set. To see the complete statement, refer to effective SQL string.
  • effective SQL string—If you are not using a prepared statement, this contains no value. Otherwise, it fills in the values of the Prepared Statement so you can see the effective SQL statement that is passed to the database. Of course, the database still sees the prepared statement, but this string is a convenient way to see the actual values being sent to the database

mercredi 24 juin 2009

Créer des Web Services pour un environnement C et/ou C++ : c’est possible et c’est simple

Nous savons que les développeurs .Net possèdent des Web Services en Native dans le framework .Net. Ils peuvent utiliser Biztalk pour des développements plus avancés.

La communauté java est bien outillée :

· Des frameworks de base : Spring-WS, Axis 2, CXF

· Des annotations : @WebService, @WebResult…

· Des ESB (Mule, Service Mix, Fuse de Progress Software, …

· Des serveurs d’application …

Mais les développeurs C ?

On dénombre au moins 2 : gSOAP et cSOAP

Le Toolkit gSOAP est un environnement de développement pour les services de Web de C/C++. Il reste le SOAP1.1/1.2 et le WSDL1.1).

Dans tous les cas, C, .net ou java, faites Attention au bon choix :

Choisir les outils qui vous garantissent la livraison de Service Contract-First

et respecter le Basic Profile du WS-I

Le processus de développement est basé sur le fichier WSDL.

gSOAP génère à partir du WSDL, un ensemble de modules (stubs et skeleton) qui s'occuperont traduire les messages SOAP.

Les services sont alors utilisés directement par le programmeur.

gSOAP est même intégré à certaines distributions Linux.

Pour ceux qui cherchent absolument du c pur (les « prisonniers des 4GL »…): utiliser « -c » dans la ligne de commande

wsdl2h -c -o services.h http://ws.oxia-group.com/services.wsdl

Mais, avant d’exploiter ces moyens techniques pour exposer des services, il est important de découvrir les bons services, avec la bonne granularité

Mais, ceci est un autre sujet



____________________________

Licence : gSOAP http://gsoap2.sourceforge.net/

gSOAP is distributed under a choice of:

1. The gSOAP Public License 1.3 (which is based on the Mozilla public license 1.1). Components not covered by the gSOAP Public License are wsdl2h and its source code output, UDDI, and several sample applications, see note below.

2. Or GPL (GNU Public License, a common open-source software license).

Autre possibilité

cSOAP : http://csoap.sourceforge.net

csoap is a client/server SOAP library implemented in pure C. It comes with an embedded HTTP server called nanohttp. The transfered XML structures are handled by libxml2. csoap comes with the followin features:

- client/server HTTP engine

- Attachments via MIME

- https (SSL) with OpenSSL

samedi 20 juin 2009

En attendant l’ère industrielle : l’informatique restera encore un art à cause du manque de rigueur et l’absence de processus formellement identifié

En discutant avec mon fils, ce matin à la sortie du concours de 6ème, j’ai été sidéré ! Consterné et complètement furieux.

Pour ceux qui me connaissent, çà ne m’arrive pas souvent, une à deux fois par décennie.

Et j’ai fait tout de suite le lien avec le secteur informatique et le grand nombre de casseroles : 36% des projets abandonnées, 30% seulement atteignent leurs objectifs (si reste sympa).

Les faits :

Epreuve nationale de Calcul (pas encore des maths), 23 lignes pour 3 exercices, en tout.

3ieme exercice, on demande aux concourants, de 11 à 12 ans, de calculer la surface d’un rectangle dont la Longueur est les 2/3 de sa Largeur …

Sidérant

Faute de frappe va t on dire, chez les responsables ? J’espère qu’on ne mettra pas ça sur le dos OpenOffice ?

Manque de rigueur ! dis je!

J’ai tout de suite fait le parallèle avec une mission récente,

il y a quelques jours, on m’a demandé par email, un avis sur un problème de Log4j avec Tomcat, les fichiers de logs de 2 applications se télescopent.

Je vérifie que chaque application a embarqué son log4j.jar dans web-inf/lib,

 

Je demande, alors l’envoi des fichiers de config de Log4j par email.

Rien à dire : tout est parfait,

Déboussolé, je bloque une demi journée, je me déplace, j’investigue et c’est un problème de configuration : résolu en 2 minutes.

Constat : l’ingénieur en charge (2 ans d’expérience) m’a envoyé, par email, un autre fichier log4j.xml : celui de son projet Eclipse, et pas le fichier de production du serveur.

Le manque de rigueur de l’ingénieur (Personne) n’a pas été compensé par la rigueur de la procédure (Processus).

Il aurait fallu exiger une livraison formelle à chaque mise à jour.

Mais là, il n’utilise pas de build automatique (pas de Ant, pas de Maven2), ni d’intégration continu (pas de Continuum, ni de CruiseControl et même pas Hudson)….

Absence de procédure et Manque de rigueur,  dis je !

Rigueur qu’on se doit d’enseigner à nos enfants (futurs analystes, développeurs, chefs de projets et architecte, web master…).

Ma propre consolation, c’est que mon fils , m’a dit en souriant« papa, heureusement que ma maitresse faisait souvent ce type d’erreur, j’ai été habitué et cette fois ça m’a pas perturbé» et il a fait le bon calcul …

A ce stade, il faut s’arrêter et prendre la mesure de la situation.

La polémique est là, elle est réelle

Ça ne doit pas passer comme ça !

C’est de la l’avenir du secteur TIC …

Mais ceci est une autre histoire …

mercredi 17 juin 2009

Gagner de l’argent avec Twitter c’es possible : Dell dépasse 3 millions de dollars de ventes grâce à @DellOutlet

Le modèle économique de Twitter reste encore un mystère.

Les "analystes" se posent, encore, la question de la monétarisation du service « Comment ce site va faire de l’argent ? ».

Mais, voilà que Dell nous annonce avoir réalisé un CA de 3 millions de $ grâce à Twitter.

Delle utilise le compte @DellOutlet, pour faire de la communication exclusive sur les offres de matériels de récupération et les réductions .

Les offres postées par DELL sur @DellOutlet sont conçues exclusivement pour les abonnés de ce média de microblogging.

clip_image002

Au 17 juin 2009 @DellOutlet compte plus de 650.000 followers.

clip_image004

L’historique peut être consulté sur http://twittercounter.com/

clip_image005

(@DellOutlet has been a member of Twitter since May 01, 2007 and has Tweeted 534 times since then. @DellOutlet follows 23 people, tweets from For USA customers and has a homepage, website or blog at http://Dell.com/Outlet)

Le CA des trois millions de dollars a été atteint au bout de 2 ans avec une croissance rapide depuis les derniers mois.

La réussite @DellOutlet peut être expliquée par l’efficacité logistique de DELL, mais montre l’engoulement du publique au concept de microblogging : message court (moins de 140 caractères : plus petit qu’un SMS) qui se doit d’être claire et efficace.

Il est à noter que l’annonce de cette nouvelle se trouve aussi sur le site twtqpon, une application qui permet à un utilisateur de créer ses propres coupons sur Twitter et FaceBook.

clip_image007

Il sera intéressant de voir comment utiliser twitter de cette manière pour un opérateur de télécom (qui maitrise le canal SMS, ) ou une enseigne de grande distribution.

Même si ça ne génère pas de l’argent immédiatement, ça permettra d’occuper le terrain et faire du Buzz, grâce à ce canal en vogue.

.

Mais ceci est un autre sujet …

Information relayée aussi sur journaldunet.com, lemondeinformatique.fr et zdnet.fr

mardi 16 juin 2009

Un peu de monitoring Métier (BAM) avec JBPM et SeeWhy (event-driven business intelligence )

Objectif

Le Business Process Management (BPM) a pour but de maîtriser l'orchestration des processus métier de l'entrerpise.

Une de ses conséquences, d'une orientation BPM d'un SI, est la capacité de mettre en place un mécanisme de suivi de l'activité en temps réel. Le concept se dit de BAM (Business Activity Monitoring ou BI opérationnelle, par abus de langage). Cest la capacité à analyser des informations directement sur des données opérationnelles (des transactions, des messages …) en temps réel, dans interférences avec la base de données de stockage.

Dans la suite nous allons monter comment, mettre en place un système BAM simple en se basant sur JBPM (open source) et SeeWhy (version free).

JBPM

nous allons partir d'un exemple de processus déjà rencontré sur ce blog : voir Comment modéliser un processus métier avec JBPM : exemple “gestion des entretiens”)

Voir aussi, les liens suivants

Quelle est la différence entre JBPM et Intalio ?

Graph Oriented Programming (GOP) avec JBPM

L’outil SeeWhy

SeeWhy http://www.seewhy.com est une start-up (fondée en 2002) qui se décrit comme fournisseur de renseignements commerciaux pour un BI opérationnelle.

image001

En 2008, SeeWhy a travaillé avec JBoss pour construire une intégration étroite avec JBPM, en particulier il a fournit une visualisation en temps réel et une détection des exceptions lors de l'exécution de processus jBPM.

Le point intéressant avec seeWhy, est sa capacité d’intégration sans couplage fort avec le SI : il suffit d'envoyer des données dans une file d’attente.

SeeWhy se charge alors de transformer les données en information, par leurs mises dans un contexte métier.

En adoptant JSM, cela devient un jeu d’enfant.

Aucune interaction, de SyeeWhy, n’est nécessaire avec le processus.

L’objectif est d’obtenir des processus "auto-piloté" grâce à la gestion intelligente des événements.

En bref, les processus deviennent plus intelligibles et des mécanismes d'optimisation pourront être mis en place afin d'accroitre la capacité de réaction et même d'anticpation.

image002

Préparation du modèle de processus à l’utilisation de SeeWhy

Partons d'un processus déjà mise en ouvre (voir Comment modéliser un processus métier avec JBPM : exemple “gestion des entretiens”)

image003

Le lien entre le processus métier et le serveur SeeWhy sera réalisé en ajoutant un Nœud spécifique. D’autres solutions peuvent être utilisées (Action, onEntry, onExit …).

(L’usage du Nœud dans notre cas est simplement pédagogique pour matérialiser l’action sur diagramme de processus, réalisé avec l’IDE JBPM).

Le nœud de type « Node » (il s’exécute sans s’arrêter) qui porte le nom « Call SeeWhy » permet de savoir qu’on est sortie de l’état « Selection du candidat » vers le task « Candidat contacte ? ».

L’action exécutée sera basée sur une classe Java nommée com.seewhy.jbpm.MessageSender, par exemple .

Cette classe utilise l’API JMS pour envoyer des informations sur le processus vers une file d’attente exploitée par SeeWhy.c'est le seul lien entre SeeWhy et le processus.

Il suffit de sélectionner les champs à envoyer vers le serveur SeeWhy :

image004

Pour activer l’environnement, Il suffit ensuite de redéployer comme d’habitude le processus..

Interprétation des informations en utilisant SeeWhy

Dans la console du serveur SeeWhy, http:/localhot:8080/Desktop

Sélectionner Metric Configuration – Remplir les champs necessaire:

image005

–COUNT (), Aggregation.

On obtient un résultat comme suit:

image006

Choisir la valeur du champ Aggregation Period ( 1 mn)


image007

On obtient une courbe dans le navigateur SeeWhy qui ( une le processus jBPM déployé et après quelques exécutions du processus) qui ressemble à:

image008

Ce graphe nous renseigne sur l’évolution d’une activité du processus en fonction du temps. Par un simple clic-droit, en choisissant « zoom-in », « horizontal-axe » on peut suivre cette évolution du processus au cours des différentes instances :

Conclusion :

Cette présentation montre les notions de base de la mise en ouvre système de BAM à l’aide du moteur de workflow JBPM et SeeWhy.

Grace à SeeWhy, et sans couplage avec JBPM, il a été possible de mettre en place un outil de monitoring des activités métiers(BAM).

en conclusion: nous pouvons aller chercher les causes …(“See Why”) avec SeeWhy, mais ceci est un autre sujet

Voir les liens suivants

1. Un peu de monitoring Métier (BAM) avec JBPM et SeeWhy (event-driven business intelligence )

2. Comment modéliser un processus métier avec JBPM : exemple “gestion des entretiens”

3. Quelle est la différence entre JBPM et Intalio ?

4. Graph Oriented Programming (GOP) avec JBPM

5. La version 4 de JBPM prend le virage de BPMN

6. BPM & Moteur de workflow : l’offre open source

dimanche 14 juin 2009

Utiliser un Wiki pour optimiser le développement d’application web et améliorer la qualité des livrables

Les applications web prennent de plus en plus de place dans le SI de l’Entreprise 2.0 (voir la définition sur le site LMI).

Selon une étude présentée par le site d’information TIC lemondeinformatique: toujours plus d'entreprises découvrent les avantages des wikis : Ils mémorisent les expériences des employés, organisent les projets et accélèrent les flux de travail. Les outils légers Open-Source et les wikis d'entreprise plus compliqués participent à ce processus.

Avant de commencer : Que sont exactement les wikis, et plus particulièrement les wikis d’entreprise?

Au niveau purement technique, un wiki est composé uniquement d’un serveur qui permet aux utilisateurs de créer et de modifier par navigateur les contenus de sites web. Par principe, les wikis ne sont donc rien d’autres que des ensembles de sites web sur lesquels de nombreux utilisateurs écrivent ou qu’ils tiennent à jour [source LMI, pas wikipedia].

Mais, alors, Comment les Wiki peuvent t il aider les équipes de développement des applications web.

Je suggère au moins deux axes d’amélioration :

  • L’axe cycle de vie

  • et l’axe produit livré

Sur l’axe de cycle vie de développement :

  • l’introduction d’un wiki (tel que le fameux confluence de Atlassian le créateur de JIRA ou de XEclipse de Xwiki) dans la gestion du projet de développement permet de capitaliser sur le savoir faire de l’équipe de développement et de communiquer. Depuis quelques années on admet qu’on arrive à utiliser avec succès le wiki dans la définition du cycle de vie.

Sur l’axe du produit livré:

  • l’usage d’un Wiki permet de réduire le coût de la réalisation de la documentation du logiciel (l’application web). Le manuel d’exploitation, le manuel d’installation, le manuel utilisateur, ainsi que le support de formation pourront faire l’objet d’un ou plusieurs wikis.

L’idéal serait d’impliquer la maitrise d’ouvrage et/ou les utilisateurs dans la création du contenu du manuel utilisateur, dès la phase de réception provisoire.

L’amélioration de ce manuel utilisateur pourra se poursuivre tout au long de la vie de l’application et lors des phases de maintenances (évolutive ou corrective).

Le coût globale de réalisation sera réduit, l’adéquation avec les besoins des utilisateurs sera assurée par le simple fait qu’il a été produit par leurs représentants dans l’équipe de développement.

Le Wiki pourra même être intégré à l’application en réalisant le bon choix:

  • Dans le cas d’application Java EE : il suffit d’utiliser, par exemple, XWiki

  • Dans la cas .Net : utiliser le wiki de SharePoint (version "gratuite" WSS 3.0 de Windows 2003)

samedi 13 juin 2009

JSF : la performance est le principal argument pour choisir entre IceFaces et RichFaces :

En 2009, le choix de JSF pour développer une nouvelle application RIA Java EE s’impose. Plus besoin de perdre son temps avec du Struts, struts-layout, struts-menu et du JavaScript. Pas question de perdre son temps à apprendre la nouvelle version de Struts, la 2.0 qui ne cherche qu’à mimer du JSF.

La version JSF 1.2 est mature et les composants conformes à la version 2.0 sont en route (prévue avant la fin de la l’année).

Reste la question cruciale du choix de jeux de composants JSF.

Les principaux prétendants au trône sont : IceFces et Richfaces ?

Le choix reste difficile, même en déroulant la liste classique de critères:

· conformité aux standards JSF

· open source,

· nombre de composants offerts

· support d’AJAX

· richesse fonctionnelle

· intégration avec Facelets

· pérennité : taille de l’entreprise qui le supporte

· maturité

· nombre de téléchargement annoncé

· taille de communauté

· nombre d’entrée dans le forum de discussion

· activité Jira

· fréquence des versions

· documentation

· outillage

· …

Dans la majorité des projets, que j’ai observés, le choix entre ces deux implémentations n’a finalement pas été fondé sur un écart visible dans la réponse à cette liste de critères. Le coté subjectif ou la constatation d’une difficulté avec l’un entraine le choix de l’autre.

C’est là où la présentation des résultats « Performance Report of Server Side RIA Frameworks » devient intéressante.

L’étude, réalisée par un membre de l’équipe ZK, et avait pour objectif, montre la supériorité de ZK par rapport aux autres framework RIA. L’étude a développé trois applications web avec 3 technologies différentes ZK, IceFces et Richfaces. Et a réalisé des mesures de monté en charge.

Ce qui est intéressant, du point de vue JSF, c’est que cette étude pointe du doigt les grandes lacunes de IceFaces : la performance et l’empreinte mémoire sur le serveur.

Icefaces est 2 fois plus lent que RichFaces (dans le tratiement des grilles par exemple)

IceFaces présente un défaillance importante de point de vue empreinte mémoire  sur le serveur : il consomme trop de mémoire.

clip_image002

Consommation mémoire (coté serveur)

Et

clip_image004

Temps de réponse

Vue ces résultats, en restant dans un choix JSF, IceFaces perd de sa crédibilité

Bien sûre, JSF aussi prend « un coup sur la tête » faces à d’autres alternatifs (ZK, ou GWT), mais ceci est un autre sujet

vendredi 12 juin 2009

Oracle & SUN : Quel avenir pour l’unique solution MDM open source, SUN MDM Suite?

A l’annonce par Sun Microsystems, il y a un an, de la disponibilité de son offre MDM, en mode open source, les spécialistes ont vue une nouvelle opportunité de croissance pour cette discipline.

Mais, suite à l’acquisition de SUN par Oracle, l’avenir de la SUN MDM Suite, ainsi que le projet open source Mural sur lequel elle est basée, devient incertain.

Le MDM (Gestion des données de référence) est une discipline de gestion des données de référence (Master Data) qui sont les données fondamentales qui décrivent un domaine de l’entreprise : clients, produits, fournisseurs, comptes, sites et employés.

L’objectif du MDM est que cette donnée de référence reste unique au sein de l’entreprise tout en étant partagé par plusieurs applications ou services métiers

Il y a un an à peine (le 09 juin 2008), SUN annonçait Sun Master Data Management (MDM) Suite, la première offre commerciale MDM, en mode open source.

Cette solution est basée sur, la plateforme Mural, qui est un projet Open Source, animée essentiellement par SUN et RedHat.

Même si Sun précisait que la solution est un développement interne, elle s’appuierait tout de même sur un composant hérité de SeeBeyond pour l'extraction et le chargement de données.

Mais, depuis quelques jours, cette offre open source MDM, est tombée dans le giron d’Oracle.

Il alors, est légitime de se poser la question de sa pérennité : « Oracle va-elle laisser s’établir une offre MDM open source? »

La réponse n’est pas simple.

Oracle n’a pas besoin de ce produit, elle possède déjà une offre complète et revendique plus de 800 clients dans ce domaine.

Le parc installé de Mural, n’est pas celui de MySQL et ne mérite pas qu’on s’y intéresse pour le transformer en clients Oracle.

D’un autre coté, Oracle pourra exploiter cette offre open source dans une opération de « dynamitage » : aider une communauté open source dans le MDM pour déstabiliser les autres solutions concurrentes.

Pour le moment, la «feuille de route » de cette solution, ainsi que les autres offres de SUN, reste un mystère.

Rappelons, qu’on dénombre au moins huit offres propriétaires MDM (au sens code fermé):

· EBX.Platform (orchestranetworks)

· Kalido Master Data Management Software (Kalido )

· Oracle Master Data Management Suite (Oracle)

· webMethods Master Data Management (softwareAG)

· IBM® InfoSphere™ Master Data Management (IBM)

· TIBCO Collaborative Information Manager (Tibco)

· SAP NetWeaver MASTER DATA MANAGEMENT (SAP)

· SQL Server 2008 R2 Master Data Services (Microsoft)


Signalons, enfin, que le Gartner (en 2008) prévoit, jusqu'à'à 2012, une croissance de plus de 20% par an pour le marché du MDM.

mais ceci est une autre histoire...


articles publié sur JDN : Rachat de Sun par Oracle : quel avenir pour l’unique solution de MDM Open Source


Autres information
- Le master data management possède, enfin une offre open source
NB : liste des fournisseurs MDM : MDM (CDI, PIM, Data Governance) & Data Quality Vendor Products

mercredi 10 juin 2009

Portails Open source Java EE : La consolidation est lancée

Le communiqué officiel, est tombée depuis quelques heures : « eXo Platform fusionne le développement de son portail avec la communauté JBoss (de RedHat) ».

L’annonce par Jboss et Exo Platform d’une nouvelle alliance dans les Portails montre le chemin : La consolidation est en route.

La nouvelle a été savamment orchestrée lors du sommet du Gartner (Gartner Portals, Content and Collaboration Conference à Orlando, ce 10 Juin 2009)

· L’objectif de RedHat & Jboss est clair : proposer enfin une "offre crédible" de Portail java EE.

· L’objectif de l’équipe d’Exo est de s’appuyer sur la notoriété de RedHat et Jboss pour attaquer le marché anglo-saxon, dominé pour le moment par Liferay.

Précisons que le partenariat ne porte que sur la partie Portail et que « eXo Platform SAS », entreprise open source Européenne, membre du consortium OW2, conserve sa liberté.

EXo Platform, dont le fondateur Benjamin Mestrallet a reçu en 2009 le prix jeune dirigeant Ivy, possède beaucoup d’atouts dans ce domaine, notamment sa flexibilité et sa vision stratégique : le mode SaaS lancé avec eXo WebOS depuis 2008.

Cette nouvelle alliance permettra de dynamiser le monde «Professional Open Source » des Portails Java EE: les concurrents (Liferay, Jahia, Jakarta Pluto, Jakarta JetSpeed, Gridsphere, uPortal, Nuxeo, Magnolia, Alfresco, … tous ceux qui se présentent comme des fournisseurs de Portails) se doivent de réagir.

Ainsi, la réaction de Lifeary est attendue dans les semaines à venir.

Certes Liferay fût un des pionniers du domaine, mais depuis l’achat de SUN par Oracle, il a perdu un allier très important.

Trouvera t il refuge dans une alliance avec SpringSource.

Pourquoi pas ?

SpringSource n’a pas encore d’offre Portail, pour le moment !

mais, ceci est un autre sujet ...

info sur Exo à la TV tunisienne http://blog.exoplatform.org/2009/05/30/exo-on-tunisian-tv-news/


lundi 8 juin 2009

Configurer le fichier Log de MULE (ESB) sous Windwos XP

Lors de la migration vers la version 2.2.1 de Mule ESB, d’une configuration fonctionnelle depuis quelques mois avec la version 2.0.0, une ligne "un peu bizarre s'est manifestée" :

« Unable to get the current logfile size with stat: Syntaxe du nom de fichier, de répertoire ou de volume incorrecte. (0x7b) »

clip_image002

Tout fonctionne normalement, mais, mon client n’arrive pas à retrouver son fichier Log.

Après diagnostique : il s'agit d' une simple erreur (d'origine) de paramétrage du wapper de Tanuki Software.

Utilisé par Mule (Mule utilise la Wrapper Version 3.2.3 (http://wrapper.tanukisoftware.org

Pour corriger le problème, il suffit de changer la propriétaire wrapper.logfile dans le fichier : wrapper.conf (dans le répertoire %MULE_EXE%/conf)

En fait, il suffit de corriger le fichier en modifiant la ligne mettre

# Log file to use for wrapper output logging.

wrapper.logfile=%MULE_EXE%/../logs/%MULE_APP%.log

avec la ligne suivante

# Log file to use for wrapper output logging.

wrapper.logfile=%MULE_HOME%/logs/mule.log

Une fois lancé, le fichier log de Mule apparait.

clip_image003

Pour adapter le nom du fichier à l’application, utiliser une variable /%MULE_APP%

jeudi 4 juin 2009

SpringSource & Jboss : la guerre des chiffres du monde POS (Professional Open Source)

Entre Spring et Jboss, la guerre des communiqués s’enflamment :

- à travers le web

- à travers le les blogs

et  à travers twitter

Voici ce que présente Spring pour argumenter la supériorité de Spring sur Jboss

clip_image002

Et voilà ce que répond JBOSS : les demandes sur J2EE vs Spring

clip_image004,

Et Jboss fait remarque que : Spring est au service de Java

clip_image006

Conclusion :

Puisque Spring est partagé partout, il est plus raisonnable pour Jboss d’essayer de rendre son environnement le meilleur choix pour l’usage de Spring (comme a déjà fait l’ESB Mule) . Au lieu de s’opposer frontalement au leader des Framework JEE, l’utiliser pour capter plus d’utilisateur.

Blog http://blog.softwhere.org/archives/865

Blog Spring : http://blog.springsource.com/2009/06/03/red-hat-reacts-to-springsources-leadership/

mardi 2 juin 2009

Comment faire du « log » coté client pour une application JSF : avec RichFaces utilisez le Tag Log4j

La question posée aujourd’hui est simple : « comment savoir ce qui se passe avec une application JSF, lorsque la page ne fonctionne pas comme ce qui est attendu ?»

La réponse st simple : utiliser un log, comme le Log4J coté serveur

Mais, on est du coté client !

Evidement : il s’agit du Tag Log spécifique à RichFaces : <a4j:log hotkey="K"/>

Il suffit de l’ajouter au Template du projet Web.

Une fois la page affichée : utiliser Ctrl+Shift+K et une page web s’affiche

clip_image001

Ainsi, on un suivi de ce qui se passe du coté serveur, l’état du DOM, la requête, la réponse,…

image

Architecte SOA & Professionnel Open Source Headline Animator

 
Khaled BEN DRISS
Cloud Computing, SOA et Web 2.0 : Des sujets techniques sur SOA et l'Open Source : de Java & .Net, PHP5, Symfony, à SaaS / PaaS en passant par Azure, google appengine, le BPM, la Modélisation et d'autres sujets du coté du serveur et cloud computing.