ИТ-интеграция — миссия выполнима

Мария Ушанова, директор центра программных решений компании «Инфосистемы Джет»
Анна Харитонова, начальник отдела бизнес-анализа Центра программных решений компании «Инфосистемы Джет»
Дмитрий Сергеев, начальник Управления по работе с банками Центра программных решений компании «Инфосистемы Джет»

Для начала нужно определиться с тем, что же такое интеграция. Это слово пришло к нам из латинского языка: integrum (integer) означает «целый, единый». Но почему когда мы слышим «интеграция», в голове возникают совершенно противоположные ассоциации? Дело в том, что объединить уже реализованные «фрагменты» решения поставленной задачи часто

Кто занимался поддержкой и внедрением приложений, тот знает, что большинство всех усилий обычно уходит именно на попытки «подружить» системы, разработанные разными людьми в разное время, в разных условиях и под разные платформы с использованием различных технологий. Рассмотрим простой пример: представим себе розничную компанию по торговле игрушками. Как она создавалась? Владелец подумал о том, чем он хочет торговать, об аренде помещений, найме персонала, бухгалтерии. Пока у него был один небольшой магазин, всё неплохо работало, разве что приходилось учитывать складские запасы и думать о логистике. Но большинство задач вполне решалось ведением нескольких документов Excel, с помощью бухгалтерской программы и небольшой базы данных, которую ему написал, например, бывший однокурсник. Какая-либо кросс- или аналитическая отчётность не требовалась, потому что прибыль магазина была видна сразу.

Прошло несколько лет, у нашего владельца уже 10 магазинов, 2 склада, недавно стартовали интернет-продажи. Конечно, с расширением бизнеса пришлось отказаться от Excel как средства учёта, однако отчётность всё равно готовится в нём... Почему же? Потому что для учета товара на складах так и используется уже значительно переделанная программа однокурсника, интернет-магазин был внедрён усилиями сторонней компании, бухгалтерия использует 1С, кадры выбрали решение известного производителя. И ни одно из этих решений не «знает» о существовании других. В итоге ИТ-отделу приходится каждый месяц осуществлять выгрузки из баз данных для бухгалтерии, которая затем неделю пытается свести эту информацию в хоть какую-то отчётность. А в это время владельцу интересно уже не только итоговое сальдо, ему хочется понимать, какие из его магазинов приносят прибыль, а какие — нет, какие товары лучше продаются, какие — хуже, и, в конце концов, кто его клиенты и как сделать так, чтобы они стали больше у него покупать?

При всей «игрушечности» примера подобные проблемы рано или поздно встают перед практически любой организацией, будь то небольшая компания, средний бизнес или крупная корпорация. И чем крупнее компания, тем с более комплексными проблемами приходится сталкиваться ее ИТ-отделу. Отметим, что если задача интеграции информационных систем (ИС) в организации еще не стоит остро, а необходимость их объединения уже существует, чаще всего на выходе будет ИТ-решение, во многом внедренное «спонтанно». К сожалению, для него не характерна системность подхода и в каждом конкретном случае задача интеграции решается путем «изобретения велосипеда».

Кроме того, на решение задачи интеграции оказывают влияние следующие факторы:

  • Распределенность. Чем больше масштаб организации, тем задачи интеграции более комплексные, появляется организационная и географическая рассредоточенность.
  • Гетерогенность. В крупных проектах почти никогда нет возможности использовать платформы и инструменты одного производителя, поэтому приходится учитывать разнородность платформ, как программных, так и аппаратных.
  • Наследственность. Зачастую нет возможности отказаться от наследия «исторически сложившейся» ИТ-инфраструктуры, морально устаревших систем и технологий, старого «железа», что не способствует упрощению задачи интеграции.
  • Интерактивность. Пользователи все время повышают свои ожидания в отношении скорости реакции системы, производительности и оперативности получения информации. Зачастую требуется обработка данных практически в реальном времени.
  • Мобильность. С развитием мобильных технологий взаимодействие с пользователем все чаще ведется через каналы общего пользования, в транспорте и на улице, дома и в общественных местах.
  • Высоконагруженность. С ростом пользовательских нагрузок на системы в том числе повышаются требования к способам интеграции и их производительности.
  • Непрерывность. Как известно, прогресс не стоит на месте, и все ИС непрерывно развиваются, выходят новые версии ПО, в компаниях производится замена оборудования. Все эти процессы должны проводиться без остановки интеграции между компонентами систем, что опять же усложняет процесс.

