工作流程系统

时间:2009-05-26 02:32:26

标签: automation workflow

我刚开始在一家新的通信公司工作,我们正在寻找一个工作流程/内联网系统来管理工作和流程。

基本上,我们从客户端接收数据文件,然后通过我们的系统进行处理。

  1. 接收数据文件(FTP,电子邮件等)
  2. 处理数据文件(具有映射到文件的数据的通用脚本,或定制的ETL包)。添加地址值
  3. 创建printstream(将处理后的数据文件发送到postscript / PDF合成引擎)或创建电子邮件输出
  4. 将输出发送到生产车间(复制到打印机输入流,邮寄机器)
  5. 处理其他流(例如发送电子邮件/传真,上传到电子档案)
  6. 更新内部系统(例如仓库存货,发票)
  7. 我们还有许多其他内部业务流程(例如,重新处理损坏的输出,处理死/退回的邮件)。

    我试图将所有元素分开。一些将是现成的(例如打印流组成,电子邮件发送/管理,CRM)。有些将在内部构建(例如,重新处理损坏的输出)。

    但是,我正在寻找能够将它们联系在一起的东西,并将业务工作流程放入其中。调度作业,按顺序启动数据处理任务和管理错误。其中很多都会有人为的步骤。此外,还要进行SLA管理和业务活动监控/报告。

    一个关键要求很快就是自动文件接收和处理(即目录观看和与客户端/应用程序的匹配)。

    我热衷于易于管理和维护的东西(例如,为工作流添加新步骤,或条件逻辑等等)。

    我意识到这是一项艰巨的任务,目前我们专注于每个单独的组件,并将手动流程放到位,直到我们得到一个系统来管理它。我们不希望设计一个庞大的定制系统来捆绑它,而是希望购买某种工作流程或集成系统。

    有什么建议吗?我已经看过Biztalk,但不确定它是否过度或不适合仅限内部系统。我接触过的另一个产品是Sagent Automation,但它看起来有点小。

    - 编辑 -

    忘了提,我们现有的技能主要是微软。所以微软技术/ .Net中的任何东西都会更好。但是,如果有一个梦幻般的产品,我们不会对提高技能产生负面影响

2 个答案:

答案 0 :(得分:3)

查看Apache的Active MQ。它实现了Java Message Service 1.1规范,servlet API上的层,并且具有大量应满足您需求的功能。您还可以在Camel上进行分层,这会添加许多enterprise integration patterns的丰富实现。

通常,JMS消息持久存储在事务数据库中,可以将其配置为提供极高的容错能力(例如,RAID,主备数据库机器对,事务日志文件的多个副本)。在数据库之上可以运行多个运行Active MQ的负载均衡的app服务器机器,为您提供可伸缩性和高可用性。如果您使用Active MQ作为公共消息总线,我认为您会发现可以以非常分离的方式编写组件。

在JMS中,当消费者对消息进行排队时,消费过程必须稍后确认消息已成功处理。如果没有及时确认,JMS系统将恢复该消息,以便另一个消费过程可以尝试处理它。这意味着您可以运行应用程序的多个副本以获得可靠性和容错性。

看看本周刚刚出版的O'Reilly的Java Message Service, 2nd Edition

另一种途径是研究BPEL(业务流程执行语言)。

编辑:我对微软的产品不是很熟悉,但MSMQ似乎与JMS相当。

应该能够在Microsoft环境中使用ActiveMQ。他们声称支持“cross language clients”,如“C#和.NET”。即使这应该是有问题的,因为ActiveMQ有一个基于Java servlet的API用于排队和排队消息,外界只需要能够向ActiveMQ服务器发出HTTP请求。这应该限制你的团队必须要做的学习量。祝你好运,这听起来像一个很棒的项目!

答案 1 :(得分:0)

SharePoint有一个非常有效的工作流引擎。您可以使用SharePoint设计器或Visual Studio 2008构建工作流。它使用Windows Workflow,类似于BizTalk(如果不是相同的引擎),但没有BizTalk的其他服务,可能不是您的应用程序所必需的。