Zaufali Nam

  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam

Kod Szkolenia: J/ARCH

Tytuł Szkolenia: Architektura systemów (Java i integracja).

Karta Szkolenia

Adresaci szkolenia:

Szkolenie adresowane jest do osób, które chciałyby zapoznać się z praktycznymi aspektami tworzenia architektury. Dla wszystkich osób, które chcą otworzyć przed sobą nowe możliwości w zakresie realizacji zadań związanych z wyższymi kompetencjami architekta. Jak również dla osób pragnących osiągnąć wyższą świadomość konsekwencji płynących z dobieranych rozwiązań, w celu podejmowania lepszych decyzji.

Szkolenie jest odpowiednie zarówno dla programistów jak i projektantów, analityków, czy już aktualnie architektów chcących usystematyzować wiedzę i wymienić doświadczenia.

Cel szkolenia:

Celem szkolenia jest zdobycie wiedzy niezbędnej do tworzenia i weryfikacji architektury oraz umiejętności rozpatrywania potencjalnych rozwiązań z punktu widzenia parametrów systemowych. Jak również poznanie języka UML, w zakresie modelowania architektury i umiejętności tworzenia modeli architektonicznych.

Szkolenie kładzie duży nacisk na osiągnięcie wysokiej świadomości konsekwencji związanych z doborem rozwiązań, technologii, wzorców i innych decyzji architektonicznych. W oparciu o tą świadomość ćwiczymy i budujemy umiejętność podejmowania i weryfikacji decyzji architektonicznych poruszając się w realiach nieklarownych wizji systemu i dużej ilości założeń architektonicznych. Rozpatrując decyzje z punktu widzenia korzyści i wad, oraz omawiając sposoby weryfikacji zarówno decyzji jak i założeń.

Szerokim tematem szkolenia są również wzorce oraz modelowanie w UML, gdzie poznanie języka UML jest tylko środkiem, a jako cel wyznaczone jest nabycie umiejętności tworzenia modeli architektonicznych bazując na wymaganiach kineta.

Wymagania:

Szkolenie wprowadza do zagadnień architektury od podstaw. Zarówno w tematyce samej architektury, wzorców, technologii, jak i UML. W związku z tym szkolenie nie posiada żadnych wymagań wstępnych stawianych uczestnikom.

Parametry szkolenia:

4*7 lub 5*7 (wersja 4 i 5 dni) wykładów i warsztatów w proporcji 1/3. Proporcje warsztatów różnią się w zależności od aktualnej tematyki (wyższe przy UML, niższe przy technologiach poszczególnych warstw aplikacji).

Wielkość grupy: maks. 8-10 osób.

Polecane szkolenia poprzedzające:

Wszystko co związane z Javą, wzorcami i UML może być traktowane jako szkolenie poprzedzające. Na architekturze dotykamy mnóstwa tematów na wysokim poziomie abstrakcji (konsekwencje dla parametrów systemowych – wady, zalety), zatem głębsza znajomość poszczególnych technologii może być pomocna, aczkolwiek nie jest wymagana.

