Открытые альтернативы 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. Он ведет переговоры с веб-службами, отправляет и принимает сообщения, обрабатывает манипуляции с данными и устраняет ошибки, как описано в определении процесса. Он поддерживает как длинные, так и короткие жизненные процессы для организации всех сервисов, которые являются частью вашего приложения.
OSWorkflow можно считать реализацией рабочего процесса "низкого уровня". Ситуации типа "петли" и "условия", которые могут быть представлены графическим значком в других системах документооборота, должны быть "закодированы" в OSWorkflow.
Shark - расширяемая среда движка рабочего процесса, включающая стандартную реализацию, полностью основанную на спецификациях WfMC с использованием XPDL (без каких-либо проприетарных расширений!) в качестве собственного формата определения процесса рабочего процесса и API WfMC "ToolAgents" для обеспечения системной активности системы
Сторона 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" выше.
Ответ 7
JBoss JBPM
Ответ 8
Рассмотрим Workflow Engine, легкий компонент "все-в-одном", который позволяет добавлять пользовательские исполняемые рабочие процессы любой сложности в любой .NET. или программное обеспечение Java, будь то ваше собственное создание или стороннее решение с минимальными изменениями в существующем коде. Он поддерживает пользовательские действия и команды, имеет таймеры и поддерживает параллельные рабочие процессы. И там бесплатная версия.
Ответ 9
Вы можете взглянуть на Imixs-Workflow, который основан на событии на конечной машине на основе bpmn 2.0. В нем особое внимание уделяется ориентированным на человека долговременным задачам.