La version 2009 de l'ESB de 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 |
La version 2009 de l'ESB de 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 |
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
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.
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 ...
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.
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/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 :
| Jmeter
client vue
| GAE DashBord
Google's serveurs vue |
1.135 | 1.2 | |
2.265 | 2.4 | |
2.275 | 2.4 | |
3.411 | 3.6 | |
1.142 | 1.2 | |
1.144 | 1.2 | |
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 :
Le cloud coumputing en marche ...