Conforme discutimos em 2014-10-22, é preciso escrever uma classe {ProcessQuackHTTP.java} que vai fazer a comunicação entre o servidor Apache (um processo persistente P1 que roda numa máquina M1 do IC) e of servidor Quack (outro processo persistente P2, que roda em alguma outra máquina M2).
Cada vez que o servidor Apache P1 recebe um pedido HTTP (GET/POST) relacionado com o quack, ele vai startar e executar um novo processo P3, da classe {ProcessQuackHTTP.class}, na máquina M1. Esse processo P3 deve se comunicar com o processo {ServerImpl} P2 na máquina M2, passar para ele o GET/POST (possivelmente destrinchado), e aguardar o resultado, que é uma página HTML. O processo P3 então entrega essa página ao servidor Apache e termina.
A classe ProcessQuackHTTP substitui a classe Login.java.
Note que ProcessQuackHTTP.java não carrega banco de dados e não usa nenhuma das classes do pacote {quack}.
Por outro lado processo P2 {ServerImpl.java} carrega todo o banco de dados MySQL na memória só uma vez, quando é startado (o que vai levar alguns minutos), e atualiza o banco quando há alterações nos usuários, contatos, ou mensagens. Como explicado na interface (RTFM!) ele tem várias instâncias de {Session} na memória, que são criadas quando alguém dá login. descartadas no logout, e são perdidas quando P2 morre.
EDIT: O processo P3 não precisa nem ser em java. Poderia ser um shell script, Python, etc. Ele só precisa conseguir se comunicar com o processo P2 na máquina M2, entrgar para ele de agum jeito um string e receber de volta um string. O ServerImpl precisa ter um método que de alguma forma recebe um desses strings, destrincha, chama o método processXXXReq correspondente, pega o string que esse método devolve e manda de volta pro processo P3 na máquina M1.
Conforme discutimos em 2014-10-22, é preciso escrever uma classe {ProcessQuackHTTP.java} que vai fazer a comunicação entre o servidor Apache (um processo persistente P1 que roda numa máquina M1 do IC) e of servidor Quack (outro processo persistente P2, que roda em alguma outra máquina M2).
Cada vez que o servidor Apache P1 recebe um pedido HTTP (GET/POST) relacionado com o quack, ele vai startar e executar um novo processo P3, da classe {ProcessQuackHTTP.class}, na máquina M1. Esse processo P3 deve se comunicar com o processo {ServerImpl} P2 na máquina M2, passar para ele o GET/POST (possivelmente destrinchado), e aguardar o resultado, que é uma página HTML. O processo P3 então entrega essa página ao servidor Apache e termina.
A classe ProcessQuackHTTP substitui a classe Login.java.
Note que ProcessQuackHTTP.java não carrega banco de dados e não usa nenhuma das classes do pacote {quack}.
Por outro lado processo P2 {ServerImpl.java} carrega todo o banco de dados MySQL na memória só uma vez, quando é startado (o que vai levar alguns minutos), e atualiza o banco quando há alterações nos usuários, contatos, ou mensagens. Como explicado na interface (RTFM!) ele tem várias instâncias de {Session} na memória, que são criadas quando alguém dá login. descartadas no logout, e são perdidas quando P2 morre.
EDIT: O processo P3 não precisa nem ser em java. Poderia ser um shell script, Python, etc. Ele só precisa conseguir se comunicar com o processo P2 na máquina M2, entrgar para ele de agum jeito um string e receber de volta um string. O ServerImpl precisa ter um método que de alguma forma recebe um desses strings, destrincha, chama o método processXXXReq correspondente, pega o string que esse método devolve e manda de volta pro processo P3 na máquina M1.