问答题
[说明]
某大型电子商务企业的主要业务之一是网上书城,其主要功能是通过Internet为用户提供各种图书信息的在线查询、浏览及订购相关图书等多种服务。PH软件公司承接了该大型网上书城系统的升级改造开发任务。该软件公司的领域专家对需求进行深入分析后,得到的部分系统需求如下。
(1)用户可能频繁地进行书目查询操作,网上书城需要返回众多符合条件的书目并且分页显示,而且可能每次查询的内容都不一样。
(2)网站管理员需要批量对相关书目信息进行修改,并且将更新信息记录到数据库。
(3)随着该网上书城知名度的不断提升,每天的业务量非常多,网站的用户访问量越来越大,因此对业务有持续性要求,且要求有限的资源更加合理地规划和使用。
(4)随着该企业业务规模的不断扩展,网上书城并购了多家其他同类的网上书城,需要将后台异构数据库系统进行整合。
该软件公司的系统架构师经过多方的研究和论证,集体提出了采用层次式架构风格设计该大型网上书城系统,包括表现层、业务逻辑层和数据访问层。
问答题
数据访问层负责与应用中的各种数据源打交道,并将它们整合起来,为业务逻辑层提供统一的数据服务。请对该大型网上书城的4个需求进行分析,结合你的系统架构经验,将下表中每个需求适合选用的数据访问模式及选择理由填充完整。
{{B}}表1
网上书城数据访问层设计{{/B}}
|
系统需求 |
数据访问模式 |
选择理由 |
① |
______ |
______ |
② |
______ |
______ |
③ |
______ |
______ |
④ |
专用产品(如WebSphere Information Integration等) |
______ |
【正确答案】(1)在线访问模式和离线数据模式相结合
(2)用户的每次书目查询操作需要与后台的数据源进行交互,需要响应的数据量比较大且较为频繁,通过离线数据的缓存来提高查询性能
(3)离线数据模式或DTO模式
(4)与数据库交互的次数并不频繁,但每次操作的数据量较大;同时能使本地操作有较好的交互体验
(5)连接池模式
(6)这是一个多用户并发访问的需求,使用连接池模式能够处理更多的用户请求
(7)这是一个整合异构数据源的需求,后台数据系统种类繁多且配置各异,可能需要对各种关系型数据源及非关系型数据源的数据整合
【答案解析】[解析] 在层次式架构风格中,数据访问层(数据持久层)主要负责和应用中的各种数据源(如1382或Oracle等关系型数据源、XML数据及其他类型的非关系型数据、Web服务,以及各种特别的遗留系统等)打交道,并将它们整合起来,为业务逻辑层提供统一的数据服务。架构师在不同的应用场合下可能会选择不同的数据访问模式,并且还会不断地推陈出新,这里不会也不可能穷尽所有的数据访问模式,而只是列举了其中最为典型的几个。在线访问模式、Data Access Object模式、Data Transfer Object模式、离线数据模式,以及对象/关系映射(Object/Relation Mapping)模式是数据访问层设计中典型的数据访问模式。各种数据访问模式的说明如表2所示。
{{B}}表2 各种数据访问模式{{/B}}
|
数据访问模式 |
说明 |
在线访问模式 |
是最基本和最常用的数据访问模式,该数据访问模式会占用一个数据库连接,读取数据, 每个数据库操作都会通过这个连接不断地与后台的数据源进行交互 |
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等产品就可以用来支持各种关系型数据源及非关系型数据源的数据整合。
问答题
业务逻辑的千变万化,使信息系统的开发和维护都变得越来越困难,如何构建灵活高度可扩展性的业务层便成为亟待解决的问题。结合你的系统架构经验,请用200字以内的文字说明该网上书城业务逻辑层采用业务容器(Business Container)架构方式的优点。
【正确答案】表示层代码只需将业务参数传递给业务容器,之后就无须业务层多余的干预,所有业务代码均是在业务容器中运行,可以有效地防止业务层代码渗透到表示层,从而实现了业务层相对于表示层的透明化,便于系统功能的开发、代码重用和管理
【答案解析】[解析] 业务逻辑层框架位于系统架构的中间层,是实现系统功能的核心组件。业务逻辑层采用业务容器(Business Container)架构方式,便于系统功能的开发、代码重用和管理。业务层采用业务容器的方式存在于整个系统当中,可以大大降低业务层和相邻各层的耦合。表示层和业务层的交流是通过业务请求来实现的,表示层代码只需要将业务参数传递给业务容器,之后就不需要业务层多余的干预,所有业务代码均是在业务容器中运行。如此一来,可以有效地防止业务层代码渗透到表示层,从而实现了业务层相对于表示层的透明化。
问答题
该网上书城表示层框架的设计,采用基于XML的界面管理技术,实现灵活的界面配置、界面动态生成和界面定制。结合你的系统架构经验,请用350字以内的文字说明基于XML的界面管理技术的基本思想及其主要组成部分的功能。
【正确答案】基本思想:用XML生成配置文件及界面所需的元数据,按不同需求生成界面元素及软件界面,从而实现用户界面描述信息与功能实现代码的分离。
该技术包括界面配置、界面动态生成和界面定制3部分。
界面配置:是对用户界面的静态定义,通过读取配置文件的初始值对界面配置。由界面配置对软件功能进行裁剪、重组和扩充,以实现特殊需求。
界面定制:是对用户界面的动态修改过程,在软件运行过程中,用户可按需求和使用习惯,对界面元素的属性进行修改;软件运行结束,界面定制的结果被保存。
界面动态生成:系统通过DOM API读取XML配置文件的表示层信息,通过数据存取类读取数据库中的数据层信息,运行时由界面元素动态生成界面
【答案解析】[解析] 基于XML的界面管理技术的基本思想是:用XML生成配置文件及界面所需的元数据,按不同需求生成界面元素及软件界面。该技术包括界面配置、界面动态生成和界面定制3部分。
界面配置是对用户界面的静态定义,通过读取配置文件的初始值对界面进行配置。由界面配置对软件功能进行裁剪、重组和扩充,以实现特殊需求。
界面定制是对用户界面的动态修改过程,在软件运行过程中,用户可按需求和使用习惯,对界面元素(如菜单、工具栏、键盘命令)的属性(如文字、图标、大小、位置等)进行修改。软件运行结束,界面定制的结果被保存。
系统通过DOMAPI读取XML配置文件的表示层信息(初始界面大小、位置等),通过自定义的数据存取类读取数据库中的数据层信息,在运行时循环生成界面元素,动态生成界面。界面配置和定制模块在软件运行前后,通过修改相应的配置文件,就可以达到更改界面内容的目标。
基于XML的界面管理技术实现的管理信息系统,实现了用户界面描述信息与功能实现代码的分离,可针对不同用户需求进行界面配置和定制,能适应一定程度内的数据库结构改动,只需对XML文件稍加修改,即可实现系统的移植。