Java po stronie serwera / CGI

Odpowiedz Nowy wątek
2018-05-24 12:27
0

Siemka,

Czy Java może być wykorzystywana po stronie serwera jak skrypty cgi?
Jeżeli tak to rozumiem ze najpierw trzeba by było ją przekompilowac?

Najlepiej jakby ktoś mógł rozwinąc temat
Chciałem też zapytać o możliwości pod tym katem js, widziałem na necie przyklady z cgi-node ale srednio mi to chce ruszyc.

Dzieki za odpowiedz

Pozostało 580 znaków

2018-05-24 13:11
0

Ogólnie to słaby pomysł wykorzystywać javę do CGI. (CGI to generalnie kiepska technologia).
Ale jeśli jakoś jesteś zmuszony i nie możesz normalnego serwera postawić to warto użyć nowego feature czyli kompilacji aot:
http://openjdk.java.net/jeps/295

btw. wiadomo, że skompilowane programy są relatywnie powolne (tyle, że szybko sie startują w odróżnieniu od normalnego odpalania jvm)


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.

Pozostało 580 znaków

2018-05-24 13:54
0

Niestety docelowy serwer to boa na małym uClinux, potem sobie przejże na spokojnie tą dokumentacje. z tego co tak na szybko na temat Aot spojrzalem to kompilowanie języka np javy na natywny (maszyny-> assembler?). Zakładając ze dobrze rozumiem i dokonałbym już takiej kompliacji na język natywny to jak takie coś wykorzystać od strony serwera? Pisanie w Perlu mnie trochę odstrasza, a po sprawdzeniu krótkich skryptów to Python powoduje dwa razy większe zużycie niż perl, co w przypadku serwera embedded, może mieć tam jakieś znaczenie.

I jeszcze takie pytanie moge np z takiego skrypty w Pyhonie czy tam czymkolwiek odpalic biblioteke napisaną np w javie?

Pozostało 580 znaków

2018-05-24 14:20
0

Teraz to Cie nie rozumiem. Zakładalem, że chcesz uruchamiać programiki javowe przez CGI. Co ma do tego perl czy python?
Btw. Z pythona mozesz javę na kilka sposobów wywołać. Nie tozumiem tylko skoro już bedziesz pisał w pytonie po co Ci java. I odwrotnie na co Ci ten pyton jak masz javę.
Technicznie skoro możesz odpalić javę to możesz odpalić też server w javie i olać to boa, czy też zobaczyć czy sie da go zamienić w przelotkę/proxy do javowego. (Tak się robi z apache-httpd).

EDIT:Już doczytałem. Ten boa nie ma żadnego proxy raczej. Bieda.


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 6x, ostatnio: jarekr000000, 2018-05-24 14:33

Pozostało 580 znaków

2018-05-24 14:34
0

Do kompilacji Javy do natywnej binarki możesz użyć https://www.graalvm.org/docs/reference-manual/aot-compilation/ Musisz jednak mieć odpowiednie biblioteki w systemie:

Prerequisites

To build a native image of your program use the native-image utility located in the bin directory of the GraalVM distribution. For compilation native-image depends on the local toolchain, so please make sure: glibc-devel, zlib-devel (header files for the C library and zlib) and gcc are available on your system.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2018-05-24 14:54
0

Co po stronie serwera chcesz robić i jaki sprzęt jest pod tym uClinuksem?

Pozostało 580 znaków

2018-05-24 17:22
0

@jarekr000000: Bardzo możliwe ,że bredze bo nie do końca ogarniam temat wiec czekam mile widziana zjebka za bledy w myśleniu :p Tak, taki był zamysł pytania zeby odpalic jave jako cgi, a drugie pytanie "I jeszcze takie pytanie moge np z takiego skrypty w Pyhonie czy tam czymkolwiek odpalic biblioteke napisaną np w javie?" to mialem taka mysl, bo nie wiem używać Pythona (a gdyby sie nie dalo zbytnio zrobic cgi z javy) to z tego co widze Perl mniej obciąza układ ale za to srednio chce mi sie w nim pisac. Bo z szybkiego reseachu Pythona jak wyglada pod wzgledem implementowania funkcjonalność tzn. jeżeli chodzi o dostęp do COM, jakies timery itd chyba jest ok. za to w perlu bym sie je... :D
Znaczy wolałbym to oczywiście zrobić za pomocą jednego języka, wątpliwości dotyczą tego co najmniej obciązy procek.

@Wibowit jak przekompiluje do binarki na kompie A to po wrzuceniu do kompa B (gdzie jest serwer) bedzie ten plik smigał?

