UNIX-like

Logiciels (logiciels libres en majorité) qui fonctionnent sur des systèmes dérivés d'Unix (Linux...) ou ressources (liées aux logiciels) spécifiquement pour ces systèmes
Fiche logiciel validé
  • Création ou MAJ importante : 30/09/13
  • Correction mineure : 30/09/13
Mots-clés

InterProScan : identification dans un jeu de séquences des signatures protéiques d'intérêt

Description
Fonctionnalités générales

InterProScan est un environnement logiciel qui permet d'identifier dans un jeu de séquences des signatures protéiques d'intérêt en scannant des banques de motifs et signatures de référence et en utilisant des algorithmes détectant des biais de composition (SEG, TMHMM, Signal-P).

En utilisant plusieurs méthodes de reconnaissance, il effectue des recherches de signatures protéiques dans 11 bases de données de motifs ou domaines protéiques telles que PROSITE, PRINTS, Pfam, ProDom, SMART ou TIGRFAMMs. Chacune de ces bases de références utilisent des méthodes différentes d'identification (HMM, profils, etc.) et de manière plus ou moins automatique.

Usage

Un site WEB est mis à la disposition de la communauté par l'EBI, mais cette fiche se penchera sur le retour d'expérience lié au déploiement d'un environnement sur une plate-forme, permettant de traiter de larges jeux de données (ex : 100 000 séquences).

InterProScan s'utilise aussi via un script frontal qui se charge de lancer les différentes comparaisons. Ces traitements peuvent s’exécuter sur un cluster. La parallélisation des traitements s'effectuera alors en deux étapes

  • tout d'abord par le découpage en sous jeu de données ("chunk") des séquences dont la taille sera définie par l'administrateur,
  • et par l’exécution en parallèle des différentes recherches  (une quinzaine dont par exemple hmmer sur la banque tigrfams) pour chaque sous jeu de données.

InterProScan est capable de traiter des séquences nucléiques et protéiques au format FASTA (multiple). Pour les séquences nucléiques, une traduction selon les 6 phases de lecture est automatiquement effectuée.

Exemple de ligne de commande

iprscan -cli -i mydataset.fasta -email myemail@mydomain -seqtype n -iprlookup -goterms -o mydataset.out -verbose

Fichiers résultats

Interproscan génère des fichiers de sorties pour chaque traitement sur les différents chunks. Un post traitement permet de filtrer et corriger certains hits. Au final, un fichier merged.raw est généré pour chaque chunk. Enfin, Interproscan concatène l'ensemble de ces résultats en un seul fichier. Il existe un fichier résultat par comparaison lancée, ainsi qu'un fichier de synthèse. Un jeu de test permet aussi de vérifier que l'outil fonctionne correctement en local.

Autres fonctionnalités

Le fichier RAW peut etre converti en divers formats (xml|ebixml|raw|html|txt|gff3) via le script converter.pl fournit dans la distribution.

Interopérabilité
  • Connexion aux environnements de calcul de type SGE 6.x, LSF et PBS.

  • Utilisation de la suite BioMaj pour mettre à jour automatiquement les banques de données associées.

  • Le site de l'EBI propose des accès Web Services (SOAP & REST).

Contexte d'utilisation dans mon laboratoire/service

InterProScan est principalement utilisé pour des traitements automatiques sur de gros volumes de séquences d'intérêt.
Les résultats donnent une information factuelle (présence/absence de domaines/sites) permettant l'annotation de protéomes. Le couplage avec la GeneOntologie ainsi que la structuration en arbre des domaines/familles InterPro permet de générer des annotation fonctionnelles synthétiques.

Limitations, difficultés, fonctionnalités importantes non couvertes
  • L'installation nécessite de disposer d'un environnement de type plate-forme.

  • La mise à jour des banques implique également une indexation à chaque miuse à jour

  • La version 5 devrait lever certains verrous en rendant l'application plus modulaire et intégrable à des pipelines et traitement annexes.

Environnement du logiciel
Plates-formes

Environnement Linux disposant du langage PERL.

Logiciels connexes
Environnement de développement
Type de structure associée au développement

Développement opéré par l'EBI.

Eléments de pérennité
  • Logiciel très utilisé par la communauté.

  • Correctifs et évolutions fréquents.

  • Banques de données mises à jour fréquemment.

Références d'utilisateurs institutionnels
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 25/09/13
  • Correction mineure : 26/09/13
