() 阅读以下关于软件体系结构方面的叙述 回答问题1和问题2。A公司要开发一个教学管理系统 使出差
() 阅读以下关于软件体系结构方面的叙述,回答问题1和问题2。A公司要开发一个教学管理系统,使出差的销售与辅导老师能在全国各地互联网络上进行公司内部事务的处理。在设计该系统的软件架构时,项目组产生了分歧: (1)张工认为应该采用客户机/服务器(C/S)结构,公司出差人员要安装一个软件客户端,通过这个客户端连接到总公司服务器。然后进行相应的事务处理。 (2)王工认为应该采用浏览器/服务器(B/S)结构,这样出差人员直接通过Windows操作系统自带的IE浏览器就可以连接到总公司的服务器,同时B/S还可以配合目前比较流行的Ajax技术,优化界面,提升用户体验。经过项目组的激烈讨论,最终选用了C/S和B/S混合结构。【问题1】(8分) 请你用200字以内文字简要讨论C/S结构与B/S结构的区别及各自的优点和缺点。【问题2】(9分) 请你用200字以内文字说明如何设计C/S和B/S混合结构,这样设计有什么好处?【问题3】(8分) 请你用200字以内文字简要说明Ajax有哪些关键技术,优缺点?
-
参考答案:【问题1】 (1)C/S结构的软件需要在服务器端和客户端安装、修改和维护,而B/S结构的软件,只需在服务器端解决。 (2)C/S结构比B/S结构的数据处理能力强,查询速度快,系统安全性高。 (3)B/S结构比C/S结构的维护要简单得多,开发成本低。【问题2】 (1)在财务处理程序中,公司(含分公司)内部用户直接访问数据库服务器,出差员工通过Internet访问Web服务器,再通过Web服务器访问数据库服务器。 (2)这种混合软件体系结构的优点是外部用户不直接访问数据库服务器,能保证财务数据库的相对安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。【问题3】 关键技术:JavaScript和XML必答,外加CSS、XSLT、DOM、XHTML任选其二即可得。(4分) 优点:局部刷新(页面无刷新),减少网络压力,提升传输速度。异步提交请求,无需等待回应,用户体验好。客户端分担了服务器的部分压力。(3分) 缺点:破坏浏览器“后退”按钮的正常行为。(1分) 这是一道关系软件体系结构/软件构架方面的问题。【问题1】 C/S软件体系结构,即Client/Server (客户机/服务器)结构,是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,C/S结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。 C/S 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。但随着企业规模的日益扩大,软件的复杂程度不断提高,传统的二层C/S结构存在以下几个局限: (1)C/S结构是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet; (2)软、硬件的组合及集成能力有限; (3)客户机的负荷太重,难以管理大量的客户机,系统的性能容易变坏; B/S软件体系结构,即Browser/Server (浏览器/服务器)结构,是随着Internet技术的兴起,对C/S体系结构的一种变化或者改进的结构。在B/S体系结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。 B/S体系结构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件体系结构。基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。 但是,与C/S体系结构相比,B/S体系结构也有许多不足之处,例如: (1)B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。 (2)B/S体系结构的系统扩展能力差,安全性难以控制。 (3)采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。 (4)B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。【问题2】 从上面的对比分析中,我们可以看出,传统的C/S体系结构并非一无是处,而新兴的B/S体系结构也并非十全十美。由于C/S体系结构根深蒂固,技术成熟,原来的很多软件系统都是建立在C/S体系结构基础上的,因此,B/S体系结构要想在软件开发中起主导作用,要走的路还很长。我们认为,C/S体系结构与B/S体系结构还将长期共存。 在财务处理程序中,公司(含分公司)内部用户直接访问数据库服务器,出差员工通过Internet访问Web服务器,再通过Web服务器访问数据库服务器。该解决方案把B/S和C/S这两种软件体系结构进行了有机的结合,扬长避短,能有效地发挥了各自的优势。 C/S与B/S混合软件体系结构的优点是外部用户不直接访问数据库服务器,能保证财务数据库的相对安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。 C/S与B/S混合软件体系结构的缺点是企业外部用户修改和维护数据时,速度较慢,较烦琐,数据的动态交互性不强。【问题3】 异步JavaScript和XML(Asynchronous JavaScript And XML,AJAX)由几种蓬勃发展的技术以新的方式组合而成的,包括基于XHTML(eXtensible HyperText Markup Language,可扩展超文本标识语言)和CSS(Cascading Style Sheets,层叠样式表)标准的表示、使用DOM(Document Object Model,文档对象模型)进行动态显示和交互、使用XML和XSLT(eXtensible Stylesheet Language for Transformation,用于转换的可扩展样式表语言)进行数据交换及相关操作、使用XMLHTTPRequest与服务器进行异步通信、使用JavaScript绑定一切。 (1)XML。XML是一套从SGML(Standard Generalized Markup Language,标准通用标记语言)中派生出来的定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。XML的高扩展性、高灵活性特性,使得其可以描述各种不同种类的应用软件中的各种不同类型的数据,可以实现不同数据的集成。由于XML格式的标准化,许多浏览器软件都能够提供很好的支持,因此,只需简单地将XML格式的数据发送给客户端,客户端就可以自行对其进行编辑和处理,而不仅是显示。 (2)XHTML。XHTML是一个基于XML的标记语言,是一个扮演着类似HTML角色的XML,结合了部分XML的强大功能和大多数HTML的简单特性。建立XHTML的目的就是实现HTML向XML的过渡。 (3)JavaScript。JavaScript是一种粘合剂,使AJAX应用的各部分集成在一起。在AJAX中,JavaScript主要用来传递用户界面上的数据到服务端并返回结果。 (4)XMLHttpRequest。XMLHttpRequest对象用来响应通过HTTP传递的数据,一旦数据返回到客户端,就可以立刻使用DOM将数据显示在网页上。XMLHttpRequest对象在大部分浏览器中已经实现,而且拥有一个简单的接口,允许数据从客户端传递到服务端,但并不会打断用户当前的操作。使用XMLHttpRequest传送的数据可以是任何格式的。 (5)DOM。DOM为XML文档的已解析版本定义了一组接口。解析器读入整个文档,构建一个驻留内存的树结构,然后代码就可以使用DOM接口来操作这个树结构。 (6)XSLT。XSLT 是一种将XML文档转换为XHTML文档或其他XML文档的语言,可以用在客户端和服务端,它能够减少大量的用JavaScript编写的应用逻辑。 (7)CSS。一个CSS样式单就是一组规则,样式再根据特定的一套规则级联起来。每个规则给出其所适用的元素名称,以及要应用于哪些元素的样式。CSS提供了从内容中分离应用样式和设计的机制。虽然CSS在AJAX应用中扮演至关重要的角色,但它也是构建跨浏览器应用的一大阻碍,因为不同的浏览器厂商支持各种不同的CSS级别。 借助于AJAX,可以在用户单击按钮时,使用JavaScript和DHTML立即更新用户界面,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用 JavaScript和CSS来相应地更新用户界面,而不是刷新整个页面。最重要的是,用户甚至不知道浏览器正在与服务器通信,Web站点看起来是即时响应的。使用AJAX的最大优点,就是能在不更新整个页面的前提下维护数据,这使得Web系统更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。 使用AJAX的主要缺点是,它可能破坏浏览器“后退”按钮的正常行为。在动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器只能记下历史记录中的静态页面。用户通常都希望单击“后退”按钮,就能够取消他们的前一次操作,但在AJAX系统中,却无法做到这一点。解决这个问题的主要方法是,在用户单击“后退”按钮访问历史记录时,通过建立或使用一个隐藏的IFRAME来重现页面上的变更。例如,当用户在Google Maps中单击“后退”时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到AJAX元素上,以便将系统恢复到当时的状态。另外,使用动态页面更新时,用户难以将某个特定的状态保存到收藏夹中。解决这个问题的主要方法是,使用URL(Uniform Resource Locator,统一资源定位符)片断标识符(通常被称为锚点,即URL中“#”后面的部分)来保持跟踪,允许用户回到指定的某个系统状态。 进行AJAX开发时,需要慎重考虑网络延迟。不给予用户明确的回应,没有恰当的预读数据,或者对XMLHttpRequest的不恰当处理,都会使用户感到延迟,这是用户不希望看到的,也是他们无法理解的。通常的解决方案是,使用一个可视化的组件来告诉用户,系统正在进行后台操作并且正在读取数据和内容。