@yarel serwer ma umożliwić konfiguracje urządzenia a także mieć możliwość synchronizacji czasu z neta -> czyli muszę moc korzystać z portu COM, timery, wysyłanie ramki
A sprzet to XPORT PRO, na razie działam pod raspberry zeby sprzetowo zbliżone.
Tylko nie wiem jak tak wyglada do końca wrzucanie plikow i obsluga tego, sprzet bede mial dopiero za jakis czas ( w pracy wolno zamawiaja)

Dzięki Panowie za zainteresowanie, jak bredze to możecie mnie na kierować na dobry tok rozumowania ;)

Pozostało 580 znaków

2018-05-24 18:39
0

Na raspi AOT kompilacja podobno działa. Natomiast skoro to jest taki sprzęt to nijak nie rozumiem na kiego grzyba jest tam to boa. Jakim cudem Cię do korzystania z tego zmuszą ? wywal /skasuj/ zamieć - opornym ludziom zalutuj otwory gębowe. Powiedz, że bez boa bedzie lepiej. (bo będzie)
Postaw normalnie serwer w javie, nawet nie baw sie w żadne CGI, ani kompilacje AOT. Rób normalnie, jak ludzie. Profit.


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 3x, ostatnio: jarekr000000, 2018-05-24 18:41

Pozostało 580 znaków

2018-05-25 08:17
0

@jarekr000000: boa jest w specycikacji tego urzadzenia jako dedykowana biblioteka jako web server, ciezko mi powiedziec jak to wszystko wyglada. W sumie to mnie nikt nie zmusza, bo na poczatku pisalem programy w C# ale pojawil sie inny temat i jest na zasadzie "wez Pan to zrob" a u nas są dwie osoby piszące cokolwiek ja i gosciu z c++ wiec nie ma kogo sie dopytac :| To jakie technologie polecasz zeby to bylo jak najmniej obciązające i żeby też sie nie namęczyc?
Szczerze powiedziawszy nie mam duzego rozenania w javie, pisalem programy w springu i tam zeby uruchomic server uzywalem Tomcat'a ale pewnie można też zrobić to na zasadzie Http server = new HttpServer... tylko wtedy pewnie bez widokow itd?
Robiłem wcześniej server w pracy (C#) ale to tylko komunikacyjny po udp (nasluchiwanie - odbieranie - generowanie odpowiedzi - odpowiedz ).

Pozostało 580 znaków

2018-05-25 08:24
1

Najmniej obciążający (względnie popularny) serwer w javie to chyba ratpack. To jest tzw. non blocking server. Prędzej czy później będziesz musiał poznać co to znaczy. (Jeden watek starczy każdemu). Możesz jeszcze obejrzeć sparkjava. Lub bardzo klasycznie jetty. O tomcacie zapomnij - szkoda czasu. (Jetty jest prawie jak tomcat (wspiera servlety), a o wiele łatwiej coś napisać).


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 1x, ostatnio: jarekr000000, 2018-05-25 08:45

Pozostało 580 znaków

2018-05-25 08:48
1

Nie do końca rozumiem problem jaki chcesz rozwiązać, tzn. mam pewne przypuszczenia, które streściłbym jako "chcę zarządzać urządzeniami z przeglądarki".

Co powiedziałbyś na takie klocki:
Klient webowy --> Bramka Rest-SNMP -- Urządzenie z agentem SNMP.

  • Klient webowy - Twoja przeglądarka z jakimś Java Scriptem wołąjącym resta.
  • Bramka Rest-SNMP - Twój dedykowany serwer webowy z ulubionym stosem technologicznym, zapewnia konwersję REST<->SNMP
    Na urządzeniu możesz mieć agenta SNMP i rozszerzyć go o skrypty shellowe, które coś na danym urządzeniu dziobią (myślę tu o czymś mega prostym, np. skrypt korzystający z file systemu /proc: echo 1 > /proc/costam/diody/commands - zależnie od tego jak wygląda abstrakcja danego urządzenia w proc )

Materiały poglądowe:
http://www.net-snmp.org/
https://geekpeek.net/extend-snmp-run-bash-scripts-via-snmp/
https://dzone.com/articles/restful-snmp-over-http
https://github.com/rhuitl/uClinux/tree/master/user/net-snmp

-- edited: Nie napisałem tego wprost, ale serwer webowy widziałbym poza samym urządzeniem.

edytowany 1x, ostatnio: yarel, 2018-05-25 08:50

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0