图形数据流组成框架

iCo*_*ode 11 java workflow dsl modeling dataflow

我有兴趣在我的应用程序中嵌入类似工具的MathWorks Simulink.在这个嵌入式工具中,单位用块的输入和输出端口以及每个块的参数表示,使用我想要的工具所需的块定义文件.我希望框架是通用的,并从某处读取块定义,然后允许用户根据它们的定义组合给定块的数据流(最好带有图形编辑器来实现).然后,我希望该工具导出用户组成的块数据流,我可以用Java(或其他语言)实际读取它,并像构建给定数据流的可执行版本一样执行任何操作.

我知道在提前级别,导出的块组合可以足够智能,可以执行,但我可以导出块组合/拓扑以及相互连接的输入和输出.换句话说,我不是在寻找数据流编程语言.我正在寻找允许数据流的图形组合的工具集,然后导出组合,如json或我可以在编程语言中加载的东西,并用它做任何事情.

上面的框架/工具是Simulink对来自不同库的块所做的事情,但是我需要在我自己的工具中嵌入这样的东西,并且想知道哪些开源项目接近我想要做的事情.我想我想要的是数据流组合框架.请纠正我对此的看法.

Ira*_*ter 5

数据流语言是(彩色)Petri网的特例。甲着色Petri网由地方的曲线图,承载值中的每个保持有色标记(颜色为“数据类型”有趣的名字,一个值仅仅是一个彩色/数据类型实例)。来自多个位置的令牌通过转换进行组合,以在以下位置生成令牌;“过渡”可以组合“颜色”(例如,计算值)。因此,可能会有一个用于浮点值的标记“颜色”,以及由加,减,乘,除组成的转换;这样您就可以轻松地对算术数据流(例如Simulink)进行建模。

更重要的是,CPN具有惊人的通用性。它们被分层CPN填充,这些CPN赋予了数据流子例程的效果,并允许进行各种扩展(例如定时约束等)。

有色Petri网工具网站提供的工具建立/编辑/显示,甚至评估任意着色Petri网的完整套件。(您甚至可能不需要编写Java程序来评估它们!)。它甚至还提供了此类图的静态分析,例如“终止”等,而Matlab或National Instruments风格的数据流语言通常不会提供这些分析。

如果有基于Java的CPN工具版本,那也不会令我感到惊讶。该小组已经建立了十多年的此类工具。如果有一种方法可以相对轻松地将颜色和过渡限制到特定的集合(例如,您定义的“数据流”语言),也不会感到惊讶。


man*_*rid 0

我不确定以下内容是否完全符合您的期望,但您可以查看Eclipse eTrice 项目- 它有一个图形编辑器和用自己的语言表达的导出模型。但是我不知道这个项目在实践中有多成熟以及目前可以用 Java 中的模型做什么。

您还可以在 Eclipse 上查看其他建模项目