Changes between Initial Version and Version 1 of BossaReference


Ignore:
Timestamp:
Feb 9, 2008, 2:24:17 PM (16 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BossaReference

    v1 v1  
     1= Bossa reference manual =
     2== Abstractions ==
     3
     4A Bossa project has one or more ''skill apps''.
     5A skill app has a dynamic set of ''skill tasks''.
     6Each one has an associated set of arguments describing its parameters or input files.
     7Each skill task has a set of ''task instances''.
     8Each one represents a copy of the task, either in progress or completed.
     9Each instance is assigned either to a user or to a team.
     10
     11Skill apps are classified as:
     12
     13 * Online: the task is performed by a single user, sequentially, in a web browser.
     14 * Offline: the task is not online, e.g. because it's potentially handled by a group of users, or requires other asynchronous activity.
     15
     16An app has an associated URL
     17identifying a script that takes an task ID argument and displays the task instance.
     18The task may consist either of a single web page or a sequence of web pages.
     19In either case the last page in the sequence, when done, should call Bossa API
     20functions to record the completion of the task, and perhaps display another task.
     21
     22Skill apps are either:
     23
     24 * Individually validated: the app has a server-side program that examines a completed instance and decides if it's valid.
     25 * Group validated: the app has a server-side program that examines a group of instances, sees if there's a consensus, and if so constructs a ''canonical result'' and marks the instances as valid or invalid.
     26
     27A project can configure:
     28
     29 * A maximum number of outstanding offline tasks per user or group
     30 * A maximum number of tasks per day issued per user or group
     31
     32== Volunteer characteristics ==
     33
     34For each skill app and each user,
     35Bossa maintains ''skill estimate'', an estimate of the user's skill at that task.
     36This is maintained in the user's project-specific XML document.
     37Normally it's a single number in [0..1], and it's initially zero.
     38
     39The skill estimated can be computed in any of several ways:
     40
     41 * The results of  the user's interaction with a Bolt course associated with the skill app.
     42 * The user's performance on "calibration tasks" mixed into the stream.
     43 * The fraction of the user's results classified as invalid by redundancy.
     44
     45Skill estimates are used for two purposes:
     46
     47 * To decide whether to give tasks to a user;
     48 * To decide how many redundant instances of a given task are needed.
     49
     50== Implementation ==
     51
     52To get work, a user goes to a particular Bossa-supplied page.
     53There he sees a list of skill apps for which tasks are available
     54and for which he is qualified,
     55and links to courses for other apps.
     56Online and offline apps are listed separately.
     57Each app has an estimate of the time or other resources required to complete the task.
     58
     59Selecting an online app invokes the Bossa ''scheduler'' script,
     60which selects a task instance suitable for the user,
     61and redirects to its instance URL.
     62
     63Selecting an offline app invokes the Bossa scheduler,
     64which selects a task and redirects to its instance-start URL.
     65
     66Team administrators are provided with an interface for getting
     67offline tasks for the team.
     68The scheduler allows a team to get instances only for apps
     69for which some team member has the required skill.
     70
     71Users and teams are provided with an interface for seeing
     72a list of pending offline tasks.
     73They can indicate that one of them is completed;
     74this takes them to the instance-complete URL for that task.
     75
     76== Integration with BOINC ==
     77
     78Some offline tasks may involve computation done through BOINC;
     79i.e. if the task is assigned to a team, the computation is queued
     80in the project's BOINC server and dispatched to members of the team.
     81(Or if the task is assigned to a user with many computers,
     82those computers are used).