Editor multiusuario com threads

2 respostas
B

boa tarde pessoal, gostaria de sanar uma dúvida quanto como proceder na implementação de um trabalho para SD, não sou programador avançado em java, mas vamos lá, gostaria de saber qual melhor implementação usar.

o programa deve somente realizar o seguinte, será um google docs extremamente simples, os usuários editaram um texto em tempo real, ou seja, hora que um usuário editar uma linha terá que aparecer para o outro a atualização na edição.

estou tentando usar RMI para implementar isto, mas esta ficando difícil, mas teria como tipo usar socket ?

implementações que pensei em em usar:

-> deixar tudo em memoria e somente no final salvar isto em arquivo, pois ficaria mais fácil o controle de leitura e escrita, tipo pensei em colocar uma memoria no servidor onde ficaria as atualizações na edição e uma memoria local na maquina do usuário para ir atualizando o que somente foi modificado.
-> usar arquivo, mas complicaria muito.
-> usar o rmi, mas estou tendo dificuldades de atualizar para o usuário, e não pode sobrescrever o que o outro esta digitando na hora.

se alguém puder me ajudar, lembrando não estou atrás de nada pronto, quero somente sanar dúvidas, mas se alguém conhece um bom exemplo para me guiar agradeceria também.

2 Respostas

gmoenik

Aprendi RMI usando o Java Tutorial
http://docs.oracle.com/javase/tutorial/rmi/index.html

RMI vai facilitar muito nesse projeto, se comparado RMI vs Socket.
Principalmente por ele ser visto como chamdas Assíncronas e voce pode transitar Interfaces Remotas.

Ja o Socket você vai transitar informações a um nível mto baixo para essa aplicação. (char,int,byte,…)

Uma idéia Basica é Fazer um “Servidor” e só nele existir um Objeto Texto que implementa uma Interface ITexto.
Essa interface herda a interface Remote do RMI e possui métodos de controle do texto para acesso via clientes RMI.

Depois disso vem o pulo do gato, os métodos de controle do texto devem ser pensados de um maneira que cada cliente saiba onde está no texto, possa mudar texto, receba o texto de tempos em tempos(thread na parte cliente resolve) e um não interfira no outro.

B

é nesta parte que estava em dúvida, obrigado por dar sua opinião, vou levar em conta isto, após implementar algumas coisas a mais se surgir alguma dúvida que não sabia proceder, retorno a tentar sanar a dúvida.

Criado 27 de julho de 2012
Ultima resposta 27 de jul. de 2012
Respostas 2
Participantes 2