2010-10-31 49 views
1

Je développe une application client/serveur pour laquelle j'évalue quelques options pour la couche de communication.tampons de protocole et options de transport réelles - sockets ou middleware

Dans le cadre de ce cadre de communication, je suis en train d'envisager d'utiliser le tampon de protocole (PB) de Google pour représenter les données de transport au lieu de réinventer ma propre structure binaire.

Maintenant sur le transport réel, je me demande si on devrait utiliser des sockets simples pour envoyer/recevoir ces messages binaires ou utiliser une forme de middleware. L'utilisation d'un intergiciel présente certains avantages évidents par rapport aux sockets. Parmi ceux qui m'intéressent, citons: les modèles de communication - publication/abonnement, demande/réponse et basculement. D'autre part, l'utilisation de douilles a l'avantage d'avoir un faible surdébit par rapport à l'approche middleware et de fournir de meilleures performances.

On peut également penser à utiliser les bibliothèques RPC disponibles avec des tampons de protocole (modules complémentaires de tiers sur le wiki de tampon de protocole de google) pour communiquer entre le client et le serveur. Bien qu'il soit abstrait à partir du socket de bas niveau, il ne prend toujours pas en charge les fonctionnalités du middleware. À l'heure actuelle, mon client est un Adobe Flex GUI et deux processus côté serveur (Un Java et un autre C++). À l'avenir, le client et le serveur peuvent potentiellement avoir d'autres services développés dans d'autres langues telles que .NET

Que pensent les experts de ces choix et de l'expérience ce qui fonctionne bien sans compromettre les performances. Y a-t-il d'autres alternatives avec lesquelles les développeurs vont?

Merci Déce

Répondre

3

moins que ce soit un exercice d'apprentissage, vous absolument, positivement doit utiliser un middleware. Il y a beaucoup de choix: AMQP, ZeroMQ, XMPP, Comet/Bayeux.

Pour votre scénario, vous avez probablement besoin de quelque chose sur le Web, donc XMPP sur HTTP peut être une bonne option. Cependant, je suis partial à Comet (bien que j'ai trouvé Bayeux trop complexe pour mes besoins).

0

Quelle plateforme?

Si Windows alors j'ai une plate-forme de serveur enfichable simple, haute performance, complétée par IO, appelée WASP, qui est disponible à here.

Il suffit d'écrire une DLL ou deux et de les brancher et vous avez terminé avec le réseau.

Je n'ai actuellement pas d'exemple de plugin basé sur des tampons de protocole mais c'est sur ma liste de choses à faire ...