enterprise or not to enterprise
DESCRIPTION
TRANSCRIPT
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