Your SlideShare is downloading. ×
0
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Enterprise or not to enterprise
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Enterprise or not to enterprise

1,636

Published on

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

No Downloads
Views
Total Views
1,636
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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

    • 1. Одесская Java UserGroupEnterprise or not to enterpriseРоман СафроновРуководит ель проект а Clie nt DataJuly 17, 2012
    • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

    ×