| Post-Registration-Service | Post-Registration Aufgaben | Der Dienst ist für die Erstellung des Registrierungszertifikats verantwortlich und sendet dem Benutzer eine E-Mail, die bestätigt, dass das Werk erfolgreich registriert wurde. | | Java Spring
Das Frontend, welches auf der JavaScript-Bibliothek React und der CSS-Bibliothek Tailwind verbindet sich mithilfe eines Api-Service. In dem Api-Service ist eine REST-API eingebaut, welche mit der Swagger UI dokumentiert ist (http://localhost:8080/api-service/swagger-ui/index.html). Für die Implementierung von der REST-API wurde Spring verwendet. Nginx der Webserver wird als Reverse-Proxy und Load Balancer eingesetzt. Als Message-Broker, also zentraler Knotenpunkt für den Austausch von Nachrichten zwischen den verschiedenen Microservices dient RabbitMQ. Als Objektspeicher dient MinIO zur Speicherung und den Zugriff auf unstrukturierte Daten wie Bilder, Videos oder Dokumente. IPFS dient als zusätliches Speicher-Protokoll, damit Dateien in das IPFS-Netzwerk hochgeladen und herunterzuladen werden zu können.
Das Frontend, welches auf der JavaScript-Bibliothek React und der CSS-Bibliothek Tailwind verbindet sich mithilfe eines Api-Service. In dem Api-Service ist eine REST-API eingebaut, welche mit der Swagger UI dokumentiert ist (http://localhost:8080/api-service/swagger-ui/index.html). Für die Implementierung von der REST-API wurde Spring verwendet. Nginx der Webserver wird als Reverse-Proxy und Load Balancer eingesetzt. Als Message-Broker, also zentraler Knotenpunkt für den Austausch von Nachrichten zwischen den verschiedenen Microservices dient RabbitMQ. Als Objektspeicher dient MinIO zur Speicherung und den Zugriff auf unstrukturierte Daten wie Bilder, Videos oder Dokumente. IPFS dient als zusätzliches Speicher-Protokoll, damit Dateien in das IPFS-Netzwerk hochgeladen und herunterzuladen werden zu können.
Der Registrierungsprozess läuft folgendermaßen ab:
Der/Die Benutzer:in muss sich mittels dem IDM Keycloak anmelden, um eine Datei registrieren zu könne. Eine Datei wird auf den Endpunkt (api-service/files/upload/presigned-url) hochgeladen, und der Dateiname und KeycloakID wird genutzt, um von dem MinIO Objektspeicher eine eindeutige presigned Upload URL zu generieren. Sobald die presigned URL im Frontend angekommen ist, kann die zweite Anfrage mit der Antwort durchgeführt werden, die die Datei endgültig hochlädt und weiterverarbeitet. Der/Die Benutzer:in schließt den Registrierungsprozess mit einem Klick auf den Registrierungsbutton ab, damit folgt die entgültige Registrierung in der Microservice-Architektur, da sie den Vorgang einleitet, der die Interaktion zwischen verschiedenen Microservices koordiniert. RabbitMQ, einem Open-Source-Messaging-System, fungiert dabei als Vermittler zwischen verschiedenen Services. Die Datei und all die unveränderlichen Metadaten werden immer in den Hashing-Service in einem kryptografische Hash-Wert-Repräsentation umgewandelt.
Der/Die Benutzer:in muss sich mittels dem IDM Keycloak anmelden, um eine Datei registrieren zu können. Eine Datei wird auf den Endpunkt (api-service/files/upload/presigned-url) hochgeladen, und der Dateiname und KeycloakID wird genutzt, um von dem MinIO Objektspeicher eine eindeutige presigned Upload URL zu generieren. Sobald die presigned URL im Frontend angekommen ist, kann die zweite Anfrage mit der Antwort durchgeführt werden, die die Datei endgültig hochlädt und weiterverarbeitet. Der/Die Benutzer:in schließt den Registrierungsprozess mit einem Klick auf den Registrierungsbutton ab, damit folgt die entgültige Registrierung in der Microservice-Architektur, da sie den Vorgang einleitet, der die Interaktion zwischen verschiedenen Microservices koordiniert. RabbitMQ, einem Open-Source-Messaging-System, fungiert dabei als Vermittler zwischen verschiedenen Services. Die Datei und all die unveränderlichen Metadaten werden immer in den Hashing-Service in einem kryptografische Hash-Wert-Repräsentation umgewandelt.
Der nächste Schritt ist, falls der/die Benutzer:in die Funktion auswählt, wird das Datei in das IPFS-Netzwerk hochgeladen wird. Der Metadata-Service speichert die Metadaten in die PostgresDB.
#### Detailliert
- React + Tailwind
In der Benutzeroberfläche kam zum Einsatz React, als JavaScript-Bibliothek, und Tailwind als CSS-Bibliothek. React basiert auf einer Komponentenarchitektur, bei der einzelne Komponenten in der Anwendung wiederverwendet werden können.
In der Benutzeroberfläche kam zum Einsatz React als JavaScript-Bibliothek und Tailwind als CSS-Bibliothek. React basiert auf einer Komponentenarchitektur, bei der einzelne Komponenten in der Anwendung wiederverwendet werden können.
Die Komponentenarchitektur von React ermöglicht es schnell und effizient komplexe Benutzeroberflächen zu erstellen. React ist auch bekannt für seine virtuelle DOM (Document Object Model), die die Leistung verbessert, indem nur die Teile der Seite aktualisiert werden, die sich geändert haben.
Tailwind ermöglicht es schnell und einfach Benutzeroberflächen zu gestalten. Tailwind bietet eine umfangreiche Sammlung von vordefinierten Klassen an, die auf Elementen in HTML-Dateien angewendet werden können. Dadurch können Entwickler schnell und einfach grundlegende Layouts, Farbschemata und Formatierungen erstellen, ohne jedes Mal eigene CSS-Regeln schreiben zu müssen. Tailwind ist auch bekannt für seine hohe Anpassungsfähigkeit, da eigene Klassen und Stile erstellt werden können, um spezielle Anforderungen zu erfüllen. React und Tailwind sind auch gut skalierbar und für die Entwicklung von großen und komplexen Webanwendungen geeignet sind.