fabaccess-bffh/src/docs/resources.md
Nadja Reitzenstein 9eaed13423 Thinking
2021-09-26 09:03:24 +02:00

2.5 KiB
Raw Blame History

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.