Design patterns 使用ESB进行二进制文件处理(WSO2、Mule、Petals、Service Mix)
我热衷于在新项目中使用ESB(可能是WSO2、Mule、Petals或服务组合) 我有许多业务流程/工作流可以在ESB中很好地工作:但是我在一个特定的场景中苦苦挣扎 基本要求是通过多个阶段处理传入的二进制文件:Design patterns 使用ESB进行二进制文件处理(WSO2、Mule、Petals、Service Mix),design-patterns,esb,file-processing,payload,Design Patterns,Esb,File Processing,Payload,我热衷于在新项目中使用ESB(可能是WSO2、Mule、Petals或服务组合) 我有许多业务流程/工作流可以在ESB中很好地工作:但是我在一个特定的场景中苦苦挣扎 基本要求是通过多个阶段处理传入的二进制文件: 使用外部工具对文件进行预处理 根据一些配置数据拆分文件 处理每个较小的文件以计算“分数”。其中一些将由我编写的代码处理,但在某些情况下也会调用外部软件 将所有计算的分数加载到数据库中。这必须在流程结束时完成,而不是以增量方式完成(因为只有在处理文件时才能找到主键) 将初始文件移动到存档
- 使用外部工具对文件进行预处理李>
- 根据一些配置数据拆分文件李>
- 处理每个较小的文件以计算“分数”。其中一些将由我编写的代码处理,但在某些情况下也会调用外部软件李>
- 将所有计算的分数加载到数据库中。这必须在流程结束时完成,而不是以增量方式完成(因为只有在处理文件时才能找到主键)李>
- 将初始文件移动到存档区域
KenWSO2提供了监听文件系统中文件的功能。但是,根据您的查询,您似乎需要使用专有格式处理二进制文件。如果是这样,您可以使用WSO2 ESB vfs传输[1],并且必须实现自定义消息格式化程序和构建器(如[2]所述的简单java代码) [1]
[2] 这应该可以通过ESB实现。特别是使用UltraESB,您可以通过其内置的文件传输实现这一点,默认情况下,它支持在处理后将文件移动到归档区域 UltraESB的拆分和聚合功能可用于将文件拆分为多个部分并分别进行处理。可以使用Java或任何其他脚本语言生成“score”,这些语言利用UltraESB API与消息(在本例中是文件的一部分)及其环境进行交互 数据库交互可以通过UltraESB及其数据库连接机制轻松完成。此外,您还可以使用UltraESB以事务方式进行这些更新 如果文件为标准CSV或EDI格式,则可以使用CSV或EDI支持轻松处理文件。所有这些都是通过使用Java或任何脚本语言进行极其简单的配置实现的 [1] - [2] -