Szczegółowy program

  1. Podstawy Architektury
    1. Czym jest architektura
      1. Architektura a projekt
      2. Cele tworzenia architektury
    2. Kim jest architekt i jaką pełni rolę
      1. Kim jest architekt - różne poziomy
        1. Technolog
        2. Strateg
        3. Polityk
      2. Co robi architekt
      3. Potrzeba istnienia architekta a skala projektu
    3. Proces architektoniczny
    4. Dokumentacja architektoniczna
    5. Zarządzanie ryzykiem
  2. Parametry systemowe
    1. Czym są parametry systemowe
    2. Jak poprawnie definiować wymagania niefunkcjonalne
    3. Parametry systemowe
      1. Wygoda użytkownika (Usability)
      2. Bezpieczeństwo (Security)
      3. Wydajność (Performance)
        1. Przepustowość (Throughput)
        2. Czas odpowiedzi (Response Time)
        3. Czas reakcji (Responsivness)
      4. Dostępność (Availability)
      5. Niezawodność (Reliability)
      6. Skalowalność (Scalability)
      7. Różne wymiary elastyczności systemu
        1. Rozszerzalność (Extensibility)
        2. Reużywalność (Reusability)
        3. Przenaszalność (Portablity)
        4. Elastyczność (Flexibility)
      8. Realizowalność (Realizability)
      9. Planowalność (Planability)
      10. Testowalność (Testability)
      11. Utrzymanie (Maintainability)
      12. Serwisowalność (Serviceability)
      13. Zarządzalność (Managebility)
    4. Wymiary systemu
      1. Wymiary związane z infrastrukturą
        1. Pojemność (Capacity)
        2. Redundantność/Replikacja (Redundancy)
        3. Modułowość (Modularity)
      2. Wpływ wymiarów na parametry systemu
      3. Inne wymiary systemu
        1. Tolerancja (Tolerance)
        2. Obciążenie (Workload)
        3. Niejednorodność/Jednorodność (Homo/Heterogenity)
    5. Priorytety parametrów systemu
      1. Skąd wynikają priorytety?
      2. Problemy priorytetowania
  3. Wzorce architektoniczne
    1. Wprowadzenie do wzorców
      1. Definicja wzorca
      2. Cechy i zalety wzorców
      3. Rodzaje wzorców
    2. Wzorce architektoniczne
      1. Problemy architektury komponentowej
      2. Wzorce podziału odpowiedzialności
        1. MVC (Model View Controll)
        2. Web-centric
        3. Application-centric
        4. Enterprise
          1. Wymagania systemów Enterprise
          2. Architektura Enterprise w JEE
        5. Architektura wielowarstwowa (Layers Pattern)
          1. Architektura wielowarstwowa w JEE
      3. Wzorce EAI (Enterprise Application Integration)
        1. SOA (Service Oriented Architecture)
        2. ESB (Enterprise Service Bus; Szyna Danych; Broker Integracyjny)
        3. MOM (Message Oriented Middleware)
      4. Wzorce infrastruktury
        1. Redundancja Ścieżek
        2. Skalowanie pionowe
        3. Skalowanie poziome (Replikacja)
        4. Równoważenie obciążenia (Load Balancing)
        5. Klastry (Clustering)
          1. HA (High Availability)
          2. Failover
        6. Forward Proxy Cache
      5. Wzorce blokowania zasobów
        1. Blokowanie optymistyczne (Optimistic Lock)
        2. Blokowanie pesymistyczne (Pessimistic Lock)
          1. Blokada domyślna (Implicit Lock)
          2. Blokowanie gruboziarniste (Coarse-Grained Lock)
      6. Inne wzorce architektoniczne
        1. Dependency Injection
        2. Dependency Inversion
        3. Stable Dependency Principle
        4. Szablon wzorców POSA
        5. Szablon wzorców PEAA
        6. Szablon wzorców Core J2ee
        7. Szablon wzorców EAI (wzorce JMS)
  4. Prototypowanie
    1. Po co prototypować
    2. Prototyp Proof of Concept
    3. Prototyp ewolucyjny
    4. Antywzorzec Lava Flow
  5. Metodyki wytwarzania oprogramowania a architektura
    1. Metodyka kaskadowa
    2. USDP (UP) – Unified Software Development Process
      1. Założenia
      2. Wymiary
      3. Fazy
        1. Rozpoczęcie (Inception)
        2. Opracowanie (Elaboration)
        3. Budowa (Construction)
        4. Wdrożenie (Transition)
    3. RUP – Rational Unified Process
    4. SynTone Architecture Metodology
    5. Metodyki Agile
      1. Extreme Programming (XP)
      2. Scrum
    6. Podejście hybrydowe
  6. Architektura warstwy klienta i prezentacji
    1. Podział klientów
      1. Klient gruby
      2. Klient Cienki
        1. RIA
    2. Przechowywanie sesji
    3. Technologie klienta grubego
      1. Swing
      2. SWT
      3. RCP
    4. Klient gruby zanurzony w kliencie cienkim
      1. Applet
      2. Java Web Start
      3. Java FX
    5. Technologie klienta cienkiego
      1. HTML Statyczny
      2. HTML Dynamiczny
        1. Servlety + JSP + JSTL
        2. Portlety
        3. JSF (Java Server Faces)
        4. Ajax
          1. Java Script
          2. Prototype
          3. Ajax4JSF
          4. RichFaces
          5. GWT
        5. Wsparcie JavaScript
          1. JSON
          2. jQuery
  7. Architektura warstwy biznesowej
    1. Przetwarzanie rozproszone
    2. Komunikacja zdalna a lokalna
    3. Optymalizacja komunikacji sieciowej
    4. Protokoły komunikacyjne
      1. CORA i IIOP
      2. Web Services
        1. SOAP i REST
        2. WSDL
        3. Repozytoria usług: UDDI, ebXML
        4. Specyfikacje JEE
          1. JAX-P (Java API for XML Processing)
          2. SAAJ (SOAP with Attachments API for Java)
          3. JAX-B (Java API for XML Binding)
          4. JAX-R (Java API for XML Registries)
          5. JAX-WS (Java API for XML Web Services)
        5. Web Service Orchestration (wsparcie procesów biznesowych)
      3. Sockets (własny protokół)
      4. RMI (Remote Method Invocation)
      5. EJB i RMI-IIOP
        1. Serwer aplikacji
        2. Usługi serwera aplikacji
        3. Kryteria wyboru serwera
    5. Rodzaje komponentów EJB
      1. Sesyjne
        1. Statefull
        2. Stateless
        3. Singleton (od EJB3.1 – JEE6)
      2. MDB
      3. Encyjne (do EJB2.x)
    6. Porównanie implementacji i komunikacji EJB 2.x a EJB 3.x
    7. JNDI
  8. Architektura warstwy integracji i zasobów
    1. Technologie utrwalania danych
      1. Bazy relacyjne
        1. JDBC
        2. Entity EJB
        3. JDO (także bazy obiektowe i inne)
        4. JPA
      2. LDAP (bazy hierarchiczne)
      3. JCR – Java Content Repository (systemy CMS)
      4. JCA – Java Connector Architecture (systemy EIS)
      5. Wzorzec DAO
      6. Wzorzec Domain Store
    2. Komunikacja asynchroniczna
      1. JMS (Java Message Service)
        1. Topic
        2. Queue
      2. MDB EJB (Message Driven Bean)
    3. Systemy „Legacy”
    4. Screen Scrapping
  9. Wzorce projektowe a architektura (tylko wersja 5cio dniowa)
    1. Jak wzorce projektowe mogą wpływać na architekturę
    2. Wybrane wzorce Core J2EE
      1. Warstwa Prezentacji
        1. Intercepting Filter (flexibility)
        2. Context Object (maintenance, flexibility)
        3. Composite View (flexibility)
        4. Service To Worker (flexibility)
      2. Warstwa Biznesowa
        1. Business Delegate (maintenance)
        2. Service Locator (maintenance)
        3. Session Façade (performance, flexibility)
        4. Transfer Object (performance)
        5. Value List Handler (performance, scalability)
        6. Application Service (flexibility, maintenance)
        7. Business Object (flexibility, maintenance)
      3. Warstwa Integracji
        1. DAO (flexibility)
        2. Domain Store (flexibility)
    3. Wybrane wzorce GOF
      1. Factory Method (flexibility)
      2. Abstract Factory (reliability, flexibility)
      3. Builder (reliability, flexibility)
      4. Prototype (performance)
      5. Singleton (performance)
      6. Façade (performance, flexibility)
      7. Command (flexibility)
      8. Strategy (flexibility)
      9. Adapter (flexibility)
      10. Mediator (flexibility)
      11. Observer (performance, flexibility)
      12. Template Method (reliability, flexibility)
      13. Bridge (reliability, flexibility)
      14. Memento (reliability)
      15. Visitor (flexibility)
      16. Flyweight (memory performance)
      17. Chain of responsibility (flexibility)
      18. Proxy (flexibility, performance)
      19. Decorator (flexibility)
  10. Wprowadzenie do UML
    1. Czym jest modelowanie
    2. Czym jest a czym nie jest UML
    3. Rozwój UML
    4. Podstawowe elementy UML
      1. Podstawowe kwalifikatory
        1. Klasa (Class)
        2. Interfejs (Interface)
        3. Obiekt (Object)
        4. Aktor (Actor)
        5. Przypadek Użycia (Use Case)
        6. Komponent (Component)
        7. Węzeł (Node)
      2. Relacje (Relationships)
        1. Asocjacja (Association)
        2. Asocjacja (Association)
        3. Zależność (Dependency)
        4. Realizacja (Realization)
      3. Diagramy (Diagrams)
      4. Komentarze (Note)
      5. Mechanizmy rozszerzenia
        1. Stereotypy (Stereotype)
        2. Etykiety (Tagged Values)
        3. Ograniczenia (Constraints)
    5. Diagram a model UML
    6. Zastosowania UML
  11. Modelowanie architektury w UML
    1. Diagram komponentów (component diagram)
      1. Komponent (component)
      2. Komponenty zagnieżdżone
      3. Interfejs (interface)
        1. Interfejs wymagany (required interface)
        2. Interfejs dostarczany (provided interface)
      4. Złączenie (assembly)
    2. Diagram wdrożenia (deployment diagrram)
      1. Węzeł (node)
      2. Łącze (communication path)
        1. Łącze kierunkowe
        2. Liczność łącza
  12. Zaawansowane aspekty modelowania architektury w UML
    1. Zaawansowane elementy diagramu komponentów (component diagram)
      1. Porty
      2. Konektory
      3. Realizacja komponentu
    2. Zaawansowane elementy diagramu wdrożenia (deployment diagram)
      1. Instancyjne diagramy wdrożenia
      2. Niskopoziomowe diagramy wdrożenia
      3. Szablony architektoniczne
      4. Model wdrożenia na diagramach wdrożenia
        1. Po do model wdrożenia
        2. Artefakt
        3. Stereotypy artefaktów
          1. <<file>>
          2. <<document>>
          3. <<library>>
          4. <<executable>>
          5. <<script>>
          6. <<source>>
        4. Specyfikacja konfiguracji (deployment specification)
        5. Relacje między artefaktami
          1. Kompozycji (composition)
          2. Zależności (dependency)
        6. Instalacja artefaktów (deployment) <<deploy>>
        7. Manifestacja (manifestation) <<manifest>>
      5. Diagram pakietów (package diagram)
        1. Pakiet
        2. Zagnieżdżanie (nest, nesting)
        3. Przestrzeń nazw
        4. Importowanie (package import)
          1. <<import>>
          2. <<access>>
        5. Łączenie (merge)
        6. Diagramy pakietów i modelowanie warstw architektury
          1. Przecięcie warstw i poziomów
  13. Przejście z architektury do projektu
    1. Warstwy i komponenty a realizacja projektu
    2. Warstwy i komponenty a model projektowy
    3. Uwzględnienie ograniczeń architektury w projekcie
      1. Na modelu statycznym
      2. Na modelu dynamicznym
  14. Bezpieczeństwo
    1. Mechanizmy bezpieczeństwa
      1. Uwierzytelnianie (Authentication)
      2. Autoryzacja (Authorization)
      3. Kontrola dostępu (Access Control)
      4. Logowanie
      5. Audyt
      6. Szyfrowanie danych
      7. Szyfrowanie transmisji
      8. Integralność i przywracanie danych (backup)
      9. Certyfikaty
    2. Bezpieczeństwo w Javie
      1. JAAS
      2. Servlety
      3. Spring ACEGI
      4. EJB
    3. Serwery SSO (Single Sign On)
    4. Zarządzanie bezpieczeństwem
    5. Podstawowe rodzaje ataków
      1. DOS i DDOS
      2. SQL Injection
      3. Cross Site Scripting (XSS)
      4. Cross Site Request Forgery
  15. Transakcje
    1. ACID
    2. Poziomy izolacji
      1. SERIALIZABLE
      2. REPETABLE_READ
      3. READ_COMMITED
      4. READ_UNCOMMITED
    3. Efekty uboczne obniżania poziomu izolacji
      1. Fantomy (Phantoms)
      2. Niepowtarzalny odczyt (Unrepetable read)
      3. Brudny odczyt (Dirty read)
    4. Wpływ transakcji na system
    5. Transakcje rozproszone (JTA, 2PC)
    6. Transakcje kompensacyjne
      1. Na czym polega kompensacja
      2. 3PC
    7. Kontrola obsiążenia systemu transakcjami
      1. Zasięg i rozmiar transakcji
      2. Transakcje biznesowe a systemowe
      3. Unikanie transakcji
        1. Kompensacja
        2. Memento
        3. Rezygnacja z transakcji biznesowych
          1. Konflikty zapisu danych
            1. Blokowanie optymistyczne
            2. Blokowanie pesymistyczne
        4. Buforowanie danych
    8. Transakcje a EJB
      1. Container Managed Transaction
        1. Required
        2. Requires new
        3. Mandatory
        4. Supports
        5. Not supported
        6. Never
      2. Bean Managed Transaction
      3. Client Managed Transaction
    9. Transakcje długoterminowe w WebService
  16. Weryfikacja i ocena architektury
    1. Po co weryfikować?
    2. Zespół weryfikujący
    3. Techniki weryfikacji i oceny
    4. Proces weryfikacji
    5. Raport z weryfikcji