OVH Cloud OVH Cloud

webservice et application client vb.net

2 réponses
Avatar
Sylo
Bonjour,

J'utilise des webservice pour récupérer des données dans une base sur un
serveur internet. j'ai un webservice qui me renvoie un dataset. Tout
fonctionne mais c'est assez long...
J'aimerais ajouter une jauge de temps de téléchargement des retours mais je
ne sais pas ou trouver les données qui me donnerait la taille du fichier xml
que je reçoit et l'état d'avancement...

kelkun aurait-il un exemple la dessus ou une explication...
MErci

Sylvain

2 réponses

Avatar
Paul Bacelar
Dans votre analyse du problème, vous négligez au moins une chose :

Le délai de réponse à une requête de WebService n'est pas du essentiellement
au transfert de la réponse loin sans faut, sinon pourquoi les DBA mettrait
des index aux tables ;-).

Le concept de WebService s'accommode mal des problèmes de feedback en court
d'appel.

Le plus simple est d'estimer de manières heuristiques le délai de réponse et
de faire une interface qui fasse patienter l'utilisateur correspondant au
temps évalué.

Une autre méthode est de découper l'appel en plusieurs appels moins long
mais cela entraîne un trafic réseaux plus important et un temps de
traitement beaucoup plus long. L'utilisateur attend beaucoup plus longtemps
mais on l'occupe, ce n'est pas très satisfaisant.

Enfin de compte, je pense que votre problème est simplement un problème
d'optimisation et que c'est dans cette direction que doit se diriger vos
principaux efforts. Comme il semble que vous ne connaissez pas forcement
très bien les mécanismes utilisé par les WebService + .NET + SGBD, vous
pourrez peut-être facilement gagner en performance avec peu de travail.



Si vos délai sont vraiment lié à la taille des données, il est plus simple
de travailler de manière asynchrone (Exemple VB.NET = "XML Web Services:
Windows Forms Client/Asynchronous XML Web Service Sample" dans MSDN). Cela
complexifie un peu l'application cliente mais je pense que c'est un bon
compromis.

--
Paul Bacelar
Demandeur d'emploi

"Sylo" <devbnet@[anti spam]free.fr> wrote in message
news:OeVU$
Bonjour,

J'utilise des webservice pour récupérer des données dans une base sur un
serveur internet. j'ai un webservice qui me renvoie un dataset. Tout
fonctionne mais c'est assez long...
J'aimerais ajouter une jauge de temps de téléchargement des retours mais


je
ne sais pas ou trouver les données qui me donnerait la taille du fichier


xml
que je reçoit et l'état d'avancement...

kelkun aurait-il un exemple la dessus ou une explication...
MErci

Sylvain




Avatar
Pascal Mercier
Voici un article qui traite du sujet "Adding a Progress Bar to Your Web
Service Client Application" sur
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnservice/html/service11052002.asp.

Cependant, pour abonder dans le sens de Paul, je pense qu'une autre piste
serait de tenter d'optimiser les échanges pour savoir, par exemple, si
toutes les données récupérées sont REELLEMENT utiles ? Plusieurs invocations
ramenant moins de données sont-elles possibles à la place ? Peut-être
faut-il mettre du cache en oeuvre (namespace System.Web.Caching) ? ...
(Encore) Un autre article bon à lire :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt10.asp.

Cordialement,
Pascal Mercier - Microsoft France


"Paul Bacelar" wrote in message
news:
Dans votre analyse du problème, vous négligez au moins une chose :

Le délai de réponse à une requête de WebService n'est pas du


essentiellement
au transfert de la réponse loin sans faut, sinon pourquoi les DBA mettrait
des index aux tables ;-).

Le concept de WebService s'accommode mal des problèmes de feedback en


court
d'appel.

Le plus simple est d'estimer de manières heuristiques le délai de réponse


et
de faire une interface qui fasse patienter l'utilisateur correspondant au
temps évalué.

Une autre méthode est de découper l'appel en plusieurs appels moins long
mais cela entraîne un trafic réseaux plus important et un temps de
traitement beaucoup plus long. L'utilisateur attend beaucoup plus


longtemps
mais on l'occupe, ce n'est pas très satisfaisant.

Enfin de compte, je pense que votre problème est simplement un problème
d'optimisation et que c'est dans cette direction que doit se diriger vos
principaux efforts. Comme il semble que vous ne connaissez pas forcement
très bien les mécanismes utilisé par les WebService + .NET + SGBD, vous
pourrez peut-être facilement gagner en performance avec peu de travail.



Si vos délai sont vraiment lié à la taille des données, il est plus simple
de travailler de manière asynchrone (Exemple VB.NET = "XML Web Services:
Windows Forms Client/Asynchronous XML Web Service Sample" dans MSDN). Cela
complexifie un peu l'application cliente mais je pense que c'est un bon
compromis.

--
Paul Bacelar
Demandeur d'emploi

"Sylo" <devbnet@[anti spam]free.fr> wrote in message
news:OeVU$
> Bonjour,
>
> J'utilise des webservice pour récupérer des données dans une base sur un
> serveur internet. j'ai un webservice qui me renvoie un dataset. Tout
> fonctionne mais c'est assez long...
> J'aimerais ajouter une jauge de temps de téléchargement des retours mais
je
> ne sais pas ou trouver les données qui me donnerait la taille du fichier
xml
> que je reçoit et l'état d'avancement...
>
> kelkun aurait-il un exemple la dessus ou une explication...
> MErci
>
> Sylvain
>
>