当前位置: 首页 > news >正文

16、web应用系统分析语设计

一、web应用系统简介

二、web应用架构设计

web应用架构设计的通用原则

web应用体系结构

web应用体系结构可以根据软件开发和部署模式分为不同的类别。

web应用架构模式

1、BS

2、P2P

三、web应用开发框架

框架(Framework)是一组组件的综合,这些组件
相互协作,为一类相关应用提供了可重用的框架结
构,描述了另一种重用架构知识的方式,支持细节
设计和代码重用,如MMC、MSScriptEngine、
Spring、Struts和Hibernate等。


Java EE开发框架


1.SSH是Spring、Struts和Hibernate的结合,是目
前基于JavaEE的企业级Web应用轻量级开源架构。
其轻量级架构如图所示:

Spring

Spring框架是为了解决企业应用开发的复杂性而创建的开源框架,其主要优势之一就是分层架构。
分层架构允许使用者选择使用哪个组件,同时为J2EE应用程序开发是供集成的框架。Spring框架易
于使用并整合各类框架,能统一配置和部署、灵活并且可扩展、测试简单、开发成本低。Spring框
架依赖注入机制,可以在运行期间为组件配置所需资源,而无须在编写组件代码时就加以指定,从
而在相当程度上降低了组件之间的耦合性。


Struts

是Apache软件组织负责开发的一个基于MVC模式的企业业级Web应用架构的开源框架,主要采
用JavaServlet、JSP和XML等技术来实现。Struts中使用Plugin实现Web应用设计架构中的接口层,
ActionServlet、Action和ActionForm等类实现抽象层,后台实现各种实现层的功能。


Hibernate

是开源对象关系映射框架,对JDBC进行了非常轻量级的对象封装,使Java程序员可以
使用对象编程思维来操作数据库。Hibernate使用XML(.hbm.xml)文件把Java类映射到表,把Java
Bean属性映射到数据库表。通过JDBC技术,支持所有的SQL数据库管理系统

JSF 

JSF(Java Server Faces)是用于构建Web应用程序的标准Java框架,通过提供标准可扩展的用户界
面组件、易配置的页面导航、方便的数据验证和转换、自动化Bean管理、事件处理、方便的错误处
理以及内置对国际化的支持来加速Web应用开发。JSF中,Model是是进行业务操作的部分,用来实现业
务逻辑,一般使用JavaBean或EJB来建立复杂的企业应用;View是由JSF标签构成的JSP页面组成,
通过一个字符串松耦合Controller,通过发送事件来间接调用Controller的逻辑;Controller主要包
括FacesServlet、配置文件和action处理器。
NET开发框架:是由微软开发的一个致力于敏捷软件开发、悦速应用开发、平台无关性和网络透明
化的软件开发平台,是一个可以构建、发布以及运行Web服务及其他应用程序的环境,它提供了托管
执行环境、简化的开发和部署以及与各种编程语言的集成。
Web层开发框架
1.WebPage3.0。是基于组件的、可视化的、轻量级的Web开发框架,基于标准技术,有极好的稳定性
和扩展性。基于MVC模式,重点关注View部分,达到可视化开发和最大限度的重用。
2.AJAX框架。AJAX作为重要的Web2.0技术被广泛采用。随之也出现了很多AJAX框架,如Prototype
jQuery、Mootools、DOJO、ExtJS以及Ajax.NET和AFAX等。

四、web应用系统开发

Web应用开发

指的是通过Web技术构建Web应用程序的过程。构建阶段包括一系列的选择、编码、
内容创建、集成、重构以及测试活动,以构建出可以部署并交付给最终用户使用的Web应用。
Web应用通信协议是Web应用开发的基础,常用的Web应用通信信协议有
1.HTTP。是基本的Web通信协议,属于应用层的面向对象的协议,是一个基于文本的无状态协议。
HTTP无连接、无状态,客户和服务器之间交互不保留客户状态信息。
2.RTP/RTSP。RTP(实时传送协议)详细说明了在Internet」上传递音频和视频的标准数据包格式。
RTSP(实时流传输协议)是TCP/IP体系中的一个应用层协议,定义了一对多应用程序如何有效地通
过IP网络传送多媒体数据,用来控制音频或视频的实时发送,并允许同时控制多个流。
3.SMTP和POP3。发送邮件和接收邮件。


