1. CrowdKernel 接口
接口 CrowdKernel 定义了程序员与内核功能交互的接口 。 目前CrowdKernel 定义了如下功能:
| 
 返回值  | 
 原型  | 
 含义  | 
| 
 boolean  | 
 isInitialed();  | 
 返回内核是否初始化  | 
| 
 void  | 
 algoSelect(String name);  | 
 选择需要的算法  | 
| 
 void  | 
 initial(Object...args);  | 
 以参数初始化内核  | 
| 
 void  | 
 initial();  | 
 初始化内核  | 
| 
 SystemResourceCollection  | 
 getSystemResourceCollection();  | 
 获取系统实体集合对象  | 
| 
 boolean  | 
 submitTask(Task task);  | 
 提交任务  | 
| 
 List<Task>  | 
 getTasks();  | 
 获取系统中的任务  | 
| 
 List<Participant>  | 
 getTaskAssignmentScheme(Task task);  | 
 获取任务的分配结果  | 
| 
 List<List<Participant>>  | 
 getTaskAssignmentScheme(ArrayList<Task> tasks);  | 
 获取多任务的分配结果  | 
| 
 List<Participant>  | 
 getTaskRecommendationScheme(Task task);  | 
 获取任务的推荐结果  | 
| 
 List<List<Participant>>  | 
 getTaskRecommendationScheme(ArrayList<Task tasks);  | 
 获取多任务的推荐结果  | 
| 
 List<Participant>  | 
 getTaskParticipantSelectionResult(Task task);  | 
 获取参与者选择结果  | 
| 
 List<List<Participant>>  | 
 getTaskParticipantSelectionResult(ArrayList<Task tasks);  | 
 获取多任务的参与者选择 结果  | 
| 
 List<Participant>  | 
 getParticipants();  | 
 获取系统中的参与者  | 
2. Kernel 实现
Kernel.java 是接口 CrowdKernel 的具体实现。Kernel 主要负责管 理系统中的各类实体, 并提供一些接口调用保护 。 目前使用 JAVA 代理模式接口完成了方法调用安全,主要检查在调用方法前,内核需要完成初始化 。具体的 UML 视图如下:
 
3. Scheduler
Scheduler 实体负责系统的任务分配与任务调度流程, 其依赖于 不同算法工厂来实现不同的调度效果 。 Scheduler 与其他系统实体关系为:
