当前位置: 首页 > >

管道过滤器式的软件体系结构的应用研究

发布时间:

2010 年第 11 期 (总第 135 期)

大 众 科 技

DA ZHONG KE JI

No.11, 2010 (Cumulatively No.135)

管道/过滤器式的软件体系结构的应用研究
肖媛元
(高博软件技术职业学院,江苏 苏州 215163)
【摘 要】软件体系结构设计给出了大规模软件复用,特别是领域复用的重要设计模式。体系结构描述了软件系统的整体 组织结构与风格,对软件的性能和质量有直接的影响。管道/过滤器模式是一种面向数据流的软件体系结构。文章对这种体系结 构做了探讨,并结合一个具体应用实例(ATM 系统)给出了设计原型。 【关键词】软件体系结构;数据流风格;管道/过滤器;ATM 系统 【中图分类号】TP311.5 【文献标识码】A 【文章编号】1008-1151(2010)11-0021-02 软件体系结构风格是“描述某一特定应用领域中系统组 织方式的惯用模式。”它反映了领域中众多系统所共有的结 构和语义特性,并指导如何将各个模块和子系统有效地组织 成一个完整的系统。软件设计者如能遵循良好与惯用的软件 体系结构设计风格,将有助于增加软件的复用度,可以有效 地提高软件开发效率。因此,软件体系结构风格是软件体系 结构研究的主要内容之一。为了促进了对软件设计的复用, 人们对软件体系结构风格的进行了各种研究和实践。体系结 构风格的不变部分使不同的系统可以共享同一个实现代码。 只要系统是使用常用的、规范的方法来组织,就可使别的设 计者很容易地理解系统的体系结构。 Mary Shaw 和 David Garlan 提出了的五种主要风格类 型,它们是: 1.数据流风格——包括批处理序列,管道/过滤器形式 等; 2.调用/返回风格——包括主程序/子程序,面向对象风 格,分层结构等; 3.独立组件风格——包括进程通讯,事件系统等; 4.虚拟机风格——包括解释器,基于规则的系统等; 5.仓库风格——包括中心数据库系统,黑板系统等。 其中,“数据流风格”的软件体系结构是一种最常见, 结构最为简单的软件体系结构。这样的结构体系下,所有的 数据按照流的形式在执行过程中前进,不存在结构的反复和 重构,就像工厂中的汽车流水线一样,数据就像汽车零部件 一样在流水线的各个节点上被加工,最终输出所需要的结果 (一部完整的汽车)。在流动过程中,数据经过序列间的数 据处理组件进行处理,然后将处理结果向后传送,最后进行 输出。 这种风格很容易用管道/过滤器的模式来解释。管道/过 滤器模型的基本部件都有一套输入输出接口。每个部件从输 入接口中读取数据,经过处理,将结果数据置于输出接口中, 这样的部件称为“过滤器”。这种模型的连接者将一个过滤 器的输出传送到另一个过滤器的输入, 这种连接者被称为 “管 道”。 在这种模型中,过滤器必须是独立的实体,每一个过滤 器的状态不受其它过滤器的影响。并且,虽然人们对过滤器 的输入输出有一定的规约,但过滤器并不需要知道向它的上 游过滤器和下游过滤器的内部细节。 图 1 所表示的就是管道/过滤器中的基本单元——过滤器 的基本结构。就整个管道/过滤器模式的体系结构而言,有三 种不同形式的数据流表示了数据的行进过程,这三种情况分 别是单向流水,非顺序流水和回流。其中: 单向流水(如图 2(a)所示)表示了一种正向的流水方 式,也就是最常见的,最直观的数据流方式。在这种方式中, 正向数据管道引导数据的正向流动,图中的三个过滤器所组 成的正向通道又形成一个完整的“管道”,这是一种广义的 管道。数据从这种管道的入口处进入,再经过内部过滤器的 依次处理,最终由管道的出口处流出。

图 l 管道/过滤器中的基本单元:过滤器 非顺序流水(如图 2(b)所示)表示了一种打乱(更改) 了顺序的管道方式,交换了其中两个过滤器的顺序,这样的 结构在实际中是允许的,并且不影响管道/过滤器输出的正确 性。其前提条件是,每个过滤器必须是独立的实体,它不能 与其它的过滤器共享数据,而且一个过滤器不知道它上游和 下游的标识。 同样, 也可以把这样的结构视为广义的 “管道” 。 回流(如图 2(c)所示)表示了一种回流方式,表示某些 结果数据可能经由一些管道回流,重新通过过滤器,例如在 逐步求精的迭代计算中需要这种回流。通常回流发生在上述 广义“管道”内部,而不是像上述两种情况,在上述两种情 况之中,也可以存在这种回流方式,只不过回流的情况是返 回源头,重新参加数据的流动过程,略有不同。 管道/过滤器模式的体系结构最典型的应用是在编译系 统。一个普通的编译系统包括词法分析器,语法分析器,语 义分析与中间代码生成器,优化器,目标代码生成器等一系 列对源程序处理的过程。人们可以将编译系统看作一系列过 滤器的连接体, 按照管道/过滤器的体系结构进行设计。 此外, 这种体系结构在其它一些领域也有广泛的应用。因此它成为 软件工程和软件开发中的一个突出的研究领域。