Mots-clés

ASTL : librairie de manipulation d'automates écrite en C++

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Version actuelle : 3.0 - 2013
  • Licence(s) : LGPL - v2
  • Etat : diffusé, stable
  • Support : non maintenu, développement en cours
  • Concepteur(s) : Dominique Revuz, Vincent Le Maout
  • Contact concepteur(s) : dominique.revuz @ univ-mlv.fr
  • Laboratoire(s), service(s)... : LIGM

 

Fonctionnalités générales du logiciel

La librairie ASTL propose des implémentations variées d'automates, en particulier des automates acycliques de stockage de dictionnaires et des automates permettant de faire de la recherche de motifs en particulier une implémentation de Aho et Corasick.

Contexte d’utilisation du logiciel

Recherche (voir les publications citées ci-dessous) et enseignement.

Publications liées au logiciel
  • Vincent Le Maout, Tools to implement automata, a first step: ASTL, Lecture Notes in Computer Science, Vol. 1436 1998, Automata Implementation - Second International Workshop on Implementing Automata, WIA'97, pp. 104-108.

  • Dominique Revuz, Operations on extended automata, Lecture Notes in Computer Science, Vol. 1436 1998, Automata Implementation - Second International Workshop on Implementing Automata, WIA'97, pp. 171-175.

  • Vincent Le Maout, Expérience de programmation générique sur des structures non-séquentielles : les automates. Thèse de doctorat, Université de Marne-la-Vallée, 2003.

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 22/09/13
  • Correction mineure : 22/09/13
Mots-clés

R.TeMiS : création et analyse de corpus de textes sous R

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Version actuelle : 0.6.2 - 27-08-2013
  • Licence(s) : GPL
  • Etat : diffusé, stable
  • Support : maintenu, développement en cours
  • Concepteur(s) : Milan Bouchet-Valat et Gilles Bastin
  • Contact concepteur(s) : nalimilan@club.fr
  • Laboratoire(s), service(s)... : INED, LSQ-CREST, OSC, PACTE

 

Une fiche logiciel décrit plus en détail ce développement, consultez la pour plus d’informations : R.TeMiS
Fonctionnalités générales du logiciel

R.TeMiS (R Text Mining Solution) est un environnement graphique de travail sous R permettant de créer, manipuler et analyser des corpus de textes, qu'ils soient constitués d'articles de presse, de réponses à une question ouverte, d'entretiens ou encore de textes issus de la Toile. Il prend actuellement en charge les méthodes d'analyse de données textuelles, tout en facilitant l'importation de corpus depuis des sources informatisées (Factiva, Twitter).

Contexte d’utilisation du logiciel

Utilisé par des chercheurs de diverses institutions mais aussi dans le cadre d'enseignements (Université Paris VII - Diderot et ENSAI) et de l'encadrement de mémoires d'étudiants (Sciences Po Grenoble).

Publications liées au logiciel

Bouchet-Valat, Milan ; Bastin, Gilles, « RcmdrPlugin.temis, a Graphical Integrated Text Mining Solution in R », dans The R Journal, 5 (1), 2013, p. 188-196. article

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 22/09/13
  • Correction mineure : 30/09/13
Mots-clés

ImagineMVS : reconstruction 3D en stéréo multi-vues

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Version actuelle : 20101112 - 12/11/2010
  • Licence(s) : Licence propriétaire
  • Etat : utilisé en interne
  • Support : maintenu, sans développement en cours
  • Concepteur(s) : Renaud Keriven
  • Contact concepteur(s) : renaud.keriven @ acute3D.com
  • Laboratoire(s), service(s)... : LIGM, société Acute3D

 

Fonctionnalités générales du logiciel

Une chaîne algorithmique complète pour reconstruire un modèle 3D à partir de photographies.

Le logiciel prend en entrée des vues calibrées (c'est-à-dire des photographies avec appareil positionné et orienté dans l'espace et paramètres internes connus). En sortie, il produit une surface 3D texturée. Les étapes sont les suivantes :

  • estimation de correspondances denses entre images par balayage de plans (plane sweeping),
  • triangulation pour obtenir un nuage de points,
  • tétrahédrisation du nuage de points et élimination des faces cachées pour produire un maillage initial,
  • optimisation du maillage par minimisation incrémentale d'une énergie mêlant attache aux données et régularité,
  • création d'un atlas de textures à appliquer au maillage à partir de fragments issus des vues.
