Linux - samohostujący sie webserwis bez gui

0

Witam,

Posiadam serwer na linuksie (bez x-ów). Czy da sie zrobic w javie taki webserwis, ktory by nie wymagal do dzialania zadnego zewnetrznego serwera ani gui? Takie rozwiazania jak hostowanie serwisu na apache tomcat raczej mnie nie interesują.
Chodzi mi raczej o jakis odpowiednik WCF Service Host z .NET

Taki webserwis chodzilby jako daemon i sluzyl na przyklad do zmian w konfiguracij serwera. Fajnie by bylo tez dodac SSL i autoryzację na podstawie certyfikatu (certyfikat wygeneruje sobie sam)

0

Jak sama nazwa wskazuje web servce to typ servicu dostepnego po sieci, a wiec wymaga servera. Twoj przyklad z WCF - przeciez tam tez musi byc jakis serwer, moze jakas kobyla, a moze jakis lightweight tylko, ale musi byc serwer - jak inaczej sobie wyobrazasz? Zawsze mozesz sam napisac tki web service ktory jest automatycznie rowniez i serwerem w sobie, ale po co odkrywac ameryke od nowa? No chyba ze chcesz sie nauczyc czego to spoko.
Co do web servicow to jest np Apache Axis, ktory ma zaimplementowany maly serwerek na ktorym mozesz deployowac uslugi.
Co zlego w tomcacie?

0

To nie możesz po prostu łączyć się do serwera przez ssh i z konsoli administrować systemem(np. poprzez jakieś skrypty do administracji)?
Do przesyłania plików możesz użyć scp.

Jeżeli masz windowsa, to np. putty obsługuje ssh, a winscp scp.

Możesz też wygenerować sobie parę kluczy - prywatny i publiczny i łączyć się z serwerem przez ssh bez podawania hasła.

0

Jak sama nazwa wskazuje web servce to typ servicu dostepnego po sieci, a wiec wymaga servera

Nie no ja wiem co to jest webserwis. Tylko ze pod net jest klasa do hostowania webserwisów. Czyli nie trzeba robic serwera od podstaw.
Wystarczy wywolac jedna metode podajac jako parametr nasz webserwis i mamy hosta (czyli serwer - popierdułka automatycznie hostujący webserwis). A klasa nazywa sie bodajrze ServiceHost.
A jezeli deklaracje webserwisu umieszcze w tym samym pliku zrodlowym co obsluge hosta, to powstaje JEDEN gotowy serwer z wbudowanym webserwisem (calkowicie niezalezny plik .exe)

Jak rozumiem w javie nie ma gotowego rozwiazania - musze miec albo serwer przystosowany do hostowania webserwisu, albo sam od podstaw pisac serwer http? Hmm.... niefajnie

0

Jest kupa rozwiązań w Javie do Webservice'ów tylko wystarczy w google wpisać.

Ja dobre opinie słyszałęm o Webservice'ach w Springu:
http://static.springframework.org/spring-ws/sites/1.5/

0

@othello, po pierwsze .NET wykorzystuje możliwości systemu operacyjnego czyli m.n. wbudowany w Windowsa NT serwer IIS. Czyli mówienie, że nie ma tam serwera to bzdura.
Jeżeli chcesz mieć Javę to niestety trzeba postawić serwer chyba, że znajdziesz linuxa z wbudowaną Javą EE i serwerem aplikacji.

Względnie można całość postawić na Jetty + zaproponowany przez przedmówcę SpringFramework. Jetty jest kontenerem serwletów, który nie wymaga instalacji i można go odpalić z javowej metody main.

0

@koziolek
Mylisz sie. Samochostujacy sie webserwis WCF (selfhosting wcf webserwice) nie wymaga obecności żadnego serwera http. Mylisz WCF z webserwisem asp.net, ktory rzeczywiscie jest hostowany na IIS. Serwer http jest oczywiscie - ale sam go tworze.

Aby utworzyć hosta webserwisu wystarcza te 2 linijki kodu:

ServiceHost host= new ServiceHost(typeof(MyWebservice));
host.Open();

MyWebserwice jest dodany do projektu jako Reference i jest to bilioteka dll (assembly) z wlasciwym webserwisem (oczywiscie nie musi to byc w oddzielnej bibliotece, ale nie o tym mowimy).

Co powstanie po kompilacji programu? Plik .exe, ktory po uruchomieniu:

  • rozpoczyna nasluchiwanie na podanym w konfiguracji porcie http
  • ładuje webserwis

Nie ma to absolutnie nic wspolnego z systemem operacyjnym ani z serwerem IIS, bo powstalo wlasnie po to, aby mozna bylo sie uniezaleznic od zewnetrznego serwera http. Webserwis skonstruowany w taki sposob jest calkowicie niezalezny.

Po prostu wymyslilem sobie, ze zrobie cos podobnego na linuksie na moim serwerze, bo idea jest ogolnie fajna - klient dla Windows moglby byc np. pisany w .NET.
Poniewaz jedyna mozliwoscia postawienia webserwisu na linuksie jest napisanie go w Javie, wiec poszukuje analogicznego rozwiazania pod java

0

@othello, rzeczywiście się mi było pomyliło z asp. WCF wykorzystuje trochę inny mechanizm. Z tego co piszą tu to WCF działa jako usługa w obrębie domeny aplikacji. Platforma .NET dostarcza tylko odpowiednich mechanizmów sieciowych (nie jest to serwer, raczej jego kaleka namiastka) pozwalających na komunikację z serwisem.

Linux nie ma modelu domenowego, a java jest platform independent zatem nie ma tu takiego mechanizmu. Masz za to IIOP-RMI lub mozna skorzystać z lekkiego kontenera jakim jest jetty.

Nie jest prawdą, że jedyną możliwością na linuxie jest java. WebServices jest technologią komunikacji, a zatem można ją połączyć z każdym językiem, który będzie potrafił przetworzyć xmla z komunikatem. Nawet FORTRAN może być tu podpięty.

Hm... ciekawy problem. Z punktu widzenia architektury do obsługi WS wystarczy serwer http (musi być, bo endpoint jest wskazywany przez adres http jeżeli ma to działać w sieci) i dowolny skrypt do obsługi. Lekki jest php i ruby.

0

nie jest to serwer, raczej jego kaleka namiastka

Bo tez nie ma to byc serwer. Jest to tylko niezbędne minimum i bardzo dobrze.

Nie jest prawdą, że jedyną możliwością na linuxie jest java.

No tak, oczywiscie. Mialem na mysli to, ze jest to chyba jedyne rozwiazanie (no, moze jeszcze apache axis w C++, ale to tez przeciez wywodzi sie z javy), ktore nie wymaga ode mnie samodzielnej implementacji SOAP (tylko szaleniec by to robil).

Jetty mi calkiem sie podoba, znasz moze jakis dobry opis jak wywolac to spod javy i jak w ogole to wszystko polaczyc w miare sensownie?

[edit]
A juz idealnie by bylo, jakby sie dalo podpiac webserwis w javie pod lighttpd (niestety apache jest wykluczone, a szkoda bo wtedy wspomniany axis by zalatwil sprawe)

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