Все переплетено, море нитей, но.
Потяни за нить, за ней потянется клубок.
Этот мир – веретено
Oxxxymiron – Переплетено
Мир построения крупных ИС в топ-100 компаниях, как и любые другие ИТ-направления, подвержен веяниям моды. Еще пять лет назад SOA казалось решением всех проблем сложных архитектур. Банки и крупные ритейлеры активно перестраивали свои системы в интеграционном SOA-стиле. BPM-платформы внедряли там, где руководство придерживается современного подхода в построении бизнес-приложений и интеграционной архитектуры самой компании.
Сегодня сервис-ориентированной архитектурой уже никого не удивишь, а в особо продвинутых кругах это уже моветон — ведь есть микросервисы, новое лекарство от всех болезней.
Но велико число тех организаций, где всё делается «по-старинке» — такие заказчики очень часто мыслят категориями имеющихся у них ИТ-систем. Мол, «мы купили вот такую крутую CRM-систему и счастливы». Или «у нас есть SAP ERP, нам его хватает на все случаи жизни». Хотя на самом деле сложности возникают: нередка ситуация, когда компания приобретает какую-то систему и начинает нашпиговывать её несвойственной ей функциональностью и ставить задачи, на которые вендоры и не рассчитывали. В итоге система превращается в неповоротливого монстра, чьи дополнительные возможности плохо задокументированы, с ней очень тяжело разбираться и работать. И самое главное — её тяжело развивать.
Вторая распространённая ситуация: каждый отдел внутри организации лепит что-то своё. В одном подразделении скачали Open Source систему учёта заявок, в другом заказали решение у местного программиста, и так далее. В итоге возникает зоопарк систем, решающих одни и те же задачи.
И выходом из двух этих крайних ситуаций по-прежнему являются интеграционные и BPM-решения. Замечательные представители которых — Oracle SOA Suite и Oracle BPM Suite. Что это такое и зачем они нужны?
SOA Suite
Oracle SOA Suite — это решение для построения распределённых бизнес-процессов.
Оно позволяет нам увязать вместе различные бизнес-приложения, сотрудников (как работающих в этих приложениях, так и не имеющих к ним отношение), правила принятия решений, события, даты, запланированные встречи в календаре, документы, которые рождаются в ходе работы над бизнес-процессом (начиная от накладных и заканчивая большими отчетами). И, конечно, задачи, которые назначаются пользователям для выполнения их работы. Это могут быть простые задачи вроде согласования, а могут быть те, что передаются от одного пользователя к другому и, может быть, даже длятся в течение нескольких месяцев.
Для чего всё это нужно?
И здесь в большинстве компаний возникает ряд организационных проблем: не очень понятно, как делить задачи между собой. Где границы каждой системы? Как им договориться между собой о формате взаимодействия, о частоте выгрузки? Кто кому какие данные передаёт? Сразу ответить на эти вопросы тяжело из-за человеческого фактора: «Почему мы это должны делать?» или «Наша система поддерживает один формат, а ваша — другой. Кто будет делать преобразование?».
Для решения всех этих задач и неопределённостей как раз и предназначена интеграционная платформа Oracle SOA Suite.
Для организации понятных интеграционных процессов, которые могут начинаться в любых системах, могут использоваться любые адаптеры, как технологические, так и адаптеры к внешним системам. Адаптеры — это компоненты Oracle SOA Suite, позволяющие работать с файлами разных форматов, с базами данных, отправлять REST-запросы, взаимодействовать с веб-сервисами, отправлять сообщения в очереди разных стандартов, обмениваться данными с бизнес-системами. Всего в составе Oracle SOA Suite насчитывается более трехсот адаптеров, и их количество постоянно увеличивается.
Все компоненты SOA Suite, в том числе адаптеры, это набор кубиков, из которых специалист по интеграционным решениям собирает интеграционные процессы. В IDE – JDeveloper все элементы бизнес-процесса, словно кубики, перетаскиваются в редакторе, между ними создаются связи, прописываются функции. Это вдвойне удобная реализация продукта, позволяющая не наделать ошибок и сэкономить массу времени и сил в процессе внедрения или обновления масштабных бизнес-систем, когда возникает множество интеграционных задач. Ведь системы в большинстве случаев не работают в изоляции — им приходится взаимодействовать друг с другом. Кроме того, время обучения вчерашнего студента до вполне производительного интеграционного разработчика составляет порядка двух месяцев, а это значит, что при внедрении крупного проекта нарастить мощь команды можно достаточно оперативно.
Business Rules
Но для реализации большого бизнес-процесса недостаточно просто увязать между собой различные системы, потому что есть процессы, в которых возникают задачи принятия решений. И варианты решения этих задач не должны быть жёстко прописаны в коде.
К примеру, в компании есть базовое правило: если стоимость заказа в интернет-магазине превышает 1000 рублей, то доставка осуществляется бесплатно. Но нельзя численно прописывать в коде пороговую сумму, потому что это должен быть настраиваемый параметр. Завтра условия ведения бизнеса могут измениться, и возить от 1000 рублей станет нерентабельно, а это значение уже высечено в коде. То есть код придется перекомпилировать и заново развёртывать на промышленном сервере.
Для таких ситуаций в составе Oracle SOA Suite есть замечательный инструмент Business Rules. По сути это набор правил, которые встроены в бизнес-процесс и на основе которых может выполняться либо ветвление этого бизнес-процесса, либо преобразование внутренних данных, либо дополнительные вызовы внешних сервисов. Например, условие с бесплатной доставкой при заказе от 1000 рублей можно реализовать в виде отдельного блока. И позднее любой аналитик сможет в онлайн-режиме изменить его, расширить, усложнить, добавить в него дополнительные выходы. Например, добавить условие, если в заказе есть особенный товар, то предоставить экспресс-доставку. Не нужно отправлять задачу программистам, ждать, пока они всё сделают, протестируют, соберут и перенесут на боевой сервер.
Human Task
Следующий важный компонент Oracle SOA Suite — Human Task. Это инструмент для автоматического встраивания пользователей в бизнес-процессы. Достаточно вставить в схему блок, указать, какие данные должны в него поступать и какие решения должен принимать пользователь. И, исходя из этого, пакет автоматически генерирует форму по технологии Oracle ADF. На мой взгляд, таких форм вполне достаточно для решения обычных повседневных задач.
Таким образом, мы можем практически за один день добавить пользователей в какой-то бизнес-процесс. Допустим, раньше мы автоматически отправляли заказы в интернет-магазине в службу доставки, а теперь решили, что нам нужно обязательно подтверждать у клиентов заказы свыше 5 тыс. рублей. Добавляем в схему блок Human Task и условие, например, из того же Business Rules. Добавляем в Human Task целиком всю корзину клиента с данными о доставке. Автоматически генерируется форма с этими данными, и у оператора уже есть готовый экран, в котором ему сыплются задачи по обзвону. Такую опцию можно реализовать за один день. Если же у заказчика есть особые требования к формам и процессам, то кастомизировать можно как визуальную составляющую, так и логику работы.
Аудит
Итак, мы построили бизнес-процесс, в котором взаимодействуют разные системы, участвуют разные пользователи, и нам очень хочется за всем этим проследить. Ведь если что-то пошло не так, то нужно разобраться, почему и что именно заработало не по плану.
Ошибки, естественно, случаются: можно не предусмотреть какое-то из условий, что-то недостаточно качественно протестировать. В системе, где весь аудит прошедших процессов построен на логах — текстовых записях, — будет очень тяжело разобраться, почему заказ ушёл в службу доставки А, а не в службу доставки Б. Ведь специалистам придётся поднимать логи, искать записи, а если логи были поставлены на минимальный уровень отображения ошибок? И вот мы уже не можем выяснить причину ошибки, и приходится ждать, когда она повторится снова. И такое случается во многих компаниях.
В Oracle SOA Suite встроен механизм графического аудита. Он сохраняет всю информацию по каждому запуску каждого блока в рамках бизнес-процесса. Возвращаясь к предыдущему примеру со службой доставки: специалист поддержки интеграционного решения вбивает номер заказа и открывает выполненный бизнес-процесс — со всеми «квадратиками», со всеми ветвлениями, решениями пользователей, результатами автоматических условий, ответами всех веб-сервисов. И легко может выяснить, где произошёл сбой. Ему не нужно лезть в документацию (ведь реализованный бизнес-процесс самодокументирован), не нужно читать, из чего же состоит этот бизнес-процесс.
Business Activity Monitoring
Это инструмент генерирования онлайн-отчетов. Внутри бизнес-процесса мы можем в любых местах встраивать отдельные уведомления для системы управления отчетами. Допустим, в одном месте мы говорим, что поступил новый заказ. В другом — что пользователь отменил заказ. В третьем — заказ ушёл в службу доставки. И на основании этих данных будет генерироваться красивый онлайн-отчет, со всеми заказами, разбитыми по категориям. Он будет изменяться в реальном времени, то есть мы сможем видеть «живые» данные, а не суточной давности — после обработки ETL и загрузки в хранилище.
А дальше мы можем построить, скажем, новый интерактивный отчёт по обработке заказов, ушедших в службу доставки. Можно сразу увидеть, что служба доставки не успевает обрабатывать заказы вовремя: уже полдня у них копятся остатки, которые они себе набрали в работу. Если мы предлагаем клиенту оперативный сервис, то это недопустимо. Руководство видит нарушение SLA, договоренностей с партнёрами, и может, не дожидаясь статистики за прошедшие сутки, позвонить и спросить: «Ребята, что такое? Почему вы так медленно доставляете заказы?»
Oracle BPM
Oracle BPM — это надстройка над SOA Suite. То есть SOA Suite лежит уровнем ниже Oracle BPM и обеспечивает львиную долю функциональности. А что приходится на оставшуюся часть? В первую очередь, это возможность изобразить бизнес-процессы заказчика в нотации BPMN.
Горизонтальные уровни — подразделения компании. Блоки обозначают:
- запросы в какую-то внешнюю систему;
- генерирование/выкладывание документов в корпоративную систему хранения;
- действия пользователей по новым или уже созданным задачам – в общем, любое взаимодействие с клиентами или сотрудниками организации;
- различного рода уведомления: на почту, по SMS, уведомления системы мониторинга и так далее.
Получившаяся схема понятна любому аналитику, поскольку это открытый стандартизированный язык для описания бизнес-процессов. К сожалению, в России во многих компаниях нет специалистов, которые могут всё это читать. Но именно BPM-представление является главной и самой полезной возможностью продукта. С помощью таких схем можно понятно, наглядно и формализовано описывать бизнес-процессы, зашитые в коде всевозможных систем и никак не задокументированные.
Второй главной функцией Oracle BPM является преобразование BPMN в BPEL-схему. В данном случае процесс разбивается уже не по подразделениям и пользователям, а по логике прохождения процесса.
Здесь отображаются те же вызовы внешних служб и те же задачи пользователей, но в другом виде. С таким представлением обычно работают программисты интеграционных решений. Преобразование из BPMN-нотации в BPEL-нотацию — это и есть главная возможность Oracle BPM.
Ещё одним важным отличием Oracle BPM от SOA Suite является онлайн-редактор бизнес-процессов. Он позволяет на лету, прямо в браузере перестраивать все схемы. Стоит добавить какой-то блок, нажать «Применить», и все бизнес-процессы, стартующие с этого момента, уже пойдут по новой схеме. В Oracle SOA Suite для этого придётся вручную в среде разработки JDeveloper внести изменения, потом протестировать, и после этого перенести разработку в production. То есть процедура получается гораздо менее гибкой и оперативной.
Помимо всего вышеописанного, в Oracle BPM есть ещё большой набор готовых автоматических отчётов. С их помощью можно сразу выявить всевозможные узкие места в существующих бизнес-процессах.
Oracle BPM 12с
Отдельно хочется рассказать о возможностях Oracle BPM версии 12с. Формально это не новинка, но в России эта версия появилась относительно недавно, большинство заказчиков в последние пару лет еще внедряли версию 11g.
Выше я рассказывал о Business Rules — наборе бизнес-правил. Теперь их можно выгрузить в виде Excel-таблицы, внести изменения и импортировать обратно в Business Rules. Эта возможность нужна тем, кто по каким-то причинам не хочет или не может работать с самим Business Rules. Например, если тяжело осваивать новый интерфейс, или если изменения должны пройти ряд согласований у сотрудников, не имеющих доступа к Oracle BPM.
Но самое важное нововведение в версии 12c — механизм Business Architecture. Это набор дополнительных экранов верхнеуровневого управления, с помощью которых топ-менеджеры могут планировать развитие информационной платформы.
Здесь можно указывать стратегические цели, допустим, абстрактную задачу по увеличению прибыли. Далее её можно разбить на подзадачи:
- внедрить систему аналитики, которая позволит анализировать продажи и выявлять узкие места;
- внедрить современную систему планирования, которая позволит уменьшить остатки на складах.
Дальше эти задачи разбиваются на ещё более мелкие, вплоть до уровня таких бизнес-процессов, как обработка заявки на сайте.
Из получившейся схемы можно перейти в упомянутую выше схему в BPMN-нотации.
Ещё одно нововведение — комплекс Event Processing. Это механизм и интерфейсы анализа событий. Например, если в предыдущих версиях мы внутри бизнес-процесса напрямую отправляли уведомления в систему мониторинга, то теперь вместо этого можно использовать публикацию событий, возникающих во всех бизнес-процессах компании. На основании пула этих событий можно построить отчёт, который будет прогнозировать дальнейшую динамику всех процессов.
Кроме того, в версии 12с была улучшена и упрощена интеграция UCM — механизма хранения документов, которые генерируются в ходе выполнения бизнес-процессов и подгружаются в задачах, созданных с помощью Human Task.
Также улучшен репозиторий для проектов, метаданных и схем данных. В версии 11g предполагалось использование в основном стороннего хранилища, будь то SVN или Git. А в 12c Oracle предлагает свой репозиторий для хранения всего кода. Это удобно с той точки зрения, что появится единый источник всех данных по процессам, к тому же использование предыдущих разработок в новом проекте позволяет сэкономить время.
Как продвигать в России?
Вопрос сложный. Многие большие компании, которые уже осознали важность таких продуктов, уже приобрели пакет либо Oracle, либо IBM. А всем остальным очень тяжело объяснить, какую выгоду они смогут для себя извлечь. К тому же непросто взять и перевести все бизнес-процессы на новые рельсы. В идеальном случае для этого должен быть какой-то стимул, влиятельный сторонник реновации ИТ-инфраструктуры, который начнёт с оптимизации бизнес-процессов. И тогда их можно будет реализовать на основе интеграционной архитектуры Oracle SOA Suite или BPM Suite. Встраивать участки взаимодействия с другими системами, применять участие пользователей, уведомления и многое другое.
Что получим в итоге?
Бизнес-процессы, которые документированы сами в себе. Можно зайти в редактор и при необходимости быстро и безошибочно модифицировать бизнес-процесс, просто перетащив блок в нужное место: «я хочу, чтобы вот здесь у меня еще дополнительно уходило письмо начальнику какого-то отдела». Одного письма недостаточно, начальник должен принять какое-то решение? Ставим блок с его участием. Теперь начальнику приходит письмо со ссылкой: «на вас есть такая задача — пожалуйста, ознакомьтесь с документом».
Конечно, вставляя блоки в BPM-схему, бизнес-пользователь или аналитик не пишет сам код физической реализации. Но получившаяся схема позволяет быстро и однозначно поставить задачу программистам, которые будут ясно понимать, какие данные должен получать и выдавать каждый блок. Им не нужно разбираться со всеми хитросплетениями бизнес-процессов. Пользователь может чуть глубже погрузиться в программирование бизнес-процессов, а разработчику будет чуть проще понять, какие взаимосвязи ему нужно реализовать, потому что все говорят на одном языке. И именно ради динамичного развития и изменения своих бизнес-процессов компании и покупают такие большие интеграционные платформы.
В полном соответствии с современными тенденциями в SOA Suite и BPM можно работать на смартфонах и планшетах. Ну и что, что специалист уехал на встречу? Пока он стоит в пробках или едет в общественном транспорте, он может открыть экран BPM и выполнить действия по какой-то новой задаче.
Внедрение интеграционной платформы позволяет организовать омниканальный доступ к процессам компании и клиентам. То есть внутри бизнес-процессов можно реализовать не только уведомление сотрудников компании, но и уведомление внешних клиентов. Мы можем отправлять им письма на почту, продублировать по SMS, можем отправлять ссылки на мобильные приложения. Конечно, приложение придётся разрабатывать отдельно, но за счёт того, что у нас есть большая интеграционная платформа, встроить взаимодействие и с мобильным приложением, и с почтой, и с прочими каналами в уже имеющийся бизнес-процесс легче, чем реализовывать это каждый раз с нуля.
Резюме
В основе Oracle BPM лежит пакет инструментов Oracle SOA Suite. Функциональности SOA достаточно большинству заказчиков, но крупным компаниям могут быть важны такие возможности BPM, как редактор бизнес-процессов в нотации BPMN, многочисленные преднастроенные отчёты из коробки, показывающие работу бизнес-процессов, и онлайн-редактор бизнес-процессов.
Одной из главных трудностей при продвижении Oracle SOA Suite и BPM в России является их определённая абстрактность для конечных заказчиков. У более привычных продуктов — систем аналитики, BI или CRM-систем — есть понятные, чёткие результаты внедрения. То есть заказчику понятно, что после их внедрения у него появятся отчёты, единая система хранения клиентов, интерфейс для работы его операторов с данными клиента и так далее. А в случае с интеграционной платформой всё сложнее. Мы можем показать заказчику красивые схемы и расписать радужные последствия. Но конечный бизнес-пользователь никогда не увидит этих схем, потому что они ему не нужны. У него по-прежнему будут только окна привычных систем. А то, что стоит за ними (все эти блоки и связи), для него слишком абстрактно и не особо интересно.
Если у вас есть интересные идеи или истории про внедрение подобных систем — добро пожаловать в комментарии.
Дмитрий Овчаренко, архитектор Центра внедрения бизнес-систем компании «Инфосистемы Джет»
Автор: JetHabr