Web应用系统数据存储


1.缓存系统。是一种本地数据存储,有助于快速访问应用程序服务器的数据,当有重复数据请求时
可以直接从缓存中取数据,而无需每次都联系数据库。缓存系统可以设计为如下4种模型:
(1)应用程序服务器缓存。应用程序服务器旁边的内存中缓存(对于具有单个节点的应用程序)。
(2)全局缓存。所有节点访问单个缓存空间。
(3)分布式缓存。缓存分布在节点上,其中一致哈希函数用于将请求路由到所需的数据。
(4)内容交付网络(CDN)。用于交付大量静态数据。

2.云存储。通过集群应用、网格技术或分布式文件系统等功能,网络中大量各种不同类型的存储设
备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统,保证数据
的安全性,并节约存储空间。
3.CDN。内容交付网络(CDN)是安装在各个地理位置的服务器|网络,用于更快、更好地向用户交付内
容。用户的请求不是联系中央服务器,而是路由到存储内容的缓存版本的CDN服务器。因此,站点速
度和性能得到提高,数据包丢失减少,服务器负载减少。
4.负载均衡器。是一种服务,它根据可用性或预定义策略将流量负载分布在不同的服务器之间来平
衡流量负载。负载均衡可以通过如下两种方式完成:
(1)TCP/IP级别负载均衡,基于DNS的负载均衡。
(2)应用级负载均衡,基于应用负载的负载均衡。
Web系统设计中的负载均衡可以分为软件负载均衡和硬件负载我均衡
5.消息队列。是一个缓冲区,它异步存储消息,并促进Web应用程序中不同服务之间的通信。事件系
统派遣机制设计可分为无独立派遣模块和有独立派遣模块两大类设计方式。基于消息队列的点对点
模式属于有派遣模块设计方式类别中的一种,在该方式中,消息生产者生产消息并发送到消息队列
(Queue)中,然后消息消费者从Queue中取出并且消费消息。

web应用的客服端技术

Web应用系统客户端技术

Web客户端的主要任务是通过浏览器来展现页面内容并实现与用户的交
互,HTML是信息展现的有效载体。Web客户端开发的主要任务是设计与开发Web应用的Web页面,通过
设计格式、布局以实现数据的展现和用户交互。主要包活下列常用技术:
1.HTML/HTML5。HTML是一种通用的标记语言,标记用符号"<"和">"括起来。允许Web页面设计人
员建立文本与图片相结合的复杂页面。
HTML几个主要缺点:(1)表现过于简单。(2)链路容易中断(链宿地址改变后,链源不能自动纠正)。
(3)检索时所花的时间较长。(4)扩展性差。(5)缺乏语义性(不能揭示信息内容的本质)。
HTML5不是为了内容展示,而是为了支撑广泛的Web应用,因此,它支持新的元素、结构和语义。将
Web带入一个成熟的应用平台,视频、音频、图像、动画,以以及与计算机的交互都被标准化。
2.XML。是W3C制定的一种简单、跨平台的、依赖于内容的技术,是目前处理结构化文档信息的有力
工具。Web应用借助XML格式交换信息,能很好地解决分布式架构上的信息交换。
3.DHTML(动态HTML)是一种通过各种技术的综合发展而得以实现的概念,当Web页面从Web服务器下
载后无须再经过服务器的处理,而在浏览器中直接动态更新Web了页面的内容、排版样式、动画等。
4.CSS(层叠样式表)是由W3C定义和维护的标准,是一种用来为结构化文档(如HTML文档或XML应用)
添加样式(字体、间距和颜色等)的计算机语言。

