Einführung in die Vorlesung

## Fachkompetenz Die Studierenden kennen die **grundlegenden Kernkonzepte der Nebenläufigkeit und Internetkommunikation** sowie die darauf aufbauenden **aktuellen Technologien und Werkzeuge** für den **Entwurf und für die Implementierung von Webanwendungen**. Die Studierenden kennen die technischen Grundlagen, Konzepte, Architekturen und Technologien verteilter Systeme und Anwendungen sowie die gängigen Methoden, Werkzeuge, Frameworks und Entwurfsmuster für die Entwicklung verteilter Anwendungen. Die Studierenden können die Konzepte, Werkzeuge und Methoden der Webprogrammierung anwenden und autonom Webanwendungen entwerfen, implementieren und testen. ## Methodenkompetenz Die Studierenden können die **Konzepte, Werkzeuge und Methoden der verteilten Systementwicklung anwenden** und unter Einsatz von Frameworks und Entwurfsmustern **einfache verteilte Anwendungen entwerfen, implementieren und testen**. ## Personale und soziale Kompetenz Die Studierenden können **eigenständig verteilte Anwendungsarchitekturen erarbeiten**. Sie können stichhaltig und sachangemessen über Konzepte, eigene Entwürfe und deren Implementierungen sowie die damit verbundenen Probleme argumentieren, eigene Umsetzungen plausibel darstellen und eventuelle Fehler nachvollziehbar gegenüber anderen begründen. ## Übergreifende Handlungskompetenz Die Studierenden können eigenständig aktuelle Methoden der Analyse, des Entwurfs und der Implementierung verteilter Systeme und Anwendungen für betriebliche Problemstellungen diskutieren, bewerten und anwenden.
### 3. Semester: Webprogrammierung * Grundlagen des Webs * Einführung in HTML und CSS * Responsive Webdesign * Clientseitiges JavaScript * Entwicklung von Single Page Apps ### 4. Semester: Verteilte Systeme * Grundlagen verteilter Systeme * Cloud-Konzepte und Architekturmuster * Technische Hintergründe zu REST-Webservices * Entwicklung von Microservices mit Node.js * Persistente Datenhaltung mit MongoDB
## Vorlesungsinhalte {.mt-0} ### Grundlagen verteilter Systeme 1. Definition des Begriffs „Verteiltes System” 1. Fallbeispiele für verteilte Systeme im Alltag 1. Aspekte des Systementwurfs verteilter Anwendungen 1. Allgemeine Anforderungen an verteilte Systeme 1. Das CAP-Theorem und andere Probleme verteilter Systeme 1. Transparenz für Anwender und Entwickler ### Cloud-Architekturmuster 1. Definition und Abgrenzung des Cloud-Begriffs 1. Eigenschaften typischer Microservice-Architekturen 1. Technische Grundlagen zur Skalierung in der Cloud 1. Sicherheitskonzepte für Microservices in der Cloud 1. Fehlertoleranz und andere Designkriterien ### Entwicklung von Cloud-Anwendungen 1. Vorstellung der Beispielarchitektur und verwendeten Werkzeuge 1. Wirtschaftliche und technische Bedeutung offener APIs 1. Technische Hintergründe zu REST-Webservices und HTTP allgemein 1. REST-Webservices mit OpenAPI beschreiben und mit Node.js implementieren 1. Integration eines einfachen API-Gateways mit Load Balancing 1. REST-Webservices als Backend einer Single Page App verwenden
## Didaktisches Modell {.mt-0} **Präsenzvorlesung mit semesterbegleitenden Prüfungsaufgaben**. Aufgrund der zeitlichen Belastung im vierten Semester müssen die Vorlesunstermine nicht vorbereitet jedoch anhand weiterführender Literatur selbstständig nachbereitet werden.
## Benötigte Software {.mt-0} ### Kurzversion ### Wir arbeiten mit Gitpod komplett online. 😲 ### Langversion ### Gitpod bietet eine Linux-Umgebung mit folgenden vorkonfigurierten Werkzeugen. Wer will, kann diese Werkzeuge auch auf dem eigenen Rechner zum Laufen bringen. um lokal zu arbeiten: * Visual Studio Code * Docker * Git Zusätzlich bietet sich ein Programm zum Testen von HTTP-Aufrufen wie Postman an.
## Rahmenbedingungen {.mt-0} * **Aufgabe 1:** Architekturentwurf als Einzelleistung * **Aufgabe 2:** Programmierprojekt als Gruppenarbeit * Getrennte Abgabe beider Teile während dem Semester * Eigenverantwortliche Bearbeitung parallel zur Vorlesung

Benotung im Rahmen des Portfolios

Semester I/G Artefakt Schwierigkeit Abgabefrist Gewichtung
3 I Lernkontrollen zu „Webprogrammierung” Erinnern, Verstehen Vor der jeweiligen Vorlesung 2
3 I Vertiefende Aufgaben zu den einzelnen Kapiteln Anwenden, Analysieren, Beurteilen Ende des dritten Semesters 4
4 I Architekturentwurf Anwenden, Analysieren, Beurteilen Mitte des vierten Semesters 1
4 G Programmierprojekt Verstehen, Anwenden, Analysieren, Beurteilen Vor Beginn der Klausurphase 3

I/G: Individualleistung oder Gruppenleistung
Schwierigkeit: Erinnern < Verstehen < Anwenden < Analysieren < Beurteilen

#### Kontaktdaten Dennis Schulmeister-Zimolong
E-Mail: dhbw windows3.de
#### Urheberrecht und Lizenzvereinbarung © 2022 – 2023 Dennis Schulmeister-Zimolong
https://github.com/DennisSchulmeister/dhbwka-wwi-vertsys-2020-folien ![Creative Commons Lizenzvertrag](https://i.creativecommons.org/l/by/4.0/88x31.png) Das Werk __Vorlesung "Verteilte Systeme" im Studiengang Wirtschaftsinformatik an der DHBW Karlsruhe (ab 2022)__ von Dennis Schulmeister-Zimolong ist lizenziert unter Creative Commons Namensnennung 4.0 International. Sie dürfen * **Teilen** — das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten * **Bearbeiten** — das Material remixen, verändern und darauf aufbauen und zwar für beliebige Zwecke, sogar kommerziell. Unter folgenden Bedingungen: * **Namensnennung** — Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade dich oder deine Nutzung besonders. * **Keine weiteren Einschränkungen** — Sie dürfen keine zusätzlichen Klauseln oder technische Verfahren einsetzen, die anderen rechtlich irgendetwas untersagen, was die Lizenz erlaubt. Es werden keine Garantien gegeben und auch keine Gewähr geleistet. Die Lizenz verschafft dir möglicherweise nicht alle Erlaubnisse, die du für die jeweilige Nutzung brauchst. Es können beispielsweise andere Rechte wie Persönlichkeits- und Datenschutzrechte zu beachten sein, die deine Nutzung des Materials entsprechend beschränken.