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

avec Java Discussion :

Avis sur cohérence de mon projet [Débutant(e)]


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Par défaut Avis sur cohérence de mon projet
    Bonsoir à tous et toutes,

    Premier message sur ce site que je vais suivre de très près .

    J'aurais besoin, si vous le voulez bien, de votre avis sur ma démarche concernant un projet.
    Je m'excuse platement tout d'abord, je suis débutante en programmation. J'espère déjà être dans la bonne section, sinon je réitère toutes mes excuses.


    Le contexte : une grosse appli client léger en JSP. Cette appli est prévue pour fonctionner avec des périphériques. Or un périphérique est branché sur un pc client. Normalement le client accède à l'appli Web via son WebBrowser habituel. L'appli Web tape dans une BDD pour connaître quel périphérique le client a associé à son pc. Via Javascript, l'appli Web fait apparaître sur une page JSP un lien (déguisé en bouton par CSS) relatif au périphérique trouvé dans la BDD avec un Id (identifiant) unique.

    C'est le pc client où est branché le périphérique qui prends en charge le traitement relatif au périphérique (disons l'apparition d'une boîte de dialogue factice avec le nom du périphérique), quand le client clique sur le bouton de l'appli Web.

    La problématique : le pc client doit savoir ce que contient la page Web pour être à l'écoute du "bouton" apparu.
    Je n'ai pas le droit d'ouvrir des ports entre le pc client et le Web.

    Comment j'ai fais : J'ai développé une appli client lourd en Swing composé d'une JFrame vide et d'un JEditorPane, donc capable de se connecter à l'appli Web, d'afficher ses pages, et de gérer les hyperliens (un navigateur Web en fait, qui ne change rien à l'utilisation de l'appliWeb mais permet de gérer les périphériques).
    Je parse l'HTML affiché, détecte l'éventuel "bouton", y ajoute un Listener et au clic du client dessus mon appli client lourd lance la boîte de dialogue factice correspondante.

    Bien sûr... L'objet JEditorPane ne gère pas le HTML supérieur à 3.2, quasiment pas le CSS et pas du tout le Javascript. Donc je suis repartie sur JavaFX et sa classe WebView qui gère tout ça bien mieux. C'est juste grave la galère avec le parse du Document affiché (dont je ne suis pas du tout sûre d'utiliser la meilleure méthode), la récupération de l'Id du "bouton" et le Listener... Je trouve très peu d'aides là-dessus sur le net.


    Pour vous en dire un peu plus, je suis en stage pour être développeuse Java, et ça c'est ce qu'on m'a demandé de faire. J'aimerais avoir l'avis des gens qui passent par là, pour savoir si la solution choisie tient debout, si vous avez d'emblée pensé à une autre solution, si JavaFX est un bon choix, enfin tout ce que vous auriez envie de me dire sur le sujet .

    Une question précise : y'a t-il un moyen de faire communiquer un navigateur Web classique (type FireFox, Chrome, ...) avec son pc ?
    J'ai honte je n'y connais rien, mais lorsqu'on clique sur un lien de téléchargement sur le Web par exemple, c'est bien notre pc qui affiche la boîte de dialogue permettant de choisir le dossier de destination du téléchargement ? Ca (mea culpa, je ne sais toujours pas faire les ç majuscules) semble être le fonctionnement dont j'ai besoin, mais je ne trouve rien sur le sujet qui soit exploitable pour mon projet. Quelqu'un sait comment ça fonctionne ? J'imagine qu'il y a des sécurités qui empêchent toute autre autre interaction entre le navigateur et le pc, mais quoi ? Le firewall ?

    Si besoin de détails supplémentaires si le sujet vous intéresse, n'hésitez pas je serai à l'affut de vos éventuelles réponses.


    Mille merci,

    Bonne soirée

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Berwazp Voir le message
    J'aimerais avoir l'avis des gens qui passent par là, pour savoir si la solution choisie tient debout, si vous avez d'emblée pensé à une autre solution, si JavaFX est un bon choix, enfin tout ce que vous auriez envie de me dire sur le sujet .
    Étant donné le besoin, ça m'a pas l'air trop déconnant de le faire comme ça si tu dois le faire... Le web est juste pas prévu pour.
    Je m'inspirerais de ce que font par exemple DropBox ou Google Drive. Ce sont des sites webs qui aimeraient bien ne fonctionner que comme site web, mais qui ne peuvent pas : pour synchroniser des dossiers entre l'ordinateur et le stockage en ligne il faut que le PC touche beaucoup au dossier local et divulgue au site pas mal d'infos à son sujet... Et un navigateur ne propose aucun moyen de faire ça. De plus il faut pouvoir le faire même quand le site n'est pas ouvert dans un onglet, et les navigateurs ne donnent pas non plus de moyen de faire quelque chose quand le site n'est même pas ouvert.

    Donc ils ont décidé de s'éclater en deux partie : un site web, pour faire tout ce qu'un site web sait faire : stockage en ligne, upload/download de fichiers, informations sur les fichiers, restauration à version antérieure. Et un programme annexe, optionnel, à installer par les utilisateurs, qui s'occupe de tourner en tâche de fond et de synchroniser les dossier, sans communiquer avec le navigateur, et en utilisant peu de technologie web (pas de HTML, CSS ou JavaScript. Mais utilisation éventuelle de HTTP via un webservice.)

    Citation Envoyé par Berwazp Voir le message
    Une question précise : y'a t-il un moyen de faire communiquer un navigateur Web classique (type FireFox, Chrome, ...) avec son pc ?
    La seule solution officielle est de développer un plugin navigateur, de l'installer sur les navigateurs qui s'en serviront, et de faire en sorte que la page l'appelle. C'est difficile, et notamment un plug-in navigateur ne se fait pas en Java.
    Après, il existe des spécificités de navigateur. Par exemple avec IE, tu peux utiliser ActiveX ou Silverlight si le site web fait partie des sites "de confiance" listés dans le système de sécurité Windows. Je suppose que d'une manière ou d'une autre ça doit permettre de faire le pont.

    Citation Envoyé par Berwazp Voir le message
    lorsqu'on clique sur un lien de téléchargement sur le Web par exemple, c'est bien notre pc qui affiche la boîte de dialogue permettant de choisir le dossier de destination du téléchargement ?
    Oui, mais il le fait parce que le site web répond un fichier de téléchargement, et qu'en conséquence, le navigateur dit à l'OS "bon il va falloir sauvegarder un fichier, là, balance une boîte de dialogue pour choisir où et donne-moi le résultat."

    Citation Envoyé par Berwazp Voir le message
    Ca [...] semble être le fonctionnement dont j'ai besoin,
    Non. Ça n'est pas quelque chose que tu peux exploiter . (Moi sous Windows j'ai carrément créé mon propre layout clavier pour faire les Ç avec AltGr+shift+ç. Je n'arrive pas à retenir les codes.)

    Citation Envoyé par Berwazp Voir le message
    J'imagine qu'il y a des sécurités qui empêchent toute autre autre interaction entre le navigateur et le pc,
    Oui.

    Citation Envoyé par Berwazp Voir le message
    mais quoi ? Le firewall ?
    L'absence de mécanisme, pour les sites webs, permettant de demander au pc de faire quelque chose. (Sauf, éventuellement, via l'installation de plug-ins ou extension dans le navigateur, qui ne peut se faire que par l'utilisateur du navigateur ou son administrateur.)
    Également un bac à sable dans lequel le navigateur enferme tout ce qu'un site web lui demande de faire, pour que ça ne se fasse qu'à l'intérieur du bac à sable. Ce bac à sable ayant des droits réduits, notamment pas de commander des trucs au pc.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Moi je trouve ça assez déconnant comme technique

    Si tu en viens à développer une appli en local affichant les pages web, autant te passer des pages web et t'affrancher du jsp/servlet et cie pour tout faire en client lourd, avec un serveur pour gérer les données. Ca évitera pas mal d'emmerdes et de confusion.

    Restent deux possibilités envisageables relativement propres selon moi:

    1) Démarrer une applet dans la page web dont le boulot est de dialoguer avec le périphérique. Tu peux ensuite utiliser du javascript pour échanger des données entre l'applet et le serveur, ou l'applet peut le faire elle même. Avantage: tu peux faire tourner ça dans le browser de l'utilisateur. Au lieu de générer un bouton avec un url spécialisée, tu génèrera un tag applet. J'ai déjà fait ça par le passé pour des lecteurs de cartes d'identité électronique, c'est un peu chiant à mettre en place au départ, mais c'est très propre pour l'utilisateur.

    2) créer un plugin traitant ton propre protocole et l'installer sur chaque machine. Tu peux ainsi créer des urls de type peripherique://id_du_peripherique/?param1=val1&param2=val2. Ca se fait par exemple ici https://addons.mozilla.org/en-US/fir...rotocol-handl/

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    1) Démarrer une applet dans la page web dont le boulot est de dialoguer avec le périphérique. Tu peux ensuite utiliser du javascript pour échanger des données entre l'applet et le serveur, ou l'applet peut le faire elle même. Avantage: tu peux faire tourner ça dans le browser de l'utilisateur. Au lieu de générer un bouton avec un url spécialisée, tu génèrera un tag applet. J'ai déjà fait ça par le passé pour des lecteurs de cartes d'identité électronique, c'est un peu chiant à mettre en place au départ, mais c'est très propre pour l'utilisateur.
    Tiens je m'étais plus ou moins figuré qu'une applet ne pourrait pas accéder au matériel comme ça. Ça m'embête d'ailleurs de découvrir que si je réinstalle le plug-in Java, des sites pourraient le faire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    A partir du moment où elle est signée et a demandé tous les droits, oui. Evidement, l'utilisateur devra donner ces droits

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hmm, mais bon, si ces droits se donnent avec une pop-up "concours de celui qui clique le plus vite sur 'Oui' en ayant le temps de lire le moins de mots possibles," je ne risque pas grand-chose. Mais mes concitoyens -_-° ...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/09/2010, 19h07
  2. [Avis] Sur quoi poursuivre mon apprentissage?
    Par Jean-Michel Ormes dans le forum Débuter
    Réponses: 10
    Dernier message: 03/09/2009, 16h09
  3. Avis sur une conception de projet
    Par sabri_icone dans le forum UML
    Réponses: 3
    Dernier message: 01/06/2009, 18h56
  4. Réponses: 9
    Dernier message: 16/04/2009, 02h14
  5. Avis sur design de mon site
    Par Deadgamer dans le forum Mon site
    Réponses: 8
    Dernier message: 17/11/2006, 20h27

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