【系统分析师之路】2011年系统分析师下午案例分析真题

【系统分析师之路】2011年系统分析师下午案例分析真题

系统分析师下午案例分析真题

    • 【系统分析师之路】2011年系统分析师下午案例分析真题
      • 2011年系统分析师下午案例分析第一题(软件架构)
            • 我的解答
            • 标准答案
            • 心得体会
      • 2011年系统分析师下午案例分析第二题(新技术)
            • 标准答案
      • 2011年系统分析师下午案例分析第三题(需求管理)
            • 我的解答
            • 标准答案
            • 心得体会
      • 2011年系统分析师下午案例分析第四题(数据库新技术)
            • 我的解答
            • 标准答案
            • 心得体会
      • 2011年系统分析师下午案例分析第五题(Web技术)
            • 我的解答
            • 标准答案
            • 心得体会

2011年系统分析师下午案例分析第一题(软件架构)

随着宽带应用快速发展,用户要求系统服务提供商提供基于互联网的多种服务。数字视频监控作为一种区域级的安全监控方式,越来越为更多的用户所使用。数字视频监控告警系统采用与数字视频监控相结合的多媒体技术和基于互联网的信息传递方案,为企业用户以及个人用户提供多种媒体的、不同时间、地点的信息通知服务。数字视频监控告警系统可以将用户需要查看的监控视频或告警信息,通过互联网门户系统以多种媒体方式传送给用户,方便用户随时随地了解与自身相关的视频信息。
【问题1】
在设计数字视频监控告替系统时,张工将该系统划分为5个层次:服务代理层、门户服务层、流程服务总线层、业务流程应用管理层和企业服务层,其中流程服务总线层是整个数字视频监控告瞀系统的核心,实现了服务消息、服务指令与数据的集中传递。系统五个层次在实现时可以采用图1-1左侧所示的技术或工具,请将系统的5个层次填入空(1)〜(5),使其与左侧技术或工具相对应。
【系统分析师之路】2011年系统分析师下午案例分析真题_第1张图片
【问题2】
请用300字以内文字说明服务代理层、门户服务层、业务流程应用管理层和企业服务层的主要功能。
【问题3】
张工认为,系统设计实现时需要重点关注系统的私密性、实时性、稳定性和扩展性,为什么?请用300字以内文字说明。

我的解答
  • 【问题1我的解答】
  1. 门户服务层
  2. 业务流程应用管理层
  3. 流程服务总线层
  4. 服务代理层
  5. 企业服务层
  • 【问题2我的解答】
  1. 门户服务层:将视频监控信息和告警信息通过门户,以多媒体的形式放给用户,让用户了解与自己相关的信息。
  2. 业务流程应用管理层:在业务功能流程的层次上,实现用户是如何操作告警系统监视视频等来实现系统的功能。
  3. 流程服务总线层:系统为了完成监控告警
    的功能,在此层中将所有的服务构件都挂接到这里的总线上,并实现了服务消息、服务指令与数据的集中传递。
  4. 服务代理层:为了能够让企业服务层的服务有统一标准的接口以方便挂接到总线上和相互之间通信,在此层中使用代理模式将服务接口统一话。
  5. 企业服务层:将为了实现数字视频监控告替系统的各个组件构件以服务的形式定义出来。
  • 【问题3我的解答】
  1. 私密性:数字视频监控的内容涉及到隐私,在互联网中传递多媒体信息有可能被篡改和被破坏信息内容的完整性,所以需要重点关注系统的私密性。
  2. 实时性:视频监控涉及到实时的安全性,如果无法实时获取监控视频,系统监控告警的功能将大打折扣;当用户通过门户系统获取服务的时候,总是希望系统能够得到反馈,如果门户长时间不响应,将影响用户的使用。
  3. 稳定性:如果系统可用性不高,经常出现一些大大小小的故障,将会影响稳定性,服务器需要经常重启,纠正性维护量大,很多服务需要重新部署,稳定性差系统必然影响用户的使用。
  4. 扩展性:本系统在实施过程中会有各种维护性的需求:比如改正,适应,预防性,完善性维护等,如果扩展性差,可能会出现系统难以维护,维护期间出现各种问题等现象。
