La conception d'un protocole d'application
J'ai déjà une application autonome qui va être étendue par une 3ème partie, à l'aide d'un protocole de réseau. Les capacités sont déjà mises en œuvre, à tous j'ai besoin est de les exposer à l'extérieur.
En supposant que le protocole de transport est déjà choisi (UDP), sont des ressources qui vont m'aider à la conception de mon protocole d'application?
Il semble y avoir beaucoup d'informations sur la conception de logiciel, mais pas sur la conception de protocoles.
Je l'ai déjà regardé Protocole D'Application De La Conception.
OriginalL'auteur kshahar | 2008-11-10
Vous devez vous connecter pour publier un commentaire.
Voir Jabber protocoles des lignes directrices de conception et RFC 4101. Bien qu'il vise à rendre les Rfc plus facile à comprendre pour les évaluateurs, cette RFC fournit d'intéressants conseils.
OriginalL'auteur philant
Avez-vous regardé Google Protocole Tampon? Il semble comme une bonne façon de résoudre ce problème.
Vous pouvez créer un point de terminaison qui communique avec votre application existante et répond ensuite à partir de 'l'extérieur' en utilisant la protobuffer protocole. C'est du binaire, de sorte qu'il est petit et rapide, et vous n'avez pas à écrire votre propre gestionnaire de protocole, vous pouvez utiliser ceux de Google. L'inconvénient est qu'il doit être mis en œuvre sur les deux côtés du système (sur votre serveur et sur le consommateur/client).
OriginalL'auteur Martino Sabia
Une autre recommandation pour protocol buffers - nice binaire serré avec peu d'effort. Notez, cependant, que, bien que le protocole binaire est bien défini, il n'y a pas encore d'un accord RPC standard (plusieurs sont en cours, tend à pencher vers TCP ou HTTP).
La spec, il est très facile d'avoir le client et le serveur dans différentes architectures, ce qui est bon, plus il est extensible.
Mise en garde: je suis l'auteur de l'un des .NET versions, donc je peut très bien être biaisé ;-p
OriginalL'auteur Marc Gravell
Tout d'abord, le protocole UDP est principalement un moyen de diffusion de la méthode de transport. Aussi, il est potentiellement avec perte, de sorte que vous devez être en mesure de le manipuler paquets manquants et de paquets. Si vous avez besoin de n'importe quel niveau de la fiabilité de l'UDP, ou d'exiger des liens bidirectionnels, vous finirez par avoir besoin d'à peu près tout de TCP, de sorte que vous pourriez aussi bien aller avec ça pour commencer et laisser la pile réseau de prendre soin d'elle.
Ensuite, si vos données est potentiellement plus grand qu'un paquet IP, alors vous aurez besoin d'un moyen d'identifier le début et la fin de chaque paquet, et un moyen de manipulation illégale ou frauduleuse des paquets. Je recommande une sorte d'en-tête avec la longueur des paquets, une sorte de pied de page, et peut-être une somme de contrôle.
Alors vous avez besoin d'un moyen de codage des messages et des réponses. Il existe de nombreux protocoles RPC autour. Vous pourriez regarder de SAVON, ou de concevoir un protocole basé sur XML, ou un binaire.
UDP n'est pas seulement avec perte, mais peut aussi livrer les paquets dans le bon ordre. C'est méchant.
pourquoi avez-vous besoin d'un pied de page, quand u ont le champ longueur de l'en-tête
Techniquement, si vous êtes en utilisant UDP vous n'avez pas besoin d'identifier le début et la fin d'un paquet, qui est géré par la couche IP (permettant jusqu'à 65K par paquet). Même chose pour la corruption, la couche IP de la somme de contrôle devrait être en mesure de rattraper ce.
OriginalL'auteur Anthony Williams
Vous devriez vraiment réfléchir si vous voulez vraiment de concevoir, de documenter et de maintenir votre propre protocole ou d'utiliser quelque chose qui est déjà existant. Il est probable qu'il y est déjà un protocole documenté qui correspond à vos besoins. En fonction de ce que vous faites, il va probablement exagéré au début et à la mise en œuvre de toutes les spec va chercher fastidieux et beaucoup moins drôle que la rédaction de votre propre, mais si vous avez l'intention pour que votre demande puisse être toujours activement développé en quelques années, il devrait vous faire économiser beaucoup de temps et d'argent à utiliser quelque chose qui existe déjà et est connu par des tiers. En outre, si vous pouvez utiliser une bibliothèque existante pour ce protocole, la mise en œuvre de la partie devrait être beaucoup plus rapide.
De la conception de nouvelles protocole est plus amusant que de la mise en œuvre d'une, mais moins que de maintenir un que vous avez à vivre avec tous les défauts. Aucun protocole n'est parfait, mais si vous n'avez jamais conçu, vous pouvez être assuré que vous ferez plus d'erreur de la conception que les gens qui ont conçu le déjà bien connu protocole que vous pourriez utiliser à la place.
En bref, tirer parti de ce qui existe déjà, chaque fois que possible.
OriginalL'auteur Krunch
Si vous ne voulez pas construire votre protocole de sol, vous devriez jeter un oeil à SAVON. Ce soutien varie pour les différents langages de programmation, mais la langue de communication est explicitement encouragé.
Malheureusement UDP et du SAVON semblent avoir coincé dans son enfance, HTTP est le plus couramment utilisé.
OriginalL'auteur GrGr
Si vous êtes le choix de XML garder à l'esprit que vous aurez un géant de la surcharge de balisage.
Un simple protocole binaire sera aussi n'ont pas besoin d'autant de ressources pour analyser par rapport à xml.
OriginalL'auteur echox
Il serait utile d'en savoir un peu plus sur ce que votre programme fonctionne et quelle est la nature de ces 3ème partie extensions sont. Peut-être quelques raisons pour l'utilisation de UDP?
OriginalL'auteur a2800276