Networks 2013
Лектор - Антон Кузнецов
Практика - Антон Кузнецов
Содержание
Рейтинг
Лекции
Cокеты
Products & consumers
Это разновидность паттерна producer-consumer (производитель-потребитель). Один поток (или один модуль) отвечает за прием данных по сети. При прохождении десериализации данные превращаются в объекты (продукты). При конструировании продукты автоматически добавляются в соответствующую очередь (на каждый тип продукта - своя очередь). Потребитель (consumer) отвечает за обработку конкретного вида продуктов и в процессе своей работы получает данные из соответствующей очереди.
Основная цель паттерна - разграничение ответственности. Сетевой модуль не знает, каким образом необходимо обрабатывать каждый тип данных, поэтому он не должен об этом задумываться, что достигается за счет автоматического добавления продуктов при десериализации в соответствующую очередь. Для обработки данных есть потребители. Если возникнет необходимость добавить новый тип продуктов, то необходимо лишь добавить соответствующего потребителя.
У данного паттерна также есть разновидности - зачастую продукты помещаются не в несколько очередей, а в одну. А при обработке продукт предлагается последовательно всем потребителям. Если ни один из потребителей не обработал продукт, то клиенту возвращается ошибка...
Домашние задания
Домашнее задание от 11/10
a) ICMP-типы 13 -- запрос синхронизации времени и 14 -- время отправки, получения и т.д. Нужно реализовать клиент и сервер. Проверить, чтобы работало со стандартными службами ОС.
б) ICMP-типы 17 и 18. В 17-ом пакете есть адрес, а в 18 -- маска, соответствующая его сети. Клиент и сервер. C, С++, С++ + Boost.Asio, Java, C#, Python, Haskell, Erlang
Дедлайн 25/10
Домашнее задание -- сетевой чатик Добавить возможность считать метрики:
- Среднее время обработки клиента;
- Среднее время простоя потока
Еще две "четкие" фотографии: раз, два
Если вы не используете паттерн Products and consumers в чате, то нужно сделать дополнительное задание.
Крайний срок для чата -- 15 ноября.
Посчитать метрики для чата: Среднее время обработки клиента и понять, с какого момента оно начинает резко расти; Среднее время простоя.
Еще задание про REST. До конца ноября.
Про REST читать здесь:
http://www.vogella.com/articles/REST/article.html
Список литературы
Ссылки
---Также (добавил не Антон):
http://book.itep.ru/4/44/icmp_444.htm