-
1. Data: 2012-05-20 01:48:06
Temat: Aplikacja webowa a urządzenie podłączone do serwera
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
Zastanawiam się nad aplikacją webową, która pozwalałaby komunikować się
zdalnie z jakimś sprzętem, konkretnie podłączonym przez port szeregowy do
serwera WWW. Wysyłanie czegoś do takiego urządzenia jest dosyć proste. Gdy
przyjdzie żądanie z przeglądarki, np. POST lub GET, można coś wysłać na port
szeregowy, czy to korzystając z gotowych klas (PHP/ASP, zależnie w czym jest
strona napisana), czy też wywołując zewnętrzną aplikację. Gorzej jest
natomiast w drugą stronę, bo chodzi o to, żeby to działało w czasie
rzeczywistym. Aplikacja webowa raczej nie może otworzyć sobie portu
szeregowego i czekać aż coś dostanie.
Więc zostaje zewnętrzna aplikacja, która trzymałaby otwarty port i gdy coś
dostanie np. zrzucałaby to do pliku. Przeglądarka przez AJAX mogłaby wtedy
odpytywać aplikację na serwerze (przez polling np. co sekundę), która
pobierałaby ten plik.
Generalnie chodzi mi o coś takiego, że jest sobie urządzenie z przyciskiem.
Naciśnięcie tego przycisku powoduje wysłanie jednego bajtu przez RS-232 do
komputera na którym stoi demon HTTPD. Jak to potem sensownie przesłać do
przeglądarki, z możliwie małym opóźnieniem? Da się to jakoś lepiej rozwiązać
niż komunikacja przez pliki z zewnętrzną aplikacją odpowiedzialną za port
szeregowy?
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 14 hours, 28 minutes and 14 seconds
-
2. Data: 2012-05-20 03:14:30
Temat: Re: Aplikacja webowa a urządzenie podłączone do serwera
Od: Michoo <m...@v...pl>
On 20.05.2012 01:48, Grzegorz Niemirowski wrote:
> Gorzej jest natomiast w drugą stronę, bo chodzi o
> to, żeby to działało w czasie rzeczywistym. Aplikacja webowa raczej nie
> może otworzyć sobie portu szeregowego i czekać aż coś dostanie.
Ponieważ?
Albo servlet javy na serwerze aplikacji z dodatkową klasą ładowaną w
init (tomcat/glassfish/etc), albo np aplikacja w C++ podpięta przez
fastcgi do apache.
> Generalnie chodzi mi o coś takiego, że jest sobie urządzenie z
> przyciskiem. Naciśnięcie tego przycisku powoduje wysłanie jednego bajtu
> przez RS-232 do komputera na którym stoi demon HTTPD. Jak to potem
> sensownie przesłać do przeglądarki, z możliwie małym opóźnieniem?
Ajax. Najlepiej jakiś framework który wywołania callbacków zrobi za
ciebie. Ja kiedyś używałem GWT.
> Da się
> to jakoś lepiej rozwiązać niż komunikacja przez pliki z zewnętrzną
> aplikacją odpowiedzialną za port szeregowy?
Nie napisałeś jaki system operacyjny - pod linuksem port szeregowy jest
"jakimś plikiem".
--
Pozdrawiam
Michoo
-
3. Data: 2012-05-20 09:00:29
Temat: Re: Aplikacja webowa a urządzenie podłączone do serwera
Od: "yamma" <y...@w...pl>
Grzegorz Niemirowski wrote:
> Zastanawiam się nad aplikacją webową, która pozwalałaby komunikować
> się zdalnie z jakimś sprzętem, konkretnie podłączonym przez port
> szeregowy do serwera WWW. Wysyłanie czegoś do takiego urządzenia jest
> dosyć proste. Gdy przyjdzie żądanie z przeglądarki, np. POST lub GET,
> można coś wysłać na port szeregowy, czy to korzystając z gotowych
> klas (PHP/ASP, zależnie w czym jest strona napisana), czy też
> wywołując zewnętrzną aplikację. Gorzej jest natomiast w drugą stronę,
> bo chodzi o to, żeby to działało w czasie rzeczywistym. Aplikacja
> webowa raczej nie może otworzyć sobie portu szeregowego i czekać aż
> coś dostanie.
Serwis WCF pracujący pod kontrolą windowsowego svchosta (czyli jako zwykła
windowsowa usługa) + komunikujący się z nim IIS. To chyba byłoby najprostsze
rozwiązanie pod względem technologicznym.
yamma
-
4. Data: 2012-05-20 09:52:17
Temat: Re: Aplikacja webowa a urządzenie podłączone do serwera
Od: Jacek Czerwinski <...@...z.pl>
W dniu 2012-05-20 09:00, yamma pisze:
> Grzegorz Niemirowski wrote:
> Serwis WCF pracujący pod kontrolą windowsowego svchosta (czyli jako
> zwykła windowsowa usługa) + komunikujący się z nim IIS. To chyba byłoby
> najprostsze rozwiązanie pod względem technologicznym.
> yamma
Ja bym głosował za opcją Michoo coś w servletach i klasa realizująca ten
protokół. Wszystko w jednej JVM, żadnych protokołów sieciowych, dostępne
jako struktury lokalne itd.
Dla mnie to jest najprostsze.
-
5. Data: 2012-05-20 11:33:52
Temat: Re: Aplikacja webowa a urządzenie podłączone do serwera
Od: "yamma" <y...@w...pl>
Jacek Czerwinski wrote:
> W dniu 2012-05-20 09:00, yamma pisze:
>> Grzegorz Niemirowski wrote:
>
>> Serwis WCF pracujący pod kontrolą windowsowego svchosta (czyli jako
>> zwykła windowsowa usługa) + komunikujący się z nim IIS. To chyba
>> byłoby najprostsze rozwiązanie pod względem technologicznym.
>> yamma
>
> Ja bym głosował za opcją Michoo coś w servletach i klasa realizująca
> ten protokół. Wszystko w jednej JVM, żadnych protokołów sieciowych,
> dostępne jako struktury lokalne itd.
A nie miałby problemu z uprawnieniami do zasobów? Pytam, bo nie znam Javy i
nie wiem na jakiej zasadzie pracują servlety. WCF mógłby uruchomić na
dowolnym koncie, nawet specjalnie do tego celu utworzonym a serwer WWW byłby
tylko czymś w rodzaju proxy - translatora, który tłumaczyłby informacje
wysyłane z WCF na język zrozumiały dla przeglądarki.
> Dla mnie to jest najprostsze.
No to teraz pozostaje rozwiązać kwestię, kto zrobi to taniej. Javowiec czy
.NETowiec. ;-)
yamma
-
6. Data: 2012-05-20 11:36:43
Temat: Re: Aplikacja webowa a urządzenie podłączone do serwera
Od: Adam Przybyla <a...@r...pl>
Grzegorz Niemirowski <g...@p...onet.pl> wrote:
> Zastanawiam się nad aplikacją webową, która pozwalałaby komunikować się
> zdalnie z jakimś sprzętem, konkretnie podłączonym przez port szeregowy do
> serwera WWW. Wysyłanie czegoś do takiego urządzenia jest dosyć proste. Gdy
> przyjdzie żądanie z przeglądarki, np. POST lub GET, można coś wysłać na port
> szeregowy, czy to korzystając z gotowych klas (PHP/ASP, zależnie w czym jest
> strona napisana), czy też wywołując zewnętrzną aplikację. Gorzej jest
> natomiast w drugą stronę, bo chodzi o to, żeby to działało w czasie
> rzeczywistym. Aplikacja webowa raczej nie może otworzyć sobie portu
> szeregowego i czekać aż coś dostanie.
> Więc zostaje zewnętrzna aplikacja, która trzymałaby otwarty port i gdy coś
> dostanie np. zrzucałaby to do pliku. Przeglądarka przez AJAX mogłaby wtedy
> odpytywać aplikację na serwerze (przez polling np. co sekundę), która
> pobierałaby ten plik.
> Generalnie chodzi mi o coś takiego, że jest sobie urządzenie z przyciskiem.
> Naciśnięcie tego przycisku powoduje wysłanie jednego bajtu przez RS-232 do
> komputera na którym stoi demon HTTPD. Jak to potem sensownie przesłać do
> przeglądarki, z możliwie małym opóźnieniem? Da się to jakoś lepiej rozwiązać
> niż komunikacja przez pliki z zewnętrzną aplikacją odpowiedzialną za port
> szeregowy?
... stawialbym na aplikacje lokalna, ktora caly czas nasluchuje
na porcie rs-232 i komunikuje sie z aplikacja webowa. Komunikacja
po xml-rpc lub poprzez baze. Aplikacja webowa pewnei z jakas forma
ajax'a w sobie. Z powazaniem
Adam Przybyla
-
7. Data: 2012-05-20 14:19:46
Temat: Re: Aplikacja webowa a urządzenie podłączone do serwera
Od: Michoo <m...@v...pl>
On 20.05.2012 11:33, yamma wrote:
> No to teraz pozostaje rozwiązać kwestię, kto zrobi to taniej. Javowiec
> czy .NETowiec. ;-)
A poprawili już ten problem ze zwisami portu szeregowego pod .NET?
--
Pozdrawiam
Michoo
-
8. Data: 2012-05-20 14:54:53
Temat: Re: Aplikacja webowa a urządzenie podłączone do serwera
Od: Tomasz Sowa <t...@t...NOSPAM.org>
Dnia Sun, 20 May 2012 01:48:06 +0200, Grzegorz Niemirowski napisał(a):
> Przeglądarka przez AJAX mogłaby wtedy
> odpytywać aplikację na serwerze (przez polling np. co sekundę), która
> pobierałaby ten plik.
I kilka takich przeglądarek i serwer zajechany:
http://en.wikipedia.org/wiki/WebSocket
--
Tomek
-
9. Data: 2012-05-20 14:55:45
Temat: Re: Aplikacja webowa a urządzenie podłączone do serwera
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
Michoo <m...@v...pl> napisał(a):
> On 20.05.2012 01:48, Grzegorz Niemirowski wrote:
>> Gorzej jest natomiast w drugą stronę, bo chodzi o
>> to, żeby to działało w czasie rzeczywistym. Aplikacja webowa raczej nie
>> może otworzyć sobie portu szeregowego i czekać aż coś dostanie.
> Ponieważ?
> Albo servlet javy na serwerze aplikacji z dodatkową klasą ładowaną w init
> (tomcat/glassfish/etc), albo np aplikacja w C++ podpięta przez fastcgi do
> apache.
OK, nie znam się na servletach i fast CGI i stąd moje myślenie jest pewnie
prymitywne i przestarzałe. Otóż wyobrażałem sobie to tak, że jak leci HTTP
GET to wtedy na serwerze odpala się jakieś PHP, które coś tam robi i zwraca
wynik. A taki port szeregowy musi być monitorowany cały czas, czyli musi
chodzić coś w rodzaju demona.
>> Generalnie chodzi mi o coś takiego, że jest sobie urządzenie z
>> przyciskiem. Naciśnięcie tego przycisku powoduje wysłanie jednego bajtu
>> przez RS-232 do komputera na którym stoi demon HTTPD. Jak to potem
>> sensownie przesłać do przeglądarki, z możliwie małym opóźnieniem?
> Ajax. Najlepiej jakiś framework który wywołania callbacków zrobi za
> ciebie. Ja kiedyś używałem GWT.
Dzięki.
>> Da się
>> to jakoś lepiej rozwiązać niż komunikacja przez pliki z zewnętrzną
>> aplikacją odpowiedzialną za port szeregowy?
> Nie napisałeś jaki system operacyjny - pod linuksem port szeregowy jest
> "jakimś plikiem".
Tak samo jak pod Windows i innymi systemami. A systemu nie podawałem bo
chciałem jakąś ogólną ideę, najlepiej prostą i przenośną. Jeśli już coś
miałbym wskazać to Apache (raczej na Linuksie) i PHP, bo jest to popularna
kombinacja, łatwa do wdrożenia i często już dostępna.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 3 hours, 5 minutes and 33 seconds
-
10. Data: 2012-05-20 15:13:25
Temat: Re: Aplikacja webowa a urządzenie podłączone do serwera
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
Tomasz Sowa <t...@t...NOSPAM.org> napisał(a):
> I kilka takich przeglądarek i serwer zajechany:
Tak, ale tu akurat miałem na myśli rozwiązanie dla tylko jednego
użytkownika.
> http://en.wikipedia.org/wiki/WebSocket
Tak, znam, polling był podany przykładowo. Najbardziej interesuje mniej
stały monitoring portu przez serwer WWW.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 3 hours, 28 minutes and 2 seconds