SlideShare una empresa de Scribd logo
1 de 132
УК 03.011.01-2011
Учебный курс. Обучение.
Паттерны обмена сообщениями.
Основные компоненты
•
•
•
•
•
•

Каналы
Сообщения
Фильтры
Маршрутизация
Преобразование
Конечные точки
Сообщение
• Как организовать обмен данными между приложениями?
• Сообщение – атомарная единица переданной
информации.
Сообщение содержит:
• Заголовок сообщения.
Служебная
информация,
используемая
сообщениями (СОС). Например, адрес
получателя.

• Тело сообщения.
Данные, передаваемые с помощью СОС.

системой
обмена
отправителя, адрес
Канал сообщений
• Как передать сообщения от одного приложения к
другому?
• Соединить приложения с помощью канала сообщений.
Канал доставляет помещенные в него сообщения от
отправителя к получателю.
Фильтры сообщений
• Как сделать приложение гибким и независимым?
• Надо разделить сложную задачу на последовательность
простых, независимых этапов (фильтров), объединенных с
помощью каналов
Способы обработки
• Конвейерная обработка
• Параллельная обработка
Маршрутизатор сообщений
• Как передавать сообщения различным фильтрам, в
зависимости от условий?
• Роутер сообщений.
Специальный фильтр, который умеет извлекать сообщение из одного
канала и помещать его в другой канал.
Типы маршрутизаторов
• Фиксированный – один входящий и один исходящий
канал
• Маршрутизаторы на основе содержимого
• Маршрутизаторы на основе контекста
Пример, балансировка загрузки

• Динамический маршрутизатор
• Маршрутизаторы с поддержкой состояния
• Маршрутизаторы без поддержки состояния
Конечная точка СОС
• Как подключить приложение к системе обмена
сообщениями?
• Конечная точка – клиент СОС, позволяющий приложению
принимать и отправлять сообщения.
Результаты
• Учитывает особенности конкретного приложения
• Инкапсулирует СОС
Транслятор сообщений
• Приложения используют разные форматы данных. Как
организовать взаимодействие?
• Для преобразования использовать специальный фильтр –
транслятор сообщений
Уровни преобразования
Уровень

Объект

Средство

Структуры данных

Сущности, ассоциации

Шаблоны структурного
преобразования

Типы данных

Имя поля, тип данных,
ограничение, значение
поля

Визуальные редакторы,
XSLT, БД

Представление данных

Кодировка, XML, JSON

Анализаторы, API

Транспортный

TCP/IP, HTTP, SOAP, JMS

Адаптер канала
КАНАЛЫ ОБМЕНА СООБЩЕНИЯМИ
Основные вопросы
• Фиксированный набор каналов
• Определение набора каналов
• Однонаправленные каналы
•
•
•
•
•
•

Отношения “один-к-одному” и “один-ко-многим”
Тип данных
Неверные и недоставленные сообщения
Защита от сбоев
Клиенты, не предназначенные для обмена сообщениями
Коммуникационная магистраль
Канал “точка-точка”
• Как гарантировать, что документ или вызов будет получен
только одним приложением?
Канал “публикация-подписка”
• Как оповестить о событии всех заинтересованных
получателей?
Канал типа данных
• Как приложение должно отправлять данные, чтобы
получатель знал как их обрабатывать?
Канал недопустимых сообщений
• Что делать с сообщением, которое по каким-либо
причинам не может быть обработано?
• Сообщения в канале не должны игнорироваться
• Недопустимость сообщения определяется контекстом –
местом обработки сообщения
Канал недоставленных сообщений
• Что делать с сообщениями, которые не удается доставить?
Гарантированная доставка
• Как гарантировать, что сообщение будет доставлено, даже
в случае возникновения сбоя системы обмена
сообщениями?
• Приводит к снижению производительности
• Степень надежности 99,999%
Адаптер канала
• Как подключить изолированное приложение к системе
обмена сообщениями?
Виды адаптеров
• Адаптер интерфейса пользователя
• Адаптер бизнес-логики
• Адаптер базы данных
Мост обмена сообщениями
• Как связать несколько различных систем обмена
сообщениями?
Шина сообщений
• Как организовать согласованную работу приложений, не
поставив их в зависимость друг от друга?
• Состоит из:
– Стандартная коммуникационная инфраструктура
– Адаптеры
– Стандартная инфраструктура команд
СООБЩЕНИЯ
Основные сообщения
•
•
•
•

