mercredi 29 juillet 2009

Microsoft-Yahoo Vs Google : La guerre des moteurs ou la recherche moteur de la guerre

En ce mois de juillet 2009, un accord, pour sauver les bénéfices de Yahoo, en chute libre depuis quelques mois

Enfin, un accord de 10 ans pour mettre sur les rails le nouveau moteur de recherche de Microsoft BING (et à dieu msn).

Enfin un accord sur les rôles : Microsoft pour la technologie recherche et Yahoo pour la gestion des annonces.

Un accord entre le numéro 2 et numéro 3,

Bing-yahoo est désormais le numéro 2 de la recherche sur le web

Une alternative sérieuse pour les annonceurs face à l’hégémonie de Google dans le domaine de la publicité en ligne.

Quelle serait la réaction du coté de Google ?

et ne me dites pas qu'il a encore deux ans devant lui avant que la fusion des technlogies de Bing et yahoo ne soient effectives.

Google, a déjà lancé des attaques frontales avec Microsoft sur les thèmes de : cloud et Google AppEngine, les appstore, les OS, les navigateurs, les suite bureautique, les outils collaboratives (Wave, messagerie en ligne, messagerie instantanée, Plateform de blog, wiki ..) … Google cherche à mener ses batailles sur le terrain de l’enemi,

Le voilà, attaqué sur son propre terrain, Il va falloir relire les conseils de Sun Tzu.

Rappelons que la guerre est aussi lancée sur le front de la présentation des résultats: trop tabulaire, trop classique, peu précise.

Nous entendons de plus parler de "fact engine" à la place de "search engine",

Ça me rappelle une ancienne bloque sur le CNRS : « on y trouve des chercheurs on, mais on cherche des, toujours, des trouveurs» ..

C’est ce que propose Goggle Squared ou le tout nouveau Walfram Alpha (créateur Matimatica de mon application préféré, lorsque je travaillais sur le théorie du chaos et la modélisation des phénomènes non linaires…, bref le bon vieux temps).

clip_image001

clip_image003

Walfram Alpha est supposé comprendre des questions formulés en langage naturel, il peine à le faire pour le moment, mais espérons qu’il réussisse.. ;

clip_image004

Goggle Squared propose ce type d’information (copié souvent chez Wekipedia)

clip_image006

Car, s’il devient vraiment performant, le moteur de recherche deviendra Le vrai assistant personnel, un moteur d’aide à la décision, de l’internaute : qui l’assistera à explorer, chercher, et trouver ce qu’il souhaite…

Suite à ce rapprochement, il reste une question à régler : à qui appartiendra les données sur le comportement des internautes ?

Mais, ceci est un autre sujet

mardi 28 juillet 2009

Mule version 2.x & JMS : comment enlever les header des messages

Mule simplifie l’intégration des systèmes en faisant abstraction des protocoles de transport.

Il est très simple de lire à partir d’une file d’attente un message et de l’envoyer vers un fichier ou vers un web service (appeler un web service et lui passer comme argument le message lu dans la file d’atetnte, sans ou avec une transformation).

Créer un pont entre un webservice est une file d’attente est aussi simple : quelques lignes de configruation : Inbound – composant – outbound

Mais, il arrive que lorsqu’on essaye de persister un message obtenu par appel à un web service, dans une file d’attente JMS, d’obtenir ce type message


Header: Accept-Charset is not compliant with JMS specification (sec. 3.5.1, 3.8.1.1). It will cause problems in your and other applications. Please update your application code to correct this. Mule renamed it to Accept_Charset

Header: Accept-Encoding is not compliant with JMS specification (sec. 3.5.1, 3.8.1.1). It will cause problems in your and other applications. Please update your application code to correct this. Mule renamed it to Accept_Encoding

Header: Accept-Language is not compliant with JMS specification (sec. 3.5.1, 3.8.1.1). It will cause problems in your and other applications. Please update your application code to correct this. Mule renamed it to Accept_Language

