2.2 KiB
Claims
Ein Claim ist eine Zugang zu einer Resource um deren dynamischen Zustand zu ändern. Claims können dabei auch von mehreren Nutzern gleichzeitig erhalten werden. Claims enthalten Traits, welche eine Liste an Methoden ist, um den Zustand einer Resource zu ändern. Um einen Claim auf eine Resource zu erhalten kann man entweder ein Claim der Resource selber beziehen oder sich auf eine Liste mit einem Interest eintragen, welche als Queue abgearbeitet wird, sobald eine Resource disowned wird.
Ein Interest bildet das Anmeleden eines Interesses an einer Resource beim Server an. Ein Interest ist hierbei verbindlich, sollte also ein Nutzer ein Interest auf eine Resource haben, dann wird ihm diese auch automatisch gegeben, sobald die Resource keinen Claim mehr hat.
Um den Zustand einer Resource abzufragen kann auf eine Resource ein Notify geholt werden. Dieses Notify gibt den Zustand einer Resource zurück, also auch eine Möglichkeit auf einen Zustand zu einer Resource zu subscriben und Updates zu einer Änderung zu erhalten.
Mit Claims sollen die verschienden Eigenschaften einer Resource abgebildet werden ohne, dass der Server das Konzept des Verleihens jedes mal neu Implementieren muss.
Eine weitere Möglichkeit einen Claim zu erhalten ist über ein Transfer eines Claims. Hierbei holt sich der erste Nutzer ein Token, über transfer(), welches er per QR-Code oder NFC an einen zweiten Nutzer weitergibt. Dieser kann dann den Claim übernehmen, wenn er das Token beim Server einlöst. Dabei ist zu beachten, dass der übernehmende Nuter auch über die Berechtigung verfügen muss die Resource leihen zu dürfen.
Die letzte Möglichkeit einen Claim zu erhalten ist in dem ein Ausbilder lend() auf dem Claim aufruft und ein Token erhält, welches er einer Auszubildenen übergibt. Dieser kann dann auch die Maschine nutzen, wenn er nicht die erforderliche Berechtigung hat. Dabei erhält nach erfolgreicher einlösung des Tokens der Ausbilder einen Interest, mit welchem er den Claim zurückfordern kann. Dieses Konzept kann recursiv angewendet werden. Bei einem Lend bleibt der übergeber des Tokens in Verantwortung, im gegensatz zum Transfer, in dem er die Verantwortung abgibt.