【收稿日期】2010-08-11 【作者简介】肖媛元(1978-) ,女,东南大学硕士研究生,高博软件技术学院教师,研究方向为电子商务及其应用系统开 发技术。

- 21 -

反冲洗过滤器的特点
http://www.wxynt.com/ 电力驱动,不锈钢刷式清洗,系统承压能力强; 高精度压差控制设计、时间控制、手动控制清洗; 钢刷拆卸、安装、维护简便易操作; 相邻两次清洗,电机正反转交替运转,使不锈钢转刷寿命更长; 设有电机过载保护,可有效保护电机。 控制显示界面人性化设计,操作非常简便; 外表面无外露接线,安全可靠。 控*缑妫菏浴⑿ァ⒖ 滤网类型:金属楔型网 电力驱动,不锈钢刷式清洗排污; 控制方式:压差、时间、手动控制设计; 控制方式:时间、手动控制设计; 特殊过滤单元结构设计,坚固耐用; 独特的清洗设计实现低负载、低水头、均匀排污; 电控箱面板方向可满足用户要求随意调节; http://www.wxynt.com/product.asp?Pone=12

下面举一个 ATM(自动取款机)系统的例子说明管道/过 滤器模式的应用与实现。 不同的 ATM 系统有不同的系统结构(见图 3),同其他的 电子银行系统一样,根据交换中心在系统中的不同位置,可 将 ATM 系统结构分为后方交换型、前方交换型和复合型: 1.后方交换型——成员行拥有自己的 ATM 终端,交换中 心位于各成员行主机之后; 2.前方交换型——成员行共享 ATM 终端,交换中心位于 各成员行主机和 ATM 终端之间; 复合型——既含前方交换型又含后方交换型的系统结 构。

图 4 后方交换型 ATM 系统的体系结构 再次分类,分类后的交易信息将经由管道流入各自对应的发 卡行交易授权和账务处理过滤器中,发卡行交易授权和账务 处理过滤器主要负责审核流入的交易信息的真实性和有效 性,如:是否为仿造卡或过期卡等,审核通过之后,发卡行 交易授权和账务处理过滤器将依据流入的交易信息产生相应 的授权对应代理行账务处理的信息,这些授权信息将经由管 道回流至交易数据分配过滤器,交易数据分配过滤器负责将 这些授权信息按照对应代理行对号入座,再经由管道让这些 授权信息回流至代理行账务处理过滤器中,此时,代理行账 务处理过滤器将按照授权进行代理账务处理,处理结果经由 管道回流至持卡人信息处理过滤器中,由持卡人信息处理过 滤器向持卡人输出现金、卡、单据或查询结果。另外,交易 数据分配过滤器在接收到交易授权信息时,还要将这些授权 信息同时分配到资金清算过滤器中,由资金清算过滤器完成 代理行和发卡行之间的账务清算和各种交易费用的计费处 理,并将清算结果和处理结果经管道回流至交易数据分配过 滤器中,由交易数据分配过滤器分别分配给相应的代理行和 发卡行,完成资金清算。 本文主要对管道/过滤器这种面向数据流的体系结构进 行了探讨,并给出了应用实例。管道/过滤器模式既有优点, 也有缺点, 其优点在于: 1.设计人员将整个系统的输入输出行为理解为单个过滤 器行为的叠加与组合,这样可以将问题分解,化繁为简。 2.任何两个过滤器,只要它们之间传送的数据遵守共同 的规约就可以相连接。 3.整个系统易于维护和升级:旧的过滤器可以被替代, 新的过滤器可以添加到已有的系统上。 4.支持并发执行:每个过滤器作为一个单独的执行任务, 可以与其它过滤器并发执行。过滤器的执行是独立的,不依 赖于其它过滤器的。 其缺点在于: 1.交互式处理能力弱:管道/过滤器模型适于数据流的处 理和变换,不适合为与用户交互频繁的系统建模。 (ATM 系统 并不是一个与用户交互频繁的系统)。 2.数据的打包与解包:有时,系统中的过滤器需要有一 个数据转换器来对输入输出数据进行解包打包。这样会降低 系统性能,增加实现过滤器的复杂性。 总之,从本文中对管道/过滤器模式的描述以及应用举例 可以看出,数据流风格软件体系最大的特点在于简单独立的 结构,这就造就了其简便易用的优势以及不够丰富灵活的弱 点。数据流风格是一种很常用的软件体系结构风格。 【参考文献】 [1] 张友生.软件体系结构[M].北京:清华大学出版社,2005. [2] Mary Shaw,David Garlan.Software Architecture[M]. 美 国:Prentice Hall,2001. [3] 孟祥瑞.网上支付与电子银行[M].上海:华东理工大学出版 社,2009. [4] 张卓其.电子银行[M].北京:高等教育出版社,2008. [5] 帅青红,夏军飞.网上支付与电子银行[M].沈阳:东北财经大 学出版社,2007.

