# Лабораторная работа №4 - Работа с брокером сообщений

## Прохождение уроков

Урок №1.
![img.png](lesson_1%2Fimg.png)
 
Урок №2. 
![img.png](lesson_2%2Fimg.png)

Урок №3. 
![img.png](lesson_3%2Fimg.png)

Все приложения были разработаны на Python

## Разработанные приложения
В качестве предметной области было выбрано общение учителя и его учеников. Учитель дает задание ученикам, а они их выполняют. Я выделил 2 вида учеников: обычные, которым нужно некоторое время на то, чтобы выполнить задание; крутые ученики, которые выполняют задание моментально, как только получают его.
Были созданы следующие приложения:
- teacher - программа, которая представляет учителя и отправляет задания ученикам 
- Student_Normal - программа, которая представялет обычного ученика, получает и обрабатывает, с задержкой, полученные задания. 
- Student_Cool - программа, которая представялет крутого ученика, получает и моментально обрабатывает полученные задания.
Все программы были разработаны на языке Python.
Проведенные тесты:
#### Тест №1. Запущены 1 учитель, 1 обычный ученик, 1 крутой ученик:
![FirstTest.png](Teacher_student_message%2FFirstTest.png)
Показатели очереди обычного ученика:
![FirstTest_Normal.png](Teacher_student_message%2FFirstTest_Normal.png)
Показатели очереди крутого ученика:
![FirstTest_Cool.png](Teacher_student_message%2FFirstTest_Cool.png)

Вывод: одного обычного ученика не хватает на то, чтобы выполнять все полученные в срок, ему тяжело :(
Крутому же ученику все дается с легкостью.

#### Тест №2. Запущены 1 учитель, 4 обычных ученика:
![SecondTest.png](Teacher_student_message%2FSecondTest.png)
Показатели очереди обычного ученика:
![FirstTest_Normal.png](Teacher_student_message%2FFirstTest_Normal.png)
Вывод: если 4 обычных ученика объединяться и будут делать задания вместе, то они смогут избежать переполнения очереди заданий.




## Запись тестирования
Работа приложения представлена в [видео](https://disk.yandex.ru/i/zzwvXXpZhavh7A)