Цель отправки сообщения
Возвращение ответа
Большие объемы данных
Медленный обмен сообщениями
Сообщение с командой
• Как использовать обмен сообщениями для вызова
процедуры другого приложения?
Сообщение с данными документа
• Как использовать сообщения для обмена данных между
приложениями?
Сообщение о событии
• Как использовать обмен сообщениями для передачи
событий из одного приложения в другое?
• Модель проталкивания
• Модель вытягивания
– Обновление
– Запрос о состоянии
– Ответ о состоянии
Запрос-ответ
• Как организовать обмен сообщениями, чтобы отправитель
сообщения получал на него ответ?
• Подходы к получению ответа:
– Синхронная блокировка
– Асинхронный обратный вызов
Варианты запросов и ответов
• Удаленный вызов процедуры с помощью обмена
сообщениями.
– Запрос – сообщение с командой, описывающее функцию, которую
надо вызвать
– Ответ – сообщение с данными документа

• Запрос с помощью обмена сообщениями
– Сообщение, с текстом запроса
– Ответ – результирующий набор данных, отправленный в виде
цепочки сообщений

• Уведомление/подтверждение
– Запрос – сообщение о событии
– Ответ – сообщение с данными, подтверждающими получение
сообщения
Виды ответов
• Пустой ответ
• Результат
• Исключение
Обратный адрес
• Куда отправлять сообщение с ответом
Идентификатор корреляции
• Как инициатору запроса, получившему сообщение узнать,
к какому запросу оно относится?
Цепочка сообщений
• Как передавать большие объемы данных?
Срок действия сообщения
• Как получатель узнает, что сообщение уже устарело?
Индикатор формата
• Как спроектировать формат сообщения, чтобы
предусмотреть возможность изменений в будущем?
Подходы:
1. Номер версии
2. Внешний ключ
3. Документ с описанием формата
МАРШРУТИЗАЦИЯ СООБЩЕНИЙ
Классификация
Маршрутизатор на основе
содержимого
Фильтр сообщений
• Фильтры с сохранением и без сохранения состояния
• Фильтры vs маршрутизатор на основе содержимого
Динамический роутер
Стратегии разрешения кофликтов
• Игнорировать управляющие сообщения, которые
конфликтуют с существующими правилами
• Отправить сообщение первому получателю с
подходящими критериями
• Отправить сообщение всем получателям с подходящими
критериями
Список получателей
Надежность
• Одна транзакция
• Постоянный список получателей
• Идемпотентные получатели
• Динамический список получатеоей
• Эффективность с точки зрения сети
• Список получателей vs канал “публикация-подписка” с
фильтрами сообщений
Разветвитель
• Итеративный раветвитель
• Статический разветвитель
• Упорядоченные или неупорядоченные дочерние
сообщения
Агрегатор
Вопросы при реализации:
1. Корреляция. Какие входящие сообщения связаны друг с
другом?
2. Условия полноты. Когда агрегатор готов опубликовать
итоговое сообщение?
3. Алгоритм агрегации. Как скомпоновать полученные
сообщения в одно итоговое сообщение?
Стратегии агрегации
1.
2.
3.
4.
5.

