17
Enterprise or not to enterprise July 17, 2012 Роман Сафронов Руководитель проекта Client Data Одесская Java UserGroup

Enterprise or not to enterprise

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Enterprise or not to enterprise

Enterprise or not to enterprise

July 17, 2012

Роман СафроновРуководитель проекта Client Data

Одесская Java UserGroup

Page 2: 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

2

Мифы об enterprise-разработкеEnterprise or not to enterprise

Все медленно

Скучно и однообразно

Используются устаревшие технологии

Никто не следит за качеством кода

В основе всегда лежат проприетарные компоненты

На кодирование уходит меньше времени, чем на “бюрократию”

Это сплошной багфиксинг!

Page 3: 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

Page 4: 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

4

Особенности разработки в enterpriseEnterprise or not to enterprise

Большое количество внешних зависимостей

– Необходимость интеграции с существующими системами (в том числе и legacy)

– Зависимость на внешние сервисы (виртуальные машины, сетевая инфраструктура, сервера приложений)

– Зависимости на внешние команды (поддержка, аналитика)

Приоритет клиента – стабильность

– Ограничение на выбор технологий при построении новых компонентов

– Длительные фазы SIT и UAT

Специфика бизнес-домена

– Ограничение доступа к данным

– Фиксированные даты выпуска нового функционала

Page 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

5

Типы приложенийEnterprise or not to enterprise

Хранилище мастер-данных

Система распространения данных

Интеграция с внешними поставщиками данных

Автоматизация длительных бизнес-процессов

Page 6: 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)

Необходимость использования распределенных транзакций

Page 7: 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

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

Page 8: 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

8

Система распространения данныхEnterprise or not to enterprise

Функциональность

публикация в JMS очередь

Передача сообщения по запросу

Передача срезов

– Обновления за последние сутки

– Полная выгрузка

– Выгрузка по условию

Page 9: 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

9

Система распространения данныхEnterprise or not to enterprise

Протоколы

Фиксирют формат сообщений

Могут меняться со временем

Папаллельно публикуем несколько версий одного протокола

V1 V2

Page 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

10

Система распространения данныхEnterprise or not to enterprise

Потребители данных

Нормальные – никаких проблем

Неповоротливые – ограничивают скорость публикации

Ленивые – не хотят обновляться на свежие версии протоколов

Page 11: 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 для генерации объектной модели и схемы БД

Page 12: 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

12

Система распространения данных: not enterpriseEnterprise or not to enterprise

Нет необходимости в сервере приложений

Полная автоматизация конфигурпирования и установки

Автоматический f2b-тест системы после установки

Локальная транзакция

Маппинг на Groovy

Plain java workflow

Xml + аттрибуты, по которым идет выборка

Версионирование схемы БД

Page 13: 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

13

Интеграция с внешними поставщиками данных: enterprise

Enterprise or not to enterprise

Необходимость использования распределенных транзакций

Необходимость консолидирования данных от нескольких поставщиков с учетом уровня доверия по каждому из аттрибутов

Необходимость осуществления слияния нескольких объектов в случае, если они являются дупликатами

Page 14: 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-система выполняет вызовы систем-участников и хранит состояние процесса

Page 15: 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

15

Автоматизация длительных бизнес-процессов: enterprise

Enterprise or not to enterprise

Бизнес-процесс описывается в нотации BPMN

Для осуществления вызовов внешних систем могут использоваться EJB или веб-сервисы

Page 16: 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

16

Enterprise or not to enterpriseEnterprise or not to enterprise

Ускорить приложение возможно за счет введения dev-profile

Большинство рутинных задач возможно автоматизировать

Даже устаревшие открытые технологии возможно постепенно мигрировать на новые

Установите жесткую планку по качеству кода и автоматизируйте сбор метрик

Есть случаи, когда использование проприетарных компонентов оправдано, важно обеспечить как можно более тонкий интерфейс с остальной системой

Автоматизированы рутинные задачи –> FUN!

Page 17: 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

17

Контакты

Email: [email protected]

Skype: roman_safronov