2010-05-14 11 views
3

Je cherche un protocole rapide et efficace qui peut être utilisé entre différents services web pour envoyer des données texte (pas des données binaires). Peu importe si le protocole est binaire ou base de texte.J'ai besoin d'un protocole efficace entre les services web plus ou moins supportés par tous les langages majeurs

Quelques conditions:

  • I doit être plus « efficace » que XML normal qui ajoute beaucoup de données supplémentaires et les outils pour la lecture/écriture trop lourd

  • Il doit être "pris en charge" par la plupart des langues principales, ce qui signifie qu'il ne peut pas être seulement disponible pour une langue spécifique. Pour le moment, Java et PHP doivent pouvoir se parler en utilisant ce protocole.

Je l'ai déjà vu:

  • XML - que je suis actuellement en utilisant.
  • 2 hessois -qui fonctionne parfaitement en Java, mais le support de PHP est obsolète
  • JSON -LES différent entre JSON et XML est seulement mineur

Toutes les suggestions sont les bienvenues!

Mise à jour 1: Il devrait être possible d'utiliser ce protocole sur HTTP.

Répondre

1

Protocol Buffers peut être exactement ce que vous voulez. Il s'agit d'une création de Google qui, selon eux, est «un moyen extensible, indépendant de la langue et extensible à la plate-forme, de sérialiser les données structurées pour les utiliser dans les protocoles de communication, le stockage de données, etc. Leurs documents officiels montrent des implémentations en Java, C++ et Python. Cependant, le protocole est simple et a été implémenté dans de nombreuses langues (j'utilise une implémentation C#, par exemple.)

À mon humble avis, il existe d'autres méthodes dans ce domaine, mais rien ne répond tout à fait à la tampons en termes de simplicité et de performance dans une variété de langues.

2

J'ai deux réponses. Tout d'abord, les services REST sont «pris en charge» à partir de n'importe quelle pile capable de faire une requête HTTP. Si vous avez vraiment besoin d'une meilleure efficacité que SOAP, le faire vous-même avec REST est probablement votre meilleur pari. Deuxièmement, faut-il vraiment être plus «efficace» que le langage XML normal? L'avez-vous profilé? Êtes-vous certain que le transfert de données entre votre service et le client sera votre goulot d'étranglement? Quelle est la taille de votre charge utile avec/sans XML?

+0

REST est plus une approche pour obtenir des informations à partir d'un site et pas vraiment un protocole de données. – corgrath

+0

HTTP est certainement un protocole. Vous pouvez mettre ce que vous voulez dans votre charge utile. –

+0

Vous avez raison. Comme il s'agit de différents services Web, il utilise déjà HTTP. Mais le HTTP me fournit seulement comment les données seront transférées sur Internet, mais pas comment les données sont formatées. Ce que je recherche, ce sont des alternatives au XML qui sont plus rapides et la plupart des langages majeurs n'ont aucun problème à utiliser. – corgrath