5.Flash/Flex技术
1)Flash。是动画制作程序,可以制作出一种后缀名为swf的文件,其中包含了声音、图像和动画等。
Flash的优点是其生成的多媒体文件是矢量图,体积小,还可以边下载边播放,这样避免了用户长时
间等待。而且,用Flash生成的文件是代码保护的,别人无法看到到其源代码,还可以禁止下载
2)Flex。是展示服务的新版本,根据.mxml文件(纯粹的XML描述文件和ActionScript)产生.swf文
件,再由flashplayer或者shockwave player解释执行,以提是供丰富的客户体验。
6.DOM(文件对象模型)是W3C推荐的处理可扩展标记语言的本标准编程接口,主要作用是建立Web页面
与Script或程序语言沟通的桥梁。DOM常用来和JavaScript交互,即程序以JavaScript编写,但使用
DOM来存取页面及其元素。
7. JavaScript/AJAX
1)JavaScript。是一种广泛应用于Web客户端开发的脚本语言,其其源代码下载到客户端由浏览器解释
运行。常用于为HTML页面添加动态功能,操纵Web页面上的元无素,以实现Web页面的客户端交互功能,
制作特殊动态效果。
2)AJAX(异步JavaScript和XML)是一种创建交互式Web应用的网页开发技术。它使用JavaScript、XML
(或JSON)和XMLHttpRequest对象,可以在无需重新加载整个页面的情况下,与服务器交换数据并
更新部分网页内容。

web应用服务端开发

Web应用系统服务器端技术:Web服务器端开发的代码在服务器(Web服务器及扩展环境)端执行,
主要有CGI、ISAPI/NSAPI等基本开发技术,PHP、ASP、ASP.NNET、JSP等高级开发技术和基于后台数
据库的ODBC、ADO、JDBC等数据库连接技术。
1.CGI(公共网关接口)是一种早期应用于Web应用的标准,用于Web服务器运行服务器端外部程序,称
为CGI脚本,多用于动态生成Web内容。遵循这套接口标准,可以使用任何编程语言来编制CGI程序,
而不受开发语言的限制。
2.PHP(超级文本预处理语言)是一种HTML内嵌式脚本语言,在服务器端执行。它可以比CGI或者
Per|更快速地执行动态Web页面。PHP具有学习快速、与Apache及其他扩展库紧密结合、良好的
安全性等优点。

3. ASP/ASP. NET
1)ASP(动态服务器页面)是微软开发的代替CGI脚本程序的一种中嵌入式网页中的脚本,是可由服务
器执行的服务器端脚本技术。ASP可以与数据库和其他程序进行交互,是一种简单、方便的编程技术
框架。ASP的主要特性表现如下:

(1)利用ASP可以实现突破静态页面的一些功能限制,实现动态页面技术
(2)ASP文件包含在HTML代码所组成的文件中,易于修改和测试
(3)使用各种浏览器都可以正常浏览ASP所产生的页面。
(4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强
(5)ASP可以使用服务端ActiveX组件来执行各种各样的任务,,如访问数据库和文件系统等。
(6)使用者不会看到ASP所编写的原始代码,可防止ASP程序被窃取
2)ASP.NET。是用于动态Web应用构建的免费Web框架,包括很多开发Web应用所需的服务,作
为.NETFramework的一部分提供,可以使用与公用语言运行时(CLR)兼容的任何语言编写应用程序。
4.Servlet。是一种由Java编写的服务器端程序,可以动态生成Web页面,是JavaEE的一部分。
Servlet支持Request/Response模型,在服务器端接收Web客户端的请求并给出响应,一般通过HTTP
协议来完成。Servlet容器提供了侦听请求的服务,能把客户请求和响应信息包装在特殊的
Request/Response对象中,交给Servlet处理,然后由Servlet处理请求并通过HTTP协议将响应通过
容器转发到客户端。在基于MVC模式的Web应用中,Servlet充当控制器的角色,用来处理HTTP请求,
管理应用的工作流程。主要优势包括:Java语言的优点、执行效率高、构造的控制器功能强。

5、jsp

5.JSP(Java服务器页面)是一种将Java代码嵌入HTML页面中实现的的服务器端Web开发技术,在服务器
端进行解析,动态生成页面传递给客户端,JSP是JavaEE的一部分,本质上是一种高层的Servlet。
JSP的优点突出,具体包括:
(1)使内容的生成和显示分离;
(2)生成可重用的组件;
(3)采用标签简化页面开发,通过开发定制标签库,实现了JSSP技术的扩展;
(4)具有Java的优点,包括健壮的存储管理和安全性,可靠且移植方便等;
(5)企业产品多样性,在JavaEE平台内容中不仅包括管理复杂企业业的应用程序,而且包括事务管理技
术和pooling资源管理技术。


