Domanda

Sto pensando di scrivere un server RPC in Java. Il server ha bisogno di accettare RPC in arrivo - probabilmente su HTTP - e rispondere loro. roba abbastanza semplice. Il supporto per 'polling lungo' o 'appesa' RPC non è necessaria, quindi un modello di thread-per-richiesta deve essere perfettamente adeguato.

Se io stessi scrivendo questo in Python, avrei probabilmente usare un framework come contorto. In C, qualcosa come glibc. In ogni caso, il quadro prevede un'implementazione del generale 'selezionare loop' nucleo di movimentazione IO e invocando costrutti di livello superiore ad essa preposti, portando infine nella mia domanda chiamato per eventi quali riceve un RPC.

E 'da molto tempo che ho scritto nulla di sostanziale in Java, però, quindi non so che cosa lo stato dell'arte e le soluzioni proposte sono per questo genere di cose. Forse c'è anche parti della libreria standard posso facilmente usare per fare questo. Quindi la mia domanda a StackOverflow:? Quali strutture ci sono là fuori che sarebbe adatto per un compito come questo

Si noti che anche se possono utilizzare HTTP per la RPC, questo non è decisamente un'applicazione web -. E come tale, un framework web non è appropriato

È stato utile?

Soluzione

Apache MINA è un framework asincrona molto ben progettato non-blocking rete. Esso fornisce l'accesso a byte per leggere e scrivere dati a pacchetto. Costruire in cima che ha un sistema di filtro in cui possono essere aggiunti ulteriori strati, fornendo le cose come l'analisi orientato alla linea di testo, la crittografia (via TLS), compressione, ecc.

PS:. La serie versione 2.0 è altamente raccomandato, anche se è ancora in forma "pietra miliare", è dimostrato molto stabile e si sta avvicinando una release finale

Altri suggerimenti

Hai a scelta multipla:

  • Stendete la vostra soluzione con l'SDK esistente per la programmazione dei socket.
  • Java RMI, il quadro Remote Method Invocation.
  • binding Java CORBA, è attuale non è più considerato.
  • framework Java Web Service, sono abbastanza complesse. Guardate Apache CXF ed i diversi prodotti J2EE.

Poi si hanno diversi sistemi che eseguono sopra trasporto HTTP come JSON / XML-RPC in cui è necessario un server Web. Anche se si regola fuori.

Si potrebbe considerare l'utilizzo di qualcosa di semplice come Molo la struttura interna di banchina sono molto stabili e in grado di gestire il numero abbastanza stupido di connessioni. Se si implementa la specifica di interfaccia del gestore pontile si può anche fare con fuori tutto il servlet e JSP librerie di supporto che lo rende piuttosto un piccolo application server embedable.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top