In article <[email protected]>, vladislav_korecky-
[email protected] says...
> 
> Dobrý den,
> jsem začátečník s Java a měl bych na Vás jeden dotaz.
> Mám zařízení naslouchající na TCP a které dokáže obsloužit jen jednoho 
> klienta (neumí více připojení současně). Jedná se o interface k regulaci 
> domu.
> Píši si webovou aplikaci (s použitím Apache Wicket), která by ovládala 
> dům, ale řeším následující problém. Pokud se k webovým stránkám přihlásí 
> více klientů, vytvoří se více instancí na webovém serveru a každá se 
> bude snažit komunikovat s interface regulace, ale to je nedokáže obsloužit.
> Napadlo mě řešení s vytvořením systémové služby, která by pomocí XML-RPC 
> přijímala požadavky od webových aplikací a dávala by je do zásobníku 
> FIFO. Jednotlivé požadavky by posílala do regulace a výsledek vracela 
> zpět do webových aplikací.
> Toto řešení má jednu chybu, nenajdu hosting (cenově dostupný) kam bych 
> mohl nainstalovat vlastní systémovou službu, takové služby nabízí jen 
> server hostingy a ty jsou moc drahé.
> Lze tento problém nějak řešit přímo na aplikačním serveru ? Buď přes 
> nějaké sdílení session mezi instancemi téže aplikace nebo lze dokonce 
> vytvořit něco jako systémovou službu přímo v aplikačním serveru ?
> 
> Předem děkuji za nápady,
> Korecký

Dobrý den

ideální řešení závisí na mnoha faktorech které jste neuvedl:

* jak rychle ten interface reaguje
* kolik bude souběžných klientů
* jak bude výsledek prezentován přes web (response čeká na vyřešení 
požadavku, AJAX, nebo "podívejte se na URL xx jestli ej váš požadavek 
již uspokojen", ...)
* ...

Předpokládám, že to píšete pro sebe a sousedy ve volném čase a možnost 
kolize je minimální. Já bych použil lock s timeoutem (5-10s) a výsledek 
vracel v response. Pokud to náhodovou timeoutuje, tak "sorry uživateli, 
zkus to znovu".

Honza

Odpovedet emailem