标准答案
  • 【问题1标准答案】
    五个空没有问题。
    解析:空(1)应填“门户服务层”,因为,Web Portal即门户网站。采用Web Portal架构技术形成多种媒体互通的数字视频监控多媒体集成系统,为用户提供多视角、多媒体的综合视频监控方案。
    空(2)应填“业务流程应用管理层”、空(3)应填“流程服务总线层”、空(4)应填“服务代理层”,因为,当新的服务加入到现有系统时,管理人员通过业务流程应用管理层定义业务流程一流程服务总线层一配置服务代理,当配置服务代理(Service Agent)连接成功后,管理人员可以方便快速地将其加入到现有的业务运行环境中。
    显然,空(5)应填“企业服务层”
  • 【问题2标准答案】
    解析:门户服务层:提供信息展现的功能,向各类用户提供个性化的服务。用户可以根据各自的习惯和兴趣,定制门户的页面结构和服务内容。各个展现模块通过下层组件和具 体的服务相关联。
    业务流程应用管理层:提供了系统管理人员定义业务流程、重组优化现有业务流程、模拟测试业务流程等功能,同时提供了各类服务的运行环境。在新的服务加入到现有系统中时,管理人员在配置服务代理(Service Agent)连接成功后,可以方便快速地将其加入到现有的业务运行环境中。
    服务代理层:提供了在流程服务总线上接收或发送各类具体业务服务的消息与指令的功能。各个服务代理将其对应的业务服务发出的指令发布到流程服务总线上,同时接收由流程服务总线上的与自身相关的指令消息,并传递给各类服务执行。
    企业服务层:企业服务层包含了数字视频监控多媒体集成系统中的各类具体的企业应用,如数字视频监控系统服务、网站门户服务、电子邮件警告服务等。各类企业服务为整个系统提供了多种的服务支持,并且对于符合该层次结构的服务也可以方便快速地加入到现有的系统体系中。
  • 【问题3标准答案】
    私密性:由于系统涉及的是各个公司或个人的专有的视频监控信息,所以要求系统保证视频信息的私密性,严格限制访问权限。
    实时性:对于突发的监控告警信息,为了避免进一步的损失,所以要求系统提供很髙的实时性,可以向用户快速提供入侵告警信息或其他告警信息。
    稳定性:系统应该具备长时间不间断运行的能力,并在用户峰值时,也可以提供很好的服务。
    扩展性:作为统一的门户接入平台,系统应该可以连接多种视频系统,并随着技术与用户需求发展,提供更多种的服务方式,所以要求系统具有较高的可扩展性。
心得体会
  • 此题考查系统架构中的分层架构。第一空比较简单是送分题。
  • 第二空应该也没有标准答案,多多少少我也是答对了一些,但需要抓住一些关键字
    门户服务层:信息展现,个性化服务,定制服务
    业务流程应用管理层:定义重组优化业务流程
    服务代理层:总线上接收或发送各类具体业务服务的功能
    企业服务层:各类具体的企业应用
    第二空则直接考查质量属性的知识。
    说到私密性,应该要和安全章节的知识点联系起来,比如我就漏掉了访问控制,限制访问权限。
    实时性就是快速给用户提供需要的信息,提供速度快可以避免进一步损失。
    稳定性:这个应该和计算机系统性能章节的知识点串联起来回答。比如可以说说并发控制,用户峰值的测试。
    扩展性:这个小问我没有回答好,联想到了软件维护的知识。扩展性应该联想到服务的特点,服务可以随时增加,方便有更多的服务可以接入系统,所以可扩展性好坏是十分重要的。
  • 最近几年,这种偏向架构的系分题型越来越少了,而且是作为必答题来解答。但是这种分视角解答的方法和思路还是值得借鉴的。

2011年系统分析师下午案例分析第二题(新技术)

某软件公司开发基于云计算的分布式文档协作平台(DDCP),系统部分需求如下所示: 实现文档的分布式存储,客户端可随时随地上传和下载文档;
支持多客户端并发编辑同一文档,某个客户端所做修改会实时显示在其他客户端:
要求系统具有自我修复机制,当系统中某个节点失效时,无需人工干预能够自动实现节点替换并恢复到一致状态。
项目组经过讨论,决定采用现有的分布式文件系统作为基础架构,但在具体选用哪种设计方案时产生了分歧。王工建议采用Hadoop分布式文件系统HDFS作为系统参考架构,但张工认为Google分布式文件系统GFS更适合该系统需求。最后经过更为详细的分析和讨论,同意了张工的建议,釆用GFS作为分布式文档协作平台的文件系统架构。
【问题1】
请用300字以内的文字说明GFS和HDFS有何异同,并针对系统需求,用200字以内的文字说明选择GFS的原因
【问题2】
针对图2-1所示DDCP基础架构,请分别说明一次数据读操作和一次并发写操作的过程。
【系统分析师之路】2011年系统分析师下午案例分析真题_第2张图片
【问题3】
请分别叙述采用GFS和HDFS架构,单点失效问题是如何解决的。

标准答案
  • 【问题1标准答案】

GFS与HDFS相比的相同点是:单一控制机和多台工作机;通过数据分块和复制实现可靠性和高性能;树状文件系统结构。
GFS与HDFS相比的不同点是:多次写入和多客户端并发增加数据;Master单点失效问题;数据快照的支持;实时性支持。
针对系统需求,文档协作要求多客户端并发写入文件支持;解决主服务器单点失效问题;系统补偿操作需要数据快照。