Ожидать всех.
Время ожидания.
Первый – лучший.
Время ожидания с досрочным завершением.
Внешнее событие.
Условие полноты агрегата
1. Выбор “лучшего” ответа.
2. Сжатие данных.
3. Сбор данных для дальнейшей оценки.
Преобразователь порядка
Вопросы реализации:
1. Порядковый номер
2. Буфер для хранения сообщений
3. Борьба с переполнением буфера.
Обработчик составного сообщения
Рассылка сборка
Варианты реализации
1. Распределение с помощью списка получателей
2. Аукцион. Рассылка-сборка через “публикация-подписка”.
Карта маршрутизации
Необходимо провести сообщение через несколько этапов
обработки, при этом на момент разработки системы
последовательность этапов неизвестна и может
отличаться для каждого сообщения
Необходимо обеспечить:
• Эффективное продвижение сообщений (сообщения
должны проходить только через необходимые этапы
обработки)
• Эффективное использование ресурсов
• Гибкость (маршрут должен легко поддаваться
изменениям)
• Простота поддержки
Область применения
1. Цепочка бинарных этапов проверки
2. Каждый этап обработки представляет собой
преобразование без сохранения состояния
3. На каждом этапе происходит сбор данных, но не
принимаются решения
Диспетчер процессов
• Как провести сообщение через несколько этапов
обработки, если на момент проектирования системы
требуемые этапы обработки неизвестны и необязательно
будут выполняться последовательно друг за другом?
Аспекты реализации
•
•
•
•

Управление состоянием
Экземпляры процесса
Корреляция
Сохранение состояния в сообщениях
• Создание определения процесса
Брокер сообщений
• Как отделить пункт назначения сообщения от его
отправителя, сохраняя централизованный контроль над
сообщениями?
ПРЕОБРАЗОВАНИЕ СООБЩЕНИЙ
Оболочка конверта
• Система обмена сообщениями существующего
приложения предъявляет особые требования к формату
сообщения
Процесс упаковки сообщения в
конверт
1. Исходное приложение публикует сообщение в
необработанном виде.
2. Упаковщик принимает необработанное сообщение и
преобразует его в формат, удовлетворяющий
требованиям системы обмена сообщениями.
3. Система обмена сообщениями передает упакованное
сообщение в пункт назначения
4. Доставленное сообщение попадает к распаковщику.
5. Распакованное сообщение доставляется получателю.
Расширитель содержимого
Как обеспечить взаимодействие с другой системой, если
отправитель сообщения предоставил не все данные?
Источники расширения
1. Вычисления
2. Среда
3. Другая система
Фильтр содержимого
Как упростить работу с большими сообщениями, если
получателя интересует лишь малая часть содержащихся в
них данных?
• Удалить лишнее
• Упрощение структуры
Квитанция
Как сократить объем передаваемых данных, но не потерять
их?
Этапы обработки
1. Прибывает сообщение с данными
2. Регистрация багажа генерирует уникальный ключ для
информации, содержащейся в сообщении.
3. Регистрация багажа извлекает данные из сообщения и
помещает данные в постоянное хранилище
4. Данные помещенные в хранилище удаляются из
сообщения. Вместо них отправляется квитанция.
5. Расширитель содержимого на основании квитанции
извлекает данные из хранилища.
Выбор ключа
1. В теле сообщения уже может содержаться ключ.
2. Можно использовать идентификатор самого сообщения.
3. Генерировать уникальный ключ.
Специальные вопросы
• Использование ключа для сокрытия информации
• Использование квитанции с диспетчером процессов
Нормализатор
• Обработка входящих сообщений эквивалентных по
смыслу, но различных по формату
Каноническая модель данных
Минимизация зависимостей при интеграции
приложений, использующих различные форматы данных
Способы преобразования
1. Изменить формат данных, используемый внутри
приложения
2. Внедрить в приложение преобразователь обмена
сообщениями
3. Использовать внешний транслятор сообщений
Результаты
1. Двойное преобразование данных
2. Сложность разработка канонической модели
3. Зависимости между форматами данных
–

