IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Monitoring d'un processus Java


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 65
    Points
    65
    Par défaut Monitoring d'un processus Java
    Salut,

    Je développe des modèles scientifiques en Java.
    Je souhaite construire un démonstrateur public, facile d'accès, de ces modèles.

    Il y a quelques années, j'utilisais pour cela des applets, mais il n'en est plus question aujourd'hui.
    Une application Java ou Java Web Start n'est pas la solution, car très peu de visiteurs vont télécharger et désactiver les contrôles de sécurité pour finalement exécuter les simulations.

    J'ai donc pensé à utiliser Javascript.
    Il ne s'agirait pas de reprogrammer les modèles (trop compliqués), mais d'utiliser JS côté client pour contrôler les simulations et visualiser leurs résultats, les modèles étant exécutés en Java côté serveur.

    Côté client, au minimum, le contrôle pourrait se réduire à un bouton run/stop et la visualisation à quelques line charts mis à jour "en temps réel" au fur et à mesure de l'avancée de la simulation.

    Mes questions :
    - Est-ce que la solution envisagée est une solution réaliste à mon problème, compte tenu du fait que je ne sais rien de JS ni des interactions client/serveur ?
    - Si oui, quels ressources et exemples pour m'aider à mettre en place cette solution ?

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par sepas Voir le message
    [...] Côté client, au minimum, le contrôle pourrait se réduire à un bouton run/stop et la visualisation à quelques line charts mis à jour "en temps réel" au fur et à mesure de l'avancée de la simulation.

    Mes questions :
    - Est-ce que la solution envisagée est une solution réaliste à mon problème, compte tenu du fait que je ne sais rien de JS ni des interactions client/serveur ?
    - Si oui, quels ressources et exemples pour m'aider à mettre en place cette solution ?


    Pour un débutant, il va y avoir beaucoup de choses à assimiler !

    Je ne connais pas Java et je n'utilise pas Chart.js, mais après quelques recherches avec Google, je vous conseille de lire : Integrating Chart JS Library With Java.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    plutôt que chart.js regarde https://webix.com/widget/charts/

    avec https://webix.com/widget/webixjet/ tu peux assez rapidement faire l'interface de ton application
    et les graphes sont très facile à intégrer dans l'application.

    Alors pour un débutant ce ne sera pas immédiat mais l'approche reste très orienté composant comme dans java swing



    pour te donner un ordre d'idée de ce qu'il y a à faire voici un exemple
    https://docs.webix.com/samples/08_ch...t/01_init.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <!doctype html>
    <html>
    <head>
    	<title>Line Chart: Basic Initialization</title>
    	<script src="//cdn.webix.com/site/webix.js?v=4.4.7" type="text/javascript"></script>
    	<link rel="STYLESHEET" type="text/css" href="//cdn.webix.com/site/webix.css?v=4.4.7">
    	<script src="../../common/chartdata.js"></script>
    <body>
        <div id="chartDiv" style="width:600px;height:250px;margin:20px"></div>
    	<script>
            webix.ui({
                view:"chart",
                container:"chartDiv",
                type:"line",
                value:"#sales#",
                item:{
                    borderColor: "#1293f8",
                    color: "#ffffff"
                },
                line:{
                    color:"#1293f8",
                    width:3
                },
                xAxis:{
                    template:"'#year#"
                },
                offset:0,
                yAxis:{
                    start:0,
                    end:100,
                    step:10,
                    template:function(obj){
                        return (obj ?"":obj)
                    }
                },
                data: dataset
            });
    	</script>
    </body>
    Cette page définie une vue (webix.ui) de type "line" (type du graphe) avec l'axe x => year etc.

    les donnée de la démo son dan le fichier ../../common/chartdata.js lié au début et référencé par
    data: dataset
    la variable dataset est crée dans chartdata.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var dataset = [
    	{ id:1, sales:20, year:"02"},
    	{ id:2, sales:55, year:"03"},
    	{ id:3, sales:40, year:"04"},
    	{ id:4, sales:78, year:"05"},
    	{ id:5, sales:61, year:"06"},
    	{ id:6, sales:35, year:"07"},
    	{ id:7, sales:80, year:"08"},
    	{ id:8, sales:50, year:"09"},
    	{ id:9, sales:65, year:"10"},
    	{ id:10, sales:59, year:"11"}
    ];
    pour que tu appli utilise tes données de ton java il faudra remplacé data: dataset par url: "http://monserveur/mes/données'
    http://monserveur/mes/données est un service fourni par ton java et qui doit retourner quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [
    	{ id:1, sales:20, year:"02"},
    	{ id:2, sales:55, year:"03"},
    	{ id:3, sales:40, year:"04"},
    	{ id:4, sales:78, year:"05"},
    	{ id:5, sales:61, year:"06"},
    	{ id:6, sales:35, year:"07"},
    	{ id:7, sales:80, year:"08"},
    	{ id:8, sales:50, year:"09"},
    	{ id:9, sales:65, year:"10"},
    	{ id:10, sales:59, year:"11"}
    ]

    A+JYT

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 65
    Points
    65
    Par défaut
    C'est intéressant, merci.
    Cependant, ça ne parait pas convenir dans la mesure où il s'agit de graphes statiques, alors qu'il s'agit de pouvoir suivre en temps réel sur le client les progrès de la simulation exécutée sur le serveur.
    Webix propose bien des charts dynamiques (https://docs.webix.com/samples/08_ch...amic_line.html) mais apparement les données sont générées par le client, et non par le serveur.

    Ce qu'il me faudrait, c'est plutôt qq chose qui fonctionnerait comme ceci: http://www.fusioncharts.com/charts/realtime-charts/ ou bien, semble-t-il, comme cela: https://developers.google.com/chart/...e/docs/queries

    Sauf qu'en plus, il faudrait que ce soit une librairie open source...

  5. #5
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    non les donnée sont fournies par le serveur

    il suffit d'invoquer le service régulièrement pour que le graphe se mette à jour.

    dès que les data change toutes les présentations (table ou graphe) sont mises à jour.

    je m'en sert pour afficher la charge CPU et Mémoire de dizaines de JVM
    pour cela j'invoque les services rest des JVM via Jolokia
    A+JYT

Discussions similaires

  1. Processus java communiquent
    Par chercheur111 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 18/04/2012, 22h48
  2. environnement dans un processus Java
    Par alamako dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 11/07/2011, 10h59
  3. Processus java.exe incontrôlable
    Par Génoce dans le forum Glassfish et Payara
    Réponses: 5
    Dernier message: 17/02/2011, 14h27
  4. Rapport bloqué par le processus java.exe
    Par methodman225 dans le forum Jasper
    Réponses: 1
    Dernier message: 07/02/2011, 09h33
  5. [Système]Comment connaître l'ID de mon processus Java ?
    Par _Mac_ dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 14/02/2006, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo