Czym są Webservices

0

Witam
Od paru miesięcy pracuję w firmie na stanowisku juniora java dev. Radzę sobie, jednak mam parę problemów z którymi się zmagam, głównie chodzi mi o architekturę.
1)Mam problem ze zrozumieniem czym są web serwisy. Umiem ich użyć, dopisać jakiś kod, wiem, że obsługują metody http takie jak post czy get. I tylko jak to w praktyce wygląda.
Wiem, że w obrębie aplikacji mogę z js wywołać sobie pożądaną metodę z web serwisu. I tu się pojawia problem dla mnie.
Mianowicie jak to jest, mi się wydawało, że ws używa się głównie do komunikacji z osobnymi modułami albo innymi aplikacjami. A tutaj widzę, że wykorzystywane są jako połączenie front z backendem.
Chodzi mi o poczucie takie czym jest WS i kiedy tego użyć.
Pytanie jakie chcę zadać to czy dobrze rozumiem WS?

2)Drugim problemem są beany. Ten sam projekt (stary ponad 10 lat, przekrój chyba wszystkich technologii java :) ) Mam np jakiś WS i on jest klasą, beanem w sensie. Tam jest wstrzykiwanie rozumiem. I do końca
nie wiem jak to opisać ale kiedy zamiast DI skorzystać z NEW? Przypuszczam, że nie ma jakiejś prostej odpowiedzi. Bo to zależy od architektury aplikacji itd.
W moim przekonaniu głębiej w kodzie w cale nie musimy tworzyć instancji innych klas za pomocą NEW. Wydaje mi się, że chodzi tutaj np, gdy chcemy mieć jakąś logikę, która potrzebuje abyśmy utworzyli jakieś dane wtedy może istnieć potrzeba stworzenia klasy przez NEW o ile ona będzie gdzieś indziej też wykorzystywana / przekazana i ma jakieś pola.

Wiem, że są definicje czym są ws i beany, ale chciałbym to poczuć, co do mnie o wiele lepiej przemówi.

1

No tak masz oddzielny frontend i oddzielny backend całkowicie dzięki zastosowaniu Web Service.
Dzięki temu na przykład więcej zadań może być wykonywanych po stronie klienta, a poza tym możesz mając jedno API napisać do tego stronę www z użyciem AngularJS i aplikacje mobilną w Androidzie

0

W necie ciężko znaleźć jakieś materiały dla początkujących w tym temacie ale poczytaj sobie książkę na ten temat(np. JBoss 7. Tworzenie apliakcji) i zrób prostą aplikację z wykorzystaniem CDI/EJB. Musisz to poczuć, ale ogólnie zasada tego jest prosta - tylko musisz uporządkować sobie postrzeganie cyklu życia obiektów w zakresach/contextach. Są beany tworzone każdorazowo, ale są też takie których jest tylko jedna instancja(singleton) w całej aplikacji.

0
  1. Nie ma prostej odpowiedzi. Generalnie model backend-as-a-service jest teraz dość popularny bo pozwala postawić jeden backend i wiele frontendów dla niego (np. webowy, mobilny, desktopowy itd). RESTowe serwisy dobrze sie do tego nadają. Niektórzy są też mocno napaleni na service-oriented-architecture tylko że niejednokrotnie to przerost formy nad treścią. Trzeba mieć głowę na karku i widzieć gdzie są korzyści a gdzie ich nie ma.
  2. Generalnie beany stanowią warstwę serwisów aplikacji. Najczęściej to są bezstanowe singletonowe obiekty które są potrzebne w wielu miejscach w aplikacji. Na przykład klasa DAO odpowiedzialna za zapisywanie czegoś do bazy danych może być potrzebna w kilkunastu różnych serwisach realizujących logikę biznesową. Wystawiając taką klasą przez DI sprawiasz że łatwo uzyskać do niej dostęp.
0

Dzięki za odpowiedzi i polecenie książki na pewno wezmę się za nią. Tak też to czułem jak @Shalom opisał na przykładzie DAO i używania w projekcie. O wiele łatwiej teraz do WS będę mógł podejść, więc skupie się na beansach i jaki mały projekt z EJB zrobię sobie.

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