Enterprise or not to enterprise July 17, 2012 Роман Сафронов Руководитель проекта Client Data Одесская Java UserGroup
Enterprise or not to enterprise
July 17, 2012
Роман СафроновРуководитель проекта Client Data
Одесская Java UserGroup
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
2
Мифы об enterprise-разработкеEnterprise or not to enterprise
Все медленно
Скучно и однообразно
Используются устаревшие технологии
Никто не следит за качеством кода
В основе всегда лежат проприетарные компоненты
На кодирование уходит меньше времени, чем на “бюрократию”
Это сплошной багфиксинг!
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
3
Пример проекта класса enterpriseEnterprise or not to enterprise
> 1 миллиона строк кода
> 1 террабайта данных
20+ компонентов
50+ разработчиков Java
10+ разработчиков баз данных
30+ QA-инженеров
География: Лондон, Бангалор, Москва, Киев, Одесса
Пользователи во всех крупных странах мира
Набор “тяжелых” коммерческих компонентов: IBM Websphere, IBM ILOG JRules, Oracle Database, Oracle GoldenGate, Informatica PowerCenter, Informatica Master Data Management, Tibco EMS, CA SiteMinder, Business Objects reporting
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
4
Особенности разработки в enterpriseEnterprise or not to enterprise
Большое количество внешних зависимостей
– Необходимость интеграции с существующими системами (в том числе и legacy)
– Зависимость на внешние сервисы (виртуальные машины, сетевая инфраструктура, сервера приложений)
– Зависимости на внешние команды (поддержка, аналитика)
Приоритет клиента – стабильность
– Ограничение на выбор технологий при построении новых компонентов
– Длительные фазы SIT и UAT
Специфика бизнес-домена
– Ограничение доступа к данным
– Фиксированные даты выпуска нового функционала
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
5
Типы приложенийEnterprise or not to enterprise
Хранилище мастер-данных
Система распространения данных
Интеграция с внешними поставщиками данных
Автоматизация длительных бизнес-процессов
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
6
Хранилище мастер-данных: enterpriseEnterprise or not to enterprise
Развертывание только на WebSphere
Раздельное версионирование и сборка модулей (EJB, WebApp, WS)
Установка и конфигурирование приложения в dev-среде занимает 2 часа
Потребление памяти при запуске 2 Гб
Время старта приложения 3-4 минуты
Жесткое требование Oracle Database EE (VPD)
Необходимость использования распределенных транзакций
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
7
Хранилище мастер-данных: not enterprise Enterprise or not to enterprise
Нет необходимости использовать раздельное версионирование модулей
WSANT + Jenkins = 100% автоматизация сборки и развертывания
DEV profile
– Переход на Jetty + WS EJB client позволило сократить потребление памяти до 500 Мб
– Создание Spring LazуBeanPostProcessor позволило динамически менять “ленивость” бинов. Это позволило сократить время старта приложения до 15 секунд
Переход на Tomcat позволит значительно сократить расходы на инфраструктуру
Альтернатива Oracle VPD – Hibernate filter
Альтернатива XA-транзакции между Oracle и Sybase - ChainedTransactionManager
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
8
Система распространения данныхEnterprise or not to enterprise
Функциональность
публикация в JMS очередь
Передача сообщения по запросу
Передача срезов
– Обновления за последние сутки
– Полная выгрузка
– Выгрузка по условию
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
9
Система распространения данныхEnterprise or not to enterprise
Протоколы
Фиксирют формат сообщений
Могут меняться со временем
Папаллельно публикуем несколько версий одного протокола
V1 V2
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
10
Система распространения данныхEnterprise or not to enterprise
Потребители данных
Нормальные – никаких проблем
Неповоротливые – ограничивают скорость публикации
Ленивые – не хотят обновляться на свежие версии протоколов
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
11
Система распространения данных: enterpriseEnterprise or not to enterprise
Развертывание сервера приложений
Приложение распространяется в виде ear
Используем распределенные транзакции
Меппинг с помощью Apache Dozer (xml)
OpenAdaptor в качестве интеграционного фреймворка
HyperJAXB для генерации объектной модели и схемы БД
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
12
Система распространения данных: not enterpriseEnterprise or not to enterprise
Нет необходимости в сервере приложений
Полная автоматизация конфигурпирования и установки
Автоматический f2b-тест системы после установки
Локальная транзакция
Маппинг на Groovy
Plain java workflow
Xml + аттрибуты, по которым идет выборка
Версионирование схемы БД
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
13
Интеграция с внешними поставщиками данных: enterprise
Enterprise or not to enterprise
Необходимость использования распределенных транзакций
Необходимость консолидирования данных от нескольких поставщиков с учетом уровня доверия по каждому из аттрибутов
Необходимость осуществления слияния нескольких объектов в случае, если они являются дупликатами
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
14
Автоматизация длительных бизнес-процессов: enterprise
Enterprise or not to enterprise Если бизнес-процесс включает выполнение активностей в нескольких приложениях, то необходимо использовать BPM-
системы
BPM-система выполняет вызовы систем-участников и хранит состояние процесса
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
15
Автоматизация длительных бизнес-процессов: enterprise
Enterprise or not to enterprise
Бизнес-процесс описывается в нотации BPMN
Для осуществления вызовов внешних систем могут использоваться EJB или веб-сервисы
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
16
Enterprise or not to enterpriseEnterprise or not to enterprise
Ускорить приложение возможно за счет введения dev-profile
Большинство рутинных задач возможно автоматизировать
Даже устаревшие открытые технологии возможно постепенно мигрировать на новые
Установите жесткую планку по качеству кода и автоматизируйте сбор метрик
Есть случаи, когда использование проприетарных компонентов оправдано, важно обеспечить как можно более тонкий интерфейс с остальной системой
Автоматизированы рутинные задачи –> FUN!
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:\My Documents\Enterprise or not to enterprise v0.4.ppt
17
Контакты
Email: [email protected]
Skype: roman_safronov