Enterprise or not to enterprise
Upcoming SlideShare
Loading in...5
×
 

Enterprise or not to enterprise

on

  • 449 views

 

Statistics

Views

Total Views
449
Views on SlideShare
449
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Получает информацию из мастер-систем и распространяет ее пользователям Можно использовать publish-subscribe механизм (например, jms ). Пользователи получают свежие обновления как только они становятся доступны Или request-response. Запрашивать информацию о нужных сущностях. Или выгружать необходимы срезы на периодической основе
  • Протокол задает формат и содержимое сообщений, которые приходят пользователям Упрощает работу и позволяет планировать изменения Минорные версии протокола обратно-совместимы, мажорные – нет Публикация нескольких версий одного протокола
  • Пользователи системы накладывают на нее различные ограничения. Например, некоторые потребители не могут обрабатывать слишком много сообщений за единицу времени. Другие не хотят обновляться до новейшей версии протокола (а зачем? У нас все работает). Выход – SLA (поддержка протокола – N лет после релиза, пользователи должны уметь обрабатывать min 100000 сообщений в сутки и т.п.)
  • Систему можно (и нужно) упрощать Было: ER модель в БД, генерация сообщений по запросу. Стало: Blob + генерация сообщения один раз Стало проще отдавать сообщения Стало сложней делать bulk-update на содержимое БД (например, при нахождении ошибки в upstream) – возникает необходимость перегенерации xml Было: OpenAdaptor, Spring integration как workflow engine. Стало: plain java Compile-time message type checking Меньше xml в проекте Было: XA и распределенные транзакции. Стало: Одна тразакция и очереди. (Взяли с одной, обработали, положили в другую) + SLA – клиенты согласны получать дубликаты Поддержка версионирования схемы БД: flyway + обертка, обновление всех схем одной кнопкой. Поддержка data-fix -ов в БД: scriptella
  • Систему можно (и нужно) упрощать Было: ER модель в БД, генерация сообщений по запросу. Стало: Blob + генерация сообщения один раз Стало проще отдавать сообщения Стало сложней делать bulk-update на содержимое БД (например, при нахождении ошибки в upstream) – возникает необходимость перегенерации xml Было: OpenAdaptor, Spring integration как workflow engine. Стало: plain java Compile-time message type checking Меньше xml в проекте Было: XA и распределенные транзакции. Стало: Одна тразакция и очереди. (Взяли с одной, обработали, положили в другую) + SLA – клиенты согласны получать дубликаты Поддержка версионирования схемы БД: flyway + обертка, обновление всех схем одной кнопкой. Поддержка data-fix -ов в БД: scriptella

Enterprise or not to enterprise Enterprise or not to enterprise Presentation Transcript

  • Одесская Java UserGroupEnterprise or not to enterpriseРоман СафроновРуководит ель проект а Clie nt DataJuly 17, 2012
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptМифы об enterprise-разработкеEnterprise or not to enterprise• Все медленно• Скучно и однообразно• Используются устаревшие технологии• Никто не следит за качеством кода• В основе всегда лежат проприетарные компоненты• На кодирование уходит меньше времени, чем на “бюрократию”• Это сплошной багфиксинг! 2
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptПример проекта класса 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 3
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptОсобенности разработки в enterpriseEnterprise or not to enterprise• Большое количество внешних зависимостей – Необходимость интеграции с существующими системами (в том числе и legacy) – Зависимость на внешние сервисы (виртуальные машины, сетевая инфраструктура, сервера приложений) – Зависимости на внешние команды (поддержка, аналитика)• Приоритет клиента – стабильность – Ограничение на выбор технологий при построении новых компонентов – Длительные фазы SIT и UAT• Специфика бизнес-домена – Ограничение доступа к данным – Фиксированные даты выпуска нового функционала 4
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptТипы приложенийEnterprise or not to enterprise• Хранилище мастер-данных• Система распространения данных• Интеграция с внешними поставщиками данных• Автоматизация длительных бизнес-процессов 5
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptХранилище мастер-данных: enterpriseEnterprise or not to enterprise • Развертывание только на WebSphere • Раздельное версионирование и сборка модулей (EJB, WebApp, WS) • Установка и конфигурирование приложения в dev-среде занимает 2 часа • Потребление памяти при запуске 2 Гб • Время старта приложения 3-4 минуты • Жесткое требование Oracle Database EE (VPD) • Необходимость использования распределенных транзакций 6
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptХранилище мастер-данных: not enterpriseEnterprise 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 7
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptСистема распространения данныхEnterprise or not to enterpriseФункциональность• публикация в JMS очередь• Передача сообщения по запросу• Передача срезов – Обновления за последние сутки – Полная выгрузка – Выгрузка по условию 8
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptСистема распространения данныхEnterprise or not to enterprise V1 V2Протоколы• Фиксирют формат сообщений• Могут меняться со временем• Папаллельно публикуем несколько версий одного протокола 9
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptСистема распространения данныхEnterprise or not to enterpriseПотребители данных• Нормальные – никаких проблем• Неповоротливые – ограничивают скорость публикации• Ленивые – не хотят обновляться на свежие версии протоколов 10
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptСистема распространения данных: enterpriseEnterprise or not to enterprise• Развертывание сервера приложений• Приложение распространяется в виде ear• Используем распределенные транзакции• Меппинг с помощью Apache Dozer (xml)• OpenAdaptor в качестве интеграционного фреймворка• HyperJAXB для генерации объектной модели и схемы БД 11
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptСистема распространения данных: not enterpriseEnterprise or not to enterprise• Нет необходимости в сервере приложений• Полная автоматизация конфигурпирования и установки• Автоматический f2b-тест системы после установки• Локальная транзакция• Маппинг на Groovy• Plain java workflow• Xml + аттрибуты, по которым идет выборка• Версионирование схемы БД 12
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptИнтеграция с внешними поставщиками данных: enterpriseEnterprise or not to enterprise• Необходимость использования распределенных транзакций• Необходимость консолидирования данных от нескольких поставщиков с учетом уровня доверия по каждому из аттрибутов• Необходимость осуществления слияния нескольких объектов в случае, если они являются дупликатами 13
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptАвтоматизация длительных бизнес-процессов: enterpriseEnterprise or not to enterprise• Если бизнес-процесс включает выполнение активностей в нескольких приложениях, то необходимо использовать BPM-системы• BPM-система выполняет вызовы систем-участников и хранит состояние процесса 14
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptАвтоматизация длительных бизнес-процессов: enterpriseEnterprise or not to enterprise• Бизнес-процесс описывается в нотации BPMN• Для осуществления вызовов внешних систем могут использоваться EJB или веб- сервисы 15
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptEnterprise or not to enterpriseEnterprise or not to enterprise• Ускорить приложение возможно за счет введения dev-profile• Большинство рутинных задач возможно автоматизировать• Даже устаревшие открытые технологии возможно постепенно мигрировать на новые• Установите жесткую планку по качеству кода и автоматизируйте сбор метрик• Есть случаи, когда использование проприетарных компонентов оправдано, важно обеспечить как можно более тонкий интерфейс с остальной системой• Автоматизированы рутинные задачи –> FUN! 16
  • safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptКонтакты• Email: roman.safronov@ubs.com• Skype: roman_safronov 17