阅读笔记(十三)

概念

允许消息的读写同时进行,广泛地交互消息。

黑板模式允许多个消息读写着同时存在,应用中的多种不同数据处理逻辑相互影响和协同来完成数据分析处理。就好像多位不同的专家在同一黑板上交流思想,每个专家都可以获得别的专家写在黑板上的信息,同时也可以用自己的分析去更新黑板上的信息,从而影响其它专家。

实现

数据库作为黑板

    利用数据库充当黑板,生产者更新数据信息,不同的消费者共享数据库中信息,这是最常见的实现方式。该方式在技术上容易实现,开发量较少,熟悉度较高。缺点是在大量消息和高频率访问的情况下,性能会受到一定影响。

    在该模式下,消息的读取是通过消费者主动“拉取”,因此该模式也叫做“拉模式”。

消息队列作为黑板

    以消息队列作为黑板,通过订阅-发布模型即可实现黑板模式。这也是黑板模式被淡忘的一个重要原因:消息队列(MessageQueue)已经非常普及了,它既可以做到消息的同步处理,也可以实现异步处理,相信大家已经在开发中广泛使用了,已经成为跨系统交互的一个事实标准了。

 

应用

黑板模式解决没有确定可行的解决方案,将原始数据转换为高级数据结构(图表或英语词组)。存在这些问题的领域包括视觉识别,图像识别,语音识别和监视等。这种问题具体如下特点:可分解成多个子问题,但每个子问题都属于不同的专业领域。

对于这种问题,影响其解决方案的作用力如下:

  1. 不可能在合理的时间内遍历整个解空间;
  2. 鉴于领域不成熟,可能需要对同一个子任务尝试不同的算法;
  3. 子问题的算法各不相同;
  4. 输入,中间结果和最终结果的表示方式各不相同,而不同算法是根据不同范式实现的;
  5. 一个算法通常使用另一个算法的结果;
  6. 涉及不可靠的数据和近似解;
  7. 算法的执行顺序不确定时还可能要求支持并行性。

可解决的问题:可分解成多个子问题,但每个子问题都属于不同的专业领域。

解决方案:黑板模式正是来解决这种问题的,黑板模式就好像多位不同的专家在同一黑板上交流思想,每个专家都可以获得别的专家写在黑板上的信息,同时也可以用自己的分析去更新黑板上的信息,从而影响其它专家,正好解决了可分解成多个子问题,但每个子问题都属于不同的专业领域的问题。

优点

  • 便于实现信息的查询,筛选和统计,这方面关系数据库提供了SQL 92的强大支持。
  •  可以有效应用于实时性要求较高的系统,这种实现工作在“推模式”下。

缺点

难于实现信息的统计分析,不像实现方式一那样可以通过SQL支持,这些工作必须开发者自己完成。

posted on 2019-05-21 10:48  渔夫的梦  阅读(93)  评论(0)    收藏  举报