Niedawno postanowiłem zacząć uczyć się o usługach sieciowych java i kiedy zacząłem szukać poradnika na temat usług sieciowych java w google, dowiedziałem się, że istnieje wiele typów usług sieciowych opartych na XML, opartych na SOAP, a także usługach RESTful.
Odkryłem również, że istnieje specyfikacja JAX-WS dla usług internetowych opartych na XML oraz specyfikacja JAX-RS do tworzenia usług sieciowych REST.
P1) Byłem zdezorientowany, byłoby wspaniale, gdyby ktoś mógł mi pomóc zrozumieć różnicę między tymi różnymi typami usług sieciowych, abym mógł zdecydować, której z nich się najpierw nauczyć.
Q2) Chciałbym również dowiedzieć się więcej o tworzeniu różnych typów usług internetowych w Javie. Czy istnieje samouczek lub zasoby, które mogą dać wgląd w każdy rodzaj usług sieciowych i porównanie między nimi?
Q3) w oparciu o scenariusze i warunki, w których powinienem zdecydować, że chcę utworzyć usługę internetową opartą na XML, a nie usługę SOAP, lub powinienem skorzystać z usługi RESTful.
źródło
Odpowiedzi:
W przypadku pytania 3 w tym artykule stwierdzono, że usługi RESTful są odpowiednie w następujących scenariuszach:
Chociaż SOAP jest najlepszym rozwiązaniem, gdy:
źródło
P1) Oto kilka rzeczy do przeczytania lub więcej w Google:
Główne różnice między usługami sieciowymi SOAP i RESTful w java http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest
To od Ciebie zależy, czego chcesz się najpierw nauczyć. Polecam przyjrzeć się frameworkowi CXF . Możesz zbudować zarówno usługi odpoczynku / mydła.
Q2) Oto kilka dobrych samouczków dotyczących mydła (dodałem je do zakładek):
http://united-coders.com/phillip-steffensen/developing-a-simple-soap-webservice-using-spring-301-and-apache-cxf-226
http://www.benmccann.com/blog/web-services-tutorial-with-apache-cxf/
http://www.mastertheboss.com/web-interfaces/337-apache-cxf-interceptors.html
Najlepszym sposobem na naukę jest nie tylko czytanie samouczków. Ale najpierw przejrzałbyś samouczki, aby uzyskać podstawowy pomysł, abyś mógł zobaczyć, że jesteś w stanie coś wyprodukować (lub nie), a to by cię zmotywowało.
WIĘC to świetny sposób na naukę określonej technologii (lub więcej), ludzie zadają wiele dziwnych pytań, a odpowiedzi są coraz dziwniejsze. Ale ogólnie dowiesz się o sposobach rozwiązywania problemów w inny sposób. Może nie wiedziałeś o tym, może nie mogłeś o tym pomyśleć sam.
Zapisz się do kilku interesujących Cię tagów i bądź wytrwały, zadawaj dobre pytania i staraj się udzielać dobrych odpowiedzi, a gwarantuję Ci, że nauczysz się tego w miarę upływu czasu (jeśli jesteś wytrwały).
Q3) Będziesz musiał sam odpowiedzieć na to pytanie. Najpierw decydując, co zbudujesz, w końcu będziesz musiał pomyśleć o jakimś mini projekcie lub czymś takim i zabrać go stamtąd.
Jeśli zdecydujesz się użyć CXF jako struktury do tworzenia usług REST / SOAP, polecam zajrzeć do tej książki
Apache CXF Web Service Development
. Jest fantastyczny, nie jest trudny do odczytania i też nie za duży (wygrana wygrana).źródło
SOAP WS obsługuje zarówno zdalne wywoływanie procedur (tj. RPC), jak i style integracji oprogramowania pośredniego zorientowanego na komunikaty (MOM). Restful Web Service obsługuje tylko styl integracji RPC.
SOAP WS jest niezależny od protokołu transportowego. Obsługuje wiele protokołów, takich jak HTTP (S), Messaging, TCP, UDP SMTP itp. REST jest specyficzny dla protokołu transportowego. Obsługuje tylko protokoły HTTP lub HTTPS.
SOAP WS dopuszcza tylko format danych XML. Ty definiujesz operacje, które tunelują przez POST. Nacisk kładziony jest na dostęp do nazwanych operacji i ujawnianie logiki aplikacji jako usługi. REST zezwala na wiele formatów danych, takich jak XML, dane JSON, tekst, HTML itp. Można użyć dowolnej przeglądarki, ponieważ podejście REST wykorzystuje standardowe operacje GET, PUT, POST i DELETE w sieci Web. Nacisk kładziony jest na dostęp do nazwanych zasobów i ujawnianie danych jako usługi. REST obsługuje AJAX. Może używać obiektu XMLHttpRequest. Dobre dla bezstanowych operacji CRUD (tworzenie, odczytywanie, aktualizowanie i usuwanie). GET - Represent () POST - acceptRepresention () PUT - storeRepresention () DELETE - removeRepresention ()
Odczytów opartych na protokole SOAP nie można buforować. Odczyty oparte na REST mogą być buforowane. Działa i lepiej się skaluje. SOAP WS obsługuje zarówno zabezpieczenia SSL, jak i WS-security, które dodają pewne funkcje bezpieczeństwa przedsiębiorstwa, takie jak utrzymanie bezpieczeństwa do momentu, w którym jest to potrzebne, utrzymywanie tożsamości przez pośredników, a nie tylko wskazywanie tylko SSL, zabezpieczanie różnych części wiadomości za pomocą różne algorytmy zabezpieczeń itp. REST obsługuje tylko zabezpieczenia SSL typu punkt-punkt. SSL szyfruje całą wiadomość, niezależnie od tego, czy jest wrażliwa, czy nie. SOAP zapewnia wszechstronne wsparcie zarówno dla zarządzania transakcjami opartego na ACID dla transakcji krótkotrwałych, jak i zarządzania transakcjami opartego na wynagrodzeniach dla transakcji długotrwałych. Obsługuje również zatwierdzanie dwufazowe w rozproszonych zasobach. REST obsługuje transakcje,
SOAP ma wbudowaną logikę powodzenia lub ponawiania i zapewnia niezawodność od końca do końca nawet za pośrednictwem pośredników SOAP. REST nie ma standardowego systemu obsługi wiadomości i oczekuje, że klienci wywołujący usługę będą radzić sobie z awariami komunikacji, ponawiając próbę.
źródło http://java-success.blogspot.in/2012/02/java-web-services-interview-questions.html
źródło
Jeśli Twoja aplikacja często korzysta z protokołu http, to REST jest najlepszy ze względu na niewielką wagę i świadomość, że Twoja aplikacja używa tylko protokołu http, wybór SOAP nie jest tak dobry, ponieważ jest ciężki, Lepiej podjąć decyzję o wyborze usługi internetowej na podstawie używanych przez nas protokołów w naszych aplikacjach.
źródło