Contexte d’utilisation du logiciel

Utilisation en interne dans le projet IMAGINE (École des Ponts ParisTech/CSTB).

Ce logiciel est le coeur de métier de la start-up Acute3D.

Publications liées au logiciel

Vu Hoang Hiep, Renaud Keriven, Patrick Labatut and Jean-Philippe Pons. Towards high-resolution large-scale multi-view stereo, Proceedings of CVPR 2009, pp. 1430-1437.

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 22/09/13
  • Correction mineure : 30/09/13
Mots-clés

OpenMEEG : résolution de problèmes directs en électroencéphalographie et magnétoencéphalographie

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Version actuelle : 2.1 - 17/08/2011
  • Licence(s) : CeCILL-B
  • Etat : diffusé, stable
  • Support : maintenu, développement en cours
  • Concepteur(s) : Theodore Papadopoulo
  • Contact concepteur(s) : Theodore.Papadopoulo @ inria.fr
  • Laboratoire(s), service(s)... : INRIA Sophia, LIGM

 

Fonctionnalités générales du logiciel

OpenMEEG, développé actuellement par le Projet Athena (INRIA Sophia Antipolis), s'attache essentiellement à la résolution du problème direct MEG (magnéto-encéphalographie) ou EEG (électroencéphalographie). A cet effet, il utilise une méthode par éléments finis de surface (BEM) qui fait intervenir à la fois potentiels sur les surfaces et courants normaux à celles-ci, ce qui donne des matrices symétriques contrairement aux approches classiques. Cette approche amène une meilleure précision dans les résultats.

Bien que développé essentiellement pour des problèmes liés au cerveau, OpenMEEG peut aussi être utilisé dans d'autres contextes tels que l'électrocardiographie, la stimulation de nerf ou l'étude de la propagation électrique dans la cochlée.

OpenMEEG part d'une description géometrico-physique de la tête sous la forme de surfaces emboîtées en forme de maillages (interfaces entre les tissus de la tête) et de conductivités des tissus délimités par ces surfaces. Puis, à l'aide d'une description des capteurs EEG et/ou MEG, il permet d'obtenir un leadfield, c'est-à-dire la matrice de transfert qui modélise la relation linéaire qui va des sources aux capteurs.

OpenMEEG est entièrement écrit en C++, mais est utilisable à partir de Matlab ou Python. Il est utilisé/intégré dans un certain nombre de suites logicielles dédiées à l'analyse des signaux du cerveau telles que Brainstorm, Fieldtrip ou SPM, ...

Contexte d’utilisation du logiciel

Recherche en imagerie médicale.

Publications liées au logiciel
  • A. Gramfort, T. Papadopoulo, E. Olivi, M. Clerc. OpenMEEG: opensource software for quasistatic bioelectromagnetics, BioMedical Engineering OnLine 45:9, 2010.

  • Kybic J., Clerc M., Abboud T., Faugeras O., Keriven R., Papadopoulo T., A common formalism for the integral formulations of the forward EEG problem. IEEE Transactions on Medical Imaging, 24:12-28, 2005.

  • Voir aussi la documentation du logiciel : http://www-sop.inria.fr/athena/software/OpenMEEG/i...

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 20/09/13
  • Correction mineure : 20/09/13
Mots-clés

MPaS : granulométries morphologiques sur un support 1D et 2D

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Système : UNIX-like, Windows
  • Version actuelle : 0.9 - Janvier 2013
  • Licence(s) : choix en cours, contacter l'auteur
  • Etat : utilisé en interne, en développement
  • Concepteur(s) : Jan Bartovksy, Petr Dokladal, Eva Dokladalova
  • Contact concepteur(s) : eva.dokladalova@esiee.fr
  • Laboratoire(s), service(s)... : CMM, LIGM

 

Fonctionnalités générales du logiciel

Le logiciel MPaS (pour Morphological Pattern Spectrum) a comme principale fonctionnalité le calcul accéléré en flot de données des ouvertures/fermetures pour obtenir des granulométries morphologiques sur un support 1D et 2D. Le calcul peut s'effectuer en une seule passe sur l'image, même pour les éléments structurants de grande taille.

Contexte d’utilisation du logiciel

Le logiciel MPaS a été utilisé pour valider des résultats publiés en [1] et une détection d'orientation du texte en temps réel, implantée sur une caméra intelligente.