6. Per I/Ruby/Python


Perl是一种自由且功能强大的脚本语言。
Ruby是一种面向对象、解释型脚本语言。语法简单,擅长文本处理和系统管理等任务。
Python是一种面向对象、解释型计算机程序设计语言,也是一种中功能强大而完善的通用型语言。
Web应用的部署是把已经构建完成的Web应用发布到服务器上,通过对Web应用的运行环境进行配
置,使得用户可以通过Internet访问该Web应用。一般包括打包、发布和评估

web应用部署

1.部署粒度。Web应用发布以一种非常细粒度的方式完成,在测试试完某个组件后,将新组件从预发布
服务器再发布到运行服务器。在更新或变化影响不大的情况下,最好把一组变化打包进行发布。每
个打包发布周期都为最终用户提供了一个具有可用功能和特性的Web应用增量。每个评估周期都为
Web应用团队提供重要指导,并为下一个增量做出内容、功能能、特征和方法的修改。
2.部署原则。Web应用项目团队在准备交付一个增量时,应该道循如下一些关键原则。
(1)管理客户对Web应用增量的期望。
(2)安装与测试交付包。
(3)交付前建立支持制度。
(4)先改正有缺陷的Web应用,然后再交付。
3.部署环境。Web应用发布的软件系统主要包括操作系统软件和Wleb应用服务器软件两方面的内容。
应用服务器需要共同解决的部分问题:负载均衡。数据车连接池。高速缓存机制。
4.版本控制和CMS。版本控制和内容管理系统(CMS)在Web应用构建和部署活动中起着重要的作用。由
于Web应用变更快且频繁,因此要使Web应用构建和部署成功,就必须在变更管理工具的辅助下管理
好变更。

五、web应用系统测试

分类

根据测试内容的不同,Web应用测试主要包括功能测试、内容测试、性能测试、Web页面测试、客
户端兼容性测试、安全性测试等内容。
Web应用测试与传统软件测试一样,主要目的是发现错误和每陷。Web应用具有多层体系结构,客
户、数据通信、硬件以及服务器之间依赖关系非常复杂,每层1为以及各层之间都有可能发生故障。
与传统软件测试相比,Web应用测试的特性和面临的挑战主要有:用户数量巨大要有并发处理能力、
内容中的错误通常只能靠人工完成、Web应用一般采用多层结果需要综合分析、Web应用集成不同软
件、Web浏览器提供的导航等按钮经常错误、以适当粒度定义和验证各个组件很困难、测试方法和测
试工具的不成熟性。
Web应用测试的诸多特性,使得不能仅用传统的方式来对Web应用进行测试。在Web应用整个生命
周期的各个阶段,测试的侧重点有所不同。
设计阶段测试的主要任务是:估算服务器端容量的规划是否合理,系统的安全设计是否合理,数
据库设计是否合理,检查客户端设计的功能是否正确合理,检查系统的网络拓扑结构、容量设计是
否合理。
开发阶段测试的主要任务是:代码测试及组件测试,检查设计的代码能否满足规格需求。
运行阶段测试的主要任务是:功能测试、性能测试、安全性测试、配置测试、兼容性测试及易用
性测试。
维护阶段测试的主要任务是:根据维护的内容实施开发及运行阶段中的各个相关方面的测试。

测试的一般步骤

Web应用测试更多采用敏捷开发方法。Web应用测试的一般过程,具体包括:功能测试、内容测试
和评审、Web页面测试、导航测试、接口测试、配置测试、安全测试、性能测试等。测试主要包括以
下几个步骤:
(1)首先需要对被测试的Web应用进行需求分析;
(2)定义测试策略和方法;
(3)确定测试环境的要求,选择合适的测试用例、测试了工具、测试人员等。
(4)针对测试的行为,描述测试的细节;
Web应用功能测试在整个测试过程中起着至关重要的作用,它结合Web应用规格说明的要求,保证
Web应用在功能上能够达到预期的目标。可以分为链接测试、表单测试、数据校验、Cookie测试和数
据库测试。
1.链接测试。是Web应用所特有的测试,可分为三方面的内容嗯
(1)所有链接是否按指示的那样确实链接到了该链接所指向的资源;
(2)所链接的资源是否存在;
(3)是否所有页面都能够被链接到,不存在孤立页面;

