890 likes | 1.01k Views
电子商务系统分析与设计. 张宝明. 第 4 章 电子商务系统的设计( 2 ) ---- 详细设计与性能分析. 4 . 1详细设计 4 . 2性能分析. 4 .1详细设计. 根据系统规划的内容,详细界定系统的外部边界,说明系统的组成及其功能和相互关系,描述系统的处理流程,给出未来系统的详细结构。 系统总体结构设计 系统信息基础设施设计 支持平台的设计 应用系统设计. 4 .1详细设计. 利用 UML 对 Web 应用系统进行设计 基于 UML 的 Web 开发过程. 编写源程序. 编写存储过程. 制作二进制组件. 制作程序界面. 实现. 组件元素类.
E N D
电子商务系统分析与设计 • 张宝明
第4章 电子商务系统的设计(2)----详细设计与性能分析 • 4.1详细设计 • 4.2性能分析
4.1详细设计 • 根据系统规划的内容,详细界定系统的外部边界,说明系统的组成及其功能和相互关系,描述系统的处理流程,给出未来系统的详细结构。 • 系统总体结构设计 • 系统信息基础设施设计 • 支持平台的设计 • 应用系统设计
4.1详细设计 • 利用UML对Web应用系统进行设计 • 基于UML的Web开发过程
编写源程序 编写存储过程 制作二进制组件 制作程序界面 实现 组件元素类 详细设计类 <<跟踪>> 界面/接口类 详细设计 数据库表类 进行设计 <<跟踪>> <<跟踪>> 实体类 规划设计类 规划设计 边界类 控制类 <<跟踪>> <<跟踪>> 协作图 时序图 屏幕 场景图 需求分析 活动图 用例图 进行用例规约 <<跟踪>> 术语表 领域对象 领域 <<定义>>
建立新用户 <<include>> 浏览拍卖目录 用户 登录 退出系统 <<extend>> 投标 创建拍卖项目 竞买者 拍卖者 关闭当前拍卖 网下钱物成交 有效时间控制 在线拍卖系统用例图(Use-case of “online auction system”) 4.1详细设计 • 利用UML对Web应用系统进行设计 • 基于UML的Web开发过程 • 需求阶段: • 与用户进行交流与沟通,取得基本需求,并把用户需求转化为文档、用例图等需求规约。需求规约包括:用例图、时需图、活动图、场景图及相关的文字叙述。时需图、活动图用来说明用例的;场景图用以描述使用时的界面。
编写源程序 编写存储过程 制作二进制组件 制作程序界面 实现 组件元素类 详细设计类 <<跟踪>> 界面/接口类 详细设计 数据库表类 进行设计 <<跟踪>> <<跟踪>> 实体类 规划设计类 规划设计 边界类 控制类 4.1详细设计 • 利用UML对Web应用程序进行建模 • 基于UML的Web开发过程 • 规划设计阶段: • 完成商务、功能、客户行为、IT资源等设计,获得系统基本框架。 • 从用例图得到若干个类 • 角色对应外部系统类;功能模型或用例对应系统功能类;二者的边界对应一个边界类 • 详细分析阶段 • 对系统功能类进行详细设计(如何对Web页进行建模?) • 边界类对应用户界面(use form)或程序接口类 • 控制类转化为Session bean 或Servlet • 对各个类进行优化设计,用IBM的Rationnal工具Rose 2003进行设计 • 实施阶段 • 转化为程序,并对之修改完善
《build》 《Server Page》 《Client Page》 《redirect》 《link》 《Server Page》 《Client Page》 页面交互模型图 4.1详细设计 • 对Web页进行设计(建模) 页面、脚本、表单和框架及其相互关系是Web应用系统中的关键部分,建模方法如下。 • (1)页面建模。用户在使用Web应用系统时,是通过页面进行系统的操作。在页面建模中可用两个类别模板《Client Page》和《Sever Page》分别表示客户端页面和服务器端页面。 • 客户端页面的属性是页的作用域中定义的变量;方法是页面脚本中的函数; • 服务器页面的属性是页面脚本中的变量;方法是脚本中定义的函数。 • 在使用页面信息传递时,还可能出现服务器页面的重定向,在UML建模中,用类别模板《redirect》来表示; • 对于客户端页面和服务器页面的构造关联用类别模板《bulid》表示,这种关联是一种单向关联,由服务器页面指向客户端页面,具体表示如图所示。 • 在Web应用系统中,还会经常用到的就是超级链接,在UML建模中,用类别模板《link》表示超级链接,它的参数模拟为链接属性
《Client Page》 《Form》 Submit 《Server Page》 页面与表单交互模型图 4.1详细设计 • 对Web页进行设计(建模) • (2)表单建模。用户的要求一般通过表单与数据库交互。在UML建模中,表单用类别模板《form》表示,属性是表单中的域,表单没有方法。表单在处理请求时,要与Web页面交流数据,这个交流过程是用提交按钮submit来完成,为了在建模中表示这种关系,用类别模板《submit》表示。
《Client Page》 《Client Applet》 页面与组件交互模型图 4.1详细设计 • 对Web页进行设计(建模) • (3)组件建模。 • 在UML基本的图形化建模元素中,设立了专门的组件图。组件在使用过程中,同样的分成了客户端组件(如Java Applet,ActiveX控件)和服务器端组件。在系统的UML模型化表示中,用类别模板《Client Component》表示客户端组件,用《Sever Component》表示服务器端组件。
4.1详细设计 • 对Web页进行设计(建模) • (4)框架建模。框架通过定义类别模板元素《frameset》来实现,frameset指定并命名各个框架,每个框架容纳一个页面;框架的使用还涉及到目标target,建模时用《target》来表示。
4.1详细设计 • 对Web页进行建模 • 实例:一个网上活塞PDM系统----“活塞新产品开发的项目审批过程”设计(建模),考虑要点: • 活塞PDM系统是在传统PDM系统的基础上,引入了组件技术和Web技术,对数据流程的处理更趋于简易性和方便性。在对该系统的建模过程中,要体现整个系统前台与后台间数据交互的流程。 • 在设计时,主要用类图和组件图来表现系统。在设计模型图时,采用了先整体后局部的思路,首先考虑整个系统的案例图,再对子模块进行分析和设计,在每个子模块数据流的入口和出口设置模型图间数据交互的接口。 • 活塞新产品开发的项目审批过程
4.1详细设计 • 总经理评审功能对应的类图
<html> <head><title>验证身份</title></head> <body bgcolor=“white”onload=“javascript:alert(‘caution!’)”> <jsp:useBean id=“checkBean”class=“company.checkBean”/> <h4>验证结果</h4> <% if(checkBean.authentivation(“zhang3”)) { out.println(“ok<br>”); out.println(“<form action=‘doCheck.jsp’>”); out.println(“<br><input type=‘submit’value=‘进行支付’>”); out.println(“</form>”); } else { out.println(“<br>身份不合法,不能继续!”); } %> </body> </html> • 练习:一个身份验证的文件:check.jsp,画出对应的类图
防火墙 Internet 路由器 Web服务器 数据库服务器 4.2性能分析 若假设客户只有一个导航模式:访问主页------>检索目录 在管理方准备广告促销活动之前,迫切需要知道有关站点的如下一些性能问题: 1) 如果在高峰时间内客户会话量增长一倍,站点性能如何? 2)如果使用分辩率更高的图片,使得页面的大小增加200%,LAN的利用率如何? 3) 如果客户改变了他们的导航模式并且使用目录检索的次数增加50%, 对性能又有何影响? 4) 如果数据库服务器的磁盘子系统升级20%,那响应时间将会减少多少? 对这些问题的回答,需借助于性能模型。 • 问题的提出 • 在线玩具商店: 站点由两个用100 Mb/s 的 LAN连接起来的服务器构成。一个作为WEB服务器,提供商务功能主页;另一个服务器用来管理数据库。这个站点提供的商务功能如:放入购物车、检索、浏览、欢迎、注册,付款。
性能模型概述 P.57 • 性能模型表达了工作负载使用系统资源的方法,描述了决定系统性能的主要因素。它使用资源模型和工作负载模型提供的参数信息,来计算出诸如响应时间、吞吐量、利用率、平均队列长度、收入总额、损失总额等性能参数。
性能模型概述 P.57 • 性能模型种类有:分析模型、仿真模型。分析模型是通过公式来说明系统的不同部件之间的关系,如Http事务响应的最小可能时间可用下面的分析模型来表示: • RTmin = RTT + 请求时间min + 站点处理时间 + 答复时间min 其中:RTT=网络传输固有的环路时间; 请求时间min=请求大小/带宽; 站点处理时间=eB站点处理请求所使用的时间; 答复时间min=答复页面大小/带宽; 输入参数: 系统参数-----带宽、RTT; 工作负载参数----请求大小、答复大小; 仿真模型: 通过运行一个仿真程序来模仿一个真实系统的行为。仿真程序根据被仿真系统中所发生的事件来模似系统状态的转变,通过计算事件及系统相关条件的持续时间来测量性能。仿真的优点是具有通用性,但建立和运行仿真程序比较昂贵。
0.6 0.4 入口 主页 检索 结束 性能建模的基本输入参数的获取 • 利用专用测量工具或日志文件获取高峰时段一些基本的参数,如: 数据模型值 已经结束的客户会话数目35000 网络服务器总的忙碌时间1200s 数据库服务器总的忙碌时间2100s 测量时间1600s • 利用日志文件建立会话的CBMG----获得每功能的使用次数
C [0.05,m2] C WS DB WS C [1,m1] [1,m4] [1,m5] [0.95,m3] 在线玩具商店检素功能的CSID 性能建模的基本输入参数的获取 • 从IT资源模型和CBMG得到CSID----获得每资源的使用次数/每功能 。 假设从日志中得到:检索请求的连接被WEB服务器拒绝的次数占整个检索请求数的5%,基于IT的二层结构,得到上图所示CSID图,mi为消息的大小。 由此可得: WEB网络服务器处于运行状态的平均次数=2x0.95+1 x0.05=1.95/检索 数据库服务器处于运行状态的平均次数=1 x0.95=0.95次/检索
性能模型中的一些性能参数 • 1)服务时间和服务需求 • 事务: 定义为一个来自客户的要求执行电子商务站点所提供的功能请求。如:检索事务、注册事务、放入购物车事务、付款事务等。 • 事务使用的资源: 可为高层次资源(如:付款服务器、认证服务器),也可为低层资源(如:处理器,磁盘,LAN段,路由器等) 在一个事务执行过程中,可能需访问多种资源,对同一种资源也可能需要进行多次访问。例如:一个付款事务可能需要访问网络服务器、数据库服务器、认证服务器、付款服务器。 • 平均服务需求Di:某事务对资源i的平均服务需求Di定义为: Di = Vi×Si 其中: Vi为某一事务对资源i的平均访问次数 Si为每次访问资源i所得到的平均服务时间(不包括等待时间)
例4-1:考虑一个在线药品销售的B2B站: 有一个网络服务器和一个数据库服务器。若这个站点每天处理2万个订单(事务),其中90%的订单事务平均需存取6行的记录项,而10%的订单事务需存取28行的记录项。设每行记录项的存取需花费数据库服务器0.5s的处理时间,则每个订单事务服务需求是多少? Di = Vi * Si =1* (0.1 *28 * 0.5 + 0.9 * 6 * 0.5) =4.1 s
服务器上的服务时间 • 服务器=硬件平台(CPU、内存、I/0系统、网络接口部件、其它控制器)+OS+服务器软件+目录等 则服务器上的服务时间D=∑ Di
DB进程 TCP层 IP层 链路物理层 客户进程 TCP层 IP层 链路物理层 DB FDDI R R Ethernet Token Ring • 网络段上的服务时间 -----在网络上传输消息时所费时间;若客户和服务器之间的连接模型如下:
PDU:事务处理中的请求消息数据和应答消息数据在协议层之间首先要进行封装,各层的封装基本单位称为PDU(协议数据单元);PDU:事务处理中的请求消息数据和应答消息数据在协议层之间首先要进行封装,各层的封装基本单位称为PDU(协议数据单元); • MTU(最大的传送单元):在数据链路层中,一帧所能封装的最大数据量,不同网络具有不同长度的MTU; • MSS(最大信息块),在TCP层中的PDU内所声明的最大可接受的数据块大小。若此值> MTU,则在路由器路由时需要将IP数据报进行分段,分成几个片段 • 各种网络协议的参数见P.62
DB进程 TCP层 IP层 链路物理层 客户进程 TCP层 IP层 链路物理层 DB FDDI R R Ethernet Token Ring • 图中,设客户向DB发送一个300byte长的事务请求,并且接受到一个10000 byte长的答复,则对于发送: • Ethernet上的帧长为:(300+20+20+18) byte • 发送时间为: (300+20+20+18)*8bit /10Mbps=0.000286 s • FDDI上的帧长为:(300+20+20+28) byte • 发送时间为: (300+20+20+28)*8bit /100Mbps=0.00002944 s • Token Ring上的帧长为:(300+20+20+28) byte • 发送时间为: (300+20+20+28)*8bit /16Mbps=0.000184 s • 对于答复:设MSS=1460 byte 小于MTUmin=1500值。这样数据在传送过程中不需要分片;因此对于10000byte的答复数据量,需分成[10000/1460]=7个TCP段来传送,前6个TCP数据量为1460 byte,最后一个TCP数据量为10000-1460*6=1240byte 。 • Ethernet上的接收时间:[6*(1460+20+20+18)+(1240+20+20+18)]*8/10Mbps=0.00832 s • FDDI上的接收时间:[6*(1460+20+20+28)+(1240+20+20+28)]*8/100Mbps=0.000838 s • Token Ring上的接收时间:[6*(1460+20+20+28)+(1240+20+20+28)]*8/16Mbps=0.00524 s
下面给出网络中当没有片段时的平均服务时间的通用等式: P64 • N=客户和服务器之间的网络数目; • MessageSize=客户和服务器之间交换的消息大小; • MTUn=网络n的MTU; • TcpOvhd=TCP协议的开销; • IpOvhd=IP协议的开销; • FrameOvhdn =网络n的帧开销; • Overheadn=网络n中,传送消息的所有帧的开销之和,即: • ∑(TCP+IP+Framen) • MSS=段大小的最大值(这里假设MSS≤min(MTUn)) • Bandwidthn=网络n的带宽(Mb/s); • Ndatagramsn=网络n中,传送消息的所有数据包的数目; 则有: Ndatagrams=〖MessageSize/MSS〗 Overheadn=NDatagrams×(TcpOvhd+Ipovhd+Frameovhdn) 网段服务时间n =(MessageSize+Overheadn) ×8/(Bandwidth×106)
DB进程 TCP层 IP层 链路物理层 客户进程 TCP层 IP层 链路物理层 DB FDDI R R Ethernet Token Ring • 例4-2 上图中客户若以平均3个事务/分钟的速率向DB提交事务平均请求信息的大小是400 byte 80%的答复是80 92 byte 20%的答复是不是100000 byte ,假设这里没有分析片段,想要计算3个网络上的请求和答复的平均服务时间?(设每个网络中的MSS都是1460byte)网络平均的利用率是多少?
请求 短的答复 长的答复 Ndatagrams 1 6 69 LAN1 overhead 58 348 4002 服务时间(ms) 0.366 6.75 83.2 Ndatagrams 1 6 69 LAN2 overhead 68 408 4692 服务时间(ms) 0.0374 0.680 8.38 Ndatagrams 1 6 69 LAN3 overhead 68 408 4692 服务时间(ms) 0.234 4.25 52.3 • 利用上面的通用公式可求得:p65
则各网段的平均利用率: 客户数目 利用率 LAN1 LAN2 LAN3 40 4.5 0.4 2.8 80 9.0 0.9 5.6 120 13.4 1.4 8.5 160 17.9 1.8 11.3 200 22.4 2.3 14.1 240 26.9 2.7 16.9 280 31.4 3.2 19.7 LAN1 LAN2 ss LAN3 0.0224s 0.00223s 0.0141s 资源平均利用率=事务平均到达率×资源平均服务时间 各网络上的平均服务时间为(请求+短答复×0.8+长答复×0.2):
路由器上的服务时间 • 路由器上的工作原理:将数据报从源主机转接到另一网络中的目标主机中去。数据报进入路由器后就暂留在队列里,等待路由处理。路由处理时,路由器根据数据报的目的地址使用路由表来选择路由路经。 • 路由器服务时间(Routerlatency):路由器处理每个数据报平均所花的时间(不包含排队等待时间) • 路由器总的服务时间=Ndatagrams ×路由器服务时间
C [0.05,m2] C WS DB WS C [1,m1] [1,m4] [1,m5] [0.95,m3] 防火墙 Internet 路由器 Web服务器 0.6 数据库服务器 0.4 入口 主页 检索 结束 • 例4-3 考虑例4-1中的例子:其会话频率为35000次/小时;客户行为模型CBMG如下,设想DB服务器请求信息的大小MSS=1460B, LAN1使用100Base-T的以太网。那么Lan1网络利用率是多少? 由CBMG知平均每个会话中检索事务执行的次数为2.5次/会话 ,则:DB有效吞吐量为:35000×2.5/3600×0.95; Lan1的利用率=事务的平均到达率×平均服务时间 = 35000×2.5/3600×0.95×(0.366+7.64) =19.5%×0.95
服务时间、服务需求的计算 • 由前知:某个事务i的服务需求Di定义为:资源i对事务i的总服务时间,因而: Di=Vi×Si 同时, Di=资源i总工作时间/事务数 这样可得:Si=Di/Vi • 对于在线玩具商店,计算每个检索事务的服务需求Di: Dweb=web总工作时间/检索事物数=1200s/35000×2.5=13.71ms Ddb=DB工作时间/检索事务数=2100/35000×2.5=24ms 所以,平均服务时间Si为: Sweb=Dweb/Vweb=13.71ms/1.95=7.03ms; Sdb=Ddb/Vdb=24ms/0.95=25.26ms
2)对列、等待时间、响应时间 • EB中的资源都是共享资源,可同时为多个客户的事务请求服务,当一个事务或者请求访问某个资源时,通常都必须排队等待,排队等待的时间称为等待时间,事务从提出请求开始到获得应答结果这期间所花的时间称为响应时间,因此: 响应时间=队列上排队等待时间+服务时间 • 若访问一个资源时,事务请求不用排队等待,则这样的资源称为延迟资源,即延迟资源的响应时间=服务时间 ;在性能建模型,有时为了简化模型的表示,可将一些执行特殊任务所耗费的时间,看作是访问一个延迟资源。
设: • Vi 是一个电子商务事务对队列i(等待队列+资源)的平均访问次数; • Si 是一个电子商务事务每次访问资源i的平均服务时间; • Wi 是一个电子商务事务每次访问队列i的平均排队等待时间; • Ri 是队列i对事务的平均响应时间; • λi 是队列i的平均请求到达率----到达速率; • Xi是队列i的平均吞吐量,定义为:单位时间内队列i平均结束的事务数 目,若时间足够长,则进入队列事务数=离开队列事务数; • X0 系统吞吐量,定义为:单位时间内系统平均处理完的事务数目; • Niw是在队列i中排队等待的平均数目/单位时间; • Nis是在队列i中正在得到资源服务的平均数目/单位时间; • Ni是在队列i中等待或者得到资源服务的平均数目 ;
例:在τ=1200s的测量时间内,到达服务器的请求是24000。服务器执行的请求数目是27300,服务器处理器处于忙碌的时间为1040s,则 : • 到达速率λ=到达请求数/测量时间=24000/1200=20t/s; • 完成速率X0=结束请求数/测量时间=27300/1200=22.75t/s; • 每个请求的平均服务时间S0=忙碌时间/结束请求数=1040/27300=0.0385/请求
C0 对列 资源 5. 性能定律 • 1)利用率定律 • 利用率Ui定义为:资源忙碌时间的比率 ; Ui=资源忙碌时间Bi/监视时间τ =Bi/(C0/Xi)=Xi Bi/C0=Si Xi ;
C0/m c0 队列 • 若一个队列内有m个资源,则此时: Ui‘=Si Xi’ =Si (C0/m)/τ=Si Xi /m ,即此时的资源忙碌时间为原来的Bi/m ; • 若假设为流平衡状态,则Xi=λi,即Ui=Si.λi • 例4-7 在一定的观测时间内,一个数据库服务器每秒执行45个检索事务,每个事务耗费19.0ms,在这段时间内系统利用率是多少? Ui=SiXi=0.019×45=85%
2)强制流(Forced---Flow) 定律 • 设: Vi:一个电子商务事务对队列i的平均访问次数; X0:系统平均吞吐量,即单位时间内系统结束的事务数; Xi:队列i的平均吞吐量,单位时间内资源i结束的事务数; 则: Xi=Vi . X0
例4-8 在1200s的测量时间内监测一个电子商务站点,在这期间执行了4800事务。若根据csid知道事务访问网络服务器5.2次,数据库服务器3.8次,(每次数据库服务时间是59ms,网络服务时间是35ms),那么网络服务器 和数据库服务器的平均吞吐量是多少? 根据强制流模型: Xdb=Vdb .X0=3.8 × 4800/1200=15.8t/s Xws=Vws. X0=5.2× 4800 /1200=20.8t/s
3)服务需求定律 • 服务需求定律Di=Vi . Si =(Xi / X0). (Ui / Xi) =Ui / X0 例4-9 对于例4-8,其服务需求: Dws=Vws . Sws =5.2×0.035=0.182s; Ddb=Vdb . Sdb=3.8×0.059=0.224s ; 则利用率: Uws=Dws. X0=0.182×4=72.8% ; Udb = Ddb . X0=0.224×4=89.6% ;
4) Little定律 设: X: 平均离开率(吞吐量); R: 客户或事务在资源中平均所花时间; N: 资源中客户或事务的平均数量; 则: N=X. R
例1-10 考虑一个提供免费电子邮件服务的巨大服务器。假设注册用户数是200万,高峰时间里,每小时中平均有30%的用户通过入口发送E-mail。若每封E-mail平均需要5s时间来处理并发送目的地邮箱,每个用户平均发送3.5封E-mail。对邮件日志文件的分析表明:平均的邮件消息大小是7120byte。那么在高峰时间内,发送邮件的缓冲器容量是多少? 据Little定律: 高峰时间缓冲区中邮件的平均数目=邮件吞吐量×响应时间 =(2000 000×0.3)×5 /3600 =833.3 封信 故需缓冲区大小为:833.3×7120byte=5.9 MB
Little定律非常强大,可以应用于任何黑盒子,只要黑盒子自己既不会生成也不会消灭客户(事务)Little定律非常强大,可以应用于任何黑盒子,只要黑盒子自己既不会生成也不会消灭客户(事务) • 利用Little定律有 : Niw=Xi×Wi等待队列 Nis=Xi×Si某个资源 Ni=Xi×Ri等待队列与资源(队列)
系统 • 例4-11 一个基于网络的经纪公司运行一个3层的站点(1100万的客户使用这一网络贸易系统)。在高峰时间里有20000个使用者被同时记录到日志中。这个Eb站点每小时处理3600000个商务功能,那么在这最忙碌的时间里,每个电子商务功能的响应时间是多少? 把整个EB站点看成一个黑盒子,应用Little定律有: 平均响应时间=平均用户数目/站点吞吐量 =20000/(3600000/3600) =20 s