SIMULATE ; Начало моделирования
* === Граничный уровень ===
GENERATE 10 ; Генерация запросов каждые 10 единиц времени
QUEUE EdgeQueue ; Запрос добавляется в очередь граничного уровня
SEIZE 1 ; Устройство на граничном уровне (идентификатор 1)
DEPART EdgeQueue ; Запрос покидает очередь
ADVANCE 5 ; Время обработки на граничном уровне
TRANSFER ,70,FogProcess ; С вероятностью 70% отправляем запрос на туман
TRANSFER ,30,EdgeTerminate ; С вероятностью 30% запрос завершается
RELEASE 1 ; Освобождаем устройство на границе
EdgeTerminate TERMINATE 1 ; Завершаем запрос, оставшийся на граничном уровне
* === Туманный уровень ===
FogProcess QUEUE FogQueue ; Запрос добавляется в очередь тумана
SEIZE 2 ; Устройство на туманном уровне (идентификатор 2)
DEPART FogQueue ; Запрос покидает очередь
ADVANCE 8 ; Время обработки на туманном уровне
TRANSFER ,80,CloudProcess ; С вероятностью 80% отправляем запрос в облако
TRANSFER ,20,FogTerminate ; С вероятностью 20% запрос завершается
RELEASE 2 ; Освобождаем устройство на тумане
FogTerminate TERMINATE 1 ; Завершаем запрос, оставшийся на туманном уровне
* === Облачный уровень ===
CloudProcess QUEUE CloudQueue ; Запрос добавляется в очередь облака
SEIZE 3 ; Устройство на облачном уровне (идентификатор 3)
DEPART CloudQueue ; Запрос покидает очередь
ADVANCE 12 ; Время обработки в облаке
TRANSFER ,60,FogProcess ; С вероятностью 60% возвращаем запрос на туман
TRANSFER ,40,CloudTerminate ; С вероятностью 40% запрос завершается
RELEASE 3 ; Освобождаем устройство в облаке
CloudTerminate TERMINATE 1 ; Завершаем запрос, оставшийся в облаке
* === Пул устройств (STORAGE) ===
STORAGE 1,50 ; 50 устройств на граничном уровне
STORAGE 2,10 ; 10 устройств на туманном уровне
STORAGE 3,5 ; 5 устройств на облаке
* === Завершение моделирования ===
START 1000 ; Запускаем моделирование с 1000 запросами
END ; Завершение моделирования