Index
The "vProcess" class represents a simulated computation task similar to a "Cloudlet" in CloudSim (Plus). It contains a randomly generated set of instructions, measured in bytes, and the RAM usage is determined by the total length of the instruction set. The "vCPU" distributes the "vProcess" onto the available "vCPUCore" instances, where the instructions of the "vProcess" are consumed. Once all instructions have been executed, the "vProcess" is considered completed, and a termination process is initiated to release the computational resources. However, the "vProcess" may also be terminated abruptly by other events during the simulation. In such cases, if not all instructions have been executed, the "vProcess" is considered failed, and the termination process is still triggered.
On the other hand, the "vPacket" class represents simulated packets for network traffic. Similar to the "vProcess", the content of the "vPacket" is randomly generated bytes. The "vPacket" is transferred between different entities such as "vSwitch", "vRouter", "vHost", and "vGateway" using their respective "vNIC" instances.
The "vRequest" class is the implementation of a simulated API call, which creates a sequence of "vProcess" and "vPacket" instances to simulate the usage of network services. A "vRequest" requires a source and a target, which can be a simulated container or a simulated user. If a simulated user is a source or target, the "vPacket" will be sent from or received by a "vGateway". The type of "vRequest" includes GET, POST, DELETE, and LIST, which determine the order and number of "vProcess" and "vPacket" creations. When a simulated user engages with a simulated Service Function Chain (SFC), a series of requests will be generated and scheduled to interact with the network services. The success of a "vRequest" depends on the completion of all associated "vProcess" and "vPacket" executions or transmissions. If any of them fail, the "vRequest" is considered failed and may be retried after a specified delay.
The "vUser" class represents simulated users who engage with the "vSFC" during the simulation. Each user's interaction is modelled as a "Workflow" that contains a series of "vRequest" instances required to complete a specific "vSFC". If any "vRequest" fails, the "Workflow" is reset, clearing all remaining "vRequest" that have not started, and the entire set of "vRequest" is recreated to be rescheduled and executed. Simulated users can request to engage with multiple "vSFC" instances simultaneously, and each "Workflow" is created independently. Users can also request "vSFC" in order, where the corresponding "Workflow" is executed sequentially. If any "Workflow" fails, subsequent "Workflow" instances will be terminated immediately.
By modelling these classes, the simulation environment can simulate user interactions, the execution of computational tasks, and the transmission of network packets within a simulated cloud environment, allowing for the evaluation of system performance and behaviour.