解析:本问题要求考生针对GFS和HDFS两种分布式文件系统架构的特点展开分析并进行总结。
GFS是一个面向大规模数据密集型应用的、可伸缩的分布式文件系统,虽然运行在多台普通硬件设备上,但是它提供了灾难冗余的能力,为大量客户机提供高性能的服务。一个GFS集群中包含了一个单独的Master节点、多台Chunk服务器,并且同时被多个客户端访问。GFS存储的文件被分割为固定大小的Chunk并分配标识,缺省提供3个存储复制节点,Master节点管理所有的文件系统元数据,GFS客户端代码以库的形式被链接到客户程序里,无论是客户端还是Chunk服务器都不需要缓存文件数据。
HDFS是一个高度容错性的系统,能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS采用Master/Slave架构,一个HDFS集群由一个Namenode和一定数目的Datanodes组成。Namenode是一个中心服务器,负责管理文件系统的命名空间以及客户端对文件的访问,集群中的Datanode —般是一个节点一个,负责管理它所在节点上的存储。一个文件被分成一个或多个数据块,这些块存储在一组Datanode上,Namenode执行文件系统的命名空间操作并确定数据块到具体Datanode节点的映射,Datanode在Namenode的统一调度下负责处理文件系统客户端的读写请求

  • 【问题2标准答案】

读数据过程:
①应用程序将读数据请求发送给DDCP客户端;
②DDCP客户端访问DDCP主服务器请求所需数据位置信息;
③DDCP主服务器查询数据分块和地址信息发送给DDCP客户端;
④DDCP客户端根据地址信息向DDCP块服务器发送读数据请求;
⑤DDCP块服务器将所请求数据发送给DDCP客户端;
⑥DDCP客户端将数据转发给应用程序。
并发写数据过程:
①并发写的应用程序分别将数据和写数据请求发送给DDCP客户端;
②DDCP客户端依次访问DDCP主服务器请求所写数据位置信息;
③DDCP主服务器依次查询数据分块和地址信息发送给DDCP客户端;
④DDCP客户端将所要写入的数据重新组织,将属于同一个DDCP块服务器的数据按照分组报文和分组序列信息发送给DDCP块服务器数据缓存(Primary);
⑤DDCP客户端将所写数据按照分组报文发送给DDCP块服务器数据缓存(Secondary);
⑥DDCP块服务器数据缓存(Primary)按照分组序列将数据写入到DDCP块服务器数据块(Primary);
⑦DDCP块服务器(Primary)将分组序列发送给DDCP块服务器(Secondary);
⑧DDCP块服务器数据缓存(Secondary)按照分组序列将数据写入DDCP块服务器数据块(Secondary);
⑨DDCP块服务器(Secondary)将写入完成信息发送给DDCP块服务器(Primary);
⑩DDCP块服务器数据(Primary)将写数据完成信息发送给DDCP客户端。

解析:本问题要求考生认真分析图中给出的DDCP系统架构,依据图中节点之间的数据传输关系描述数据传输过程。
读数据的过程:应用程序将读数据请求发送给客户端后,客户端访问主服务器请求所需数据位置信息,主服务器查询数据分块和地址信息返回给客户端,客户端根据地址信息向块服务器发送读数据请求,块服务器将所请求数据发送给客户端,客户端将数据转发给应用程序。
写数据的过程:应用程序分别将数据和写数据请求发送给客户端,客户端依次访问主服务器请求所写数据位置信息,主服务器依次查询数据分块和地址信息发送给客户端,客户端将所要写入的数据重新组织,将属于同一个块服务器的数据按照分组报文和分组序列信息发送给块服务器数据缓存(Primary),客户端将所写数据按照分组报文 发送给块服务器数据缓存(Secondary),块服务器数据缓存(Primary)按照分组序列将 数据写入到块服务器数据块(Primary),块服务器(Primary)将分组序列发送给块服务器(Secondary),块服务器数据缓存(Secondary)按照分组序列将数据写入块服务器数据块(Secondary),块服务器(Secondary)将写入完成信息发送给块服务器(Primary), 块服务器数据(Primary)将写数据完成信息发送给客户端。

  • 【问题3标准答案】
    GFS中釆用主从模式备份Master的系统元数据,当主Master失效时,可以通过分布式选举备机接替主Master继续对外提供服务,而由于复制及主备切换本身有一定的复杂性,HDFS Master的持久化数据只写入到本机(可能写入多份存放到Master机器的多个磁盘中防止某个磁盘损害),出现故障时需要人工介入。

解析:本问题要求应试者掌握单点失效问题产生的原因,并能够结合GFS和HDFS架构的特点进行分析,说明所采用的解决方法。

2011年系统分析师下午案例分析第三题(需求管理)

