mirror of
https://gitlab.com/fabinfra/fabaccess/bffh.git
synced 2024-11-23 23:27:57 +01:00
Thinking
This commit is contained in:
parent
3979af09c8
commit
9eaed13423
33
src/docs/resources.md
Normal file
33
src/docs/resources.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# How BFFH thinks about "things":
|
||||||
|
|
||||||
|
BFFH calls all things under it's (more or less existing and more or less total) control that users
|
||||||
|
want to use or be in a specific state for specific reasons "resources". The right to use a resource
|
||||||
|
or to change it's state is what BFFH calls a "claim".
|
||||||
|
Resources can be "claimed" by a number n ∈ ℕ\{0} of people at the same time. How many exactly claims
|
||||||
|
can be taken on a resource in parallel depends on the specifics of the resource. The (RGB) lighting
|
||||||
|
in a space for example is something that can be claimed by any number of people; if it's dark
|
||||||
|
outside everybody in the space will want the lights to be on. Who of all the people *allowed to*
|
||||||
|
gets to control the colour of the lights is a social issue and not something that can be encoded
|
||||||
|
into bffh easily.
|
||||||
|
However, a precision mill or a 3D-Printer can not be easily used by two people at the same time
|
||||||
|
without them stepping on each others toes. One of the two will be calling the shots, will be the one
|
||||||
|
actually pressing the buttons that do the things. In BFFH terminology she is the user holding the
|
||||||
|
claim.
|
||||||
|
To establish terminology let's call a claim with n = 1 an "exclusive claim" and a claim for a
|
||||||
|
resource that more than one user may claim a "shared claim".
|
||||||
|
Resources can also hold claims themselves. For example a mill, vapour-phase-oven and PCB press may
|
||||||
|
all three make used of an external cooling system which must turn on at the latest when any of these
|
||||||
|
three machines start work and must not turn off until all three are back to cool and idle. The
|
||||||
|
easiest way to represent this dependency is by having each (exclusive) claim on one of the three
|
||||||
|
machines also encompass a shared claim on the cooling pump.
|
||||||
|
Claims can be transferred between users. This serves two use-cases; first to transfer an exclusive
|
||||||
|
claim without having to have a machine unowned in the meantime, as an exclusive handover. This is of
|
||||||
|
course not so useful for shared claims.
|
||||||
|
The second use-case applies to shared claims too however: Giving an user a claim they do not have
|
||||||
|
the permission to take out themselves. This allows a supervisor to hand over control and claim of an
|
||||||
|
usually restrictively permissioned resource — like a mill — to somebody else. Which most importantly
|
||||||
|
stores the information that this somebody else is now using the machine and **not the supervisor**.
|
||||||
|
|
||||||
|
Claims are ephemeral; you only hold an exclusive claim to a 3D-printer while it's printing your
|
||||||
|
design, you only hold a shared claim to the spaces front door while you're inside — making them lock
|
||||||
|
if you're the last one leaving.
|
Loading…
Reference in New Issue
Block a user