Header: Cache-Control is not compliant with JMS specification (sec. 3.5.1, 3.8.1.1). It will cause problems in your and other applications. Please update your application code to correct this. Mule renamed it to Cache_Control

Comment enlever ce warning ?

Très simple

Appliquer un transformateur spécial offert par Mule

Le <message-properties-transformer …>

1:    <message-properties-transformer name="NettoyeurDeMessageProperties">
2: <delete-message-property key="Accept-Charset" />
3: <delete-message-property key="Accept-Encoding" />
4: <delete-message-property key="Accept-Language" />
5: <delete-message-property key="Cache-Control" />
6: </message-properties-transformer>




il est possible de créer votre propre transformer …

mais ceci est un autre sujet

-------------------------------

autres sujets sur Mule



  • Mule ESB : le routeur outbound-pass-through-router a changé de nom entre la version 2.0 et 2.1 ..


  • Fonctionnalités des ESB et offre open source : le marché n’est pas encore consolidé


  • http://net-progress.blogspot.com/2009/07/mule-version-2x-jms-comment-enlever-les.html

    Rappel : Mule est un 'java software' assimilable à un ESB
  • lundi 20 juillet 2009

    Mule ESB : le routeur outbound-pass-through-router a changé de nom entre la version 2.0 et 2.1 ..

    Le routeur « pass-through router » est conçu pour simplement passer des messages à partir d'une extrémité (Endpoint dans le jargon de Mule) à l'autre. Ceci est utile pour l'envoi des messages à une file d'attente, par exemple.


    Vous pouvez utiliser le routeur « pass-through router » pour «réaliser » un pont ou une passerelle entre deux protocoles (envoi vers un autre Outbound).

    Mule expose une implémentation simple de « pass-through router », mais attention cette version a changé entre la version 2.0 et 2.1 de Mule

    Mule Version 2.0

    1: <outbound>
    2: <outbound-pass-through-router>
    3: <vm:outbound-endpoint path="rep.in" />
    4: </outbound-pass-through-router>
    5: </outbound>


    Mule Version 2.1 (pass-through-router à la place de outbound-pass-through-router)



    1: <outbound>
    2: <pass-through-router>
    3: <vm:outbound-endpoint path="rep.in" />
    4: </pass-through-router>
    5: </outbound>


    D‘autres Routeur (au sens EIP du mot ) existe dans Mule, mais ceci est un autre sujet



    autres sujets sur Mule



  • Mule ESB : le routeur outbound-pass-through-router a changé de nom entre la version 2.0 et 2.1 ..


  • Fonctionnalités des ESB et offre open source : le marché n’est pas encore consolidé

  • http://net-progress.blogspot.com/2009/07/mule-version-2x-jms-comment-enlever-les.html


  • Rappel : Mule est un 'java software' assimilable à un ESB

    samedi 18 juillet 2009

    Jbpm 4 Tutorial : JBPM 4 a simplifié son modèle de programmation et a confirmé l’orientation BPMN


    Une statistique économique stipule que la mortalité enfantine (moins de 5 ans d’existence) des entreprises est à 80 %.

    Or JBPM a plus de 5 ans, il a passé l’âge difficile de l’enfance, il est très populaire, et son père d’adoption s’appelle RedHat (prioritaire de Jboss) : C’est pour cette raison, qu’il se reconstruit, et se permet de prendre le risque de tout changer : modèle de programmation et schéma de base de données.

    Son objectif: simplifier le modèle de programmation, pour augmenter le nombre d’adoption.

    Rappelons que JBPM est le moteur de workflow (il veut qu’on dise BPM) le plus populaire de la communauté java. Il est embarqué, ou utilisé, dans plusieurs produit :; de Mule à Intalio en passant par Liferay, Alfresco et le fameux Exo Platform (dont le portail est devenu, depuis peu, Jboss Exo Portal, avec un grand avenir en perspective).

    Notons que l’équipe d’Exo Platform a fait le choix de JBPM, comme moteur de workflow longtemps avant de fusionner avec Jboss (bien que le consortium ObjectWeb, OW2, dont Exo fait partie, en possède un : Bonita).

    Jbpm 4 arrive pour renforcer le basculement vers le PVM (Processs Virtual Machine), concept un peu flou, mais qui est promu par RedHat.

    Modèle de programmation remanié

    Cette version 4 de JBPM est une réécriture complète de la version 3 : tout en conservant les principes de bases : 100% java, notion de processus, stockage des instances et des définitions des processus ans la base de données, basé sur Hibernate, assisté par un IDE.

    Beaucoup d’utilisateurs de Jbpm 3 seront d'accord avec moi que certaines API étaient difficile à certains endroits et qu’il fallait écrire de complexes requêtes Hibernate conduisant à plusieurs problèmes:

    Le mélange de concepts dans les API de JBPM3 faisait qu’on trouvait des méthodes éparpillés dans les classes JbpmContext, GraphSession ou TaskManagement.

    L’équipe JBPM 4 a rationalisé cela autour de la l’API ProcessEngine.

    N’importe quelle utilisation de JBPM commence par acquérir les services souhaités à partir de ProcessEngine : le nœud centrale du BPM selon RedHat.

    Ensuite on utilise l’API selon le besoin

  • RepositoryService: permet de gérer les données statiques des processus : déploiement, activation / désactivation, requête.. ;.

  • ExecutionService: expose des opérations d’exécution runtime (concernant les instances de processus): lancer l’exécuter des instances de processus, gérer les variables, récupérer les instances pour faire avancer le processus ou l’effacer, etc.

  • TaskService: il s’(agit de la modélisation de l’interaction humaine: tout ce qu’on sohiate faire avec des tâches : créer, rechercher, assigner, compléter .
  • clip_image002

    Deux autres API ont fait leurs apparitions :

  • HistoryService: dans jBPM4, il y a eu une séparation claire et nette entre le runtime et les données historisations. Ce service présente des mesures et calcules statistiques réalisé par le moteur. L’API HistoryService n’a aucune relation avec le moment : elle traite de l’histoire et des temps passés. A travers ce service les données historique (instances terminée, activité exécutés) peuvent être recherché et présentés pour une étude statistique ultérieure.

  • ManagementService: cette API est destine aux outils de gestion de processus telque la fameuse console JBPM.
  • Schéma de la base de données simplifié

    le schéma de la base de donnée de JBPM 4 est simplifié par rapport à la version 3.x:

    clip_image001

    clip_image002[5]

    Et le mapping Hibernate est le suivant

          <mapping resource="jbpm.repository.hbm.xml" />
    <mapping resource="jbpm.execution.hbm.xml" />
    <mapping resource="jbpm.history.hbm.xml" />
    <mapping resource="jbpm.task.hbm.xml" />
    <mapping resource="jbpm.identity.hbm.xml" />








    Exemple simple : exécuter un processus JBPM4






    Un premier test de la nouvelle mouture de JBPM : la version 4 de JBPM



    Il s’agit d’un simple exemple de processus contenant deux étapes : une permettant d’afficher un message et l’autre de lancer un backup



    JBPM 4 utilise la notation BPMN 2.0









    clip_image004






    La version XML de cette définition du processus :






     <?xml version="1.0" encoding="UTF-8"?>
    <process name="seconde_hello_de_OXIA" xmlns="http://jbpm.org/4.0/jpdl">
    <start g="24,72,80,40">
    <transition to="afficherMessage"/>
    </start>
    <java class="com.oxia.att.jbpm4.exemple.AfficherMessage" g="120,68,138,56" method="afficherMessage" name="afficherMessage">
    <transition to="lancerBackup"/>
    </java>
    <end g="165,267,80,40" name="fin"/>
    <state name="lancerBackup" g="143,147,92,52">
    <transition name="to fin" to="fin" g="-30,-18"/>
    </state>
    </process>


    La classe java de traitement de l’affichage






     package com.oxia.att.jbpm4.exemple;
    public class AfficherMessage {
    public void afficherMessage() {
    System.out.println("****** début de passage par un Etat");
    System.out.println(" Bonjour de OXIA!");
    System.out.println("****** fin de passage par un Etat ");
    }
    }


    Pour tester ce processus dans un projet Java (simple)






     public static void main(String[] args) {
    // obtenir une instance de ProcessEngine avec la
    // configuration souhaitée oxia.att.jbpm.cfg.xml
    ProcessEngine processEngine = new Configuration().setResource("oxia.att.jbpm.cfg.xml").buildProcessEngine();
    // obtenir une instance de RepositoryService
    RepositoryService repositoryService = processEngine.getRepositoryService();
    // Deployer la définition du processus first_Jbpm_Sample.jpdl.xml
    repositoryService.createDeployment().addResourceFromClasspath("com/oxia/att/jbpm4/exemple/first_Jbpm_Sample.jpdl.xml").deploy();
    // obtenir une instance de ExecutionService
    ExecutionService executionService = processEngine.getExecutionService();
    ProcessInstance processinstance = executionService.startProcessInstanceByKey("hello_de_OXIA");
    System.out.println( processinstance.getId());
    System.out.println( processinstance.getState());
    }


    Le résultat






     ****** début de passage par un Etat
    Bonjour de OXIA!
    ****** fin de passage par un Etat
    hello_de_OXIA.6
    ended


    Conclusion






    RedHat a restructuré JBPM 4 autour d’une API claire et un schéma de base de données efficace.






    Reste à vérifier les annonces concernant l’amélioration des performances : grâce au nouveau schéma de base de données, la récriture des classes de bases de Job executor et activities et l’amélioration de la gestion de la concurrence.









    Quelques reproches pour le moment, l’obligation d’aller dans le repository SVN pour constituer les war de la console et la qualité médiocre de l’IDE (pas possible de créer un projet JBPM 4, amis seulement type 3)






    clip_image006









    Mais ceci est un autre sujet






    Autre sujets









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



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



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



    4. Graph Oriented Programming (GOP) avec JBPM



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



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



    7. Jbpm 4 Tutorial : JBPM 4 a simplifié son model de programmation et a confirmé l’orientation BPMN








  • lundi 6 juillet 2009

    Fonctionnalités des ESB et offre open source : le marché n’est pas encore consolidé

    Besoin pour un ESB

    La technologie elle-même n’apporte pas de valeur. La valeur est obtenue lorsqu’on combine la technologie avec une nouvelle façon de faire les choses : une vision métier du SI, focalisé sur les services à valeur ajoutés est à même de produire la différence dans l’utilisé Business de votre SI.

    Comment faire pour que des programmes, des applications et des systèmes séparés puissant collaborer ensemble, pour supporter une vision métier du SI, sans tout remettre à plat :

    • Vous souhaitez intégrer plus de 3 applications ou de 4 services
    • Vous utilisez plus qu’un protocole de transport (http, jms, jdbc ..)
    • Vous avez un besoin de routage en fonction du contenu
    • Vous avez plusieurs applications consomment le même message

    Alors, vous pouvez penser à l’intégration d’application d’entreprise avec des ESB.

    Dans ce contexte, les ESB ont un rôle à jour,

    L’usage d’un EBS n’est pas nécessaire, mais facilite bien les choses

    Un ESB doit permettre de réaliser, simplement, par configuration les fonctions suivantes :

    · Routage

    · Transformation de Message

    · Enrichissement de Message

    · Transformation entre Protocole de Transport

    · Mapping entre services

    · Traitement des Messages

    · Chorégraphie entre processus

    · Orchestration entre service pour créer un Processus

    · Gestion de Transaction

    · Sécurité

    Les ESb doivent par exemple proposer des solutions pour les standards suivants :

    EJB; E-mail; File; FTP; HTTP; IMAP; JDBC; JMS; POP3; Quartz; RMI; Servlet; SMTP; SOAP; SSL; Stream; TCP; UDP; WSDL; XMPP

    ESB open source : l’offre?

    Les fournisseurs classiques des outils EAI ont re-packagés leurs solutions et renommées EBS (genre de revamping produit)

    De l’autre coté, l’offre d’ESB open source est pléthorique :


    • · Mule l’ESB open source le plus populaire
    • · FUSE ESB acheté par Progress Software ( après son acquisition par IONA) ESB basé sur Apache ServiceMix & celtix
    • · Apache ServiceMix : ESB implémentant le standard JBI
    • · PEtALS ESB implemantant le standard JBI du consortium OW2 (exe ObjectWeb)
    • · Sopera (Eclipse SOA) : le projet officeille de la foindation Eclipse. Un projet à suivre ! il s’agit d’une nouvelle initiative pour créer un écosystème SOA autour d’Eclipse : ESB, outils, registry, BAM , SAM, intégration de données ; gestion …
    • · JBoss ESB : redHAT en réponse à Microsoft ou IBM … se doit d’avoir une ESB
    • · Sun OpenESB ESB implémentant le standard JBI offert par (mais va t il rester en vie?)
    • · WSO2 ESB ESB du consortium WS02, base sur Apache Synapse
    • · ChainBuilder ESB ESB implémentant le standard JBI
    • · Jeeesb un ESB hébergé par java.net

    Les offres assimilées à des EBS open source


    • · Spring Integration le premier pas de SpringSource dans le monde des ESB, la suite de la saga ESB de Spring est à suivre …
    • · Apache Synapse ESB focalisé sur les services support ( basée sur Apache Axis2)
    • · Apache CXF : se définit comme « un open source service framework »
    • · Celtix: initialement lancé par objectweb, en 2006, le projet a migré vers Apache pour devenir le projet CXF, et la version entreprise n’est autre que FUSE Services Framework, de IONA (de Progress Software) faisant partie de l’offre open source FUSE de IONA.
    • · OpenAdapter un produit EAI-qui se rapproche des fonctionnalités es ESB

    Finalement, signalons un projet intéressant, presque un ESB,



    un conseil simple : rester indépendant de l’ESB

    Ce nombre croissant d’ESB open source indique que le marché n’est pas encore stabilisé (au sens consolidation) et continue à croitre.

    Il est extremement important de rester indépendant de l’ESB :

    séparer votre code métier de l’application de ESB (utiliser systématiquement un Ioc, Spring de préférence).

    La meilleure solution, pour aider le marché à converger, et consolider toute cette offre disparate, c’est qu’elle unissent leurs efforts autour d’Eclipse SOA (ex SOPERA).

    .

    L’essentiel : faire le bon choix et privilégier les standards.

    Mais avec Quels critères, Quel outil? Quels risques ?

    Mais ceci est un autre sujet ...



    autres sujets sur Mule



  • Mule ESB : le routeur outbound-pass-through-router a changé de nom entre la version 2.0 et 2.1 ..


  • Fonctionnalités des ESB et offre open source : le marché n’est pas encore consolidé

  • http://net-progress.blogspot.com/2009/07/mule-version-2x-jms-comment-enlever-les.html
  • dimanche 5 juillet 2009

    Monitoring web : LambdaProbe un super outil de monitoring de Tomcat : en open source et exploite JMX

    Vous réalisez une application web sous Tomcat, utilisant ou non Spring, intégrant ou non JBPM ou d’autres moteurs de workflow, vous avez besoin d’un monitoring système ?

    La solution : Lambda Probe

    clip_image001

    Lambda Probe est une application Web autonome, s’installe sur le serveur de production.

    Lambda Probe permet de visualiser les différents paramètres de toutes les applications web installées dans Apache Tomcat.

    Lambda Probe est est conçu spécialement et exclusivement pour fonctionner avec Tomcat.

    clip_image003

    page d’accueil de Probe

    Le monitoring se fait en temps réel. Il offre la possibilité de consulter l'adresse IP de la session, la possibilité de consulter les servlets, les filtres, les Descripteurs cde ploiement.

    Lambda Probe est en mesure d'accéder à toutes informations exposées par des agents JMX.

    Si on click sur le lien de l’application « books » on accède à plusieurs paramètres de l’application tel que les sessions en cours, les pages JSP, les servlets, etc.

    clip_image005

    les sessions ouvertes sur l’application surveillé

    Pour chaque session, nous avons accès aux objets qui se trouvent le dedans ainsi que d’autres informations tel que le type, la taille, la valeur de chaque objet.

    clip_image007

    Cette fonctionnalité permet de Controller le contenu de la session (elle met en exergue les objets non Serializable)clip_image009

    Utilisation de la mémoire par le serveur Tomcat

    clip_image011

    Attention n’a pas bougé depuis 28 Nov 2006

    licence GPL

    mais ceci est un autre sujet


    -----------------

    Sujets sur l’étude de performance :

    1. Est-ce que vous voulez connaitre ce que fait votre application coté base de données : employer un espion (open source)
    2. Performance Engineering Process & Solutions (PEP&S) : Partie 2
    3. La nouvelle version 3.0 de SOAPUI améliore le test des services REST
    4. Performance Engineering Process & Solutions : PEP&S
    5. Améliorer la performance de vos travaux de fin de journée par “JDBC Batch” et Spring
    6. Application web : la différence entre Mesure de performance, montée en charge et vitesse d’exécution
    7. Are the data from the GoogleApp Engine Dashbord valid?
    8. Quel crédit donner aux résultats affichés par le DashBoard de GoogleApp Engine (GAE) ?
    9. InfraRED : un outil de suivi des temps de réponse d’application J2EE, de monitoring et diagnostique de problèmes de performance.

    vendredi 3 juillet 2009

    Est-il nécessaire de planifier pour un site collaboratif SharePoint comme un projet classique?

    SharePoint 2007 (MOSS) semble simple et facile dès la première présentation.

    Cela vous paraitra évident si la première impression est donnée par un spécialiste chevronnée.

    (bien sûre, il n’est pas possible d’avoir une seconde chance pour faire une bonne première impression)

    En quelques secondes, votre site est là et fonctionnel avec la recherche full texte ... en relation directe avec votre LDAP (Active Direcory) et vos droits.

    avec des Workflow par défaut, certes simple, mais avec des circuits de validation et de durée de vie de documents,

    Mais...

    Ne jamais oublier que la mise en place d’un Portail collaboratif n’est pas une affaire d’outillage !

    Certes un bon outil facilite la mise en ouvre!

    Mais, la mise en place d’un Portail collaboratif est un projet, reste un projet complexe et figure même parmi les plus difficiles,

    Car sa réussite c’est la fédération de toutes les ressources de l’entreprise.

    Satisfaire 1500 utilisateurs, n’est pas une histoire simple !

    Donc

    Faire attention aux points suivants

    • - Manque de planification : allez-y on y va par prototypage successif et on livre …
    • - Tomber dans le « ShowRoomisme » des possibilités de SPS et oublier de développer une vraie solution : SPS offre beaucoup de possibilités, est ce qu’on a besoin de toutes les utiliser ?
    • - Manque de vision métier de la solution : pour quel but ? et quelle valeur métier ?, quel retour sur investissement : spécifier des objectifs mesurables

    Par exemple :

    1. Augmenter la vitesse pour trouver une information (gagner 10 minutes par jours)
    2. Il est important d’impliquer les utilisateurs : de façon organisée, méthodique et convergente
    3. Utiliser un Site SharePoint pour le change management
    • Créer un Change Request site : un site pour le change request
    • Change control Borard

    Utiliser un wiki SharePoint pour le manuel utilisateur et le eLearning

    La technologie ne rapporte pas de bénéfices indépendamment de son usage dans un contexte de business : c’est cet usage qui permet un ROI

    Mais ceci est un autre sujet



    jeudi 2 juillet 2009

    Recherche sur le web des termes technologique : la Tunisie et le Maroc en bonne position

    En observant les résultants de Google Insgihts for Search pour le mot richfaces ; http://www.google.com/insights/search

    clip_image001

    On remarque que la Tunisie est en avant sur le terme

    (richFaces ou le terme JBPM, …)

    clip_image002

    Regional interest for richfaces (JSF framework de JBOSS – Redhat)


    Region City

    Nombre

    1.

    Tunisia

    100

    2.

    India

    61

    3.

    Brazil

    52

    4.

    Hong Kong

    45

    5.

    Colombia

    37

    6.

    Austria

    36

    7.

    Czech Republic

    31

    8.

    Switzerland

    30

    9.

    Russian Federation

    28

    10.

    Morocco

    28

    Quelle explication ?

    En Tunisie l’informatique (TIC et compagnie …) est à construire et se construit en ce moment.

    On part sur de nouveau projets où il n’y a pas le poids de l’existant et de l’historique Java d’où le besoin de se documenter.

    En Tunisie les 60000 étudiants en Informatique (pour une population de 10M) et un goût prononcé pour l'open source : seul pays possédant un secrétariat d'état à l'open source.

    Mais aussi, les jeunes, cherchent par eux même par manque de ressources confirmés et de cochaing : le middle management technique est en faible quantité et le recours à la formation et aux coaching n’est pas une tradition dans les grands comptes et les SSII

    Mais ceci est un autre sujet

    mercredi 1 juillet 2009

    Monitoring : StackProbe : Un Profiler Java efficace, permet de comprendre ce qui se passe dans la JVM et exploite JMX

    StackProbe est un outil pour la surveillance des applications Java: Il vous aide à trouver des fuites de mémoire et d'optimiser la vitesse.

    Nécessite d’un profiler

    Savoir ce qui se passe dans une application Java EE n’est pas chose facile, surtout lorsqu’on qu’on en dispose des documents d’architecture ni de la description de la structure des codes sources.

    Mais, dans la majorité des situations, qu’on dispose du code source ou non, on a besoin d’inspecter ce qui ce passe réellement dans la JVM, qu’est ce qui se passe dans la JVM.

    Un Profiler JVM est une solution de surveillance des applications Java qui vous permet de détecter, d'isoler et de diagnostiquer (d’une façon pro active) les problèmes de performance.

    clip_image001

    VisualVM, intègre à Java 6 de Sun, permet de savoir quelques informations.

    NetBeans offre un profiler de qualité, et Eclipse n’arrive pas à simplifier l’installation de son TPTP.

    Les outils commerciaux CA Wily Introscope ou ceux de HP Mercury sont légende dans la profession,

    L’outil JProfiler est extrêmement populaire, mais nécessite d’être installé.

    Mais, cette fois je présente un autre produit plus simple, sans installation : stackProbe

    installer stackProbe

    stackProbe est capable de profiler toute application java tournant sous le JDK 6.x de SUN.

    Il suffit de le télécharger stackprobe.jar (120 kB !! ) et de lancer dans une JVM

    java -jar stackprobe.jar

    bien sûre après avoir obtenu une licence (StackProbe est un profiler commercial, il est gratuit pour les projets open source)

    Il est possible de l’utiliser avec le service JNLP, ce qui permet d’utiliser toujours la dernière version stable disponible.

    Le profiler : StackProbe

    Il s’agit d’une inspection minutieuse de l’intérieur de la JVM.

    clip_image002

    clip_image004

    Exemple : présentation des activités de Thread

    clip_image005

    Utiliser des filtres de type:

    Présentation des activités des méthodes : on est capable de choisir le package pour isoler

    • Thread-[0-9]+ pour "Thread-1", "Thread-2", ….
    • com\.oxia\..* n’importe quelle méthode du package "com.oxia".

    clip_image006

    Présentation des résultats en suivant le chemin d’appelle des méthodes

    clip_image007

    Méthode : StackProbe utilise la méthode de sampling

    StackProbe utilise la méthode de sampling, alors que la majorité des autres profiler utilisent l’instrumentation de bytecode.

    Comment ça fonctionne :

    StackProbe demande périodiquement à la JVM la liste des StackTraces pour tous les threads. Ces listes sont appelées échantillons. Plus l’application passe de temps dans une méthode, plus elle sera présente dans l’échantillonnage.

    Le principal avantage de cette technique est que, même si elle présente une perturbation, cette surcharge est réparti également entre toutes les méthodes de l'application observée, il n'ya donc pas de risque d'introduction de faux goulets d'étranglement.

    Le Profiler offre un panneau de paramétrages qui vous permet de régler le profilage à vos besoins.

    clip_image008

    L’avantage de StackProbe, c‘est qu’il n’a pas besoin d’être installé et il est capable d’inspecter la JVM sans instrumenter le code de l’application.

    StackProbe ne fait pas la Détection et résolution de problèmes

    Ce profiling, doit être intégré dès les premières phases d’un projet, ce qui permet d’anticiper les problèmes

    Ce type outil doit être mis à la disposition de tous les développeurs et de l’équipe système, il pemrt d’offrir les données pour

    Détection des fuites mémoire

    La fuite mémoire apparait lorsqu'un objet n'est plus utilisé mais reste actif et ne peut être nettoyé par le GC.

    Rechercher & donner des solutions pour les goulots d'étranglement de performances

    Détecter et identifier quelle portion de code génère des problèmes de performances n'est pas une tâche simple et rapide.

    Détecter & résoudre des « Deadlock »

    Le < deadlock > est une condition ou des threads sont bloquées en attente d'entrer dans un bloc de synchronisation ou lorsque deux ou plusieurs threads s'exécutent simultanément et attendent les mêmes ressources.

    Détecter la mauvaise utilisation de la mémoire

    Détecter les objets qui utilisent d'une façon anormale plus de mémoire que nécessaire, sans qu'il y ait de fuite mémoire. Cette situation entraine une consommation excessive de la mémoire et engendre des besoins importants de swap.

    Malheureusement, ce travail de détective reste à votre charge.

    La solution de Profiling idéale devrait apporter, automatiquement, des solutions aux problèmes de performances du code

    Mais ceci est un autre sujet.

    d’autres sujets :

    autres sujets traités :

    1. Est-ce que vous voulez connaitre ce que fait votre application coté base de données : employer un espion (open source)
    2. Performance Engineering Process & Solutions (PEP&S) : Partie 2
    3. La nouvelle version 3.0 de SOAPUI améliore le test des services REST
    4. Performance Engineering Process & Solutions : PEP&S
    5. Améliorer la performance de vos travaux de fin de journée par “JDBC Batch” et Spring
    6. Application web : la différence entre Mesure de performance, montée en charge et vitesse d’exécution
    7. Are the data from the GoogleApp Engine Dashbord valid?
    8. Quel crédit donner aux résultats affichés par le DashBoard de GoogleApp Engine (GAE) ?
    9. InfraRED : un outil de suivi des temps de réponse d’application J2EE, de monitoring et diagnostique de problèmes de performance.

    Architecte SOA & Professionnel Open Source Headline Animator

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