Automation 工作流系统

Automation 工作流系统,automation,workflow,Automation,Workflow,我刚开始在一家新的通信公司工作,我们正在寻找一个工作流/内部网系统来管理作业和流程 基本上,我们从客户机接收数据文件,然后通过系统进行处理 接收数据文件(FTP、电子邮件等) 流程数据文件(具有到文件的数据映射的通用脚本或定制ETL包)。添加地址值 创建打印流(将处理后的数据文件发送到postscript/PDF合成引擎),或创建电子邮件输出 将输出发送到生产车间(复制到打印机输入流、邮寄机) 处理其他流(例如发送电子邮件/传真、上载到电子存档) 更新内部系统(例如仓库库存、发票) 我们还有许多

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

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

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

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

    但是,我正在寻找一些东西来将所有这些联系在一起,并将业务工作流过程纳入其中。例如,安排作业、按顺序启动数据处理任务和管理错误。这其中很多都有人的步骤。此外,还要进行SLA管理和业务活动监控/报告

    很快,一个关键需求就是自动化文件接收和处理(即目录监视和与客户端/应用程序匹配)

    我喜欢易于管理和维护的东西(例如,在工作流中添加新步骤,或条件逻辑,或其他)

    我意识到这是一项艰巨的工作,目前我们正专注于每个单独的组件,并将手动流程落实到位,直到我们有一个系统来管理它。我们不想设计一个庞大的定制系统来将其捆绑在一起,而是更愿意考虑购买某种工作流或集成系统

    有什么建议吗?我已经看过Biztalk,但不确定它是否过了头,还是不适合只用于内部系统。我接触过的另一个产品是Sagent Automation,但它看起来有点脆弱

    --编辑--

    忘了提到,我们现有的技能主要是微软。因此,任何基于Microsoft technologies/.Net的软件都会更可取。但是如果有一款很棒的产品,我们并不反对提高技能

    看看Apache的。它实现了JavaMessageService1.1规范,在ServletAPI上分层,并具有大量的特性来满足您的需求。您还可以分层,这增加了许多功能的丰富实现

    通常,JMS消息持久保存在事务性数据库中,可以将其配置为提供极高的容错性(例如,RAID、主备份数据库计算机对、事务日志文件的多个副本)。在数据库之上,可以运行多台负载平衡的应用服务器机器,运行活动MQ,从而为您提供可扩展性和高可用性。我认为,如果使用activemq作为公共消息总线,您将发现可以以非常解耦的方式编写组件

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

    看看本周刚出版的O'Reilly's

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

    编辑:我对微软的产品不太熟悉,但似乎相当于JMS


    您应该能够在Microsoft环境中使用ActiveMQ。他们声称支持“C#和.NET”之类的。即使这会有问题,因为ActiveMQ有一个基于JavaServlet的API用于排队和解排队消息,外部世界只需要能够向ActiveMQ服务器发出HTTP请求。这将限制您的团队必须进行的学习。祝你好运,这听起来是个很棒的项目

    SharePoint有一个运行良好的工作流引擎。您可以使用SharePoint designer或Visual Studio 2008构建工作流。它使用Windows工作流,它与BizTalk(如果不是同一个引擎)类似,但没有BizTalk的其他服务,这些服务对于您的应用程序可能不是必需的