<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Corporate oxia blog</title>
	<link>http://www.oxiasoft.com/blog_corporate</link>
	<description>Un blog utilisant WordPress</description>
	<pubDate>Fri, 02 Oct 2009 10:19:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>fr</language>
			<item>
		<title>Formations de pointe en nouvelles technologies : SOA, EAI et intégration SI</title>
		<link>http://www.oxiasoft.com/blog_corporate/?p=77</link>
		<comments>http://www.oxiasoft.com/blog_corporate/?p=77#comments</comments>
		<pubDate>Fri, 25 Sep 2009 11:24:23 +0000</pubDate>
		<dc:creator>Hajer</dc:creator>
		
		<category><![CDATA[Formations]]></category>

		<guid isPermaLink="false">http://www.oxiasoft.com/blog_corporate/?p=77</guid>
		<description><![CDATA[Formations de pointe en nouvelles technologies : SOA, EAI et intégration SI
OXIA  a le plaisir de vous annoncer le lancement de son cycle de Formations en Technologies Avancées.
Notre objectif est de vous apporter, une offre de formation à la pointe de l’innovation dans les technologies de l’information, basée sur une veille technologique permanente et enrichie [...]]]></description>
			<content:encoded><![CDATA[<h3>Formations de pointe en nouvelles technologies : SOA, EAI et intégration SI</h3>
<p>OXIA  a le plaisir de vous annoncer le lancement de son cycle de Formations en Technologies Avancées.<br />
Notre objectif est de vous apporter, une offre de formation à la pointe de l’innovation dans les technologies de l’information, basée sur une veille technologique permanente et enrichie des retours d’expériences de nos experts sur des projets concrets.<br />
Les deux prochaines sessions  porteront sur des thèmes d’actualité incontournables pour les décideurs informatiques : l’intégration des applications du SI, les architectures SOA, leurs enjeux et les clés de succès de leur mise en œuvre. Elles seront animées par M. Khaled BENDRISS, Directeur Technique du Groupe  OXIA et expert en architecture des SI.</p>
<p><img src="http://www.accesstoebusiness.com/oxia/tableau2.jpg" style="width: 587px; height: 251px" width="587" align="middle" border="0" height="251" /></p>
<p>Nous restons à votre disposition pour toute demande d’information, ou échange nécessaire concernant vos besoins de formation spécifiques.<br />
Dans l’attente de vous servir, veuillez agréer, Madame, Monsieur , l’expression de nos salutations les plus sincères.<br />
Contact : Inès BOURGOU, Responsable de l’offre de formation OXIA.</p>
<p><span style="color: #0000ff">Formation@oxia-group.com</span>  ou par Tel. <span style="color: #0000ff">+216 71 28 27 00</span><br />
<em>Visitez  notre blog de veille technologique : <a href="http://net-progress.blogspot.com/" target="_blank">http://net-progress.blogspot.com/</a><br />
</em></p>
<p><em><strong>télécharger:</strong></em></p>
<p><em><a href="http://www.accesstoebusiness.com/oxia/Seminaire-SOA-EAI-ESB-MOM-V-1-0-0.pdf" title="Seminaire SOA Open Source V 1-0-0 " target="_blank"><em><img src="http://www.accesstoebusiness.com/oxia/pdf.gif" title="Seminaire SOA Open Source V 1-0-0 [Mode de compatibilité]" style="width: 36px; height: 36px" width="55" border="0" height="55" />Seminaire SOA Open Source V 1-0-0 [Mode de compatibilité</em></a>]</em></p>
<p><a href="http://www.oxiasoft.com/editor/empty/oxia/Seminaire-SOA-Open-Source-V-1-0-0.pdf" title="Seminaire SOA EAI ESB MOM V 1-0-0" target="_blank"><img src="http://www.accesstoebusiness.com/oxia/pdf.gif" title="Seminaire SOA Open Source V 1-0-0 [Mode de compatibilité]" style="width: 36px; height: 36px" width="55" border="0" height="55" /><em>Seminaire SOA EAI ESB MOM V 1-0-0 [Mode de compatibilité]</em></a></p>
<p><em>   <img src="http://www.accesstoebusiness.com/oxia/icon-word.png" title="Fiche d'inscription" style="width: 28px; height: 30px" width="28" border="0" height="30" /> <a href="http://www.accesstoebusiness.com/oxia/fiche-inscription.doc" title="Fiche d'inscription"><em>La</em>  fiche d&#8217;inscription</a></em><a href="http://www.oxiasoft.com/site/fr/contact.php?id_article=37"><em>Contactez-nous !</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxiasoft.com/blog_corporate/?feed=rss2&amp;p=77</wfw:commentRss>
		</item>
		<item>
		<title>PERFORMANCE ENGINEERING PROCESS &#038; SOLUTIONS PEP&#038;S</title>
		<link>http://www.oxiasoft.com/blog_corporate/?p=76</link>
		<comments>http://www.oxiasoft.com/blog_corporate/?p=76#comments</comments>
		<pubDate>Thu, 02 Jul 2009 17:07:19 +0000</pubDate>
		<dc:creator>Khaled BENDRISS</dc:creator>
		
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.oxiasoft.com/blog_corporate/?p=76</guid>
		<description><![CDATA[Partie 2 : le processus
Les tests de performance doivent être implémentés et réalisés tout au long du cycle de développement.
Il est recommandé d’intégrer les mesures de performance dés les premières itérations :

Tester le POC &#38; l’architecture de base
A 20 % du projet,
A chaque jalon important

Le processus itératif se résume en :

Pour ce faire, nous mettrons en œuvre l’approche [...]]]></description>
			<content:encoded><![CDATA[<p>Partie 2 : le processus</p>
<p>Les tests de performance doivent être implémentés et réalisés tout au long du cycle de développement.</p>
<p>Il est recommandé d’intégrer les mesures de performance dés les premières itérations :</p>
<ul>
<li>Tester le POC &amp; l’architecture de base</li>
<li>A 20 % du projet,</li>
<li>A chaque jalon important</li>
</ul>
<p>Le processus itératif se résume en :</p>
<p><img align="middle" width="462" src="http://www.accesstoebusiness.com/oxia/1.jpg" height="447" /></p>
<p>Pour ce faire, nous mettrons en œuvre l’approche suivante pour chaque campagne de tests :</p>
<ul>
<li>Identifier l&#8217;environnement de test : L&#8217;environnement de test doit être si possible identique à l’environnement de production. Pour cela, nous devons comprendre</li>
</ul>
<ul>
<li>Le but de l&#8217;application web</li>
<li>Les comportements attendus des utilisateurs</li>
<li>L&#8217;architecture logique de l&#8217;application (n-tiers)</li>
<li>L&#8217;architecture physique de l&#8217;application (serveurs web, Base de données, etc.)</li>
<li>L&#8217;architecture réseau de l&#8217;application</li>
</ul>
<ul>
<li>Identifier les critères d&#8217;acceptation de performance</li>
</ul>
<ul>
<li>Déterminer les objectifs des tests (migration, tuning, etc.)</li>
<li>Estimer la valeur cible de l&#8217;usage des ressources et les seuils de tolérance
<ul>
<li>(Par exemple CPU &lt; 75%, 1000 transactions/heure, etc.)</li>
</ul>
</li>
<li>En déduire les métriques à utiliser (usage CPU, temps de réponse, usage mémoire, etc.)</li>
</ul>
<ul>
<li>Définir les scénarios : concevoir les tests</li>
</ul>
<ul>
<li>Identifier les principaux scénarii d&#8217;usage (les principaux use-cases) et les principaux chemins de navigation dans l&#8217;application.</li>
<li>Identifier les données à préparer pour que les tests soient réalistes (liste des clients, liste des produits, etc.)</li>
<li>Identifier les comportements des utilisateurs.
<ul>
<li>Identifier les erreurs classiques (lors des tests il est important de simuler les cas classiques d&#8217;erreurs des utilisateurs).</li>
<li>Temps de réflexion (max, min, moyen).</li>
</ul>
</li>
</ul>
<ul>
<li>Configurer l&#8217;environnement de test</li>
</ul>
<ul>
<li>Les outils de test utilisés</li>
<li>L&#8217;environnement d&#8217;exécution de l&#8217;application</li>
</ul>
<ul>
<li>Implémenter les tests : Enregistrer les scénarii</li>
</ul>
<ul>
<li>Les tests doivent être significatifs
<ul>
<li>Ne pas répéter la même transaction avec les mêmes données (résultats faussés à cause du cache de données)</li>
<li>Ne pas générer des tests trop agressifs</li>
</ul>
</li>
</ul>
<ul>
<li>Exécuter les tests</li>
</ul>
<ul>
<li>Valider les résultats des tests
<ul>
<li>Vérifier que le test fonctionne réellement</li>
<li>Vérifier l&#8217;absence de problèmes qui faussent les résultats (réseau, disque, etc.)</li>
</ul>
</li>
<li>Mesurer les réponses</li>
<li>Déterminer les lignes de base à utiliser pour évaluer les améliorations amenées par la variation d&#8217;un seul paramètre (mémoire, connexion JDBC, etc.)</li>
<li>Archiver les tests</li>
</ul>
<ul>
<li>Analyser les résultats</li>
</ul>
<ul>
<li>Synthétiser les résultats (plusieurs mesures doivent être réalisées pour prendre la moyenne, graphe de synthèse, etc.)</li>
<li>Rédiger un rapport : interprétation des résultats.</li>
</ul>
<ul>
<li>Optimiser le système</li>
</ul>
<h2>Place du PEP&amp;S dans le cycle de développement des applications web</h2>
<p>Tous les acteurs s&#8217;accordent sur la nécessité des Mesures de Performance et de leurs analyses, mais, les opinions divergent quand au moment.</p>
<p>La meilleure réponse est de rendre le PEP&amp;S une partie intégrante du cycle de développement des applications web.</p>
<p><img align="middle" width="611" src="http://www.accesstoebusiness.com/oxia/2.jpg" height="192" /></p>
<p>La mise en place du processus PEP&amp; se résume en</p>
<ul>
<li>Évaluer le problème,</li>
<li>Mesurer les temps de réponse du système,</li>
<li>Analyser les données,</li>
<li>Identifiez les goulots d’étranglement,</li>
<li>Optimiser le  système.</li>
</ul>
<p>D’habitude, lorsque le chef de projet  pense à réaliser une étude de performance il la planifie dans la phase de recette définitive.  Or, la découverte d’un problème de performance à ce stade représente un danger pour le projet dans sa totalité. Il est important de planifier le suivi des performances dans les différentes phases du projet :</p>
<ul>
<li>
<ul>
<li>Développement
<ul>
<li>Profiling</li>
<li>Logging</li>
<li>Test Unitaire</li>
</ul>
</li>
<li> Assurance qualité / Staging
<ul>
<li>Test fonctionnel</li>
<li>Performance / test de charge</li>
<li>blocage / tuning / amélioration de Performance</li>
</ul>
</li>
<li>Production
<ul>
<li>Étude de la trace et vérification</li>
<li>Disponibilité</li>
<li>SLA (Service Level Agreements)</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Le processus pourrait être résumé ainsi :</p>
<p><img align="middle" width="413" src="http://www.accesstoebusiness.com/oxia/3.jpg" height="386" /></p>
<p>Il est recommandé de penser aux objectifs de performances très tôt :</p>
<ol>
<li>Fixer les cibles &#8220;lignes de base&#8221; /benchmarks</li>
</ol>
<ul>
<li>Mettre en application une méthodologie qui permet la mesure des performances par rapport aux cibles &#8220;lignes de base&#8221; /benchmarks .</li>
<li>Utiliser les bons outils.</li>
<li>Construire des scripts de test &#8220;répétables&#8221; et automatisables.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.oxiasoft.com/blog_corporate/?feed=rss2&amp;p=76</wfw:commentRss>
		</item>
		<item>
		<title>Performance Engineering Process &#038; Solutions : PEP&#038;S</title>
		<link>http://www.oxiasoft.com/blog_corporate/?p=75</link>
		<comments>http://www.oxiasoft.com/blog_corporate/?p=75#comments</comments>
		<pubDate>Thu, 02 Jul 2009 13:50:17 +0000</pubDate>
		<dc:creator>Khaled BENDRISS</dc:creator>
		
		<category><![CDATA[Méthodologique]]></category>

		<guid isPermaLink="false">http://www.oxiasoft.com/blog_corporate/?p=75</guid>
		<description><![CDATA[Partie 1 : les types de mesures de performance.
Quelles mesures pour qualifier la performance d’une application 
D&#8217;un point de vue de l&#8217;utilisateur la performance d&#8217;une application web se résume à la question suivante &#8220;en combien de temps la page est chargée ?&#8221;
Des fois, cela relève du subjectif, et de l&#8217;expérience personnelle.
Par contre, l&#8217;administrateur doit obtenir [...]]]></description>
			<content:encoded><![CDATA[<p>Partie 1 : les types de mesures de performance.<br />
<strong>Quelles mesures pour qualifier la performance d’une application </strong></p>
<p>D&#8217;un point de vue de l&#8217;utilisateur la performance d&#8217;une application web se résume à la question suivante &#8220;en combien de temps la page est chargée ?&#8221;</p>
<p>Des fois, cela relève du subjectif, et de l&#8217;expérience personnelle.</p>
<p>Par contre, l&#8217;administrateur doit obtenir plus de précision afin de quantifier les performances de son application web. Il doit avoir des éléments quantitatifs afin de formuler un avis objectifs<br />
Ce qui n&#8217;est pas mesurable n&#8217;existe pas !<br />
Il y a deux mesures importantes à obtenir pour quantifier les performances d&#8217;une application web<br />
-Temps de réponse<br />
- Débit</p>
<p>On parle ici, de valeurs moyennes</p>
<p><strong>Temps de réponse</strong></p>
<p>Le temps de réponse est le temps qu&#8217;il faut à un utilisateur pour exécuter une opération : la validation d’une opération d’achat (la sélection des produits et la constitution d’un panier n’est pas incluse) : le temps qui s’écoule entre le début de l’action et l’affichage de la page suivante.</p>
<p>En règle générale, vous devez tester cette opération plusieurs fois, et noter le temps de réponse moyen.<br />
Les tests doivent être obtenu en simulant une charge réelle (ou proche du réel) : Il faut avoir toujours présent à l&#8217;esprit que le temps de réponse dépend de la « charge sur l&#8217;application Web ».<br />
Différents scénarii doivent être testés et peuvent avoir des temps de réponse différents.</p>
<p><strong>Débit : </strong><br />
Une autre mesure liée à la performance des applications Web est le débit.<br />
Le débit est le nombre de transactions qui peuvent se produire dans un laps de temps donné.<br />
Le débit est habituellement mesuré en transactions par seconde (TPS).<br />
Toutefois, avant de commencer l&#8217;exécution des essais, vous devez être clair sur ce type de performance est prévu à partir du site Web.</p>
<p>Par exemple, vous voulez trouver des réponses aux questions suivantes :</p>
<ul>
<li>   Combien de temps devrait durer une transaction Web?</li>
<li>   Combien de temps un utilisateur doit attendre avant le chargement d&#8217;une page?</li>
<li>   Combien d&#8217;utilisateurs devraient visiter le site Web?</li>
<li>   Quels types de trafic utilisateur prévoyez-vous: y a-t-il des périodes de faible activité et de haute activité?</li>
</ul>
<p>Comprendre quel type de trafic Web est prévu est important lors de la conception d&#8217;essai de la performance.</p>
<p>Les types de mesures de performance se divisent généralement en deux classes:<br />
Les tests de performances<br />
-En phase de développement<br />
-Lors de la recette applicative<br />
-En phase de maintenance<br />
Le monitoring de l’application<br />
- En production</p>
<p>Les types de tests de performance les plus connus sont:</p>
<ul>
<li>    Test de tenue en charge</li>
<li>    Test en stress</li>
<li>    Test d&#8217;endurance</li>
<li>    Test de capacité</li>
<li>    Test aux limites</li>
</ul>
<p><strong>Test de tenue en charge  : </strong></p>
<ul>
<li>    Mesurer les performances de l&#8217;application par rapport à un SLA dans des conditions de charge normales et maximales</li>
<li>    il s&#8217;agit d&#8217;un test au cours duquel on simule une charge importante d&#8217;utilisateurs sur une durée relativement longue, pour voir si le système testé est capable de supporter une activité intense sur une longue période sans dégradation de performances et/ou de diminution notable des ressources applicatives du système.</li>
<li>    Des synonymes courants sont test d&#8217;endurance, de robustesse, de fiabilité.</li>
</ul>
<p><strong>Test en stress : </strong></p>
<ul>
<li>    Déterminer les limites de performances de l&#8217;application dans des conditions de charge au-delà des valeurs maximales.</li>
<li>    Déterminer les conséquences d&#8217;une charge anormale (erreurs, blocage, …)</li>
<li>    il s&#8217;agit d&#8217;un test au cours duquel on va simuler l&#8217;activité maximale attendue en heures de pointe de l&#8217;application, afin d’évaluer comment le système réagit à une activité &#8220;de pointe&#8221; des utilisateurs.</li>
</ul>
<p><strong>Test d&#8217;endurance : </strong></p>
<ul>
<li>  Test de stress de longe durée, permettant de calculer les valeurs de MTBF (Mean Time Between Failure), MTTF (Mean Time To Failure), ce qui permet de détecter les fuites de ressources (fuite de mémoire, fuite de connexion JDBC, …)</li>
<li>   il s&#8217;agit d&#8217;un test qui établit la linéarité du fonctionnement de l&#8217;application sur une longue durée (une journée ou un weekend d&#8217;utilisation), cela permet de mesurer une dérive des performances due à des fuites de mémoires ou des saturations disques de l&#8217;application.</li>
</ul>
<p><strong>Test de capacité : </strong></p>
<ul>
<li>    Déterminer le nombre d&#8217;utilisateurs / transactions possible pour une configuration matérielle donnée et rechercher un modèle de montée en charge.</li>
<li>   Il s&#8217;agit d&#8217;un test au cours duquel on va simuler un nombre d&#8217;utilisateurs sans cesse croissant (par paliers) de manière à déterminer quelle charge limite le système est capable de supporter.</li>
</ul>
<p><strong>Test aux limites : </strong></p>
<ul>
<li>    il s&#8217;agit d&#8217;un test au cours duquel on va simuler une activité bien supérieure à l&#8217;activité normale, pour voir comment le système réagit aux limites du modèle d&#8217;usage de l&#8217;application.</li>
</ul>
<p><strong>Autre type de test : </strong></p>
<ul>
<li>Il existe d&#8217;autres types de tests, plus ciblés et fonction des objectifs à atteindre dans la campagne de tests : Benchmark (comparaison de logiciels, matériels, architectures, etc.), tests de service, tests de volumétrie des données, etc.</li>
</ul>
<p><strong>Instrumentation et monitoring : </strong><br />
Avant de lancer la phase de production (ou même la phase pilote),  il est recommandé de réaliser une instrumentation qui permettra d&#8217;observer dans le détail le fonctionnement du système sur la base d&#8217;actions réelles des utilisateurs.<br />
Les résultats d&#8217;une telle campagne de mesure (à partir d&#8217;instrumentation) permettent de connaître les fonctionnalités réellement utilisées, et leur fréquence d&#8217;utilisation, ils peuvent ensuite servir de base pour orienter les tests à réaliser dans des simulations futures, lors de la phase de maintenance.</p>
<p>Il faut toujours se Rappeler que la clef de la gestion des performances des applications web est : <em>Vigilance constante</em>.</p>
<p>Les mesures de performances doivent être inscrites dans le cycle de vie du développement des applications web…<br />
Mais, ceci est un autre sujet..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxiasoft.com/blog_corporate/?feed=rss2&amp;p=75</wfw:commentRss>
		</item>
		<item>
		<title>Utiliser un Wiki pour optimiser le développement d’application web et améliorer la qualité des livrables</title>
		<link>http://www.oxiasoft.com/blog_corporate/?p=74</link>
		<comments>http://www.oxiasoft.com/blog_corporate/?p=74#comments</comments>
		<pubDate>Tue, 16 Jun 2009 09:28:28 +0000</pubDate>
		<dc:creator>Khaled BENDRISS</dc:creator>
		
		<category><![CDATA[Méthodologique]]></category>

		<guid isPermaLink="false">http://www.oxiasoft.com/blog_corporate/?p=74</guid>
		<description><![CDATA[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&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<p>Les applications web prennent de plus en plus de place dans le SI de l’Entreprise 2.0 (<a href="http://www.lemondeinformatique.fr/oracle/?utm_source=kj&amp;utm_medium=%20nepr&amp;utm_campaign=juin_oracle&amp;utm_nooverride=1" target="_blank">voir la définition sur le site LMI</a>).</p>
<p>Selon une étude présentée par le site d’information TIC <a href="http://www.lemondeinformatique.fr/oracle/?utm_source=kj&amp;utm_medium=%20nepr&amp;utm_campaign=juin_oracle&amp;utm_nooverride=1" target="_blank">lemondeinformatique</a>, toujours plus d&#8217;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&#8217;entreprise plus compliqués participent à ce processus.</p>
<p>Avant de commencer : Que sont exactement les wikis, et plus particulièrement les wikis d’entreprise?</p>
<p>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 tiennent à jour [source <a href="http://www.lemondeinformatique.fr/oracle/?utm_source=kj&amp;utm_medium=nepr&amp;utm_campaign=juin_oracle&amp;utm_nooverride=1" target="_blank">LMI</a>, pas wikipedia].</p>
<p>Mais, alors, Comment les Wiki peuvent ils aider les équipes de développement des applications web ?</p>
<p>Je suggère au moins deux axes d’amélioration : l’axe cycle de vie d’un développement logiciel et l’axe produit livré</p>
<p>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 le communiquer. Depuis quelques années on admet qu’on arrive à utiliser avec succès le wiki dans la définition du cycle de vie.</p>
<p>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.</p>
<p>L’amélioration de ce manuel utilisateur pourra se poursuivre tout au long de la vie de l’application et lors des phases de maintenance (évolutive ou corrective).<br />
Le coût global 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.</p>
<p>Le Wiki pourra même être intégré à l’application en réalisant le bon choix:</p>
<p>Dans le cas d’application Java EE : il suffit d’utiliser, par exemple, <a href="http://www.xwiki.com/" target="_blank">XWiki</a></p>
<p>Dans la cas .Net : utiliser le wiki de SharePoint (version &#8220;gratuite&#8221; WSS 3.0 de Windows 2003)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxiasoft.com/blog_corporate/?feed=rss2&amp;p=74</wfw:commentRss>
		</item>
		<item>
		<title>Améliorer la performance de vos travaux de fin de journée par « la JDBC Batch » et Spring : jusqu’à 90% de gain de performance</title>
		<link>http://www.oxiasoft.com/blog_corporate/?p=55</link>
		<comments>http://www.oxiasoft.com/blog_corporate/?p=55#comments</comments>
		<pubDate>Tue, 12 May 2009 16:05:40 +0000</pubDate>
		<dc:creator>Khaled BENDRISS</dc:creator>
		
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.oxiasoft.com/blog_corporate/?p=55</guid>
		<description><![CDATA[L’une des fonctionnalités la moins connue de JDBC est sa capacité à exécuter des opérations SQL par Lot en combinat les méthodes addBatch et executeBatch de Statement (et les autres variantes de Statement).
Je présente dans cette étude une expérience simple qui montre l’utilité, d’un point de vue temps de réponse globale, de l’exploitation judicieuse de [...]]]></description>
			<content:encoded><![CDATA[<p align="left" style="margin: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" title="blog-tableau-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/graphique-1-blog.JPG" title="graphique-1-blog.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-2.JPG" title="blog-tableau-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-graphique-2.JPG" title="blog-graphique-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-3.JPG" title="blog-tableau-3.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-4.JPG" title="blog-tableau-4.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-5.JPG" title="blog-tableau-5.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-6.JPG" title="blog-tableau-6.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-6.JPG" title="blog-tableau-6.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-7.JPG" title="blog-tableau-7.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/image-blog-a.JPG" title="image-blog-a.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/image-blog-a.JPG" title="image-blog-a.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/image-blog-a.JPG" title="image-blog-a.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a>L’une des fonctionnalités la moins connue de JDBC est sa capacité à exécuter des opérations SQL par Lot en combinat les méthodes addBatch et executeBatch de Statement (et les autres variantes de Statement).</font></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri">Je présente dans cette étude une expérience simple qui montre l’utilité, d’un point de vue temps de réponse globale, de l’exploitation judicieuse de cette fonctionnalité.</font></p>
<p><strong><font face="Calibri">Exécution d&#8217;opérations par lot<o:p></o:p></font></strong></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri">Pour améliorer les performances lors de la réalisation de mises à jour multiples d&#8217;une base de données, un grand nombre de pilote JDBC (Oraxcle, PostgrSQL, MS SQL) offre la possibilité de soumettre plusieurs mises à jour comme un seul travail, appelé également lot. </font></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri">La méthode addBatch permet d&#8217;ajouter une commande. </font></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri">La méthode executeBatch permet de soumettre toutes les commandes pour traitement. </font></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri">Seules des instructions DDL (Data Definition Language, langage de définition de données) et DML (Data Manipulation Language, langage de manipulation de données) retournent un seul nombre de mises à jour peuvent être exécutées dans un lot. </font></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri">La méthode executeBatch retourne un tableau de valeurs int correspondant au nombre de mises à jour de chaque commande. </font></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal"><strong><font face="Calibri">JSBC et <span>Exécution d&#8217;opérations par lot</span></font></strong></p>
<p><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></span></font><font face="Calibri"><span></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Regroupement de plusieurs mises à jour:</p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">connexion.setAutoCommit(false);</p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Statement st = connexion.createStatement();</p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">st.addBatch(&#8221;INSERT &#8230;&#8221;); // Ajoute une requête SQL pour executeBatch</p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">st.addBatch(&#8221;UPDATE &#8230;&#8221;); // Ajoute une requête SQL pour executeBatch</p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">int[] nb = st.executeBatch(); // retourne le nombre de Mise à jour effectuées</p>
<p><strong>Méthode « appropriée pour le codage » : exploiter l’abstraction de l’Ioc avec Spring</strong></p>
<p>Je recommande d’utiliser Utiliser la copmbinaison suivante</p>
<p style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt" class="MsoListParagraphCxSpFirst"><span><span>a)<span style="font: 7pt 'Times New Roman'">      </span></span></span><span dir="ltr"></span>PreparedStatement </p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraphCxSpLast"><span><span>b)<span style="font: 7pt 'Times New Roman'">      </span></span></span><span dir="ltr"></span>Spring templates pour les Batch updates </p>
<p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Ainsi, On peut combiner des « Prepared Statement » et des « Batch updates ».</p>
<p><o:p>    <a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p> <a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" title="blog-tableau-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/graphique-1-blog.JPG" title="graphique-1-blog.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-2.JPG" title="blog-tableau-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-graphique-2.JPG" title="blog-graphique-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-3.JPG" title="blog-tableau-3.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-4.JPG" title="blog-tableau-4.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-5.JPG" title="blog-tableau-5.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-6.JPG" title="blog-tableau-6.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-6.JPG" title="blog-tableau-6.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-7.JPG" title="blog-tableau-7.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/image-blog-a.JPG" title="image-blog-a.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/image-blog-a.JPG" title="image-blog-a.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/image-blog-a.JPG" title="image-blog-a.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" alt="blog-image-1.JPG" /></a></o:p><o:p></o:p><o:p></p>
<p align="left" style="margin: 0cm 0cm 10pt" class="MsoNormal"><strong><font face="Calibri">Outils de mesure :</font></strong></p>
<p><font face="Calibri"></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Le plus simple c’est d’utiliser un profilé ou bien l’AOP avec Spring.</p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Dans cette présentation, j’ai utilisé NetBeans profilé version 6.5.1.</p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">24 mesures ont été effectuées dans les conditions suivantes</p>
<p style="margin: 0cm 0cm 10pt 35.4pt" class="MsoNormal">Un Laptop avec 2Go De RAM (les mesures n’ont pas de valeurs intrinsèques, c’est la comparaison des résutlats qui m’interesse)</p>
<p style="margin: 0cm 0cm 10pt 35.4pt" class="MsoNormal">Une base de données PostgrSQL sous Windows</p>
<p style="margin: 0cm 0cm 10pt 35.4pt" class="MsoNormal">La table est vidée après chaque exécution (avoir les mêmes conditions)</p>
<p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Les paramètres qui ont été variés</p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal"><span>                </span>Le nombre d’insertion : de 100 à 10000</p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal"><span>                </span>La valeur <span style="color: black">batchsize (taille du lots d’opérations SQL à batcher ) : de 1 à 200</span></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal"><strong>Les résultats sont les suivants : </strong></p>
<p><strong><o:p></o:p></strong> <a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" title="blog-tableau-1.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" alt="blog-tableau-1.JPG" /></a> <a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" title="blog-tableau-1.JPG"></a></p>
<p align="left"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/graphique-1-blog.JPG" title="graphique-1-blog.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/graphique-1-blog.JPG" alt="graphique-1-blog.JPG" /></a></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Ramené à l’unité : temps de réponse moyen d’une seule insertion</p>
<p><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" title="blog-tableau-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/graphique-1-blog.JPG" title="graphique-1-blog.JPG"></a></p>
<p align="left" style="margin: 0cm 0cm 10pt" class="MsoNormal"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-2.JPG" title="blog-tableau-2.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-2.JPG" alt="blog-tableau-2.JPG" /></a></p>
<p><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" title="blog-tableau-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/graphique-1-blog.JPG" title="graphique-1-blog.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-2.JPG" title="blog-tableau-2.JPG"></a></p>
<p align="left" style="margin: 0cm 0cm 10pt" class="MsoNormal"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-graphique-2.JPG" title="blog-graphique-2.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-graphique-2.JPG" alt="blog-graphique-2.JPG" /></a></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Si on estime le gain en % de temps de réponse pour une insertion, on remarque l’impact de cette méthode sur le résultat final pour les grands nombre d’insertion (jusqu’à 90% !!).</p>
<p align="center" style="margin: 0cm 0cm 10pt" class="MsoNormal"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" title="blog-tableau-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/graphique-1-blog.JPG" title="graphique-1-blog.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-2.JPG" title="blog-tableau-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-graphique-2.JPG" title="blog-graphique-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-3.JPG" title="blog-tableau-3.JPG"><img align="left" src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-3.JPG" alt="blog-tableau-3.JPG" /></a></p>
<p><strong>                                                </strong></p>
<p><strong>Observations annexes : <o:p></o:p></strong></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">La création d’objets relatifs à l’opération JDBC, java.sql.*, permet de comprendre comment se passe les opérations.</p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Cas : batch size = 1 et 10000 insert</p>
<p align="center" style="margin: 0cm 0cm 10pt" class="MsoNormal"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" title="blog-tableau-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/graphique-1-blog.JPG" title="graphique-1-blog.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-2.JPG" title="blog-tableau-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-graphique-2.JPG" title="blog-graphique-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-3.JPG" title="blog-tableau-3.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-4.JPG" title="blog-tableau-4.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-4.JPG" alt="blog-tableau-4.JPG" /></a></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Cas : batch size = 50 et 10000 insert</p>
<p align="center" style="margin: 0cm 0cm 10pt" class="MsoNormal"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" title="blog-tableau-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/graphique-1-blog.JPG" title="graphique-1-blog.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-2.JPG" title="blog-tableau-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-graphique-2.JPG" title="blog-graphique-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-3.JPG" title="blog-tableau-3.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-4.JPG" title="blog-tableau-4.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-5.JPG" title="blog-tableau-5.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-5.JPG" alt="blog-tableau-5.JPG" /></a></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Cas : batch size = 200 et 10000 insert</p>
<p align="center" style="margin: 0cm 0cm 10pt" class="MsoNormal"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" title="blog-tableau-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/graphique-1-blog.JPG" title="graphique-1-blog.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-2.JPG" title="blog-tableau-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-graphique-2.JPG" title="blog-graphique-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-3.JPG" title="blog-tableau-3.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-4.JPG" title="blog-tableau-4.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-5.JPG" title="blog-tableau-5.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-6.JPG" title="blog-tableau-6.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-6.JPG" alt="blog-tableau-6.JPG" /></a></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Objets crées par Spring</p>
<p align="center" style="margin: 0cm 0cm 10pt" class="MsoNormal"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" title="blog-tableau-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/graphique-1-blog.JPG" title="graphique-1-blog.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-2.JPG" title="blog-tableau-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-graphique-2.JPG" title="blog-graphique-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-3.JPG" title="blog-tableau-3.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-4.JPG" title="blog-tableau-4.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-5.JPG" title="blog-tableau-5.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-6.JPG" title="blog-tableau-6.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-6.JPG" title="blog-tableau-6.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-7.JPG" title="blog-tableau-7.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-7.JPG" alt="blog-tableau-7.JPG" /></a></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Confirmation du nombre d’appel à getConnection() : dans ce cas 10 fois moins d’appel à la connexion à la base de données que d’appel à la méthode update (qui contient la requête SQL SQL)</p>
<p align="center" style="margin: 0cm 0cm 10pt" class="MsoNormal"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-image-1.JPG" title="blog-image-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-1.JPG" title="blog-tableau-1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/graphique-1-blog.JPG" title="graphique-1-blog.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-2.JPG" title="blog-tableau-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-graphique-2.JPG" title="blog-graphique-2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-3.JPG" title="blog-tableau-3.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-4.JPG" title="blog-tableau-4.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-5.JPG" title="blog-tableau-5.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-6.JPG" title="blog-tableau-6.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-6.JPG" title="blog-tableau-6.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/blog-tableau-7.JPG" title="blog-tableau-7.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/image-blog-a.JPG" title="image-blog-a.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/05/image-blog-a.JPG" alt="image-blog-a.JPG" /></a></p>
<p><strong>Conclusion<o:p></o:p></strong></p>
<p style="margin: 0cm 0cm 10pt" class="MsoNormal">Pour améliorer les performances lors de la réalisation d’un grand nombre de mises à jour d&#8217;une base de données, il est fortement recommandé d’exploiter la capacité de JDBC à réaliser des mises à jour par lot.</p>
<p align="left" style="margin: 0cm 0cm 10pt" class="MsoNormal">&nbsp;</p>
<p></o:p></font></o:p></o:p></span></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxiasoft.com/blog_corporate/?feed=rss2&amp;p=55</wfw:commentRss>
		</item>
		<item>
		<title>Cloud Computing : Google à la conquête des développeurs java</title>
		<link>http://www.oxiasoft.com/blog_corporate/?p=50</link>
		<comments>http://www.oxiasoft.com/blog_corporate/?p=50#comments</comments>
		<pubDate>Tue, 14 Apr 2009 08:56:53 +0000</pubDate>
		<dc:creator>Khaled BENDRISS</dc:creator>
		
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.oxiasoft.com/blog_corporate/?p=50</guid>
		<description><![CDATA[
&#160;
On l’attendait pour le milieu de l’année, mais Google vient de la lancer officiellement au début de second trimestre 2009 : La « déclinaison » java de sa plate-forme Googe App Engine est désormais là. 
C’était logique : il fallait réagir rapidement : pour faire barrage à Microsoft Azure.
La manouvre est habile : supporter Java 6 et offrir un plugin Eclipse, [...]]]></description>
			<content:encoded><![CDATA[<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/04/graphique.JPG" title="graphique.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/04/photo-1.JPG" title="photo-1.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/04/photo-1.JPG" alt="photo-1.JPG" /></a></font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal">&nbsp;</p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">On l’attendait pour le milieu de l’année, mais Google vient de la lancer officiellement au début de second trimestre 2009 : La « déclinaison » java de sa plate-forme Googe App Engine est désormais là. </font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">C’était logique : il fallait réagir rapidement : pour faire barrage à Microsoft Azure.</font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">La manouvre est habile : supporter Java 6 et offrir un plugin Eclipse, permet à Google d’élargir la base de développeurs cible.</font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Google vise ainsi à faciliter la réutilisation de code source et à introduire les langages dynamique de type Groovy…</font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Et pour mon premier test, je suis « tombé sous le charme » : il m’a fallu moins d’une demi-heure pour déployer une ancienne application (simple) basée sur Struts sur le cloud de Google</font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Aucune modification n’a été nécessaire !</font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Certes : il n’y a avait pas de transaction, de base de données, de Spring, de Hibernate …</font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Voir le résultat : </font><a href="http://kbdsoft.appspot.com/"><span style="color: windowtext; text-decoration: none; text-underline: none"><font face="Calibri">http://kbdsoft.appspot.com/</font></span></a></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Un dashBoard permet de suivre l’activité de l’application :</font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal">&nbsp;</p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/04/graphique.JPG" title="graphique.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/04/graphique.JPG" alt="graphique.JPG" /></a></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal">&nbsp;</p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Mais, </font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Attention : l’accès gratuit est limité aux 10 000 premiers inscrits. </font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Affaire à suive (aussi !) ..</font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxiasoft.com/blog_corporate/?feed=rss2&amp;p=50</wfw:commentRss>
		</item>
		<item>
		<title>InfraRED : un outil de suivi des temps de réponse d’application J2EE, de monitoring et diagnostique de problèmes de performance.</title>
		<link>http://www.oxiasoft.com/blog_corporate/?p=36</link>
		<comments>http://www.oxiasoft.com/blog_corporate/?p=36#comments</comments>
		<pubDate>Tue, 24 Mar 2009 09:59:05 +0000</pubDate>
		<dc:creator>Khaled BENDRISS</dc:creator>
		
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.oxiasoft.com/blog_corporate/?p=36</guid>
		<description><![CDATA[InfraRED est un outil de suivi de performance d&#8217;une application J2EE. Il a la capacité de surveiller les temps de réponses d’applications Java EE complexes et fournir des mesures détaillées des temps de réponses des composants du système. 
InfraRED est très utile pour le diagnostic de problèmes de performances et permet, par exemple, de répondre [...]]]></description>
			<content:encoded><![CDATA[<p style="margin: 2pt 0cm" class="MsoNormal"><font face="Trebuchet MS"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl.JPG" title="kl.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl1.JPG" title="kl1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl2.JPG" title="kl2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl3.JPG" title="kl3.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl4.JPG" title="kl4.JPG"></a>InfraRED est un outil de suivi de performance d&#8217;une application J2EE. Il a la capacité de surveiller les temps de réponses d’applications Java EE complexes et fournir des mesures détaillées des temps de réponses des composants du système. </font></p>
<p style="margin: 2pt 0cm" class="MsoNormal"><font face="Trebuchet MS">InfraRED est très utile pour le diagnostic de problèmes de performances et permet, par exemple, de répondre aux questions suivantes :</font></p>
<ul type="square" style="margin-top: 0cm">
<li style="margin: 2pt 0cm; tab-stops: list 36.0pt" class="MsoNormal"><font face="Trebuchet MS">Combien de temps prend une transaction Web particulière? </font></li>
<li style="margin: 2pt 0cm; tab-stops: list 36.0pt" class="MsoNormal"><font face="Trebuchet MS"><span> </span>Combien de temps un utilisateur attend avant le chargement d’une page particulière? </font></li>
<li style="margin: 2pt 0cm; tab-stops: list 36.0pt" class="MsoNormal"><font face="Trebuchet MS">Quelle es la décomposition des temps consommées par chaque composants (http, struts, JDBC, …)? </font></li>
</ul>
<p><o:p><font face="Trebuchet MS"> </font></o:p></p>
<p style="margin: 2pt 0cm" class="MsoNormal"><font face="Trebuchet MS">Il collecte les mesures de temps de réponses sur divers aspects d&#8217;une application et les rend disponible pour l&#8217;analyse ou à des fin d&#8217;alerte ou pour assister dans la phase de recherche de causes pour des problèmes de lenteurs. </font></p>
<p style="margin: 2pt 0cm" class="MsoNormal">&nbsp;</p>
<p style="margin: 2pt 0cm" class="MsoNormal">                    <a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl.JPG" title="kl.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl.JPG" alt="kl.JPG" /></a></p>
<p style="margin: 2pt 0cm" class="MsoNormal">&nbsp;</p>
<p style="margin: 2pt 0cm" class="MsoNormal"><font face="Trebuchet MS">InfraRED exploite les mécanises de l’AOP (Aspect Oriented Programming) pour instrumentaliser le code source en ajoutant les instructions de mesure des temps de réponse (AspectJ &amp; Aspectwerkz) au byteCode des applications, déjà déployées dans le serveur d’application J2EE. </font></p>
<p><o:p><font face="Trebuchet MS"> </font></o:p><o:p><font face="Trebuchet MS"><strong>Pourquoi utiliser Infrared ?<o:p></o:p></strong></font></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p><font face="Trebuchet MS"></p>
<p style="margin: 2pt 0cm" class="MsoNormal">Les principaux avantages d’Infrared sont :</p>
<p style="margin: 2pt 0cm" class="MsoNormal">     - Il est capable de collecter des statistiques sur les différents aspects de<span style="font-size: 12pt; color: black; line-height: 150%"> </span>performance d’une application J2EE et de les rendre disponible pour une analyse de bout en bout</p>
<p style="margin: 0cm 0cm 0pt 72pt; text-indent: -18pt" class="MsoListParagraphCxSpMiddle"><span style="font-family: 'Courier New'"><span>o<span style="font: 7pt 'Times New Roman'">   </span></span></span><span dir="ltr"></span>HTTP</p>
<p style="margin: 0cm 0cm 0pt 72pt; text-indent: -18pt" class="MsoListParagraphCxSpMiddle"><span style="font-family: 'Courier New'"><span>o<span style="font: 7pt 'Times New Roman'">   </span></span></span><span dir="ltr"></span>JDBC</p>
<p style="margin: 0cm 0cm 0pt 72pt; text-indent: -18pt" class="MsoListParagraphCxSpMiddle"><span style="font-family: 'Courier New'"><span>o<span style="font: 7pt 'Times New Roman'">   </span></span></span><span dir="ltr"></span>WEB</p>
<p style="margin: 0cm 0cm 0pt 72pt; text-indent: -18pt" class="MsoListParagraphCxSpMiddle"><span style="font-family: 'Courier New'"><span>o<span style="font: 7pt 'Times New Roman'">   </span></span></span><span dir="ltr"></span>SQL</p>
<p style="margin: 0cm 0cm 0pt 72pt; text-indent: -18pt" class="MsoListParagraphCxSpMiddle"><span style="font-family: 'Courier New'"><span>o<span style="font: 7pt 'Times New Roman'">   </span></span></span><span dir="ltr"></span>Hibernate</p>
<p><span style="font-size: 12pt; color: black; line-height: 150%; font-family: Symbol"><span><span style="font: 7pt 'Times New Roman'">     -  </span></span></span><span dir="ltr"></span>Il est non intrusif, adaptée aux environnements de pré-production, aucun changement dans le code source de l’application n’est nécessaire.</p>
<p><span style="font-size: 12pt; color: black; line-height: 150%; font-family: Symbol"><span><span style="font: 7pt 'Times New Roman'"></span></span></span><span dir="ltr"></span>     - Le niveau de statistiques est configurable </p>
<p>     - Il est adapté au suivi de la couche d’accès aux données</p>
<p>     - Une console web et la capacité d’export vers Excel</p>
<p>     - Il offre la capacité de présenter les séquences d’appel entre les méthodes</p>
<p>     - Il est open source</p>
<p><span style="font-size: 12pt; color: black; line-height: 150%; font-family: Symbol"><span><font face="Trebuchet MS"> </font></span></span></font> <a name="_Toc198096369" title="_Toc198096369"></a><span><strong><font face="Trebuchet MS">Exemple d’utilisation </font></strong></span><strong><font face="Trebuchet MS">d’InfraRED<o:p></o:p></font></strong> </o:p></p>
<p style="margin: 2pt 0cm" class="MsoNormal"><font face="Trebuchet MS">Une fois installé, InfraRED instrumente le bytecode des applications et ajoute des instructions pour le suivie et la calcul des temps de réponses. Il est capable de différencier les types d’appel selon les couches (web, java, JDBC..) :</font></p>
<p style="margin: 2pt 0cm" class="MsoNormal">&nbsp;</p>
<p style="margin: 2pt 0cm" class="MsoNormal">&nbsp;</p>
<p style="margin: 2pt 0cm" class="MsoNormal"><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl.JPG" title="kl.JPG"></a>   <a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl1.JPG" title="kl1.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl1.JPG" alt="kl1.JPG" /></a></p>
<p style="margin: 2pt 0cm" class="MsoNormal">&nbsp;</p>
<p style="margin: 2pt 0cm" class="MsoNormal"><span><font face="Trebuchet MS">Il est capable de présenter les temps de réponses pour les classes de Struts (1.2.x)</font></span></p>
<p style="margin: 2pt 0cm" class="MsoNormal"><span></span></p>
<p><span><font face="Trebuchet MS"><o:p></o:p></font></span>   <a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl.JPG" title="kl.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl1.JPG" title="kl1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl2.JPG" title="kl2.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl2.JPG" alt="kl2.JPG" /></a><span><font face="Trebuchet MS">  Il est capable de présenter les temps de réponses pour les appels de JSP</font></span><span><font face="Trebuchet MS"><o:p><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl.JPG" title="kl.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl1.JPG" title="kl1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl2.JPG" title="kl2.JPG"></a>  <a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl3.JPG" title="kl3.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl3.JPG" alt="kl3.JPG" /></a></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></o:p></font></span><span><font face="Trebuchet MS"><o:p></p>
<p style="margin: 2pt 0cm" class="MsoNormal">L’inspection des requêtes SQL exécutés ou générées par l’application étudiée, reste la fonctionnalité la plus intéressantes de Infrared.</p>
<p style="margin: 2pt 0cm" class="MsoNormal">En effet, il permet de mesurer les requêtes SQL les plus coûteuses <span> </span>en termes de nombre d’exécution et de temps moyen d’exécution (nombre paramétrable).</p>
<p><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl.JPG" title="kl.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl1.JPG" title="kl1.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl2.JPG" title="kl2.JPG"></a><a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl3.JPG" title="kl3.JPG"></a>   <a href="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl4.JPG" title="kl4.JPG"><img src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/kl4.JPG" alt="kl4.JPG" /></a></p>
<p><strong>Compromis information Vs impact sur les performances<o:p></o:p></strong></p>
<p style="margin: 2pt 0cm" class="MsoNormal">Il est recommandé d’utiliser Infrared avec précautions.</p>
<p style="margin: 2pt 0cm" class="MsoNormal">En effet, observer un système ne peut se faire sans le perturber, l’utilisation d’Infrared va impacter les performances de l’application (impact estimé à moins de 5%). Cet impact est essentiellement lié à l’empreinte sur la mémoire de statistiques collectées en temps réel et à l’insertion périodique dans la base de données de ces informations.</p>
<p><o:p> </o:p><o:p> </o:p><o:p> </o:p><o:p><o:p> </o:p><strong>Installation simple à mettre en œuvre en 4 étapes<o:p></o:p></strong></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></o:p><o:p></p>
<p style="margin: 2pt 0cm" class="MsoNormal">Après avoir Téléchargé Infrared à partir de l’adresse : <a href="http://infrared.sourceforge.net/versions/latest/"><font color="#800080">http://infrared.sourceforge.net/versions/latest/</font></a></p>
<p style="margin: 2pt 0cm 2pt 36pt; text-indent: -18pt" class="MsoListParagraph"><span><span>A)<span style="font: 7pt 'Times New Roman'">   </span></span></span><span dir="ltr"></span>Ajouter dans un variable d’environnement INFRARED_HOME</p>
<p style="margin: 2pt 0cm 2pt 53.4pt; text-indent: -18pt; tab-stops: list 53.4pt" class="MsoNormal"><span style="font-family: Symbol"><span>·<span style="font: 7pt 'Times New Roman'">         </span></span></span><span dir="ltr"></span>Ajouter dans le variable d’environnement JAVA_OPTS: -javaagent:%INFRARED_HOME%\aspectjweaver-1.5.0.jar</p>
<p><span lang="EN-US"><span>B)<span style="font: 7pt 'Times New Roman'">   </span></span></span><span dir="ltr"></span><span lang="EN-US">Copier le jar $INFRARED_HOME$\infrared-aspectsystem-all-2.4.1.BETA.jar<span>  </span>dans<span>  </span>TOMCAT_HOME\lib<o:p></o:p></span></p>
<p style="margin: 2pt 0cm 2pt 53.4pt; text-indent: -18pt; tab-stops: list 53.4pt" class="MsoNormal"><span style="font-family: Symbol"><span>·<span style="font: 7pt 'Times New Roman'">         </span></span></span><span dir="ltr"></span>Copier le jar $INFRARED_HOME$\infrared-agent-all-servlet-2.4.1.BETA.jar<span>   </span>dans<span>  </span>TOMCAT_HOME\lib</p>
<p style="margin: 2pt 0cm 2pt 53.4pt; text-indent: -18pt; tab-stops: list 53.4pt" class="MsoNormal"><span style="font-family: Symbol"><span>·<span style="font: 7pt 'Times New Roman'">         </span></span></span><span dir="ltr"></span>Copier le fichier INFRARED_HOME\props\infrared-agent.properties dans le WEB-INF/classes de l’application à monitorer.</p>
<p style="margin: 2pt 0cm 2pt 18pt" class="MsoNormal">C) Ajouter InfraRED application startup listener :</p>
<p style="margin: 2pt 0cm 2pt 89.4pt; text-indent: -18pt; tab-stops: list 89.4pt" class="MsoListParagraph"><span style="font-family: 'Times New Roman','serif'"><span>-<span style="font: 7pt 'Times New Roman'">          </span></span></span><span dir="ltr"></span>Pour les WAR web application, ajouter le code suivant dans fichier WEB-INF/web.xml</p>
<table border="1" cellPadding="0" cellSpacing="0" style="margin: auto auto auto 19.6pt; border-collapse: collapse; border: medium none" class="MsoTableGrid">
<tr>
<td width="425" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 318.95pt; padding-top: 0cm; background-color: transparent; border: black 1pt solid"><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS">&lt;web-app&gt;</font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span>                                                                                                                      </span>..                                                                                                                                   <span>    </span></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span></span><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS">&lt;filter&gt;                                                                                                                                                                               </font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS">&lt;filter-name&gt;                                                                                             infrared                                                                                                                           &lt;/filter-name&gt;                                                                                                                 </font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS">&lt;filter-class&gt;<o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span>  </span></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span>                                  </span>                                                     net.sf.infrared.aspects.servlet.InfraREDServletFilter                                                          </font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS">&lt;/filter-class&gt;<o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span>                                                                                                    </span></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span></span>&lt;/filter&gt;                                                                                                                               </font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS">&lt;filter-mapping&gt;</font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span>                                                                                                            </span>&lt;filter-name&gt;                                                                                                             infrared                                                                                                                           &lt;/filter-name&gt;                                                                                                               </font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS">&lt;url-pattern&gt;    /* &lt;/url-pattern&gt;                                                                                 </font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS">&lt;/filter-mapping&gt;<o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span>                                                                                                    </span></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span> </span><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS">&lt;listener&gt;</font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span>                                                                                                                     </span>&lt;listener-class&gt;<o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span> </span></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span>                                </span>net.sf.infrared.agent.setup.InfraREDServletContextListener                                            <o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span>  </span></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span></span>&lt;/listener-class&gt;                                                                                       </font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS">&lt;/listener&gt;</font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><span>                                                                                                                       </span>..                                                                                                                                       </font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS"><o:p></o:p></font></span><span style="font-size: 8pt; line-height: 150%" lang="EN-US"><font face="Trebuchet MS">&lt;/web-app&gt;<o:p></o:p></font></span></td>
</tr>
</table>
<p><span lang="EN-US"><o:p> </o:p></span></p>
<p style="margin: 2pt 0cm 2pt 36pt; text-indent: -18pt" class="MsoListParagraph"><span><span>C)<span style="font: 7pt 'Times New Roman'">   </span></span></span><span dir="ltr"></span>InfraRED web interface peut être trouvée dans<span>  </span>INFRARED_HOME/infrared-web-all-2.4.1.BETA.war. Le WAR peut être installé sur n&#8217;importe quel conteneur Web J2EE.</p>
<p><o:p> </o:p></o:p></o:p></font></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxiasoft.com/blog_corporate/?feed=rss2&amp;p=36</wfw:commentRss>
		</item>
		<item>
		<title>Quelles « résolutions technologiques » pour Java durant l’année 2009 ?</title>
		<link>http://www.oxiasoft.com/blog_corporate/?p=30</link>
		<comments>http://www.oxiasoft.com/blog_corporate/?p=30#comments</comments>
		<pubDate>Mon, 23 Mar 2009 17:38:11 +0000</pubDate>
		<dc:creator>Khaled BENDRISS</dc:creator>
		
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.oxiasoft.com/blog_corporate/?p=30</guid>
		<description><![CDATA[
La question de proposer des « résolutions technologiques » de l’année 2009 se pose en Janvier :  
Quelles sont les technologies Java qui ont atteint une certaine maturité nous permettant de les utiliser dans des projets réels, et d’investir du temps à les connaitre et les maitriser ?
Sans regretter ce choix  quelques mois après :
 
- OSGI (SpringDM) en préparation d’un [...]]]></description>
			<content:encoded><![CDATA[<p><font face="Calibri"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"></span></span></span></span></font><font face="Calibri"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"></span></span></span></span></font><font face="Calibri"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">La question de proposer des « résolutions technologiques » de l’année 2009 se pose en Janvier :  </font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Quelles sont les technologies Java qui ont atteint une certaine maturité nous permettant de les utiliser dans des projets réels, et d’investir du temps à les connaitre et les maitriser ?</font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Sans regretter ce choix  quelques mois après :</font></p>
<p><o:p><font face="Calibri"> </font></o:p></p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraph"><font face="Calibri">- OSGI (SpringDM) en préparation d’un monde </font></p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraph"><font face="Calibri">- Grouvy/grails sous l’égide de Spring</font></p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraph"><font face="Calibri"><font face="Calibri">- Android</font></font></p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraph"><font face="Calibri"><font face="Calibri">- JavaFX</font></font></p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraph"><font face="Calibri"><font face="Calibri">- EclipseLink en remplacement de Hibernate qui stagne</font></font></p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraph"><font face="Calibri"><font face="Calibri">- RAP (Eclipse)</font></font></p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraph"><font face="Calibri">- SCA vers un monde de services (Spring est présent là aussi) </font></p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraph"><font face="Calibri">- JBPM  4 &amp;BPMN</font></p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraph"><span><span><span style="font: 7pt 'Times New Roman'"><font size="3" face="Calibri">- GoogleAPPs (s’il adopte java)</font>   </span></span></span><span><span><span style="font: 7pt 'Times New Roman'">   </span></span></span></p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraph"><span><span><span style="font: 7pt 'Times New Roman'"></span></span></span><span><span><span style="font: 7pt 'Times New Roman'"><font size="3" face="Calibri"><font face="Times New Roman"> </font>- SCALA (à suivre de très près  )</font> </span></span></span><span><span><span style="font: 7pt 'Times New Roman'">   </span></span></span></p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraph"><span><span><span style="font: 7pt 'Times New Roman'">  </span></span></span><span><span><span style="font: 7pt 'Times New Roman'">   </span></span></span></p>
<p><span><span><span style="font: 7pt 'Times New Roman'"></span></span></span><font face="Calibri"></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal">Nous avouons que la question est difficile, mais la tentation est grande de se lancer des résolutions en ce début d’année (ça serait  plus facile à faire le 31 décembre 2010)</p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal">A suivre&#8230;</p>
<p style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt" class="MsoListParagraph">&nbsp;</p>
<p></font><o:p><font face="Calibri"> </font></o:p></span></span></span></span></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxiasoft.com/blog_corporate/?feed=rss2&amp;p=30</wfw:commentRss>
		</item>
		<item>
		<title>Groovy et Grails dans le giron de SpringSource : Un bel avenir pour les langages dynamiques</title>
		<link>http://www.oxiasoft.com/blog_corporate/?p=29</link>
		<comments>http://www.oxiasoft.com/blog_corporate/?p=29#comments</comments>
		<pubDate>Mon, 23 Mar 2009 17:36:32 +0000</pubDate>
		<dc:creator>Khaled BENDRISS</dc:creator>
		
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.oxiasoft.com/blog_corporate/?p=29</guid>
		<description><![CDATA[
SpringSource a mis la main sur Groovy (un language dynamique pour la JVM), et Grails(un framework de développement « rapide » Web, de type Ruby), en achetant la société G2One.
 
On pense que cela va booster le Langage Groovy, même s’il est déjà le langage dynamique pour la JVM le plus populaire. 
En fait cela va booster l’idée [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"></span><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"></span><span style="font-size: 12pt; font-family: 'Times New Roman','serif'"></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">SpringSource a mis la main sur </font><a target="_blank" href="http://groovy.codehaus.org/"><span style="color: windowtext; text-decoration: none; text-underline: none"><font face="Calibri">Groovy</font></span></a><font face="Calibri"> (un language dynamique pour la JVM), et </font><a target="_blank" href="http://grails.org/"><span style="color: windowtext; text-decoration: none; text-underline: none"><font face="Calibri">Grails</font></span></a><font face="Calibri">(un framework de développement « rapide » Web, de type Ruby), en achetant la société G2One.</font></p>
<p><o:p><font face="Calibri"> </font></o:p></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">On pense que cela va booster le Langage Groovy, même s’il est déjà le langage dynamique pour la JVM le plus populaire. </font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">En fait cela va booster l’idée même d’utiliser un langage dynamique, avant même l’arrivée de Java 7 qui pousse vers la même direction.</font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">En ce qui concerne </font><a target="_blank" href="http://grails.org/"><span style="color: windowtext; text-decoration: none; text-underline: none"><font face="Calibri">Grails</font></span></a><font face="Calibri">, les choses sont peu plus compliquées, </font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">On <span> </span>lui prédit un bon avenir du coté des maquettes, des sites d’administration et des applications web « éphémères » ou à usage unique.</font></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Attendons un peu de voire la direction que va donner SpringSource (ex interface 21) à ce type de langage où ce qui est simple devient presque implicite…</font></p>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxiasoft.com/blog_corporate/?feed=rss2&amp;p=29</wfw:commentRss>
		</item>
		<item>
		<title>Spring, Eclipse &#038; Flex : quelle relation ?</title>
		<link>http://www.oxiasoft.com/blog_corporate/?p=28</link>
		<comments>http://www.oxiasoft.com/blog_corporate/?p=28#comments</comments>
		<pubDate>Wed, 18 Mar 2009 08:09:29 +0000</pubDate>
		<dc:creator>Khaled BENDRISS</dc:creator>
		
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.oxiasoft.com/blog_corporate/?p=28</guid>
		<description><![CDATA[Spring &#38; Flex :
SpringSource, continue dans sa lance pour rendre Springframwork incontournable dans le monde java et tout ce qui est en relation avec Java EE.A la base un Ioc, Springframwork a relevé le défi « annoncé » de simplifier le développement Java EE, et peut être avec une arrière pensé «à peine cachée» de s’y substituer.La majorité [...]]]></description>
			<content:encoded><![CDATA[<p><strong><font face="Times New Roman">Spring &amp; Flex :</font></strong></p>
<p><strong><font face="Times New Roman"><o:p></o:p></font></strong><font face="Times New Roman">SpringSource, continue dans sa lance pour rendre Springframwork incontournable dans le monde java et tout ce qui est en relation avec Java EE.</font><font face="Times New Roman">A la base un Ioc, Springframwork a relevé le défi « annoncé » de simplifier le développement Java EE, et peut être avec une arrière pensé «à peine cachée» de s’y substituer.</font><font face="Times New Roman">La majorité des projets Sping simplifient le coté « back end<span>  </span> », quelques autres assistent les technologies du client GUI (IHM) : Sping MVC, SpringRCP, support JSF, …</font><font face="Times New Roman">Mais <strong>voilà</strong>, Sping est en phase finale de livraison d’une intégration du monde Flex, à Java EE<span>  </span>avec le monde Java EE, un projet lancé en 2007.</font></p>
<h2 style="margin: auto 0cm"><font face="Times New Roman"><span style="font-weight: normal; font-size: 12pt">C’est le projet</span><span style="font-size: 12pt"> </span></font><a href="http://www.springsource.org/spring-flex"><span style="font-size: 12pt"><font face="Times New Roman">Spring BlazeDS Integration</font></span></a><font face="Times New Roman"><u><span style="font-size: 12pt; color: blue">.</span></u><span style="font-size: 12pt"> <o:p></o:p></span></font></h2>
<p><font face="Times New Roman">Rappelons, que </font><a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/"><font face="Times New Roman">BlazeDS</font></a><font face="Times New Roman"> est un complément à Flex pour connecter un(e) RIA (Rich Internet Application) basé sur Flex à des services java dans le Back-end. </font></p>
<p><font face="Times New Roman">En effet, un(e) super RIA sans données « synchronisés » avec les applications du Système d’Information, n’a aucun sens pour des applications d’« Entreprise ».</font></p>
<p><font face="Times New Roman">Ainsi<u>,<span style="color: blue"> Spring BlazeDS </span></u></font><a href="http://www.springsource.org/spring-flex"><font face="Times New Roman">Integration</font></a><font face="Times New Roman"><u><span style="color: blue">,</span></u> est supposé amener vers Flex, une bonne partie des habitués et fidèles de java et Spring Ioc.</font></p>
<p><font face="Times New Roman">Un super cadeau à Adobe (j’espère pour SpingSource qu’il a bien négocié son effort).</font></p>
<p><font face="Times New Roman">Rappelons, qu’un autre projet open source, plus ancien,<strong> Granite Data Services</strong> (GraniteDS or GDS) est en concurrence avec BlazeDS. Mais que ce dernier, n’ayant pas eu le support direct de SpringSopurce, offre, lui-même, </font><a href="http://www.graniteds.org/confluence/display/DOC/2.+Spring+Services"><font face="Times New Roman">sa propre intégration avec Spring.</font></a></p>
<p><strong><font face="Times New Roman">Eclipse &amp; Flex :<o:p></o:p></font></strong><font face="Times New Roman">D’un autre coté, la fondation Eclipse, toujours soutenue par IBM, continue à préparer la prochaine version de Eclipse, la fameuse </font><a href="http://download.eclipse.org/e4/downloads/drops/S-0.9M1-200902061045/e4-news-M1.html"><font face="Times New Roman">Eclipse e4</font></a><font face="Times New Roman"> (qui est encore à la version 0.9M1 et annoncé pour la mi-2010.).</font><font face="Times New Roman">Le plus intéressant, c’est l’effort consenti sur la migration de SWT vers Flex : Code ton application en SWT/java et publie le résultat sous forme SWF de Flex (avec du ActionScript).<span>  </span></font><font face="Times New Roman">L’idée est simple et même pas originale, me dirait on de coté GWT !</font><font face="Times New Roman">Le projet n’est pas aussi évident, c’est popur cela que Eclipse creuse d’autre piste en parallèle, SWT vers dojo et </font><a href="http://www.eclipse.org/rap/"><font face="Times New Roman">RAP</font></a><font face="Times New Roman"> (</font><a href="http://www.rap-book.com/index.html"><span style="color: windowtext; text-decoration: none; text-underline: none"><font face="Times New Roman">Eclipse Rich Ajax Platform</font></span></a><font face="Times New Roman">).</font><strong><font face="Times New Roman">Spring, Eclipse &amp; Flex : quelle relation ?<o:p></o:p></font></strong><font face="Times New Roman">La question qui se pose alors : </font><font face="Times New Roman">Est-ce qu’il s’agit d’une simple réponse, à la demande des utilisateurs de Flex, ou bien d’une prédiction que Flex va remporter la guerre des RIA en relation avec le </font><a href="http://net-progress.blogspot.com/2009/01/plateforme-as-service-paas-le-modle.html"><font face="Times New Roman">virage SaaS</font></a><font face="Times New Roman">, et pas seulement la bataille du Web 2.0. </font><font face="Times New Roman">Tout cela pour contrer SUN ? et JavaFX ?</font><font face="Times New Roman">Si cela se confirme, il est temps d’investir sur Flex! Qui n’est malheureusement pas un standard, et dont la pérennité dépend d’un seul acteur (bien qu’il soit open source).</font><font face="Times New Roman">A suivre ..</font></p>
<p><img border="0" width="470" src="http://www.oxiasoft.com/blog_corporate/wp-content/uploads/2009/03/spring-eclips.JPG" height="876" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxiasoft.com/blog_corporate/?feed=rss2&amp;p=28</wfw:commentRss>
		</item>
	</channel>
</rss>
