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

C++ Discussion :

Application Client/Serveur (Quel solution?)


Sujet :

C++

  1. #1
    Membre habitué
    Inscrit en
    Juin 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2003
    Messages : 223
    Points : 145
    Points
    145
    Par défaut Application Client/Serveur (Quel solution?)
    Bonjour,

    Je suis entrain de construire une application de Video Surveillance.

    J'ai pour l'instant un unique software qui:

    1. Configure différentes cameras IP (ip, port, luminosité, contraste, ...). Et qui pour chaque camera configure les paramètres du tracking (threshold, refresh, min_size, ...) et de des différentes alarmes (traverser une ligne, entrer dans une zone, ...).
      ...
    2. Reçois des images en JPEG des camera IP configurées.
    3. Analyse chaque et obtient la taille et position des objets en mouvements (blob).
    4. Sauvegarde sur un disque dur l'image JPEG reçu avec la position des différents blobs pour cette image.
    5. Génère pour chaque blob une trajectoire en regardant ses positions durant plusieurs frames.
    6. Les trajectoires des différents blob sont analysées afin d'émettre une/des alarmes (qui sont sauvegarder dans une base de données MySQL).
      ...
    7. Les blobs et leurs trajectoires sont dessiner sur les images JPEG et visualiser par une GUI.
    8. La GUI check quelles alarmes ont été émises, et fait apparaitre un Pop-UP avec les infos respective des alarmes émises.
    9. La GUI a aussi un module qui permet d'obtenir un historique des alarmes émises en regardant la base de données MySQL.


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


    Maintenant (un peu tard), je pense construire une application client serveur afin de pouvoir séparer ma GUI du reste de mon code.

    Cela me permet d'avoir un serveur qui fait le gros du travail (2,3,4,5,6) et un client qui :
    • doit pouvoir configurer mes objets Camera+Tracking+Alarms qui sont sur le serveur. (1)
    • doit visualiser (images+positions des blobs+alarms). (7 et 8)
    • doit pouvoir récupérer l'historique des alarmes qui se trouve dans la BD MySQL (Directement ou en passant par le serveur ??). (9)


    Le client est une GUI écrit avec QT et sera le plus souvent sur le localhost mais devrais pouvoir se connecter depuis internet (en mode secure).
    Un client https est aussi envisageable.

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

    Maintenant que vous avez une idée général j'aimerais savoir comment me conseillez vous de m'y prendre.

    Old-School:
    Avec des sockets je serialize chaque objets pour échanger les paramétrés)
    Envois JPEG+positions par TCP/IP.
    Envois des alarmes par TCP/IP ou lecture directe sur la BD.

    Quel librairies utiliser pour faire ca? Boost, QT, libcurl, ...

    New-School
    CORBA, RPC, ICE ou quelque chose dans le genre.
    Ca m'a l'air assez intéressant mais j'ai un peu peur au niveau de la vitesse, car se sont bcp d'infos en temps réels.

    Voila donc j'espère vos conseils, expérience vécus, suggestions, ou livre et tutoriel a lire à ce sujet?

  2. #2
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Ce qui se fait de mieux architecturalement aujourd'hui sont les web services.

    Ici le serveur qui fait tout le processing exposera une ou plusieurs fonctionnalités, principalement de la récupération d'images.

    Le client, quel qu'il soit : web ou lourd, quel que soit le langage, requêtera ce service en le manipulant comme une entité locale.

    L'overhead provoqué par la verbosité des protocoles web services devrait être négligeable par rapport à la quantité des données transmises via les images JPEG.

    Comme implémentation de la couche web services le projet gsoap semble actif.

  3. #3
    Membre habitué
    Inscrit en
    Juin 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2003
    Messages : 223
    Points : 145
    Points
    145
    Par défaut
    A je connaissait pas gSOAP.

    Un autre détails: Tous mes parametres sont charger et enregistrer grace a un fichier XML.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <devices>
    <cam id="1">
        <param name="contrast">200</param>
        <alarms>
             <alarm id="1">
                <param name="pt0">200 150</param>
                <param name="pt0">250 250</param>
             </alarm>
        </alarms>
    </cam>
    </devices>

    Du coup je sais pas si c'est plus facile (et moins couteux de gérer l'envoi de paramètres moi même)

    Sinon comme j'utilise QT, est-ce que ça serait pas plus facile d'utiliser Qtopia http://qt.developpez.com/doc/4.2/qto...-architecture/

  4. #4
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Si les entités "paramètres" sont au format XML c'est parfait, car la représentation des entités métiers utilisée dans les protocoles web services est XML.

    Pour être tout à fait rigoureux la bonne pratique est de décrire les entités métiers, ici les "propriétés", dans un schéma XML (xsd) qui sera inclus dans le fichier WSDL décrivant le format des données transmises.
    Puis pour chaque plateforme client générer une implémentation, sous forme d'un graphe de classe généralement.


    Quant à l'utilisation de Qtopia il vaut mieux éviter de trop dépendre d'un framework pour gérer tous les aspects de l'application.
    Même s'il peut offrir quelques facilitées, mieux vaut gérer la partie communication de manière standard, découplée de toute implémentation ou paradigme de communication "spécifique".
    Les outils fournis avec les frameworks web services permettent un développement standard de haute qualité et bien automatisé : génération de l'implémentation des entités métiers, génération du contrat de service, sérialisation des données automatique ...

  5. #5
    Membre habitué
    Inscrit en
    Juin 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2003
    Messages : 223
    Points : 145
    Points
    145
    Par défaut
    Est-ce que tu aurais un petit tutoriel sur ca a me recommander.

    génération du contrat de service
    Pas tout compris car je suis un peu a la loose au niveau de web-services.

    Sinon d'autre avis ...? ICE, CORBA, ACE ????

  6. #6
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Est-ce que tu aurais un petit tutoriel sur ca a me recommander.
    La doc gsoap semble bien fournie; sinon pour tout ce qui est web services et SOA wikipédia possède d'excellentes introductions.

    Pas tout compris car je suis un peu a la loose au niveau de web-services.
    Afin de découpler l'implémentation du service de son utilisation, celui-ci décrit ses fonctionnalités ainsi que le format des données transmises en input et output au travers d'un document XML standardisé, le contrat WSDL.

Discussions similaires

  1. Quels composants utiliser pour une application client/serveur (mySql) ?
    Par whitespirit dans le forum Bases de données
    Réponses: 20
    Dernier message: 30/01/2008, 05h46
  2. [Débutant] Application client serveur
    Par dk dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 7
    Dernier message: 30/06/2004, 11h38
  3. Choix port pour application client-serveur
    Par Tiaps dans le forum Développement
    Réponses: 7
    Dernier message: 15/03/2004, 09h49
  4. Réponses: 2
    Dernier message: 01/10/2002, 12h25
  5. Langage le mieux adapté pour application client serveur ?
    Par guenus dans le forum Débats sur le développement - Le Best Of
    Réponses: 4
    Dernier message: 17/06/2002, 15h46

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