Краткое введение в моделирование бизнес-процессов
Часть 4. Создание решений на основе средств моделирования
Зачем нужны решения на основе средств моделирования
Средства доступа к данным моделей
Генерация моделей и перенос их между средствами моделирования
В предыдущих статьях данного цикла (см. КомпьютерПресс № 8-10’2007) мы рассмотрели области применения моделирования бизнес-процессов, перечислили основные методологии и наиболее часто применяемые в нашей стране инструменты моделирования, обсудили вопросы, касающиеся создания целостного, непротиворечивого набора моделей и методов хранения моделей, а также разграничения доступа к данным. В настоящей статье речь пойдет о возможностях создания решений на основе средств моделирования.
Зачем нужны решения на основе средств моделирования
Прежде чем приниматься за обсуждение возможности создавать решения на основе средств моделирования, следует понять, зачем они вообще нужны.
Как показывает практика, задач, связанных с теми или иными манипуляциями над данными моделей, немало. Одна из наиболее распространенных — генерация отчетов по моделям в виде файлов различных форматов. Подобные задачи встречаются во всех областях деятельности и могут включать вывод и графического представления модели, и данных самих моделей в виде текста или таблиц. К этой же категории можно отнести задачи, связанные с получением различных статистических значений на основе данных, содержащихся в моделях, а также задачи проверки моделей на соответствие как определенным правилам общего характера, так и соглашениям, установленным для конкретного проекта (так называемые семантические проверки и аудит моделей). Иными словами, данная категория задач предполагает чтение данных моделей.
Другая задача, с которой тоже часто приходится иметь дело в процессе работы с моделями, — это генерация моделей на основе внешних данных, например текстовых документов или таблиц (то есть запись данных моделей). С подобными задачами нередко сталкиваются компании, впервые внедряющие у себя средства моделирования и имеющие некоторое количество более или менее прилично структурированных унаследованных данных. К этой же категории задач можно отнести и перенос моделей из одного средства моделирования в другое. Эта задача не всегда легко решается, так как не для всех случаев существуют конверторы, и в данной статье мы постараемся объяснить почему.
Далее мы рассмотрим варианты реализации доступа к данным моделей и возможные способы решения перечисленных задач в разных инструментах моделирования.
Средства доступа к данным моделей
Средства моделирования могут предоставлять доступ к данным моделей различными способами и в разном объеме, начиная с отсутствия доступа к данным (за исключением штатных средств редактирования моделей) и заканчивая полным документированным доступом на чтение и запись любых данных, производимых в результате моделирования. Наличием или отсутствием подобных средств обычно объясняется реализация тех или иных способов решения перечисленных задач.
Многие средства моделирования хранят свои данные в файлах закрытых форматов, и их производители не документируют форматы хранения данных. В таких случаях, как правило, инструменты моделирования содержат встроенные средства для генерации отчетов, преобразования моделей в форматы других средств моделирования или из таковых, а также для решения сходных задач. К подобным инструментам можно отнести, к примеру, семейство продуктов AllFusion Modelling Suite компании Computer Associates.
Однако в последнее время в средствах моделирования все более активно доступ к данным моделей обеспечивается с помощью программных интерфейсов. Из наиболее известных примеров реализации подобного доступа стоит отметить такие инструменты, как Microsoft Visio и продукты семейства ARIS (IDS Scheer).
Средство моделирования Microsoft Visio, манипулирующее в качестве данных локальными файлами, включает средство исполнения кода Visual Basic for Applications, позволяющее как записывать код во время работы пользователя, так и создавать его с помощью среды разработки (рис. 1).
Рис. 1. Среда разработки VBA в Microsoft Visio
Для доступа к данным моделей Visio предоставляет соответствующую объектную модель, доступную через COM-интерфейсы как из среды исполнения кода VBA внутри самого приложения, так и из внешних приложений. Отметим, что и язык программирования, и объектные модели всех приложений Microsoft Office, включая Visio, отлично документированы и при определенном навыке VBA-программирования вполне возможна и генерация отчетов любой сложности, и создание средств переноса данных между Visio и другими средствами моделирования, и генерация моделей путем создания решений на основе приложений данного семейства.
В семействе продуктов ARIS средства доступа к данным моделей более разнообразны, нежели в Visio. Поскольку это средство моделирования хранит данные в серверной СУБД и представляет собой трехзвенную систему с сервером приложений в качестве среднего звена, доступ к данным моделей технически возможен в любом из трех звеньев. Доступ непосредственно к СУБД хотя и используется некоторыми компаниями на свой страх и риск, но не документируется и не поддерживается производителем этого ПО. Зато доступ к данным из клиентского приложения и из сервера приложений поддерживается и хорошо документирован.
Для обращения к данным на уровне клиентского приложения можно применять приложение ARIS Toolset, которое наряду с обычными пользовательскими средствами редактирования моделей предоставляет среду разработки скриптов на VBA-совместимом языке SAX Basic и объектную модель для доступа к данным моделирования (рис. 2).
Рис. 2. Среда разработки скриптов на языке SAX Basic в ARIS Toolset
Эта среда разработки хотя и не предоставляет всех привычных современным разработчикам средств повышения продуктивности кода, но, тем не менее, вполне приемлема для создания скриптов, генерирующих отчеты по моделям или сами модели. Совместимость же языка программирования с VBA позволяет легко использовать приложения Microsoft Office в качестве COM-серверов, и при определенном опыте VBA-программирования с помощью этих приложений можно и генерировать достаточно сложные отчеты, и преобразовывать в модели данные, содержащиеся в документах офисных приложений.
Для манипуляции данными на уровне сервера приложений ARIS Business Server можно применять приложение ARIS Business Architect, позволяющее создавать код на одной из реализаций языка JavaScript (соответствующей спецификации ECMA-262), способный выполняться сервером приложений (рис. 3).
Рис. 3. Среда разработки кода на языке JavaScript в ARIS Business Architect
Этот же сервер содержит и среду исполнения скриптов, созданных в ARIS Toolset; кроме того, в комплект поставки продукта входят средства преобразования кода, созданного в ARIS Toolset, в код JavaScript, а также средства его непосредственного исполнения без процедуры преобразования.
Отметим, что и Visio и ARIS Toolset, будучи COM-серверами, позволяют создавать решения на их основе с помощью COM-совместимых средств разработки и таким образом обращаться к данным моделей из самостоятельно созданных приложений.
Генерация отчетов
Мы уже обсуждали тот факт, что восприятие людьми информации в графическом виде (например, в виде моделей с удачно подобранной нотацией) более эффективно, нежели восприятие аналогичных текстовых описаний. Тем не менее модель не может считаться полноценной заменой корпоративного нормативно-справочного документа, такого, например, как инструкция, регламент, положение или технологическая карта. Кроме того, не все данные, содержащиеся в модели, можно адекватно представить в графическом виде — ведь у объектов модели может быть большое количество атрибутов. Даже такая, казалось бы, простая вещь, как модель данных, содержащая ограниченное количество типов объектов, обычно включает текстовые описания таблиц и полей — ведь без них не так-то просто заниматься разработкой приложений, которые используют данные, описанные в такой модели.
Все вышеизложенное означает, что средства моделирования должны предоставлять возможность генерации отчетов на основании данных, содержащихся в моделях, при этом правилом хорошего тона при генерации отчетов сегодня считается поддержка форматов офисных приложений (Microsoft Word, Microsoft Excel), а зачастую и приложений других форматов (HTML, PDF, XML). Технически такая возможность может быть реализована либо встраиванием генератора отчетов в само средство моделирования, либо предоставлением доступа к данным моделей с помощью программных интерфейсов внешним приложениям или коду, исполняемому в адресном пространстве средства моделирования (в последнем случае средство моделирования обычно содержит среду разработки и исполнения такого кода).
Как правило, генераторы отчетов встроены в средства моделирования в тех случаях, когда производитель средства моделирования не документирует формат данных, используемый для хранения моделей, и не предоставляет никаких средств доступа к ним. К примеру, таким образом реализованы средства генерации отчетов по моделям в инструментах семейства AllFusion Modelling Suite от компании Computer Associates (рис. 4 и 5). В этом плане инструменты данного семейства представляют собой решения на основе Microsoft Office — они обращаются к офисным приложениям как к COM-серверам.
Рис. 4. Генератор отчетов, встроенный в AllFusion Data Modeler (ERwin)
Рис. 5. Пример отчета по модели ERwin
Недостатки подобной реализации средств генерации отчетов вполне очевидны: средства формирования структуры результирующего документа, основанные на «собирании» ее из данных, содержащихся в моделях, обычно не позволяют применять при выводе данных вычисляемые выражения и условия (например, «выводить фразу “нет описания” при его отсутствии»). Подобные средства не позволяют также существенно влиять на внешний вид документа в плане размещения в нем логотипов, выбора шрифтов и формирования иных атрибутов документа, которые консультанты по моделированию называют капризами заказчика, а сами заказчики — соблюдением корпоративного стиля (и, поверьте, заказчиков, для которых атрибуты корпоративного стиля не менее важны, чем собственно содержание документа, немало). Однако нельзя не отметить и очевидное достоинство таких инструментов — генерация отчетов по моделям с их помощью не требует навыков программирования, коими авторы моделей обладать, вообще-то, не обязаны.
Генерация отчетов по моделям для средств, предоставляющих доступ к данным моделей в виде программных интерфейсов, обычно представляет собой создание соответствующего кода в среде разработки средства моделирования или с помощью внешних средств разработки. Именно так осуществляется генерация отчетов в Visio и в инструментах семейства ARIS — оба продукта позволяют обращаться к данным моделей и изнутри встроенной среды разработки, и из COM-совместимых инструментов. Отметим, что подобные средства моделирования обычно сопровождаются примерами реализации простейших отчетов (например, в комплектах поставки ARIS Toolset и ARIS Business Architect их несколько десятков). Кроме того, в состав ARIS Toolset входит мастер создания отчетов, представляющий собой кодогенератор с функциональностью, напоминающей генераторы отчетов в продуктах семейства AllFusion Modelling Suite (рис. 6).
Правда, в отличие от генераторов отчетов семейства AllFusion Modelling Suite, указанный мастер отчетов генерирует не непосредственно отчет, а код скрипта, который в дальнейшем может быть модифицирован в среде разработки.
Рис. 6. Генератор отчетов, встроенный в ARIS Toolset
Генерация моделей и перенос их между средствами моделирования
Если разработчик средства моделирования предоставляет либо полное описание структуры данных (например, формата файлов, в которых хранятся модели), либо программные интерфейсы для доступа к данным моделей, позволяющие осуществлять не только чтение, но и запись этих данных, то имеется техническая возможность генерации моделей на основе внешних данных (в том числе и на основе моделей, созданных в других инструментах моделирования). В противном случае можно рассчитывать лишь на инструменты, предоставленные самим разработчиком средств моделирования или его партнерами.
И Visio, и продукты семейства ARIS позволяют осуществлять генерацию данных моделирования с применением тех же средств доступа к данным, что используются для генерации отчетов. Источником для генерации моделей в этих продуктах могут служить произвольные данные (например, офисные документы, таблицы баз данных, данные из других средств моделирования) — главное, чтобы эти источники были доступны для чтения из того средства разработки.
Тем не менее задача генерации моделей на основе внешних данных нередко оказывается отнюдь не такой простой, как это может показаться поначалу, особенно в том случае, когда нас интересует не только графическое представление данных моделирования, но и логика, не отраженная в нем.
Рассмотрим, к примеру, довольно часто встречающуюся в последнее время задачу переноса данных из моделей Visio в модели ARIS. С ней нередко сталкиваются крупные компании, начавшие с создания нескольких моделей и со временем обнаружившие, что накопившимися несколькими сотнями, а то и тысячами файлов с моделями стало сложно управлять. При решении этой задачи в качестве исходных данных мы имеем некоторое количество файлов (моделей), содержащих символы разных типов (объекты) и соединяющие их линии (связи), при этом у объектов и связей могут быть не отображаемые на модели атрибуты. Формально в ходе выполнения этой задачи мы должны также создать некоторое количество моделей, содержащих объекты и связи.
Казалось бы, если мы применяем одну и ту же нотацию в обоих средствах моделирования, то с точки зрения графики выполняем однозначное преобразование символов и линий определенного типа в одном средстве моделирования в символы и линии другого определенного типа в другом средстве моделирования. Однако если вспомнить, что в моделях ARIS представление объектов и связей отделено от их содержания (на моделях имеются символы, ссылающиеся на определения объектов, которые, в свою очередь, вовсе не предназначены для непосредственного отображения на моделях), то мы тут же обнаружим, что столкнулись с задачей получения ответа на вопрос о том, что такое один и тот же объект, обсуждавшейся в одной из предыдущих статей этого цикла. В данном случае она формулируется так: какие именно символы из разных файлов Visio должны ссылаться на один и тот же объект ARIS? Ответ на этот вопрос, являющийся, по существу, техническим заданием на средство преобразования данных, существенно зависит от особенностей данного набора моделей и от правил моделирования, принятых в компании, и представляет собой ряд правил типа «служебные записки являются разными в различных моделях, генеральный директор один на все модели…» (а если мы учитываем неизбежные ошибки, допущенные при исходном моделировании, и пытаемся их исправить, то список пополняется еще и перечнем возможных ошибок и правил их исправления). При этом нередко более или менее исчерпывающая формулировка подобного ответа может оказаться даже более трудоемкой, нежели собственно программирование. Именно поэтому нет универсальных конверторов моделей Visio в модели ARIS — есть лишь довольно дорогие услуги по написанию таковых для конкретных наборов моделей и конкретных требований к их преобразованию.
Справедливости ради заметим, что обратная задача решается намного проще. Ведь если, преобразуя модели Visio в модели ARIS, мы должны, образно говоря, добавить к вновь создаваемым моделям недостающие данные, то при обратном преобразовании мы просто игнорируем некоторые данные, уже присутствующие в исходном наборе моделей.
Если же перенос моделей из одного средства моделирования в другое сопровождается изменением нотации, то это означает написание детальной спецификации преобразования данных с указанием, во что именно в новой нотации преобразуются применяемые типы объектов и связей в исходной нотации, и эта работа не менее трудоемка, нежели реализация данной спецификации.
В общем случае можно сформулировать основную идею таким образом: генерация моделей на основе внешних данных возможна, если:
- средство моделирования позволяет осуществлять генерацию данных на основе внешних источников;
- требования к генерации моделей четко сформулированы и не противоречат методологии, поддерживаемой средством моделирования;
- требования к исходным данным строго соблюдены.
На этом мы закончим обсуждение создания решений на основе инструментов моделирования. Технические аспекты решения задач данного вида находятся за рамками этого цикла. Читатели, интересующиеся данным вопросом, могут обратиться к соответствующей литературе, а также в компании, предоставляющие услуги по обучению разработке подобных приложений.
* * *
В следующей статье этого цикла мы поговорим о некоторых аспектах создания распределенных приложений с применением инструментов моделирования бизнес-процессов.