Your SlideShare is downloading. ×
0
Одесская 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Мифы об ente...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptПример проек...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptОсобенности ...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptТипы приложе...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptХранилище ма...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptХранилище ма...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptСистема расп...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptСистема расп...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptСистема расп...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptСистема расп...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptСистема расп...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptИнтеграция с...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptАвтоматизаци...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptАвтоматизаци...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptEnterprise o...
safronro [printed: ____] [saved: July 17, 2012 8:48 PM] P:My DocumentsEnterprise or not to enterprise v0.4.pptКонтакты• Em...
Upcoming SlideShare
Loading in...5
×

Enterprise or not to enterprise

238

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
238
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Получает информацию из мастер-систем и распространяет ее пользователям Можно использовать 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
  • Transcript of "Enterprise or not to enterprise"

    1. 1. Одесская Java UserGroupEnterprise or not to enterpriseРоман СафроновРуководит ель проект а Clie nt DataJuly 17, 2012
    2. 2. 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
    3. 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• > 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
    4. 4. 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
    5. 5. 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
    6. 6. 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
    7. 7. 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
    8. 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Функциональность• публикация в JMS очередь• Передача сообщения по запросу• Передача срезов – Обновления за последние сутки – Полная выгрузка – Выгрузка по условию 8
    9. 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 V1 V2Протоколы• Фиксирют формат сообщений• Могут меняться со временем• Папаллельно публикуем несколько версий одного протокола 9
    10. 10. 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
    11. 11. 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
    12. 12. 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
    13. 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• Необходимость использования распределенных транзакций• Необходимость консолидирования данных от нескольких поставщиков с учетом уровня доверия по каждому из аттрибутов• Необходимость осуществления слияния нескольких объектов в случае, если они являются дупликатами 13
    14. 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• Если бизнес-процесс включает выполнение активностей в нескольких приложениях, то необходимо использовать BPM-системы• BPM-система выполняет вызовы систем-участников и хранит состояние процесса 14
    15. 15. 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
    16. 16. 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
    17. 17. 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
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×