基于流程编程

在计算机编程中，基于流程（flow-based）编程，缩写为FBP，是一种编程范型，它将应用定义为黑箱进程的网络，它们经过预先定义的连接，通过消息传递来交换数据，而这里的连接是在“外部”指定给进程的。这些黑箱进程不需要更改内部，就可以无尽的重新连接而形成不同的应用。FBP因而是天然基于构件的。

FBP是一种特殊形式的数据流程编程，它基于了有界缓冲区，带有确定生存时间的信息包，命名端口，和独立的连接的定义。

 历史 
基于流程编程由J. Paul Morrison在1970年代前期发明，最初实现于为加拿大银行开发的软件中。FBP在初起阶段受到同期的一些IBM的强烈影响，特别是，但是它的根基完全一致于康威关于协程的开创性论文。

 概念 
下列框图展示了FBP框图的主要实体（信息包除外）。这种框图可以直接转换成一个连接的列表，接着它们可以在适当的引擎（软件或硬件）上执行：

A、B和C是执行代码构件的处理器。O1、O2和两个IN是端口，它们将连接M和N连结到与它们有关的处理器上。允许处理器B和C执行相同的代码，每个处理器必须有自己的工作存储、控制块等的集合。不管它们共享代码与否，B和C自由的使用相同的端口名字，因为端口名字只在引用它们的构件内有意义（当然是在网络层面上）。

M和N经常被称为“有界缓冲区”，在任何时间点上能持有的信息包（IP）的数目方面，它们有着固定的能力。

“端口”的概念是为允许同一个构件在一个网络上用在多于一个位置上。结合了叫做初始化信息包（IIP）的参数化能力，端口向FBP提供了构件重用功能，使得FBP成为基于构件的架构。FBP从而展示了IBM研究院的Raoul de Campo和所称谓的“可配置的模块化”。

参见

 演员模型
 通信顺序进程
 并发计算
 数据流程
 数据流程图
 数据流程编程
 函数式反应式编程

 低程式碼開發平台
 MapReduce
 Node-RED
 管道编程
 杰克逊结构化编程

 引用 

 外部链接 









Category:并发编程语言
Category:编程范式
Category:視覺化程式設計語言