Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
59 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
12.88 MB
Просмотров:
56
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд
Содержание слайда: CQRS - инновационное решение проблем современных Enterprise приложений.
№2 слайд
Содержание слайда: Содержание
Почему CQRS ?
История возникновения современной архитектуры
Проблемы CRUD
CQRS как решение проблем
Архитектура CQRS приложений
Реализация CQRS на основе Axon framework
Event Store от Exigen Services
CQRS приложения разрабатываемые в Exigen Services
№3 слайд
Содержание слайда: Почему CQRS ?
Почему CQRS ?
№4 слайд
Содержание слайда: Поговорим про эволюцию разработки Enterprise приложений
№5 слайд
Содержание слайда: Эволюция представления документов
Эра бумажных документов
№6 слайд
Содержание слайда: Эволюция представления документов
№7 слайд
Содержание слайда: Эра электронных архивов
№8 слайд
Содержание слайда: Эра электронных архивов
№9 слайд
Содержание слайда: Эволюция обработки данных
Эра бизнес процессов
№10 слайд
Содержание слайда: Однако…
CRUD подход ориентирован не на отображение модели бизнес логики, а на манипуляцию данными.
№11 слайд
Содержание слайда: Основные проблемы CRUD
II. Основные проблемы CRUD
№12 слайд
Содержание слайда: Проблема 1. Использование JavaBean ….
JavaBean – “Reusable software components that can be manipulated visually in a builder tool”.
№13 слайд
Содержание слайда: … приводит к …
Нарушению инкапсуляции бизнес объектов.
Ухудшению читаемости кода
Трудности поддержки
Вся бизнес логика
переносится в методы
сервисов.
№14 слайд
Содержание слайда: Проблема 2. Оптимизация производительности и её последствия.
Использование ORM Tool вместе с денормализацией размывает
№15 слайд
Содержание слайда: Проблема 3. Проблема масштабируемости
В теореме CAP при обработке бизнес данных мы всегда выбираем целостность данных (C)
№16 слайд
Содержание слайда: Проблема 4: В реальной жизни не бывает конфликтов модификации данных
В бизнес процессах происходящих в реальной жизни не бывает конфликтов модификации данных.
Если возникает такой конфликт значит это проблема в реализации бизнес логики.
CRUD не учитывает этого.
№17 слайд
Содержание слайда: CQRS как решение
III. CQRS как решение
№18 слайд
Содержание слайда: CQRS
CQRS - Command Query Responsibility Segregation
№19 слайд
Содержание слайда: Проблема 1: Использование JavaBean
Использование JavaBean остаётся для отображения данных на стороне обработки запросов, но JavaBean != Domain Entity.
№20 слайд
Содержание слайда: Проблема 2: Оптимизация производительности и её последствия.
Денормализация данных выполняется только на стороне обработки запросов.
№21 слайд
Содержание слайда: Данные на стороне запросов
Каждая таблица – денормализованное представление данных на экране пользователя
№22 слайд
Содержание слайда: Проблема 3: Проблема масштабируемости
Целостность данных нужна только на стороне обработки бизнес логики.
На стороне обработки запросов мы можем использовать eventual consistency
№23 слайд
Содержание слайда: Проблема 4: В реальной жизни не бывает конфликтов модификации данных
1. В виде значений переменных внутри объекта.
№24 слайд
Содержание слайда: Два подхода представления объектов
№25 слайд
Содержание слайда: Два подхода представления объектов
Каждый агрегат – это пакет событий.
Нет необходимости использовать реляционные базы данных.
База должна обладать ACID свойствами.
№26 слайд
Содержание слайда: Два подхода представления объектов
Преимущества:
удобный мониторинг изменений состояния системы
возможность отката состояния системы до любого момента времени
удобный механизм репликации данных и разрешения конфликтов
№27 слайд
Содержание слайда: Разрешение конфликтов
№28 слайд
Содержание слайда: Архитектура CQRS приложений
IV. Архитектура CQRS приложений
№29 слайд
Содержание слайда: CQRS – это только подход
CQRS это только подход,
как вы его реализуете, зависит только от вас.
№30 слайд
№31 слайд
Содержание слайда: Queries
Многослойная архитектура
№32 слайд
№33 слайд
Содержание слайда: Commands
Команда – представляет собой отражение бизнес действия, действия в котором заинтересован пользователь приложения.
Преимущество использования команд:
Ориентация на бизнес проблемы пользователя.
Удобный механизм мониторинга и масштабирования
№34 слайд
№35 слайд
№36 слайд
Содержание слайда: Event bus
Репликация данных между компонентом обработки бизнес логики и компонентом селективных выборок.
В обычном приложении количество селективных запросов на порядок больше количества запросов на изменение данных.
Один бизнес компонент - множество query компонент
№37 слайд
Содержание слайда: ….преимущества…..
Хорошие условия для реализации DDD
Использование CEP
Готовность к облачным вычислениям
Простота распределения обязанностей между узконаправленными командами
№38 слайд
Содержание слайда: Реализации CQRS
V. Реализация CQRS
№39 слайд
Содержание слайда: Axon framework
Axon framework - самый популярный и наиболее функциональный.
№40 слайд
Содержание слайда: Пример CQRS приложения
Address Book –управление списком адресов
№41 слайд
№42 слайд
Содержание слайда: Создание и отправка команды
№43 слайд
№44 слайд
Содержание слайда: Обработка команды
№45 слайд
Содержание слайда: Бизнес действие
№46 слайд
Содержание слайда: Обработка события изменения состояния
№47 слайд
№48 слайд
Содержание слайда: Запросная часть
№49 слайд
Содержание слайда: Простота настройки
№50 слайд
Содержание слайда: Axon – repository и event store.
№51 слайд
Содержание слайда: Event Stores – pros and cons
нет поддержки ACID свойств
большая скорость обработки данных
№52 слайд
Содержание слайда: Orient DB Event store
Поддержка транзакционности.
Очень большая скорость чтения и записи данных.
Поддержка кластеризации.
№53 слайд
Содержание слайда: Orient DB Event store
№54 слайд
Содержание слайда: Примеры реализации в ExigenServices
Примеры реализации в ExigenServices
№55 слайд
Содержание слайда: Примеры реализации внутри компании
Автоматизация выдачи залогов и учёт ценностей в ломбардах.
Учёт нарядов выполненных работ в Днепропетровской
Торгово-Промышленной Палате.
№56 слайд
Содержание слайда: Итоги
CQRS – подход, обеспечивающий реализацию современных требований к корпоративным системам с точки зрения их масштабируемости, мониторинга, построения сложной бизнес логики.
№57 слайд
Содержание слайда: Вопросы
№58 слайд
Содержание слайда: Авторы
Артём Оробец. twitter: @Dr_EniSh ,
enisher@gmail.com, skype: dr_enish
Андрей Ломакин. twitter: @Andrey_Lomakin , lomakin.andrey@gmail.com , skype: lomakin_andrey
№59 слайд
Содержание слайда: Источники
First CQRS introduction http://www.infoq.com/presentations/greg-young-unshackle-qcon08
CQRS architecture overview - http://elegantcode.com/2009/11/11/cqrs-la-greg-young/
Greg Young blog - http://codebetter.com/gregyoung/
Race conditions does not exist http://www.udidahan.com/2010/08/31/race-conditions-dont-exist/
Domain Driven Design Aggregator - http://domaindrivendesign.org/
Axon framework home page - http://code.google.com/p/axonframework/
Mark Nijhof blog http://cre8ivethought.com/blog