Chinaunix首页 | 论坛 | 博客
  • 博客访问: 13437
  • 博文数量: 10
  • 博客积分: 320
  • 博客等级: 一等列兵
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-07 14:12
文章分类
文章存档

2011年(1)

2009年(9)

我的朋友
最近访客

分类: 项目管理

2009-07-14 00:13:11

通道模式在两种情景下是有用的:一种情景是当数据流中的数据是以串行化的方式在一系列步骤中被处理和转换;另一种是在更大的方面,通道模式对高可靠性和安全-关键性应用提供了架构上的冗余。
4.1摘要
   一个通道可以被看作是一个管道-序列化将数据从输入数据转换为输出数据。通道内的元素以一种工厂自动化的方式处理内部数据。内部元素的每一部分都执行相对简单的数据操作。在同一时刻,数据流中的不同元素在通道的不同部分;同时,通过添加多个同构的通道到系统中可以增加系统吞吐量。在一个高可靠系统中,多通道能够以多种方式来获得容错性。相似的,在一个安全关键性系统中,多通道能够通过错误识别和安全测量来提高系统安全性。

4.2 问题
许多算法处理数据的时候,对每个数据按照顺序应用一组相同的操作转换,例如波形缩放和可移动平均数字滤波器的应用。我们希望有一种架构结构,通过架构单元的复制来提高系统的吞吐量,同时能有效处理多个不同阶段的多个数据。同时,我们也希望有种结构能够通过冗余处理的叠加来增加系统的可靠性和安全性。

4.3 模式结构
下图显示了通道模式的基本架构。数据以序列的方式从Input source 角色流出,途经input filtering 阶段,途经多个transformatinal processing 阶段;再通过 output filtering 阶段;最后流向output sink角色。每个阶段都代表了具有一组服务和内部属性的对象。

datum本身也是一个历经每个转换阶段接受状态变化的对象。它开始以“原生”(raw)状态,而后逐渐的烘烤(roaste),最后数据变化为cooked状态。
基本想法是数据从一个对象到另一个对象,在每个阶段接受相对小的变换。转换对象也许会在处理下个数据之前处理单个数据从开始到结束;但是在一个高性能系统中,应该并发的处理多个不同阶段的不同对象。

4.4 协作角色
  • Abstract Transformation (抽象转换)
    • 在通道模式中,抽象转换提供一组公共接口和操作。
  • Channel (通道)
    • 通道是一种结构上的子系统。它包括模式中的其他元素。使用通道做为一个更大组合对象的优势使得我们可以把它看成一个简单的实体和复制它来获得冗余处理或更高的吞吐量。
  • Concrete Transformation(具体转换)
    • 具体转换类是抽象转换类的实例化子类;
  • Datum(数据)
    • 数据是经受变化的信息;它通常从行为上来说是一个具体有get/set操作的简单对象。
  • Input Filter(输入过滤器)
    • 输入数据类提供从传感器或者输入设备的数据采集和初步数据过滤。
  • Output Filter(输出过滤)
    • 输出数据类提供合适的方式以合适编码将数据发送到output sink.它通常提供最终过滤,数据格式化和输出操作。
4.5 结论
通道模式非常适合于从数据一个阶段到另一个阶段的序列转换。它简化了算法,使得算法可以被分解为一系列的步骤来操作于数据流中的隔离的元素;通道实例的添加能够增加系统的吞吐量。这个结构非常适合并发处理数据流中的多个对象即使他们处于不同的处理状态。

4.6 实现策略
在简单的情况下,数据流的处理一个时刻只针对一个数据。输入过滤器采集和预处理数据;然后传递给转换链;最后由输出过滤器发送给output sink;接着信息的下一部分得到处理。
这种方式对非实时数据处理起来很好。但是通常对数据流以实时的方式处理是必要的;例如一些实时的数据应用(数据分析,图形系统等)。在这些系统中,必须采用更有效率的处理方式,数据的处理必须赶上输入数据的速率。这个速率可能是非常高的,比如一秒几百万的数据。

当必须满足实时限制的时候,必须采用一个更普遍的方式来实现多个转换阶段的并发执行;这种传送可以是同步的或者是异步的(每个阶段在一个不同的线程中执行)。

通过添加多个管道可以获得更高的数据吞吐量,尤其是当通道可以执行在冗余硬件上的时候。为了提高单通道吞吐量的处理,一个通道多路转换器对象必须放置于许多通道对象前面,它的任务是以一种公平的方式提供数据给每个通道的输入过滤器;一个通道的多路分离器必须放置于一系列通道对象的后面来接受来自多通道的数据,以正确的顺序将处理的过后的单数据流传递给output sink;

4.7 相关模式

4.8 样例
下图显示了使用通道模式的ECG监控系统。







阅读(862) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~