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

MFC Discussion :

Comunication TCP/IP client-serveur


Sujet :

MFC

  1. #1
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut Comunication TCP/IP client-serveur
    Hello,

    Suis une peu novice sur ce forum:-)
    J'étais, avant, très à l'aise en C/C++. A présent, je suis plus orienté Oracle:-)

    Je cherche à réaliser un serveur cache pour métadata divers (generic cache server) dont le rôle sera de stocker des données parfaitement organisée en provenance de x bases de données afin de mettre les données à disposition pour des clients divers.

    Cela existe chez Oracle sous le nom de "Oracle TimesTen In-Memory Database Cache" mais avec une note plutôt salée:-)

    J'ai réalisé il y pas mal de temps toute intelligence de stockage que je peux parfaitement utiliser dans ce cadre. Par contre, il me manque toute la couche de communication entre les clients et le serveur.
    J'ai pensé faire cela avec tcp/ip.

    Avez vous des pistes d'outils/bibliothèque/module que je pourrai utiliser?

    Merci à vous
    jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    C'est assez flou comme demande.
    Vous pouvez tout faire avec du cpp mais c'est plus ou moins longs.
    M$ avait un projet de cache réparti Velocity : http://msdn.microsoft.com/fr-fr/magazine/dd861287.aspx
    Qui a été incorporé dans AppFabric :http://en.wikipedia.org/wiki/AppFabric
    Donc, ça devrait être utilisable en C++/CLI.

  3. #3
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    Merci, je vais regarder cela.

    jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 379
    Points
    20 379
    Par défaut
    bonjour TCP/IP c'est pour les communications bas-niveau via des sockets c'est juste envoyer des données dans un tampon et pour envoyer cela à Oracle je ne pense pas que cela soit la bonne méthode
    Ou alors il faut une application serveur qui reçoive les données des clients et les traite et envoie cela à Oracle via ODBC , liaison Oracle, ou ADO..

  5. #5
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    Bonjour,

    Ma demande ne concerne pas la communication avec Oracle, pour cela SQL Net se charge très bien de cette partie:-)

    Ce que je cherche à faire c'est:

    Un service qui vas exécuter des requêtes dans Oracle pour aller chercher des données, les organiser de manière optimale dans des structures mémoire complexes et mettre à disposition ces données
    pour des clients divers.
    Une sorte de cache centralisée.

    Je cherche a faire la communication entre ce cache centralisé et des clients, d'où ma question sur les sockets.

    Merci
    jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

  6. #6
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 837
    Points : 975
    Points
    975
    Par défaut
    Pour ça il y a les classes Socket de la MFC comme CAsyncSocket
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  7. #7
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 379
    Points
    20 379
    Par défaut
    Citation Envoyé par jkofr Voir le message
    Je cherche a faire la communication entre ce cache centralisé et des clients, d'où ma question sur les sockets.
    oui on peut faire cela avec des sockets ; c'est relativement simple d'emploi il suffit d'ouvrir un port , ,fixer un protocole,donner l'adresse IP du serveur et transmettre/recevoir un char *buffer au serveur
    Seulement il y a tout une architecture/stratégie à mettre en place, le serveur il doit décoder les messages qu'il reçoit, soit des requêtes SQL soit des messages personnifiés.
    Le problème c'est à la réception des données, il faudra que le client comprenne ce qu'il reçoit comme données et leurs types.
    Si tu fais une sélection sur des grosses chaînes de caractères alors il faut gérer tout cela.
    La fonction de réception des sockets c'est recv (ou équivalent MFC ) , si le buffer de données est trop gros , ça risque de ralentir les temps de transmission et la latence du réseau
    Une autre possibilité c'est de créer un composant ATL-COM serveur pour faire cela mais ça ne fonctionnera que pour les serveurs Windows
    Citation Envoyé par jkofr Voir le message
    Bonjour,
    Ma demande ne concerne pas la communication avec Oracle, pour cela SQL Net se charge très bien de cette partie:-)
    Ce que je cherche à faire c'est:
    Un service qui vas exécuter des requêtes dans Oracle pour aller chercher des données, les organiser de manière optimale dans des structures mémoire complexes et mettre à disposition ces données
    pour des clients divers.
    Une sorte de cache centralisée.
    autant pour moi

    il faut faire une application serveur qui va intercepter les messages des clients:
    donc le client devra envoyer des messages du genre "Faire sélection clients dont le nom est dupont" ou bien une requête SQL,envoyer ce message via WINSOCK
    Mais côté serveur il faudra créer autant de connections que de clients, gérer tous les messages ça risque d'être fastidieux
    Sans compter allouer de la mémoire pour les résultats obtenus: si tu fais un SELECT sur 1000 clients et que tu veuilles mettre cela en cache, et que le client récupère tout cela c'est tout une infrastructure ardue à mettre en oeuvre.

    Pour faire un "service" allant piocher dans Oracle alors il vaut mieux créer un webservice avec .NET et C# ou VB.NET ou ASP.NET
    Ensuite étant donné qu'à ma connaissance MFC ne gère pas le code managed, sauf erreur de ma part,alors il faudra faire un composant intermédiaire en code managed C++/CLI.
    Parce qu'en passant par les sockets , là ça va être beaucoup de travail qui me semble inutile , les webservices de NET ça fonctionne bien.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    Velocity ne convient pas ?

  9. #9
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Velocity ne convient pas ?
    heu c'est quoi?
    jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    Voir mon post du "09/02/2014, 23h06 "

  11. #11
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    Merci, je vais chercher et regarder
    Tu travaille tard, c'est pour cela que tu dois être fatigué pour avoir oublié de mettre le lien

    Jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/06/2013, 10h34
  2. Programmation TCP/IP client serveur en C
    Par Naoiry dans le forum Réseau
    Réponses: 3
    Dernier message: 30/04/2013, 14h00
  3. TCP/IP client serveur
    Par Wimzum dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 28/12/2011, 23h31
  4. Crére un client/serveur sous linux en TCP
    Par Darknicosh dans le forum Développement
    Réponses: 11
    Dernier message: 20/06/2005, 10h19
  5. client/serveur tcp/ip en c sous unix
    Par oclone dans le forum Développement
    Réponses: 8
    Dernier message: 19/04/2005, 18h55

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