批处理风格的每一步处理都是独立的.并且每一步是顺序执行的.只有当前一步处理完后.后一步处理才能开始.数据传送在步与步之间作为一个整体.(组件为一系列固定顺序的计算单元,组件间只通过数据传递交互。每个处理步骤是一个独立的程序,每一步必须在前一步结束后才能开始,数据必须是完整的,以整体的方式传递)
批处理的典型应用:
l 经典数据处理;
l 程序开发;
l Windows下的BAT程序就是这种应用的典型实例。
批处理风格与管道过滤器风格比较:
l 共同点:把任务分成一系列固定顺序的计算单元(组件).组件间只通过数据传递交互。
l 区别:批处理是全部的、高潜伏性的,输入时可随机存取,无合作性、无交互性.而管道过滤器是递增的,数据结果延迟小,输入时处理局部化,有反馈、可交互。
.
每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,包括通过计算和增加信息丰富数据,通过浓缩和删除精炼数据,通过改变记录方式转化数据,递增地转化数据等。在输入被完全消费之前,输出便产生了。这里构件被称为过滤器,连接件就是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入
l 优点:
1) 使得软构件具有良好的隐蔽性和高内聚.低耦合的特点
允许设计者将一个系统的整体输入/输出行为理解为各个独立过滤器行为的简单合成
2) 支持软件重用。只要提供适合在两个过滤器之间传送的数据.任何两个过滤器都可被连接起来;
3) 系统维护和性能增强简单:新的过滤器可以添加到现有系统中,或者利用改进的过滤器替换老的过滤器;
4) 支持并行执行:每个过滤器是作为一个单独的任务完成.因此可与其他任务并行
5) 方便系统分析:例如,吞吐量、死锁等
l 缺点:
1) 通过长的管道时会导致延迟的增加
2) 通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据.但它们是独立的.所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。
3) 不适合处理交互的应用。当需要增量地显示改变时.这个问题尤为严重。
4) 因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作.这样就导致了系统性能下降.并增加了编写过滤器的复杂性。
5) 在维护或响应两个分离但相关的数据流时,利用管道/过滤器方式不易。
典型的管道/过滤器风格有:UNIX下的Shell编程。UNIX既提供一种符号以连接各组成部分(进程),又提供某种进程运行时机制以实现管道。另一个例子:传统的编译器。传统的编译器中,一个阶段(包括词法分析、语法分析、语义分析和代码生成)的输出是另一个阶段的输入。
分享到:
相关推荐
数据流风格 1. 批处理风格 2. 管道/过滤器风格 调用/返回风格 3.主程序/子程序风格 4.面向对象风格 5.层次化风格 风格变种:12.客户机/服务器风格 两层C/S架构 三层C/S架构 风格变种:13.浏览器/服务器风格 独立组件...
各种经典的软件系统架构风格资料整理,这些资料都经过我的整理和总结,对深入了解系统架构风格很有好处.
主要整理了关于软件架构的有关风格。。对软考有一定的帮助
(1)数据流风格:批处理序列;管道/过滤器 (2)调用/返回风格:主程序/子程序;面向对象风格;层次结构 (3)独立构件风格:进程通讯;事件系统 (4)虚拟机风格:解释器;基于规则的系统 (5)仓库风格:...
这篇论文定义了一个框架,致力于通过架构风格来理解软件架构,并且展示如何使用风格来指导基于网络的应用的架构设计。本文使用了一个对基于网络的应用的架构风格的调查,根据不同的风格在分布式超媒体的架构中所导致...
论文:架构风格与基于网络的软件架构设计(PDF)
架构风格与基于网络的软件架构设计.pdf
基于《架构风格与基于网络的软件架构设计》前三章整理所得
WEB框架——REST原理(架构风格与基于网络的软件架构设计)