Enterprise or not to enterprise

  • 194 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
194
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

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