Wydział Informatyki
Kierunek studiów Informatyka Poziom i forma studiów pierwszego stopnia inżynierskie stacjonarne
Specjalność / Ścieżka dyplomowania --- Profil kształcenia ogólnoakademicki
Nazwa przedmiotu Architektury systemów rozproszonych Kod przedmiotu INF1ASR
Rodzaj przedmiotu obieralny
Forma zajęć i liczba godzin W Ć L P Ps T S Semestr 5
26 30 Punkty ECTS 5
Przedmioty wprowadzające
Cele przedmiotu

Przekazanie zaawansowanej wiedzy z zakresu projektowania, implementacji i utrzymania systemów rozproszonych.
Rozwój praktycznych umiejętności w zakresie implementacji architektur mikrousługowych, wzorców integracji i technik zapewniania niezawodności.

Odniesienia do frameworka edukacyjnego mikrokompetencji SFIA:
- Solution Architecture (ARCH) - poziom 5: projektowanie kompleksowych architektur systemów rozproszonych, integracja komponentów i podsystemów
- Systems Design (DESN) - poziom 4: projektowanie systemów z wykorzystaniem wzorców Event Sourcing, CQRS i innych wzorców dla systemów rozproszonych
- Systems Integration and Build (SINT) - poziom 4: implementacja i integracja komponentów systemu rozproszonego, zapewnienie niezawodnej komunikacji

Treści programowe

Wykład
1 Zaawansowane architektury systemów rozproszonych. Ewolucja od monolitów do systemów rozproszonych. Wyzwania i korzyści. Najważniejsze notacje architektury: C4 Model, ArchiMate, UML
2 Podejście warstwowe. Trójwarstwowy podział aplikacji. Wzorzec architekttury MVC (Model-View-Controller). Różnice pomiędzy Layer a Tier. Wzorce warstwy dostępu do danych
3 Architektura współczesnej aplikacji rozproszonych. Architektura zorientowana na usługi SOA (Service Oriented Architecture)
4 Architektura mikrousługowa. Zasady i wzorce projektowe. Komunikacja między mikrousługami. Choreografia vs. orkiestracja. Koncepcja i wzorzec Clean Architecture. Implementacja referencyjna a rozwiązania rynkowe
5 Event Sourcing i CQRS. Projektowanie systemu opartego o zdarzenia. Zarządzanie strumieniami zdarzeń. Projekcje
6 Koncepcja ESB (Enterprise Service Bus). Szyna usług: zalety i wady. Rozwiązania i frameworki klasy enterprise i microservices
7 Zarządzanie danymi w systemach rozproszonych. Wzorce dostępu do danych. Bazy poliglotyczne. Spójność danych
8 Domain-Driven Design w kontekście systemów rozproszonych. Bounded Contexts, Ubiquitous Language, Aggregate Roots. Narzędzia analizy i projektowania architektur - Event Storming
9 Command-Query Responsibility Segregation – rozszerzona architektura warstwowa. Wsparcie dla Domain Driven Design; Event Sourcingu; Architektura microservices a CQRS/ES
10 Architektury sterowane zdarzeniami. Integracja systemów oparta o zdarzenia. Brokerzy komunikatów
11 Architektura przetwarzania w chmurze (Cloud Computing). Cloud-native applications. Kontenery, orkiestracja, serverless. Platformy chmurowe
12 Rozwiązania wydajnościowo-niezawodnościowe. Systemy klasy Enterprise. Transakcyjne systemy rozproszone. Wzorce odporności na błędy: Circuit Breaker, Retry, Bulkhead, Timeout
13 Zaliczenie wykładu

Pracownia specjalistyczna
1 Jak mogą być opisywane wymagania na architektirę systemu ICT. Analiza dokumentacji SWZ (Specyfikacja Warunków Zamówienia) dla systemu informatycznego (2h)
2 Jak opisać procesy biznesowe w przedsiębiorstwie, których dotyczą wymagania na systemy informatyczne. Modelowanie procesów biznesowych. Notacja BPMN (4h)
3 Notacja koncepcji architektury i architektury za pomocą C4 Model. Modelowanie architektury systemu informatycznego za pomocą notacji C4 Model (4h)
4 Projektowanie usług na bazie microservices. Ścieżki identyfikacji. Identyfikacja i sposób zapisu mikroserwisów na diagramach BPMN, ArchiMate, czy C4 Model. Ćwiczenia z modelowania. Zadanie projektowe (4h)
5 Technika Event Storming - identyfikacja zdarzeń domenowych za pomocą narzędzia. Event Storming jako narzędzie analizy wymagań biznesowych. Identyfikacja usługi /API /microservices przy pomocy ES (6h)
6 Event Sourcing i CQRS: implementacja mechanizmów zarządzania stanem opartego o strumienie zdarzeń. Analiza (walidacja) wyników z poprzedniego zadania dla wybranej domeny biznesowej (modułu) (4h)
7 Implementacja rozwiązań niezawodnościowych "fault tolerance" / "high availability" z wykorzystaniem wybranej platformy chmurowej (4h)
8 Zaliczenie pracowni