Publications liées au logiciel

[1] Bartovsky, J.; Dokladal, P.; Dokladalova, E.; Bilodeau, M., "One-scan algorithm for arbitrarily oriented 1-D morphological opening and slope pattern spectrum," Image Processing (ICIP), 2012 19th IEEE International Conference, pp. 133-136, Sept. 30 2012-Oct. 3 2012, doi: 10.1109/ICIP.2012.6466813.

Applications et méthodes de monitoring Java

Fiche ressource Article, événement, site web...
  • Création ou MAJ importante : 19/09/13
  • Correction mineure : 19/09/13
Mots-clés

Applications et méthodes de monitoring Java

  • Type de ressource : article, référentiel, résumé
  • Date de publication du document ou de l'événement : Avr 2013
  • Auteur(s) ou responsable(s) : Stéphane Deraco
  • Contact pour plus d'informations : java@services.cnrs.fr

Que faut-il surveiller ?

Surveiller une application peut vouloir dire plusieurs choses selon les besoins et le contexte de l'application. Par exemple, une application contrôlant un élément d'un accélérateur de particules ne sera pas surveillée de la même manière qu'une application chargée d'envoyer un mail dès qu'une page d'un wiki est modifiée.

La surveillance peut être technique (est-ce que mon application fonctionne correctement, est-ce que les performances sont acceptables, combien y a-t-il d'utilisateurs en ce moment) ou fonctionnelle (combien de factures ont été traitées ce mois-ci, pour quel montant).

Quels outils pour surveiller ?

Les outils de surveillance d'une application Java peuvent se diviser en deux catégories : les outils fournissant des données instantanées, et les outils permettant de conserver un historique des données, certains outils fournissant les deux.

Beaucoup d'outils utilisent la fonctionnalité JMX, qui permet d'exposer des informations via des MBeans.

Logs

La mise en place de logs est le minimum à faire dès lors que l'on souhaite surveiller une application.

La solution la plus basique est d'utiliser la méthode System.out.println pour écrire les lignes de logs dans la console. Le problème avec cette solution est qu'elle n'est pas évolutive : on ne peut pas choisir les niveaux de logs, ni quels composants logger.

C'est pour cela que l'on utilise un cadriciel (framework) de log. Les plus courants sont les suivants :

  • JUL (java.util.logging) : c'est le framework de logs implémenté dans la JVM. Il n'est pas beaucoup utilisé, car il n'a été introduit dans Java qu'à partir de la version 1.4.
  • Apache Log4J : c'est l'un des framework de logs les plus utilisés.
  • Logback : c'est un framework écrit par l'auteur de Log4j, qui apporte des améliorations par rapport à ce dernier.
  • Apache Commons Logging et SLF4J : ce sont des façades permettant de choisir l'implémentation de logs. L'utilisation de façade est utile car dans un projet Java utilisant plusieurs librairies tierces, chacune peut utiliser un framework de logs différent. La façade permet d'unifier cela.

Les avantages à utiliser un framework de logs sont les suivants :

  • Pouvoir choisir le niveau de logs à logger.
  • Pouvoir choisir, composant par composant, quel est le niveau de logs.
  • Les données loggées ont ainsi des priorités différentes.
  • Possibilité d'utiliser des destinations différentes pour les logs (fichiers, base de données, JMS, etc).

Avoir une librairie de logs ne suffit pas pour pouvoir surveiller efficacement son application Java. Le choix de ce qu'il faut logger est très important. Il n'en faut pas trop pour ne pas noyer les informations importantes, ni trop peu pour en avoir assez.

Il peut être intéressant d'avoir plusieurs destinations de fichiers de logs, selon les besoins :

  • un fichier full qui contient tous les logs,
  • un fichier securité contenant les logs relatifs à la sécurité (tentatives de connexions, actions sensibles, etc.),
  • un fichier audit pour pouvoir tracer les événements qui surviennent dans l'application.

Il est intéressant de noter que la destination des logs peut être autre chose que des fichiers, et qu'un même message de logs peut être envoyé vers plusieurs destinations. La plupart des librairies de logs permettent d'envoyer les logs en base de données, sur une file d'attente JMS, sur une socket, par mail ou encore sur le système de log Linux syslog. Cependant, il faut en général toujours envoyer les logs critiques au moins dans un fichier, pour être sûr qu'ils soient disponibles (une base de données peut ne pas être montée, le broker JMS peut être saturé, etc.).

L'utilisation de logs permet de surveiller ce qui se passe en temps quasi réel, mais aussi d'accéder à l'historique.

JMX

http://fr.wikipedia.org/wiki/JMX

JMX est une spécification Java permettant d'exposer des MBeans présents dans la JVM. Un MBean est simplement une classe Java exposant des getters et des méthodes.

Cela permet par exemple d'accéder à des attributs de la JVM tels que le temps total de compilation. On peut également appeler des méthodes.

Il est donc possible d'ajouter dans notre programme Java des MBeans afin de les exposer via JMX. Cela permet de remonter des valeurs, ou d'appeler des méthodes de notre programme. Par exemple, Tomcat expose les MBeans User, Role, mais aussi le nombre de requêtes pour chaque servlet. On peut également stopper un port donné, expirer une session, etc.

Utiliser JMX dans une application Java permet donc facilement, avec les outils adéquats, d'interagir avec l'application et de surveiller ce qui se passe dans la JVM, aussi bien au niveau technique qu'au niveau fonctionnel (il suffit d'écrire les MBeans correspondant).