Как же в итоге решать задачу интеграции? Существует целый ряд средств и методов, которые позволяют реализовать задуманное. Их можно условно разделить на три основные группы, каждая из которых, в свою очередь, включает в себя разнообразные подходы и системы:

Первая группа — это решения для интеграции данных. Фактически подход к интеграции со стороны данных является одновременно и наиболее простым с точки зрения реализации, и наиболее многообразным относительно решаемых при этом задач. Это могут быть импорт данных в разнообразных форматах, их преобразование, очистка от ошибок, исключение дублирующих записей, обогащение, хранение, отображение и др. Ниже будут рассмотрены основные классы систем, непосредственно участвующих и обеспечивающих качественную интеграцию на уровне данных.

Вторая группа — это интеграция приложений. Если интеграция данных чаще применяется для построения хранилищ и аналитических систем, то этот подход главным образом позволяет строить распределенные корпоративные ИС, направленные на обработку оперативных данных. Посредством интеграции приложений чаще всего осуществляется обмен короткими сообщениями и событиями между системами. За счет этого снимается необходимость ручного ввода данных в каждую из интегрируемых систем.

Третья группа — интеграция бизнес-процессов. Когда в организации уже налажены интеграционные взаимодействия между ИС и автоматизированы практически все информационные потоки, следующим этапом становится своеобразная «интеграция» людей-исполнителей и ИС. Выстраивается единая автоматизированная цепочка, в которой человек и «машина» выполняют свою часть работы, образуя эффективный бизнес-процесс.

Рассмотрим указанные группы и применимые в их рамках решения более подробно.

Интеграция данных

MDM

Практически в любой компании, независимо от рода ее деятельности, ведется учет информации о контрагентах, с которыми она взаимодействует, о товарах или услугах, которые она реализует, о контрактах, в рамках которых эти товары или услуги поставляются или закупаются. Представим, что это большая и территориально распределенная организация. Как правило, это означает наличие «зоопарка» ИТ-систем, различающихся в головном офисе и территориальных отделениях. В эти различные ИС сотрудники добросовестно заносят данные о клиентах компании. Однако одного и того же клиента могут внести в CRM, ERP и прочие учетные системы столько раз, сколько этих бизнес-приложений, собственно, насчитывается в организации. При этом оператор, вносящий информацию о новом клиенте, например, об «ООО Розмарин», в свою систему, зачастую может даже не знать о том, что его сосед по кабинету сделал то же самое, но в своем приложении. С одной оговоркой — у него новый клиент называется «Торговый дом Розмарин» или даже «Rozmarin Trade». Введенная таким образом информация будет успешно храниться в системах, обрабатываться и дополняться до тех пор, пока руководство не захочет получить консолидированную отчетность по клиенту «Розмарин». Похожая ситуация возникает, когда в разных филиалах торговой организации, имеющих один и тот же ассортимент продукции, номенклатура ведется в локальных системах и, разумеется, по-разному. Представьте себе, сколько возможных вариантов названий может быть, к примеру, у товара «кашпо декоративное керамическое „Весна“». А теперь представьте, как будет выглядеть ответ на запрос от коммерческого отдела: «Каков объем поставки кашпо „Весна“ клиенту „Розмарин“?».

Разумеется, до некоторых пор вопрос можно решать организационно, как выдавая четкие инструкции операторам отдельных систем, так и создавая огромное многообразие матриц соответствий и таблиц перекодировок (этот вариант чуть более технологичен). Другой способ — ручное сведение данных в консолидированной отчетности, когда специально выделенный, к примеру, аналитик, метким взором оглядывая огромный отчет, ловко вылавливает из него всевозможные «Розмарины» и решает, один и тот же ли это клиент. Эти решения лишь на первый взгляд кажутся быстрыми, простыми и недорогими, но, к сожалению, совершенно не приемлемы для крупных и быстрорастущих компаний.

