1、2004年上半年软件水平考试(高级)系统分析师下午(案例分析)试题真题试卷及答案与解析 1 阅读以下关于应用服务器的叙述,回答问题 1、问题 2和问题 3。 应用服务器在基于 Web的数据库应用系统中已经得到了广泛的应用。如今,各大主要软件厂商纷纷将应用服务器作为其电子商务平台的基础。由于应用服务器本身是一个正在不断发展的概念,不同的产品之间有很大的差别,但是其核心结构以及需要解决的主要问题都是相近的,区别仅在于各个产品解决的具体方法不同。下面是应用服务器共同需要解决的部分问题。 (1)负载均衡:应 用服务器实现负载均衡的方法很多,比如在应用服务器本身的实现上,有基于进程的方式和基于线程的方式
2、。 (2)数据库连接池:在应用服务器系统中,一般都会采用数据库连接池的技术。 (3)高速缓存机制:为了提高性能,许多应用服务器都采用了高速缓存机制。 1 试用 150宇以内文字,说明什么是数据库连接池技术 ?在应用服务器中使用这种技术的优点是什么 ? 2 试用 200自以内文字,叙述在应用服务器中可有哪些高速缓存 ?这些高速缓存是如何改进系统性能的 ? 3 某公司希望实现一个电子商务系统,要求该系统必须 符合工业标准且支持多种操作平台,试选择一种应用服务器产品,并用 200字以内文字简要列举出该类产品能提供的主要的技术支持特征。 4 阅读以下关于软件系统容错设计的叙述,回答问题 1、问题 2和
3、问题 3。 某软件公司为某门户网站开发的大型在线互动式网络游戏推出后,该网站的点击数大幅攀升。但是,该网络游戏每运行一段时间后,偶尔会出现错误而异常终止。分析表明:出错的模块是不确定的,错误不仅与网络游戏本身的代码相关,而且还与链入其中的第三方程序库相关,但是该第三方程序库并无源代码。项目组就此召开了会议。 4 会上,小张认为应当继续分析诊断,只有找出隐藏的软件错误,才能解决问题。小张的建议得到了许多成员的赞同。但是王总工认为,定时主动地重新启动则更为现实和明智。王总工给出了令人信服的理由,最后得到了项目组成员的一致同意。 试用 200字以内文字,简要地叙述王总工否定小张建议的依据。 5 讨论
4、随即转到如何实现定时主动地重新启动。小张又一次率先发言,提出应编写 shell脚本,定时重新启动操作系统和包括网络游戏在内的所有服务。小张的建议又一次被王总工否定。 试用 100字以内文字,简要给出王总工否定小张建 议的依据。 6 最后小张再次发言,指出定时主动地重新启动,比较适合于实现互联网服务软件的容错,王总工对此深表赞同。 试用 200字以内文字,简要说明为什么定时主动地重新启动比较适合于实现互联网服务软件的容错。 7 阅读以下关于数据抽取的叙述,回答问题 1、问题 2和问题 3。 某集团公司管理层为了了解产品的销售情况及客户信息,要求总公司各职能部门提交相关报表,由管理层分析报表后做出
5、决策。集团公司在各地设有分公司,每个分公司都有自己的业务处理系统和相应的业务数据库。 生成报表所需的数据来自各 分公司的业务数据库和某些外部数据源。业务数据库主要用于联机事务处理,外部数据是各职能部门从其他地方 (如商业周刊等 )获得的数据。每个职能部门都使用抽取程序从各分公司的数据库中获得他们所关心的数据。抽取程序的作用就是根据用户给定的搜索条件,搜索指定的数据库或者文件,将满足条件的数据传送到另一个数据库或文件中。不同的部门可以根据自己的需求来选取数据,例如,一个部门抽取的数据是累计购买超过 10万元的客户信息,而另一个部门则选取购买产品的种类超过 10种的客户信息。职能部门将抽取的结果与
6、一些外部数据相结合,生成所需报表 。在抽取数据的过程中,一个职能部门也可以从另外一个职能部门抽取的结果中进行第二次抽取。 7 试用 200字以内文字,简要说明使用这类抽取程序的主要优点 ? 8 该公司采用的这种数据抽取方式存在着数据可信性问题,例如, 2个职能部门向管理层提交报表,一个部门认为公司业绩下降了 5%,另一个部门认为公司业绩上升了 20%。试用 300字以内文字,简要说明造成数据可信性问题的可能原因。 9 由于公司业务的扩展,管理层需要更多类型的报表以支持决策,公司决定建立数据仓库来支持决策支持系统。试用 300字以内文字,简要论 述数据仓库的基本特征。 10 阅读以下关于系统间交
7、互的叙述,回答问题 1和问题 2。 某软件公司拟开发一套基于局域网的分布式系统,该系统由分布于某企业各部门的多个子系统构成。在该企业的日常运做中,各子系统之间要经常基于企业局域网进行交互。 实现各子系统之间的交互可以采用如下 2种方式; (1)基于某种成熟的分布式软件体系结构 (如 EJB, CORBA, DCOM/COM+)来构建整个系统。现在主流的分布式软件体系结构都融合了面向对象技术,对分布式对象提供了很好的支持,可以利用这些体系结构支持分布式 对象访问的通信机制 (如RMI/IIOP, ORB, ORPC等 )来实现各子系统之间的交互,其优点是实现相对简单且比较可靠。 (2)首先分别实
8、现各个子系统,然后利用底层通信协议 (如 TCP/IP)实现各子系统之间的交互,其优点是通信效率高且可控性好。 10 虽然不同的分布式软件体系结构采用的具体实现方式不尽相同,但它们都支持客户端透明地访问分布式对象,即客户端可以像访问本地对象一样访问分布式对象。试用 200字以内文字,说明实现这种透明性的基本原理。 11 由于应用的具体需求千差万别,再好的分布式软 件体系结构也不可能适应所有的应用系统,有时不得不放弃现有的分布式软件体系结构的支持,自己利用底层的通信协议来实现各子系统之间的交互。试用 200自以内文字,简要说明用底层通信协议实现各子系统之间的交互时要解决的主要问题。 12 阅读以
9、下关于软件开发过程方面的叙述,回答问题 1至问题 3。 某公司要在现场开发一个网站应用系统,该系统的特点是规模不大;工期短;用户需求不明确;没有大的技术风险;系统中的一些模块可以外包给其他的公司开发,在选择开发过程时,项目组内产生了分歧。 王工提出采用 XP(extreme programming,极限编程 ),理由是 XP方法简洁,能减轻开发人员的负担、快速适应市场、缩短投资回收期。 李工认为采用 XP在项目开发中存在一些问题,建议考虑原型开发方法。 双方就上述的问题展开了激烈的争论。项目组最后决定采用 XP,但同时针对李工提出的 XP中存在的问题采取了相应的措施。 12 小规模分布 (sm
10、all release)是 XP的基本元素之一。试用 200字以内文字分别说明: (1)原型系统和 XP小规模发布的系统的主要差别是什么 ? (2)为什么该项目组没有采用原型 开发方法 ? 13 试用 200字以内文字,简要说明采用 XP方法可能会存在哪些问题。 14 在项目组的后续讨论中,李工提出,如果项目规模扩大, XP将不再适用。王工对此表示赞同,但同时提出可以将 XP方和和传统软件开发过程相结合。试用 200字以内文字,简要说明如何将 XP方法和传统软件开发过程相结合。 2004年上半年软件水平考试(高级)系统分析师下午(案例分析)试题真题试卷答案与解析 1 【正确答案】 数据库连接池
11、技术是指在系统初期或者初次使用时,完成数据库的连接,以后不再释放此连接,在处理后面的请求 时,反复使用这些已经建立的连接。这种方式可以大大减少数据库的处理时间,有利于提高系统的整体性能、可测量性和扩展性。 【试题解析】 应用服务器 (application server)是在当今因特网上企业级应用迅速发展,电子商务应用出现并将快速膨胀的需求下产生的一种新技术,通过它能将一个企业的商务活动安全、有效地实施到因特网上,实现电子商务。它并非一种传统意义上的软件,而是一个可以提供通过因特网来实施电子商务的平台,所以又被称为 “因特网上的操作系统 ”。 通常可以把应用服务器看作一种组件服务器,它为三 层
12、结构的中间层提供服务。例如,在应用服务器中运行中间层的商业逻辑组件、开发者使用应用服务器提供的中间件来简化开发过程,同时大多数应用服务器还提供了内容管理、负载均衡、容错、连接池、对象持久性等功能。 第一步:总结问题的要点 本题主要考查应试者对应用服务器中应用的数据库连接池、高速缓存 2个较关键技术的理解,并要求能够了解各种常见的应用服务器产品,正确地根据应用的需求进行选型。事实上,在近年的系统分析员考试中,应用服务器相关的题目经常出现,值得考生重视。 要求解释数据库连接池技术,并说明其优点 。 2 【正确答案】 在应用服务器中有页面的缓存和数据库的缓存。 页面的缓存是指将特定的 URL对应的页
13、面在缓存中予以记录,以便在未来再次访问同一个 URL时,直接使用。这里的缓存可以达到最佳的缓存性能,任何后面的操作都不需要进行,只需将缓存读出,然后输出即可。 数据库的缓存是指系统对数据库的访问结果进行缓存,这样相同的 SQL再次去访问数据库时,就不需要进行真正的数据库操作,而只需读取缓存即可。 要求列举应用服务器中可采用的高速缓存机制,并说明其如何改进系统性能。 3 【正确答案】 可以选择 J2EE应用服务器 (例如, Weblogic, Webshpere等 ),提供的支持有支持多种操作系统,如 Windows, UNIX, Linux等;同时是工业标准。 数据库操作支持: JDBC数据源
14、,通过缓冲数据库连接,提供高效、可靠的数据库操作。 安全性控制: J2EE提供声明性安全控制,用户在部署描述符中通过声明的方式来控制应用系统的安全性 (例如,可以控制如何进行身份认证,控制哪些角色可以访问哪些资源或执行哪些操作等 )。 事务控制: JZEE应用服务器支持将事务控制交给容器自动管理,或者利用 JTA在 代码中自己控制事务。 与其他系统交互:基于 JCA或者 JMS,另外可以直接访问 CORBA组件。 要求根据需求选择应用服务器产品,并说明该产品的主要技术特征。 需求的关键点在于:实现电子商务系统,符合工业标准,支持多种操作平台。 第二步:根据问题要点,仔细阅读全文,找出相应的段落
15、 (1)在题目第一段中提到:不同的应用服务器产品之间存在较大差别,但其核心结构和要解决的主要问题相近,区别只是在于解决的具体方法不同。这说明在本题的解答过程中应该主要考虑共性的东西。 (2)与问题 1直接有关的仅仅是:在 应用服务器中,一般都会采用数据库连接池技术。这显然对题目的回答没有太大的帮助。 (3)与问题 2直接有关的仅仅是:为了提高性能,许多应用服务器都采用了高速缓存机制。可以得知要从提高性能的角度来考虑。 第三步:分析试题的内容,构思答案要点 本题中,题目中提供的信息相对较简单,对答案的构思不能起到很大的帮助作用,因此关键在于应试者对应用服务器基础知识的掌握程度。 【试题解析】 使
16、用应用服务器环境的一个重要原因就是为了最小化数据库连接,并且尽力减少在数据库服务器上的加载次数。在传统的两层环境中,每个用 户至少要建立一个到其他各个数据库的连接。这种通过 DriverManager(例如, ODBC和 JDBC等 )基本实现 DataSource连接 (例如, ADO等 )的方法,一个数据库连接对象均对应一个物理数据库连接。一方面,会造成连接数的数量猛增,并很快用光数据库服务器的资源;另一方面,数据库连接的建立 (通常需要 1 3秒,包括服务器通信和认证所花费的时间 )以及关闭是耗费系统资源的操作,这种耗费资源的动作对系统的性能影响尤为明显。 当引入了应用服务器之后,管理数
17、据库连接的责任就落在了应用服务器。如果应用服务器为每个客 户端的数据访问建立一个数据库连接,那么问题仍然不能够得以解决。其示意图如图 6-1所示。 对于具有高数据访问量的应用来说,一个更好的策略就是管理一个连接池。启动时,可以创建一个预定编号的连接,并以矢量或阵列的形式进行存储。在调用表对象的方法之前,得到下一个连接对象的请求;然后把这个连接连同这个数据请求一起传递给表格。随着每个顺序请求的加入,这个连接不断地循环,并自动平衡连接中的加载。一旦连接对象失败,就会放弃这个循环,并在一定程度上自动恢复。其示意图如图 6-2所示。 通俗地说,就是将每次创建的数据库连接放 在一个 “池 ”里,并且在连
18、接使用完成时并不急于关闭这个连接。当应用程序需要调用一个数据库连接时,数据库相关的接口通过返回一个重用数据库连接 (就是那些已使用完,但未关闭的、空闲的数据库连接 )来代替重新创建一个数据库连接,只在没有可用的数据库连接时,才重新创建一个。通过这种方式,应用程序可以减少对数据库连接的操作,尤其在多层环境中,多个客户端可以通过共享少量的物理数据库连接来满足系统需求。 使用数据库连接池技术之后,由于可以有效地减少数据库连接的建立和关闭操作,从而能够节省大量的系统消耗,明显地提升系统的性能。另 外,由于使用了数据库连接后,应用系统所需的数据库连接在一段时间后就会稳定在一定的数量范围之内,从而也提高了
19、系统的可测量性。 应试者可从上面的叙述中提取所需的答案。 问题 2 为了达到最佳的性能,许多应用服务器都采用了高速缓存机制。在应用服务器中使用高速缓存一般包括 3个地方,即页面的缓存、数据库的缓存、动态页面的缓存。 页面的缓存是指将特定的 URL对应的页面在缓存中予以记录,以便在未来再次访问同一个URL时,直接使用。这里的缓存可以达到最佳的缓存性能,任何后面的操作都不需要进行了,只需将缓存读出,然后输出即 可。 但是,由于大多数 URL对应的页面中,往往都有少量需要变动的信息,这些页面不能使用这种方法进行缓存。数据库的缓存是指系统对数据库的访问结果进行缓存,这样相同的 SQL再次访问数据库时,
20、就不需要进行真正的数据库操作,而只需读取缓存即可。这种缓存能够达到良好效果的前提是系统的主要开销在于数据库访问。由于系统依然需要进行有关页面生成等工作,所以缓存效果不如页面缓存,但是适用面比较广。 为了能够进一步减少页面生成工作,现在许多应用服务器对针对各种动态网页技术和组件技术提供了相应的高速缓存机制,也就是将页面的生成结 果进行缓存,当处理以后的页面请求时,可以直接使用缓存结果,从而进一步减少开销,提高访问性能。但是这种技术也有很多局限性,当用户访问的信息集不同时,缓存里的信息并不能够被利用,还是需要另外生成。 应试者可从上面的叙述中提取所需的答案。 问题 3 应用服务器被誉为 “因特网上
21、的操作系统 ”,其在信息技术中的重要程度不言而喻,因此众多 IT列强都纷纷投入重金开发自己的应用服务器产品,甚至开源组织也不例外,各种有竞争力的应用服务器产品层出不穷。另一方面,应用服务器在基于因特网的企业应用中,起着十分重要的作用。因此,作为 系统分析员来说,了解各种主流的应用服务器产品,并根据实际需要正确地选择是十分重要的。 现在应用较多的主流应用服务器产品包括如下种类。 (1)BEA WebLogic BEA WebLogic产品系列包括 Enterprise, Server, Express3个等级。 BEA WebLogic Enterprise是高可伸缩、高可用、支持企业 Java
22、标准和 CORBA,且具有主机互操作性的企业应用服务器,是运行关键任务 Web应用的扩展型WebLogic组件中间件系列的旗舰产品。 BEA WebLogic Enterprise能够帮助大型企业将 Web和 Java应用与现有台式机应用、企业数据和原有系统集成起来。 BEA WebLogic Server是 BEA Web应用服务器的旗舰产品,为用户提供了一个可伸缩、满足企业 Java标准的应用服务器。 BEA WebLogic Server通过支持建立在网络上互联的 Java应用程序而对 BEA WebLogic Express进行扩展。 BEA WebLogic Server是第一个提供
23、 EJB组件、 Java消息传递和事件服务、微软 COM集成以及零管理客户机的 Web应用服务器。 BEA WebLogic Express为用户提供了一个入门级 Web应用服务器。使用 BEA WebLogic Express能够生成动态 Web页面并放入数据库查询结果。 Web表示逻辑由企业 Java Servlets以及 Java ServerPages定义,关系型数据则通过 BEA的 Java数据库连接 (JDBC)解决方案实现。 BEA WebLogic Express支持 HTML和 Java客户机。 (2)IBM Websphere Application Server IBM
24、WehSphere Application Server是一个完善的、开放的Web应用服务器。它强调其在应用开发 (WebSphereStudio和 VisualAgeforJava)、数据库 (DB2)和消息服务 (MQseries)的集成性,是 IBM电子商务应用架构的核心。 WebSphere应用服务器严格地遵循普遍流行的开放标准,如 HTTP,HTML, JSP, JNDI和 IIOP。 WebSphere应用服务器基于 Java Servlet引擎,将通常的 Web服务器 (如 Apache Server, Microsoft IIS, Netsaepe Enterprise Ser
25、ver和 Lotus Domino Go WebServer)增强为基于 Java的 Web应用服务器。作为 IBM电子商务应用架构的核心, WebSphere应用服务器提供了无限的扩展性,允许用户利用 IBM或其他厂商提供的 Java技术扩展其运行环境。 WebSphere应用服务器满足维护一个 Web站点的任何需求:简单安装、图形用户界面 (方便 Servlet管理 )、基于 Web的远程管理和安全特性。它支持标准的 Java Servlet (包括 Java Server Page scripts),并增强其服 务,例如,会话状态、用户描述文件、通过连接管理器 (连接缓冲区 )实现高性能
26、的数据库访问。利用 IBM Connector系列,实现与后台系统 (CICS, IMS, MQSeries)的连接。 WebSphere应用服务器支持 EJB编程模型及 CORBA。联合 Enterprise Java Server(EJS)和一个 Java Object Request Broker(ORB),可以通过 IIOP访问分布的对象,利用这个标准的、广泛的编程模型,可在 Web应用中实现对各种商业对象的访问和运行服务。 (3)Microsoft Transaction Server Microsoft组件对象模型 (COM)技术,简化以服务器为中心的应用程序的开发和配置。 MTS
27、 2.0是在 Windows NT上构建和配置基于 COM的应用程序的最简便的方法。 MTS完全分成三层结构,从表示层到应用逻辑,这使MTS开发人员在构造他们的应用程序时,就像收集一组单用户 COM组件,然后在相应的层设置这些组件一样。 MTS 2.0提供全面的组件功能,如自动事务支持、简单但强大的基于角色的安全性、访问各种数据库及消息队列产品等。 IIS(Microsoft Internet Information Server)与 MTS 2.0集成,使用 MTS进行许多运行时刻服务,如事务管理等。事务支持使 IIS Active Server Pages能够在数据完整性的完全保护下访问数
28、据库、主机应用程序和消息队列。 MTS集成还给 IIS提供进程来防止单个故障影响 Web站点的其他部分,增强的运行时刻服务如线程和连接池提高了性能,并简化了组件管理。 MTS 2.0与 MSMQ(Microsoft Message Queue Server)的集成使基于 MTS的应用程序能够以可靠、松散耦合的方 式通信。MSMQ操作 (如发送和接收 )自动得益于 MTS事务以保护数据完整。 MTS 2.0与Microsoft SNA Server 4.0的集成有助于主机应用程序的构建及相应的事务管理。 (4)iPlanet Application Server 作为 Sun与 Netscape
29、联盟产物的 iPlanet公司生产的iPlanetApplicationServer 6.0版满足最新 J2EE规范的要求,并通过了全套 J2EE证书测试套件的测试。 iPlanet Application Server的基本核心服务包括事务监 控器、多负载平衡选项、对集群和故障转移全面的支持、集成的 XML解析器和可扩展格式底稿语言转换 (XLST)引擎以及对国际化的全面支持。包括 Directory Server、 Web Server和用于 Enterprise Application Integration的另一些附件在内的其他 iPlanet产品之间实现了紧密的集成。 (5)Orac
30、le Internet Application Server 8i Oracle应用服务器提供了一个开放的标准架构,是开发部署 Web上的应用的理想平台。它的伸缩性、分布架 构和高度数据库集成是支持关键事务,交易型应用的基础,通过采用 Netscape和 Microsoft HTTP服务器,提供了易于使用的界面,并为 Oracle方案提供了简易的升级方法。 以符合 CORBA 2.0标准的 ORB为基础, Oracle Application Server将应用程序插件 (Application Cartridge)与所有系统服务作为分布对象。这样的设计使应用处理能被分散于数部主机,有效而经济
31、地解决性能瓶颈。与其他 Web解决方案比较起来, Oracle Application Server架 构本身即保证其可扩展性。 以对所有网络客户端提供跨平台支持为基础, Oracle Application Server增强对 HTML, Java, CORBA, DCOM等各种组件模型提供的易于扩展的能力。 (6)SilverStream SilverStream是一个全面的集成产品。它既包含了高性能的应用服务器,又包含了高效的开发环境。在统一的界面中,既支持 HTML开发,又支持 Java开发;既支持一般数据,又支持多媒体数据。特别是许多服务器基于对 Web的扩充,而 SilverStr
32、eam则基于对标准的完整集成。它使用 HTTP 1.1进行客户通信, SMTP/POP3进行邮件操作, JNDI/LDAP和X.509进行认证, SSL 3.0进行加密, SNMP进行系统管理, CORBA, RMI和COM和远程对象通信, JDBC/ODBC用于数据存取。 SilverStream可连接的数据源非常广泛,不管是存储在关系数据库中,还是存储在 IBM主机中,不管是自己开发的系统,还是 SAP, Notes, CICS, Peopsoft开发的系统,都可以统一在SilverStream中。 (7)Borland AppServer Borland AppServer支持最新的 J
33、avaTM 2平台企业版 (J2EETM)和企业 JavaBeans TM(EJBTM),提供广泛的可升级性、高性能和高可靠性,从而满足了当今网络经济发展的需要。 Borland AppServer是在世界上部署范围最广的 CORBA架构上创建的,对于想建立和部署能处理大量网上交易的电子商务应用程序的顾客来说, CORBA架构是非常合适的。 Borland AppServer拥有先进的群集、装载平衡和强大的故障排除能力,还完全整合了前端开发工具 (包括无线和网络应用程序 )和后端系统。 (8)开源应用服务器 开源世界中,也不泛优秀的应用服务器产品,包括 JBoss, Resin, JRun等,
34、它们的共同特点都是跨平台、基于 J2EE体系结构。它低廉的价格给人以极大的诱惑,现在也被许多中小企业应用采用,但它们最大的不足在于技术支持有限,只能够通过论坛、社区等非正式的方式来获取技术支持。但它们也以较高的稳定性、较快的升级速度赢得了开发人员的喜爱。 题目要求选择一种应用服务器产品,符合工业标准,支持多种操作平台,适合于电子商务应用。要做出正确的选择必须能够对这几个要求有正确的理解。 (1)符合工业标准 :主要指应用服务器中采用的中间件技术符合工业标准,如 J2EE, CORBA, XML等。 (2)支持多种操作系统:即能够在 Windows系列、 UNIX系列等多种操作系统环境中使用,基
35、于 CORBA和 J2EE的都能够满足这个要求。微软的 MTS则只能够运用于 Windows系列操作系统平台,显然无法满足。 (3)适合于电子商务应用:根据电子商务的应用特点,要求应用服务器能够提供诸如事务管理、组建容器等一系列适合分布式应用的技术,另外还应该具有高扩展性、伸缩性的特点,以满足电子商务发展的业务扩展需要。 根据上面的分析, 结合各种主流应用服务器的特色,可知应用服务器产品中符合这些要求的比较多,应试者可以根据自己的熟悉情况来选择。比较适合的选择包括 BEA的 WebLogic, IBM的 Webshpere、 SUN和 Netscape联手的产品iPlanetApplicati
36、onServer等。当然类似于 JBoss这样的应用服务器也是正确的选择。 4 【正确答案】 (1)该网络游戏每运行一段时间才偶尔出现一次这种错误,说明这是一种暂态错误。 (2)错误的定位和排除工作困难、耗时长,不能及时解决问题。 (3)错误涉及无源码的第三方程 序库,即使找到错误也难以排除。 (4)定时主动地重新启动,可以在该暂态错误出现之前,主动地将网络游戏恢复到久经考验的初始状态。 (5)重新启动可以清空一些诸如 session和连接缓冲等临时性内容,提高系统的性能。 【试题解析】 目前,互联网已经成为人们生活的一部分,各种与商业、生活、娱乐、休闲的互联网应用层出不穷,各行各业也都通过因
37、特网来开展业务、提供服务。近几年来,中国的互联网发展也十分迅速,网民的数量已经达到了 7910万之多,对于互联网应用的性能、稳定性、可靠性要求也日益增高。因此,对于因特网应用 服务提供商而言,如何创建、维护一个高稳定性、响应速度快的服务系统已经变成一个很重要的问题。 在这些众多的应用中,网络游戏、视频点播这一类的娱乐休闲服务的受众面最广,而且数据量也较大,性能需求矛盾最尖锐,是这个领域中最重要的课题。 第一步:总结问题的要点 本题的考查要点是应试者对互联网应用服务系统的性能维护方面的知识基础。网络游戏作为最典型的、要求较高的网络应用,这方面的问题暴露得最多,而主动定时重新启动系统是一种很常见的
38、维护策略。题目也体现了系统分析员案例分析试题正在朝着更贴近具体应用的方 向发展,要求应试者有丰富的工作实践经验。 说明 “主动重新启动 ”维护策略的优点和适用性。 5 【正确答案】 由于只有网络游戏出错,没有必要重新启动操作系统和包括网络游戏在内的所有服务,只需要重新启动与出错的网络游戏相关的服务即可;否则重新启动的时间必然很长,会大大降低整个网站的可用性。 说明使用 Shell脚本完成主动重新启动的缺点。 6 【正确答案】 (1)以互联网服务为代表的软件系统,规模庞大、结构复杂,因此准确地找出偶尔出现的暂态错误,在工程上是相当困难的。 (2)以互联网服务为代表的软件系 统,在运行中频繁出现的
39、就是此类暂态错误。 (3)以互联网服务为代表的软件系统,一方面有很高的可用性要求,另一方面也容忍短暂的系统不可用。 说明主动重新启动为什么适合于互联网服务软件的容错。 第二步:根据问题要点,仔细阅读正文,找出相应段落 (1)问题的背景说明: “该网络游戏每运行一段时间后,偶尔会出现错误而异常终止。分析表明,出错的模块是不确定的,错误不仅与网络游戏本身的代码相关,而且还与链入其中的第三方程序库相关,但是该第三方程序库并无源代码。 ”其中没有源代码的第三方程序库是影响维护策略选择的一个重 要因素。 (2)“在会上,小张认为应当继续分析诊断,只有找出隐藏的软件错误,才能解决问题。小张的建议得到了许多
40、成员的赞同。但是王总工认为,定时主动地重新启动则更为现实和明智。 ”这里体现出了一个要点,就是主动地重新启动策略更现实、更明智,因此在答题的时候应该充分从这个角度进行分析。 (3)“应编写 shell脚本,定时重新启动操作系统和包括网络游戏在内的所有服务 ”,详细地说明了 Shell脚本实现重新启动的内容。 第三步:分析试题的内容,构思答案的要点 【试题解析】 提高软件质量和可靠性的技术大致 可分为 2类:一类是避错技术,即在开发的过程中不让差错潜入软件的技术;另一类则是容错技术,即对某些无法避开的错误,使其影响降至最低的技术。避错技术是进行质量管理,实现产品应有质量所必不可少的技术,也就是软
41、件工程中所讨论的先进的软件分析、开发技术和管理技术。但是,无论使用多么高明的避错技术,也无法做到没有错误,这就需要采用容错技术使错误发生时不影响系统的特性。 结合本题的实际情况,要解决 “海运行一段时间后偶尔会出现错误而异常终止 ”这个问题,可以从 2个角度考虑。 (1)采用避错技术:由于系统已经进入了 运行期,因此要找到错误的本质原因,并且修正这些错误。 (2)采用容错技术:也就是将错误影响降到最低。 小张的思路就是从避错这个角度来考虑,但是在实施时遇到了 2个现实性的问题:一是分析错误原因较困难,时间耗费大,无法及时解决这个问题;另一个更为重要的因素是,由于错误涉及没有源代码的第三方程序库
42、,就算找到了问题,要修改这个错误是十分困难的。因此这种角度来解决问题是困难的、不现实的。 另外,重新启动还可以清空一些诸如 session和连接缓冲等临时性内容,提高整个系统的性能。 鉴于以上的考虑 ,王总工否定了小张的建议是不难理解的。 问题 2 不管是 UNIX还是 Windows系列操作系统,都提供了功能强大、实用的 Shell脚本程序功能,许多资深的系统管理员都会运用 Shell脚本来简化日常的系统管理工作。 Shell脚本程序是在 Shell基础上的 (如 Windows的 Command, UNIX的 Bash等 )简单的编程语言,它可以参数化地执行一系列 Shell命令,来完成预
43、先设定的工作。 通过 Shell脚本是可以实现定时重新启动操作系统和包括网络游戏在内的所有服务功能。但是仅由于网络游戏 出错,就要重新启动操作系统和包括网络游戏在内的所有服务,那么重新启动的时间必然很长,会大大降低整个网站的可用性。实际上只需要重新启动与出错的网络游戏相关的服务就可以了。 问题 3 实现软件容错的主要手段就是冗余。冗余是指所有对于实现系统规定功能来说是多余的那部分的资源,包括硬件、软件、信息和时间。通过冗余资源的加入,可以使系统的可靠性得到较大的提高。主要的冗余技术包括结构冗余、信息冗余 (如校验码等 )、时间冗余 (例如,重复执行计算 )、冗余附加 4种。 对于互联网服务软件
44、而言,在设计时也可以采用这些技术来提高可靠性,而且在投入运行之后,还可以采用多台服务器执行多套、实现一些在线的备份。但是由于网络游戏的特殊性,当某台服务器出现故障时,还是会对玩家带来影响。 互联网服务软件还有一个特点,那就是其发展周期较快,通常会大量地应用到第三方的程序库,因此存在这样那样的错误是不可避免的。由于许多故障都是在系统运行时积少成多,最终暴露出来,导致影响系统运行的故障。因此系统运行时间越长,就越容易产生故障,而定时的主动重新启动是十分有效地解决这个问题的办法。同时 ,重新启动可以清空一些诸如 session和连接缓冲等临时性内容,提高系统的性能。 7 【正确答案】 (1)操作简单
45、:它是一个独立的程序,只需指定搜索源和搜索条件即可获得分析数据。 (2)应用灵活:可以自由设定搜索条件,还可以在抽取的结果上再进行抽取,获得各种分析结果。 (3)不影响性能:搜索结果另外处理,不会与联机事务处理发生性能冲突。 【试题解析】 这是一道与决策支持系统 (DSS)相关的题目。决策支持系统的发展经历过了一个漫长而复杂的过程,最早采用主文件和报表的形式,后来随着文件的增多,数据冗余带来 的各种异常问题,因此催生了数据库管理系统 (DBMS),并有效地解决了这些问题。 20世纪 70年代中期,联机事务处理利用终端和合适的软件,从而使技术人员发现更快速地访问数据成为可能。 在大型联机高性能事
46、务处理问世不久,就出现了一种称为抽取处理的程序。如图 6-3所示,抽取程序是所有程序中最简单的程序,它搜索整个文件或数据库,使用某些标准选择合乎限定的数据,并把数据传到其他文件或数据库中。 由于这种自然演化体系结构存在数据可信性、生产率以及数据转化为信息的不可行等问题,因此近年来又出现了以数据仓库为核心的体系结构 设计环境,它进一步促进了决策支持系统的发展。 第一步:总结问题的要点 本题主要考查应试者对数据抽取工具与技术的了解情况,要求能够正确地认识到它的优缺点,存在的问题以及产生的原因,这需要对更加强大的数据仓库技术有基本的了解和掌握。 说明数据抽取程序的主要优点。 8 【正确答案】 (1)
47、数据无时基:决策者基于不同时刻的数据进行抽取,得出不同的抽取结果是正常的。 (2)数据算法差异:决策者根据不同的经验模型,选用了不同的抽取算法,必然导致抽取结果不同。 (3)抽取多层次:决策者通常需在抽取结果的基础上进行多层 次的抽取,从而放大了抽取结果的差异性。 (4)外部数据源差异:在数据抽取时,采用了不同的外部数据源,也会使得数据抽取的结果存在很大的差异。 (5)无起始公共数据源:决策者基于不同的数据源开始抽取,分析的结果也会有差异性。 说明数据抽取结果为什么存在数据可信性问题。 9 【正确答案】 (1)面向主题:数据仓库是面向主题的,而传统联机事务处理环境是面向应用的。 (2)集成:数
48、据仓库是集成的,数据仓库中的数据是从多个不同的数据源传送来的,当数据进入数据仓库时,就需要进行转换、重新格式化、重新排列及汇总等,以得 到具有单一映像的数据。 (3)非易失性:传统联机事务处理环境中的数据一般是按一次一条记录的方式进行的,而且数据一般也是必须更新的,但数据仓库中的数据通常是以批量的方式进行载人与访问的,而且数据仓库中的数据并不进行一般意义上的更新。 (4)时变性:数据仓库中的每个数据单元都只是在某一时间点是准确的,仓库中的记录都包含了时间戳,以说明数据在哪一时间是准确的。 简述数据仓库的基本特征。 第二步:根据问题要点,仔细阅读正文,找出相应段落 (1)抽取程序,它的作用就是根
49、据用户给定的搜索条件,搜索指定的数据库或者 文件,将满足条件的数据传送到另一个数据库或文件中。 (2)“不同的部门可以根据自己的需求来选取数据 ”,这是一个解决数据可信性问题的一个关键线索。 (3)支持多级抽取,在抽取数据的过程中,一个职能部门也可以从另外一个职能部门抽取的结果中进行第二次抽取。 (4)数据仓库技术的应用背景。由于公司业务的扩展,管理层需要更多类型的报表以支持决策,公司决定建立数据仓库来支持决策支持系统。 第三步:分析试题的内容,构思答案的要点 【试题解析】 问题 1 抽取程序是一个简单的程序,它通过搜索整个文件或数据库,使用 某些标准选择合乎限定的数据,并把数据传到其他文件或数据库中。由于以下 2个方面的原因,使得抽取程序很快就变得十分流行起来。 (1)因为用抽取程序能够将数据从高性能联机事务处理方式中转移出来,所以在需要总体分析数据时不与联机事务性能发生冲突。 (2)当用抽取程序将数据从操作型事务处理范围内转移出时,数据的控制方式就发生了转变,最终用户一旦开始控制数据,他就最终 “拥有 ”了这些数据。 从上面的描述中,应试者不难总结出使用数据抽取程序的优点。 问题 2 由于数据抽取可以多级进行,起初只是抽取,随后是抽取之上的抽取, 接着是在此基础上的再次抽取,因此将形成抽取处理的蜘蛛网结构。显然,这种被称为 “自然演化体系结构 ”的