Skip to content
This repository has been archived by the owner on Sep 7, 2020. It is now read-only.

Konzept

Florian Baldus edited this page Sep 23, 2019 · 3 revisions

Konzept

Der Tag Microservice basiert darauf, dass beliebig viele Tags angelegt werden können, die anschließend TagCollections zugewiesen werden können. Um den Microservice möglichst universell zu halten, gibt es keine Projekte oder Profile,sondern diese werden als Sammlung von Tags zu einem bestimmten ID betrachtet (TagCollection). Für jedes Projekt wird z.B. eine neue Collection angelegt mit der ID des Projektes.
Zusätzlich zur Verwaltung der Zuordnung von Tags zu Projekten, Profilen, etc. ist es die Aufgabe dieses Services Vorschläge für ähnliche Tags anzubieten.

1. Model

1.1 Tag

Ein Tag ist ein eindeutiger String, der mit einer ID versehen wird.

1.1.1 TagName

Zur Validierung des TagNamens wurde dafür eine eigene Klasse angelegt. Dabei wird vor allem die Länge des Strings überprüft. Dieser muss zwischen einem und 40 Zeichen lang sein.

1.2 TagCollection

Jeder Entity, die eine UUID besitzt, können Tags zugeorndet werden. Diese Zuordnung wird im Tag Service gespeichert, um daraus die Recommendations zu berechnen und um Tags nicht explizit in jedem Service implementieren zu müssen. Bei den Entities kann es sich um Projekte oder zukünftig auch Profile handeln. Der Tag Service speichert nur die Zuordnung von Tags zu einer UUID. Wo diese UUID her kommt und um was genau es sich dabei handelt spielt für den Tag Service keine Rolle.

1.3 TagCounter

Die Tag Counter werden intern verwendet, um die eine Grundlage für die Recommendations zu schaffen. Jeder Tag Counter gibt an, wie oft zwei Tags gemeinsam verwendet wurden. Diese Counter werden in regelmäßigen Abständen aktualisiert. Details auf der Seite Tag Counter.

2 Implizietes Anlegen von TagCollections

Projekte im Project Service kennen ihre Tags nicht, sondern verweisen nur mit einem Link auf die Ressource des Tag Service. Wenn es für eine UUID noch keine Tag Collection gibt, wird mittels eines Filters vor dem Ausführen der eigentlichen Anfrage eine entsprechende Collection angelegt. Dadurch wird für jede UUID immer eine TagCollection zurückgegeben und Puts/Posts/... auf die Association sind möglich ohne diese vorher expliziet anzulegen.

3. Recommendations

Durch Tag Recommendations soll es ermöglicht werden, zu einer Liste von Tags eine weitere Liste von vorgeschlagenen Tags zu erhalten. Diese Liste an vorgeschlagenen Tags enthält Tags, welche der Nutzer höchstwahrscheinlich zusätzlich zu den bisherigen Tags verknüpfen möchte. Details auf der Seite Tag Recommendation.