A公司承接了开发机载信息处理系统数据管理软件的任务。该机载信息处理系统数据管理软件在机载设备中的地位十分重要,因此对该软件的安全性和可靠性有很高的要求。尽管对设备供电的稳定性有较充分的考虑及措施,但鉴于该机载信息处理系统中存储的数据至关重要,用户仍提出在任何时候设备断电都不应对数据造成破坏。该机载信息处理系统采用非易失的NandFlash
(按串行方式访问的Flash)作为存储介质,该NandFlash的特点是以页为最小存储管理单位,每一页只有在擦除后才可写入,擦写是有寿命的,假设每页可擦写十万次。NandFlash在使用过程中可能受到其他机载电子设备的干扰而发生一位的跳变,即读出的数据块中可能存在一位是错误的。为了机载软件的安全,在这样的条件下也要保证系统正确运行。
【系统分析师之路】2011年系统分析师下午案例分析真题_第3张图片
【问题1】
A公司指派李工组织进行需求分析,并完成机载信息处理系统数据管理软件需求规格说明。以下4条需求描述摘录自该需求规格说明,请判断这4条描述是否满足软件需求的一般要求,如果不满足,请指出存在的问题,并将答案填写在答题纸中。
(1)软件应能够纠正一位读错误;
(2)软件一般应提供存储介质的均匀擦写功能,以解决因频繁擦写NandFlash的某—固定块而导致该NandFlash过早损害的问题:
(3)NandFlash擦写是有寿命的;
(4)软件对安全性和可靠性有很高的要求。
【问题2】
在开发上述信息处理系统数据管理软件过程中,按照总体设计单位要求,采用开发库、受控库和产品库三库进行软件配置管理,并规定软件产品装机后,该数据管理软件项目在受控库中保存3年。但到发布后第2年时,用户报告了一个bug,经分析,是数据管理软件的一个缺陷。此时,A公司重新调配人员对该数据管理软件进行变更。图3-1是A公司软件变更管理的流程,请从配置管理的角度分析此次变更应开展哪些活动,在图中的(1)到(6)处填写恰当的活动,答案填写在答题纸对应处。
(注:CCB,Change Control Board,变更控制委员会。)

【系统分析师之路】2011年系统分析师下午案例分析真题_第4张图片
【系统分析师之路】2011年系统分析师下午案例分析真题_第5张图片
【问题3】
针对用户提出在任何时候设备断电都不应对数据造成破坏并保证数据系统的完整性的要求,A公司指派王工进行机载信息处理系统数据管理软件设计。王工设计了一种数据完整性保护机制,图3-2是该机制处理流程的示意图。请将表3-1列出的数据完整性保护机制活动索引按照正确的顺序填入图3-2的数据完整性保护机制处理流程中,并将答案写在答题纸的对应栏

我的解答
  • 【问题1我的解答】
    第一空应该和系统可靠性结合起来说明
    第二空应该和Flash寿命结合起来说明。
    第三空插写寿命为多少需要有一个量化的数字才可以,这样才可以归属于系统需求中的非功能需求
    第四空安全性和可靠性有很高的要求,但到底怎么样算高没有说明,和第三空一样,要写明具体的可以量化的数字,以方便性能的评价。
  • 【问题2我的解答】
    1.解决方案论证
    2.确认配置库的完整性
    3.受控库
    4.开发库
    5.测试验收
    6.解决方案评估并通知项目干系人
  • 【问题3我的解答】
    1.写入新的数据
    2.数据块数请求
    3.寻找并分配空闲的数据块
    4.删除并替换数据块
    5.扫描维护数据的一致性
    6.更新事务点
标准答案
  • 【问题1标准答案】
    (1)满足
    (2)不满足。原因:需求描述中不能使用“一般”这样的模糊术语。
    (3)不满足。原因:所提的需求不具体,未量化,不可测试。
    (4)不满足。原因:“很高”术语模糊,此提法不可验证。

解析:
本问题主要考查软件需求规格说明书的书写方式及判断,软件需求说明必须明确、清晰,并以量化的形式指明对应的指标。对于问题中描述:
软件应能够纠正一位读错误;该需求描述清晰明确,符合需求规格说明的书写要求。
(1)软件一般应提供存储介质的均匀擦写功能,以解决因频繁擦写NandFlash的某一固定块而导致该NandFlash过早损害的问题;该说明中出现了 “一般”这样的说法,而(2)在需求描述中不能出现这样的模糊术语。
(3)NandFlash擦写是有寿命的;该描述中所提的需求不具体,未量化,不可测试。
(4)软件对安全性和可靠性有很髙的要求。该描述中“很髙”术语模糊,不可验证。

  • 【问题2标准答案】
    (1)变更影响分析
    (2)确定基线
    (3)受控库
    (4)开发库
    (5)测试/验证
    (6)升级装机软件

解析:本问题主要考查软件变更管理的知识,考生需要根据问题中的管理流程补充其中的空白处,根据题目描述,在题目中的流程中,空白(1)出现在提出解决方案之后,因此应该进行“变更影响分析”;空白(2)出现在通过评审之后,因此应该“确定基线”;空白(3)、(4)的活动应该是“将受控库中的代码导入代码库,准备修改代码”;空白(5) 发生在修改代码后,因此应该进行验证和测试;空白(6)出现在建立基线并导入产品库之后,因此应该进行升级装机软件的工作。

  • 【问题3标准答案】
    (1)f或数据块数请求
    (2)d或寻找并分配空闲的数据块
    (3)c或写入新的数据
    (4)b或更新事务点
    (5)a或扫描维护数据一致性
    (6)e或删除被替换的数据块

解析:本问题主要考查数据完整性保护机制和对应的数据处理流程,根据流程描述,比较合理的过程是:(1)初始化;(2)如果没有掉电,则进行数据块数请求;(3)如果没有掉电,则开始寻找并分配空闲的数据块;(4)如果没有掉电,则开始写入新的数据;(5)如果没有掉电,则更新事物点;(6)如果在(5)后发生掉电,则需要扫描维护数据一致性;(7)上述过程完成后,删除被替换的数据块。因此根据这个处理流程,只需要将合适的动作填入空白处即可

