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 :

Web service / gestion utilisateur


Sujet :

C#

  1. #1
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut Web service / gestion utilisateur
    Bonjour

    Mon problème est simple :

    J'ai un web service appelé depuis plusieurs applications embarquées (android, etc...)

    J'aimerais gérer un nombre limité d'utilisateurs connectés en même temps (et facturer derrière si le client veut plus de connexion disponible).

    Comment feriez-vous celà ? que seraient les pistes possibles les plus simples à mettre en oeuvre ? (peut-etre déjà des mécanismes existants pour les web services).

    Merci d'avance pour vos suggestions.

  2. #2
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    Comment feriez-vous celà ? que seraient les pistes possibles les plus simples à mettre en oeuvre ? (peut-etre déjà des mécanismes existants pour les web services).
    Je n'ai pas la réponse, mais je regarderais du côté du serveur qui héberge le web service. Je suppose que ce genre de fonctionnalité dépend et sur serveur et de la licence que l'on a sur celui-ci.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Salut,

    Si c'est en WCF, tu peux regarder du coté de l'interface "IDispatchMessageInspector" qui te permet d'intercepter le message et de gérer un traitement à la réception de la request.

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    Pas du WCF... les Web services sont développés en Windev... (oui, je sais, mais je n'ai pas la main dessus)

  5. #5
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 989
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 989
    Points : 2 210
    Points
    2 210
    Par défaut
    Bonjour

    A tout hasard, fruit d'une expérience douloureuse sur windev
    http://doc.pcsoft.fr/fr-FR/?3044291&...necte_fonction
    ?

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 64
    Points : 91
    Points
    91
    Par défaut
    Salut,

    à mon avis la petite difficulté sera pour être notifié lorsqu'un client n'est plus connecté (à moins qu'explicitement il y ait une notion de "déconnexion" quelque part dans ton workflow).
    A part ça, tu peux par ex. dans la base de données qui héberge les infos d'authentification, ajouter une colonne "IsOnline", ensuite lorsqu'un client essaie de se logguer tu pourras faire une requête du genre "select count(*) from Users where IsOnline = 1", la suite tu la devines.

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    Merci

    Je suis en mesure de développer toutes les solutions logicielles pour gérer celà.. c'est juste que je me demande si il n'y a pas une technique particulière
    pour le faire ou une librairie, ou autre dont c'est le job de faire celà...

    On a les Timeout de session en Web (asp.Net), donc, je me demandais si on avait la même chose ou même approche possible en Web service

    et je suis d'accord qu'il faut qu'un tel mécanisme soit géré coté serveur car sinon, on peut très bien ne jamais avoir de déconnexion du client

  8. #8
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 742
    Points
    9 742
    Billets dans le blog
    3
    Par défaut
    Tu peux aussi regarder du cote de l'element connectionManagement :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <configuration>
        <system.net>
            <connectionManagement>
                <!-- ... -->
            </connectionManagement>
        </system.net>
    </configuration>

    Il est possible de limiter le nombre de connexions par adresse IP et/ou par nom DNS :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!-- 2 connexions max pour toutes les URLs -->
    <add address="*" maxconnection="2">
    <!-- 12 connexions maximum pour une URL particuliere -->
    <add address="http://65.53.32.230" maxconnection="12">

    Un peu plus d'info sont fournies ici : Contention, poor performance, and deadlocks when you make calls to Web services from an ASP.NET application.

    Autre point a noter, il est possible de gerer cela dans ton code, pour avoir une configuration dynamique.

  9. #9
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    OK merci à tous.

    je vais compiler tout celà et voir la solution qui conviendra (sachant que le WS est en windev et que je n'ai pas la main dessus) !!!

  10. #10
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 543
    Points
    10 543
    Billets dans le blog
    21
    Par défaut
    Je pars du principe qu'à un client correspond plusieurs utilisateurs, et que tu souhaites donc limiter le nombre d'utilisateurs connectés simultanément pour un client donné.

    Dans la mesure où tu n'as pas la main sur le webservice, tu peux peut être éventuellement mettre en place un proxy de ton cru, qui serait en mesure d'analyser les requêtes entrantes afin de déterminer l'utilisateur effectuant la requête. En fonction d'un critère à définir, tu transmets la requête au véritable webservice ou tu génères une erreur.

    Ton proxy peut simplement mettre à jour la date de dernière requête par utilisateur. Ainsi, pour un client donné, tu peux savoir quels sont les utilisateurs connectés en faisant une requête du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM utilisateurs WHERE client_id = 456 AND date_derniere_requete >= DATEADD(minute, -5, GETDATE())
    Ici, je considère un utilisateur comme connecté si sa dernière requête date de moins de 5 minutes (à adapter, bien entendu !).

    Ensuite, il faut voir aussi si tu veux restreindre le nombre d'utilisateurs connectés, ou le nombre de périphériques connectés (un utilisateur pourrait très bien être connecté via son smartphone et sa tablette par exemple). Le principe resterait le même, seulement il faudrait définir la granularité au niveau du périphérique,et non plus seulement au niveau de l'utilisateur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD20] Web service - gestion des espaces
    Par Invité dans le forum WinDev
    Réponses: 5
    Dernier message: 02/12/2015, 14h48
  2. Web service pour utilisateurs
    Par exile69 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 06/05/2013, 07h34
  3. Réponses: 1
    Dernier message: 11/05/2009, 17h06
  4. web service et gestion d'evenement
    Par leod38 dans le forum Services Web
    Réponses: 0
    Dernier message: 28/10/2008, 10h47
  5. [vb.net]Gestion des exceptions avec les web services
    Par mvr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/12/2005, 22h41

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