Индикатор формата
КОНЕЧНЫЕ ТОЧКИ ОБМЕНА
СООБЩЕНИЯМИ
Шлюз обмена сообщениями
• Скрыть доступ к системе обмена сообщениями, скрыв его
от остальных частей приложения
Виды шлюзов
1. Блокирующий (синхронный) шлюз обмена сообщениями
2. Событийно управляемый (асинхронный) шлюз обмена
сообщениями
Вопросы реализации
1. Соединение шлюзов в цепочки для обеспечения уровней
абстракции
2. Обработка исключений системы обмена сообщениями
Преобразование исключений системы обмена сообщениями в
исключения, специфичные для предметной области

3. Генерация кода шлюзов
–
–

Web-сервисы
WCF

4. Использование шлюзов в процессе тестирования
Преобразователь сообщения
Перемещение данных между объектами предметной
области и элементами системы обмена сообщениям, не
нарушая их независимость?
Вопросы реализации
1. Упрощение кодирования
–

Дублирование кода

2. Преобразователь + транслятор для канонической модели
данных
Транзакционный клиент
• Как клиенту управлять транзакциями при взаимодействии
с системой обмена сообщениями?
• Гарантируют, что сообщение либо будет добавлено в
канал, либо не будет
• Гарантируют, что либо будет считано из канала, либо не
будет

• Транзакционный отправитель – сообщение не будет
добавлено в канал до тех пор, пока отправитель не
подтвердит выполнение транзакции
• Транзакционный получатель – сообщение не будет
удалено из канала до тех пор, пока получатель не
подтвердит выполнение транзакции.
Сценарии транзакций
1.
2.
3.
4.

Отправка-получение пары сообщений.
Группа сообщений.
Сообщение – база данных
Сообщение – рабочий поток
Отправка-получение пары
сообщений
1. Реализация
Начать транзакцию, получить и обработать первое сообщение,
отправить второе, подтвердить выполнение транзакции

2. Результат
Первое сообщение не будет удалено из своего канала, пока второе не
будет успешно добавлено в свой канал

3. Тип транзакции
Если оба сообщения отправляются по каналам одной системы, то
транзакция простая, в противном случае - распределенная

4. !Может применяться только получателем запроса
Группа сообщений
1. Реализация
Начать транзакции, по очереди отправить или получить все
сообщения, после этого подтвердить выполнение транзакции.

2. Результат
При отправке ни одно из них не будет добавлено в канал до тех пор,
пока они все не буду успешно отправлены. При получении
сообщений ни одно из них не будет удалено из канала до тех пор,
пока все не будут успешно получены.

3. Тип транзакции
Простая. Часто гарантируется, что будут получены в том же порядке, в
котором были отправлены.
Сообщение – база данных
1. Реализация
Начать транзакцию, получить сообщение, обновить базу
данных, после этого подтвердить выполнение транзакции. Или
обновить базу, отправить сообщение, подтвердить выполнение
транзакции.

2. Результат
Сообщение не будет удалено из канала до тех пор, пока не
произойдет обновление базы данных или база данных не будет
обновлена, пока не будут разосланы соответствующие
уведомления.

3. Тип транзакции
Распределенная транзакция.
Сообщение – рабочий поток
1. Реализация
Начать транзакцию, открыть единицу работы, отправить сообщение с
запросом, подтвердить выполнение транзакции. Или начать
другую транзакцию, получить сообщение с ответом, закрыть или
аварийно завершить единицу работы, подтвердить выполнение
транзакции.

2. Результат
Единица работы не будет успешно закрыта, пока запрос не будет
отправлен, или ответ не будет удален из канала, пока единица
работы не будет обновлена.

3. Тип транзакции
Распределенная транзакция
Опрашивающий потребитель
Приложение должно потреблять сообщения только
тогда, когда оно готово это сделать.

