Architektura systemów
      
	Architektura systemów
	Kod szkolenia: JAVA-ARCH
  
  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.
  
  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 klienta.
  
  5 dni, po 8 godzin. Łącznie 40 godzin(y) szkolenia.
  
    Oczekiwane przygotowanie słuchaczy przed szkoleniem
   
  Brak wymagań wstępnych.
  
    Polecane szkolenia uzupełniające
   
  Wszystko co związane z technologiami, 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.
  
  
  
    - Podstawy Architektury- Czym jest architektura
- Kim jest architekt i jaką pełni rolę
- Proces architektoniczny
- Dokumentacja architektoniczna
- Zarządzanie ryzykiem
 
- Parametry systemowe- Czym są parametry systemowe
- Jak poprawnie definiować wymagania niefunkcjonalne
- Opis parametrów systemowych:
-   Wygoda użytkownika, Bezpieczeństwo, Wydajność,
-   Dostępność, Niezawodność, Elastyczność,
-   Realizowalność, Testowalność, Serwisowalność, Zarządzalność
- Wymiary systemu
- Priorytety parametrów systemowych
 
- Wzorce architektoniczne- Wprowadzenie do wzorców
- Stable Dependency Principle
- Wzorce podziału odpowiedzialności: MVC a SPA, N-Tier i Layers
- Wzorce infrastruktury:
-   Skalowanie poziome i pionowe, Modularyzacja
-   Load Balancing, Redundancja ścieżek, Klastry, Chmury
- Wzorce EAI: Message Broker, SOA, ESB i mu podobne
- Microservices
- Przedstawienie wybranych szablonów wzorców
 
- Microservices z bliska- Jak ma się do SOA
- A jak do Monolitu
- Wady i zalety Microservices
- Usługi w chmurze: IaaS, CaaS, Paas, FaaS, SaaS
- Kiedy wybrać, kiedy nie, i jak zacząć
- Dane w Microservices i podejście BASE
- Wzorce pomocnicze: CQRS i Event Sourcing
 
- Prototypowanie- Po co prototypować
- Prototyp Proof of Concept
- Prototyp ewolucyjny
- Antywzorzec Lava Flow
 
- Architektura warstwy klienta i prezentacji- Przechowywanie sesji
- Podział klientów
- Technologie klienta grubego: biblioteki graficzne a RCP
- Wsparcie klienta cienkiego: dla MVC, SPA (Angular, Vue, React)
- Zaawansowane komunikacja z przeglądarką: AJAX, WebSocket
 
- Architektura warstwy biznesowej- Przetwarzanie rozproszone
- Komunikacja zdalna a lokalna
- Optymalizacja komunikacji sieciowej
- Protokoły komunikacyjne
-   COBRA, SOAP, REST, GraphQL, Sockets, RMI, gRPC...
 
- Architektura warstwy integracji i zasobów- Technologie utrwalania danych
-   RDBMS, bazy hierarchiczne, NoSQL, BigData
- Komunikacja asynchroniczna
- Systemy „Legacy”
- Screen Scrapping
- Technologie scaffolding'owe
 
- Modelowanie architektury w UML- Diagram komponentów
- Diagram wdrożenia
 
- Zaawansowane aspekty modelowania architektury w UML- Instancyjny diagram wdrożenia
- Nispokopziomowy diagram wdrożenia
- Szablony architektoniczne
- Artefakty na diagramie wdrożenia
- Diagram pakietów
 
- Przejście z architektury do projektu- Warstwy i komponenty a realizacja projektu
- Warstwy i komponenty a model projektowy
- Uwzględnienie ograniczeń architektury w projekcie
 
- Weryfikacja i ocena architektury- Po co weryfikować?
- Zespół weryfikujący
- Techniki weryfikacji i oceny
- Proces weryfikacji
- Raport z weryfikcji