心得体会
  • 关于问题1:SRS在做成的过程当中,需要注意以下一些事项:
    定义的需求是可以量化的,是方便验证的,需求定义的时候不能使用一般,最好等比较含糊的词语。
  • 关于问题2:考查了需求管理(变更管理)的流程。这个小问自我感觉没有什么问题,但是在变更管理中,有事先变更评估,时候变更论证,而此题标准答案中,变成了变更影响分析(与变更评估相比基本正确),升级装机软件(变更论证)。
  • 关于问题3,从结果上看,我对此题还是没有完全掌握的。数据完整性保护机制好像也没有完全支持它的理论。
    先申请数据块,寻找空闲块,写入数据到空闲的块,写入之后马上更新事务,确认一致性,删除被替换的数据块。
    看了答案后体会到的点:写入完了以后立马要更新事务,这个和数据库并发控制的时候设计是类似的,事务多次提交可以防止死锁的。
    更新完确认一致性也是比较好理解的。不管有没有问题,申请的数据块都要删除。主要还是自己阅读理解功底不够。

2011年系统分析师下午案例分析第四题(数据库新技术)

某软件公司欲开发一个社交网络系统,该系统能够接收多个不同种类客户端发送的信息,并将这些信息实时显示在每个客户端的页面上供客户阅读。该系统将为数以百万计的用户服务,因此,要求采用的数据库能够支持大量信息存储,能够满足并发读写要求,并要求随着数据规模的扩大,数据库系统要易于进行扩充。关于数据库架构的设计,王工和张工提出了两种模式:王工提出基于传统的关系型数据库模式,通过向上扩展(Scale-up)以满足数据库的可扩展性要求;李工提出利用新兴的NoSQL数据库模式,通过向外扩展(Scale-out)以满足数据库的可扩展性要求。项目组经过讨论,决定采用李工提出的设计方案。
【问题1】
请指出关系数据库模式和NoSQL模式在并发支持、存储与查询、扩展方式、索引方式和应用领域五个方面各自的特点,结果填入表4-1中(1)〜(10);并针对应用需求,说明项目组选择李工提出的设计方案的原因。
【系统分析师之路】2011年系统分析师下午案例分析真题_第6张图片
【问题2】
与传统的关系型数据库相比,NoSQL数据库所支持的典型数据存储类型有哪些?
【问题3】
在实际应用中,NoSQL数据库存在的问题有哪些?

我的解答
  • 【问题1我的解答】
    并发支持:
    关系型数据库支持并发,通过加锁事务的机制实现,NoSQL在并发性上远远高于关系型数据库,支持海量数据的并发。
    存储和查询:关系型数据库使用SQL语言实现数据库存储查询;
    扩展方式:关系型数据库只支持向上扩展;NoSQL支持向外扩展,支持集群的技术。
    索引方式:
    应用领域:目前通用的信息系统开发,都会使用关系型数据库;在专业领域,比如特殊动态网页显示要求的系统中开始在使用NoSQL技术。
  • 【问题2我的解答】
    图像文档存储
  • 【问题3我的解答】
    完全能够支持NoSQL的数据库产品不多
    能不能熟练掌握该项技术的人目前也不多
    现有关系型数据库想要简单升级到NoSQL几乎不太可能
    关系型数据库和NoSQL无法共存使用
标准答案
  • 【问题1标准答案】
关系数据库模式 NoSQL模式
并发支持 支持并发,但效率低 并发性能高
存储与查询 关系表方式存储,SQL查询 海量数据存储,查询效率高
扩展方式 向上扩展 向外扩展
索引方式 B树,哈希等 键值索引
应用领域 通用领域 特定应用领域

选择李工方案的原因分析:

  1. 社交网络系统对于数据库并发负载要求非常高,对于数量较大的数据库并发写要求,关系型数据库难以满足;
  2. 海量数据的髙效率存储和访问需求,数百万账号信息,关系型数据库查询效率很低;
  3. 可扩展性需求,可以通过增加更多的服务器节点来实现扩展。
  • 解析:本问题要求考生针对关系数据库模式和NoSQL模式的特点进行分析。关系数据库利用加锁机制支持并发操作,执行效率较低,利用关系表的方式存储数据,通过SQL语言和数据库进行交互,主要通过提升硬件配置等向上扩展方式提升性能,B树和哈希是常用的索引结构,其能够广泛应用于多个领域
  • NoSQL作为新兴的数据库模式处理并发的效率较高,支持海量数据存储和查询,利用增加分布存储的数据库节点数目扩展性能,主要以键值方式存储数据,在对于大规模并发数据处理的分布式应用中有更好的表现。根据项目的实际应用需求,所以采用NoSQL模式更为合适。
  • 【问题2标准答案】
  • MySQL数据库支持的数据存储类型有:
  1. 表格/列存储:存储稀疏表格数据,类似于传统的二维表格式存储;
  2. 文档存储:用于存储非结构化或半结构化文件;
  3. 图像存储:利用节点、边和属性的方式存储图片类数据,常被用于存储社交网络服务中;
  4. 键值存储:类似哈希表一样存储简单的键值对,有基于内存和基于磁盘两种实现方式;
  5. 对象和多值存储:对象数据库存储面向对象语言中的对象,多值数据库存储表格型数据,每个单元格中可存储多个值。

