Politechnika Warszawska - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Architektura i inżynieria usług i aplikacji

Informacje ogólne

Kod przedmiotu: 103A-IRxxx-ISP-ARIUS Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Architektura i inżynieria usług i aplikacji
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Przedmioty techniczne )---EITI
( Teleinformatyka )-Inżynieria internetu rzeczy-inż.-EITI
Punkty ECTS i inne: 5.00
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

ARIUS

Numer wersji:

1

Skrócony opis:

Celem przedmiotu jest zaznajomienie słuchaczy z procesem tworzenia systemów informatycznych realizujących usługi internetowe. Zostanie przedstawiony proces projektowania, implementacji i wdrażania systemów w architekturze zorientowanej usługowo SOA. Omówione zostaną metodyka i narzędzia do tworzenia i wdrażania aplikacji serwerowych w architekturze mikrousług oraz tworzenia aplikacji klienckich wykonywanych w przeglądarkach oraz na urządzeniach mobilnych.

Pełny opis:

Treść wykładu


Zakres wykładu obejmuje następujące zagadnienia:

  • Architektura systemów zorientowanych usługowo SOA. Architektura klient-serwer i jej uogólnienie. Model usług REST. Standaryzacja; protokół HTPP, notacje XML i JSON. Usługi sieciowe RESTful. Interoperacujność, enkapsulacja. Bezstanowość i skalowalność. Wzorce architektoniczne projektowanial fasada usługowa. Usługi REST API. Usługi SaaS chmury obliczeniowej.
  • Aplikacja serwerowa. Architektura mikrousługowa; korzyści i zagrożenia. Zasady dekompozycji; architektura logiczna - domeny, architektura fizyczna - mikrousługi. Mikrousługi a platformy kontenerowe. Platforma kontenerowa Docker. Kontenery, obrazy i instancje.
  • Wzorce architektoniczne projektowania. Domena systemu; model danych, funkcje biznesowe. Języki / środki wyrazu używane w procesie rozwojowym (języki wymagań / modelu / produktu) - oczekiwania, własności, przykłady.
  • Zasady komunikacji aplikacji klienckich z mikrousługami; komunikacja bezpośrednia a wzorzec bramy interfejsu API. Internetowa oraz mobilna aplikacja kliencka. Architektury; wzorce architektoniczne projektowania. Zasady konstrukcji interfejsu użytkownika GUI, ergonomia.
  • Zasady komunikacji/integracji mikrousług; komunikacja zdarzeniowa, brokery wiadomości, szyny usługowe/zdarzeń. Zasady przechowywania danych; pojęcie ostatecznej spójności (ang. eventual consistency).
  • Wymagania pozafuncjonalne. Wydajność, niezawodność/dostępność, bezpieczeństwo systemów. Skalowalność - orkiestracja kontenerów mikrousług. Platforma orkiestracji kontenerów Kubernetes. Awarie częściowe aplikacji serwerowej i strategie ich obsługi, monitorowanie stanu. Uwierzytelnienie i autoryzacja mikrousług i aplikacji klienckich.
  • Testowanie mikrousług. Potrzeby, praktyki i narzędzia weryfikacji i walidacji; pojęcia poprawności i niepoprawności; metody aprioryczne (analityczne) i empiryczne (testowanie). Testy jednostkowe, integracyjne i obciążeniowe.
  • Wdrożenie na platformie kontenerowej. Proces i narzędzia rozwoju. Wdrożenie w środowisku chmury obliczeniowej. Usługi PaaS IaaS chmury obliczeniowej.
  • Cykl życia oprogramowania oraz procesy wytwarzania systemów. Koncepcje Continuous Integration i Continuous Deployment. Metodyka DevOps rozwoju systemów; automatyzacja procesu, wsparcie narzędziowe. Związek metodyki DevOps ze zwinnym (ang. Agile) wytwarzaniem oprogramowania; porównanie z metodykami ciężkimi.
  • Wielkość i złożoność oprogramowania a metodyki wytwarzania oprogramowania: plan-driven, incremental, test-driven. Wytwarzanie oprogramowania a wytwarzanie produktów - pojęcie wzorów projektowych (design patterns); wzorce implementacji i integracji bloków oprogramowania.


Zakres laboratorium


Celem jest praktyczne zapoznanie się studentów z procesem projektowania, implementacji i wdrażania systemu oraz z narzędziami do tworzenia i wdrażania elementów systemu.


Zakres laboratorium obejmuje następujące zagadnienia/ćwiczenia:

  • Projektowanie i implementacja aplikacji serwerowej w architekturze mikrousług;
  • Projektowanie i implementacja internetowej aplikacji klienckiej,
  • Projektowanie i implementacja internetowej aplikacji mobilnej,
  • Platforma wirtualizacji kontenerowej i orkiestracji Docker/Kubernetes,
  • Testowanie i wdrażanie aplikacji serwerowej,
  • Testowanie i wdrażanie internetowej aplikacji klienckiej,
  • Testowanie i wdrażanie mobilnej aplikacji klienckiej.


Zakres projektu


Celem jest samodzielne opracowanie przez studentów kompletnego systemu realizującego prostą usługę internetową.


Zakres projektu obejmuje następujące zadania:

  • Opracowanie aplikacji serwerowej złożonej z minimalnej liczby mikrousług,
  • Opracowanie aplikacji klienckiej internetowej lub mobilnej.
Literatura:

Oprogramowanie:

  • Systemy operacyjne Windows, Linux, Android.
  • Środowiska programistyczne Visual Studio, Android Studio, Angular SJ.
  • Środowiska wizualizacji Hyper-V, VirtualBox, Docker(/Kubernetes).

Zajęcia w cyklu "rok akademicki 2021/2022 - sem. letni" (jeszcze nie rozpoczęty)

Okres: 2022-02-21 - 2022-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 15 godzin, 30 miejsc więcej informacji
Projekt, 15 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: (brak danych)
Prowadzący grup: (brak danych)
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103600 - Instytut Telekomunikacji

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.