学习
STUDY
CrowdKernel 接口与实现
发布时间: 2024年12月27日
来源: 西工大
点击数: 66

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