Использование Workflow Designer не совсем по назначению
От: Lexandiy  
Дата: 18.07.12 16:57
Оценка:
Вводные:

1. Есть некая проприетарная "enterprise message bus" ("шина"), используемая для реализации интеграционных проектов, например: "Получить котировки от API биржи, трансформировать их в некий XML-формат, отдать на обработку некоему 'SQL-адаптеру' [понимающему этот формат] для укладки в базу, получить от этого 'SQL-адаптера' ответ (тоже в XML-формате), конвертировать (посредством XSLT) этот ответ в формат некоей учётной системы и, наконец, отправить результат конвертации в учётную систему".

2. По факту, маршрут данных сейчас создаётся ручками в XML-редакторе (а то и в простом текстовом редакторе), в определённом XML-формате, понимаемом "шиной".

3. Т.к. XML с описанием маршрута не шибко удобен для восприятия, то параллельно в MS Visio рисуется (в полу-свободной нотации) диаграмма, описывающая данный маршрут. Понятно, что поддержание синхронности этой диаграммы с "маршрутным XML'ем" — задача дебильная. Но, увы, приходится её решать! Приведённый выше пример — это простая цепочка "прямоугольников", соединённых стрелками; соотв. файла Visio под рукой сейчас нет, но выглядит это как-то так (в квадратных скобках — "прямоугольник", в круглых — комментарий на "стрелке"):

[Биржа] --(котировки как бинарные данные)-->
    [Биржевой адаптер] --(котировки как XML)-->
        [XSLT-конвертер] --(инструкции SQL-адаптеру как XML)-->
            [SQL-адаптер] --(ответ SQL-адаптера как XML)-->
                [XSLT-конвертер] --(XML, понятный учётной системе)-->
                    [Учётная система]


Что хочется:

"Нарисовать" маршрут в некоем графическом редакторе, оперируя предопределённым набором артефактов, а затем засериализовать его в тот же самый "маршрутный XML" одним нажатием кнопки. Ну и, разумеется, иметь возможность десериализовать обратно в "картинку" для целей редактирования. Причём данный редактор д.б. "своим" приложением, а не каким-нибудь MS Visio или MS Visio Studio — чтобы не заставлять пользователя этого редактора приобретать недешёвые лицензии сторонних продуктов.

Что пришло в голову:

Использовать re-hosted workflow designer, представив свои "прямоугольники" в виде "activities". Насколько я понимаю, workflow designer позволит организовать и соединение прямоугольников "стрелками", и редактирование свойств прямоугольников (чтобы, к примеру, задать connection string у SQL-адаптера), и сериализацию/десериализацию.

Чего НЕ хочется

Изобретать велосипед, разрабатывая подобный редактор "с нуля". Или мучаться с доработкой чисто-графических решений типа Graph# или GraphViz.NET. Вариант с коммерческим редактором, который решил бы мою задачу "out of the box" — возможен, но как крайний вариант.

ВОПРОС:

Имеет ли право на жизнь пришедший мне в голову вариант с re-hosted workflow designer? Можно ли с его помощью, используя все фишки WWF, решить мою задачу?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.