Service Web et les demandes multiples de la même client
Si j'ai une application client de l'envoi de requêtes à mon service web, l'un après l'autre, le service web sera en mesure de traiter chaque demande fait et de ne pas remplacer les précédentes, la demande en raison d'une nouvelle demande? Je veux que toutes les demandes soient traitées et n'est pas remplacée par une autre. Vais-je être capable de le faire avec la multiplication des demandes provenant tous de la même client
En tout plus de détails/détails sur les opérations du service de l'exécution sur le serveur?
Vous voulez un demande-id, de la sorte, pour chaque demande: bien sûr, l'espace de la demande-id doit être géré sur le côté client.
Le client est multi-thread, un par demande, ou comment est-il envoyé?
Bien depuis un service web peut donner accès à une multitude de clients et de gérer tout à la fois, je voulais savoir si le web service peut gérer plusieurs demandes provenant tous de la même client sans écraser mais handeling toutes les demandes.
Vous voulez un demande-id, de la sorte, pour chaque demande: bien sûr, l'espace de la demande-id doit être géré sur le côté client.
Le client est multi-thread, un par demande, ou comment est-il envoyé?
Bien depuis un service web peut donner accès à une multitude de clients et de gérer tout à la fois, je voulais savoir si le web service peut gérer plusieurs demandes provenant tous de la même client sans écraser mais handeling toutes les demandes.
OriginalL'auteur brandon | 2009-10-28
Vous devez vous connecter pour publier un commentaire.
La réponse dépend de votre architecture.
Par exemple, si le serveur est multi-thread, et la logique métier de la partie est apatride, puis sur le serveur de la demande de ne pas remplacer, comme chaque thread va appeler une fonction et retourner le résultat.
Sur le côté client, votre meilleur pari est de demander à chaque demande envoyée à partir d'un thread différent, de sorte que le thread se bloque jusqu'à ce qu'il obtient sa réponse, le traitement peut aller de l'amende.
Si vous avez un design différent, veuillez le décrire.
Mise à JOUR: Basé sur la nouvelle d'info ici est quelque chose que vous voudrez peut-être chercher à:
http://weblogs.java.net/blog/2006/02/01/can-i-call-you-back-asynchronous-web-services
Je suis curieux de savoir comment, ou si vous faites asynchrone webservice appels. Généralement, des services web semblent bloc, mais si vous êtes de faire ces appels si vite alors je ne peux que supposer l'asynchronicité.
Donc, le webservice peut stocker les réponses sur le côté serveur, donc il y a une dynamique de classe qui stocke les résultats dans un dictionnaire, par adresse IP. Ensuite, le client sondages pour les réponses, donc, dans l'idéal, si vous envoyez une demande, vous devriez être en mesure d'obtenir un tableau des réponses comme une réponse. Si vous avez envoyé à toutes les demandes et sont toujours en attente pour obtenir plus de réponses, puis de sondage. Vous devriez être en mesure, encore une fois, pour obtenir un tableau de réponses, de couper vers le bas sur le gaspillage de la bande passante.
La meilleure approche est de faire que votre client aussi être un serveur, afin de vous envoyer la demande, avec l'adresse IP:port pour le rappel, de sorte que le serveur serait de faire un oneway réponse au client. Mais, c'est plus compliqué, mais il réduit le gaspillage de bande passante.
Mise à jour 2: Ce qui est fait sans vérification, il n'y a probablement des erreurs:
OK, ça peut donner une idée approximative.
Il n'y a pas d'hypothèses dans AnswerController. Il faut savoir tout ce qu'il faut pour faire le travail, comme il sera apatrides, donc, il se réfère à aucune des variables globales qui peuvent changer, seulement
const
et peut-êtrestatic
variables.La StaticAnswers classe est statique et juste stocke les réponses, avec la recherche en cours ipaddress, pour la vitesse.
Il sera de retour les réponses dans un tableau.
Lorsque vous avez envoyé la dernière question, puis il suffit d'appeler
GetAnswers
jusqu'à ce que vous avez obtenu tout ce qu'. Vous pouvez avoir besoin de garder une trace de la façon dont beaucoup ont été envoyés, et combien ont été reçues, sur le côté client.Ce n'est pas l'idéal, et n'est qu'une esquisse, mais j'espère qu'il va vous donner quelque chose à travailler avec.
Plus facile à dire: plusieurs demandes sont envoyées à partir du même client à la fois et espère web service peut gérer.
Le webservice serveur multithread. Quel cadre utilisez-vous pour le serveur? Sur le côté serveur, il est important que le webservice d'extrémité reçoit la demande, transmet la question à un apatride en classe de traitement, et que le traitement peut le mettre dans la statique (stateful) réponse de la classe.
Je suis en utilisant .NET Framework
Je ne veux juste pas le service web pour obtenir une demande de mon client obtient ainsi une autre demande de droit après que l'on a fait et de dire "Oh si vous voulez me faire oublier la première demande et de gérer cette nouvelle demande à la place?" J'ai envie de dire "Oh, une autre demande, je vais gérer ce trop et cependant plus de vous avez pour moi"
OriginalL'auteur James Black
Je n'ai aucune idée de pourquoi l'autre réponse est tellement long à ce qui est essentiellement une question simple sur les principes de base, mais la réponse est oui.
Chaque demande est indépendante des autres, sauf si vous les programme une sorte de crossover dans le serveur (par exemple, une statique de la croix-liste de threads utilisés par chaque demande ou une structure plus complexe).
Il est plus facile de rencontrer de croisement sur le côté client, si à l'aide d'un modèle asynchrone qui donne des résultats via des événements, vous devez vous assurer que vous avez obtenu le résultat pour la bonne demande (généralement en fournissant de l'jeton que la "coutume" à l'état d'une variable, que vous pouvez utiliser pour déterminer la demande d'origine dans la réponse à un gestionnaire).
OriginalL'auteur Sander