Init Concepts

This commit is contained in:
TheJoKlLa 2024-04-26 15:03:25 +02:00
parent 2c7bbcf0b2
commit 578be5a47c
13 changed files with 136 additions and 0 deletions

16
source/concepts/claims.md Normal file
View File

@ -0,0 +1,16 @@
# 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.
# TODO

View File

@ -0,0 +1,13 @@
Concepts of FabAccess
=================
FabAccess nutzt mehrer Konzept um den Process des Verleihens nutzbar zu machen. Und an den benötigten Stellen Freiheiten zugeben, um Anpassungen vornehmen zu können.
.. toctree::
claims.md
traits.md
measurements.md
projects.md
terminals.md

View File

@ -0,0 +1,2 @@
# Measurements
Messwerte von Resourcen

View File

@ -0,0 +1,2 @@
# Projects
Claims mit einem Verweis auf Projekte beim Leihen von Resourcen

View File

@ -0,0 +1,2 @@
# Terminals
Eingeschränkte Nutzung von Resourcen bei Ausleih Terminals

View File

@ -0,0 +1,18 @@
# Checkable
Trait welcher den Zustand von Resourcen abbildet, welche eine Überprüfung nach einer Nutzung benötigen.
## OID
`1.3.6.1.4.1.61783.612.1.3`
## States
```mermaid
stateDiagram
[*] --> FREE
FREE --> INUSE: use
INUSE --> CHECK: giveback
CHECK --> FREE: accept
CHECK --> REJECTED: reject
REJECTED --> INUSE: use
REJECTED --> CHECK: giveback
REJECTED --> FREE: accept
```

View File

@ -0,0 +1,5 @@
# Claimable
Sonderfall um den Status des Claims anbieten zu können.
## OID
`1.3.6.1.4.1.61783.612.1.0`

View File

@ -0,0 +1,16 @@
# Doorable
Grundlegender Traits zum Ansteuern von Türen.
## OID
`1.3.6.1.4.1.61783.612.1.2`
## States
```mermaid
stateDiagram
[*] --> CLOSED
CLOSED --> OPEN: unlock
OPEN --> CLOSED: lock
CLOSED --> tempOPEN: unlocktemp
tempOPEN --> OPEN: unlock
tempOPEN --> CLOSED
```

View File

@ -0,0 +1,15 @@
# Locatable
Grundlegender Trait zum Auffinden von Resourcen
## OID
`1.3.6.1.4.1.61783.612.1.5`
## States
```mermaid
stateDiagram
[*] --> IDLE
IDLE --> ACTIVE: setActive
IDLE --> ACTIVE: identify
ACTIVE --> IDLE: setIdle
ACTIVE --> IDLE
```

View File

@ -0,0 +1,16 @@
# Lockers
Traits zum Abbilden von Schlössern
## OID
`1.3.6.1.4.1.61783.612.1.4`
## States
```mermaid
stateDiagram
[*] --> locked
locked --> unlocked: unengage
unlocked --> locked
unlocked --> open
open --> unengaged
unengaged --> locked: engage
unengaged --> open

View File

@ -0,0 +1,13 @@
# Powerable
Grundlegender Trait, welcher Resourcen einschalten kann.
## OID
`1.3.6.1.4.1.61783.612.1.1`
## States
```mermaid
stateDiagram
[*] --> OFF
OFF --> ON: turnON
ON --> OFF: turnOFF
```

View File

@ -0,0 +1,17 @@
Traits
=================
Traits sind Implementierung speziell für eine Eigenschaft einer Resource.
Mit einem Traits können Zustände auf einer Resource geändert werden.
TODO
=====
Es kann mehrere Traits pro Resource gebenb
.. toctree::
claimable.md
powerable.md
doorable.md
lockable.md
checkable.md
locatable.md

View File

@ -19,3 +19,4 @@ We will inform you about breaking changes over our Zulip. Please subscript to it
installation/installation.rst installation/installation.rst
configuration/configuration.rst configuration/configuration.rst
usage/usage.rst usage/usage.rst
concepts/concepts.rst