Есть только одно реальное преимущество, но оно огромно:
разделение проблем .
Таким образом, вместо логики управления процессом, внедряемой в нашу систему, становится и внешняя конфигурация. Карта, в основном. Вы можете изменить его (намного больше) независимо, у вас может быть несколько процессов, несколько версий процессов, несколько версий нескольких процессов, запущенных одновременно, и это все из коробки в любом приличном решении.
Исторически концепция SoC неоднократно побеждала - начиная с принципа Unix «делай одно, но делай это хорошо» и применяя снова и снова - например, с выделенными серверными компонентами, такими как ESB, различными системами персистентности, кэшированием, балансировкой нагрузки , мониторинг, как отделение CSS от HTML и т. д.
Ваш бизнес-процесс и его правила потока часто ортогональны вашим данным, пользовательскому интерфейсу или пользовательской иерархии. Таким образом, имеет смысл разработать и изменить его отдельно от других аспектов системы. Это была предпосылка, на которой BPM появился в начале 1990-х годов.
С тех пор было создано множество инструментов и языков для поддержки этой концепции, наиболее известным из которых является BPMN - графический язык для создания «потоковых диаграмм», которые напрямую отображаются на процессы. В то время как люди жалуются на то, что он большой и громоздкий (имеет более 100 символов в словаре), и отстаивает современные подходы, такие как S-BPM (имеет только 5 базовых символов), современная отраслевая практика заключается в том, чтобы придерживаться BPMN или его производных, подмножеств или родственных элементов.
Вы не выглядите довольными с BPMN:
Программисты здесь, кажется, выполняют значительный объем работы в слое строк и блоков, который для меня выглядит просто дурацким, действительно базовым языком визуального программирования.
Но это не так уж и плохо) За этим стоит теория. И версия 2.0 получила хорошее представление о недостатках 1.0.
Если вы собираетесь зайти так далеко, почему бы просто не использовать какой-нибудь язык сценариев?
Императивная парадигма и языки сценариев не всегда являются лучшим ответом. Как вы, вероятно, видели в декларативных языках (таких как HTML, CSS, SQL, Drools или внутренние в Nginx, Graddle и Maven, Puppet и т. Д.), Результирующий код может быть намного меньше и чище, чем версия, написанная на « приличном языке», как Java или C ++ ".
Что касается вашего другого пункта:
насколько я могу судить, языки визуального программирования на данный момент дополнены условными обозначениями и циклами.
Вы смотрели на события и триггеры ? BPMN - это язык, и вы должны изучить его перед использованием или, по крайней мере, ознакомиться с ним.
Под капотом BPMN находится XML, поэтому вы можете редактировать его вручную или генерировать. И вы можете контролировать их версию, потому что XML основан на тексте. Однако, просто наличие XML, который можно преобразовать в потоковые диаграммы, не похоже на то, что его goona поможет вам, и это правильно - написание собственного анализатора или редактора для него - сложная и дорогостоящая задача с сомнительными преимуществами.
К счастью, на рынке уже есть инструменты, которые делают это точно.
Activiti является бесплатным и довольно популярным среди разработчиков и владельцев бизнеса из-за своей начальной цены ( ноль ), доступности информации и скромности. Последний пункт действительно уникален, так как Activi фокусируется только на управлении вашими бизнес-процессами, не пытаясь связать вас с комплексными решениями. Кроме того, он открыт - так что вам нужно только знать Java и REST, чтобы запустить его. Недостатком является то, что клиентская сторона, логика интеграции и приложений / бизнеса и вся архитектура оставлены на усмотрение разработчика, поэтому, если ваша команда разработчиков слаба - подготовьтесь к неудаче. Общая стоимость владения может быть удивительно высокой для бесплатного инструмента;)
С другой стороны спектра находится Pega (Pega PRPC), правящий король систем BPM (по данным Gartner и Forester), который выглядит удивительно хорошим для своего возраста. Этот чудовище с умелой кухней даже способен работать с CRM, OCR и (если я не ошибаюсь) возможностями распознавания речи, прогнозирующей аналитикой, управлением бизнес-правилами и редактором интерфейса пользователя WYSIWYG. Это идет с серьезным ценником, все же. Мало того, что это стоит целое состояние, но вся разработка выполняется в веб-приложении, что означает, что вы должны использовать браузер, который является IE8 (плюс некоторые плагины, плюс уродливые хаки, как использование Excel для редактирования таблиц данных). Кроме того, с помощью веб-браузера также выполняется редактирование Java, Javascript или HTML / CSS - попрощайтесь с юнит-тестами, подсветкой кода IDE, рефакторингом и всеми вашими игрушками, которые вы любили.
Хорошая сторона этого? Вы можете реализовать сложную систему в течение недели [ PDF , см. стр. 22]. И да, результат не гарантирован.
В последнее время IBM (в соответствии с темпами корпоративного времени) купила Lombardi и теперь предлагает очень конкурентоспособное решение (но тогда вам придется покупать все , что вам нужно, вы знаете). Appian - молодой поставщик, у которого есть интересные идеи и положительные отзывы, но способ их написания (два дополнительных языка DSL в дополнение к визуальному) мне просто не нравится.
Есть и другие игроки, и их решения. Большинство из них просто ужасны. Мол, ваши глаза, мозг и сердце буквально кровоточат, когда вы просто смотрите на них. Так что доверяйте своим внутренностям и не заставляйте своих разработчиков и пользователей ненавидеть вас.
Заключительная записка:
BPM-система одинакова для процессов, как Photoshop для изображений. Не бойтесь, что это визуально. Не заставляйте его выполнять работу, которая ему не подходит (помните веб-сайты, созданные полностью в Photoshop, которые практически невозможно было отредактировать?). Сохраняйте это простым и не делайте ошибок;)