Adresaci szkolenia:

Szkolenie przeznaczone jest dla analityków biznesowych chcących zapoznać się z architekturą systemów, w celu zrozumienia stosowanych rozwiązań oraz usprawnienia komunikacji z architektami. Co pozwoli lepiej definiować wymagania niefunkcjonalne oraz wykrywać aspekty istotne dla architektury (ograniczenia, ryzyka, potencjalne rozwiązania).

Cel szkolenia:

Celem szkolenia jest nabycie wiedzy koniecznej do wykrywania zagrożeń architektonicznych, dzięki czemu analityk biznesowy już w trakcie wywiadów z klientem będzie w stanie dokonywać pierwszych założeń architektonicznych, co z kolei pozwoli na zgłębienie kluczowych aspektów. Aby to osiągnąć konieczne jest zrozumienie nie tylko rozwiązań architektonicznych, ale również celów do osiągnięcia. Jest to wiedza przydatna nie tylko podczas tworzenia nowych systemów, gdyż zrozumienie aktualnej budowy systemu i osiąganych dzięki temu parametrów systemowych ułatwi ustalanie szczegółów podczas rozwoju istniejących systemów.

Na szkoleniu duży nacisk kładziony jest na osiągnięcie wysokiej świadomości konsekwencji doboru poszczególnych rozwiązań, technologii, wzorców czy innych decyzji architektonicznych. W oparciu o nią podczas ćwiczeń budowana jest umiejętność podejmowania decyzji architektonicznych oraz ich weryfikacji w warunkach nieklarownych wizji systemu czy dużej ilości założeń. Rozpatrujemy potencjalne rozwiązania z poziomu ich konsekwencji (wady i zalety) dla poszczególnych parametrów systemu.

Na szkoleniu wspominane są technologie wspierające nas w złożonych architekturach z podziałem na poszczególne warstwy, w tym specyfikacje z JEE. Dzięki czemu uczestnicy poznają główne cechy wybranych technologii oraz klasy rozwiązań, co ułatwia dalsze poszukiwania, gdyby ograniczenia obecnej architektury wymagały innego środowiska. Omawiamy także diagramy architektoniczne w UML na poziomie wystarczającym do zrozumienia budowy systemu. Ponieważ adresatami szkolenia są analitycy, a nie architekci, jedynie zapoznajemy się z modelami architektonicznymi i nie rozwijamy umiejętności ich tworzenia (zajmujemy się tym w wersji 5cio dniowej dla architektów).

Wymagania:

Wprowadzamy do zagadnień architektury od podstaw, w związku z czym nie brak wymagań wstępnych.

Parametry szkolenia:

3*8 godzin wykładów i warsztatów.

Program szkolenia

  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. Microservices
          1. Założenia
          2. Monolit a Microservices
          3. DB w monolicie a w Microservices
          4. Dlaczego Microservices?
          5. Problemy z microsercives
      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. CQRS
        5. Event Sourcing
        6. Szablon wzorców POSA
        7. Szablon wzorców PEAA
        8. Szablon wzorców Core J2ee
        9. Szablon wzorców EAI (wzorce JMS)
  4. 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. PrimeFaces
          5. GWT
        5. Wsparcie JavaScript
          1. JSON
          2. jQuery
        6. SPA/SPI
          1. Przykładowe frmeworki: Angular, Ember JS
          2. Przykładowe biblioteki JavaScript: React, Vue
        7. WebSocket
          1. Protokół full-duplex
          2. Użycie w przeglądarce
          3. Użycie w JEE (@ServerEndpoint)
          4. Kiedy stosować WebSocket
  5. 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)
        6. Transakcje długoterminowe w Web Service
      3. Web Services REST
        1. REST i wsparcie JAX-RS (od JEE6)
        2. WADL i alternatywy (API Blueprint, Swagger)
        3. HATEOAS
      4. GraphQL
        1. Czym jest GraphQL
        2. GraphQL vs REST
      5. Sockets (własny protokół)
      6. RMI (Remote Method Invocation)
      7. EJB i RMI-IIOP
        1. Rodzaje komponentów EJB
          1. Sesyjne
            1. Statefull
            2. Stateless
            3. Singleton (od EJB3.1 – JEE6)
        2. MDB
        3. Encyjne (do EJB2.x)
      8. JNDI jako repozytorium EJB
  6. 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. NoQSL
        1. Charakterystyka rozwiązań NoSQL
        2. ACID a BASE
        3. CAP Theorem
      4. JCR – Java Content Repository (systemy CMS)
      5. JCA – Java Connector Architecture (systemy EIS)
    2. Komunikacja asynchroniczna
      1. JMS (Java Message Service)
        1. Topic
        2. Queue
      2. MDB EJB (Message Driven Bean)
    3. Systemy „Legacy”
    4. Screen Scrapping
  7. 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
      3. Porty
      4. Konektory
      5. Realizacja komponentu
      6. Instancyjne diagramy wdrożenia
      7. Niskopoziomowe diagramy wdrożenia
      8. Szablony architektoniczne
      9. 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
    3. 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

Pytania?

* Wymagane.


Konsultant on-line
Skorzystaj z usług naszego konsultanta on-line.
Naciśnij przycisk ‘Skorzystaj’ aby przejść do okienka czatu
Kontakt
ul. Nowogrodzka 62c
02-002 Warszawa
Telefon +48 22 2035600
Fax +48 22 2035601
Email