Явный запрос сообщений из канала.
Событийно-управляемый
потребитель
Автоматическое потребление сообщений по мере их
поступления
Составные части
1. Инициализация.
2. Потребление.
Конкурирующие потребители
Параллельная обработка сообщений одним клиентом
Особенности
• Канал “точка-точка”
• Каждый из потребителей выполняется в собственном
потоке
• Скорость обработки сообщений определяется тем, как
быстро канал может распределять сообщения по
потребителям
• Конкурирующие потребители могут быть
опрашивающими, событийными или их комбинацией.
• Транзакционность может приводить к снижению
конкурирующих потребителей
Диспетчер сообщений
Согласованное распределение и обработка сообщений
потребителями одного канала
Составные части паттерна
• Диспетчер. Потребляет сообщения из канала, а затем
раздает их.
• Исполнитель. Получает сообщение от диспетчера, а затем
обрабатывает его.
Избирательный потребитель
Потребитель сообщений выбирает сообщения, какие он
хочет обработать.
Компоненты
• Поставщик. Задает параметры выбора сообщения перед
отправкой.
• Параметры выбора. Одно или несколько
значений, заданных в сообщении, на основании которых
потребитель принимает решение об обработке
сообщения.
• Избирательный потребитель. Получает только те
сообщения, которые соответствуют критериям отбора.
Вопросы реализации
• Реализация цепочки избирательных потребителей –
каждый отбирает сообщения по своему набору признаков.
• Если избирательные потребители используются как
конкурирующие потребители, то они должны быть
спроектированы таким образом, чтобы сообщение было
обработано по крайней мере один раз.
• Если на одном канале разместить несколько
избирательных потребителей, то можно заменить канал
типа данных. Так делать нежелательно, если необходимо
скрыть часть сообщений от некоторых приложений.
Постоянный подписчик
Как избежать потери сообщений, если подписчик временно
отключен от системы обмена сообщениями?
Особенности
• Каналы “публикация-подписка”
• Состояния подписчика:
– Подключен
– Отключен
– неактивен
Идемпотентный получатель
• Что делать, если сообщение было доставлено несколько
раз?
Стратегии:
• Явное удаление дубликатов сообщений
• Определение семантики сообщения с учетом
идемпотентности
Пример:
• Положить на счет 12345 еще 10 рублей.
• Установить баланс счета 12345 равный 110 рублям.
Активатор службы
Необходимо спроектировать службу, чтобы ее можно было
вызывать как с помощью разных технологий обмена
сообщениями, а также с помощью технологий не
связанных с обменом сообщениями.
УПРАВЛЕНИЕ СИСТЕМОЙ
Шина управления
Компоненты системы распределены, как ими управлять?
Подсистемы
• Поток сообщений приложения
• Шина управления
Сообщения для шины
1. Конфигурационные сообщения.
Каждый компонент должен иметь набор настраиваемых параметров:
– Адреса каналов
– Форматы данных сообщений
– Тайм-ауты
– И т.д.
Также таблицы маршрутизации роутеров.

2. Пульсы.
Может включать дополнительные сведения о компоненте: число
обработанных сообщений, объем оперативной памяти и т.д.

3. Тестовые сообщения
Получить более подробную информацию о работе компонента, чем
предоставляет сообщение-пульс.
4. Исключения.
Информацию об исключениях можно дублировать в шину
управления, чтобы система могла оценить степень их
серьезности.

5. Статистические сообщения
Как правило применяется канал с негарантированной доставкой или
с низким приоритетом.

6. Активная консоль
Все действия объединяются в единой центральной консоли.
Обходной путь
Сообщение проходит дополнительные этапы обработки с
целью проверки правильности, отладки и тестирования.
Отвод
Посмотреть содержимое сообщения, передаваемое по
каналу “точка-точка”
Вопросы реализации
• На примем и публикацию сообщения уходит время.
• Исходное сообщение и сообщение-двойник могут иметь
разные идентификаторы, что усложняет обработку
ответов.
• Сообщение менять не должно.
Журнал доставки сообщений
Отладка маршрутов следования сообщений
Вопросы:
• При прохождении сообщения через некоторые
компоненты идентификатор сообщения может меняться
• На одно входящее сообщение может быть несколько
исходящих
• Одно сообщение может являться результатом обработки
нескольких сообщений
Стратегии организации журнала
• Дерево
• Простой список
• Журнал доставки “победившего” сообщения
Особенно полезен, если сообщение проходит ряд фильтров
Хранилище сообщений
Использование содержимого сообщений в отчетах, не
нарушая слабосвязанный характер сообщений.
Вопросы реализации
•
•
•
•

