Cloud4All Matchmaking Workflows
Contents
Overview
This page enumerates the high-level workflow for several of the Cloud4all Matchmakers. It is intended as a tool for designing the Matchmaker framework API for future releases of the real-time framework, enabling each Matchmaker to easily customize the default workflow and inject custom behaviour at any phase in the process without requiring and code to be cut and pasted or duplicated.
2014 Edition
Overall Process Flow
Statistical Matchmaker
None of the steps should have side-effects, except those modifying the preference sets.
- Fetch all preferences that share the context field "user".
- Fetch current context.
- Fetch statistical Inference Data
- Infer Preferences
- Filter Preferences
- Infer Solutions Not Yet Implemented
- Lifecycle Manager Payload Uses Flat-Matchmaker atm
- Mini Matchmaker Payload Not Yet Implemented
Or, in other words, get all the preferences for the current user. From a machine learning point of view, all preferences are just points in a high-dimensional space, where the user is just one field in their feature vector.
In: Current user ID.
Out: Flat list of preferences. <key, value, condition?>
I guess this will not really be a fetch, as we will get update pushes from the context-aware server, rather than polling it every now and then?
In: Current user ID.
Out: Flat list of context values. <key, value>
Get the output of the offline Statistical Analysis module. As the output is both static and user-independent, we only need to do this once.
In: Nothing.
Out: Statistical analysis Data structure.
Infers preferences for applications which are present (based on context) but the user has no preferences for.
In: Preferences, Context, Statistical Analysis Data
Out: Modified preferences containing new fields.
Start pre-evaluating preferences by discarding those which have context-conditions unlikely to happen.
In: Preferences, Context, Statistical Analysis Data
Out: Modified preferences with some preferences removed or conditions being partially evaluated.
Compile a list of solutions to launch.
In: Preferences, Context, Statistical Analysis Data
Out: List of Solutions to launch
Initial Version
Generic, High-Level Matchmaker Workflow
- Fetch solutions from the Solutions Registry
- Filter the solutions based on:
- Platform
- Platform version
- Device
- Match
- Modify, synthesize, or infer user preferences
- Modify solutions list
- Run custom matchmaking strategy (using preferences set and solutions list)
- Produce and return the appropriate list of solutions and settings for the Lifecycle Manager
Statistic Matchmaker Workflow (version 1)
- Fetch solutions from the Solutions Registry
- Filter the solutions based on:
- Platform
- Platform version
- Device
- Match
- Infer settings for the current platform/device/context
- Don't modify the solutions list
- Delegate to the Flat Matchmaker for 3c & 3d
Statistic Matchmaker Workflow (version 2)
- Fetch solutions from the Solutions Registry
- Filter the solutions based on:
- Platform
- Platform version
- Device
- Match
- Infer settings for the current platform/device/context
- Implement custom workflow for 3b-d, resulting in the appropriate list of solutions and settings for the Lifecycle Manager
Rule-Based Matchmaker Workflow
- Fetch solutions from the Solutions Registry
- Filter the solutions based on:
- Platform
- Platform version
- Device
- Match
- Transform all preferences from application-specific to common terms (delegating to Transformer)
- Invoke the RB MMM's conflict-resolution rules, which may produce a modified set of user preferences and list of solutions
- Delegate to the Flat Matchmaker for 3c & 3d
Flat Matchmaker Workflow
- Fetch solutions from the Solutions Registry
- Filter the solutions based on:
- Platform
- Platform version
- Device
- Match
- Use the Ontology Server to convert common preferences into ontologized format
- Don't modify the solutions list
- Match the user's preferences to the solution's capabilities
- Transform the common preferences into application specific, and produce appropriate output