Je souhaite créer un système avec plusieurs processus de communication.Interpréter un pub/sous-modèle sur C#, C++ et éventuellement d'autres langages
Le processus maître va déclencher des événements. Il y aura différents événements contenant chacun des données structurées. Deux processus esclaves vont s'abonner aux événements, recevoir les données et appeler les gestionnaires appropriés. Il y a deux considérations à propos de mon cas. 1) Je ne suis pas préoccupé par la sécurité puisqu'il n'y aura pas de services de tiers. 2) Je suis préoccupé par les performances.
Les personnes suggèrent d'utiliser des files d'attente de messages comme Zero MQ dans cette situation. Je suis un peu confus de la façon dont il devrait être mis en œuvre. Autant que j'ai compris ZeroMQ peut seulement envoyer \ recieve des données brutes de chaîne.
Dois-je emballer mes données dans la chaîne (par exemple json ou xml) du côté de l'éditeur, déballer manuellement les données côté abonné et filtrer uniquement les messages nécessaires? S'il y a une meilleure façon d'aborder mon problème, je serais très heureux de l'entendre.
Je n'ai pas beaucoup d'expérience personnelle dans ce domaine, mais j'ai entendu de bonnes choses à propos des tampons de protocole de Google http://code.google.com/p/protobuf /, en particulier dans les situations où les différents processus participants peuvent être écrits dans des langues différentes –
Voir aussi cette question http://stackoverflow.com/questions/475794/how-fast-or-lightweight-is-protocol-buffer qui comprend informations de référence sur l'implémentation .NET des tampons de protocole –
Merci, @KenKeenan Si je comprends bien, les protobuffers ne sont que la manière courante de sérialiser les données dans différentes langues. En d'autres termes, je devrai toujours utiliser ZeroMq et filtrer manuellement les messages nécessaires. Je me demande si c'est la bonne façon de faire le travail –