La plupart des outils suivants se basent sur JMX pour remonter les informations.

JConsole

http://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html

JConsole est présent dans le JDK. C'est une interface graphique affichant des graphes décrivant le fonctionnement de la JVM. On y trouve par exemple un graphe affichant la mémoire Heap utilisée, le nombre de threads actifs, ou encore le pourcentage d'utilisation du CPU.

JConsole permet également de consulter les MBeans exposés par la JVM.

JConsole permet de se connecter à une JVM locale, mais également à une JVM distante (il faut effectuer une configuration au niveau de la JVM distante).

Dans le cas où le réseau bloque les ports empêchant JConsole de se connecter à une JVM distante, il est possible d'utiliser un tunnel SSH. Pour cela, on peut utiliser PuTTY :

  • Aller dans la section Connection/SSH/Tunnels, puis dans Add new forwarded port, renseigner un numéro de port quelconque dans Source port (ce sera le port du proxy SOCKS), puis sélectionner Dynamic.
  • Cliquer sur Add. Dans le tableau au dessus, une ligne doit s'ajouter avec le numéro de port préfixé par la lettre D.
  • Se connecter au serveur distant en SSH avec PuTTY.
  • Lancer JConsole avec la commande suivante : jconsole.exe -J-DsocksProxyHost=localhost -J-DsocksProxyPort=10000 (avec 10000 le port renseigné dans PuTTY).

JConsole permet de voir ce qui se passe à un instant donné dans l'application, mais ne permet pas de consulter l'historique. JConsole ne conserve que l'historique depuis son démarrage.

JVisualVM

http://docs.oracle.com/javase/7/docs/technotes/tools/share/jvisualvm.html

JVisualVM est également présent dans le JDK. Il reprend les fonctionnalités de JConsole sur l'affichage de graphes sur les mesures internes de la JVM.

JVisualVM ne permet pas de base d'accéder aux MBeans de la JVM. Cependant, il a un mécanisme de plugins qui permet de rajouter un onglet MBeans (VisualVM-MBeans) offrant les mêmes fonctionnalités que JConsole.

De plus, d'autres plugins sont intéressants :

  • Visual GC : affichage précis des différents pools de mémoire de la JVM, ainsi que les temps utilisés par le Garbage Collector.
  • Tracer-JVM Probes : sondes permettant d'afficher des graphes sur des comportements internes de la JVM (utilisation des Collections, les buffers NIO, etc.).

JVisualVM permet de se connecter à une JVM locale, mais également à une JVM distante (il faut effectuer la même configuration au niveau de la JVM distante que pour JConsole).

Dans le cas où le réseau bloque les ports empêchant JVisualVM de se connecter à une JVM distante, il est possible d'utiliser un tunnel SSH de la même manière que pour JConsole. Il suffit, après avoir activé le proxy SOCKS, d'aller dans JVisualVM dans le menu Tools > Options > Network (proxy SOCKS).

JVisualVM permet de voir ce qui se passe à un instant donné dans l'application, mais ne permet pas de consulter l'historique. JVisualVM ne conserve que l'historique depuis son démarrage.

JMX Term

http://wiki.cyclopsgroup.org/jmxterm

