2016-02-05 1 views
1

Je planifie le système de communication réseau pour un programme. Le programme est divisé un client et une classe de serveur, mais je pourrais les diviser en programmes séparés s'ils deviennent trop grands, et rien d'autre ne l'empêche.Quelle est la meilleure façon d'appeler des fonctions sur un réseau?

À l'heure actuelle, toute la communication réseau consiste à appeler ensemble et obtenir des fonctions sur le serveur (dont environ 500, et je compte générer environ 500-1 600 demandes par seconde sur huit clients dans des opérations typiques) . Mon plan actuel consiste à utiliser une API de réseau de base pour envoyer des Opcodes inspirés du code machine au serveur sous la forme d'une chaîne, avec quelques octets de paramètres, et demander au serveur de sélectionner la fonction et d'interpréter les paramètres en utilisant un switch déclaration. Cependant, avec des centaines de fonctions possibles à appeler, cela aura A) difficile à lire, et B) lent à implémenter. Je suis également un peu préoccupé par la performance des grandes déclarations de commutation. À la lumière de cela, quelqu'un pourrait-il confirmer si c'est la meilleure façon d'implémenter des appels de fonction sur un réseau, ou me dire s'il y a une meilleure façon de le faire. J'aimerais une API magique qui permet de faire quelque chose comme x = callServerFunc(server, function, parameter1...) mais mes recherches n'ont pas encore trouvé une telle bibliothèque.

+0

Je pense que ce que vous voulez rechercher est "C++ RPC library" – Brian

+0

Principalement basé sur l'opinion: "Beaucoup de bonnes questions génèrent un certain degré d'opinion basé sur l'expérience experte, mais les réponses à cette question tendront à être presque entièrement basées sur des opinions, plutôt que des faits, des références ou une expertise spécifique. " –

Répondre

1

Vous pouvez écrire votre code à partir de zéro. N'hésitez pas à le faire.

Ou vous pouvez utiliser l'une des nombreuses technologies matures prêtes. Juste google pour CORBA, DCOM, XPCOM et ainsi de suite. Vous pouvez regarder Remote call en commun. Ou envisagez des technologies Web existantes avec différents formats de données. Ce n'est qu'un point de départ. Ces technologies sont matures mais lourdes. Vous aurez besoin de connaissances et de pratique pour commencer avec eux.

+0

Et aussi SUN-RPC. – EJP

+0

Si vous affichez la page wiki sur RPC, il y a tellement de choix. Je ne peux pas tous les énumérer ici. –