免费智能真题库 > 历年试卷 > 程序员 > 2019年下半年 程序员 上午试卷 综合知识
  第57题      
  知识点:   软件生存周期   并发性   架构设计   系统架构
  关键词:   并发   分布式系统   互联网   系统架构        章/节:   软件工程和项目管理基础知识       

 
高并发是互联网分布式系统架构设计中必须考虑的因素之一。影响并发性能的因素不包括(57)。
 
 
  A.  响应时间
 
  B.  吞吐量
 
  C.  并发用户数
 
  D.  注册用户总数
 
 
 

 
  第56题    2018年下半年  
   53%
云存储系统通过集群应用和分布式存储技术将大量不同类型的存储设备集合起来协调工作,提供企业级数据存储、管理、业务访问、高效..
  第1题    2017年下半年  
   14%
当一个企业的信息系统建成并正式投入运行后,该企业信息系统管理工作的主要任务是( )。
  第54题    2016年下半年  
   27%
为在网上搜索内容而输入关键词时,常可能打错别字。当系统显示没有匹配项后,有些系统还会向你推荐某些关键词。为实现这种推荐,..
   知识点讲解    
   · 软件生存周期    · 并发性    · 架构设计    · 系统架构
 
       软件生存周期
        任何一个软件产品或软件系统都要经历软件定义、软件开发、软件维护直至被淘汰这样一个全过程,我们把软件的这一全过程称为软件生存周期。主要包括:可行性分析和项目开发计划、需求分析、软件设计(概要设计和详细设计)、编码、测试和维护6个阶段。
        1)可行性分析和项目开发计划
        可行性分析和项目开发计划阶段主要确定待开发软件的总目标,对其进行问题定义、可行性分析,制订项目开发计划。参加人员:用户、项目负责人、系统分析员。该阶段所产生的文档有可行性分析报告、项目计划书。
        2)需求分析
        需求分析阶段主要确定待开发软件的功能、性能、数据、界面等要求,从而确定系统的逻辑模型。参加人员:用户、项目负责人、系统分析员。该阶段产生的文档有需求规格说明书。
        3)软件设计
        软件设计是软件工程的技术核心。软件设计通常还可分成概要设计和详细设计。概要设计的任务是模块分解,确定软件的结构、模块的功能和模块间的接口,以及全局数据结构的设计。概要设计阶段的参加人员有系统分析员和高级程序员。详细设计的任务是设计每个模块的实现细节和局部数据结构的设计。详细设计阶段的参加人员有高级程序员和程序员。软件设计阶段产生的文档有设计说明书,它也可分为概要设计说明书和详细设计说明书。根据需要还可产生数据说明书和模块开发卷宗。
        4)编码
        编码阶段主要用某种程序语言为每个模块编写程序。参加人员:高级程序员和程序员。产生的文档是源程序清单。
        5)测试
        测试阶段主要是发现软件中的错误,并加以纠正。参加人员:通常由另一部门(或单位)的高级程序员或系统分析员承担。该阶段产生的文档有软件测试计划和软件测试报告。
        6)维护
        软件开发阶段结束后,软件即可交付使用。软件的使用通常要持续几年甚至几十年,在整个使用期间,都可能因为某种原因而修改软件,这便是软件维护。引起修改软件的原因主要有以下3种。
        .在软件运行过程中发现了软件中隐藏的错误而修改软件。
        .为了适应变化了的环境而修改软件。
        .为修改或扩充原有软件的功能而修改软件。
        因此,软件维护的任务就是为使软件适应外界环境的变化、实现功能的扩充和质量的改善而修改软件。软件维护阶段的参加人员是维护人员,该阶段产生的文档有维护计划和维护报告。
 
       并发性
        并发是两个或两个以上的事件在同一时间间隔内发生。对于程序而言,并发也就是多道程序在同一时间间隔内同时执行。对于单处理机系统而言,程序并发执行实际上是多道程序在一个很小的时间段内交替执行。而宏观上看,它们似乎是在同时进行,即并发执行。实现并发性,使操作系统变得复杂。因为要考虑如何从一个程序转到另一个程序,如何保护一个程序不受另一个程序侵扰,以及如何实现相互制约等。单处理机系统中,每一时刻只能执行一道程序,因此微观上这些程序是交替执行的。
 
       架构设计
        WebApp描述了使WebApp达到其业务目标的基础结构,典型使用多层架构来构造,包括用户界面或展示层、基于一组业务规则来指导与客户端浏览器进行信息交互的控制器,以及可以包含WebApp的业务规则的内容层或模型层,描述将以什么方式来管理用户交互、操作内部处理任务、实现导航及展示内容。模型-视图-控制器(Model-View-Controller,MVC)结构是WebApp基础结构模型之一,它将WebApp功能及信息内容分离。
 
       系统架构
               客户机/服务器系统
               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分布式应用系统时已有的企业信息管理软件。
   题号导航      2019年下半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第57题    在手机中做本题