2.表单测试。当用户使用表单元素进行各种操作时,必须校验用户提交给服务器的信息的正确性和
有效性。交互测试一般要确保以下几方面的内容:
(1)对表单元素中的标识域给出正确标记,并且为用户显示地标证只出强制域。
(2)对每项用户输入进行正确性和合法性检查。
(3)对用户输入错误时的异常处理机制进行检查。
(4)用户没有从下拉菜单或按钮组中进行选择时,使用合适的默认项。
(5)浏览器"后退"等功能没有破坏输入到表单中的数据。
3.数据校验测试。根据业务规则需要对用户输入进行一些正确性和合法性校验,需要保证这些校验
功能正常工作。可能会和交互测试有一些重复。
4. Cookies测试。Cookies通常用户信息和用户在Wel应用中的操作。当一个用户使用
Cookies访问了某一个Web应用时,Web服务器将发送关于这一一用户的信息,并把该信息以Cookies的
形式存储在客户端计算机上,这可以用来创建动态和自定义Webi页面或者存储登录内容等信息。
Web应用使用了Cookies,就必须检查Cookies是否能正常工作。
5.数据库测试。包括测试实际内容及其完整性,以确保数据没有损坏且模式正确。针对数据完整性
错误和输出错误分别进行测试。

性能测试

Web应用性能测试
1.性能测试内容
1)速度测试,包括网络连接速度测试和业务处理速度测试。
2)负载测试主要是确定在用户可接受的响应时间内,系统能够承担的并发用户的数量。负载测试应
该安排在Web应用部署以后,在实际的网络环境中进行测试。
3)压力测试,是负载测试的延续,通过对Web应用不断加压,来发现其在什么条件下变得不可承受,
查出Web应用对异常情况的抵抗能力,找出性能瓶颈,从而获得系统能提供的最大服务级别的测试。
压力测试关注Web应用在大量并发用户、传送大量数据和大业务量的情况下的性能变化,关注Web应
用能否长时间运行,响应是否太慢、系统是否崩溃、能否恢复等。
4)强度测试主要用于检查程序对异常情况的抵抗能力,检查系统在极限状态下运行时性能下降的幅
度是否在允许的范围内。
5)并发测试主要是指当测试多个用户同时访问同一个Web应用、同一个模块数据记录时是否存在线
程同步问题、死锁或其他性能问题。

6)大数据量测试,主要测试运行数据量较大时或历史数据量较大时的性能情况,一般针对某些特殊
的核心业务或一些日常比较常见的综合业务的测试。大数教据量测试分实时大数据量测试和极限状态
下的测试。
7)配置测试指通过测试找到系统各项资源的最优分配原则,为系统调优提供依据。配置的可变性和
不稳定性是Web工程面临挑战的重要因素。配置测试不是检查每种可能的客户端配置,而是测试一组
可能的客户端和服务器端配置,以确保用户在所有配置中的体验是一样的,并且将特定于特殊配置
的错误分离出来。
8)可靠性测试是指给系统增加一定业务压力的情况下,让系统运行一段时间,以此来检测系统是否
稳定。

性能测试方法

性能测试方法
1)虚拟用户方法。通过模拟真实用户的行为来对待测Web应用施加预期工作负载,以测量待测系统
的性能,如事务的响应时间、服务器的吞吐量等。
2)WUS方法,基于WUS的概念来设计测试场景,强调建立真实的负载。WUS是为了衡量测试负载和真
实负载之间的接近程度,是一系列能全面刻画负载的参数和测量指标的集合,包括每小时浏览的页
面、平均访问持续时间、每次访问平均浏览的页面以及页页面请求分布等

安全测试

