38 votes

Les protocoles binaires sont-ils morts?

Il semble qu'il y ait eu beaucoup plus de protocoles binaires à cause des vitesses très lentes d'Internet (dialup). J'ai vu tout ce qui était remplacé par HTTP et SOAP / REST / XML.

Pourquoi est-ce?

Les protocoles binaires sont-ils vraiment morts ou sont-ils simplement moins populaires? Pourquoi seraient-ils morts ou moins populaires?

43voto

Eric J. Points 73338

Vous Juste ne Pouvez pas Battre le Binaire

Protocoles binaires sera toujours plus efficace de l'espace que le texte des protocoles. De même que la vitesse d'internet augmentent considérablement, de sorte que la quantité et la complexité de l'information que nous voulons transmettre.

Le texte des protocoles de vous de référence sont en suspens en matière de normalisation, de flexibilité et de facilité d'utilisation. Cependant, il y aura toujours des applications où l'efficacité des binaires de transport emportent sur ces facteurs.

Une grande quantité d'informations binaires sont dans la nature et ne sera probablement jamais être remplacé par un texte du protocole. Le streaming vidéo vient à l'esprit comme un exemple clair.

Même si vous compressez un protocole basé sur du texte (par exemple avec GZip), un objectif général de l'algorithme de compression ne sera jamais aussi efficace qu'un protocole binaire conçu autour de la spécifique de flux de données.

Mais Parfois, Vous N'Avez pas À

La raison que vous voyez de plus de protocoles à base de texte est parce que la vitesse de transmission et la capacité de stockage de données ont en effet connu une croissance rapide par rapport à la taille des données pour un large éventail d'applications. Nous les humains nous trouvons qu'il est beaucoup plus facile de travailler avec du texte des protocoles, nous avons donc conçu notre omniprésente protocole XML autour d'une représentation de texte. Certes, nous aurions pu créer un document XML comme un protocole binaire, si nous avons vraiment eu à enregistrer chaque octet, et construit des outils communs de visualiser et de travailler avec les données.

Puis Encore, Parfois, Vous Avez Vraiment De

Beaucoup de développeurs sont habitués à penser en termes de multi-GO, multi-coeurs. Même typique de votre téléphone ces jours-ci met mon premier PC d'IBM-XT à la honte. Néanmoins, il existe des plates-formes telles que les systèmes embarqués, qui ont plutôt des restrictions strictes sur la puissance de traitement et la mémoire. Lorsque vous traitez avec de tels dispositifs, binaire peut être une nécessité.

7voto

mjv Points 38081

Un parallèle avec les langages de programmation est sans doute très pertinent.

Alors que hi-niveau de langues sont les outils de prédilection pour la plupart des travaux de programmation, et ont été rendues possibles (en partie) par l'augmentation de la vitesse du PROCESSEUR et la capacité de stockage, ils n'ont pas supprimé la nécessité d'langage d'assemblage.

Dans un mode similaire, non-binaire protocoles d'introduire plus de l'abstraction, plus d'extensibilité et sont, par conséquent, le véhicule de choix en particulier pour l'application au niveau de la communication. Ils ont aussi bénéficié de l'augmentation de la bande passante et la capacité de stockage. Pourtant, au niveau inférieur, il est encore impossible de l'être du gaspillage.

En outre, contrairement aux langages de programmation où il existe de fortes incitations à "prendre l'impact sur les performances" en échange pour l'ajout de simplicité, de rapidité de développement, etc., la capacité de la structure de la communication dans les couches fait de la complexité et de "binary-ness" des couches inférieures plutôt transparent au niveau de l'application. Par exemple, tant que le SAVON messages que l'on reçoit sont ok, l'application n'a pas besoin de savoir que ceux-ci étaient effectivement comprimé de transit sur le réseau.

6voto

Don Reba Points 6642

Facebook, Last.fm et Evernote utilisent le protocole binaire Thrift .

5voto

Kennet Belenky Points 2026

J'ai rarement l'occasion de voir ce parlé, mais protocoles binaires, de bloquer les protocoles surtout permet de simplifier considérablement la complexité des architectures de serveur.

De nombreux protocoles de texte sont mis en œuvre de telle manière que l'analyseur n'a pas de base pour comprendre comment beaucoup plus de données est nécessaire avant qu'une unité logique a été reçu (XML, JSON peuvent tous fournir un minimum nécessaire octets à la fin, mais ne peut pas fournir des estimations). Cela signifie que l'analyseur, peut-être périodiquement céder à la prise de recevoir le code pour récupérer plus de données. C'est très bien si vos prises de courant sont en mode de blocage, pas si facile, si ils ne sont pas. Cela signifie généralement que tous analyseur de l'état a à être conservés sur le tas, pas la pile.

Si vous avez un protocole binaire où très tôt dans ce processus, vous savez exactement combien d'octets que vous avez besoin pour compléter le paquet, alors votre réception opérations n'ont pas besoin d'être entrelacées avec votre analyse des opérations. En conséquence, l'analyseur de l'état peut être tenu sur la pile, et l'analyseur peut exécuter une fois par message et courir tout droit à travers sans faire de pause pour recevoir plus d'octets.

3voto

Justin Ethier Points 57486

Il y aura toujours un besoin pour les protocoles binaires dans certaines applications, telles que de très faible largeur de bande de communication. Mais il y a d'énormes avantages pour les protocoles à base de texte. Par exemple, je peux utiliser Firebug pour voir exactement ce qui est envoyé et reçu de chaque HTTP appel fait par mon application. Bonne chance de faire ça avec un protocole binaire :)

Un autre avantage de protocoles de texte, c'est que même si ils sont moins efficace de l'espace que binaire, texte de données compresse très bien, de sorte que les données peuvent être automatiquement compressé pour obtenir le meilleur des deux mondes. Voir la Compression HTTP, par exemple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X