1) Will be able to listen in several different ways, amongst other via: login form, usb-stick, camera, etc.
2) User identifies himself by whatever means available (form, usb, etc)
3) User Listener calls Flow Manager with credentials/token
4) Flow Manager requests solutions available on the system from the local solutions reporter.
5) The information is returned: JSON HERE
5.1) LATER: Information is gathered from the Device Characteristics Reporter
5.2) LATER: Information is gathered from the Physical Environment Reporter
6) The login information is sent to the preferences server: JSON HERE
6.1) LATER: To keep the personal information separate from the needs and requirement of a person, we might implement a middle step with token/identity pairs.
6.2) LATER: The token is then sent to the preferences server, and the preferences is fetched based on token
7) Preferences are returned: JSON HERE
8) The bundled information (solution reports and preferences) is sent to Match Maker: JSON HERE
8.1) LATER: Any non-locally installed solutions is requested from match-maker before doing the matching
9) Matching – match the desired preferences to the available solutions
10) Return the solutions to be run: JSON HERE
11) The solutions to be run are sent to the Launch Manager
12) A call is made for solution to be triggered (launched/configured) to the relevant SALH: JSON HERE
12.1) Not sure about this step. But at some point we need to be able to retrieve solutions that requires download and install, or some other more elaborate handling than just launching or preference changes. This could also be handled in the Launch Manager instead?
13) Each SALH handler saves the state it is currently in, then applies the settings, launches the AT, etc. These could also be cloud based services.
14) TADA! – the AT/built in feature is changed/launched to fit the user.
15) The SALHs tells the launch manager what commands to do to set the SALH to the its previous state (before it was changed).
1: User Listener listens for user to log out
2: User logs out/disconnects USB, etc
3: User Listener tells Flow manager to log out
4: Request sent on to Launch Manager to reset settings to original values – JSON HERE
5: Each SALH is called with the required setting to set original values – JSON HERE
6: The settings are applied to each SALH
7: AT/built in feature is reset to original or shut down, depending on previous state