Metody dydaktyczne

metoda projektów,   dyskusja panelowa,   burza mózgów,   klasyczna metoda problemowa,   wykład konwersatoryjny,   wykład problemowy,  

Forma zaliczenia

W zaliczenie pisemne z pytaniami otwartymi
Ps opracowanie zadań projektowych realizowanych w grupach

Symbol efektu uczenia się Zakładane efekty uczenia się Odniesienie do kierunkowych efektów uczenia się
E1 zaawansowane wzorce architektoniczne stosowane w systemach rozproszonych INF1_W03
INF1_W12
INF1_W14
E2 mechanizmy komunikacji i integracji w systemach rozproszonych INF1_W03
INF1_W12
INF1_W14
E3 notację C4 Model modelowania architektury systemów informatycznych INF1_W14
E4 projektować i implementować systemy bazujące na architekturze mikrousługowej INF1_U04
INF1_U12
INF1_U13
E5 stosować wzorce Event Sourcing i CQRS w systemach rozproszonych INF1_U12
INF1_U13
E6 wykorzystywać w projektowaniu architektury podejście Domain-Driven Design i narzędzia Event Storming INF1_U12
INF1_U13
Symbol efektu uczenia się Sposób weryfikacji efektu uczenia się Forma zajęć na której zachodzi weryfikacja
E1 zaliczenie opisowe i testowe W
E2 zaliczenie opisowe i testowe W
E3 zaliczenie opisowe i testowe W
E4 wykonanie sprawozdań laboratoryjnych; rozwiązywanie zadań problemowych Ps
E5 wykonanie sprawozdań laboratoryjnych; rozwiązywanie zadań problemowych Ps
E6 wykonanie sprawozdań laboratoryjnych; rozwiązywanie zadań problemowych Ps
Bilans nakładu pracy studenta (w godzinach) Liczba godz.
Wyliczenie
1 - udziałem w wykładach 26
2 - udziałem w innych formach zajęć - 30 30
3 - indywidualnym wsparciem merytorycznym procesu uczenia się, udziałem w zaliczeniach organizowanych poza planem zajęć - 2,1 4
4 - przygotowaniem do zaliczenia wykładu 10
5 - przygotowaniem do bieżących zajęć - 30 30
6 - wykonaniem projektu - 25 25
RAZEM: 125
Wskaźniki ilościowe GODZINY ECTS
Nakład pracy studenta związany z zajęciami wymagającymi bezpośredniego udziału nauczyciela 60
(1)+(2)+(3)
2.4
Nakład pracy studenta związany z zajęciami o charakterze praktycznym 85
(2)+(5)+(6)
3.4
Literatura podstawowa

1 S. Newman, Od monolitu do mikrousług: ewolucyjne wzorce przekształcania systemów monolitycznych, Gliwice: Helion, 2020
2 N. Marz, J. Warren, Big Data: najlepsze praktyki budowy skalowanych systemów obsługi danych w czasie rzeczywistym, Gliwice: Helion, 2016
3 S. Newman, Budowanie mikrousług: projektowanie drobnoziarnistych systemów, Gliwice: Helion, 2022
4 V. Vernon, T. Jaskuła, Strategiczne monolity i mikrousługi: jak napędzać innowacyjność za pomocą przemyślanej architektury, Gliwice: Helion, 2023
5 Cloud design patterns, Azure Architecture Center, Microsoft Learn https://learn.microsoft.com/en-us/azure/architecture/patterns/, Microsoft [10.02.2025]

Literatura uzupełniająca

1 Exploring CQRS and Event Sourcing, Book from Official Microsoft Download Center https://www.microsoft.com/en-us/download/details.aspx?id=34774, Microsoft [10.02.2025]
2 Event Sourcing pattern, Azure Architecture Center, Microsoft Learn] https://learn.microsoft.com/en-us/azure/architecture/patterns/event-sourcing, Microsoft [10.02.2025]
3 CQRS Pattern, Azure Architecture Center, Microsoft Learn, https://learn.microsoft.com/en-us/azure/architecture/patterns/cqrs, Microsoft [10.02.2025]

Jednostka realizująca Katedra Mediów Cyfrowych i Grafiki Komputerowej Data opracowania programu
Program opracował(a) dr inż. Paweł Tadejko 2025.03.09