Асинхронная обработка
Объем хранимых данных и нагрузка на есть
Очистка хранилища
Версионность данных
Интелектуальный заместитель
Отслеживание сообщений, проходящих через службу, если
ответ на каждое сообщение публикуется в канале,
заданным обратным адресом
Применение
• Отладка
• Сбор метрик
• Выполнение дополнительных действий
Тестовое сообщение
Отладка, в случае если обработка сообщения выполняется
неправильно
Компоненты
•
•
•
•

Генератор тестовых данных
Вбрасыватель тестовых сообщений
Отделитель тестовых сообщений
Верификатор тестовых данных
Вентиль канала
Удалить лишние сообщения из канала, которые по какимлибо причинам остались в канале

Más contenido relacionado

Similar a ук 03.011.01 2011

Технологии и подходы в разработке высоконагруженных приложений
Технологии и подходы в разработке высоконагруженных приложенийТехнологии и подходы в разработке высоконагруженных приложений
Технологии и подходы в разработке высоконагруженных приложенийOlga Lavrentieva
 
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...Lenvendo
 
04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стилиEdward Galiaskarov
 
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...Andrey Sas
 
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...Badoo Development
 
Андрей Сас (Badoo)
Андрей Сас (Badoo)Андрей Сас (Badoo)
Андрей Сас (Badoo)Ontico
 
стэн шнайдер Датацентризм и месседжсентризм
стэн шнайдер Датацентризм и месседжсентризмстэн шнайдер Датацентризм и месседжсентризм
стэн шнайдер Датацентризм и месседжсентризмSergei Seleznev
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.Igor Shkulipa
 
2 звезды
2 звезды2 звезды
2 звездыTele2
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Ontico
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Vadim Madison
 
2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бдKewpaN
 
архитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложенияархитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложенияVladyslav Leikykh
 
Денис Бесков. Как обеспечивать полноту требований
Денис Бесков. Как обеспечивать полноту требованийДенис Бесков. Как обеспечивать полноту требований
Денис Бесков. Как обеспечивать полноту требованийDenis Beskov
 
1. предзащита
1. предзащита1. предзащита
1. предзащитаDmitry Dushkin
 
2 звезды - Эффективная поддержка клиентов
2 звезды - Эффективная поддержка клиентов2 звезды - Эффективная поддержка клиентов
2 звезды - Эффективная поддержка клиентовTele2
 
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESBАрхитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESBPavel Treshnikov
 

Similar a ук 03.011.01 2011 (20)

Doklad
DokladDoklad
Doklad
 
Технологии и подходы в разработке высоконагруженных приложений
Технологии и подходы в разработке высоконагруженных приложенийТехнологии и подходы в разработке высоконагруженных приложений
Технологии и подходы в разработке высоконагруженных приложений
 
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
 
04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили
 
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...
 
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...
 
Андрей Сас (Badoo)
Андрей Сас (Badoo)Андрей Сас (Badoo)
Андрей Сас (Badoo)
 
стэн шнайдер Датацентризм и месседжсентризм
стэн шнайдер Датацентризм и месседжсентризмстэн шнайдер Датацентризм и месседжсентризм
стэн шнайдер Датацентризм и месседжсентризм
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.
 
2 звезды
2 звезды2 звезды
2 звезды
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд
 
архитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложенияархитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложения
 
Денис Бесков. Как обеспечивать полноту требований
Денис Бесков. Как обеспечивать полноту требованийДенис Бесков. Как обеспечивать полноту требований
Денис Бесков. Как обеспечивать полноту требований
 
1. предзащита
1. предзащита1. предзащита
1. предзащита
 
2 звезды - Эффективная поддержка клиентов
2 звезды - Эффективная поддержка клиентов2 звезды - Эффективная поддержка клиентов
2 звезды - Эффективная поддержка клиентов
 
