Question

Je prévois d'écrire un serveur RPC en Java. Le serveur doit accepter RPCs entrants - probablement sur HTTP - et y répondre. des choses assez basique. Soutien à « long polling » ou « suspendu » n'est pas nécessaire RPCs, donc un modèle thread par demande doit être parfaitement adéquate.

Si je devais écrire ce en Python, je serais probablement utiliser un cadre comme tordu. En C, quelque chose comme glibc. Dans chaque cas, le cadre prévoit une mise en œuvre du noyau général « select boucle » de gérer IO et en invoquant des constructions de niveau supérieur qui traitent avec elle, pour aboutir finalement à ma demande a appelé à des événements tels que la réception d'un RPC.

Il y a longtemps que j'ai écrit quelque chose de substantiel en Java, bien que, donc je ne sais pas ce que l'état de l'art ou les solutions proposées sont pour ce genre de chose. Peut-être il y a même des parties de la bibliothèque standard, je peux facilement utiliser pour ce faire. D'où ma question StackOverflow: Quels cadres sont là là-bas qui serait approprié pour une telle tâche

Notez que bien que je puisse utiliser HTTP pour les RPCs, cela est absolument pas une application web -. Et en tant que tel, un framework web ne convient pas

Était-ce utile?

La solution

Apache MINA est un cadre réseau très bien conçu non bloquant asynchrone. Il fournit un accès orienté octet à lire et écrire des données de paquets. La construction au-dessus qu'il dispose d'un système de filtre où des couches supplémentaires peuvent être ajoutées, en fournissant des choses comme l'analyse de texte orienté ligne, le chiffrement (via TLS), compression, etc.

PS:. La série de la version 2.0 est fortement recommandé, même si elle est encore sous forme de « étape », il est prouvé très stable et est en voie d'une version finale

Autres conseils

Vous avez le choix multiple:

  • Réaliser votre propre solution avec le SDK existant pour la programmation socket.
  • Java RMI, le cadre d'invocation de méthode à distance.
  • bindings Java CORBA, on ne considère plus à jour.
  • frameworks Java de service Web, sont assez complexes. Regardez Apache CXF et les différents produits J2EE.

Ensuite, vous avez différents systèmes en cours d'exécution au-dessus de transport HTTP comme JSON / XML-RPC où vous avez besoin d'un serveur Web. Même si vous les excluez.

Vous pouvez envisager d'utiliser quelque chose d'aussi simple que jetée les entrailles de la jetée sont très stables et peut gérer assez grand nombre ridicule de connexions. Si vous implémentez l'interface de gestionnaire spécifique de la jetée, vous pouvez également faire avec toutes le servlet et les bibliothèques de support JSP ce qui en fait un tout petit serveur d'applications embedable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top