Re: Systémová služba (nebo něco podobného)

2011-10-31 Tema obsahu jan_bar
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)

2011-10-31 Tema obsahu Vladislav Korecký

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)

2011-10-31 Tema obsahu Snajder Ivo
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)

2011-10-31 Tema obsahu Vladislav Korecký

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)

2011-10-30 Tema obsahu Vladislav Korecký

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)

2011-10-30 Tema obsahu Petr Přikryl
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)

2011-10-30 Tema obsahu Petr Zajíc
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)

2011-10-30 Tema obsahu Vladislav Korecký

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)

2011-10-30 Tema obsahu arsi

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)

2011-10-30 Tema obsahu Petr Přikryl

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ý