Construir um servidor para sistema de feedback de comunicação bidirecional do lado cliente/servidor em Java?

StackOverflow https://stackoverflow.com/questions/6333935

Pergunta

Cenário:O usuário efetua login no software cliente que forma uma conexão bidirecional persistente com a entidade do lado do servidor (servidor) que processaria as tarefas especificadas pelo usuário.Quando a entidade do lado do servidor, ao processar a tarefa do usuário, encontra um erro ou requer mais informações do usuário, ela notificará o software cliente e aguardará até que o cliente decida o que fazer.O software cliente pegará as entradas especificadas pelo novo usuário e as enviará para o servidor.O lado do servidor continua onde parou pela última vez com as novas entradas especificadas pelo usuário.Este ciclo de feedback continuará até que o processamento seja concluído.As entradas do usuário atualizadas progressivamente serão todas armazenadas no servidor e acessíveis e modificáveis ​​a partir do software cliente.Portanto, se um cliente excluir uma entrada específica, essa alteração será refletida imediatamente no servidor.No lado do servidor, provavelmente é necessária uma interface extra para rotear clientes de diferentes usuários para nós de hardware disponíveis (nuvem) para suportar tarefas multiusuários simultâneas em execução no lado do servidor.

No lado do cliente, suspeito de usar soquetes para conectar-se ao servidor...

Agora, quanto ao servidor, estou um pouco perdido porque parece haver muitos servidores Java diferentes, como Jetty & Netty.Também estou sendo cauteloso para não tentar reinventar nenhuma roda aqui.

Construir um servidor é a abordagem correta?ou Construir um webservice que irá completar uma tarefa específica sob demanda?

Também não estou apenas procurando uma solução única para todos (provavelmente uma ilusão), mas estou aberto a quaisquer insights sobre minha situação atual.

Foi útil?

Solução

Netty fornecerá muito do que você precisa para isso, sem precisar reinventar um servidor de soquete.Dito isso, eu garantiria que você realmente precisasse de comunicação bidirecional e em tempo real entre o cliente e o servidor.Se você puder retrabalhar o problema de forma que as comunicações cliente-servidor não precisem ser em tempo real, então coisas como serviços da web RESTful se tornarão uma possibilidade e (na minha experiência) serão muito menos complicados e propensos a erros.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top