Changes between Version 1 and Version 2 of BossaReference


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

--

Legend:

Unmodified
Added
Removed
Modified
  • BossaReference

    v1 v2  
    22== Abstractions ==
    33
    4 A Bossa project has one or more ''skill apps''.
    5 A skill app has a dynamic set of ''skill tasks''.
     4A Bossa project has one or more ''applications''.
     5A application has a dynamic set of ''jobs''.
    66Each one has an associated set of arguments describing its parameters or input files.
    7 Each skill task has a set of ''task instances''.
    8 Each one represents a copy of the task, either in progress or completed.
    9 Each instance is assigned either to a user or to a team.
     7Each job has a set of ''job instances''.
     8Each one represents a copy of the job, either in progress or completed.
     9Each job instance is assigned either to a user or to a team.
    1010
    11 Skill apps are classified as:
     11Applications are classified as:
    1212
    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.
     13 * Online: jobs are performed by a single user, sequentially, in a web browser.
     14 * Offline: jobs are not online, e.g. because they're potentially handled by a group of users, or requires other asynchronous activity.
    1515
    16 An app has an associated URL
    17 identifying a script that takes an task ID argument and displays the task instance.
    18 The task may consist either of a single web page or a sequence of web pages.
     16An application has an associated URL
     17identifying a script that takes a job  ID argument and displays the job instance.
     18The job may consist of a single web page or a sequence of web pages.
    1919In either case the last page in the sequence, when done, should call Bossa API
    2020functions to record the completion of the task, and perhaps display another task.
    2121
    22 Skill apps are either:
     22Applications are either:
    2323
    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.
     24 * Individually validated: the application has a server-side program that examines a completed instance and decides if it's valid.
     25 * Group validated: the application 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.
    2626
    2727A project can configure:
    2828
    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
     29 * A maximum number of outstanding offline jobs per user or group
     30 * A maximum number of jobs per day issued per user or group
    3131
    3232== Volunteer characteristics ==
    3333
    34 For each skill app and each user,
     34For each application and each user,
    3535Bossa maintains ''skill estimate'', an estimate of the user's skill at that task.
    36 This is maintained in the user's project-specific XML document.
     36This is maintained in the user's database record.
    3737Normally it's a single number in [0..1], and it's initially zero.
    3838
    39 The skill estimated can be computed in any of several ways:
     39The skill estimate can be computed in any of several ways:
    4040
    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.
     41 * The results of the user's interaction with a Bolt course associated with the application.
     42 * The user's performance on "calibration jobs" mixed into the stream.
    4343 * The fraction of the user's results classified as invalid by redundancy.
    4444
    4545Skill estimates are used for two purposes:
    4646
    47  * To decide whether to give tasks to a user;
    48  * To decide how many redundant instances of a given task are needed.
     47 * To decide whether to give jobs to a user;
     48 * To decide how many redundant instances of a given job are needed.
    4949
    5050== Implementation ==
    5151
    5252To get work, a user goes to a particular Bossa-supplied page.
    53 There he sees a list of skill apps for which tasks are available
     53There he sees a list of applications for which tasks are available
    5454and for which he is qualified,
    55 and links to courses for other apps.
    56 Online and offline apps are listed separately.
    57 Each app has an estimate of the time or other resources required to complete the task.
     55and links to courses for other applications.
     56Online and offline applications are listed separately.
     57Each application has an estimate of the time or other resources required to complete a job.
    5858
    59 Selecting an online app invokes the Bossa ''scheduler'' script,
    60 which selects a task instance suitable for the user,
     59Selecting an online application invokes the Bossa ''scheduler'' script,
     60which selects a job instance suitable for the user,
    6161and redirects to its instance URL.
    6262
    63 Selecting an offline app invokes the Bossa scheduler,
    64 which selects a task and redirects to its instance-start URL.
     63Selecting an offline application invokes the Bossa scheduler,
     64which selects a job and redirects to its instance-start URL.
    6565
    6666Team administrators are provided with an interface for getting
    67 offline tasks for the team.
    68 The scheduler allows a team to get instances only for apps
     67offline jobs for the team.
     68The scheduler allows a team to get instances only for applications
    6969for which some team member has the required skill.
    7070
    7171Users and teams are provided with an interface for seeing
    72 a list of pending offline tasks.
     72a list of pending offline jobs.
    7373They can indicate that one of them is completed;
    74 this takes them to the instance-complete URL for that task.
     74this takes them to the instance-complete URL for that job.
    7575
    7676== Integration with BOINC ==
    7777
    78 Some offline tasks may involve computation done through BOINC;
    79 i.e. if the task is assigned to a team, the computation is queued
     78Some offline jobs may involve computation done through BOINC;
     79i.e. if the job is assigned to a team, the computation is queued
    8080in 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,
     81(Or if the job is assigned to a user with many computers,
    8282those computers are used).