Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 使用ESB进行二进制文件处理(WSO2、Mule、Petals、Service Mix)_Design Patterns_Esb_File Processing_Payload - Fatal编程技术网

Design patterns 使用ESB进行二进制文件处理(WSO2、Mule、Petals、Service Mix)

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中很好地工作:但是我在一个特定的场景中苦苦挣扎 基本要求是通过多个阶段处理传入的二进制文件: 使用外部工具对文件进行预处理 根据一些配置数据拆分文件 处理每个较小的文件以计算“分数”。其中一些将由我编写的代码处理,但在某些情况下也会调用外部软件 将所有计算的分数加载到数据库中。这必须在流程结束时完成,而不是以增量方式完成(因为只有在处理文件时才能找到主键) 将初始文件移动到存档

我热衷于在新项目中使用ESB(可能是WSO2、Mule、Petals或服务组合)

我有许多业务流程/工作流可以在ESB中很好地工作:但是我在一个特定的场景中苦苦挣扎

基本要求是通过多个阶段处理传入的二进制文件:

  • 使用外部工具对文件进行预处理
  • 根据一些配置数据拆分文件
  • 处理每个较小的文件以计算“分数”。其中一些将由我编写的代码处理,但在某些情况下也会调用外部软件
  • 将所有计算的分数加载到数据库中。这必须在流程结束时完成,而不是以增量方式完成(因为只有在处理文件时才能找到主键)
  • 将初始文件移动到存档区域
传入的文件将被放到本地目录中。所有工具都支持对目录进行轮询,因此这不是问题

然而,从我所读到的大多数工具都期望消息的有效负载易于读取,以便可以直接在有效负载上执行处理。在我的例子中,我只想使用传入文件来生成我真正的有效负载数据:我将写入数据库的值

这是ESB可以支持的模式吗?有没有关于使用上述工具进行此类数据处理的文章?我应该看看其他技术/模式吗

希望这有意义

非常感谢,


Ken

WSO2提供了监听文件系统中文件的功能。但是,根据您的查询,您似乎需要使用专有格式处理二进制文件。如果是这样,您可以使用WSO2 ESB vfs传输[1],并且必须实现自定义消息格式化程序和构建器(如[2]所述的简单java代码)

[1]
[2]

这应该可以通过ESB实现。特别是使用UltraESB,您可以通过其内置的文件传输实现这一点,默认情况下,它支持在处理后将文件移动到归档区域

UltraESB的拆分和聚合功能可用于将文件拆分为多个部分并分别进行处理。可以使用Java或任何其他脚本语言生成“score”,这些语言利用UltraESB API与消息(在本例中是文件的一部分)及其环境进行交互

数据库交互可以通过UltraESB及其数据库连接机制轻松完成。此外,您还可以使用UltraESB以事务方式进行这些更新

如果文件为标准CSV或EDI格式,则可以使用CSV或EDI支持轻松处理文件。所有这些都是通过使用Java或任何脚本语言进行极其简单的配置实现的

[1] -

[2] -