Kurzbeschreibung
In diesem Modul werden erweiterte Themen im Bereich Web Architekturen behandelt.
Lehrform/SWS
4 SWS: Seminar 2 SWS, Workshop 2 SWS
Arbeitsaufwand
Gesamtaufwand 180 Stunden, davon
- 36h Seminar
- 36h Workshop
- 108h Selbststudium
Learning Outcomes
(WAS) Studierende erlangen ein tieferes Verständnis in verteilten, web-basierte Systemen
(WOMIT) indem sie,
- Web-Architekturen, Web-Technologien, Protokolle und komplexe Softwaresysteme analysieren
- über geeignete Technologien entscheiden und begründen
- neues Wissen im Bereich verteilter, web-basierte Systeme sich selber aneignen und
- anderen Studierenden das elernte Wissen strukturiert vermitteln
(WOZU) um später komplexe Webanwendung und Webservices mit hohen Qualitätsanforderungen zu entwickeln, implementieren, evaluieren und optimieren.
Inhalt
- REST und seine Contraints
- Intermediäre Systeme
- Caching
- Content Delivery Networks
- Web Application Firewalls (WAF)
- API Gateways
- Streaming im Web
- HTTP Streaming
- WebSockets Streaming
- WebRTC
- Progressive Web Apps (PWA)
- Event-Basierte Architekturen
- Serverless Architekturen
- Sicherheit in REST-basierten Systemen
- OAuth/OpenID Connect
- HTTP Signaturverfahren
- Request Smuggling/HTTP Desync
- CPDoS
- Protokolle im Web
- HTTP1/HTTP2/HTTP3
- QUIC
- GraphQL
- gRPC
- Dezentrale Kommunikation mit Matrix Protokoll
Medienformen
- Folienpräsentation
- Live-Demonstrationen
Literatur
- Stefan Tilkov et al. , REST und HTTP: Entwicklung und Integration nach dem Architekturstil des Web, 2015
- Hoai Viet Nguyen, Authentication in Ultra Large-Scale REST-based Systems, Disseration, Universität Hamburg, 2020
Geförderter Kompetenzerwerb
Das Modul zahlt auf folgende Handlungsfelder und Kompetenzbereiche ein. Eine ausführliche Beschreibung der konkreten Komptenzen finden Sie weiter unten.
Designing for User Experiences
Developing Interactive and Distributed Systems
Exploring Advanced Interactive Media
Enhancing Interactions on Different Scales
Designing for User Experiences
Developing Interactive and Distributed Systems
-
Technologie
-
Kennen State-of-the-art Technologie zur Umsetzung von software-basierten Anwendungen (insb. in den Bereichen Web, Mobile, IoT, AR/VR, AI), können konkurrierende alternative Technologien auswählen und evaluieren, sich neue technologische Möglichkeiten erschließen, diese bewerten, nutzen, und integrieren sowie zukunftsorientiert neue Möglichkeiten screenen.
-
Wissen wie Kommunikation zwischen Computern realisiert wird (bspw. req/res, pub/sub und Protokolle wie HTTP, MQTT).
-
Wissen was ein Computer ist und wie Software darauf ausgeführt wird.
-
Entwurf
-
Verstehen formale Strukturen.
-
Können abstrahieren, logisch denken und komplexe Zusammenhänge verstehen.
-
Können Aspekte realweltlicher Probleme zu identifizieren, die für eine informatische Modellierung geeignet sind, algorithmische Lösungen für diese (Teil-)Probleme bewerten und selbst so zu entwickeln, dass diese Lösungen mit einem Computer operationalisiert werden können.
-
Konzepte (bspw. Paradigmen, Architekturen, Pattern) für die web-basierte Verteilung von Komponenten (bspw. Frontend/Clients/Apps, Backend/Server/Cloud) für verteilte interaktive Anwendungen kennen und umsetzen können.
-
Implementierung
-
Kennen Entwicklungsumgebungen, Tools und entwicklungsnahe Prozesse und diese praktisch nutzen (insb. IDE, Compiler, Linker, Libraries, Debugging, Unit-Testing, Repositories für eigenen Code / git, Build Tools, Paketmanager).
Driving Creation Process
-
Management
-
Können erkennen, welche Kompetenzen zur Lösung eines Problems erforderlich sind.
-
Können ein Team zusammenstellen und dieses lauf- und lebensfähig halten.
-
Kommunikation
-
Können effektive und transparente Kommunikation und Zusammenarbeit fördern, Konflikte erkennen, analysieren und lösen.
-
Sind in der Lage Arbeits- und Forschungsergebnisse klar und verständlich in aussagekräftigen, zielgruppengerechten Berichten, Präsentationen o.Ä. zu kommunizieren.
-
Haben die Fähigkeit effektiv in multidisziplinären Teams zu arbeiten und die verschiedenen Fachperspektiven und -sprachen zu verstehen.
Enhancing Interactions on Different Scales
-
Ethik und Gesellschaft
-
Selbstlernen
-
Können wissenschaftlich Arbeiten und Schreiben.
-
Können sich selbstständig neue Wissens- und Kompetenzbereiche zu Methoden, Technologien oder Domänen erschließen.
In der linken Spalte sehen Sie, welche Kompetenzen für das Modul vorausgesetzt werden (hellgrauer Balken). In der rechten Spalte sehen Sie, welche Kompetenzen Sie mit dem Modul erwerben können (farbiger Balken). Die Kompetenzen sind in Handlungsfelder und Bereiche gegliedert.
Wenn Sie auf den grauen oder farbigen Balken klicken, gelangen Sie zu einer Liste von Modulen, die auf diese Kompetenz einzahlen. Hier finden die eine Übersicht über alle Kompetenzen und die Module, die auf diese einzahlen.