Здравствуйте, прошел курс "Концептуальное проектирование систем в AnyLogic и GPSS World". Можно ли получить по нему сертификат? У нас в институте требуют сертификаты для создания портфолио. |
Модель обработки запросов сервером
Добавление элементов статистики
Для сбора статистических данных о времени поступления запросов и времени завершения обработки сервером необходимо добавить элемент статистики. Этот элемент будет запоминать соответствующие значения времен для каждого запроса. На основе этого он предоставит пользователю стандартную статистическую информацию (среднее, минимальное, максимальное из измеренных значений, среднеквадратичное отклонение, доверительный интервал для среднего и т.д.). Добавьте элемент сбора статистики.
- Чтобы добавить объект сбора данных гистограммы на диаграмму, перетащите элемент Данные гистограммы с палитры Статистика на диаграмму активного класса.
- Задайте свойства элемента (Рис. 1.45):
- измените Имя: на time_obrabotki;
- сделайте Кол-во интервалов: равным 50;
- задайте Нач. размер интервала: 0.01.
Добавьте еще элемент сбора статистики для определения вероятности обработанных запросов.
- Перетащите элемент Данные гистограммы с палитры Статистика на диаграмму активного класса.
- Задайте свойства элемента (Рис. 1.46, Рис. 1.47):
- измените Имя: на ver_obrabotki;
- сделайте Кол-во интервалов: равным 50;
- задайте Нач. размер интервала: 0.01.
Изменение свойств объектов диаграммы
Чтобы создавать заявки нестандартного типа, как в нашем случае Inquiry, вам нужно поместить вызов конструктора этого типа в поле Новая заявка объекта source. Но, несмотря на то, что заявки в потоке теперь и будут типа Inquiry, остальные объекты диаграммы будут продолжать их считать заявками типа Entity.
Поэтому они не позволят явно обращаться к дополнительным полям класса Inquiry. Чтобы разрешить доступ к полям вашего нестандартного класса заявки в коде динамических параметров объектов потоковой диаграммы, вам нужно указать имя нестандартного класса заявки в качестве Класса заявки этого объекта. В нашей потоковой диаграмме с учетом блока source всего пять объектов. Измените их свойства.
- Измените свойства объекта source (Рис. 1.48):
- введите Inquiry в поле Класс заявки:. Это позволит напрямую обращаться к полям класса заявки Inquiry в коде динамических параметров этого объекта;
- введите new Inquiry() в поле Новая заявка. Теперь этот объект будет создавать заявки нашего типа Inquiry;
- введите entity.time_vxod=time(); в поле Действие при выходе. Код будет сохранять время создания заявки-запроса в переменной time_vxod нашего класса заявки Inquiry.
Функция time() возвращает текущее значение модельного времени.
- Измените свойства объекта queue:
- введите Inquiry в поле Класс заявки:.
- Измените свойства объекта delay:
- введите Inquiry в поле Класс заявки:.
- Измените свойства объекта sink1:
- введите Inquiry в поле Класс заявки:.
- Измените свойства объекта sink (Рис. 1.49):
- введите Inquiry в поле Класс заявки:;
- введите в поле Действие при входе:
time_obrabotki.add(time()-entity.time_vxod);
Этот код добавляет время обработки одного запроса в объект сбора данных гистограммы time_obrabotki. Данное время определяется как разность между текущим модельным временем time() и временем входа запроса в модель. add - встроенная функция добавления элемента в массив.
entity.col_vixod=sink.count();
entity.col_vxod=source.count();
Эти коды заносят количество запросов, вошедших в блок sink и вышедших из блока source соответственно. count() - встроенная функция этих блоков, возвращает количество вошедших в блок sink и количество вышедших из блока source заявок.
ver_obrabotki.add(entity.col_vixod/entity.col_vxod);
Этот код добавляет относительную долю обработанных запросов в объект сбора данных гистограммы ver_obrabotki при поступлении каждого обработанного запроса в блок sink. На основе множества таких относительных долей определяется математическое ожидание вероятности обработки запросов сервером.