Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Allow the combination of specialised Datacenters, Hosts, VMs and Cloudlets to enable such objects to be both power- and network-aware. #45
Interfaces such as Datacenter, Host, Vm and Cloudlet have different implementing classes that provide specialised behaviour such as either network-enabled or power-aware objects. However, using inheritance to implement different kinds of such objects limits the use of just one kind of object at a given simulation. For instance, it is not possible to have a network and power-aware kind of Host. The only way would be creating a new NetworkPowerHost class that join the behaviour of both hosts.
Detailed information about how the feature should work
There must be just the basic DatacenterSimple, HostSimple, VmSimple and CloudletSimple classes. The complementary behaviour must be provided using composition instead of inheritance. This way, any object will be allowed to have multiple behaviours, such as network or power consumption. New behaviours would even be added at runtime when an object is instantiated.
An example scenario where this feature should be used
It would be possible to build a simulation that aims to assess the power consumption of network-enabled objects such as Datacenters, Hosts and VMs.
A brief explanation of why you think this feature is useful
This feature will move CloudSim Plus to a next level, allowing the composition of different behaviours for simulation objects and then the modelling of even more realistic simulation scenarios.