图 2 管道/过滤器的形式 ATM 系统所采用的结构不同,其数据流处理流程也不同。 在复合型的 ATM 系统结构中,数据流的处理是由后方交换型 与前方交换型两种不同数据流处理方式构成的。在后方交换 型的系统中,各成员行拥有自己独立的 ATM 终端,存在行内 交易和跨行交易,不仅需要交换中心来分配交易信息,还需 要通过中央银行实行资金清算,数据流处理较为复杂,而前 方交换型系统中,因各成员行共享 ATM 终端,不存在跨行交 易问题,数据流处理较为简单。

(a)后方交换型系统结构 (b)前方交换型系统结构 (c)复合型系统结构

图3

ATM 系统的体系结构

本文主要分析后方交换型的 ATM 系统, 将这个系统分为 4 个过滤器,分别为持卡人信息处理过滤器、代理行账务处理 过滤器、发卡行交易授权和账务处理过滤器、交易数据分配 过滤器以及资金清算过滤器,每个过滤器都拥有一个数据处 理中心、一个数据输入接口和一个数据输出接口。 基于管道/过滤器模式的整个后方交换型 ATM 系统的体系 结构如图 4 所示: 在图 4 中的后方交换型 ATM 系统的体系结构中,持卡人 数据信息主要包括持卡人的卡号、PIN、交易类型和金额,持 卡人信息处理过滤器主要负责接收持卡人数据信息,对信息 进行确认,如确认其卡号和密码的真实性、交易金额的正确 性等,并形成请求交易信息,经管道流入代理行账务处理过 滤器。该过滤器主要负责对这些请求交易信息辨别和分类, 如:将请求交易信息中的卡号数据分为两大类,一类为本行 卡号、另一类为他行卡号,属于本行卡号的相关持卡人交易 信息将被截留在代理行账务处理过滤器中实行相应的账务处 理,并且账务处理结果经由管道回流至持卡人信息处理过滤 器中,由持卡人信息处理过滤器向持卡人输出现金、卡、单 据或查询结果;属于他行卡号的相关持卡人交易信息将经由 管道流入交易数据分配过滤器中。该过滤器主要负责将非代 理行卡号的交易信息按照各自的归属行(即发卡行)。

- 22 -

管道/过滤器式的软件体系结构的应用研究
作者: 作者单位: 刊名: 英文刊名: 年,卷(期): 被引用次数: 肖媛元 高博软件技术职业学院,江苏苏州,215163 大众科技 DAZHONG KEJI 2010,(11) 0次

参考文献(5条) 1.张友生.软件体系结构[M].北京:清华大学出版社,2005. 2.Mary Shaw,David Garlan.Software Architecture[M].美国:Prentice Hall,2001. 3.孟祥瑞.网上支付与电子银行[M].上海:华东理工大学出版社,2009. 4.张卓其.电子银行[M].北京:高等教育出版社,2008. 5.帅青红,夏军飞.网上支付与电子银行[M].沈阳:东北财经大学出版社,2007.

相似文献(2条) 1.期刊论文 肖媛元 基于数据流风格的ATM系统的软件体系结构研究 -科技信息2010,2(17)
软件体系结构描述了软件系统的整体组织结构与风格,对软件的性能、质量和软件的重用性都有直接的影响.管道/过滤器模式是一种面向数据流风格的软件体系结构,本文以后方 交换型的ATM系统为例说明了基于这种体系结构的软件系统的设计方法,最后还分析了基于管道/过滤器模式软件结构的优缺点,以供软件设计人员借鉴.

2.期刊论文 肖媛元 基于数据流风格的ATM系统的软件体系结构研究 -科技信息2010,02(17)
软件体系结构描述了软件系统的整体组织结构与风格,对软件的性能、质量和软件的重用性都有直接的影响.管道/过滤器模式是一种面向数据流风格的软件体系结构,本文以后方 交换型的ATM系统为例说明了基于这种体系结构的软件系统的设计方法,最后还分析了基于管道/过滤器模式软件结构的优缺点,以供软件设计人员借鉴.

本文链接:http://d.g.wanfangdata.com.cn/Periodical_dgkj201011007.aspx 授权使用:吕先竟(wfxhdx),授权号:fd993cbd-b1d4-41ff-b299-9e740100f46b 下载时间:2011年1月23日




友情链接: