Difference between revisions of "Cloud4All Matchmaking Workflows"

From wiki.gpii
Jump to: navigation, search
(Created page with "== Generic, High-Level Matchmaker Workflow == <ol> <li>Fetch solutions from the Solutions Registry</li> <li>Filter the solutions based on: <ol style="list-style-type:...")
 
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
= 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 ==
 +
 +
[[file:Workflow.png]]
 +
 +
== Statistical Matchmaker ==
 +
 +
None of the steps should have side-effects, except those modifying the preference sets.
 +
 +
<ol>
 +
 +
<li>Fetch all preferences that share the context field "user".</li>
 +
 +
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.
 +
 +
<b>In:</b> Current user ID.
 +
 +
<b>Out:</b> Flat list of preferences. <key, value, condition?>
 +
 +
<li>Fetch current context.</li>
 +
 +
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?
 +
 +
<b>In:</b> Current user ID.
 +
 +
<b>Out:</b> Flat list of context values. <key, value>
 +
 +
<li>Fetch statistical Inference Data</li>
 +
 +
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.
 +
 +
<b>In:</b> Nothing.
 +
 +
<b>Out:</b> Statistical analysis Data structure.
 +
 +
<li>Infer Preferences</li>
 +
 +
Infers preferences for applications which are present (based on context) but the user has no preferences for.
 +
 +
<b>In:</b> Preferences, Context, Statistical Analysis Data
 +
 +
<b>Out:</b> Modified preferences containing new fields.
 +
 +
<li>Filter Preferences</li>
 +
 +
Start pre-evaluating preferences by discarding those which have context-conditions unlikely to happen.
 +
 +
<b>In:</b> Preferences, Context, Statistical Analysis Data
 +
 +
<b>Out:</b> Modified preferences with some preferences removed or conditions being partially evaluated.
 +
 +
<li>Infer Solutions <i>Not Yet Implemented</i></li>
 +
 +
Compile a list of solutions to launch.
 +
 +
<b>In:</b> Preferences, Context, Statistical Analysis Data
 +
 +
<b>Out:</b> List of Solutions to launch
 +
 +
<li>Lifecycle Manager Payload <i>Uses Flat-Matchmaker atm</i></li>
 +
 +
<li>Mini Matchmaker Payload <i>Not Yet Implemented</i></li>
 +
 +
</ol>
 +
 +
= Initial Version =
 +
 
== Generic, High-Level Matchmaker Workflow ==
 
== Generic, High-Level Matchmaker Workflow ==
  
Line 21: Line 93:
  
  
== Statistic Matchmaker Workflow (today) ==
+
== Statistic Matchmaker Workflow (version 1) ==
  
1. Fetch solutions from the Solutions Registry 2. Filter the solutions based on:
+
<ol>
 +
  <li>Fetch solutions from the Solutions Registry</li>
 +
  <li>Filter the solutions based on:
 +
    <ol style="list-style-type: lower-alpha;">
 +
      <li>Platform</li>
 +
      <li>Platform version</li>
 +
      <li>Device</li>
 +
    </ol>
 +
  </li>
 +
  <li>Match
 +
    <ol style="list-style-type: lower-alpha;">
 +
      <li>Infer settings for the current platform/device/context</li>
 +
      <li>Don't modify the solutions list</li>
 +
      <li>Delegate to the Flat Matchmaker for 3c & 3d</li>
 +
    </ol>
 +
  </li>
 +
</ol>
  
    a. Platform
+
== Statistic Matchmaker Workflow (version 2) ==
  b. Platform version
 
  c. Device
 
  
3. Match
+
<ol>
 +
  <li>Fetch solutions from the Solutions Registry</li>
 +
  <li>Filter the solutions based on:
 +
    <ol style="list-style-type: lower-alpha;">
 +
      <li>Platform</li>
 +
      <li>Platform version</li>
 +
      <li>Device</li>
 +
    </ol>
 +
  </li>
 +
  <li>Match
 +
    <ol style="list-style-type: lower-alpha;">
 +
      <li>Infer settings for the current platform/device/context</li>
 +
      <li>Implement custom workflow for 3b-d, resulting in the appropriate list of solutions and settings for the Lifecycle Manager</li>
 +
    </ol>
 +
  </li>
 +
</ol>
  
    a. Infer settings for the current platform/device/context
+
== Rule-Based Matchmaker Workflow ==
  b. Don't modify the solutions list
 
  c. Delegate to the Flat Matchmaker for 3c & 3d
 
  
Statistic Matchmaker Workflow (future)
+
<ol>
 +
  <li>Fetch solutions from the Solutions Registry</li>
 +
  <li>Filter the solutions based on:
 +
    <ol style="list-style-type: lower-alpha;">
 +
      <li>Platform</li>
 +
      <li>Platform version</li>
 +
      <li>Device</li>
 +
    </ol>
 +
  </li>
 +
  <li>Match
 +
    <ol style="list-style-type: lower-alpha;">
 +
      <li>Transform all preferences from application-specific to common terms (delegating to Transformer)</li>
 +
      <li>Invoke the RB MMM's conflict-resolution rules, which may produce a modified set of user preferences and list of solutions</li>
 +
      <li>Delegate to the Flat Matchmaker for 3c & 3d</li>
 +
    </ol>
 +
  </li>
 +
</ol>
  
1. Fetch solutions from the Solutions Registry 2. Filter the solutions based on:
 
  
    a. Platform
+
== Flat Matchmaker Workflow ==
  b. Platform version
 
  c. Device
 
  
3. Match
+
<ol>
 
+
  <li>Fetch solutions from the Solutions Registry</li>
    a. Infer settings for the current platform/device/context
+
  <li>Filter the solutions based on:
  b. Implement custom workflow for 3b-d, resulting in the appropriate list of solutions and settings for the Lifecycle Manager
+
    <ol style="list-style-type: lower-alpha;">
 
+
      <li>Platform</li>
Rule-Based Matchmaker Workflow
+
      <li>Platform version</li>
 
+
      <li>Device</li>
1. Fetch solutions from the Solutions Registry 2. Filter the solutions based on:
+
    </ol>
 
+
  </li>
    a. Platform
+
  <li>Match
  b. Platform version
+
     <ol style="list-style-type: lower-alpha;">
  c. Device
+
      <li>Use the Ontology Server to convert common preferences into ontologized format</li>
 
+
      <li>Don't modify the solutions list</li>
3. Match
+
      <li>Match the user's preferences to the solution's capabilities</li>
 
+
      <li>Transform the common preferences into application specific, and produce appropriate output</li>
     a. Transform all preferences from application-specific to common terms (delegating to Transformer)
+
     </ol>
  b. Invoke the RB MMM's conflict-resolution rules, which may produce a modified set of user preferences and list of solutions
+
  </li>
  c. Delegate to the Flat Matchmaker's workflow for 3c & 3d.
+
</ol>
 
 
Flat Matchmaker Workflow
 
 
 
1. Fetch solutions from the Solutions Registry 2. Filter the solutions based on:
 
 
 
     a. Platform
 
  b. Platform version
 
  c. Device
 
  
3. Match
 
  
    a. Use Ontology Server to convert common preferences into ontologized format
+
[[Category: GPII Architecture]]
  b. Don't modify the solutions list
+
[[Category: Matchmaking]]
  c. Match the user's preferences to the solution's capabilities blocks
 
  d. Transform the common preferences into application specific, and produce appropriate output
 

Latest revision as of 01:48, 14 August 2015

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

Workflow.png

Statistical Matchmaker

None of the steps should have side-effects, except those modifying the preference sets.

  1. Fetch all preferences that share the context field "user".
  2. 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?>

  3. Fetch current context.
  4. 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>

  5. Fetch statistical Inference Data
  6. 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.

  7. Infer Preferences
  8. 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.

  9. Filter Preferences
  10. 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.

  11. Infer Solutions Not Yet Implemented
  12. Compile a list of solutions to launch.

    In: Preferences, Context, Statistical Analysis Data

    Out: List of Solutions to launch

  13. Lifecycle Manager Payload Uses Flat-Matchmaker atm
  14. Mini Matchmaker Payload Not Yet Implemented

Initial Version

Generic, High-Level Matchmaker Workflow

  1. Fetch solutions from the Solutions Registry
  2. Filter the solutions based on:
    1. Platform
    2. Platform version
    3. Device
  3. Match
    1. Modify, synthesize, or infer user preferences
    2. Modify solutions list
    3. Run custom matchmaking strategy (using preferences set and solutions list)
    4. Produce and return the appropriate list of solutions and settings for the Lifecycle Manager


Statistic Matchmaker Workflow (version 1)

  1. Fetch solutions from the Solutions Registry
  2. Filter the solutions based on:
    1. Platform
    2. Platform version
    3. Device
  3. Match
    1. Infer settings for the current platform/device/context
    2. Don't modify the solutions list
    3. Delegate to the Flat Matchmaker for 3c & 3d

Statistic Matchmaker Workflow (version 2)

  1. Fetch solutions from the Solutions Registry
  2. Filter the solutions based on:
    1. Platform
    2. Platform version
    3. Device
  3. Match
    1. Infer settings for the current platform/device/context
    2. Implement custom workflow for 3b-d, resulting in the appropriate list of solutions and settings for the Lifecycle Manager

Rule-Based Matchmaker Workflow

  1. Fetch solutions from the Solutions Registry
  2. Filter the solutions based on:
    1. Platform
    2. Platform version
    3. Device
  3. Match
    1. Transform all preferences from application-specific to common terms (delegating to Transformer)
    2. Invoke the RB MMM's conflict-resolution rules, which may produce a modified set of user preferences and list of solutions
    3. Delegate to the Flat Matchmaker for 3c & 3d


Flat Matchmaker Workflow

  1. Fetch solutions from the Solutions Registry
  2. Filter the solutions based on:
    1. Platform
    2. Platform version
    3. Device
  3. Match
    1. Use the Ontology Server to convert common preferences into ontologized format
    2. Don't modify the solutions list
    3. Match the user's preferences to the solution's capabilities
    4. Transform the common preferences into application specific, and produce appropriate output