第#期
*
杨晴雯等:管道、过滤器和GHI
软件体系模式在-!..中的应用
*?&;’2?
管道、过滤器和!"#软件体系模式在$%&;&;中的应用!
杨晴雯&;,周*宇!,李*晓!
(&;+新疆大学信息工程
计算机系,新疆乌鲁木齐(%""#’;!,中国科新疆理化技术研究所,新疆乌鲁木齐(%""&;&;)摘*要:讨论了软件体系构架的重要性和意义,及其在项目开发中的典型应用。关键词:软件体系构架;管道;过滤器;-!..中图法分类号:/0%1%***文献标识码:)***文章编号:&;""&;$%’12!""2)"&;’2$"!("#$
)334567859:9;<=>8?@)A6B58?68CA?D7@?E053?,F548?A7:EGHI5:-!..
J)DKL5:M$N?:&;,OPQRJC!,STU579!
(&;!"#$%!&;’(&;)$*%#+,,-.&;&;/&;’01’&;+)2%3&;1,-3#1-#451631##+316,73183216913:#+;3%<,=*/*)*>373183216(%""#’,(.312;!!01;%3%*%#&;’73183216?#-.13-2/@.<;3-;4(.#)3;%+<,(.31#;#A-2B#)<&;’,-3#1-#;,=*/*)*>373183216(%""&;&;,(.312)
!"#$%&;’$:V5>6C>>?E8B?5@39A87:6?7:E>5M:5;567:6?9;>9;8N7A?7A6B58?68CA?,8B?>?A?3A?>?:8785W?7334567859:9;8B?378$7:E8?A:>5:8B?3A9X?68E?W?493@?:8,()*+,%-#:<=>8?@)A6B58?68CA?;053?;F548?A;-!..
**!"世纪’"年代,软件危机”爆发后,“人们开始重视对软件工程的研究。这些研究成果为提高软件生产质量和软件生产效率提供了大量的、具有极高指导意义和参考价值的理论基础。但随着软件
系统规模越来越大、越来越复杂,人们注意到,仅是对软件结构和算法的
设计,已不能达到令人满意的效果,一个好的软件体系构架显得更为重要。在这种背景下,对软件体系构架的研究如雨后春笋般出现了,并在实际应用中得到了认可。在特定环境中重复出现的、具有相同本质的
问题,及其解决
方案我们称为模式。它是通过经验获取的,以某种结构化的格式书写下来,存在于不同的抽象层,避免了遇到相同的问题重头设计,是可重用的产物,可以被组合起来解决更大的问题。存在各种范围和抽象程度的模式,构架也是存在模式的。目前,软件设计的一个核心问题就是能否使用重复的体系构架,即达到体系构架级的软件重用。也就是能否在不同的软件系统中,采用同一种体系构架。基于此目的,许多专家开始研究软件体系构架的模式问题。在0788?A:$QA5?:8?E<9;8N7A?)A6B58?68CA?面向模式的软件体系构架)(中首次提出了八种体系结构模式:(S7=?A>)管道和过滤器053?>7:EF548?A)黑层、(、板Y476Z[97AE)代理者YA9Z?A)模型\视图\控制器G9$(、(、(E?4$H5?N$I9:8A944?A)表示\抽象\控制0A?>?:87859:$)[>8A76$、(859:$I9:8A94)微核G56A9Z?A:74)映像]?;4?6859:)、(、(。
它是由过滤器和管道组成,每个处理步骤都被封装在一个过滤器组件中,多个过滤器相连,可以形成过滤器链,数据流通过相邻过滤器之间的管道进行传输。每个过滤器功能单一,可以单独修改,并且链中的过滤器之间的排列顺序可根据需求,进行配置。这种体系结构模式具有如下特征:(&;)每个过滤器组件是个独立的部件,除了输入流和输出流外,过滤器之间互不影响,因此,过滤器之间是不共享任何状态信息的。(!)每个过滤器对其上游和下游连接的过滤器是无知的,它的实现和使用不对链中的任何过滤器加以限制。如上所述,管道和过滤器模式具有组件独立性强、可重用性高、配置重组组件灵活方便等优点,适合作专门对数据流进行预处理、处理的软件开发模型。’)%($%&;&;中的*+,-.+/01./+,技术工作机制如图&;所示。