Biztalk Server: машины против людей. На чьей стороне CIO?

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

На сегодняшний день не существует вендора, который мог бы предложить единый комплекс программно-аппаратных решений для всех сфер деятельности любой компании. Соответственно, каждая компания вынуждена опираться на комплекс различных и, как правило, не полностью совместимых между собой решений от разных производителей. Для логической обработки и «переброса» данных из одной системы в другую используются менеджеры — люди, которые либо частично занимаются выгрузкой данных из одной системы и вбиванием вводом этих данных в другую, либо посвящают этому все рабочее время. Постоянная необходимость в уменьшении затрат на поддержку операций компании привела к возникновению решений по автоматизации бизнес-процессов. Одним из таких решений является продукт компании Microsoft — BizTalk Server 2010. В своей основе платформа BizTalk — это решение, которое обеспечивает коммуникации между разными приложениями и/или людьми, а также логическую обработку информации и мониторинг бизнес-процессов.

На текущий момент большинство приложений, — которые моделируют бизнес-процессы, все равно требуют достаточно усилий для получения конечного результата, так как бизнес-процессы редко полностью дублируются в различных организациях. Обычно необходимо подстраиваться под каждый отдельный бизнес-процесс. Microsoft своим продуктом просто стандартизировал инструментарий и упростил разработку решения, предоставляя большое число заготовок, которые можно использовать при программировании. Разработка приложений под BizTalk, как и обычных приложений для Windows, осуществляется с помощью конструктора Microsoft Visual Studio. BizTalk содержит дополнения к библиотекам Visual Studio для снабжения разработчика бизнес-приложений всем необходимым для уменьшения временных затрат.
Общий алгоритм работы сервера — это прием информации,  после  которого  происходит обработка этой информации под конкретные бизнес-задачи — пересылка полученных данных либо приложению, либо для использования пользователем. Общая схема работы приведена на рисунке

Biztalk_Server
В начале данные должны попасть в систему. Это происходит за счет установки и настройки «адаптеров» приема или передачи. Адаптер отвечает за ввод или вывод данных в том или ином виде в систему. Microsoft разработал большое количество адаптеров для различных своих систем и систем третьих производителей: XML файл, текстовый файл, почтовое сообщение, запрос к базе данных, обмен с SAP и много других. Кроме того, сервер поддерживает адаптеры, которые могут быть разработаны для менее распространенных систем.
После получения через адаптер, данные попадают на конвейер. Конвейер — это отдельный модуль, цель которого убедиться, что данные могут быть далее прочитаны системой.   Бизнес-логика,   которая будет построена далее, может оперировать данными только в формате XML, поэтому необходимо перевести любые данные в этот формат. Кроме того, можно включить проверку данных на соответствие определенному шаблону (схеме) или произвести расшифровку данных. Например, система запрограммирована через адаптер брать из определенной удаленной папки обычный текстовый файл CSV. После получения проверяется цифровая подпись, после чего конвертируются данные в XML и проверяются на соответствие определенной схеме, в которой указаны какие значения, какого типа и в каком количестве должны быть в файле. Все эти операции производятся последовательно в процессе прохождения файла по конвейеру.
После конвейера файл с данными в XML может быть подвергнут желаемым изменениям. Например, от партнера получен файл, который должен теперь пойти далее на обработку в компанию, но форматы подобных запросов у партнера и у компании не совпадают. Для решения подобных вопросов созданы карты соответствия. Работа карты сводится к тому, что предоставляется одна схе-ма для исходных данных и одна, которая описывает эти данные так, как необходимо компании. После чего можно явно указать, какие данные из исходной схемы соответствуют каким данным из желаемой. Помимо указания прямого соответствия можно воспользоваться «фанктоидами» или блок-функциями для изменения необходимых исходных данных. Например, в исходных данных есть стоимость товара и количество товара, но нет суммарной стоимости. В целевой схеме можно добавить соответствующее поле данных и указать взаимосвязь со старой схемой в виде произведения двух необходимых полей. Пример схемы и экрана «фанктоидов» приведен на рисунке

conveer
Заметим, что во время создания схемы, можно работать как с кодом в XML, так и со структурой, которая будет преобразовываться в участки кода. Для работы с «логикой» необходимо просто указывать связь полей мышкой или перетаскивая необходимый «фанктоид» в поле для связей. Таким образом, получаем минимум программирования и максимум работы бизнес-аналитика.

Далее данные, которые уже представлены в необходимом виде (отредактированный XML) отправляются в локальную базу данных сервера. База является только логически локальной и может размещаться как на самом сервере приложений, так и на своих выделенных серверах.

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

Во-вторых, то, что для человека считается очевидным и интуитивно понятным, для машины, при отсутствии программного кода, вызывает критические ситуации. Вспоминается самый простой пример программирования из института, когда надо было запрограммировать логику решения квадратного уравнения. Задача абсолютно тривиальная, но студенту лень долго думать… Поставил переменные, подсчитал дискриминант, подставил значение в формулу для корней, и вот, все хорошо, задача решена. Если мы заводим стандартное квадратное уравнение с 2-мя корнями на выходе — все работает. Но если у нас уравнение, где дискриминант равен нулю (один корень) или отрицательный (нет корней) — программа с треском «вылетает». Такая же ситуация и в случае приложений для BizTalk.

В основе — логика

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

BiztalkServer2

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

BizTalk Server является гибким и достаточно простым решением по сравнению с аналогичными решениями других вендоров, кроме того это наиболее экономически привлекательное решение. Использование автоматизации бизнес-процессов в частности решения от Microsoft существенно снизит операционные расходы на персонал, структурирует и стандартизирует принятие бизнес-решений.

Одним из возможных негативных аспектов внедрения подобных решений является тот факт, что большинство менеджеров, которые могут быть заменены на работу машины, вряд ли согласятся на подобные новшества. С точки зрения ИТ-отдела, внедрение BizTalk — это действительно уменьшение затрат и поддержка бизнеса с помощью технологий, но для других отделов внедрение может быть поводом сокращений штата и уменьшением бюджета. Последнее слово выбора будет за CIO..

Автор статьи: Алексей Зайончковский

Материал взял с журнала ITPartner и опубликован на сайте с разрешения редакции