Powrót do katalogu
Terminy szkolenia otwartego:
  • Potwierdzone
  • Planowane
  • Sugerowane
2017-11-06 3 500 / 5 dni Zgłoś chęć udziału
2017-11-27 3 500 / 5 dni Zgłoś chęć udziału
Pobierz program
Nie znalazłeś pasującego terminu?
Zaproponuj własny termin. Postaramy się uruchomić nowy specjalnie dla Ciebie.
Szukasz programu "skrojonego na miarę"?
Zapytaj o szkolenie dedykowane lub napisz nam o swoich preferencjach.
Chcesz się uczyć w trybie weekendowym?

Czekamy na kontakt od Ciebie.

Inżynieria oprogramowania > Języki programowania > Web Services

Szkolenie: Tworzenie usług sieciowych SOAP oraz REST na platformie Java - kompleksowe (JAX-WS i JAX-RS)
[J-WS-REST]

Wprowadzenie

Usługi sieciowe (webservices) są obecnie jedną z najbardziej popularnych technologii służących integracji aplikacji w architekturze heterogenicznej i rozproszonej. Oparte o pierwotną ideę „witryn internetowych” czytelnych dla innych aplikacji (a niekoniecznie dla ludzi, jak zwykłe WWW), wsparte dojrzałymi już standardami (XML, SOAP, WSDL, UDDI), są obecnie używane jako protokół przesyłania dokumentów, jedna z możliwości zdalnego wywoływania procedur (RPC) czy jeden ze sposobów integracji różnych aplikacji i modułów, szczególnie w przypadku zróżnicowania technologii (np. języka programowania) między nimi. Przy wszystkich swoich zaletach, spośród których na pierwszym miejscu wymienić należy „interoperacyjność” (interoperability), usługi sieciowe nie są wolne od wad, wśród których wymienia się przede wszystkim negatywny wpływ na wydajność.

Jako jedna z odpowiedzi na wady klasycznych usług sieciowych powstała technologia „lekkich” usług sieciowych w stylu REST, opartych bezpośrednio o protokół HTTP. REST jest powszechnie używany do wiązania strony klienckiej ze stroną serwera w aplikacjach webowych opartych o JavaScript oraz w aplikacjach mobilnych, ale można go także spotkać w aplikacjach typu „desktop” i przy integracji komponentów w rozbudowanych systemach. Wiele popularnych usług dzisiejszego internetu jest dostępnych dla aplikacji poprzez tzw. „REST API”.

Platforma Java posiada jedną z lepszych realizacji usług sieciowych, zarówno opartych o SOAP, jak i w stylu REST. Odpowiednie interfejsy programistyczne są dostępne już w standardowej edycji Javy, a ich implementacje, pozwalające na uruchamianie usług, dostępne są na wszystkich popularnych serwerach aplikacji. Obecne wersje interfejsów pozwalają na programowanie na wysokim poziomie abstrakcji, w oparciu o adnotacje, jak również, w razie potrzeby, na dostęp do niskopoziomowych szczegółów komunikacji.

Cel szkolenia

Szkolenie koncentruje się przede wszystkim na programowaniu w Javie usług sieciowych i aplikacji korzystających z tych usług z wykorzystaniem interfejsów programistycznych SAAJ, JAX­WS i JAX­RS. Pomocniczo pojawiają się elementy obsługi XML w Javie, z największym naciskiem na technologię JAXB. Szkolenie przedstawia także niezależne od platformy idee i standardy usług sieciowych, z największym naciskiem na SOAP i WSDL oraz ideę usług w stylu REST.

Po zakończeniu szkolenia aktywny uczestnik potrafi:

  • stworzyć klienta usługi sieciowej w technologii SAAJ oraz prosty serwer usługi sieciowej w technologii SAAJ i
  • serwletu,
  • stworzyć serwer usługi sieciowej w technologii JAX­WS metodami top­down oraz bottom­up,
  • stworzyć klienta usługi sieciowej w technologii JAX­WS,
  • stworzyć serwer usługi w stylu REST w technologii JAX­RS oraz klienta tej usługi,
  • dostosować aplikacje JAX­WS i JAX­RS za pomocą adnotacji oraz niskopoziomowych aspektów technologii,
  • w tym dokonać podstawowych konfiguracji bezpieczeństwa,
  • wskazać standardy usług sieciowych oraz ich rolę; czytać i tworzyć definicje WSDL.

Domyślnie w czasie szkolenia uczestnicy korzystają z platformy JBoss (+ JBossWS + RestEasy) i środowiska programistycznego Eclipse. Na życzenie zorganizowanej grupy szkolenie możemy przeprowadzić na innej platformie: Glassfish + Metro + Jersey, Tomcat+Axis 2 / CXF, ewentualnie prosimy pytać o inne.

Szkolenie nie obejmuje m.in. następujących tematów:

  • szczegóły interfejsów programistycznych do obsługi XML w Javie (zob. kurs J­XML;
  • w przypadku chęci uczestnictwa w obu kursach zalecaną kolejnością jest najpierw J­XML, następnie J­WS),
  • projektowanie i realizacja architektur opartych o usługi sieciowe (zob. kurs PA‐SOA),
  • integracja usług sieciowych i innych komponentów za pomocą ESB (zob. kurs PA‐SOA‐ESB),
  • budowanie usług sieciowych w technologii Spring.

