Какие есть альтернативы Workflow Engine? - PullRequest
6 голосов
/ 18 мая 2009

Мы находимся в процессе переписывания большой устаревшей системы, которая широко (неправильно) использует механизм рабочего процесса. В будущем я хотел бы рассмотреть альтернативы движку рабочего процесса для нового приложения. Одна очень интересная возможность - космическая архитектура + движок правил. Какие еще существуют парадигмы?

Я упомяну, что это приложение управляет сложными рабочими процессами публикации документов с множеством различных настроек в зависимости от страны / региона / и т. Д., Но я хотел бы, чтобы ответы были более общими, если это возможно.

Редактировать: Я добавил награду к этому вопросу, чтобы получить больше отзывов. Я хотел бы услышать от кого-то, кто фактически реализовал альтернативу рабочего процесса. Если ничего не получится, я приму ответ BPEL, хотя я совершенно не в восторге от самой технологии.

Ответы [ 8 ]

2 голосов
/ 09 августа 2009

Кажется, что такой очевидный ответ, но никто другой не поднял его, так что вот так: вы рассматривали программное обеспечение для управления документами (или контентом)?

2 голосов
/ 11 августа 2009

Вы можете сделать это строго как механизм конечного автомата, который вы создаете динамически на основе пользователя или культуры или чего-либо еще. Вам нужно будет сохранить конкретные автоматы в качестве состояния для длительных транзакций. Затем, когда пользователь вызывает состояние или выполняет другое «действие» (в основном смоделированное как переход состояния), вы разрешаете переходам выводить данные (машина Мили) или новое состояние (машина Мура).

2 голосов
/ 18 мая 2009

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

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

1 голос
/ 11 августа 2009

С точки зрения KISS, рабочий процесс - это не что иное, как механизм очередей и правил, если просто - у нас есть система документов, для которой у нас есть рабочий процесс, такой как обработка. Мы рассмотрели рабочий процесс websphere, а также WLI из weblogic, но простой с JMS (как MDB, так и с пробужденными потребителями) с постоянным хранилищем очень хорошо работал для нас без каких-либо проблем. Я думаю, что вы выбрали правильный подход - удачи!

1 голос
/ 10 августа 2009

Если вы посмотрите на него с высоты 30 000 футов, у вас есть два варианта:

  • Управляющий процесс опрашивает очереди и хранилища данных, проверяя, что находится, и перемещая объекты на основе набора правил.
  • Система, которая ожидает уведомления о событиях и обрабатывает их на основе набора правил.

В обоих случаях «правила» могут быть определены в рабочих процессах / оркестровках, механизме правил или коде.

Мы решили внедрить системы на основе следующих критериев:

  • Относительно простые правила, реализованные непосредственно в коде
  • Сложная логика в рабочем процессе. Чтобы мы могли показать это клиенту, спросить его, верно ли это, и знать, что все в порядке, поскольку то, на что они смотрят, это то, что выполняется.
  • Orchestration pub / sub для перемещения вещей на основе набора правил

Я работаю с технологией MS, поэтому для описанного вами типа системы я бы внедрил ее в Sharepoint, в которой есть система управления документами и встроенные рабочие процессы для управления документами. Лицензия Sharepoint начального уровня Windows Sharepoint Services включена в операционную систему.

1 голос
/ 20 мая 2009

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

(Например, интерфейс на основе событий -> оркестровка на основе правил -> специфическая (линейная) обработка рабочего процесса.)

0 голосов
/ 08 сентября 2010

Вы можете рассмотреть Apache Camel. Это EIP и большинство языков рабочих процессов, например, если выбор поддерживается, но вы должны написать для него код.

0 голосов
/ 18 мая 2009

NetBpm (.Net порт JBpm)

...