mercredi 29 avril 2009

Microsoft livre BizTalk 2009

 

La version 2009 de l'ESB de
Microsoft : Biztalk, arrive
début mai, pour succéder à la version 2006R2 qui date déjà de 2007.

Cette nouvelle version arrive enrichie de nouveaux connecteurs (les plus importants ceux de Siebel et PeopleSoft).

à noter que Biztalk 2009 exploite à fond la version 3.5 du .NET
Framework 3.5 SP1.



Vérifier les dépendances avec Jboss Tattletale

JBoss a publié la première version officielle de Tattletale d'aujourd'hui, sous licence GPL.

L'outil génère des rapports qui montrent les dépendances entre fichier archives et d’autres informations qui peuvent aider à identifier des problèmes de couplage forts et permettre ainsi de minimiser le nombre de dépendances et/ou les classes en doublons dans le classpath.

Tattletale JBoss est un outil qui peut aider, les équipes de développement, à obtenir une vue d'ensemble des jars utilisés dans le projet Java EE.

Pour l’utiliser il suffit de télécharger à partir de ce lien, puis, lancer la commande suivante

java -Xmx1024m -jar jboss-tattletale.jar E:\dossierProjet\lib c:\dossierRapports

(avec –Xmx512m on obtient des problèmes de mémoire, sur des projets réels)

JBoss Tattletale scanne de façon récursive le répertoire pour construire les rapports en format HTML.

· dépendance d’un jar

· la liste de jars qui dépendent d’un jar

· est ce que le jar respecte la norme OSGi

· le conflit de version des jars

· fichiers JAR Multiples

· fichier jar sans version

Cela permet de

· Lister les classes qui manquent dans le projet

· Lister les classes situées dans plusieurs fichiers JAR

· Lister JAR même si le fichier se trouve dans de multiples endroits

· Vérifiez le SerialVersionUID d'une classe

· Lister les fichiers JAR identiques mais, qui ont des numéros différents de version

· Lister les fichiers JAR sans un numéro de version

· Lister un cours dans un fichier JAR


Rapports des dépendances entre fichiers JAR





Les jars dont un « fichier archive particulier » dépend

SNAG-376.jpg


La qualité OSGI d’un jar


Intégrer JBoss Tattletale permet d’aider l’industrialisation des tâches de développement et à améliorer la qualité du projet.

mardi 28 avril 2009

Intégrer la sécurité dans le processus de développement des applications et services en ligne

j'ai animé, ce 18 avril 2009, une conférence sur «L’intégration de la sécurité dans le processus de développement des applications et services en ligne ».
j'ai présenté la démarche PSDP (Proactive Secure Development Process): une liste de principes de sécurité généralement acceptés devant être considérés dans un processus de développement des applications web

Cette conférence, s'inscrit dans le cadre de la deuxième édition des Journées Technologiques sur les Systèmes d’Information JTSI2009. La journée qui a pour objectif de mettre en évidence l’importance de la sécurité et la continuité de service des systèmes d’information comme un facteur de compétitivité.
Elle présente l’ensemble des méthodes et des technologies ainsi que les meilleures pratiques pour avoir une approche cohérente et globale de la sécurité et la continuité de service des systèmes d’information.



Les JTSI sont organisées par Le Ministère des Technologies de la Communication www.jtsi2009.tn (28 Avril 2009 - Parc Technologique El Ghazala)

le programme


http://www.jtsi2009.tn/index.php?id=94

lundi 20 avril 2009

Oracle a acheté SUN : Que va-t-il se passer ?

Oracle vient de mettre la main sur SUN, quelques jours après que IBM a jeté l'éponge.

Que va-t-il se passer ?

Prédire ce qui va se passer, c'est ignorer l'histoire des acquisitions de Oracle. De PeopleSoft à Sibel, de Hyperion à Tangosol en passant par i-flex, ce qui reste après démentiellement n'est jamais annoncé d'avance.

Mais, pas de doute, java va continuer : la majorité des produits d'Oracle sont basés sur Java.

C'est pour cela qu'on pourrait que poser des questions :

1. Oracle est à fond pour Java, mais, qu'est qu'elle va faire avec deux JVM HotSpot et Jrockit. La version 7 de la JVM sera elle soutenu par Oracle ? Est-ce qu'on va voir SAP se lancer dans le développement de sa propre JVM ?

2. L'approche open source de Java, initiée par SUN, va elle être stoppée?

o Le support d'Oracle à la communauté open source sera dicté par son modèle économique, et sa vision stratégique, qui se résume en une simple phrase « faire de l'argent avec la vente de licences », chose que Sun a eu du mal à concrétiser.

3. Oracle qui n'a pas réussi à rendre Jdeveloper universel, et qui a hérité de WorkShop (basé sur Eclipse) lors de l'achat de BEA, va-t-elle maintenir NetBeans ?