C'est un outil en ligne de commande permettant d'accéder aux MBeans. L'avantage c'est que l'on peut l'utiliser même si on n'a pas d'interface graphique (sur un serveur Linux sans X11 par exemple). Il est fourni sous forme d'un Jar exécutable.

Une fois le Jar lancé, on se connecte à une JVM locale, puis on navigue dans les domaines et les MBeans, pour enfin afficher les valeurs, les renseigner, ou appeler des méthodes.

JMX Term offre également la possibilité d'être utilisé via des outils de scripts, tels que Perl ou un shell. Voici par exemple un extrait du site de JMX Term :

open JMX, "| java -jar $jar -n";

 print JMX "help \n";

 my $host = "localhost";

 my $port = 9991;

 print JMX "open $host:$port\n";

 print JMX "domains\n";

 print JMX "close\n";

 close JMX;

JMX Term ne conserve pas d'historique.

jmxtrans

https://github.com/jmxtrans/jmxtrans

Cet outil a pour objectif d'extraire des informations de différentes JVMs, puis de les envoyer vers d'autres outils pour leur traitement. Il a pour vocation d'être performant avec un grand nombre de JVMs à analyser.

Il fonctionne en tâche de fond. Une fois lancé, il lit des fichiers de configuration écrits en JSON ou YAML, dans lesquels sont décrits les serveurs à analyser, le port JMX, les objets MBeans à interroger, et la façon dont envoyer les données des MBeans.

Par exemple, il est possible de lui demander d'interroger le MBean java.lang:type=OperatingSystem, et de récupérer les valeurs des attributs SystemLoadAverage et FreePhysicalMemorySize, puis d'envoyer ces valeurs dans un fichier texte.

La façon dont JMXTrans traite les données récupérées se fait par la notion de Writer. Il existe des Writers pour écrire les données sur la console, dans un fichier texte, mais aussi vers Graphite (outil web de visualisation de données), ou encore vers des fichiers de type RRD (utilisés entre autre par Nagios, Cacti).

JMXTrans permet donc de surveiller un ensemble de JVMs (sur des attributs de notre choix), et d'envoyer ces données à d'autres outils pour affichage ou analyse.

Par sa nature, JMXTrans permet de conserver l'historique : il tourne en tâche de fond, et les Writers accumulent les données reçues. C'est à la charge des outils externes (Graphite, Nagios, etc.) d'afficher ces données historisées.

Jolokia

http://www.jolokia.org/

Cet outil permet de récupérer les données des attributs de MBeans par des services web REST. Il se greffe dans une JVM et est ensuite interrogeable par une URL, dans laquelle on indique les MBeans à interroger (pour récupérer des valeurs d'attributs, ou appeler des méthodes). Le format retourné par l'URL est du JSON.

La façon d'intégrer Jolokia dans une JVM peut se faire de différente manière : via un war à mettre dans Tomcat, un bundle OSGi, ou un agent Java (spécifié dans la commande java lançant l'application).

Jolokia permet donc de faciliter l'interrogation d'une JVM pour obtenir des données sur son fonctionnement. Il est ensuite facile d'utiliser un autre outil tel que Nagios pour automatiser la récupération d'informations via Jolokia.

Jolokia fournit un instantané de ce qui se passe dans la JVM, c'est à la charge des outils qui l'utilisent d'historiser les données.

HawtIO

http://hawt.io/

C'est une webapp déployable sous un conteneur de servlet (Tomcat par exemple), qui permet de se connecter à une JVM locale ou distante (la connexion à une JVM distante se fait en utilisant Jolokia - Jolokia doit donc être installé sur la JVM distante).

HawtIO met à disposition une interface web permettant de consulter les données exposées (par JMX ou Jolokia) d'une JVM. Il est possible de consulter les données, mais également d'afficher des graphes pour des données numériques.

Ce projet est en plein développement, mais semble prometteur. Il a un système de plugin permettant d'afficher des vues spécifiques selon les frameworks utilisés dans la JVM. Par exemple, s'il détecte qu'il y a le broker ActiveMQ, alors il va rajouter un onglet spécifique facilitant la consultation des données du Broker. De même, si Tomcat est détecté, alors un onglet dédié permettra d'arrêter des applications, de voir les sessions, etc.

HawtIO permet de grapher les données numériques, mais l'historique se limite à la durée de connexion à HawtIO.

YourKit & JProfiler

http://www.yourkit.com/

