Re: Systémová služba (nebo něco podobného)
In article 4ead223c.6080...@gordic.cz, vladislav_korecky- btygo4b3k76lvyrhu4q...@public.gmane.org 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
Re: Systémová služba (nebo něco podobného)
Dobrý den, zde jsou odpovědi na otázky: * jak rychle ten interface reaguje Interface reaguje v řádech stovek ms * kolik bude souběžných klientů Jelikož to bude ovládání rodinného domu, nepočítám s více jak 5-ti klienty * 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, ...) Bude to pomocí Apache Wicket s AJAXem. Na stránce bude zobrazena mapka domu, v mapce budou zobrazeny hodnoty nastavených a skutečných teplot (možná i obrázek technologie - čerpadla, atd ..). Hodnoty se budou v obrázku aktualizovat cca. po 5 sec. Má představa je tato: Jelikož to poběží někde na hostingu, tak vše musí být na Apache Tomcat. Zatím jsem ve fázi že mám vytvořený servlet, který se spustí hned po startu aplikačního serveru a vytvoří thread. Thread sbírá požadavky pomocí XML-RPC (volím ho proto aby bylo komunikace nenáročná na vyskládání požadavku, chtěl bych udělat i klienta pro Android) do zásobníku FIFO a zpracováváje. Webová aplikace se připojuje jako každý jiný klient na XML-RPC threadu a zadává požadavky. Zatím jsem nenašel lepší řešení na Apache Tomcat, na EE serverech jako JBoss jde spousta jiných věcí, ale já se chci držet jednoduchosti. Což znamená Tomcat a nic z Java EE. Předem děkuji za Vaše postřehy a náměty, Korecký Dne 31.10.2011 14:37, jan_bar napsal(a): In article4ead223c.6080...@gordic.cz, vladislav_korecky- btygo4b3k76lvyrhu4q...@public.gmane.org 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
RE: Systémová služba (nebo něco podobného)
a nestacilo by pri pristupovani ku komunikacnemu interface + komunikovani pouzivat singleton a staticke metody ? ak je problem vo vytvoreni viac instancii webovej aplikacii na servri ... ivo -Original Message- From: konference-boun...@java.cz [mailto:konference-boun...@java.cz] On Behalf Of Vladislav Korecký Sent: Sunday, 30.October 2011 11:09 To: Java Subject: Systémová služba (nebo něco podobného) 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ý
Re: Systémová služba (nebo něco podobného)
Ahoj, lhal bych kdyby jsem tvrdil že mě varianta s hostingem pro více domů nenapadla. Každopádně je pro mě prioritou můj dům a pak možná budu hledat řešení pro větší systém. Kdyby k tomu došlo tak bych chtěl vyvolat frontu požadavků pro každý dům zvlášť v separátním threadu. Vláďa Dne 31.10.2011 15:32, Lukas Barton napsal(a): Ahoj, a chcete z jednoho deploymentu ridit vice domu? Pokud ano, tak by to chtelo separatni frontu pro kazdy dum a vice vlaken zpracovavajicich pozadavky. Staticke metody to neresi, jedine ze by byli synchronized, coz neni dobrej pristup. Lukas 2011/10/31 Snajder Ivo isnaj...@trask.cz mailto:isnaj...@trask.cz a nestacilo by pri pristupovani ku komunikacnemu interface + komunikovani pouzivat singleton a staticke metody ? ak je problem vo vytvoreni viac instancii webovej aplikacii na servri ... ivo -Original Message- From: konference-boun...@java.cz mailto:konference-boun...@java.cz [mailto:konference-boun...@java.cz mailto:konference-boun...@java.cz] On Behalf Of Vladislav Korecký Sent: Sunday, 30.October 2011 11:09 To: Java Subject: Systémová služba (nebo něco podobného) 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ý
Systémová služba (nebo něco podobného)
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ý
Re: Systémová služba (nebo něco podobného)
Hmm a nestacilo by Vam application scope beana ktera by davala prikazy do fronty, fronty ktera je thread safe? A pri pridani nejakeho prvky by ji neco vybiralo, napada me po ranu bud jina beana, (ktera by mel while true, a volani fronty by bylo blokujici) prip kdybyste to chtel mit casovane tak neco ze springu s casovacem... Jiank jako fronta mozna neco z BlockingQueue? Anebo JMS? to je primo na tyto pripady. Asi bych volil JMS. PP On 30. říjen 2011 11:09:00, Vladislav Korecký wrote: 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ý
RE: Systémová služba (nebo něco podobného)
Virtuální serverhosting by nestačil? Petr Zajíc -Original Message- From: konference-boun...@java.cz [mailto:konference-boun...@java.cz] On Behalf Of Vladislav Korecký Sent: Sunday, October 30, 2011 11:09 AM To: Java Subject: Systémová služba (nebo něco podobného) 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ý
Re: Systémová služba (nebo něco podobného)
Dobrý den, jestli to chápu dobře. Řešením by bylo udělat bean která by měla tělo while (true) { // zpracovani fronty } tato bean by implementovala interface BlockingQueue a to samé rozhraní by implementovala i webova aplikace. webova aplikace by ukladala na zasobnik pozadavky a beana while (true) by frontu zpracovávala. Pochopil jsem to dobře ? Pokud ano, zřejmě budu muset thread ve kterém běží while (true) uspávat, abych nevyžral všechny systémové prostředky. Je to tak ? Předem děkuji, Korecký Dne 30.10.2011 11:25, Petr Přikryl napsal(a): Hmm a nestacilo by Vam application scope beana ktera by davala prikazy do fronty, fronty ktera je thread safe? A pri pridani nejakeho prvky by ji neco vybiralo, napada me po ranu bud jina beana, (ktera by mel while true, a volani fronty by bylo blokujici) prip kdybyste to chtel mit casovane tak neco ze springu s casovacem... Jiank jako fronta mozna neco z BlockingQueue? Anebo JMS? to je primo na tyto pripady. Asi bych volil JMS. PP On 30. říjen 2011 11:09:00, Vladislav Korecký wrote: 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ý
Re: Systémová služba (nebo něco podobného)
Caf! Mozem doporucit rozsirene RMI Cajo http://java.net/projects/cajo/pages/Home Excelentna vec. Hlavne spolocne instancie objektov nemaju chybu. Mam na tom postavenu klient server aplikaciu vizualizacie vymennikovych stanic ovladanych cez bacnet. Ako bacnet kniznicu pouzivam bacnet4java a dole bacnet stack v Ccku A este k tomu spodku, mrkni sa na dosku HYREDBULL V3,dva mega ram ,ethernet, RS485 a prijatelna cena. Nieje to o JAVE takze ak chces podrobnosti napis. S pozdravom ARSI Dňa 30.10.2011 11:09, Vladislav Korecký wrote / napísal(a): 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ý
Re: Systémová služba (nebo něco podobného)
Zkuste primarne to JMS, je to technologie ktera se na to fakt hodi vic, to co jsme napsal. Jinak pochopil jste to dobre. S tim uspavanim by to menelo smysl. Ve fronte mate blokujici pop (?). Tudiz pokud tam nic nebude tak jste uspani PP On 30.10.2011 12:25, Vladislav Korecký wrote: Dobrý den, jestli to chápu dobře. Řešením by bylo udělat bean která by měla tělo while (true) { // zpracovani fronty } tato bean by implementovala interface BlockingQueue a to samé rozhraní by implementovala i webova aplikace. webova aplikace by ukladala na zasobnik pozadavky a beana while (true) by frontu zpracovávala. Pochopil jsem to dobře ? Pokud ano, zřejmě budu muset thread ve kterém běží while (true) uspávat, abych nevyžral všechny systémové prostředky. Je to tak ? Předem děkuji, Korecký Dne 30.10.2011 11:25, Petr Přikryl napsal(a): Hmm a nestacilo by Vam application scope beana ktera by davala prikazy do fronty, fronty ktera je thread safe? A pri pridani nejakeho prvky by ji neco vybiralo, napada me po ranu bud jina beana, (ktera by mel while true, a volani fronty by bylo blokujici) prip kdybyste to chtel mit casovane tak neco ze springu s casovacem... Jiank jako fronta mozna neco z BlockingQueue? Anebo JMS? to je primo na tyto pripady. Asi bych volil JMS. PP On 30. říjen 2011 11:09:00, Vladislav Korecký wrote: 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ý