Web应用安全性测试是对整个Web应用的安全防卫措施的有效改性进行测试,以揭露安全机制中的漏
洞。包括:
1.数据加密测试。是测试Web应用使用的关键数据是否经过了加密,所选择的加密算法是否合适等。
2.用户身份验证测试。主要检查无效的用户名和密码能否登录,容密码是否对大小写敏感,是否有验
证次数的限制,是否存在不验证而直接进入Web应用的问题,是否存在不登录就可查看非会员页面和
权限问题。
3.日志文件测试。主要是检查Web运行的相关访问和状态信息是否写进了日志文件,是否可追踪等。
此外,需测试Web应用执行过程中所产生的错误是否作为日志保留下来
4. Session测试。主要检查Web应用是否有超时的限制。也就是检查用户登录Web应用后在一定时间内
没有点击任何页面,是否需要重新登录才能正常使用。
5.备份与恢复测试。根据Web应用对安全性的要求可以采用多种备份与恢复手段,如数据库增量备份、
数据库完全备份、数据库差量备份和系统完全备份等。
6.访问控制策略测试。主要检查管理接口是否只有授权的管理员才允许进行访问,是否有完善的访
问控制策略文档等。
7.安全漏洞测试。为了避免或减少Web应用被攻击的可能性,需要测试并发现其中隐藏的跨站脚本
命令注入、SQL注入等安全漏洞,这类测试可借助一些安全扫描工具来实现。

web服务测试

【考什么?听视频最后。】

web服务测试内容

2.Web服务测试内容。根据Web服务架构和业务模型,Web服务测试可分为三个层次:Web服务基础设
施的验证与确认、Web服务独立测试以及Web服务集成测试。|同时,测试组织和管理是Web服务测试的
三个层次中都需要解决的问题。
1)Web服务基础设施的验证与确认:验证Web服务中间件的稳急定性
2)Web服务独立测试
1服务的实现应在功能、性能等各方面与发布的服务描述相一致;
2由于服务发布的开放性,对于每个服务请求,可能存在多个满足需求的服务描述,服务代理应根
据一定的度量和评价标准,对多个服务进行测试、比较和评估,并依照需求的满足程度排序;
3在服务实现的演化过程中,应建立一定的机制来支持对不同版本的跟踪及回归测试;
3)Web服务集成测试。在服务流描述执行前,通过静态验证以及动态模拟的方法,确认服务描述能
够正确地描述业务需求,能够由服务中介正确解析,并能由,所有服务节点正确执行

END

http://www.dtcms.com/a/348479.html

相关文章:

  • 经营分析的价值不在报告厚度,而在行动颗粒度
  • .NET反射与IL反编译核心技术
  • 关于 svn无法查看下拉日志提示“要离线”和根目录看日志“no data” 的解决方法
  • Rust Web开发指南 第三章(Axum 请求体解析:处理 JSON、表单与文件上传)
  • 【Python NTLK自然语言处理库】
  • 数学建模-线性规划(LP)
  • GPT-5国内免费体验
  • 【Android】从一个AndroidRuntime看类的加载
  • Unreal Engine 下载与安装全指南:从入门到配置详解
  • 淘宝API实战应用:数据驱动商品信息实时监控与增长策略
  • 13种常见机器学习算法面试总结(含问题与优质回答)
  • 【209页PPT】P2ITSP新奥IT战略规划架构设计报告(附下载方式)
  • Python基础之运算符
  • Vue3 学习教程,从入门到精通,基于 Vue3 + Element Plus + ECharts + JavaScript 开发图片素材库网站(46)
  • 塔能科技物联精准节能如何构建智慧路灯免疫系统
  • 【软考选择】系分和架构哪个好考?适合什么样的人?
  • 简历书写指南
  • [创业之路-560]:机械、电气、自控、电子、软件、信息、通信、大数据、人工智能,上述技术演进过程
  • Linux shell脚本数值计算与条件执行
  • 基于php的萌宠社区网站的设计与实现、基于php的宠物社区论坛的设计与实现
  • 手写MyBatis第32弹-设计模式实战:Builder模式在MyBatis框架中的精妙应用
  • Wagtail CRX 的 Latest Pages Block 高级设置 模版v3.0 以后被阉割了
  • 基于深度学习的阿尔茨海默症MRI图像分类系统
  • CVPR2025丨遥感领域,全模态与秒超高清遥感建模重大突破,性能提升创新点
  • 人工智能-python-深度学习-自动微分
  • MySQL數據庫開發教學(二) 核心概念、重要指令
  • Run-Command:高效便捷的命令行工具
  • 46.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--网关集成日志
  • ArticulateX:通过发音器官空间实现端到端单语语音翻译的突破
  • Vue vs React:前端框架的差异与选择