软件水平考试

解析:某大型电子商务企业的主要业务之一是网上书城,其主要功能是通过Inter

来源:网考网软件水平 所有评论

【分析解答题】某大型电子商务企业的主要业务之一是网上书城,其主要功能是通过Internet为用户提供各种图书信息的在线查询、浏览及订购相关图书等多种服务。PH软件公司承接了该大型网上书城系统的升级改造开发任务。该软件公司的领域专家对需求进行深入分析后,得到的部分系统需求如下。
(1)用户可能频繁地进行书目查询操作,网上书城需要返回众多符合条件的书目并且分页显示,而且可能每次查询的内容都不一样。
(2)网站管理员需要批量对相关书目信息进行修改,并且将更新信息记录到数据库。
(3)随着该网上书城知名度的不断提升,每天的业务量非常多,网站的用户访问量越来越大,因此对业务有持续性要求,且要求有限的资源更加合理地规划和使用。
(4)随着该企业业务规模的不断扩展,网上书城并购了多家其他同类的网上书城,需要将后台异构数据库系统进行整合。
该软件公司的系统架构师经过多方的研究和论证,集体提出了采用层次式架构风格设计该大型网上书城系统,包括表现层、业务逻辑层和数据访问层。
数据访问层负责与应用中的各种数据源打交道,并将它们整合起来,为业务逻辑层提供统一的数据服务。请对该大型网上书城的4个需求进行分析,结合你的系统架构经验,将下表中每个需求适合选用的数据访问模式及选择理由填充完整。  表 网上书城数据访问层设计
系统需求 数据访问模式 选择理由 ① (1) (2) ② (3) (4) ③ (5) (6) ④ 专用产品(如WebSphere Information Integration等) (7)
网考网解析:
试题答案:(1)在线访问模式和离线数据模式相结合。 (2)用户的每次书目查询操作需要与后台的数据源进行交互,需要响应的数据量比较大且较为频繁,通过离线数据的缓存来提高查询性能。 (3)离线数据模式或DTO模式。 (4)与数据库交互的次数并不频繁,但每次操作的数据量较大;同时能使本地操作有较好的交互体验。 (5)连接池模式。 (6)这是一个多用户并发访问的需求,使用连接池模式能够处理更多的用户请求。 (7)这是一个整合异构数据源的需求,后台数据系统种类繁多且配置各异,可能需要对各种关系型数据源及非关系型数据源的数据整合。 答案解析:在层次式架构风格中,数据访问层(数据持久层)主要负责和应用中的各种数据源(如DB2或Oracle等关系型数据源、XML数据及其他类型的非关系型数据、Web服务,以及各种特别的遗留系统等)打交道,并将它们整合起来,为业务逻辑层提供统一的数据服务。架构师在不同的应用场合下可能会选择不同的数据访问模式,并且还会不断地推陈出新,这里不会也不可能穷尽所有的数据访问模式,而只是列举了其中最为典型的几个。在线访问模式、Data Access Object模式、Data Transfer Object模式、离线数据模式,以及对象/关系映射(Object/Relation Mapping)模式是数据访问层设计中典型的数据访问模式。各种数据访问模式的说明如下表所示。  表 各种数据访问模式 数据访问模式 说明 在线访问模式 是最基本和最常用的数据访问模式,该数据访问模式会占用一个数据库连接,读取数据, 每个数据库操作都会通过这个连接不断地与后台的数据源进行交互 DAO模式 是标准J2EE设计模式之一,常用这种模式将底层数据访问操作与高层业务逻辑分离开。一 个典型的DAO实现通常具有以下组件:①一个DAO工厂类;②一个DAO接口;③一个实现 了DAO接口的具体类(包含访问特定数据源的数据的逻辑);④数据传输对象(或称为值 对象) DTO模式 是经典EJB设计模式之一。DTO本身是这样一组对象或是数据的容器,它需要跨不同的进程 或是网络的边界来传输数据。这类对象本身应该不包含具体的业务逻辑,并且通常这些对 象内部只能进行一些诸如内部一致性检查和基本验证之类的方法,而且这些方法最好不要 再调用其他的对象行为 离线数据模式 以数据为中心:数据从数据源获取之后,将按照某种预定义的结构(如SDO中的Data图表结 构、ADO.NET中的关系结构)存放在系统中,成为应用的中心;离线:对数据的各种操作 独立于各种与后台数据源之间的连接或是事务;与XML集成:离线数据集所维护的数据可 以方便地与XML格式的文档之间互相转换;独立于数据源:该模式的不同实现定义了数据 各异的存放结构和规则,这些都是独立于具体的某种数据源的 O/R映射 其指导思想来源于这样一种现实:大多数应用中的数据都是依据关系模型存储在关系型数 据库中;很多应用程序中的数据在开发或是运行时则是以对象的形式组织起来的。O/R映 射就提供了这样一种工具或是平台,能够帮助将应用程序中的数据转换成关系型数据库中 的记录;或是将关系数据库中的记录转换成应用程序中的代码便于操作的对象 依题意,在网上书城系统应用中,第1个系统需求是用户根据检索条件查询相关的书目,返回符合条件的书目列表(可能内容非常多,数据量较大),而且可能每次查询的内容都不一样。通常情况下,针对用户书目查询这一业务应用,如果查询返回的数据量并不是很大,同时也不频繁,则可以考虑采用在线访问的模式;如果返回的数据量较大(例如返回众多符合条件的书目并且分页显示)而且较为频繁,则需要考虑在线访问模式和离线数据模式相结合,通过离线数据的缓存来提高查询性能。 第2个系统需求是网站管理员可能需要批量对相关书目信息进行修改,并且需要将更新的信息返回至数据库。此类数据应用的特点表现为:与数据库交互的次数并不频繁,但是每次操作的数据量相对较大;同时,也希望能够使得本地操作有较好的交互体验。针对这种应用情况,往往适合采用离线数据访问的模式,DTO模式也是不错的选择。如果该网上书城应用系统采用的是IBM WebSphere平台,则可以使用SDO技术,或者使用Java中的CachedRowSet技术;如果采用的是基于微软的应用系统平台,则可以采用ADO.NET技术。 第3个系统需求是一个关于“多用户并发访问”的需求,如何让网上书城应用系统能够处理大规模的并发用户访问是一个很复杂的问题,涉及应用的架构、采用的软件、相应的配置和应用程序的调优等方面的问题。对于数据访问层设计,一个常见的方法是使用连接池的模式,以便能够处理更多的用户请求。如果在网上书城应用系统中使用了IBM WebSphere Application Server(或BEA WebLogic、Tomcat等)应用服务器,则这些应用服务器都提供了连接池的机制。 第4个系统需求是一个关于“整合异构数据源”的需求,因为有了新的、不同类型的数据库系统的加入,需要和旧的数据库系统进行整合。后台数据系统种类繁多,配置复杂的情况是随处可见的。可能这个网上书城在刚刚起步的时候只是用了MS SQL Server 2000来作为后台数据源。后来随着业务的增加,又有了新的Oracle(或DB2)系统。除此之外,可能还有很多诸如XML文档等需要和已有的系统集成起来,这些都是令人头痛的问题。在很多实际项目中,经常需要软件开发公司花很大的力气开发一些导入/导出工具来集成此类数据,而现在已经有了专门的产品来完成这些任务。例如,IBM WebSphere Information, Integration等产品就可以用来支持各种关系型数据源及非关系型数据源的数据整合。 document.getElementById("warp").style.display="none"; document.getElementById("content").style.display="block"; 查看试题解析出处>>

相关推荐

发布评论 查看全部评论