Routing
RoutingRouting
Routing
 
Asupz presentation
Asupz presentationAsupz presentation
Asupz presentation
 
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESBАрхитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
 

Más de etyumentcev

Платформа SmartActors
Платформа SmartActorsПлатформа SmartActors
Платформа SmartActorsetyumentcev
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?etyumentcev
 
Программирование глазами математика
Программирование глазами математикаПрограммирование глазами математика
Программирование глазами математикаetyumentcev
 
Большие данные: как могут навредить и ка могут помочь?
Большие данные: как могут навредить и ка могут помочь?Большие данные: как могут навредить и ка могут помочь?
Большие данные: как могут навредить и ка могут помочь?etyumentcev
 
матлогика для программистов
матлогика для программистовматлогика для программистов
матлогика для программистовetyumentcev
 
Математическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповМатематическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповetyumentcev
 
Как 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проектКак 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проектetyumentcev
 
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4etyumentcev
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3etyumentcev
 
разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2etyumentcev
 
разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1etyumentcev
 
высокопроизводиетльные системы без доп затрат
высокопроизводиетльные системы без доп затратвысокопроизводиетльные системы без доп затрат
высокопроизводиетльные системы без доп затратetyumentcev
 
зачем нужны системы управления проектами
зачем нужны системы управления проектамизачем нужны системы управления проектами
зачем нужны системы управления проектамиetyumentcev
 
введение в Sql
введение в Sqlвведение в Sql
введение в Sqletyumentcev
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011etyumentcev
 
ук 03.006.02 2011
ук 03.006.02 2011ук 03.006.02 2011
ук 03.006.02 2011etyumentcev
 
ук 03.005.03 2011
ук 03.005.03 2011ук 03.005.03 2011
ук 03.005.03 2011etyumentcev
 
ук 03.003.01 2011
ук 03.003.01 2011ук 03.003.01 2011
ук 03.003.01 2011etyumentcev
 
ук 03.001.02 2011
ук 03.001.02 2011ук 03.001.02 2011
ук 03.001.02 2011etyumentcev
 
ук 03.002.01 2011
ук 03.002.01 2011ук 03.002.01 2011
ук 03.002.01 2011etyumentcev
 

Más de etyumentcev (20)

Платформа SmartActors
Платформа SmartActorsПлатформа SmartActors
Платформа SmartActors
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
 
Программирование глазами математика
Программирование глазами математикаПрограммирование глазами математика
Программирование глазами математика
 
Большие данные: как могут навредить и ка могут помочь?
Большие данные: как могут навредить и ка могут помочь?Большие данные: как могут навредить и ка могут помочь?
Большие данные: как могут навредить и ка могут помочь?
 
матлогика для программистов
матлогика для программистовматлогика для программистов
матлогика для программистов
 
Математическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповМатематическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принципов
 
Как 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проектКак 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проект
 
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
 
разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2
 
разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1
 
высокопроизводиетльные системы без доп затрат
высокопроизводиетльные системы без доп затратвысокопроизводиетльные системы без доп затрат
высокопроизводиетльные системы без доп затрат
 
зачем нужны системы управления проектами
зачем нужны системы управления проектамизачем нужны системы управления проектами
зачем нужны системы управления проектами
 
введение в Sql
введение в Sqlвведение в Sql
введение в Sql
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011
 
ук 03.006.02 2011
ук 03.006.02 2011ук 03.006.02 2011
ук 03.006.02 2011
 
ук 03.005.03 2011
ук 03.005.03 2011ук 03.005.03 2011
ук 03.005.03 2011
 
ук 03.003.01 2011
ук 03.003.01 2011ук 03.003.01 2011
ук 03.003.01 2011
 
ук 03.001.02 2011
ук 03.001.02 2011ук 03.001.02 2011
ук 03.001.02 2011
 
ук 03.002.01 2011
ук 03.002.01 2011ук 03.002.01 2011
ук 03.002.01 2011
 

ук 03.011.01 2011