没有合适的资源?快使用搜索试试~ 我知道了~
本文介绍了软件体系架构产生的背景和架构模式的基本理论。重点介绍管道与过滤器体系架构模式的结构,实现,优缺点等,然后以J2EE的ServletFilter为例进行剖析它是怎样应用该架构模式的,最后简单阐述了在其它J2ee应用中(Jboss和Axis)的实践。 软件体系架构 1、软件体系架构产生背景 在经历60年代的软件危机之后,使人们开始重视软件工程的研究。来自不同应用领域的软件专家总结了大量的有价值的知识。当初,人们把软件设计的重点放在数据结构和算法的选择上,如Knuth提出了数据结构+算法=程序。但是随着软件系统规模越来越大、越来越复杂,使软件系统的架构越来越重要。软件危机的程度日益加
资源推荐
资源详情
资源评论
软件体系架构模式软件体系架构模式
本文介绍了软件体系架构产生的背景和架构模式的基本理论。重点介绍管道与过滤器体系架构模式的结构,实现,优缺点
等,然后以J2EE的Servlet Filter为例进行剖析它是怎样应用该架构模式的,最后简单阐述了在其它J2ee应用中(Jboss和Axis)
的实践。
软件体系架构软件体系架构
1、软件体系架构产生背景
在经历60年代的软件危机之后,使人们开始重视软件工程的研究。来自不同应用领域的软件专家总结了大量的有价值的
知识。 当初,人们把软件设计的重点放在数据结构和算法的选择上,如Knuth提出了数据结构+算法=程序。 但是随着软件系
统规模越来越大、越来越复杂,使软件系统的架构越来越重要。软件危机的程度日益加剧,现有的软件工程方法对此显得力不
从心。对于大规模的复杂软件系统来说,软件体系架构比起对程序的算法和数据结构的选择已经变得明显重要得多。在此种背
景下,人们认识到软件体系架构的重要性,并认为对软件体系架构系统、深入的研究将会成为提高软件生产效率和解决软件危
机的最有希望的途径。 这时对软件体系架构的研究如雨后春笋般,出现了百家争鸣的现象,如Rational公司提出了"以架构为
中心"的统一软件开发过程(RUP)。
2、软件体系架构模式
软件设计的一个核心问题是能否使用重复的体系架构,即能否达到体系架构级的软件重用。也就是说,能否在不同的软件
系统中,使用同一体系架构。基于这个目的,许多学者们开始研究和实践软件体系架构的模式问题。在<Pattern-Oriented
Software Architecture (面向模式的软件体系架构) >中首次提出了8种体系结构模式: 层(Layers)、管道和过滤器(Pipes
and Filters) 、黑板(Black board )、代理者(Broker)、模型-视图-控制器(Model-View-Controller)、表示-抽象-控制
(Presentation-Abstraction-Control)、微核(Microkernel)、映像(Reflection)。
J2EE体系架构
目前,J2EE技术已经成为企业级应用的首选平台,基于J2EE技术构建的软件系统越来越多。J2EE代表着先进的软件体
系架构思想,许多软件体系架构模式在J2ee中均被广泛应用,从本文起陆续介绍各架构模式在J2EE中的应用。
管道与过滤器
1、概述
管道和过滤器(Pipes and Filters)体系架构模式是为处理数据流的系统提供的一种模式。它是由过滤器和管道组成的.每
个处理步骤都被封装在一个过滤器组件中,数据通过相邻过滤器之间的管道进行传输。每个过滤器可以单独修改,功能单一,
并且它们之间的顺序可以进行配置。下图是管道/过滤器模式的示意图。一个典型的管道/过滤器体系结构的例子是以Unix shell
编写的程序。Unix既提供一种符号,以连接各组成部分(Unix的进程),又提供某种进程运行时机制以实现管道。另一个著名的
例子是传统的编译器。传统的编译器一直被认为是一种管道系统,在该系统中,一个阶段(包括词法分析、语法分析、语义分
析和代码生成)的输出是另一个阶段的输入。
2、问题
假如你正在开发一个必须处理或转换输入数据流的系统。把这样的系统作为单个组件实现是不容易的,这有几个原因:系
统必须由几个开发人员同时进行协作开发,整个系统任务自然就被分解为几个处理阶段,而且需求很容易变动。因此你就要通
过替换或重新排序处理步骤来为将来的灵活性作规划。通过加入这样的灵活性,采用现有处理组件构建是可以办到的。系统的
设计尤其是处理步骤的内部连接,必须考虑以下因素:
未来系统的升级通过替换某些处理步骤,或重组步骤.
不同的语境中小的处理步骤要比大的组件更易于重用。
不相连的处理步骤不可共享信息。
存在不同的输入数据源,
可以用多种方式输出或存放最终结果。
3、解决方案与结构
管道和过滤器体系架构模式把系统任务分成为几个独立的处理步骤。这些步骤采用通过系统的数据流连接。一个步骤的输
出是下一个步骤的输入。每个处理步骤由一个过滤器组件实现,它处理或者转化数据,并且系统的输入可以是多种数据源。
这种体系架构模式具有许多特性,如下:
过滤器是独立运行的部件.也就是除了输入和输出外,每个过滤器不受任何其他过滤器运行的影响.在设计上,过滤器之间
不共享任何状态信息。
独立性还表现在它对其处理的上游和下游连接的过滤器是"无知"的.它的设计和使用不对与其连接的任何过滤器施加限制,
唯一关心的是其输入数据的,然后进行加工处理,最后产生数据输出。
4、非软件描述 基于各种流体工作的系统,普遍都采用由输送管道连接起来的处理结构.例如我们冬天见到的供暖系统
中,处理器包括加热器,过滤器,调节阀,流量表等,每个处理器都有流体的入口和出口,它们通过各种管道连接在一起形成
了整个系统.这样的结构在城市的自来水系统也可以看到。见下图:
5、优点与缺点
5.1 优点
通过使用过滤器交换增加了灵活性
通过重组增加了灵活性
过滤器组件的重用
流水线的快速原型
并行处理提高效率
5.2 缺点
共享状态信息或者昂贵或者不灵活
数据转换额外开销。
错误处理
Servlet2.3 Filter
1、Servlet Filter概述
凡是开发过J2EE的web application的人员都知道,经常需要处理以下几种情况:
访问特定资源(Web 页、JSP 页、servlet)时的身份认证
应用程序级的访问资源的审核和记录
应用程序范围内对资源的加密访问,它建立在定制的加密方案基础上
对被访问资源的及时转换, 包括从 servlet 和 JSP 的动态输出
在servlet2.3之前这些功能处理是很难实现的,但是Java Servlet 2.3 规范新增了不少激动人心的功能,其中之一便是过滤
器(Filter),其实这就是我们所说的管道和过滤器体系架构在J2EE中的应用实践. 通过使用该模式使得Web Application开发者能
够在请求到达Web资源之前截取请求,在处理请求之后修改应答。其结构图如下:
剩余8页未读,继续阅读
资源评论
weixin_38696090
- 粉丝: 4
- 资源: 874
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- FeiQ.rar 局域网内通信服务软件
- 172.16.100.195
- 光储并网simulink仿真模型,直流微电网 光伏系统采用扰动观察法是实现mppt控制,储能可由单独蓄电池构成,也可由蓄电池和超级电容构成的混合储能系统,并采用lpf进行功率分配 并网采用pq控制
- python编写微信读取smart200plc的数据发送给微信联系人
- 光储并网VSG系统Matlab simulink仿真模型,附参考文献 系统前级直流部分包括光伏阵列、变器、储能系统和双向dcdc变器,后级交流子系统包括逆变器LC滤波器,交流负载 光储并网VSG系
- file_241223_024438_84523.pdf
- 质子交膜燃料电池PEMFC Matlab simulink滑模控制模型,过氧比控制,温度控制,阴,阳极气压控制
- IMG20241223015444.jpg
- 模块化多电平变器(MMC),本模型为三相MMC整流器 控制策略:双闭环控制、桥臂电压均衡控制、模块电压均衡控制、环流抑制控制策略、载波移相调制,可供参考学习使用,默认发2020b版本及以上
- Delphi 12 控件之FlashAV FFMPEG VCL Player For Delphi v7.0 for D10-D11 Full Source.7z
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功