4. Open office sera- t- il couplé à Weblogic Portal?

5. L'offre Master Data Mangement de Sun (incluse dans JavaCaps) sera elimiée, pour ne pas favoriser l'avènement d'une offre MDM open source et continuer de vendre Oracle Master Data Management Suite. La question : est ce qu'il va y avoir une annonce officielle ?

Java ne risque pas de disparaitre mais risque de devenir un peu plus "rouge".

C'est pour cette raison que la question de la gouvernance de Java doit être tranchée : la communauté doit prendre le leadership à l'instar de la communauté Eclipse. Pas question de faire les frais d'une confrontation Oracle - IBM.

En plus de java, Oracle va hériter de MySQL (Un beau cadeau quand on connait l'impact financier qu'à eu l'acquisition de MySQL par SUN). Il est vrai que MySQL ne présente pas une vraie menace pour la base de données d'Oracle (la vraie vache à lait de l'éditeur), mais au contraire, pourrait devenir un produit d'appel pour contrer la montée en puissance de la concurrence.

Les clients classiques de MySQL l'utilisent pour faire tourner les sites Web, les serveurs départementaux et les projets périphériques. C'est une niche qui a échappé à Oracle au fur et à mesure que sa base de données a augmenté en complexité et en coût.

En contrôlant MySQL (et pas seulement le moteur transactionnel InnoDB), Oracle va offrir à ses clients un produit d'entrée de gamme, avec la capacité de les faire migrer vers sa base de données Oracle. Elle va, au passage, arrêter le développement du nouveau moteur de transaction …

Une autre question persiste:

Comment va faire Oracle (l'éditeur de soft) avec la division « matériel » qu'elle va hériter de SUN (Principalement serveurs et système de stockage) pour lequel elle n'a aucune expérience

Va-t-elle la filialiser ou simplement la vendre à CISCO ?

On savait que les américains ne laisserait jamais d'autres pays mettre la main sur SUN et ses technologies (ni chinois, ni indiens et surtout pas un fond souverains des pays du golfe). En effet, le niveau de l'action de Sun était en chute libre, un résultat évident de la crise et d'une confrontation frontale avec Microsoft et d'une stratégie tâtonnante dans le software et l'open source.

A suivre ...

samedi 18 avril 2009

Jboss Richfaces introduit la gestion des files d’attente pour améliorer les performances du mode Ajax dans le monde JSF

L'un des points forts de RichFaces 3.x (des composants JSF de Jboss ) est le mode Ajax présent sur tous les composants JSF de la collection.

C'est grâce à l'alliance avec Excadel et à l'usage du framework Ajax4jsf que RichFaces est capable d'ajouter les fonctionnalités Ajax dans des pages existantes sans avoir l'obligation d'écrire du code JavaScript (ou du moins très rarement).

Mais

Le problème:

Lorsqu'on utilise Ajax4jsf pour faire des actions Ajax :

<h:inputText value="#{userBean.name}">

<a4j:support event="onkeyup" reRender="bar" />

</h:inputText>

Il se peut que l'utilisateur écrive tellement vite que le serveur s'inonde de requêtes à traiter.

Le risque est de se lancer vers le serveur des dizaines de requêtes http, au fur et à mesure que la saisie du champ est effectuée.

Si des événements sont envoyés en même temps, ils viendront au serveur simultanément : Aucune ne garantit que la demande soit servie sous forme FIFO.

Les résultats peuvent être imprévisibles.

Par défaut, RichFaces n'utilise pas de la file d'attente pour les demandes Ajax.

La solution

Ajouter une fille d'attente et définir sa stratégie d'envoi de commande Ajax vers le serveur

<h:inputText value="#{userBean.name}">

<a4j:support event="onkeyup" eventsQueue="fileAttente" requestDelay="100" reRender="comp002"/>

</h:inputText>

L'Usage de l'attribut eventsQueue permet d'éviter les points négatifs d'Ajax.

Explication:

L'attribut "eventsQueue" définit le nom de la file d'attente qui sera utilisé pour commander à venir

La nouvelle demande sera mise en attente dans la même file d'attente jusqu'à ce que l'on n'est pas traitées la précédente et que la Réponse Ajax est retourné.

RichFaces commence à retirer de la file d'attente les demandes « similaires » (les requêtes ajax produites par les mêmes événements) en fonction de leurs arrivées.

L'attribut "requestDelay" définit le temps (en ms) durant lequel la demande restera dans la file d'attente avant qu'il ne soit prêt à envoyer.

Lorsque le temps de retard est plus grand, la requête sera envoyée vers le serveur. Elle sera supprimée si une nouvelle demande "similaire" est déjà dans la file d'attente.

L'attribut "ignoreDupResponses" permet d'ignorer les anciennes requêtes Ajax si une requête "similaire" plus récente est déjà dans la file d'attente.

ignoreDupResponses "=" true "n'annule pas la demande si elle est traitée sur le serveur, mais permet d'éviter les mises à jour coté client si la réponse n'est plus d'actualité.

L'utilisation de "eventsQueue" avec "requestDelay" permet de protéger contre le trafic superflu les synchronisations inutiles d'Ajax.

La définition d'une file d'attente :

Il est possible de définir des files d'attente au niveau globale (dans web.xml) ou au niveau d'une page avec la balise

<a4j:queue name="fileAttente" disabled="true"... />

Les files d'attente présentent un ensemble de caractéristiques communes qui régissent leurs comportements.

Tous ces attributs peuvent être définis par des valeurs spécifiques ou de l'utilisation de EL.

  • Disabled : la file d'attente n'aura aucune influence sur les requêtes. (Le seul cas où les files d'attente avec le même nom peuvent être utilisées - cas où seul l'un d'eux est activé)
  • Size : Le nombre d'objets autorisés dans la file d'attente à un moment (-1 = illimité, un certain nombre x =)
  • requestDelay : Définir requestDelay = "1000" sur la file d'attente qui signifie que toutes les demandes dans cette file d'attente auront une seconde de retard.
  • Timeout : Le temps durant lequel un élément non traité dans la file d'attente sera annulé.
  • timeout: si la demande est envoyée et que la réponse n'est pas encore parvenue dans les délais définis par timeout, la demande est alors, abandonnée, et la prochaine est envoyée.
  • status : définit le statut qui sera activé sur toute demande de cette file d'attente.
  • Et les événements : onsubmit, oncomplete, onbeforedomupdate, onsizeexceeded, onerror


lundi 13 avril 2009

Are the data from the GoogleApp Engine Dashbord valid?

The DashBord of GoogleApp Engine presents interesting results, but what is the truth behind these data?


I started by deploying a simple Java EE (JSP / Struts / Strus menu) and déploing it in the GoogleApp Engine cloud at http://kbdsoft.appspot.com/


This section aims to: Check the values presented by the DashBord of GoogleApp Engine.

To Check the validity of the values presented by the DashBord of GoogleApp Engine, we use a simulation tool in the classical world of performance studies: the famous Jmeter

Install a simulation tool load

Download Jmeter from http://jakarta.apache.org/jmeter/
Launch Jmeter Script and create a simulation application execution

Beware, the testing was performed on a laptop connected to the Internet with a limited speed, ADSL 1Mb (theoretical), it has no intrinsic value to measure the performance of the platform, but will compare the results .)

Run a simulation of 20 concurrent virtual users (20 Threads)

The scenario is executed 100 times.

http://kbdsoft.appspot.com/

http://kbdsoft.appspot.com/pagesManagement.do

http://kbdsoft.appspot.com/menuManagement.do

http://kbdsoft.appspot.com/user.do

http://kbdsoft.appspot.com/audit.do

http://kbdsoft.appspot.com/rolesManagement.do

http://kbdsoft.appspot.com/index.do

We note that at the beginning of the simulation


We note that at the beginning of the simulation

At the end of simulation the graph Request / Second becomes

The GoogleApp Engine’s Dashbord allows you to track the behavior of the application: it is the implementation of the concept SAM (Service Activity Monitoring, for monitoring SLAs stipulated in the contract for the paid version)

Thus, after the full execution of the script, the results presented by the GAE's Dashbord are summarized as follows:

On the other hand, after the end of the execution of the script, the results presented by Jmeter are summarized as follows :


The results of Jmeter Vs results GoogleApp Engine

There is a good concordance of results (although it sure is a short and simulation for more detailed results, it must be remembered that performance measures should follow a statistical study and use the laws of large numbers)



Jmeter

client vue

GAE DashBord

Google's serveurs vue

http://kbdsoft.appspot.com/

1.135

1.2

http://kbdsoft.appspot.com/pagesManagement.do

2.265

2.4

http://kbdsoft.appspot.com/menuManagement.do

2.275

2.4

http://kbdsoft.appspot.com/user.do

3.411

3.6

http://kbdsoft.appspot.com/audit.do

1.142

1.2

http://kbdsoft.appspot.com/rolesManagement.do

1.144

1.2

http://kbdsoft.appspot.com/index.do

1.147

1.2

Total

12.59

13.5

The results shown by Google are validated by the results of Jmeter

We can rely on the DashBord.
Conclusion:
For this first test, I "fell in love": it took me half an hour to deploy an old application (simple) Struts based on the Google cloud

No changes were necessary!
(N: there was no transaction, database, Spring, Hibernate ... )
Dashboard of
GoogleApp Engine allows to monitor the activity of the application and see the logs and the response time.


Working with GoogleApp Engine is :

  • Easy
  • Lets recycle "reflexes" of Java developers
  • Lets recycle "old" Java
  • The Dashboard provides information close to the reality and verifiable

Le cloud coumputing en marche ...



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.