WorkflowDatacenter (cloudsim 3.1-SNAPSHOT API)

org.cloudbus.cloudsim.workflow

## Class WorkflowDatacenter

- java.lang.Object
- - org.cloudbus.cloudsim.core.SimEntity
  - - org.cloudbus.cloudsim.Datacenter
    - - org.cloudbus.cloudsim.workflow.WorkflowDatacenter

- All Implemented Interfaces:
    Cloneable

      public class WorkflowDatacenter
      extends Datacenter

  This class extends data center to support simulation of workflow applications including internal data transfer delays if data has to be moved for task running in other VM.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static long` | `BILLING_INTERVAL`
    `static int` | `DATA_ITEM_AVAILABLE`
    `protected static double` | `QUANTUM`
    `static int` | `TRANSFER_DATA_ITEM`
    `static int` | `UPDATE_NETWORK`

    - ### Fields inherited from class org.cloudbus.cloudsim.core.SimEntity

      `FINISHED, HOLDING, RUNNABLE, WAITING`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `WorkflowDatacenter(String name, DatacenterCharacteristics characteristics, VmAllocationPolicy vmAllocationPolicy, double bandwidth, double latency, int basicCpuUnit, long averageCreationDelay, VMOffers vmOffers, long seed)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `printSummary()`
    `protected void` | `processCloudletSubmit(SimEvent ev, boolean ack)` Processes a Cloudlet submission.
    `protected void` | `processOtherEvent(SimEvent ev)` Here all the method related to VM requests will be received and forwarded to the related method.
    `protected void` | `processVmCreate(SimEvent ev, boolean ack)` Process the event for an User/Broker who wants to create a VM in this PowerDatacenter.
    `protected void` | `processVmDestroy(SimEvent ev, boolean ack)` Process the event for an User/Broker who wants to destroy a VM previously created in this PowerDatacenter.
    `protected void` | `updateCloudletProcessing()` Updates processing of each cloudlet running in this PowerDatacenter.

    - ### Methods inherited from class org.cloudbus.cloudsim.Datacenter

      `addFile, checkCloudletCompletion, contains, contains, getCharacteristics, getDebts, getHostList, getLastProcessTime, getRegionalCisName, getSchedulingInterval, getStorageList, getVmAllocationPolicy, getVmList, predictFileTransferTime, printDebts, processCloudlet, processCloudletCancel, processCloudletMove, processCloudletPause, processCloudletResume, processCloudletStatus, processDataAdd, processDataDelete, processEvent, processPingRequest, processVmMigrate, registerOtherEntity, setCharacteristics, setDebts, setLastProcessTime, setRegionalCisName, setSchedulingInterval, setStorageList, setVmAllocationPolicy, setVmList, shutdownEntity, startEntity`

    - ### Methods inherited from class org.cloudbus.cloudsim.core.SimEntity

      `cancelEvent, clone, getEventBuffer, getId, getName, getNextEvent, getNextEvent, getState, numEventsWaiting, numEventsWaiting, pause, run, schedule, schedule, schedule, schedule, scheduleFirst, scheduleFirst, scheduleFirst, scheduleFirst, scheduleFirstNow, scheduleFirstNow, scheduleFirstNow, scheduleFirstNow, scheduleNow, scheduleNow, scheduleNow, scheduleNow, selectEvent, send, send, send, send, sendNow, sendNow, sendNow, sendNow, setEventBuffer, setId, setState, waitForEvent`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### UPDATE_NETWORK

          public static final int UPDATE_NETWORK

      See Also:
        Constant Field Values

    - #### TRANSFER_DATA_ITEM

          public static final int TRANSFER_DATA_ITEM

      See Also:
        Constant Field Values

    - #### DATA_ITEM_AVAILABLE

          public static final int DATA_ITEM_AVAILABLE

      See Also:
        Constant Field Values

    - #### BILLING_INTERVAL

          public static final long BILLING_INTERVAL

      See Also:
        Constant Field Values

    - #### QUANTUM

          protected static final double QUANTUM

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### WorkflowDatacenter

          public WorkflowDatacenter(String name,
                            DatacenterCharacteristics characteristics,
                            VmAllocationPolicy vmAllocationPolicy,
                            double bandwidth,
                            double latency,
                            int basicCpuUnit,
                            long averageCreationDelay,
                            VMOffers vmOffers,
                            long seed)
                             throws Exception

      Throws:
        `Exception`

  - ### Method Detail

    - #### processOtherEvent

          protected void processOtherEvent(SimEvent ev)

      Description copied from class: `Datacenter`
      Here all the method related to VM requests will be received and forwarded to the related method.
      Overrides:
        `processOtherEvent` in class `Datacenter`
      Parameters:
        `ev` - the received event

    - #### processVmCreate

          protected void processVmCreate(SimEvent ev,
                             boolean ack)

      Description copied from class: `Datacenter`
      Process the event for an User/Broker who wants to create a VM in this PowerDatacenter. This PowerDatacenter will then send the status back to the User/Broker.
      Overrides:
        `processVmCreate` in class `Datacenter`
      Parameters:
        `ev` - a Sim_event object
        `ack` - the ack

    - #### processVmDestroy

          protected void processVmDestroy(SimEvent ev,
                              boolean ack)

      Description copied from class: `Datacenter`
      Process the event for an User/Broker who wants to destroy a VM previously created in this PowerDatacenter. This PowerDatacenter may send, upon request, the status back to the User/Broker.
      Overrides:
        `processVmDestroy` in class `Datacenter`
      Parameters:
        `ev` - a Sim_event object
        `ack` - the ack

    - #### processCloudletSubmit

          protected void processCloudletSubmit(SimEvent ev,
                                   boolean ack)

      Description copied from class: `Datacenter`
      Processes a Cloudlet submission.
      Overrides:
        `processCloudletSubmit` in class `Datacenter`
      Parameters:
        `ev` - a SimEvent object
        `ack` - an acknowledgement

    - #### updateCloudletProcessing

          protected void updateCloudletProcessing()

      Description copied from class: `Datacenter`
      Updates processing of each cloudlet running in this PowerDatacenter. It is necessary because Hosts and VirtualMachines are simple objects, not entities. So, they don't receive events and updating cloudlets inside them must be called from the outside.
      Overrides:
        `updateCloudletProcessing` in class `Datacenter`

    - #### printSummary

          public void printSummary()

Copyright © 2013 The Cloud Computing and Distributed Systems (CLOUDS) Laboratory, The University of Melbourne. All Rights Reserved.