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

Services Web Discussion :

service web / port com


Sujet :

Services Web

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut service web / port com
    Bonjour à tous,

    J'ai réalisé une application pouvant lire et écrire sur le port série en vb.net avec la classe "serialport"
    Tout fonctionne... Maintenant, je souhaite réaliser cette application sur une page web. Sur le forum "langages en vb.net", on me dit de réaliser ce projet avec un service web. Très bien, je parcours quelques cours, tuto http://dotnet.developpez.com/cours/?...p#servicewebcs et un bouquin ASP.net... Je ne trouve pas ou plutôt je ne sais pas comment commencer et surtout la technique...

    Dans un premier temps je souhaite d'abord comprendre le fonctionnement... De manière simpliste :
    - un web service écoute les demandes ou prend en compte les données de la page web
    - le web service ouvre le port com avec ses paramètres, lit ce qui s'y présente ou transfert au port com les données de la page web

    1. Est-ce bien cela?

    2. Dans Visual Studio, je peux placer l'ensemble des paramètres et les gestions d'erreurs et d'exceptions dans le web service?

    3. Est-il possible à l'aide de php de récupérer et/ou transférer les données de la page web vers le web service et inversement?

    4. Suis-je à côté de la plaque et raconte n'importe quoi?

    Me reste toujours la possibilité d'écrire et lire dans un fichier .txt côté vb.net et de lire et écrire dans ce même fichier avec php, mais l'application doit tourner un même temps et cela me semble du bricolage, me trompe-je?

    5. Je ne dois pas être la premier à poser cette question, mais ne trouve pas de renseignements précis.... Si un bouquin traite de cela, je suis preneur...

    Merci
    Cordialement
    Lio

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    Je me permets de faire un p'tit up ...

    Pas de réponse à ce post....

    1. Je ne suis pas sur le bon forum?
    2. La question est stupide?
    3. Il n'a pas assez réfléchi?
    4. Sans intérêt?

    Je ne demande pas la solution clefs en main, mais :

    A. Si un service web serait la bonne solution?
    B. Si cette solution est faisable?
    C. Si je me trompe, pourriez vous me donner quelques conseils?
    D. Si la solution est correcte, pourriez-vous me mettre "le pied à l'étrier"?

    Merci à vous

    Cordialement
    Lio

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    T'as pas besoin de passer obligatoirement par un service web. Tu peux intégrer ça directement à ton appli. Je pense qu'il faut que tu te plonges un peu plus dans l'étude des technos web/web services pour comprendre les interaction possibles. Après c'est aussi une historie de droits: quel utilisateur a le droit d'accéder au port série, sachant qu'en général les applis web tournent avec des droits spécifiques afin de prévenir les problèmes en cas d'intrusion/attaque..
    Mais de manière générale, il me paraît difficile de mettre ce genre d'appli en mode "web". Le web suppose (en général du moins) une utilisation par n personnes simultanément (contrairement à une appli "lourde"). Je suppose que tu utilises le port série pour accéder à un appareillage externe. As-tu pensé à la gestion de l'accès concurrent à cet appareil? Je penses pas que plusieurs personnes puissent l'utiliser en même temps...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    Merci chrisdot pour votre message...

    Effectivement, plusieurs personnes ne pourront utiliser le matériel en même temps....
    Oui, l'accès au port série via une page web pose un soucis de sécurité. L'idée est, bien entendu, que l'accès soit protégé....
    Ce que je recherche, c'est de pouvoir avoir accès à mon application qui est en vb.net depuis le web.
    En javascript, il me semble que c'est possible mais uniquement sous Linux en écriture et lecture...
    Quelles sont alors les technologies utilisées pour gérer du matériel via le web???
    Là, je sèche et les ressources ne sont pas nombreuses.... J'avais bien envie de continuer avec du .net...

    Merci

    Lio

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    J'aurais plutôt mis un service Windows qui utilise le matériel. La classe qui accède au matériel est en singleton.
    Apres tu peux faire un site web en ASP.Net qui communique avec ce service (via WCF en namedpipebinding par exemple) ou exposer des webservices (qui communiquent avec ce service windows). C'est selon qui consomme le service...

    L'interet de rajouter une couche est que par exemple si il y a un échec de communication et que le client ne se déconnecte pas proprement (et ne rend pas la main sur le materiel par exemple) ca sera plus simple à traiter dans un service windows qui tourne en permanence.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    Merci Nathanael pour vos pistes!

    Panique à bord... J'ai fait des recherches sur l'implantation du pattern design singleton... Pour l'instant je ne comprends pas grand chose.

    Le "namedpipebinding" c'est pour sécuriser la communication entre la page web et le service windows, c'est bien ça?

    Par quoi dois-je commencer? Par la création d'un service windows, non?
    http://selkis.developpez.com/tutorie...ervicewindows/

    Les 3 questions suivantes sont posées sans avoir essayé et trop réfléchi...
    1. C'est dans le service windows que je dois configurer le port série? Avec la classe "serialport", je ne sais pas si ce composant peut être ajouter dans ce service....
    2. Il faudra que je nomme des variables qui contiendront une données ou qui recevront une données?
    3. Je ne connais pas le langage ASP.net.... Pensez vous qu'il est possible de dialoguer avec du PHP et le service windows? Oui, dans ce cas, je ne peux employer le "namedpipebinding", c'est bien cela?

    Merci
    Cordialement
    Lio

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    ASP.Net n'est pas un language, c'est la technologie .NET qui te permets (en C# ou en VB) de développer pour le web. (génération de pages web, comme PHP)

    L'idée c'est de découper le système:
    • Le service qui va s'occuper de communiquer avec l'appareil à travers le port série (oui c'est là que tu attaques froidement la ligne série)
    • Ta version en mode web de ton interface (en ASP.net par exemple)
    • Un tuyau entre les deux pour la communication: Nathanael te proposait WCF en mode namedpipebinding

    Nous t'avions orienté vers les technos MS les plus appropriées, mais il ya bien sûr d'autres façons de faire (différents tunnels de communication, différentes technos web, etc...)
    Idem pour l'architecture: la solution proposée est assez alambiquée. Si tu te sens d'aller jusque dans ce découpage, documente toi bien pour comprendre chaque chainon.

    Sinon, dans un premier temps tu peux déjà faire une DLL de toute ta partie communication/métier dans ton interface lourde et de tenter de la réutiliser dans une archi monolithique web ou tu réutilise cette DLL. Ensuite tu pourras toujours venir au découpage service/interface (le découpage fonctionnel sera déjà fait, restera "juste" à scinder en composants).

    A+

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    Merci chrisdot!

    Débutant en .net, je ne comprends pas quelques conseils. Cependant, il me semble, peut-être, plus aisé de commencer par la création d'une dll en vb.net et par la suite essayer d'établir une liaison entre celle-ci et une page web.
    Quels conseils pourriez vous me donner pour la création d'une dll, sachant qu'il paraît difficile de la tester (débugger)... Dans le sens où cela nécessite, à chaque test, de compiler, la copier dans le dossier system et si cela ne donne rien de la supprimer, etc...
    Pensez-vous que le code devrait, dans un premier temps, passer par une application console, pour le test?
    J'avoue avoir pensé à la solution suivante :
    une application console qui tourne en tâche de fond qui lit et écrit dans un fichier txt. Oui, une couche supplémentaire...
    Cela implique que cette application doit être lancée depuis la page web...
    N'ayant aucune expérience dans le domaine, est-ce du gros "bidouillage"?
    Sinon, je suis partant pour la création d'une dll...
    Merci
    Lio

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    Citation Envoyé par lio59 Voir le message
    Quels conseils pourriez vous me donner pour la création d'une dll, sachant qu'il paraît difficile de la tester (débugger)...
    On peut débugguer comme tt autre bout de code. Faut juste quelque chose qui appelle les methodes.

    Citation Envoyé par lio59 Voir le message
    Dans le sens où cela nécessite, à chaque test, de compiler, la copier dans le dossier system et si cela ne donne rien de la supprimer, etc...
    Non ! Dans VS y'a tout ce qu'il faut ! Suffit d'étudir un peu tout ça. Je pense que tu devrais un peu potasser la doc, télécharger des exemples,etc... Voir comment on découpe son projet en différentes assemblys.

    Citation Envoyé par lio59 Voir le message
    Pensez-vous que le code devrait, dans un premier temps, passer par une application console, pour le test?
    Peut être. Sinon, je pensais que tu allais factoriser ton appli existante afin d'en extraire la DLL de comm' série commune aux 2 application (client lourd + web).

    Bon courage ! T'es sur la voie, maintenant c'est plus que du bonheur.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    Merci chrisdot,

    Il est vrai que j'ai posé des questions sans avoir cherché... Bon, j'ai vu quelques petites choses et me rends compte qu'une dll est une suite de fonctions. Et dans le programme principal, il faut appeler la dll et la fonction qui nous intéresse....
    Donc, faut effectivement faire des essais... Dans un premier temps la créer, puis faire un essai de communication avec cette dll via une appli winform ou console et ensuite avec asp.net ou php.
    La démarche vous semble correcte?
    Merci pour votre aide, c'est sympa!
    Cordialement
    Lio

  11. #11
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    Citation Envoyé par lio59 Voir le message
    La démarche vous semble correcte?
    Oui, tu as compris ce qu'il faut faire. Maintenant, reste à comprendre certains "gros détails" pratiques.
    Je t'encourage surtout à te pencher sur le découpage d'une appli en plusieurs assemblys dans VS et à voir des tutoriels sur ASP.net. Le reste coulera ensuite de source.

    Bon courage!

    PS: Et puis arrête de nous vouvoyer...

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Même besoin
    Bonjour,

    J'ai le même besoin pour une application web Java avec la possibilité de lire à partir du port série de la machine cliente

    Avez-vous un exemple?

    Merci d'avance

    Cordialement

Discussions similaires

  1. [Mission] Prestation de Services Web et Com
    Par Kalibre dans le forum Demandes
    Réponses: 0
    Dernier message: 27/02/2012, 04h03
  2. service web sur les ports
    Par zerocoolyoussef dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/05/2008, 21h54
  3. Réponses: 0
    Dernier message: 07/10/2007, 10h24
  4. application web et port COM
    Par xave dans le forum Autres langages pour le Web
    Réponses: 7
    Dernier message: 27/07/2005, 12h00

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