Comment passer de la grande quantité de données de service web
Je suis en train de construire un client-serveur (c#) qui utilise les services web pour synchroniser les données.
Fondamentalement, je suis de passage le XML d'un ensemble de données d'avant en arrière. Mais en fonction de différents paramètres sur le jeu de données peut être assez grande. Je suis à la compression du XML à l'aide de Gzip et souhaitez passer que pour le serveur web et le récupérer la compressées en XML dos.
Quelle est la meilleure façon de passer potentiellement de gros blocs de données d'avant en arrière?
Précisions: je crois que je vais demander quel format est le mieux pour transmettre les données. JSON, SOAP, courrier ordinaire (je ne suis pas très familier avec les Services Web, donc je suis sûr qu'il ya plus que je ne pense pas).
OriginalL'auteur Jared | 2009-06-24
Vous devez vous connecter pour publier un commentaire.
Meilleur probablement dépend de beaucoup de facteurs. Si par meilleur de vous dire le plus performant, voici quelques points à considérer:
J'avais utilisation de XML comme un dernier recours, car il y a beaucoup d'inutiles de métadonnées qui est inclus dans le XML qui permettra d'augmenter facilement la taille de votre charge utile de plus de 5X.
Alors que XML peut être lu comme un ruisseau, il ne peut pas être déterminé, si elle est valide jusqu'à ce que le dernier octet est reçu. Aussi, une grande partie de la charge utile XML est mise en forme, et non les données. Si les éléments XML ne sont pas nécessaires pour un tel poste-à-poste de communication (comme c'est souvent le contraire), un autre (non-standard) de plat ou d'un format délimité par le travail sera mieux fait.
OriginalL'auteur Michael Meadows
Ce que vous voulez probablement à étudier est l'aide de MTOM. Cela vous permet d'envoyer des binaires SAVON dans un bloc. C'est cool parce segmenter les données, couplé avec une INTERFACE utilisateur AJAX, vous permettra de présenter une barre de progression à l'utilisateur qui est de la télécharger.
Ici est un exemple d'utilisation de MTOM pour envoyer/recevoir des données dans un bloc. J'espère que cette aide.
OriginalL'auteur James
Si vous utilisez la WCF pour vos services web que vous pouvez utiliser MTOM pour envoyer des données via une pièce jointe binaire. Voir:
Quel est le meilleur moyen d'envoyer des données volumineuses de service WCF Client?
OriginalL'auteur Shiraz Bhaiji
Vous pouvez essayer de compresser le fichier et l'envoyer en tant que binaire via webservice. aussi, n'oubliez pas de modifier vos limites de téléchargement.
comment envoyer des données binaires via webservice: http://support.microsoft.com/kb/318425
OriginalL'auteur Russ Bradberry
Si tout ce que vous voulez est d'appliquer une compression gzip pour vos données xml que vous pourriez envisager d'activer la transparence de la compression gzip au niveau du transport http (Accept-encoding: gzip Content-Encoding: gzip) et de laisser l'iis gérer.
voir http://weblogs.asp.net/owscott/archive/2004/01/12/IIS-Compression-in-IIS6.0.aspx#58745
OriginalL'auteur VolkerK
Pour les services web, vous disposez de plusieurs concepts et de possibilités que vous pouvez envisager.
Avez-vous besoin de plusieurs clients à la gestion de le même ensemble de données? Simultanément?
Avez-vous de la déconnexion d'un jeu où il est géré sur les deux extrémités, ou juste un gère les autres vues/magasins/rapports?
Vous êtes tout simplement à l'aide du client pour l'utiliser comme une interface pour l'ensemble de données, et si oui, serait-il judicieux d'utiliser une autre INTERFACE (web) pour gérer les différentes parties de l'ensemble de données de manière indépendante en tant que web INTERFACE utilisateur en fonction de la demande?
- Vous des changements progressifs dans la transaction de type d'interaction? (Un bout envoie de très gros fichiers de clients et de transactions changements sont retournés selon qui?)
Difficile à recommander sans quelques réflexions à propos de la façon dont vous pouvez disséquer le jeu de données pour une utilisation plus optimale de gestion ou de savoir plus de détails ici.
Si vous devez envoyer les données de grande taille de l'entité, puis il devient tout simplement une question de méthode que vous souhaitez utiliser pour votre pipeline, ses simplement et télécharger et vous gérer les points de terminaison de façon appropriée.
Pour quelques pensées éparses:
Si vous voulez manipuler les données dans les DOM, envisager de JSON, qui est tout à fait compatible avec JavaScript.
Si vous désirez le dataset XML manipulation, vous pourriez placer zip ou certains autres de compression si vous avez besoin de passer l'intégralité du jeu de données, il vous suffit de brancher sur chaque extrémité.
OriginalL'auteur Mark Schultheiss