J2EE开发常用软件体系架构模式
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
14
3/11/2021
3、 SSH框架
——SSH简介
Struts(表示层)+Spring(业务层)+Hibernate(持久层)
➢ Struts(表示层框架)
• 主要作用是界面展示,接收请求,分发请求
• 在MVC框架中,Struts属于VC层次,负责界面表现, 负责MVC关系的分发。
(View:沿用JSP,HTTP,Form,Tag;Controller: ActionServlet,struts-config.xml,Action)
华南师范大学软件学院
15
3/11/2021
3、 SSH框架
——SSH简介
Struts(表示层)+Spring(业务层)+Hibernate(持久层)
➢ Spring(业务层框架)
• 一个整合的框架, 能够很好地黏合表 示层与持久层。
华南师范大学软件学院
16
3/11/2021
3、 SSH框架
——SSH简介
• 生成Web页面和 Web页面中的动 态内容
• 客户端传来的 Web请求进行打 包
• Web层通常在Web 服务器中实现。
华南师范大学软件学院
12
➢ 业务层(包含了 企业Web应用的 大部分业务逻辑)
• 执行全部必须的 • 会话管理 • 客户层和Web层
中数据访问的管 理等
3/11/2021
2、J2EE的体系架构
• 全局组织和全局控制结构
• 关于通讯、同步与数据存取的协议,等
华南师范大学软件学院
8
3/11/2021
1、软件体系架构
——什么是软件体系架构
Kruchten
➢ 软件体系结构有四个角度,它们从不同方面对系统进行描述: • 概念角度描述系统的主要构件及它们之间的关系; • 模块角度包含功能分解与层次结构; • 运行角度描述了一个系统的动态结构; • 代码角度描述了各种代码和库函数在开发环境中的组织
主的要处服负理务责器器将用户的Http请求封装后,根据F配or置mB文ea件n 的指定描述,转发给适当
➢ Action(处理器) JSP
Message
• 真正实现应用程序的事务逻辑,Re处so理us用e 户请求(视图)
数据库
Struts框架结构
华南师范大学软件学院
22
3/11/2021
3、 Struts
• 如 Knuth 提出了数据结构 + 算法 = 程序
在此种背景下,人们认识到软件体系架构的重要性
华南师范大学软件学院
7
3/11/2021
1、软件体系架构
——什么是软件体系架构
Dewayne Perry和A1exander Wo1f
➢ 软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处
模式分为:
➢ 体系结构模式 ➢ 设计模式
框架,即framework。建立在体系结构模式的基础上。包括大 量组件,设计模式,与某一领域的具体应用无关。
C/S:以数据库为中心 B/S多层架构将显示、业务运算、数据库等功能完全分离,杜
绝彼此的耦合与影响,从而实现松耦合和良好的可维护性。
华南师范大学软件学院
J2EE
➢ 负责运行企业信息系统 ➢ 现有应用和数据仓库的组合 ➢ 可以包含企业资源规划(ERP)、大型主机事务处
理、数据库系统及其它遗留下来的信息系统等许多 系统
华南师范大学软件学院
13
3/11/2021
2、J2EE的体系架构
——什么是模式?什么是框架?
模式,即pattern。其实就是解决某一类问题的方法论。你把解 决某类问题的方法总结归纳到理论高度,那就是模式。
model对象状态。
选择视图
(控制器) 接受用户请求 调用模型响应用户请求 选择视图显示响应结果
业务处理
方法调用 事件
(视图) 显示模型状态 接受数据更新请求 把用户输入数据传给控制器
用户请求
状态查询 通知数据更新
(模型) 代表应用程序状态 响应状态查询 处理业务流程 通知视图业务状态更新
华南师范大学软件学院
传统的Model 1(JSP+JAVABEAN)
华南师范大学软件学院
18
3/11/2021
3、 Struts
——Model1与Model2设计模式
以servlet为中心的开发模型,Model2(JSP+Servlet+JAVABEAN)
Request
(Controller) Servlet
BROWSER
Struts(表示层)+Spring(业务层)+Hibernate(持久层)
➢ Hibernate(持久层框架) • 只负责与关系数据库的操作
华南师范大学软件学院
17
3/11/2021
3、 Struts
——Model1与Model2设计模式
以JSP为中心的开发模型,称为Model1(JSP+JAVABEAN)
JSP
Message
Resouse
(视图)
(模型) JavaBean EJB
数据库
Struts框架结构
华南师范大学软件学院
23
3/11/2021
3、 Struts
——Struts的程序流程
Struts-config.xml
ActionForm
4.调用ActionForm
2.填充FormBean 3.转发HTTP请求
1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是 FORTRAN程序:
DO 5 I=1,3 误写为:DO 5 I=1.3
1967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一 个小数点,在进入大气层时因打不开降落伞而烧毁
华南师范大学软件学院
5
3/11/2021
1、软件体系架构
华南师范大学软件学院
J2EE分层结构
3/11/2021
2、J2EE的体系架构
J2EE
➢ 用户与系统的接口逻辑 ➢ 功能是显示数据 ➢ 可以是在客户端层内运行的浏览器、基于Java
的程序或者其它web型编程环境
华南师范大学软件学院
11
3/11/2021
2、J2EE的体系架构
J2EE
➢ Web层
2、J2EE的体系架构
J2EE
➢ 为企业应用系统的开发提供了一种多层分布式企业应用模型 ➢ 按应用逻辑按功能不同可以划分为不同类型的组件
• 客户层,运行在客户计算机上的组件。 • Web 层,运行在J2EE服务器上的组件。 • 业务层,同样是运行在J2EE服务器上的组件。 • 企业信息系统层(EIS),是指运行在EIS服务器上的软件系统。
——Struts框架概述
Struts是一个现成的、优秀的、基于MVC的Web应用框架。
Servlet/JSP容器
Struts-config.xml
(控制器)
• 业务逻辑处理 AActcitoionn ActionServlet
• 管理数据的存储和一致性
浏 览 器
Web 服务器
• 调用其他应用 FormBean
21
3/11/2021
3、 Struts
——Struts框架概述
Struts是一个现成的、优秀的、基于MVC的Web应用框架。
Servlet/JSP容器
Struts-config.xml
ActionServlet
(控制器) AActcitoionn
(模型) JavaBean EJB
浏 览
➢
器•
ActioWneSbervlet(中央控制器)
理构件、数据构件和连接构件。
• 处理构件负责对数据进行加工 • 数据构件是被加工的信息 • 连接构件把体系结构的不同部分组组合连接起来
Mary Shaw 和 David Garlan
➢ 软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程
中的算法设计和数据结构设计
——关于整体系统结构设计和描述方面的一些问题,如:
华南师范大学软件学院
19
3/11/2021
3、 Struts
——MVC模式
MVC模式
➢ 模型(Model)是应用程序的主体部分。模型表示业务数据,或者业务逻辑。 ➢ 视图(View)是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。 ➢ 控制器(Controller)工作就是根据用户的输入,控制用户界面数据显示和更新
➢ ActionForm Bean
• 封装、验证表单数A据ctionServlet
AActcitoionn
• 在控制器和视图之间传递表单数据
浏 览 器
Web 服务器
FormBean
JSP
Message
Resouse
(视图)
(模型) JavaBean EJB
数据库
Struts框架结构
华南师范大学软件学院
华南师范大学软件学院
J2EE开发常用软件体系架构模式
struts, hibernate, spring 及其衍生框架
作者:杨劲松
主要内容: 1 单击此处软添件加体文系字内架容构 2 单击此J处2添EE加的文体字系内架容构 3 单击此处添S加S文H框字内架容 4 单击此处添其加他文开字内发容框架
1、软件体系架构
——软件无处不在
华南师范大学软件学院
3
3/11/2021
1、软件体系架构
——软件开发现状
超时超预算
按时按预算完成
15%
60% 25%
被取消
设计
华南师范大学软件学院
集成和系统测试
50 - 80 %
4
3/11/2021
1、软件体系架构
——软件危机的案例
IBM公司的 OS/360,共约100万条指令,花费了5000个人年;经费 达数亿美元,而结果却令人沮丧,错误多达2000个以上,系统根本无法 正常运行。 OS/360系统的负责人Brooks这样描述开发过程的困难和混 乱:“…像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多, 最后没有一个野兽能够逃脱淹没在泥潭中的命运。…”
——Struts1.x实例
Struts1.x实例(实现用户登录操作) ① 下载并解压Struts项目
➢ 从Apache网站下载struts; ➢ 将压缩包解压到一个目录,此目录为STRUTS_HOME目录;
② 安装Struts
➢ 将STRUTS_HOME/lib目录下的所有.jar文件拷贝到刚创建的web项目的/WEBINF/lib目录下;
20
3/11/2021
3、 Struts
——Struts框架概述
Struts是一个现成的、优秀的、基于MVC的Web应用框架。
Servlet/JSP容器
➢ JSP页面
(控制器)
• 显示模型的数据、St接ru受ts-模co型nfi的g.x数m据l 更新,通知更新视图
• 接受用户输入的数据传送控制器
ActionServlet
6.回送ActionForward
Action
1.HTTP 请求
7.转发HTTP请求
5.调用JavaBean
8.调用JavaBean
Client
JSP页面
9.HTTP响应
JavaBean
Struts的程序流程
华南师范大学软件学院
24
3/11/2021
3、 Struts
——Struts1.x实例
(View) JSP
Response
(Model) JavaBean
Enterprise Servers/ Data Sources
Model2(JSP+Servlet+JAVABEAN)
MVC是一种设计模式,它强制性地把应用程序的输入、处理和 输出分开。MVC将应用程序分成3部分:模型、视图和控制器。
——软件为什么会失效
华南师范大学软件学院
6
3/11/2021
1、软件体系架构
——产生软件危机的根源
✓ 软件规模越来越大、复杂度越来越高 ✓ 用户需求不明确 ✓ 缺乏正确有效的理论及工程指导
——对用户要求、实现条件没有完整准确的分析就匆忙编写程序,
是许多软件开发失败的主要原因
软件工程研究初期重点放在数据结构和算法的选择
Struts1.x实例(实现用户登录操作)
➢ 用户将看到一个登录页面,要求用户输入用户名以及密码
➢ 如果用户名以及密码都是admin,提示登录成功
➢ 否则提示登录失败
login_success.jsp
Login.jsp
华南师范大学软件学院
login_error.jsp
25
3/11/2021
3、 Struts
➢ 业务逻辑与表示逻辑混和,不利维护与重用 ➢ HTML中嵌入了大量的JAVA代码 ➢ 验证、流程控制、更新程序的状态全部在JSP中完成
BROWSER
Request Response
JSP
JavaBean
Application Server
Enterprise Servers/ Data Sources
➢ 配置web.xml,添加Servlet映射配置;
不同研究背景、应用背景的人员从不同的角度给出了多达近 百种定义,但有两点共识:
➢ 软件体系结构对于软件开发具有重要意义,必须采用良好的设计原 则达到良好的结构设计
➢ 主流的定义都认为:软件体系结构是用来表示软件系统的总体结构
的,该结构由软件构件和构件之间的关系及约束构成
华南师范大学软件学院
9
3/11/2021