Adresaci szkolenia

Adresatami szkolenia są programiści Java, pragnący posiąść umiejętności tworzenia usług sieciowych REST na platformie Java.

Wymagania wstępne

  • umiejętność programowania w Javie (kurs J-PD).

Dodatkowa wiedza i umiejętności, które pozwolą lepiej zrozumieć niektóre elementy szkolenia i spojrzeć na zagadnienia w szerszej perspektywie:

  • protokół HTTP,
  • AJAX,
  • formaty XML i JSON,
  • obsługa XML w Javie (DOM, JAXB, SAX, StAX) (kurs J-XML),
  • klasyczne usługi sieciowe (SOAP, WSDL) (kurs J-WS),
  • serwlety i inne technologie Java EE (J-EE).

Czas i forma szkolenia

35 godzin (5 dni x 7 godzin), w tym wykłady i warsztaty praktyczne.

Plan szkolenia

  1. Wprowadzenie do usług sieciowych
    1. motywacja, główne idee, teoria i praktyka,
    2. podstawy XML,
    3. szybki start – proste usługi w różnych technologiach.
  2. Podstawy przetwarzania XML w Javie
    1. DOM,
    2. przekształcenia (Transformer) i walidacja (Schema, Validator),
    3. przetwarzanie strumieniowe (SAX i StAX).
  3. Protokół SOAP
    1. struktura komunikatu,
    2. sposób przesyłania danych, metadanych, informacji o błędzie i danych binarnych,
    3. wykorzystanie narzędzia SOAP UI do testowania komunikacji SOAP.
  4. Przetwarzanie komunikatów SOAP – SAAJ
    1. struktura komunikatu w SAAJ, wykorzystanie interfejsu DOM,
    2. tworzenie, wysyłanie i odbieranie komunikatów,
    3. załączniki binarne,
    4. stworzenie klienta w technologii SAAJ oraz serwera w technologii SAAJ+serwlet.
  5. Język opisu usług sieciowych WSDL
    1. podstawy XML Schema i jego rola w WSDL,
    2. struktura komunikatów w stylach RPC, Document oraz „Document­Wrapped”,
    3. wiązanie z protokołem SOAP,
    4. stworzenie opisu własnej usługi sieciowej.
  6. JAXB – mapowanie między XML a obiektami Javy
    1. scenariusz Java → XML Schema; dostosowywanie mapowania za pomocą adnotacji,
    2. scenariusz XML Schema → Java; dostosowywanie mapowania za pomocą adnotacji w schemacie lub osobnym pliku XML,
    3. wykorzystanie klas narzędziowych JAXB.
  7. Usługi sieciowe w Javie – JAX­WS
    1. wysokopoziomowe tworzenie usług sieciowych zgodnie ze scenariuszem
    2. Java → WSDL (bottom­up) oraz WSDL → Java (top­down),
    3. adnotacje JAX­WS i dostosowywanie usług,
    4. wysokopoziomowy klient usługi sieciowej (JAX­WS)
    5. niskopoziomowe aspekty JAX­WS: handler­y,implementacja usługi jako provider­a, implementacja klienta jako dispatcher­a, wywołania asynchroniczne,
    6. stworzenie własnej usługi sieciowej oraz jej klienta.
  8. 8. UDDI i JAXR – krótkie omówienie.
  9. Podsumowanie i przegląd dodatkowych standardów usług sieciowych
    1. WS­Interoperability Basic Profile,
    2. WS­Addressing,
    3. WS­Security,
    4. WS­Policy.
  10. Konfiguracja bezpieczeństwa usług JAX­WS
    1. możliwości zabezpieczania usług sieciowych,
    2. zabezpieczenia na poziomie logiki aplikacji,
    3. podstawowa konfiguracja zabezpieczeń WS­Security (zależne od platformy).
  11. Usługi sieciowe w stylu REST
    1. motywacja, idea i praktyka,
    2. znaczenie protokołu HTTP, metody HTTP,
    3. rola i zalecana struktura URL,
    4. WADL (podstawy),
    5. porównanie z usługami opartymi o SOAP.
  12. Usługi REST w Javie – JAX­RS
    1. struktura aplikacji JAX­RS,
    2. adnotacje, wyrażenia ścieżkowe,
    3. przechwytywanie parametrów, nagłówków, ciasteczek,
    4. przekazywanie zapytań do podzasobów,
    5. obsługa różnych formatów kodowania danych (tekst, XML, JSON, dane binarne), negocjacja formatu,
    6. obsługa błędów, ustawianie statusu odpowiedzi, mapowanie wyjątków,
    7. dostęp do kontekstu zapytania i niskopoziomowej treści,
    8. obsługa dodatkowych formatów danych,
    9. stworzenie własnej usługi w stylu REST.
  13. Klient usługi REST
    1. standardowe podejście JAX­RS 2.0 i java.net.URL,
    2. podejście proxy (dla implementacji RestEasy z JBossa).
  14. Bezpieczeństwo i skalowalność usług REST
    1. zabezpieczenie na poziomie komunikacji,
    2. zabezpieczenie programowe,
    3. skalowalność i integracja z Java EE.

Opinie uczestników