sono di fronte a un dilemma:Progettazione di un protocollo di rete per dispositivi di dati in tempo reale/mobili
progettazione di un nuovo protocollo di rete che sarebbe utilizzato tra un server (software Java) e client desktop e mobili. I client mobili includono J2ME, Android e forse in futuro anche iPhone.
Il flusso di dati è un flusso in tempo reale e costante con parti anche più rari. I client mostrano forme d'onda di questi dati e anche dati che non devono essere aggiornati all'istante. Anche i client dovrebbero essere autenticati.
Mi piacerebbe evitare di creare un'implementazione del protocollo TCP totalmente personalizzata da zero, se possibile.
In questi giorni di solito le persone consigliano di fare tutto in stile REST che mi piace anche molto. In questo caso sono un po 'titubante: come implementeresti un flusso costante di dati su REST? Una risposta HTTP Chunked?
Sto anche considerando i protocolli non in chiaro (quelli correnti che sto sostituendo sono i protocolli binari). Questi protocolli attuali hanno i loro problemi piuttosto seri, quindi dovrebbero essere davvero sostituiti.
I buffer del protocollo Google si presentano come candidati piuttosto validi per la gestione dei dettagli di basso livello, ma non sono sicuro che possa essere utilizzato da Android. E sono abbastanza sicuro che anche l'implementazione dell'iPhone avrebbe dei problemi.
C'è anche BEEP, ma penso che sia praticamente morto e mi chiedo se sia mai stato ampiamente utilizzato.
Qualche idea?
Grazie! Non ero a conoscenza del fatto che esistessero framework NIO alternativi ampiamente usati per Java. Ho usato per programmare contro l'API NIO Java e talvolta mi sveglio ancora di notte urlando (deve essere la peggiore API che Sun abbia mai prodotto) :-) Questa nuova informazione rende NIO ancora più rilevante per me! – auramo
Sono d'accordo con te completamente. Ho avuto gli stessi incubi durante lo sviluppo basato sull'API NIO Java :-) Apache MINA ha cambiato la mia vita per sempre. –