当前位置:首页 > 基于排队论在线客服系统的优化设计与实现 - 图文
实现基于MVC的应用需要完成以下工作,如图2.4所示:
分析应用问题,对系统进行分离设计和实现每个视图设计和实现每个控制器使用可安装和卸载的控制器 图2.4 MVC的实现过程
分析应用问题,分离出系统的内核功能、对功能的控制输入、系统的输出行为三大部分。形成模型类的数据构成和计算有密切的关系。设计一个模型部件的目的就是让它可以存储数据和具有计算的功能,并能提供各类操作,比如访问数据、控制内部行为和其他一些必要的操作接口。人们看到显示在屏幕上的数据,它的原理是先设计每个视图的显示形式,之后按照形式的不同从而在模型中获取数据,之后显示在屏幕上。在设计每个视图的时候,视图应经指定了用户操作的行为和响应时间。控制器在不同的模型状态的影响下使用特定的方法接受和解释这些事件。建立控制器的初始化,就要知道它与模型和视图的联系,并且还要涉及事件处理机制的启动。具体实现事件处理机制的方法少不了对界面工作平台的依赖。因为控制器本身的可卸载性和可安装性,使得控制器的应用更加灵活,自由度更高。视图和控制器可以分开工作的特点,实现了视图和不同控制器相结合的灵活运用,使得不同操作模式得以实现。譬如,对专业用户、普通用户或不使用控制器建立的只读视图。视图和控制器的分离还为在应用中集成新的I/O设备提供了途径。
为使设计和使用的灵活性有很大的提高,我们尝试把视图、控制器、模型进
第 16 页 共 62 页
[28]
行分离。但是,结合现实,我们发现控制器和视图的功能联系通常都是很密切的,也就是说,视图的构成和控制视图工作的输入事件是相关的。在正真界面设计环境里,界面形式设计和界面操作事件以及处理方式联系非常紧密。考虑到这个问题,如果还要将控制器和视图分开工作的话,这就意味这给设计和分析带来了很大的不方便,并且还降低的运行率。所以,综合来看,应该把控制器和视图结合在一起来设计和实现。从上面的现实说明里我们只能把控制器和视图结合起来并生成新的视图才行得通。这样并不影响与模型的分离,同一个模型可以产生多个不同的视图。而这些试图可以凭借自身具备有的处理能力通过模型控制其功能。
MVC的优点表现在以下几个方面:可以为一个模型在运行时同时建立和使用多个视图。变化-传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步。视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换。模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。需要做的只是在新平台上对视图和控制器进行新的修改。潜在的框架结构。可以基于此模型建立应用程序框架,不仅仅是用在设计界面的设计中。允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和可靠性和可扩展性。允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。例如,最初用一台Unix工作站作为服务器,将数据层和功能层都配置在这台服务器上,随着业务的发展,用户数和数据量逐渐增加,这时,就可以将Unix工作站作为功能层的专用服务器,另外追加一台专用于数据层的服务器。如果用户数进逐步增加,业务逐步扩大,就可以用以分割数据库的方法断续增加功能层的服务器数目[29]。被分成三层的应用基本上不需要什么修正,只要合理、清晰地分割三层结构,并使它们独立运作,就可以使系统构成变得非常简单。为了使应用和各层能高效地进行并发,从而达到较高的性能价格比,就允许在MVC结构中,应用和各层可以并行开发,并可以选择最适合自己的开发语言。这样一来也使得每一层的处理逻辑的开发和维护变得更容易些。严格的安全管理对数据库是很重要的,在设计中允许充分利用功能层有效地隔离开表示层与数据
第 17 页 共 62 页
层,那些没有授权的用户就很难绕过功能层,这就意味着不能利用数据库工具去非法地访问数据库。这就奠定了严格的安全管理的坚实基础。不仅如此,还使得整个系统的管理层次也更有可控制性和更加合理。
在MVC体系结构中,表示层负责处理用户的输入和向客户的输出(出于效率的考虑,它可能在向上传输用户的输入前进行合法性验证)。数据库的连接由功能层负责建立,访问数据库的SQL语句是根据用户的请求生成的,生成后并把结果返回给客户端。数据层的工作是负责将实际的数据库加以存储和检索,对功能层的数据处理的请求进行响应,最后向功能层返回结果。上述的三层应用结构其中的一种实现方式就是MVC风格,它的具体结构分别是:浏览器、数据库服务器、Web服务器。利用不断成熟的WWW浏览器技术和浏览器的多种脚本语言,MVC体系结构实现了原本需要复杂的专用软件才能实现的强大功能,这样就大大的节约了开发成本。MVC结构从某种程度来说是一种全新的软件体系结构。在MVC结构中,数据库服务器没有以网页的形式存放于Web服务器上,而其他的应用程序都以网页的形式存放于Web服务器上。当用户想要运行其中的一个应用程序时,他只需在客户端上的浏览器中输入相对应的网址就可以通过调用Web服务器上的应用程序来处理数据库里相应的数据,处理完之后将结果反映在浏览器上给客户看。在某种程度上可以这么讲,应用程序在MVC模式的计算机应用系统中具有集中特征。建立在MVC体系结构基础上的软件,将系统安装、修改和维护能在服务器端很好的解决。当有用户想使用系统时,他只简单的需要一浏览器就可以将全部的模块运行起来,真正地起到零客户端的功能,而且自动升级也容易在运行时实现。MVC体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。MVC结构没有出现的时候,管理信息系统主要对组织内部起到作用。组织的供应商和客户的计算机方便地成为管理信息系统的客户端是因为MVC结构采用零客户端方式,在这种方式下,供应商和客户能在限定的功能范围内查询组织相关信息并完成与组织的各种业务往来的处理工作和数据交换,这样以来不仅能将组织计算机应用系统的功能覆盖范围扩大了,而且还使网络上的各种资源得到更加充分利用[30],与此同时大大减少了应用程序维护的工作量。另一方面,最近提出的一些新的企业计算机应用的实现成为可能得益于MVC结构的计算机应用系统与Internet的结合。
第 18 页 共 62 页
MVC的不足表现在以下几个方面:
1. 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
2. 视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。目前,一般高级的界面工具或构造器不支持MVC模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。
2.2.4基于Ajax的MVC模式
结合了XML、JavaScript以及Java技术编程技术的AJAX(Asynchronous JavaScript and XML),是使用Web服务器交换数据与客户端脚本的Web应用开发方法。其实AJAX并不是一种新的技术,它结合了网络浏览器里已有的三项重要特征:
1. 浏览器是可通过Web Server和JavaScript通讯的。
2. 在不刷新页面的情况下,Javascript能动态地改变页面的值。 3. 系统网络架构
虽然应用开发中存在的像代码维护性、重用性、开发效率低和扩展性等问题能被MVC模式很好的解决,但是从传统应用进行同步交互过程我们发现,一旦有请求,即使这个请求很小,页面都要重新刷新,重复下载了大量没有用数据,这样就造成了服务器较重的负担,而且也使得用户要等待漫长的时间。在实际应用中,类似投票等一些无关痛痒的场景,如果提交过程等待时间过长,很多的用户就会直接忽略而不参与,但是如果使用了Ajax则可以大大缩短等待时间,从而使更多的用户会加入进来.为减轻服务器负担以及提高网站模式性能,在MVC模式中加入AJAX技术,其示意图如图2.5所示。
第 19 页 共 62 页
共分享92篇相关文档