Enterprise or not to enterprise

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

description

 

Transcript of Enterprise or not to enterprise

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