已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Web应用与开发技术 学习目标 1.了解Web开发技术历程 2.Web开发技术的比较 第三讲讲 WEB应应用开发开发 技术术 1、由于HTTP基于请求响应范式。传统应用中浏览器发 出请求,服务器针对每一个请求返回一个HTML页面。 2、由于HTML作为一个用于内容布局的结构化标志语言, 与进行数据/逻辑处理的编程语言存在异构性。 3、由于Web应用以服务器为中心,Web开发需要考虑服 务器端的负载问题。 传统的Web开发方式:Web Server接受客户端传送过来的HTTP请求, 进行解析,与后台交互进行业务处 理,再把结果渲染成HTML,最后将其传到 浏览器。虽然这种方式历经了多年的发展,我们也有不少的开发框架和工具可 以使用,但是Web应用的开发仍显得比较复杂 低效。 Servlet为Java Web编程的早期规范,把Http请求与响应 被封装成Java对 象。在这段时期,整个Web应用基本仅由程序员来完成,他们在Servlet程序中 从Request中取得客户端传送过来的参数,进r行处理后将结果写回到 Response对象的输出流中,这种方式无论对开发 人员或是用户来说 都是比较 痛苦的,程序员需要在程序中写入大量重复枯燥的HTML输出语句,而且这种 方式也很难在HTML的美工方面做得很好,所以对于用户来说 ,他们只能看到 一些粗糙简陋的页面。 第一节节 Web应应用开发开发 技术历术历 程 为了解决这个问题 ,JSP等动态网页 技术出台了,首次在页面与程序分离方 面迈出了一步,程序员可以在美工人员完成的HTML页面中嵌入程序代码,用 来控制页面中动态部分。但是由于JSP规范对页面中Java程序没有太大的限制 ,对哪一些程序应该放在动态页 面中,哪一些程序需要放在后台程序中处理也 没有一定的规范。导致了在很多的Web项目中,大量的Java代码充彻于HTML Tag的字里行间,给美工与程序员都带来了不少痛苦。 为此,Craig R. McClanahan等一些有见解的开发人员开始提出了Web开发 的model2,将经典的MVC模式导入到Web开发中,出现了Struts这个至今仍 非常流行的Web框架,在架构上,它把浏览器提交的请求交给一个统一的 Servlet控制器,由控制器通过读取控制文件将事件分配到相应对象模型 (Actions)中,实现了对Request事件响应的对象封装。而在页面渲染方面,提 供了一套与HTML形式类似的Taglib库,意图于减少HTML与Java程序间的异 构性,更好地实现页 面与逻辑 分离。后来的出现的WebWork, Spring MVC基 本上继承了Struts中的MVC思路,只是在事件分派,页面渲染的灵活性上进行 了提高。但是这种所谓Web MVC的方式并不能彻底解决Web开发中的痛苦, 由于Action的激活基于每一个页面跳转产生的Request请求,对于复杂的页面 事件交互,Action的粒度与页面中状态的保持都是比较麻烦的问题。而且由于 TagLib没有一个统一的规范,自定义性太强,使得嵌入它的页面很难被主流的 HTML编辑器支持,始终不能摆脱页 面与程序分离的问题。 在基于Request,对Action进行封装的框架之外,还有另一个Web框架 的分支,那便是JSF等以对可视化组件进行封装为基础的架构。它力图将 HTML元素的属性和事件的监听都封装在后台的对象中,为开发 者屏蔽掉 处理HTTP Request/Response方式带来的事件分派,状态保存等麻烦。 这种方式在MS的.net开发中一直被提倡,希望Web程序的开发能像VB中 的一样,利用强大的IDE,制作布局,画出控件,为控件指定监听器并书写 响应程序。但是这种方式也存在一定的问题,因为B/S的Web架构毕竟与 单机或是胖客户端不同,如果连结到服务器的并发用户较多时,这种将 组件的事件监听,状态保持和渲染的工作都交由后台程序的方式必将对服 务器资源提出更大的挑战。 一、 当前Web网站的结结构模式 由于现在的Web系统慢慢地结合了商业、数据库以及企业的运用,因 此,对于Web应用系统的要求也愈来愈严格,Web应用系统必须具备高度的 扩展性,合理的执行效率,以及全天候安全强固的执行环境,也就是说,现 在的Web应用系统必须能够安全及时地服务大量的客户端用户,又能够长时 间安全稳定地运行,要做到这些,就必须要求Web应用系统具有一种良好体 系结构,选择一种良好的体系结构,是Web应用成功的基础,就像一座大厦 有了一个好的根基,Web应用系统的结构模式以及其中的运作方法对网外访 问的用户来说基本上是透明的,用户不会感觉到你是使用的哪种结构模式, 对用户来说,他所体会到的只是你的网站的速度以及你的网站的稳定性,但 是,正是Web应用系统的结构模式及其内部运作方式决定了你的Web服务的 性能,当前应用比较多的体系结构大致有以下几种: 第二节节 Web开发开发 技术术比较较 图一显示的结构模式是比较传统 的一种WEB服务,它的服务器端基本 上只由WEB服务器构成,它要发布的内容以文件的形式保存在WEB服务 器上,它只能通过HTML文件提供静态的WEB内容,所有的服务内容必须 预先定义编辑 好,用户可以通过URL直接定位到这些定制好的HTML文件 进行存取,这一模式比较简单 ,并且可靠性比较高,实现起来也比较容易 ,但是提供的内容比较单调 ,并且时效性及可维护性均较差,现在大的网 站系统已很少采用。 图二显示的结构模式是当前应用比较多的一种结构模式,这种模式在服务 器端增加了一台数据库服务器,可以将要发布信息分类保存到数据库服务器 ,然后通过应用程序或脚本程序根据用户请求提取相应的信息,这种模式克 服了第一种结构模式只能发布静态内容的缺点,由于增加了后台数据库的支 持,在WEB SERVER中通过应用程序的支持,给用户提供动态的信息服务, 通过定制页面模板,添加到后台数据库的信息可即时发布到请求的客户,因 而也就保证了信息的时效性,这与第一种模式比较起来,有了很大的优越性 ,但是,在增加这些优越性的同时,也增加了WEB服务器的负担,同时也降 低了WEB服务器的稳定性,这是因为在WEB服务器中要处理与后台数据库的 连接以及一些企业逻辑的处理,它们会消耗掉大部分CPU的时间片,另外由 于增加了这些处理环节,这些环节中一个地方出现差错,就会影响WEB服务 器的性能,有时可能会使WEB服务器当掉,这种模式实现起来难度也不大, 对编程人员的要求较低,具体的实现方式大致上可通过ASP脚本语言、PHP 脚本语言、普通的CGI程序或ISAPI及NSAPI来实现。 图三所显示的结构模式是一种比较先进的结构模式,它是一种分布式的WEB应用,它与第二种模 式有些相似,但它在WEB服务器和后台数据库服务之间增了一层应 用服务器,它继承了前两种结构 模式的优点,同时又克服了前两种模式的缺点,是一种比较先进的结构模式,在国外的一些大型知 名网站有所应用,像Microsoft的站点以及国外的一些大型电子商务站点均是这种结构模式。首先, 它能够动态 地发布信息,保证了信息的时效性,第二,由于增加了中间应 用服务器,这样 就可以 将一些复杂的企业逻辑 及数据库的连接服务等封装到中间层 上,通过中间层 的应用服务器来完成 这部分工作,这不但减轻了WEB服务器的负担,同时也不会因为企业逻辑 的不合理以及数据库的原 因而使WEB服务器当掉,这种模式中的应用服务器可以有多台服务器来承担,这不但可以提高用户 的访问 速度,改善WEB服务的性能,同时还 能起到负载 平衡与容错的作用,因为在多台应用服务器 并行工作时,它们可以轮流对请 求的用户进 行服务,在其中一台不能提供服务时 ,其它的应用服 务器能够继续对 用户提供服务。这种结构模式实现 起来最复杂,对编 程人员有一定的要求,要实 现这 种结构模式,可以通过ASP脚本结合COMCOM或者是CGI或ISAPI结合COMCOM来实现 , 在UNIX类操作系统中还可以通过PHP脚本结合CORBA构件技术来实现 ,由于COM/COM+或CORBA构 件均是已经编译 的可执行代码,因而在执行速度上要比单纯 的ASP或PHP脚本语言快得多,实际 上 ,Microsoft提倡的DNA技术就是这样 的一种结构模式,这是一种典型的分布式WEB应用系统。 综上所述,在进行WEB应用开发时,要根据WEB网站的规模、用户访问量 以及要求的响应时间几个指标来规划网站的结构模式,由于INTERNET技术的 发展,第一种模式现在很少采用,它已不能适应当前的用户基本要求,对于 第二种模式,要分情况对待,对于访问量很低,信息量不大,对系统稳定性 要求不是很高的情况下,可以采用这种模式,因为这种模式对编程人员的素 质要求不是很高,并且开发周期快,比较适用于企业内部的INTRANET或一些 访问量不大的中小网站。对于一些大型的门户网站或大型的电子商务网站, 由于用户访问量非常大,并且对系统的安全性以及稳定性要求都十分严格, 在电子商务网站中,对数据的严谨性要求也是非常严格,因此,在这几种情 况下,第三种结构模式就是非常适合的了,不管从用户数量、安全性及稳定 性哪方面考虑,都应该采用这种模式。 有了很好的WEB体系结构,对于网站的建设及应用只是成功了一半,就好 比建一座大楼,有了一个好的地基,这只是成功建设这座大厦的基础,要将 这座大厦建造完成并且能够让人们搬进去办公或居住,就必须严把质量关, 建设装修好每一层大楼,任何一层出现质量问题,都会影响到整个大厦的质 量,对于WEB应用的开发也是一样,任何一个环节出现问题,都要影响整个 WEB站点的性能,下面就这一问题我们进行一下讨论。 事实上,不管是在开发一般的分布式多层应用系统,还是分布式的WEB 应用系统,或是电子商务应用系统,有三个非常重要的因素影响着系统的执 行效率,这三个因素分别是: 二、 WEB应应用系统统的优优化 1、数据库的连接 数据库的连接一直是一个非常耗时的工作,建立一个数据库连接,最 快的连接一般需要1-2秒,慢的需要5-8秒,甚至更长一些,这将严重影响系 统对用户请求的反应速度,特别是在用户数据很大并且并发访问很多的情况 下,这种性能下降将是非常的明显。 2、构件或中间件的加载与卸载 在WEB系统中使用分布式的对象时必须先创建它们,在使用完后又必 须释放它们 ,建立和释放这些对象也需要时间和系统资源,因此,它们可以 成为WEB应用系统的执行瓶颈。 3、线程的重复使用 大家都知道,CGI类型的应用程序总体说来要比ISAPI类型的应用程序 效率低一些,原因就是CGI在每次用户请求时都需要重新加载,而ISAPI则只 有在第一次请求时需要加载,以后将常驻内存,这也就省去了应用程序的加 载时间,同样问题,在应用程序中创建新的线程也是需要耗费时间的,假如 能够做到对线程的缓冲,这样也就节省不少系统资源,加快应用程序对用户 请求的反应速度。 以上三个因素是最明显的影响系统性能的因素,如何解决这些问题,以 及解决的成功与否是提高WEB应用系统性能的关键。幸运地是现在的大部分软 件已供了一种pooling技术,也就是缓冲技术,来解决这些执行效率的瓶颈问 题。在这三个因素中,数据库的连结是最慢最耗时的动作,因此我们可以通 过共享(pooling)数据库的连结来加快系统的执行效率,现在大部分最新的 数据库系统已经提供了pooling技术
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 我的营养食谱大班
- 九级地震插画设计
- 脑梗塞常见症状及护理手段
- 胃管堵塞处理方法
- 青少年保持心理健康的方法
- 患者跌倒坠床安全防范大纲
- 肺癌征兆解析及护理方法
- 产科婴儿健康宣教
- 自来水处理科普
- 初中小说阅读方法
- 2025广东广州市增城区调任公务员16人考试参考题库及答案解析
- 2025-2026学年期中测试卷人教版九年级数学上册
- GB/T 16150-2025农药筛析试验方法
- 国寿股权投资有限公司笔试题库
- GB/T 20113-2006电气绝缘结构(EIS)热分级
- GA/T 1393-2017信息安全技术主机安全加固系统安全技术要求
- 7园艺植物的植株管理课件
- 道路交通安全知识培训(经典)-课件
- 第7章-牧草形态特征
- 五年级下册心理健康教育教案
- 江苏省五年一贯制专转本《C语言程序设计》模拟试卷试题四(晓庄)
评论
0/150
提交评论