我一直感兴趣的黑板模式多年来(尤其是回来时,我正在学习AI),但我仍然没有能够找到学术界之外一个很好的实现它,但它似乎是一个非常有用的模式,为当前在软件的发展趋势,我想不出周围的模式建立任何大的框架.
有谁知道这里涉及到这种模式的成功或失败的故事?
注意:其他链接
外部链接1
外部链接2
编辑:现在我想知道该模式是否可以用作混搭生态系统的模式或类似的东西
编辑:在调查了一些之后,我发现了一篇有趣的论文,提出像维基百科这样的东西是黑板,但它依赖于人类作为代理人.这让我意识到StackOverflow几乎就是一个Blackboard系统,我们作为代理人,分享我们关于董事会中未确定问题的专业知识......无论如何,这是一些值得思考的问题.
黑板模式适用于协作应用程序.除此之外,我倾向于认为这不是一个好主意.
黑板倾向于最终成为一个共享状态的大包,创建各种有趣的访问模式.现代语言和技术都试图尽可能地封装和控制状态管理,黑板恰恰相反.
我发现它在算法中使用的时间通常是一个告诉我没有对要解决的问题进行适当的前期理解的迹象.所以"为了安全起见",你为太多的演员提供了太多的状态.
我已从两个应用程序中删除了此模式,并将其替换为代表实际功能和数据要求的良好,可靠的接口,并且两次都成功;)
我的观点是,当你有一组受约束的数据时,黑板模式可以很好地工作,几个参与者可以并行处理,并且数据集应该被细化和重新细化.它允许演员完全独立编写,界面非常简单,并且都是异步运行的.
作为一个很好的候选人将是我们的系统.
我们的视觉系统有一些基本数据(图像),我们有许多算法可以从中产生新的数据.我们经常看到一种算法可以很好地利用其他算法产生的信息,但是我们分享这些信息的方式很差,因为通过oo系统中的消息的正常参数会很快使列表变得很大.此外,我们还有一个问题,即我们在流程后期发现的一些信息可以提早做出早期猜测,但这样做需要更多的参数流水线操作.
不幸的是,这样的重构需要比我们现有的资源更多的资源:(
看看元组空间及其实现.它从未产生过很大的影响,但仍然是构建分布式应用程序的有趣方法.
吉尼(现为阿帕奇河)
GigaSpaces的
闪电战项目(链接已经死亡,截至2017-04-06)
TSpaces(原始项目链接已死,报告PDF)