Bossa

来自中国分布式计算总站
BiscuiT讨论 | 贡献2008年2月28日 (四) 20:09的版本
跳转到导航 跳转到搜索

Bossa

介绍

Bossa 是 Berkeley Open System for Skill Aggregation 的简称,即伯克利开放式人工协助平台

Bossa 是一个提供创建项目的软件平台,通过网络利用众多志愿者的技能和智慧来完成一套任务。这一直有多种叫法,技能汇聚,分布式思想,人力协作计算。

Bossa 设计上适合多种任务。尤其是:

  • 短暂的任务(通过单一网页在线运作)或持续数周并涉及运行单独的程序。
  • 任务可以由一个独立用户完成或者由一组用户相互协作进行。
  • 任务可能自动确认是否有效,或者通过比对多组事例进行确认。

Bossa 由一个 MySQL 数据库和一组 PHP 页面组成。各个项目安装这些组件到他们各自的服务器,并加上各自的 PHP 脚本以生成、显示和处理任务。Bossa 利用 BOINC 的社区功能以供成员编组和交流,并利用 Bolt(Berkeley Open Learning Technology,伯克利开放式科技学习系统)系统对志愿者进行培训。

Bossa 正在开发中,更多的信息可以联系 David Anderson参考文献手册了解目前的进展。

抽象概念

一个 Bossa 项目会有一个或多个技能工作程序。一个技能工作程序有一套动态技能任务。每一个任务有一套伴生的参数来描述它的特征或输入文件。每个技能任务都有一套任务实例。无论正在进行或者已完成的都有一个描述任务的副本。每个实例要么分配给一个用户或一个团队。

技能应用程序按以下分类:

  • 在线:任务由单个用户在网页浏览器上按顺序的进行。
  • 离线:任务不需要在线进行,例如:由于任务可能是由一组用户,或者要求其他的非同步操作。

一个应用程序有一个关联的网址识别脚本,以获得任务 ID 参数并显示任务实例。任务既可以是单一网页也可以是一个序列的网页。无论哪种情况,当任务完成,按顺序最后的页面将通知 Bossa 以记录完成的任务,并可能显示另一个任务。

技能任务结果验证:

  • 个别验证:由一个服务器端程序检验一个已完成的任务,并决定它是否有效。
  • 小组验证:由一个服务器端程序检验一组任务,通过观察它们的结果是否一致,并且以此建立一个标准结果来判断已完成的任务是否有效。

一个项目的配置:

  • 对每个用户或团队配置尽可能的的优秀离线任务。
  • 对每个用户或团队每天发送尽可能多的任务。



志愿者的特徵

对于执行的任务,Bossa 不断的的对每个技能程序和每个用户进行技能评估。这会保存在项目特定的 XML 文档中。通常是 [0..1] 里面的单一号码,并且初始值为零。

通过以下几个途径对技能进行评估:

  • 通过用户在 Bolt 课程中伴随技能应用时的结果。
  • 通过用户在执行中混入的“测试任务”。
  • 通过用户部分冗余的无效结果。

技能评估为了两个目的:

  • 以决定是否给予用户任务。
  • 以决定一项特定的任务需要多少事例。



运作

用户需要到 Bossa 提供的特定页面获得任务。这是会看到一个技能任务列表,列出了哪些任务正在等候,哪些任务是用户有能力去做的,还有链接到其他技能程序的课程。

当用户选择了一个适合自己的在线技能任务,Bossa 将调度脚本并重定向到事例的网址。

当选择了一个离线任务,Bossa 将调度重定向至事例开始网址。

提供给团队管理者一个界面,为团队获取各离线任务。调度程序允许一个团队为各程序和一些具有所需技能的成员只获取事例。

提供给用户和团队一个界面以列出等待确认的离线任务。可以显示某一他们已经完成的任务;并可以引导他们到完整事例的网址。

整合 BOINC

一些离线任务可能涉及到需要 BOINC 完成的计算,即如果任务是队列于 BOINC 项目服务器而发送给团队的成员被分派出来。