CloudSim源码分析-DatacenterBroker创建

CloudSim的开发者强烈建议研究人员开发自己的broker策略,可以根据特定的仿真场景实施云任务(cloudlet)到虚拟机的匹配。

DatacenterBroker与云用户直接交互,充当用户与数据中心的中间人,屏蔽了云数据中心的内部操作(如虚拟机的创建、管理、任务单元在虚拟机上的分配),用户只需要提交自己的服务请求即可。

DatacenterBroker定义了一组操作,用于和用户与数据中心的交互。

bindCloudletToVm(int cloudletId, int vmId):明确指定一个给定的云任务必须运行在一个特定的虚拟机上。

processEvent(SimEvent ev):处理这个broker可以获得的事件。

processResourceCharacteristicsRequest(SimEvent ev):处理数据中心特征请求。

processResourceCharacteristics(SimEvent ev):处理数据中心特征响应。

processVmCreate(SimEvent ev):处理虚拟机创建请求的响应。

processCloudletReturn(SimEvent ev):云任务完成后返回。

createVmsInDatacenter(int datacenterId):在某个数据中心中创建虚拟机,但是没有找到具体创建的代码???

submitCloudlets():提交云任务集给已创建的虚拟机。

DatacenterBroker的创建主要是初始化了许多在后续管理调度中会用到的列表。

vmList:待创建的虚拟机列表(VM参数已经设置好,并且new出了VM对象,但是还没有具体创建到数据中心)。

vmsCreatedList:真正创建的虚拟机列表。

cloudletList:用户提交给broker的任务列表。

cloudletSubmittedListbroker提交给数据中心的任务列表


  1. public DatacenterBroker(Stringname)throwsException{
  2.         super(name);

  3.         setVmList(newArrayList<Vm>());
  4.         setVmsCreatedList(newArrayList<Vm>());
  5.         setCloudletList(newArrayList<Cloudlet>());
  6.         setCloudletSubmittedList(newArrayList<Cloudlet>());
  7.         setCloudletReceivedList(newArrayList<Cloudlet>());

  8.         cloudletsSubmitted = 0;
  9.         setVmsRequested(0);
  10.         setVmsAcks(0);
  11.         setVmsDestroyed(0);

  12.         setDatacenterIdsList(newLinkedList<Integer>());
  13.         setDatacenterRequestedIdsList(newArrayList<Integer>());
  14.         setVmsToDatacentersMap(newHashMap<Integer,Integer>());
  15.         setDatacenterCharacteristicsList(newHashMap<Integer,DatacenterCharacteristics>());
  16.     }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值