http://www.ej-technologies.com/products/jprofiler/overview.html

Ces deux outils permettent, comme JConsole et VisualVM, de se connecter à une JVM locale et distante, et d'afficher des informations sur cette JVM.

La force de ces outils est de proposer des méthodes pour détecter ce qui consomme le plus de ressources dans le programme.

Notamment, la détection de fuites mémoire est grandement facilitée avec ces outils, qui montrent le nombre d'instances de chaque objet, et quels sont les objets qui gardent une référence sur ceux-ci, empêchant le garbage collector de les supprimer.

Eclipse MAT

http://www.eclipse.org/mat/

Cet outil est assez similaire dans les objectifs à YourKit et JProfiler, mais il fonctionne sur un Heap Dump. C'est à dire que son utilisation est plutôt post mortem.

Cette page explique comment générer un Heap Dump sur une application existante, et quels paramètres fournir à Java pour qu'il génère automatiquement un Heap Dump en cas de OutOfMemoryError. Cela permettra d'analyser a posteriori les causes d'une fuite mémoire sur un système en production.

Apache JMeter & Gatling

http://jmeter.apache.org/

http://gatling-tool.org/

Ce sont des outil de tests de performance, permettant de tester la résistance d'applications sous différents cas d'utilisation. Les tests de performances peuvent être de différents types, par exemple : tests de charge, tests de stress, tests d'endurance, etc. Cette page explique les différents types de tests.

Ils ne permettent pas d'analyser directement le fonctionnement d'une JVM (ni en cours de fonctionnement, ni à partir d'un Heap Dump), mais ils permettent de s'assurer que notre application (Java ou autre) réponde bien à différents scénarios. Ils produisent par contre des rapports et des graphiques permettant de s'assurer que notre application répondra correctement dans ces cas d'utilisation.

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 13/09/13
  • Correction mineure : 13/09/13
Mots-clés

Segmentation d'IRM cardiaque 3d+t : délimitation automatique du myocarde du ventricule gauche en IRM 3D+t

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Système : UNIX-like, Windows
  • Licence(s) : CeCILL
  • Etat : utilisé en interne
  • Support : maintenu, sans développement en cours
  • Concepteur(s) : Michel Couprie, Jean Cousty, Laurent Najman
  • Contact concepteur(s) : j.cousty @ esiee.fr
  • Laboratoire(s), service(s)... : LIGM

 

Fonctionnalités générales du logiciel

Les fonctionnalités proposées sont :

  • délimitation (segmentation) du myocarde (parois endo- et epi-cardiques) du ventricule gauche à partir d'IRM ciné 3D+t ;
  • visualisation 3D au cours du temps du myocarde du ventricule gauche ;
  • estimation du volume de la cavité du ventricule gauche au cours du temps ;
  • estimation de la fraction d’éjection du ventricule gauche ;
  • estimation de la masse myocardique.
Contexte d’utilisation du logiciel

L'étude de la fonction ventriculaire gauche chez des patients ayant subis un infarctus du myocarde a pour objectif d'évaluer la capacité d'un patient à récupérer tout ou partie de sa fonction cardiaque ventriculaire. Les principales sources d'informations dont disposent les médecins sont des images volumiques fixes et des séquences d'images 3D provenant de systèmes d'imagerie à résonance magnétique (IRM). Dans ce contexte, nous présentons le logiciel d'aide au diagnostic développé par notre équipe pour manipuler, visualiser et analyser ces séquences d'images. Ce logiciel, utilisé par l'équipe de cardiologie du CHU Henri Mondor de Créteil, repose grandement sur la bibliothèque de traitement d'images PINK développée à l'ESIEE depuis de nombreuses années et distribuée sous licence CeCILL.

Par ailleurs ce logiciel a été utilisé dans le cadre des actions IMPEIC et MEDIEVAL du GDR Stic-Santé (INSERM/CNRS) dans le but de comparer différents logiciels d'analyse d'images cardiaques et de produire une méthode capable de fusionner les résultats des différentes méthodes pour obtenir un résultat supérieur au résultat individuelle de chacune des méthodes.

Publications liées au logiciel

La méthode implémentée dans le logiciel est décrite dans deux publications principales :

  • J. Cousty, L. Najman, M. Couprie, S. Clément-Guinaudeau, T. Goissen, J. Garot. Segmentation of 4D cardiac MRI: automated method based on spatio-temporal watershed cuts. Image and Vision Computing, 28:1229-1243, 2010.

  • J. Cousty, L. Najman, M. Couprie, S. Clément-Guinaudeau, T. Goissen, J. Garot. Automated, accurate and fast segmentation of 4D cardiac MR images. Functional Imaging and Modeling of the Heart 2007, LNCS 4466, pp. 474-483.

Elle a été développée dans le cadre d'une thèse :

  • J. Cousty. Lignes de partage des eaux discrètes : théorie et application à la segmentation d'images cardiaque. Thèse de doctorat de l'Université de Marne-la-Vallée, 2007.

La base de données utilisée pour valider le logiciel est décrite dans l'article suivant :

  • L. Najman, J. Cousty, M. Couprie, H. Talbot, S. Clément-Guinaudeau, T. Goissen and J. Garot. An open, clinically-validated database of 3D+t cine-MR images of the left ventricle with associated manual and automated segmentations. Insight Journal, special issue ISC/NA-MIC Workshop on Open Science at MICCAI 2007.

Cette base de donnée est disponible en ligne : http://www.laurentnajman.org/heart/.

L'utilisation du logiciel de segmentation dans le cadre des actions collaboratives IMPEIC et MEDIEVAL est décrite principalement dans la publication suivante :

  • J. Lebenberg, I. Buvat, A. Lalande, P. Clarysse, C. Casta, A. Cochet, C. Constantinidès, J. Cousty, A. De Cesare, S. Jehan-Besson, M. Lefort,L. Najman, E. Roullot, L. Sarry, C. Tilmant, M. Garreau, F. Frouin. Nonsupervised Ranking of Different Segmentation Approaches: Application to the Estimation of the Left Ventricular Ejection Fraction From Cardiac Cine MRI Sequences. Medical Imaging, IEEE Transactions on, 31(8):1651-1660, 2012.
Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 13/09/13
  • Correction mineure : 13/09/13
Mots-clés

Ibex : bibliothèque numérique C++ pour l'arithmétique d'intervalles et la programmation par contraintes

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Version actuelle : 2.0.9 - 28/08/2013
  • Licence(s) : LGPL - v3
  • Etat : diffusé en beta
  • Support : maintenu, développement en cours
  • Concepteur(s) : équipe d'Ibex
  • Contact concepteur(s) : gilles.chabert @ mines-nantes.fr
  • Laboratoire(s), service(s)... : Lab-STICC, LIGM, LINA, LIRMM, OSM, Universidad Técnica Federico Santa María (Chile)

 

Fonctionnalités générales du logiciel

Cette bibliothèque C++ s'utilise pour résoudre une variété de problèmes pouvant se formuler de la façon suivante :

Trouver une caractérisation fiable en boîtes (produits cartésiens d'intervalles) d'ensembles définis implicitement par contraintes.

L'adjectif "fiable" signifie que toutes les sources d'imprécision doivent être controlées :

  • approximation des nombres réels par réels à virgule flottante,
  • erreurs d'arrondi,
  • troncatures de linéarisation,
  • incertitudes des paramètres du modèle,
  • bruit de mesure,
  • ...
Contexte d’utilisation du logiciel

Outil de recherche en programmation par contraintes.

Publications liées au logiciel
Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 13/09/13
  • Correction mineure : 13/09/13
Mots-clés

Norm_Est : estimation de normales de nuage de points

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Version actuelle : 20130813 - 13/08/2013
  • Licence(s) : GPL - v3
  • Etat : diffusé, stable
  • Support : maintenu, sans développement en cours
  • Concepteur(s) : Alexandre Boulc'h
  • Contact concepteur(s) : boulc-ha @ imagine.enpc.fr
  • Laboratoire(s), service(s)... : LIGM

 

Fonctionnalités générales du logiciel

Ce logiciel permet de calculer la normale à la surface sous-jacente en chaque point d'un nuage donné. L'algorithme ne lisse pas au niveau des angles tout en étant d'une rapidité comparable à l'état de l'art.

Contexte d’utilisation du logiciel

Logiciel utilisé pour obtenir des résultats de la publication [1], voir aussi les transparents de la présentation (sur le site web).

Publications liées au logiciel

[1] Alexandre Boulc'h et Renaud Marlet, Fast and Robust Normal Estimation for Point Clouds with Sharp Features,
Symposium of Geometry Processing 2012, Tallin, Estonia.

Syndiquer le contenu