解析:本问题要求考生掌握NoSQL数据模式所支持的数据类型。常见的数据类型包括表格/列存储、文档存储、图像存储、键值存储、对象和多值存储等。

  • 【问题3标准答案】
    NoSQL数据库存在的问题是:
  1. 成熟度不够,大量关键特性有待实现;
  2. 开源数据库产品的支持力度有限;
  3. 数据挖掘与商务智能支持不足,现有的产品无法直接使用NoSQL数据库;
  4. NoSQL数据库专家较少,大部分都处于学习阶段。
  • 解析:本问题要求应试者分析NoSQL数据库模式在实际应用中的不足之处。作为一种新兴的数据库模式,其实现的完整性、应用范围和专业知识等与成熟的关系型数据库相比还有一定的差距。
心得体会
  • 索引就是对数据表中的若干字段进行排序的方法,类似于对一本书做目录,可以快速定位数据的具体位置。
    索引的优点可以增加检索到的速度,创建唯一性索引的话,还可以保证数据库关系表中数据的唯一性。
    索引也有相应的缺点,就是需要占用额外的物理空间,对表中的数据进行增删查改时,会耗费额外的时间降低速率。
    NoSQL的索引时是键值索引,让我想到了C++STL中的Map结构。
  • NoSQL存储数据的类型肯定有SQL所没有具备的才可以体现出它的优势来,所以图像,文档的存储很容易可以想到。
    NoSQL存储的数据还可以是二维表,每个单元格可以存储多个值(直接超越了关系数据库中的1对多关系了)
  • 说到NoSQL的缺点和不足,比如专业技术人员不足,产品的支持,技术成熟度不够这些都是可以通用的。
    我在回答的时候也忽略了技术成熟度不足,大量关键特征有待实现这个点。
  • 通过一道案例题,可以看到新技术的考查方式。一般就是先问你概念,应用场景,优点和缺点,新技术的特点等。

2011年系统分析师下午案例分析第五题(Web技术)

某电子商务公司进行机构重组后,业务规模和用户规模不断扩大,现有的在线销售系统已经无法满足公司的发展要求。公司决策层对现有系统的不足进行了认真分析,决定提高现有系统客户端访问速度,增强客户端的动态交互能力,并提高整个系统代码的模块化和重用性,最终完成网上交易系统的改造与升级。在对该系统的升级方案进行设计和讨论时,公司的系统分析师王工提出采用开发浏览器插件的方式提高客户端访问速度并增强访问体验,通过重写服务端代码提高系统的模块化和重用性。另外一位系统分析师李工则提出采用Ajax技术提高客户端性能,采用JavaScript技术进一步增强客户端的动态交互能力,并在服务端采用JavaScript技术提髙系统代码的模块化和重用性。公司的分析师和架构师对这两种思路进行讨论与评估,最终采纳了李工的方法。
【问题1】
请从系统的客户端开发和服务端开发两个方面说明为何没有采用王工提出的方法。
【问题2】
请说明什么是Ajax技术,并从信息表示、动态显示及交互、数据交换和异步数据交换四个功能特点说明Ajax包含的基本技术,对应填入表5-1中的(1)、(2)、(3)、(4)
空白中。
【系统分析师之路】2011年系统分析师下午案例分析真题_第7张图片
【问题3】
在论证服务端实现策略时,李工以“用户身份验证”和“客户请求信息传递与返回”两个应用场景为例说明在服务端采用JavaScript技术的优势。请给出李工可能的论证过程。

我的解答
  • 【问题1我的解答】
  • 采用开发浏览器插件的话,开发完成后所有的客户端浏览器都要安装插件以达到升级的目的,如果需要升级的客户端浏览器较多的话,系统的升级更新将变得十分的不便;
  • 在服务器端重写服务端代码的确可提高系统的模块化和重用性,但是并不能提高访问速度和增强客户端的动态交互的能力。
  • 而系统分析师李工提出的需求恰好可以解决访问速度,动态交互等能力。
  • 【问题2我的解答】
  • Ajax技术是异步的javascript和XML。使用Ajax技术可以在不更新客户端的前提下,改善浏览器端的信息表示、通过局部的数据交换,事先在客户端哪怕不提交表单也可以完成浏览器和Web服务器之间的交互。
  1. 信息表示的基本技术:Html+CSS
  2. 动态显示及交互:httprequest+Javascrpit
  3. 数据交换:XML
  4. 异步数据交换:XML,SOAP
  • 【问题3我的解答】
    用户身份验证:在传统的C/S架构中,用户身份验证需要浏览器端提交表单,数据传到Web服务器端后,再对用户名等进行验证,验证完成后将验证的结果告诉客户端,客户端刷新页面显示结果;而使用Ajax技术后,在不整体提交刷新页面的情况下,通过XML数据实现与服务器的通信,然后在Web服务器端验证用户身份后直接将结果返回回到浏览器表示出来。
    客户请求信息传递与返回:在传统的B/S和C/S架构中,客户请求信息传递给服务器然后进行处理后返回浏览器,同时刷新整个Web页面,不但与浏览器的通信数据增加了,有时候保存在客户端的一些用户输入的表单情报也会随着Web页面的刷新而刷新。
    而使用了Ajax技术以后,只需要局部的数据交换就可以实现信息传递与返回,那么浏览器与Web服务器之间的通信数据将大大减少。对于客户端的浏览器侧,哪怕不用提交表单也可以实现信息传递返回,从而实现很好的交互效果。
