1. Mikroprojekte

Mikroprojekte - Themenvergabe
lfd.Nr. Name Thema -

1

Besic Meris

Friedhofsverwaltung

2

Dorfinger Jonas

Produktionsbetrieb (Fließband)

3

Dumfarth Felix

Centermanager

4

Ecker Quirin

Baustellenkoordinator

5

Edlinger Philipp

Baumschule

6

Feichtinger Sarah

Kochrezepte

7

Höfler tobias

Plattenlabel

8

Kalinke Silvio

Facility Management

9

Klausner Florian

Zooverwaltung

10

Knogler Simon

Event-Manager

11

Mandel Rosalie

Reisebüro

12

Primetzhofer Vanessa

Skischule

13

Raffeiner Christine

Tanzschule

14

Ratzenböck Jakob

Fitnessstudio

15

Scholl Sebastian

Fakturierung

16

Starka Lukas

Kfz-Händler

17

Steigersdorfer Marah

Friseurladen

18

Tang Sandy

Restaurant

19

Tran Kelly

Callcenter

20

Turner Isabel

Busreisen (inkl Schulbusse)

21

Weissengruber Nina

Autovermietung

22

Wiesinger Jonas

Parkplatzverwaltung

2. 2021-09-20

2.1. Hausübung

  • Erstellen eines Mikroprojektes mit angegebenen Thema

  • ca. 3-5 Entites

  • Kurze Beschreibung der geplanten Funktionalität des Projekts (um das Klassendiagramm darauf zu überprüfen)

  • Eigene Folder für Doku, Backend und Frontend

folder
  • Erstellen der Entitäten

  • Beginnen der Asciidocs-Doku mit einem CLD als .puml-file, welches in das .adoc-File integriert wird

  • Deployment als gh-pages

  • Link zu gh-pages im Repo angeben

  • TAG: class diagram

3. 2021-10-04

  • Microprofile bis inklusive Exkurs JSON-B

  • Übung:

    • Erweitern Sie Ihr Mikroprojekt mit Repositories

    • Erstellen Sie mindestens einen Endpoint und konfigurieren Sie diesen mit JSON-B

    • Termin 13.10. 2021

4. 2021-10-11

5. 2021-11-08

6. 2021-11-15

jsonb

6.1. JSON-P

JsonObject susi = Json
                .createObjectBuilder()
                .add("name", "Susi")
                .add("city", "Leonding")
                .build();

6.2. graalvm

7. 2022-01-31

7.1. Was ist Keycloak?

  • Authentifizierungsservice

7.2. Propertiesfile Beispiel

  • application.properties

7.3. Was ist eine Rolle?

  • Abstraktionsschicht, wo verschiedene Rechte gesammelt sind, die man den einzelnen Benutzern zuweisen kann

  • klar definiert, wer worauf zugreifen darf (User, Admin)

7.4. Chrome Job

  • periodisch, macht etwas zu einer bestimmten Zeit

7.5. Wie kann man testen?

  • Karate

  • Rest-Assured

7.6. Was ist REST?

  • Internet für Maschinen/Dienste/Programme

7.7. Wie kann man auf REST-Service zugreifen?

  • Browser (GET)

  • grafische Clients (zB. Postman, Insomnia)

  • IDE-CLient (requests.http)

  • Shell-Clients (curl, httpie)

  • Test-Frameworks (Intnit …​, REST Assured)

7.8. Was ist qute?

  • Quarkus testable engine

  • direkt auf Javacode zugreifen

  • serverseitig

7.9. Extension hinzufügen (Terminal):

  • quarkus ext add resteasy-qute

7.10. Was ist eine Deklaration?

  • etwas im System bekannt machen

  • Allokierung vom Speicherplatz den man brauchen wird

7.11. Was ist eine Initialisierung?

  • erstmalige Zuweisung von einem Wert / Wert das 1.mal zuweisen

7.12. Octet

  • Bytestream

7.13. HÜ:

Using security with .properties File in Microprojekt einbauen (quarkus.io)

  • Kapitelweise Zusammenfassung ins README von Microprojekt

8. 2022-02-14

8.1. graphQl

8.1.1. Übung - graphQL-Quarkus Tutorial

8.1.2. Übung - graphQL in das eigene Microproject einbauen

Vergessen Sie nicht dies im Microproject zu dokumentieren

8.2. gRPC

8.2.1. Übung - Quarkus-gRPC-Tutorial durchführen

8.2.2. Übung gRPC in das eigene Projekt einbauen

Vergessen Sie nicht dies im Microproject zu dokumentieren

9. 2022-03-04 - Zusammenfassung

  • Folgende Zusammenfassung erhebt keinen Anspruch auf technische Genauigkeit oder Vollständigkeit

9.1. html / http

  • Internet für Menschen

  • Webseiten werden in der Auszeichnungsprache html gespeichert

  • mit dem Protokoll http an den Browser übertragen

  • und im Browser gerendert und für den Menschen aufbereitet

9.2. restful Services

  • Internet für Maschinen / Prozesse

  • Es werden (keine für den Menschen aufbereitete Webseiten, sondern) Daten in Form von Json, xml ev. yaml übertragen

  • Als Protokoll wird ebenfalls http verwendet, mit seinen Methoden GET, POST, DELETE, PUT, PATCH, …​

9.3. websockets

  • Problem bei diesen Web-Technologien ist, dass die Clients immer anfragen müssen und nicht vom Server über Änderungen informiert werden können.

  • Daher wurden folgen workarounds verwendet:

    • Polling

    • Long Polling

    • Streaming

    • …​

  • Websockets lösen das Problem

    • Im Gegensatz zum klassischen Zugriff auf Sockets, werden websockets nicht von der Firewall geblockt, da auf Port 80 möglich

    • Beim Server werden die Clients in einer Collection eingetragen und können danach vom Server benachrichtigt werden, da dem Server die Information zum Senden von Nachrichten an die Clients zur Verfügung hat.

    • Websockets können daher einzelne Clients benachrichtigen oder alle gemeinsam (broadcast)

    • Es können sowohl Text- als auch Binärdaten übermittelt werden.

9.4. SSE - Server sent events

  • Das gleiche Prinzip wie bei websockets

  • Es können allerdings nur kurze Nachrichten in Textform übermittelt werden

9.5. graphQL

  • Problem bei restful Services

    • Man muss immer die vorgefertigte Datenstruktur der Endpoints abrufen. Bei komplizierten Datenstrukturen (Json-Struktur) kann die Benutzung "unhandlich" sein.

    • Daher haben große Plattformen wie zB github ihre Rest-Endpoints bereits abgekündigt (deprecated).

  • Alternative ist graphQL (entwickelt von Facebook)

    • Ähnlich wie bei der Datenbank-Abfragesprache SQL kann bei graphQL definiert werden, welche Datenobjekte abgerufen werden.

    • Dadurch werden die übertragenen Datenmengen kleiner und die Datenstrukturen übersichtlicher.

9.6. grpc (entwickelt von google)

  • Problem bei Rest und graphQL

    • Die Daten werden als Text übertragen

    • Bei großen Datenmengen langasm und das Netz wird belastet.

  • grpc basiert auf folgendem Prinzip

    • Die Daten werden komprimiert

    • und binär übertragen

  • Dazu gibt es eine Beschreibung der Daten, das sogenannte proto-file

  • Die Daten werden durch den protobuf-Compiler compiliert und beim Adressaten wiederhergestellt.