Описанная задача является всего лишь одним из частных случаев применения систем класса MDM (Master Data Management. В действительности, такие решения отвечают за огромный спектр задач, связанных с управлением основными данными, которые также часто называют эталонными данными или нормативно-справочной информацией (НСИ). Внедрение таких систем позволяет не только эффективно организовать процессы управления ими, обеспечив их актуальность и непротиворечивость, но и повысить качество данных, например, используя технологии их очистки (так называемое Data Quality). Используя определенные модели данных и алгоритмы их обработки, такие решения позволяют автоматически устранять определенные некорректности в данных, образовавшиеся, например, вследствие ошибок оператора. Вернемся к примеру с «Розмарином» и кашпо: возможным решением здесь могла бы стать так называемая дедубликация, которая также относится к классу задач Data Quality.

ETL

На сегодняшний день практически в любой организации возникает задача получения различного рода консолидированной отчетности, на основе которой умудренные опытом бизнес-аналитики делают выводы о текущих тенденциях бизнеса и принимают те или иные стратегические решения. Как правило, для получения подобного рода отчетности строятся громадные хранилища, в которые собираются данные из всех основных корпоративных ИС, будь то ERP, CRM или автоматизированная банковская система. Основой же для построения хранилищ практически всегда является система, которая, получая на вход данные в самых разных форматах, преобразовывает их в нужную форму и загружает в хранилище. И когда необходимо серьезное преобразование данных на их пути из одной системы в другую, на помощь приходит технология ETL (Extract, Transform, Load).

Однако сфера ее применения не ограничивается одними лишь хранилищами и BI. В качестве примера можно привести задачу расчета бонусных баллов. На данный момент в России достаточно популярны так называемые программы лояльности, участники которых являются обладателями специальных пластиковых карт. После того как владелец карты совершил покупки в определенных розничных и ресторанных сетях, на автозаправочных станциях и т.п., ему по различным схемам начисляются бонусные баллы.

Представим, что абонентам одного из телеком-операторов, являющимся обладателями таких карт лояльности, полагаются бонусные баллы за оплату тех или иных услуг, например, минут разговора, отправленных SMS и MMS, интернет-трафика и т.п. Количество типов таких услуг и соответствующих алгоритмов начисления баллов — несколько десятков. Количество абонентов, имеющих карты лояльности, — десятки, а то и сотни тысяч. Совершенно очевидна необходимость системы, которая в автоматическом режиме выгружала бы данные об абонентах и предоставленных им услугах, рассчитывала бы баллы, полагающиеся каждому, и передавала бы их в учетную систему программы лояльности.

Нужно отметить, что исходные данные для расчетов находятся в нескольких БД, включая абонентскую базу и базу платежей. Алгоритмы расчета бонусов представляют собой наборы операций, сложность которых может быть совершенно разной — от простейших запросов к единственному источнику до сложной последовательности различных преобразований данных, полученных одновременно из нескольких систем, включая неограниченное количество условных переходов.

Эта задача может быть решена с помощью использования технологии ETL. Построенное решение по определенному расписанию будет запускать сложнейшие расчетные процедуры, в результате формируя данные по начисленным баллам.

ECM

Как уже говорилось ранее, интеграционные задачи возникают практически при любом внедрении бизнес-приложений, но есть классы систем, в основе которых изначально лежит интеграционное решение. Примером здесь могут являться платформы класса ECM (Enterprise Content Management), ориентированные на обработку большого количества документов и любой неструктурированной информации, вплоть до аудио- и видеофайлов, а также данных из интернет-источников. В основе такого решения лежит хранилище, в которое посредством интеграции помещается информация любого требуемого типа. Перечислим некоторые виды такой интеграции. Во-первых, это сбор электронных документов из бизнес-приложений — контрактов, приказов и распоряжений, ордеров и т.п. К этому же типу задач можно отнести сбор в единое корпоративное хранилище электронных писем, отправляемых или получаемых сотрудниками. Во-вторых, это помещение в хранилище оцифрованных бумажных документов. В этом случае необходима интеграция со средствами сканирования и распознавания. И третий пример — это сбор информации из открытых источников, например, интернета. Представим себе сотрудника отдела маркетинга, ответственного за процесс формирования имиджа компании в СМИ. Одной из его задач является сбор данных об упоминаемости компании в различных источниках, в первую очередь, в интернете. Ее решение может быть построено на основе автоматического сбора, структурирования информации по различным признакам (темам, авторам, источникам и т.п.) и ее помещения в единое хранилище. Совершенно очевидно, что такое решение требует интеграции с интернет-источниками.

Интеграция приложений

ESB

По вполне понятным причинам автоматизация исторически развивалась по пути наименьшего сопротивления — где болит, там и внедряем программное обеспечение, потому что результат нужен «вчера», Генеральный в гневе, клиенты уходят... Как ни банально это звучит, решение одной проблемы всегда вызывает к жизни две другие, не менее сложные. Внедрили «по-быстрому» системы в двух отделах — обнаружили, что в обеих реализован справочник клиентов. Прошло пару лет, и вот уже в компании создан отдел НСИ, а отчеты, сформированные из разных систем, противоречат друг другу. И с каждым годом получить достоверные цифры почему-то становится не проще, а сложнее.

Таким же путем шли и при интеграции — системы разрознены, так давайте научим их обмениваться информацией. И снова знакомая картина: чтобы получить данные о клиенте из двух разных систем, специалисты компании написали две процедуры на стороне «получателей». В результате при малейшем изменении сразу возникают проблемы. Нужно, во-первых, не забыть, кто является получателем, во-вторых, внести изменение во все зависимые системы. Здесь уместно вспомнить любимый анекдот ИТ-директора: «Работает? — ничего не трогай!».

Итак, жизнь подтолкнула к появлению интеграционная шин, или ESB — Enterprise Service Bus. Теперь приложения получили возможность интегрироваться только с шиной и «не знать» о других системах. Как образно выразился один из наших заказчиков, «у нас появится шина, ощетинившаяся интерфейсами». Подробнее об интеграционных шинах и технических деталях их реализации читайте в статье Павла Романченко.

Интеграция бизнес-процессов

BPM

Менеджменту необходимо получать адекватные и достоверные данные для принятия управленческих решений, сотрудники хотят избежать рутины, да и просто гордиться тем, что работают в современной технологичной компании, где работа организована эффективно и позволяет сосредоточиться на своих задачах, а не продираться сквозь лес ИТ- и «не ИТ-» систем с их разрозненностью и другими несовершенствами. Речь идет о том, что, какой бы автоматизированной система ни была, для обеспечения эффективной работы бизнес-процессов необходимо, чтобы и она, и ее пользователи работали буквально в гармонии друг с другом. То есть нужно сделать так, чтобы, например, длинная цепочка «товар куплен у поставщика, оказался на складе, приобретен клиентом через интернет-магазин и, наконец, учтён в бухгалтерии» в разрезе информационных систем выглядела также единым процессом, а не разрозненным набором операций, выполняемых операторами в самых разных системах. Это под силу BPM.

Технологии BPM (Business Process Management) позволяют сократить время выполнения бизнес-процессов за счёт регламентации и автоматизации шагов, введения временных ограничений и действий «по умолчанию». Соблюдение всех предусмотренных правил и повышение эффективности бизнес-процессов обеспечиваются за счет увеличения прозрачности этих процессов для всех их участников, регламентации и средств мониторинга.

При этом применение BPM позволяет «визуализировать» процессы, причем в динамике. И самое главное — внедрение новых процессов и изменение старых осуществляются гораздо быстрее и практически прозрачно для их участников. Сотрудникам не нужно заучивать новые регламенты, запоминать новый порядок действий или согласований — все это ложится на плечи BPM-системы.

Разумеется, мы не претендуем на полное и детальное описание всех существующих технологий интеграции, есть еще, как минимум, интеграция сервисов и пользовательских интерфейсов. Цель этой статьи — дать общее представление о задачах и проблемах интеграции. Далее в этом номере поднятые нами вопросы будут освещены более подробно, а также описаны существующие вендорские решения и опыт реализации подобных проектов.

Контактная информация

Наши сайты: www.jet.su, www.jetinfo.ru. Электронная почта: info@jet.su.

Другие статьи раздела «Интеграция как искусство»