How to perform auction based resource allocation using CloudSim?

  • Objects for Service Providers are created as DataCenter (DC) objects and each DC is configured with the resources in terms of type of VMs, CPU, RAM, Storage and their quantity.

               Createdcenter datacenter = createDC(dc, Integer.toString(uid));

  • Brokers are participating in auction on behalf of users. Hence broker objects are created

              broker = new CreatedBroker(name, userid);

  • An entity known as Auctioner is created to conduct auction in single or multiple rounds

              Auctioneer ac = new Auctioneer();

              ac.startAuction();

              ac.receiveResourceAvailabilityDC();

              ac.receiveResoucreRequestBroker();

  • Brokers are submitting the resource request and bid to the auctioneer

              broker.submitResourceRequest();

  • Auctioneer evaluates the bids of users

              ac..evaluateBids();

  • Auctioneer determines the winner of the auction

              ac.determineWinner();

              ac.updateRound();

  • Datacenter allocates the required resource to the winner

              vmlist = createVM(uid, dc, brokerId);

              broker.submitVmList(vmlist);

              newList = createCloudlet();

              broker.submitCloudletList(newList);

              lastClock = CloudSim.startSimulation();