Simple Steps: szkolenia Java, UML i BPMN
"przypomina nieco Sapkowskiego‚ nieco Tolkiena‚ a najbardziej chyba Grę o tron" - szczere-recenzje.pl, "Lektura tej książki wciągnęła mnie bez reszty. Z niecierpliwością czekam na więcej" - Maria Górska, "jeżeli macie ochotę na dobre‚ mocne high fantasy - nie macie wyboru‚ musicie sięgnąć po Wojny Żywiołów" - biblioteczka..., "genialna‚ wciągająca i intrygująca" - Ewelina Kiełbasińska, "Gorąco polecam!" - Addicted to books, "fabuła brzmi po prostu świetnie!" - kasiek-mysli.blogspot.com, "Jest to pozycja obowiązkowa dla każdego fana fantastyki" - moje-ukochane-czytadelka.blogspot.com, "Miałam wrażenie‚ że z każdą kolejną stroną roztacza się przede mną zupełnie inny świat" - biblioteczkaciekawychksiazek, "Zdecydowanie polecam‚ bo jest to kawał dobrze napisanego polskiego high fantasy!" - biblioteczkaciekawychksiazek, "mogę polecić wszystkim fanom tego gatunku" - zapiski-okularnicy.pl, "wciągnie nie tylko fanów fantastyki‚ ale i każdego czytelnika" - subiektywinie.blogspot.com, "Nie spodziewałam się‚ że aż tak mnie wciągnie." - zapiski-okularnicy.pl, "Jest to powieść zdecydowanie warta uwagi." - in-corner-with-book.blogspot.com, "nie mogę się już doczekać‚ kiedy dorwę tom drugi" - biblioteczkaciekawychksiazek.blogspot.com, "Poleciłabym zdecydowanie osobom gustującym w fantastyce" - marzenieliterackie.blogspot.com, "zachwyca także złożoność i różnorodność wątków" - szczere-recenzje.pl, "Nie mogę się doczekać kiedy znów przeniosę się do tego świata" - moje-ukochane-czytadelka.blogspot.com, "Najchętniej od razu sięgnęłabym po kolejną część." - zapiski-okularnicy.pl, "nie spodziewałam się tego po fantasy" - Ewelina Kiełbasińska, "książkę gorąco wam polecam!" - kasiek-mysli.blogspot.com, "autor cały czas utrzymywał mnie w napięciu i ciekawości" - moje-ukochane-czytadelka.blogspot.com, "książkę mogę z czystym sumieniem polecić wszystkim fanom gatunku" - Globster na lubimyczytac.pl, "to książka‚ która pobudziła moją wyobraźnię i ciekawość." - zapiski-okularnicy.pl, "Nie ma tu miejsca na nudę" - in-corner-with-book.blogspot.com

Szkolenia Java, UML i BPMN: Web Services w Java


Web Services w Java

Web Services w Java

Kod szkolenia: JAVA-WS

Adresaci szkolenia

Szkolenie kierowane jest do programistów Java warstwy biznesowej i integracji, którzy chcą nauczyć się tworzyć Web Service w standardach JEE. Tak w przypadku systemów homogenicznych jak i heterogenicznych.

Cele szkolenia

Celem szkolenia jest nabycie umiejętności wytwarzania Web Service w Java. Tak na wysokim poziomie jak i za pomocą API niskopoziomowych - często niezbędnych w przypadku integracji z gotowymi usługami Web Service wytworzonymi poza standardami Java.
Na szkoleniu poznajemy zarówno sposoby automatycznego określania kontraktów WSDL, jak i dokładnie ćwiczymy tworzenie WSDL od podstaw w celu umożliwienia pracy zespołów systemów heterogenicznych (podejście contract first).
Także ze względu na potencjalne problemy integracyjne przedstawiane są dokładnie standardy tak samych Web Service (SOAP, WSDL), jak i standardy wyższego rzędu regulujące użycie technologii pobocznych WS-* (WSIT).
Uczestnicy uczą się także posługiwania tzw. RESTful Web Services w oparciu o JAX-RS (od JEE6) aby łatwo wystawiać usługi, czy integrować się z AJAX.

Czas trwania szkolenia

5 dni, po 8 godzin. Łącznie 40 godzin(y) szkolenia.

Oczekiwane przygotowanie słuchaczy przed szkoleniem

Od uczestników wymaga się umiejętności programowania w języku Java.

Polecane szkolenia uzupełniające

Szkolenie poprzedzające - Programowanie w Java (JAVA-PRO).
W naszej ofercie znajdują się również szkolenia uzupełniające w zakresie JEE: JAVA-WYD, JAVA-EJB, JAVA-JSF, JAVA-JPA, JAVA-JEE.
A także szkolenia na wyższych poziomach: projektowanie (JAVA-WZO) i architektura (JAVA-ARCH)

Program szkolenia

  1. Wprowadzenie do Web Service
    • Czym jest Web Service?
    • Architektura SEO
      1. Klient
      2. Server
      3. Repozytorium usług
    • Zalety i wady Web Service
    • Podstawowe standardy Web Service
      1. WSDL
      2. SOAP
      3. REST
    • Standardy Java dotyczące Web Service
      1. JAX-WS następca JAX-RPC
      2. JAX-B
      3. JAX-P
      4. SAAJ
      5. JAX-R
      6. JAX-RS
  2. Szybkie tworzenie Web Service
    • JAX-WS jako następca JAX-RPC
    • Podstawy tworzenia usług w JAX-WS
      1. SEI - service endopint interface
      2. @WebService
      3. @WebMethod
      4. @OneWay metody jednokierunkowe
    • Deployment usług JAX-WS
      1. Standalone (Endpoint)
      2. Jako Servlet
      3. Jako EJB
    • Automatycznie wygenerowany WSDL
    • Podgląd komunikatów WS (soapUI)
    • Klient JAX-WS
      1. Generowanie klas na podstawie WSDL (wsimport)
        1. Klasa typu Service (@WebServiceClient)
        2. Metoda typu getPort (@WebEndpoint)
      2. Wywołanie usługi WS
  3. Kontrola mapowania klas na XML
    • Czym jest Marshalling i unmarshalling (JAX-B)
    • JAX-B a JAX-WS
    • Wprowadzenie do XML
      1. Język znaczników
      2. Prolog
      3. Elementy (znaczniki)
      4. Atrybuty
      5. Przestrzenie nazw xmlns
      6. Encje
        1. Predefinowane
        2. Własne definicje !ENTITY
    • Kontrola mapowania przez adnotacje
      1. @XmlRootElement
        1. @XmlElement
        2. @XmlAttribute
      2. Dostrajanie mapowania
        1. Dla klasy
          1. @XmlType
          2. @XmlAccessorOrder
          3. @XmlAccessorType i XmlAccessType
        2. Określania typów danych
          1. @XmlTransient
          2. @XmlID, @XmlIDREF
          3. @XmlSchemaType
          4. @XmlJavaTypeAdapter
          5. @XmlList
    • API transformacji w JAX-B
      1. JAXBContext
      2. SchemaFactory
        1. Generowanie XML Schema (schemagen)
      3. Unmarshaller
      4. Marshaller
      5. @XmlRegistry i ObjectFactory
        1. Automatyczne tworzenie ObjectFactory (xjc)
        2. @XmlElementDecl
          1. QName, Name
          2. JAXBElement
      6. Walidacja modelu i ValidationEventHandler
    • Standard XML Schema
      1. Czym jest XML Schema Definition (XSD)
      2. XSD a DTD
      3. Nagłówek schemy XSD
        1. Namespace XSD
        2. Namespace dokumentu docelowego (targetNamespace)
        3. Namespace dokumentu bieżącego
        4. Namespace domyślne (elementFormDefault)
      4. Typy proste
        1. Elementy
          1. Definicja (element)
          2. Wartości domyślne (default)
          3. Stałe (fixed)
        2. Typy proste XSD
        3. Ograniczenia na typach prostych
          1. simpleType
          2. restriction
            1. minExclusive, maxExclusive
            2. minInclusive, maxInclusive
            3. totalDigits, fractionDigits
            4. minLength, maxLength, length
            5. enumeration
            6. pattern
            7. whiteSpace
      5. Typy złożone
        1. Elementy z pod-elementami
          1. complexType
          2. Typy nazwane a wewnętrzne anonimowe
          3. Pod-elementy mieszane z tekstem (mixed)
          4. Uporządkowanie pod-elementów
            1. sequence
            2. choice
            3. all
          5. Ilość pod-elementów (min/maxOccurs)
          6. Definicja inline a referencja
        2. Elementy z atrybutami (attribute)
          1. Tylko atrybuty
          2. Atrybuty i pod-elementy
        3. Elementy z tekstem i atrybutami
          1. complexType + simpleContent + extension
      6. Przegląd elementów zaawansowanych
        1. Dziedziczenie w XSD
          1. complexType + complexContent + extension
        2. Grupy
          1. Grupy elementów (group)
          2. Grupy atrybutów (attributeGroup)
        3. Otwarta schema
          1. any
          2. anyAttribute
      7. Użycie XSD
        1. Nagłówek dokumentu zgodnego z XSD
          1. Namespace dokumentu bieżącego
          2. Namespace instancji XSD
          3. Odwołanie do schemy (schemaLocation)
        2. Narzędzia XML a walidacja ze schemą
    • Kontrola mapowania przez XML Schema
      1. Mapowanie za pomocą XML Schema
        1. Typy złożone/Klasy
        2. Elementy proste i atrybuty/Atrybuty klasy
        3. Elementy wielokrotne/Kolekcje
        4. Typy XSD a typy Java
        5. Typy złożone a elementy złożone w XSD
      2. Generowanie klas na podstawie XSD (xjc)
      3. Zaawansowane mapowanie
        1. annotation i appInfo
        2. Znaczniki JAX-B
          1. globalBindings
            1. javaType
          2. schemaBindings
            1. package
              1. javadoc
            2. nameXmlTransform
              1. typeName
              2. elementName
              3. modelGroupName
              4. anonymousTypeName
          3. Bindowanie na poziomie własności
            1. property
              1. javadoc
              2. baseType
                1. javaType
          4. Bindowanie enumeracji
            1. typesafeEnumClass
              1. javadoc
              2. typesafeEnumMember
                1. javadoc
      4. Wyciągnięcie znaczników JAX-B ze Schemy
        1. Pliki bindings
        2. Podstawy XPath
          1. Wyszukiwanie elementów
          2. Odwołania do atrybutów
          3. Odwołania do otoczenia (axes)
          4. Konstrukcje XPath
            1. Operatory
            2. Funkcje
  4. Samodzielne tworzenie komunikatów Web Service
    • Po co tworzyć komunikaty samodzielnie?
    • Podstawy API XML (JAX-P)
      1. Transformacje XSLT (TrAX)
        1. Czym są transformaty XSLT?
          1. Idea
          2. Przykłady
        2. API transformacji (TrAX)
          1. Transformer, TransformerFactory
          2. Source, Result
      2. Drzewa DOM
        1. Podstawy struktury drzewa DOM
          1. Dokument i pochodne
            1. Document
            2. DocumentFragment
            3. DocumentType
          2. Węzeł i pochodne
            1. Node
            2. NamedNodeMap
            3. NodeList
          3. Rodzaje węzłów
            1. Element
            2. Attr
            3. CharacterData
              1. Text
              2. Comment
              3. CDATASection
        2. Odczyt XML do drzewa DOM
          1. DocumentBuilderFactory
          2. DocumentBuilder
        3. Operacje na drzewie DOM
          1. Tworzenie elementów
          2. Podpinanie elementów
          3. Usuwanie elementów
        4. Zapis drzewa DOM do XML
          1. W oparciu o API transformacji
          2. DOMSource
          3. StreamResult
          4. TransformerFactory, Transformer (TrAX)
      3. Strumienie zdarzeń SAX
        1. ContentHandler
          1. Attributes
          2. Locator
          3. DefaultHandler
        2. XMLReader
          1. XMLReaderFactory
          2. Predefiniowane features
      4. Zdarzenia na żądanie STAX
        1. Cursor API - odczyt
          1. XMLStreamReader
          2. XMLInputFactory.createXMLStreamReader
        2. Cursor API - zapis
          1. XMLStreamWriter
          2. XMLOutputFactory.createXMLStreamWriter
        3. Iterator API - odczyt
          1. XMLEventReader
          2. Hierarchia XMLEvent
          3. XMLInputFactory.createXMLEventReader
        4. Iterator API - zapis
          1. XMLEventWriter
          2. XMLEventFactory
          3. XMLOutputFactory.createXMLEventWriter
    • Format wiadomości SOAP
      1. Envelope
      2. Header
        1. mustUnderstand
        2. role
        3. relay
        4. encodingStyle
      3. Body
        1. encodingStyle
        2. Opis błędu (fault)
          1. code
            1. value
            2. subcode (value, subcode)
          2. reason
          3. detail
          4. node
          5. role
        3. Kody błędów
          1. Sender
          2. Receiver
          3. MustUnderstand
          4. VersionMismatch
          5. DataEncodingUnknown
      4. Załączniki w SOAP
    • SAAJ - wsparcie tworzenia SOAP
      1. SOAP with Attachement API for Java
      2. API SAAJ
        1. SAAJ jako nakładka na DOM
          1. Node
          2. SOAPElement
        2. SOAPMessage
          1. SOAPPart
            1. SOAPEnvelope
            2. SOAPHeader
            3. SOAPHeaderElement
            4. SOAPBody
            5. SOAPBodyElement
          2. AttachementPart
        3. MessageFactory
          1. SOAPConstants
          2. Tworzenie wiadomości SOAP
          3. Wysłanie wiadomości z API SAAJ
            1. SOAPConnection
            2. SOAPConnectionFactory
          4. Odczyt wiadomości SOAP
        4. Obsługa załączników
      3. SAAJ z JAX-P
      4. SAAJ z JAX-B
  5. Niskopoziomowa komunikacja z JAX-WS
    • Po co komunikacja niskopoziomowa?
    • Niskopoziomowy serwer JAX-WS
      1. @WebServiceProvider
      2. Wspierane protokoły (@Binding)
        1. HTTPBinding (XML po HTTP)
        2. SOAPBinding (SOAP 1.1, SOAP 1.2)
      3. @ServiceMode
        1. Service.Mode.MESSAGE
        2. Service.Mode.PAYLOAD
      4. Interfejs Provider<T>
        1. Provider<SOAPMessage> (SAAJ API)
        2. Provider<Source> (TrAX API)
        3. Provider<DataSource> (Activation API)
      5. Ograniczenia możliwych konfiguracji
    • Niskopoziomowy klient JAX-WS
      1. Service
      2. Dispatch
      3. Komunikacja synchroniczna
      4. Komunikacja asynchroniczna
        1. Jednokierunkowa
        2. Z odbiorem wyniku (Response)
          1. Bazując na Future (odpytanie)
          2. Poprzez handlera (notyfikacja)
    • Komunikacja niskopoziomowa a WSDL
  6. Definiowanie kontraktów WSDL
    • Web Service Description Language - po co?
    • Podejście contract first
    • Czemu WSDL 1.1 a nie 2.0?
    • Struktura WSDL 1.1
      1. definitions (root)
      2. documentation
      3. types
      4. message
        1. part
          1. Atrybut type a element
      5. portType
        1. operation
          1. input
          2. output
          3. fault
        2. 4 typy komunikacji
          1. One-Way
          2. Notification
          3. Request-Response
          4. Solicit-Response
      6. binding
        1. Odzwierciedlenie zawartości portType
        2. Rozszerzenia SAOP
          1. soap:binding
          2. soap:operation
          3. soap:body
          4. soap:header
          5. soap:headerfault
          6. soap:fault
        3. Rozszerzenia HTTP
          1. http:binding
          2. http:operation
          3. http:urlEncoded
          4. http:urlReplacement
        4. Rozszerzenia MIME
          1. mime:content
          2. mime:multipartRelated
          3. mime:mimeXml
      7. service
        1. port
        2. soap:address
        3. http:address
    • Contract first a JAX-WS - tworzenie usługi
      1. Generacja klas na podstawie WSDL (wsimport)
      2. Implementacja SEI
      3. Poprawna konfiguracja @WebService dla SEI
    • Adnotacje JAX-WS sterowania treścią WSDL
      1. @WebService
      2. @WebMethod
      3. @WebFault
      4. @WebResult
      5. @WebParam
      6. @RequestWrapper, @ResponseWrapper
      7. @BindingType
      8. @SOAPBinding
    • Zewnętrzne sterowanie mapowaniem - bindings
      1. Po co?
      2. Jak? - a'la JAX-B
  7. Pozostałe elementy JAX-WS
    • Wstrzykiwanie zależności
      1. @WebServiceRef
      2. @Resource
        1. WebServiceContext
        2. Inne zasoby zarządzane
      3. @EJB
      4. @PersistanceUnit, @PersistanceContext
    • Metody cyklu życia komponentu JAX-WS
      1. @PostConstruct
      2. @PreDestroy
    • Obsługa wyjątków
      1. WebServiceException
      2. ProtocolException
        1. SOAPFaultException
        2. HTTPException
      3. @WebFault
    • Handlery
      1. Handler
        1. Logiczne - LogicalHandler
        2. Protokołowe - SOAPHandler
      2. MessageContext
        1. Zakresy HANDLER i APPLICATION
        2. Predefiniowane własności
        3. LogicalMessageContext
        4. SOAPMessageContext
      3. BindingProvider
      4. Podpinanie handlerów do usług
        1. @HandlerChain i XML
        2. HandlerResolver i jego podpięcie
        3. Pliki konfuguracyjne
    • Podsumowanie modeli komunikacji JAX-WS
      1. Wysokopoziomowa (@WebService)
        1. Statyczna (stuby wsimport)
        2. Dynamiczna (Service i QName)
        3. Synchroniczna
        4. Asynchroniczna (@OneWay)
      2. Niskopoziomowa (@WebServiceProvider)
        1. Dostęp do komunikatu (@ServiceMode)
          1. Przez wiadomość (MESSAGE)
          2. Przez ciało (PAYLOAD)
        2. Komunikacja z klientem (Dispatch)
          1. Synchroniczna (invoke)
          2. Asynchroniczna (invokeAsync, invokeOneWay)
  8. Zaawansowane aspekty JAX-WS
    • Stanowe WS
      1. Sesja Servletów
      2. Rozwiązania product speficif
        1. JAX-WS Commons i @HttpSessionScope
        2. Glassfish i @Statefull (EJB)
    • Szyny danych - ESB
    • Przegląd technologii WS-*
    • WS-* a serwery WS
    • Standard WSIT
      1. Metadane
        1. WS-MetadataExchange
        2. WS-Transfer
        3. WS-Policy
      2. Bezpieczeństwo
        1. WS-Security
        2. WS-SecurityPolicy
        3. WS-SecureConversation
        4. WS-Trust
      3. Wiadomości
        1. WS-ReliableMessaging
        2. WS-RMPolicy
      4. Transakcje
        1. WS-Coordination
        2. WS-AtomicTransaction
    • WS-* a WSDL
      1. Problemy protokołu na poziomie nagłówków
      2. Opis nagłówków w WSDL (WS-Policy)
        1. wsp:Policy
        2. wsp:All
        3. wsp:ExactlyOne
        4. wsp:PolicyReference
    • Features - wsparcie JAX-WS dla WS-*
      1. Predefiniowane Features
        1. Podpięcie w środowisku zarządzanym
          1. @MTOM
          2. @RespectBinding
          3. @Addressing
            1. @Action
            2. @FaultAction
        2. Podpięcie w API
          1. Klasa bazowa WebServiceFeature
          2. Metody podpięcia
            1. Service.create
            2. Service.createDispatch
            3. Service.getPort
            4. getPort stabu wsimpot
          3. Predefiniowane klasy Feature
            1. MTOMFeature
            2. RespectBindingFeature
            3. AddressingFeature
      2. Tworzenie własnych Features
        1. Klasa bazowa WebServiceFeature
        2. Adnotacja bazowa @WebServiceFeatureAnnotation
    • Bezpieczeństwo WS
      1. Bezpieczeństwo na poziomie servletu
      2. Bezpieczeństwo na poziomie EJB
      3. Bezpieczeństwo WS-*
        1. WS-Security
        2. WS-SecurityPolicy
        3. WS-SecureConversation
        4. WS-Trust
    • Transakcje długoterminowe
      1. WS-Transaction
      2. Atomic Transaction (AT)
      3. Business Activity (BA)
    • Przegląd biblioteki Camel
  9. Przegląd rejestrów usług Web Service
    • UDDI
    • eb-XML
    • Ujednolicone API - JAX-R
  10. RESTful Web Services
    • Idea RESTful WS
    • Protokół HTTP
      1. Struktura HTTP
        1. Metoda, Adres, Wersja
        2. Nagłówki
        3. Ciało
      2. Metody HTTP
        1. GET
        2. POST
        3. PUT
        4. DELETE
        5. HEAD
        6. OPTIONS
        7. TRACE
        8. CONNECT
    • Zastosowanie REST - mapowanie metod HTTP na logikę
    • Standard JAX-RS (od JEE6)
      1. Mapowanie żądań
        1. @Path
        2. @GET, @POST, @PUT, @DELETE, @HEAD
      2. Parametry żądań
        1. @PathParam i mapowanie z regex
        2. @QueryParam
        3. @FormParam
        4. @MatrixParam
        5. @HeaderParam
        6. @CookieParam
        7. @DefaultValue
        8. @Context
      3. Konsumpcja i produkcja
        1. @Consumes
        2. @Produces
        3. Integracja z AJAX (JSON)
        4. Integracja z JAX-B (XML)
      4. Wybrane API JAX-RS
        1. Klasa Response - dodawanie nagłówków HTTP
        2. WebApplicationException
        3. @Context - zasoby wstrzykiwalne
          1. HttpHeaders
          2. SecurityContext
          3. Providers
          4. Request
          5. UriInfo
        4. UriBuilder

simple-steps.pl, simplesteps.pl są własnością SIMPLE Podbielski Michał