标准答案
  • 【问题1标准答案】
  1. 从客户端开发方面来看,由于现有浏览器都定义了符合自身要求、互不兼容的插件开发标准与运行形态,王工提出的“浏览器插件的增强方式”需要针对不同浏览器开发对应的插件,这样存在重复开发的问题且工作量巨大;另一方面,客户端功能增强插件必须下载并安装到浏览器上,对客户端要求较髙且不方便。李工提出的“基于Ajax的客户端增强方式”只要求浏览器支持JavaScript,这一要求目前所有的浏览器都能够直接满足;另一方面,而Ajax技术则基于所有浏览器都支持的标准技术体系,不存在重复开发和互不兼容的问题。
  2. 从服务端开发方面来看,王工提出的“重写服务端代码”的方式虽然可能解决服务端模块化和重用性的要求,但是开发的风险和代价太大,在进行企业应用系统升级时一般不考虑完全重写,特别是服务端代码完全重写的方案。另一方面,李工提出的“在服务端采用JavaScript技术”能够与采用Ajax技术的客户端进行无缝集成,并且能够利用JavaScript与现有系统功能模块的互操作技术,采用JavaScript实现系统现有业务功能模块的动态组合和调用,增强系统功能模块的重用性。
  3. 综合上述两个方面,可以看出应该采用李工的解决方案。
  • 【解析】
    本问题考查Web应用系统升级时的方案选择问题。根据题干描述,系统升级的目的是提髙现有系统客户端访问速度,增强客户端访问体验,并提高整个系统代码的模块化和重用性。因此需要根据问题描述,从客户端开发和服务端开发两个方面,结合三个升级目标进行全面论述。
  1. 从客户端开发方面来看,在线交易系统是一个典型的B/S系统,采用浏览器插件的客户端增强方法与基于Ajax技术的客户端增强方法相比,存在两个明显的缺陷:
    1. 第一,客户端功能增强插件必须下载并安装到浏览器上,对客户端要求较高且不方便;而采用Ajax技术对客户端进行增强时只要求浏览器支持JavaScript,这一要求目前所有的浏览器都能够直接满足
    2. 第二,现有浏览器都定义了符合自身要求、互不兼容的插件开发标准与运行形态,采用浏览器插件的增强方式需要针对不同浏览器开发对应的插件;’ 这样存在重复开发的问题且工作量巨大。而Ajax技术则基于所有浏览器都支持的标准技术体系,不存在重复开发和互不兼容的问题。
  2. 从服务端开发方面来看,王工提出的“重写服务端代码”的方式虽然可能解决服务端模块化和重用性的要求,但是开发的风险和代价太大,在进行企业应用系统升级时一般不考虑完全重写,特别是服务端代码完全重写的方案。另一方面,李工提出的“服务端JavaScript技术”能够与釆用Ajax技术的客户端进行无缝集成,并且能够利用JavaScript与现有系统功能模块的互操作技术,采用JavaScript实现系统现有业务功能模块的动态组合和调用,增强系统功能模块的重用性。综合上述两个方面,可以看出应该采用李工的解决方案。
  • 【问题2标准答案】
    异步JavaScript和XML,是一种创建交互式网页应用的网页开发技术。
    【系统分析师之路】2011年系统分析师下午案例分析真题_第8张图片
    【解析】

  • 主要考查对Ajax技术涵盖的基本技术的理解与掌握。Ajax 全称为 Asynchronous JavaScript and XML (异步JavaScript 和XML),是一种创建交互式网页应用的网页开发技术。

Ajax所包含的基本技术有

  1. 使用XHTML+CSS来表示信息;
  2. 使用JavaScript操作DOM (Document Object Model)进行动态显示及交互;
  3. 使用XML和XSLT进行数据交换及相关操作;
  4. 使用XMLHttpRequest对象与Web服务器进行异步数据交换;
  5. 使用JavaScript将所有的东西绑定在一起。

Ajax技术的优点包括:

  1. 能在不更新整个页面的前提下维护数据。使得Web应用程序更为迅捷地响应用户动作,并避免在网络上发送没有改变过的信息;
  2. 通过将部分计算转移到客户端,减轻了服务器的处理量,增强了用户体验;
  3. Ajax不需要浏览器插件支持,辅助开发工具与开发库较多;

