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 与其他系统实体关系为: