免费智能真题库 > 历年试卷 > 系统架构设计师 > 2017年下半年 系统架构设计师 下午试卷 案例
  第5题      
  知识点:   电子商务   负载均衡   分布式文件系统   架构设计   数据库   文件系统   系统架构   业务需求   应用服务

 
【说明】
电子商务企业因发展良好,客户量逐步增大,企业业务不断扩充,导致其原有的B2C商品交易平台已不能满足现有业务需求。因此,该企业委托某软件公司重新开发一套商品交易平台。该企业要求新平台应可适应客户从手机、平板设备、电脑等不同终端设备访问系统,同时满足电商定期开展"秒杀"、"限时促销"等活动的系统高并发访问量的需求。面对系统需求,软件公司召开项目组讨论会议,制定系统设计方案。讨论会议上,王工提出可以应用响应式Web设计满足客户从不同设备正确访问系统的需求。同时,采用增加镜像站点、CDN 内容分发等方式解决高并发访问量带来的问题。李工在王工的提议上补充,仅仅依靠上述外网加速技术不能完全解决高用户并发访问问题,如果访问量持续增加,系统仍存在崩溃可能。李工提出应同时结合负载均衡、缓存服务器、Web应用服务器、分布式文件系统、分布式数据库等方法设计系统架构。经过项目组讨论,最终决定综合王王和李工的思路,完成新系统的架构设计
 
问题:5.1   (5分)
请用200字以内的文字描述什么是"响应式Web 设计",并列举2个响应式Web设计的实现方式。
 
问题:5.2    (16分)
综合王工和李工的提议,项目组完成了新商品交易平台的系统架构设计方案。新系统架构图如图5-1所示。请从选项(a) - (j) 中为架构图中(1) - (8) 处空白选择相应的内容,补充支持高并发的Web应用系统架构设计图。

(a) Web应用层
(b) 界面层
(c) 负载均衡层
(d) CDN 内容分发
(e) 主数据库
(f) 缓存服务器集群
(g) 从数据库
(h) 写操作
(i) 读操作
(j) 文件服务器集群
 
问题:5.3   (4 分)
根据李工的提议,新的B2C商品交易平台引入了主从复制机制。请针对B2C商品交易平台的特点,简要叙述引入该机制的好处。
 
 
 

   知识点讲解    
   · 电子商务    · 负载均衡    · 分布式文件系统    · 架构设计    · 数据库    · 文件系统    · 系统架构    · 业务需求    · 应用服务
 
       电子商务
        电子商务是指买卖双方利用现代开放的Internet网络,按照一定的标准所进行的各类商业活动,主要包括网上购物、企业之间的网上交易和在线电子支付等新型的商业运营模式。狭义的电子商务是指利用Web提供的通信手段在网上买卖产品或提供服务;广义的电子商务除了以上内容外,还包括企业内部的商务活动,如生产、管理、财务等,以及企业间的商务活动,即把买家、卖家、厂家和合作伙伴通过Internet、Intranet和Extranet连接起来所开展的业务。
        电子商务分3个方面,即电子商情广告、电子选购和交易,电子交易凭证的交换、电子支付与结算,以及网上售后服务等。参与电子商务的实体有4类:顾客(个人消费者或集团购买)、商户(包括销售商、制造商和储运商)、银行(包括发卡行和收单行)及认证中心。电子商务主要有3种模式:
        (1)B2B(Business To Business,企业对企业)是指企业与企业之间通过互联网进行产品、服务及信息的交换。B2B电子商务模式包括两种基本模式,一种是企业之间直接进行的电子商务(如制造商的在线采购和在线供货等),另一种是通过第三方电子商务网站平台进行的商务活动。
        (2)B2C(Business To Customer,企业对个人)是商家对消费者,也就是通常说的商业零售,即直接面向消费者销售产品和服务。最具有代表性的B2C电子商务模式就是网上零售网站。B2C电子商务的模式并不是唯一的,专门依靠网站开展网上零售只是B2C电子商务的一种形式,企业网站也可以开设面向消费者的在线直接销售,这也是B2C电子商务的表现形式。
        (3)C2C(CustomerTo Customer,个人对个人)是消费者对消费者的交易,简单地说就是消费者本身提供服务或产品给消费者,最常见的形态就是个人工作者提供服务给消费者,如保险从业人员、促销人员的在线服务及销售网点或是商品竞标网站。此类网站非企业对消费者,而是由提供服务的消费者与需求服务的消费者私下达成交易的方式。C2C商务平台就是通过为买卖双方提供一个在线交易平台,使卖方可以主动提供商品上网拍卖,而买方可以自行选择商品进行竞价。
 
       负载均衡
        负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无需其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀地分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。
        目前,比较常用的负载均衡技术主要有:
        (1)基于DNS的负载均衡。在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。
        (2)代理服务器负载均衡。使用代理服务器,可以将请求转发给内部的服务器,使用这种加速模式可以提升静态网页的访问速度。然而,也可以考虑这样一种技术,使用代理服务器将请求均匀转发给多台服务器,从而达到负载均衡的目的。
        (3)地址转换网关负载均衡。支持负载均衡的地址转换网关,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。
        (4)协议内部支持负载均衡。有的协议内部支持与负载均衡相关的功能,例如HTTP协议中的重定向能力等。
        (5)NAT(Network Address Translation,网络地址转换)负载均衡。NAT是将一个IP地址转换为另一个IP地址,一般用于未经注册的内部地址与合法的、已获注册的IP地址间进行转换。适用于解决IP地址紧张、不想让网络外部知道内部网络结构等的场合下。
        (6)反向代理负载均衡。普通代理方式是代理内部网络用户访问Internet上服务器的连接请求,客户端必须指定代理服务器,并将本来要直接发送到Internet上服务器的连接请求发送给代理服务器处理。反向代理方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。反向代理负载均衡技术是把将来自Internet上的连接请求以反向代理的方式动态地转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。
        (7)混合型负载均衡。在有些大型网络,由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或集群起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。这种方式称为混合型负载均衡,这种方式有时也用于单台均衡设备的性能不能满足大量连接请求的情况下。
 
       分布式文件系统
        为了存储和管理云计算中的海量数据,Google提出分布式文件系统GFS(Google File System),Apache Hadoop项目的HDFS实现了GFS的开源版本。
        Google GFS是一个大规模分布式文件存储系统,其设计的特点如下:
        .利用多副本自动复制技术,用软件的可靠性来弥补硬件可靠性的不足。
        .将元数据和用户数据分开,用单点或少量的元数据服务器进行元数据管理,大量的用户数据结点存储分块的用户数据,规模可以达到PB级。
        .面向一次写多次读的数据处理应用,将存储与计算结合在一起,利用分布式文件系统中数据的位置相关性进行高效的并行计算。
        GFS/HDFS非常适于进行以大文件形式存储的海量数据的并行处理。
 
       架构设计
        WebApp描述了使WebApp达到其业务目标的基础结构,典型使用多层架构来构造,包括用户界面或展示层、基于一组业务规则来指导与客户端浏览器进行信息交互的控制器,以及可以包含WebApp的业务规则的内容层或模型层,描述将以什么方式来管理用户交互、操作内部处理任务、实现导航及展示内容。模型-视图-控制器(Model-View-Controller,MVC)结构是WebApp基础结构模型之一,它将WebApp功能及信息内容分离。
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
 
       文件系统
        由于计算机系统处理的信息量越来越大,所以不可能将所有的信息保存到主存中。特别是在多用户系统中,既要保证各用户文件存放的位置不冲突,又要防止任一用户对外存储器(简称外存)空间占而不用;既要保证各用户文件在未经许可的情况下不被窃取和破坏,又要允许在特定的条件下多个用户共享某些文件。因此,需要设立一个公共的信息管理机制来负责统一管理外存和外存上的文件。
        所谓文件管理系统,就是操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构,简称文件系统。文件系统的功能包括按名存取,即用户可以“按名存取”,而不是“按地址存取”;统一的用户接口,在不同设备上提供同样的接口,方便用户操作和编程;并发访问和控制,在多道程序系统中支持对文件的并发访问和控制;安全性控制,在多用户系统中的不同用户对同一文件可有不同的访问权限;优化性能,采用相关技术提高系统对文件的存储效率、检索和读/写性能;差错恢复,能够验证文件的正确性,并具有一定的差错恢复能力。
 
       系统架构
               客户机/服务器系统
               C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到客户机端和服务器端来实现,降低了系统的通信开销。目前大多数应用软件系统都是客户机/服务器形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和客户机/服务器应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
               浏览器/服务器系统
               B/S (Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(浏览器)实现,但是主要事务逻辑在服务器端(服务器)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握,成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(如LAN,WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
               多层分布式系统(Multi-tier System)
               (1)概念。
               随着中间件与Web技术的发展,三层或多层分布式应用体系越来越流行。在多层体系中,各层次按照以下方式进行划分,实现明确分工:
               ①瘦客户:提供简洁的人机交互界面,完成数据的输入/输出。
               ②业务服务:完成业务逻辑,实现客户与数据库对话的桥梁。同时,在这一层中,还应实现分布式管理、负载均衡、Fail/Recover、安全隔离等。
               ③数据服务:提供数据的存储服务。一般就是数据库系统。
               (2)多层系统主要特点。
               多层系统主要特点是:
               .安全性。中间层隔离了客户直接对数据服务器的访问,保护了数据库的安全。
               .稳定性。对于要求24×7工作的业务系统,多层分布式体系提供了更可靠的稳定性。一是中间层缓冲Client与数据库的实际连接,使数据库的实际连接数量远小于Client应用数量。当然,连接数越少,数据库系统就越稳定。二是Fail/Recover机制能够在一台服务器宕机的情况下,透明地把客户端工作转移到其他具有同样业务功能的服务上。
               .易维护。由于业务逻辑在中间服务器,当业务规则变化后,客户端程序基本不做改动。
               .快速响应。通过负载均衡以及中间层缓存数据能力,可以提高对客户端的响应速度。
               .系统扩展灵活。基于多层分布体系,当业务增大时,可以在中间层部署更多的应用服务器,提高对客户端的响应,而所有变化对客户端透明。
               (3)多层系统举例。
               目前最为流行的两类多层应用架构为Sun的J2EE和Microsoft.Net,下面简单介绍J2EE的多层架构。
               
               J2EE多层应用架构
               (4)客户层。
               客户层用于与企业信息系统的用户进行交互以及显示根据特定商务规则进行计算后的结果。基于J2EE规范的客户端可以是基于Web的,也可以是不基于Web的独立(Stand Alone)应用程序。
               在基于Web的J2EE客户端应用中,用户在客户端启动浏览器后,从Web服务器中下载Web层中的静态HTML页面或由JSP或Servlets动态生成的HTML页面。
               在不基于Web的J2EE客户端应用中,独立的客户端应用程序可以运行在一些基于网络的系统中,例如手持设备或汽车电话等。同样,这些独立的应用也可以运行在客户端的Java Applet中。这种类型的客户端应用程序可以在不经过Web层的情况下直接访问部署在EJB容器(EJB Container)中的EJB组件。
               (5) Web层。
               J2EE规范定义的Web层由JSP页面、基于Web的Java Applets以及用于动态生成HTML页面的Servlets构成。这些基本元素在组装过程中通过打包来创建Web组件。运行在Web层中的Web组件依赖Web容器来支持诸如响应客户请求以及查询EJB组件等功能。
               (6)业务层。
               在基于J2EE规范构建的企业信息系统中,将解决或满足特定业务领域商务规则的代码构建成为业务层中的Enterprise JavaBean (EJB)组件。EJB组件可以完成从客户端应用程序中接收数据、按照商务规则对数据进行处理、将处理结果发送到企业信息系统层进行存储、从存储系统中检索数据以及将数据发送回客户端等功能。
               部署和运行在业务层中的EJB组件依赖于EJB容器来管理诸如事务、生命期、状态转换、多线程及资源存储等。这样由业务层和Web层构成了多层分布式应用体系中的中间层。
               (7)企业信息系统层。
               在企业应用系统的逻辑层划分中,企业信息系统层通常包括企业资源规划(ERP)系统、大型机事务处理(Mainframe Transaction Processing)系统、关系数据库系统(RDMS)及其他在构建J2EE分布式应用系统时已有的企业信息管理软件。
 
       业务需求
        网络系统是为一个集体提供服务的,对于该集体内的不同用户,需要收集特定的业务信息,包括以下内容。
        (1)确定结构组织。业务需求的第一步就是获取组织结构图,了解集体中的岗位设置及岗位职责。
        (2)确定关键时间点。对于大型项目,必须制订严格的项目实施计划,确定各个阶段关键的时间点。
        (3)确定网络投资规模。在整个网络的设计和实施中,费用是一个主要考虑的因素。
        (4)确定业务活动。主要通过对业务的分析,形成各类业务的网络需求,主要包括最大用户数、并发用户数、峰值带宽和正常带宽等。
        (5)预测增长率。通过对网络发展趋势的分析,明确网络的伸缩性需求。
        (6)确定网络的可靠性和可用性。网络设计人员在进行需求分析的过程中,首先应获取行业的网络可靠性和可用性标准,并根据标准与用户进行交流,确定特殊的要求。
        (7)确定Web站点和Internet连接。
        (8)确定网络的安全性。
        (9)确定远程接入方式。
 
       应用服务
        电子商务应用是企业利用电子手段展开商务活动的核心,也是电子商务系统组成的核心部分,是通过应用程序来实现的。事实上,企业商务服务的业务逻辑规划是否合理,直接影响到电子商务系统的功能。
   题号导航      2017年下半年 系统架构设计师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
 
第5题    在手机中做本题