Открытые альтернативы Windows Workflow

Предупредительное предупреждение. Есть и другие вопросы, похожие на это, но не совсем отвечающие на вопрос (они включают в себя: Альтернативы Windows Workflow Foundation?, Может ли кто-нибудь рекомендовать альтернативу Open Source с открытым исходным кодом для Windows Workflow?)

Мы разрабатываем систему, которая является конечным автоматом на основе событий, в настоящее время мы изучаем рабочий процесс Windows, наша система должна быть низкой латентностью в своем ответе на события из множества источников (xmpp, http, sms, call call, электронная почта и т.д.), входящие в систему, масштабируемые и устойчивые и, самое главное, настраиваемые. По целому ряду причин (и должной осмотрительности) я ищу открытые механизмы документооборота, которые поддерживают функции, подобные Windows Workflow Foundation (и, если возможно, больше), в основном (но это не имеет большого значения, если есть двигатели, t поддерживает некоторые функции):

  • Сохранение длительных задач и возобновление задач по внешним событиям.
  • Высокая производительность, низкая латентность
  • Возможность разработки пользовательских действий
  • Возможность динамического задания рабочих процессов
  • Отслеживание и отслеживание

Я не привязан к платформе или языку, и мне бы очень понравилась помощь и советы от вас, чтобы я мог начать более внимательно изучать двигатели и какие-либо переживания, которые у вас были с двигателями.

Павел.

Ответы

Ответ 1

"сторона Java":

Apache ODE (Orchestration Director Engine) выполняет бизнес-процессы, написанные по стандарту WS-BPEL. Он ведет переговоры с веб-службами, отправляет и принимает сообщения, обрабатывает манипуляции с данными и устраняет ошибки, как описано в определении процесса. Он поддерживает как длинные, так и короткие жизненные процессы для организации всех сервисов, которые являются частью вашего приложения.

http://ode.apache.org/

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

http://www.opensymphony.com/osworkflow/

Shark - расширяемая среда движка рабочего процесса, включающая стандартную реализацию, полностью основанную на спецификациях WfMC с использованием XPDL (без каких-либо проприетарных расширений!) в качестве собственного формата определения процесса рабочего процесса и API WfMC "ToolAgents" для обеспечения системной активности системы

http://www.enhydra.org/workflow/shark/index.html

Сторона Python: http://bika.sourceforge.net/ http://www.vivtek.com/wftk/ Я вам это помогу: -)

Ответ 2

Я приглашаю вас изучить Stateless далее, как это было предложено в ответе на мой вопрос SO can-anyone-recommend-a-net-open-source-alternative-to-windows-workflow. для достижения цели долгого конечного автомата очень просто, поскольку вы можете сохранить текущее состояние своего состояния в базе данных и повторно синхронизировать конечный автомат, когда это необходимо. Рассмотрим следующий код с сайта без гражданства:

Stateless был разработан с инкапсуляция в домене ORM-ed модель в виду. Некоторые места ORM требования о том, где отображаемые данные могут быть сохранены. С этой целью Конструктор StateMachine может принимать аргументы функции, которые будут использоваться для чтения и записи значений состояния:

var stateMachine = new StateMachine<State, Trigger>(
    () => myState.Value,
    s => myState.Value = s);

С очень небольшим усилием вы можете сохранить свое состояние, а затем легко восстановить это состояние.


В отношении динамического обновления рабочего процесса, если вы настраиваете конечный автомат, например

var stateMachine = new StateMachine<string, int>();

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

Ответ 3

Вы можете подумать о том, чтобы реализовать поток как фактический конечный автомат. Такие инструменты, как State Machine Compiler и Ragel могут помочь с это. Государственные машины, во многих случаях, являются именно тем, что вам нужно для реализации безумно сложного поведения, которое можно тестировать, и прочного. Я не утверждаю, что являюсь экспертом по работе с Windows, но из того, что я видел, я сомневаюсь в его превосходстве над кодированием собственной машины состояний вручную или с помощью инструмента.

Ответ 4

Возможно, вы захотите проверить Простой автомат.

Если вам кажется, что вы хотите иметь больше контроля над вещами и хотите сворачивать свои собственные, может оказаться полезным проверить поддержку Saga, которая реализует проекты, такие как NServiceBus и MassTransit. Sagas выглядят очень похожими на рабочие процессы WF, но являются объектами POCO, и я считаю, что оба проекта используют NHibernate для сохранения Saga.

Ответ 5

Попробуйте Drools для JAVA, я лично никогда не пробовал, но знаю, что несколько коммерческих приложений основаны на слюни.

http://www.jboss.org/drools/

Вы также можете перейти на .NET 4.0, в новой рабочей области произошли значительные улучшения в Workflow. Я знаю, что если бы я писал новое приложение рабочего процесса, я бы прыгнул до 4.0.

Удача

Ответ 6

Я порекомендую вам занять несколько часов, чтобы посмотреть на книгу ESB с открытым исходным кодом в Действие. "Оркестрация" и "Хореография" - ключевые ключевые слова, на которые следует обратить внимание при работе с "автобусами для обслуживания предприятий". Системы для .NET довольно дороги (BizTalk находится в ценовом диапазоне приличного автомобиля, цена Tibco находится в ценовом диапазоне приличного дома).

Другие ссылки:

Открыть проект ESB

Сравнение OpenESB и ServiceMix (оба из которых являются предметом "In Action" выше.

Ответ 8

Рассмотрим Workflow Engine, легкий компонент "все-в-одном", который позволяет добавлять пользовательские исполняемые рабочие процессы любой сложности в любой .NET. или программное обеспечение Java, будь то ваше собственное создание или стороннее решение с минимальными изменениями в существующем коде. Он поддерживает пользовательские действия и команды, имеет таймеры и поддерживает параллельные рабочие процессы. И там бесплатная версия.

Ответ 9

Вы можете взглянуть на Imixs-Workflow, который основан на событии на конечной машине на основе bpmn 2.0. В нем особое внимание уделяется ориентированным на человека долговременным задачам.