Ajax技术的缺点包括:

  1. 可能破坏浏览器后退按钮的正常行为;
  2. 使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中;
  3. —些手持设备(如手机、PDA等)目前还不能很好地支持Ajax;
  4. 对流媒体的支持没有Flash和Java Applet等技术好。
  • 【问题3标准答案】
  1. 在“用户身份验证”这一应用场景中,需要在客户端与服务端同时对用户的输入进行验证:在客户端,需要判断用户的输入是否满足基本的格式要求,目前通常采用JavaScript代码实现验证功能;在服务端,需要验证用户输入的密码是否与后端数据库中存储的密码匹配。如果在服务端采用JavaScript功能,则可以实现相似或相同代码的重用,提高系统的可维护性。
  2. 在“客户请求信息传递与返回”这一应用场景中,如果客户端与服务端采用不同的技术实现,则当客户端发出的请求数据传递到服务端后,服务端需要进行数据解析与格式转换,之后才能调用业务功能,得到运算结果后还需要将其转换为寧户端需要的数据格式。整个过程需要涉及两次应用层的数据格式解析与转换,效率较如果在服务端采用JavaScript技术,则可以使用JSON等客户端与服务端同时支持的数据格式进行传递,能够降低服务端的复杂度,提高运行效率。
  • 【解析】
    主要考查服务端JavaScript的实际应用和分析。
  1. 在“用户身份验证”这一应用场景中,需要同时在客户端与服务端对用户的输入进行验证:在客户端,’需要判断用户的输入是否满足基本的格式要求,目前通常采用JavaScript代码实现验证功能;在服务端,需要验证用户输入的密码是否与后端数据库中存储的密码匹配。如果采用服务端JavaScript功能,则可以实现相似或相同代码的重用,提高系统的可维护性。
  2. 在“客户请求信息传递与返回”这一应用场景中,如果客户端与服务端采用不同的技术实现,则当客户端发出的请求数据传递到服务端后,服务端需要进行数据解析与格式转换,之后才能调用业务功能,得到运算结果后还需要将其转换为客户端需要的数据格式。整个过程需要涉及两次应用层的数据格式解析与转换,效率较低。如果采用服务端JavaScript技术,可以采用JSON等客户端与服务端同时支持的数据格式进行传递,能够降低服务端的复杂度,提高运行效率。
  3. 服务端JavaScript的主要缺点有:
    1. 缺乏成熟的类库。在数据操作、数据存储等方面能力较弱。
    2. 对标准的支持不够。目前的服务端引擎对CommonJS的支持有待加强。
    3. 开发和执行效率较低。在服务端缺少良好的开发环境和类库支持,执行效率也较为低下。
心得体会
  • XmlHttpRequest是一组API函数集,可被JavaScript、JScript、VBScript以及其它web浏览器内嵌的脚本语言调用,通过HTTP在浏览器和web服务器之间收发XML或其它数据来实现异步通信。该技术不必安装插件,也无需读取整个网页,所以被许多网站使用,以实现快速响应的动态网页应用。大多数使用了XMLHTTP的设计良好的网页,会使用简单的JavaScript函数,将不同浏览器之间调用XMLHTTP的差异性屏蔽,该函数会自动检测浏览器版本并隐藏不同环境的差异。
  • 文档对象模型(Document Object Model,简称DOM),是处理可扩展置标语言的标准编程接口。是一种与平台和语言无关的应用程序接口(API)。DOM是一种基于树的API文档,它要求在处理过程中整个文档都表示在存储器中。DOM分为HTML DOM和XML DOM两种。它们分别定义了访问和操作HTML/XML文档的标准方法,并将对应的文档呈现为带有元素、属性和文本的树结构(节点树)
  • XHTML:可扩展超文本标记语言,是一种置标语言,表现方式与超文本标记语言(HTML)类似,不过语法上更加严格。在XHTML中,所bai有的元素必须正确地嵌套。XHTML可兼容各大浏览器、手机以及PDA。
  • 动态显示及交互经常用到的就是JavaScript和DOM技术,异步数据交换用的就是XMLHttpRequest,普通数据交换使用的是XML。表示可以使用XHTML,这些方面的认知我都做得不够好。
  • 如果开发浏览器前端的插件,那么不同浏览器就需要开发不同的插件了,对客户端的要求变高,且不是很方便。不同浏览器支持这点我没有想到。
  • 服务器端进行重构的话,风险大代价高,在服务端采用JavaScript技术能够与采用Ajax技术的客户端进行无缝集成。
  • 如果在服务端不采用JavaScript技术,那么客户端将数据传输到服务器端以后,需要多一步格式转换功能,同理在服务器端运算结束了以后,也需要进行转换之后才可以传到客户端,可见效率是很低下的,如果采用JavaScript技术,则客户端和服务器端可以使用JSON等格式进行通信了,也降低了服务器的复杂程度。还有客户端加入JavaScript等进行处理了之后,一部分的计算功能便转移到了客户端。
  • AJAX虽然提高了用户体验,但无形中向服务器发送的请求次数增多了,导致服务器压力增大;这也是Ajax技术的缺点和不足之处。

你可能感兴趣的:(java,开发语言,后端)