Projektowanie aplikacji wielkoskalowych 1000-I2PAW
W ramach tego przedmiotu studenci poznają zalety i wady architektur przeznaczonych dla aplikacji wielkoskalowych. Nauczą się projektować i implementować mikroserwisy, odkrywać i rejestrować usługi oraz komunikować się między serwisami. Omówione zostaną również dwie strategie integracji systemów: integracja przez bazę i integracja przez mikroserwisy, a studenci zdobędą umiejętność wyboru odpowiedniej strategii dla danego projektu. Przedmiot obejmuje również koncepcję sterowania zdarzeniami, implementację wzorców asynchronicznej komunikacji oraz korzyści i wyzwania sterowania zdarzeniami. W ramach przedmiotu studenci zapoznają się oraz z trzema popularnymi metodologiami i zasadami ich implementacji: Domain Driven Development (DDD), Test Driven Development (TDD) oraz CQRS (Command Query Responsibility Segregation).
Ważnym elementem przedmiotu będzie modelowanie przepływów pracy i danych, ich implementacji w systemach IT, optymalne składowanie, przeszukiwanie oraz zatwierdzanie transakcji w systemach wielkoskalowych. Ostatnim, ale nie mniej ważnym aspektem, będzie wielopoziomowe zabezpieczanie projektowanych i implementowanych aplikacji.
Powyższe tematyki omawiane będą od strony teoretycznej na konwersatorium, natomiast na laboratorium powstawać będzie projekt realizujący te tematyki
Całkowity nakład pracy studenta
Efekty uczenia się - wiedza
Efekty uczenia się - umiejętności
Efekty uczenia się - kompetencje społeczne
Koordynatorzy przedmiotu
Metody dydaktyczne podające
Metody dydaktyczne poszukujące
- klasyczna metoda problemowa
- laboratoryjna
Kryteria oceniania
Egzamin ustny sprawdza efekty wiedzy
Zadania zaliczeniowe na laboratoriach sprawdzają efekty umiejętności i kompetencji społecznych.
Praktyki zawodowe
Nie dotyczy.
Literatura
1. Kleppmann, M. (2023). Przetwarzanie danych w dużej skali: niezawodność, skalowalność i łatwość konserwacji systemów. Polska: Helion..
2. Nygard, M. T. (2018). Release It! Design and Deploy Production-Ready Software. Stany Zjednoczone: Pragmatic Bookshelf.
3. Tang, Antony & Kazman, Rick & Fairbanks, George. (2021). Decision-Making Principles for Better Software Design Decisions. IEEE Software. 38. 98-102. 10.1109/MS.2021.3102358.
4. Newman, S. (2021). Building Microservices. Stany Zjednoczone: O'Reilly Media.
5. Cristea, V., Dobre, C., Stratan, C., Popentiu, F. (2010). Large-scale Distributed Computing and Applications: Models and Trends. Stany Zjednoczone: Information Science Reference.
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: