Changes between Version 1 and Version 2 of BossaReference
- Timestamp:
- Feb 9, 2008, 2:41:52 PM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
BossaReference
v1 v2 2 2 == Abstractions == 3 3 4 A Bossa project has one or more '' skill apps''.5 A skill app has a dynamic set of ''skill tasks''.4 A Bossa project has one or more ''applications''. 5 A application has a dynamic set of ''jobs''. 6 6 Each one has an associated set of arguments describing its parameters or input files. 7 Each skill task has a set of ''taskinstances''.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.7 Each job has a set of ''job instances''. 8 Each one represents a copy of the job, either in progress or completed. 9 Each job instance is assigned either to a user or to a team. 10 10 11 Skill apps are classified as:11 Applications are classified as: 12 12 13 * Online: the task isperformed by a single user, sequentially, in a web browser.14 * Offline: the task is not online, e.g. because it'spotentially 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. 15 15 16 An app has an associated URL17 identifying a script that takes a n task ID argument and displays the taskinstance.18 The task may consist eitherof a single web page or a sequence of web pages.16 An application has an associated URL 17 identifying a script that takes a job ID argument and displays the job instance. 18 The job may consist of a single web page or a sequence of web pages. 19 19 In either case the last page in the sequence, when done, should call Bossa API 20 20 functions to record the completion of the task, and perhaps display another task. 21 21 22 Skill apps are either:22 Applications are either: 23 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.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. 26 26 27 27 A project can configure: 28 28 29 * A maximum number of outstanding offline tasks per user or group30 * A maximum number of tasks per day issued per user or group29 * A maximum number of outstanding offline jobs per user or group 30 * A maximum number of jobs per day issued per user or group 31 31 32 32 == Volunteer characteristics == 33 33 34 For each skill appand each user,34 For each application and each user, 35 35 Bossa 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.36 This is maintained in the user's database record. 37 37 Normally it's a single number in [0..1], and it's initially zero. 38 38 39 The skill estimate dcan be computed in any of several ways:39 The skill estimate can be computed in any of several ways: 40 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.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. 43 43 * The fraction of the user's results classified as invalid by redundancy. 44 44 45 45 Skill estimates are used for two purposes: 46 46 47 * To decide whether to give tasks to a user;48 * To decide how many redundant instances of a given taskare needed.47 * To decide whether to give jobs to a user; 48 * To decide how many redundant instances of a given job are needed. 49 49 50 50 == Implementation == 51 51 52 52 To get work, a user goes to a particular Bossa-supplied page. 53 There he sees a list of skill apps for which tasks are available53 There he sees a list of applications for which tasks are available 54 54 and for which he is qualified, 55 and links to courses for other app s.56 Online and offline app s are listed separately.57 Each app has an estimate of the time or other resources required to complete the task.55 and links to courses for other applications. 56 Online and offline applications are listed separately. 57 Each application has an estimate of the time or other resources required to complete a job. 58 58 59 Selecting an online app invokes the Bossa ''scheduler'' script,60 which selects a taskinstance suitable for the user,59 Selecting an online application invokes the Bossa ''scheduler'' script, 60 which selects a job instance suitable for the user, 61 61 and redirects to its instance URL. 62 62 63 Selecting an offline app invokes the Bossa scheduler,64 which selects a taskand redirects to its instance-start URL.63 Selecting an offline application invokes the Bossa scheduler, 64 which selects a job and redirects to its instance-start URL. 65 65 66 66 Team 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 app s67 offline jobs for the team. 68 The scheduler allows a team to get instances only for applications 69 69 for which some team member has the required skill. 70 70 71 71 Users and teams are provided with an interface for seeing 72 a list of pending offline tasks.72 a list of pending offline jobs. 73 73 They can indicate that one of them is completed; 74 this takes them to the instance-complete URL for that task.74 this takes them to the instance-complete URL for that job. 75 75 76 76 == Integration with BOINC == 77 77 78 Some offline tasks may involve computation done through BOINC;79 i.e. if the taskis assigned to a team, the computation is queued78 Some offline jobs may involve computation done through BOINC; 79 i.e. if the job is assigned to a team, the computation is queued 80 80 in the project's BOINC server and dispatched to members of the team. 81 (Or if the taskis assigned to a user with many computers,81 (Or if the job is assigned to a user with many computers, 82 82 those computers are used).