莱茵小镇营销及综合服务系统--“便捷莱茵”楼盘智能管理平台的设计与实现毕业论文(编辑修改稿)内容摘要:

osql 理念、多线程并发处理等技术,并结合 adobe 公司最新版本的 flex CS4 对整个后台管理系统进行开发整合。 论文先阐述开发这个系统的意义,接着对比 flex 平台和传 统 J2EE 平台的区别,并尽可能多的融入一些国外最新的开发技术,以这些技术和思想为前提,提出一个技术、经济上可行的楼盘管理方案,然后详细介绍系统需求和系统概要,再根据本人负责的模块分别着重介绍各自模块的实现方法,最后,对整个系统的关键技术和开发中出现的问题进行分析和讨论。 天津工业大学 20xx 届本科生毕业论文 5 第二章 技术方法与理论分析 MVC 设计模式分析 MVC 设计模式概述 MVC( Model View Controller)是一种软件设计规范,主要作用是使业务逻辑和数据显示分离,方便软件的开发和编写,同时可以最大 程度增加软件的可维护性。 比如要修改一个系统的页面,在 MVC 模式中只用修改 View 的内容,而model 和 controller 层的内容则不用修改,这可以极大的减少工作量和维护成本。 MVC 工作原理 要了解 MVC 的工作原理,首先要了解 MVC 中每个字母所代表的含义。 M为模型层( model),表示企业数据和业务规则,模型层是整个系统的核心,拥有最多的逻辑处理任务,同时模型层的代码要遵循 OOP 原则,做到尽可能的重用。 V 为视图层( view),是用户可以看到的并且可以和用户进行交互的界面,简单来说就是系 统的外观页面,视图层只是进行数据的传递和显示,并不进行数据的处理。 C 为控制层( controller),位于服务器端,负责接收视图层的请求并调用模型层的逻辑处理规则对用户请求进行处理,因而视图层发出请求的时候,控制层不做任何输出,只是决定调用某个构件来处理请求,然后确定调用哪个页面显示返回的数据。 对这 3 个字母的理解也就是对整个 MVC 模式工作原理的理解了。 MVC 体系结构及优势 MVC 体系结构具有低耦合、高内聚的特点,并且成本低,可以适合快速部署,可维护性很强,十分利于软件开发的管理。 利用 MVC 体系 模式写出来的代码可读性好,项目结构清晰,各模块分工细致,尤其适合多人开发的项目使用,并且 MVC 模式经过多年的使用和论证,体系结构已经变得非常成熟,基本上已经成为现在系统开发的主流体系结构,由 MVC 衍生出来的各种体系更是数不胜数,因此 MVC 体系结构非常适合我们这个楼盘管理系统。 flex 技术分析 flex 技术概述 Flex 是 adobe 公司提供的一个用于构建 web 应用程序的高效开源 框架,利用这种框架开发出来的应用程序借助 adobe flash player 和 adobe AIR 运行时可以跨浏览器、桌面、系统实现部署和运行。 强大的表现力是 flex 技术体系开发出来的应用程序的一个最大特点, flex 最早是由 flash 的缔造者 macromedia公司提出的,因而 flex 中很多功能控件的使用类似于 flash,连 flex 端 ActionScript天津工业大学 20xx 届本科生毕业论文 6 类的书写也跟 flash 的相同,最终 flex 生成的 mxml 文件会经过编译器编译生成一个类似 flash 中 swf 文件的文件,而从系统前台来看, flex 的网页和一个 flash网页几乎是没有区别的。 Flex4 的编译器是 flash builder ,这个编译器可以整合进 myeclipse 中和 Java 一起整合开发,在整个项目中, flex 端将替代正常网站制作时的 JSP 页面,也就是说 flex 端其实就是 MVC 中的视图层( View),而 java端的作用就是 MVC 中的模型层( Model),封装业务逻辑和获取数据库数据,实现 MVC 中控制层( Controller)的则是 flex 项目开始开发时生成的一个 xml 配置文件。 flex 技术优势分析 正如前面所提到的, flex 的技术提供商是 adobe 公司,强调的是页面的美观和更好的用户体验,而且 flex 的提出者是 flash 的缔造者 macromedia 公司,因此flex 拥有很强的表现力,很好的用户体验,加上 flex 需要的插件很少,唯一需要的插件是 adobe flash player ,这款插件全球几乎所有的电脑都拥有,这就证明flex 可以拥有很好的跨平台性能,可以为绝大多数人所使用而不需要安装复杂的客户端或者大量的插件,这正是 B/S 框架下的系统所要达到的目标,实现跨平台的使用。 加上 flex 的编译器 flash builder 可以同 visual studio 20xx 以及 eclipse、myeclipse 等整 合成集成环境,配合多种语言进行开发,因而用 flex 作为这个楼盘系统的视图层( View)来开发是一个很好的选择。 flex 与 Java 交互 Flex 不同于一般的 jsp 页面,正如 所提到的,相比一般的 jsp 页面 flex页面有很多优势的地方,但是 flex 的页面同样有很多的不足,尤其是 flex 和 java交互,也就是获取模型层( model)数据的时候,有很多的问题需要解决。 首先, flex 端不能与 java 端直接进行通信,连接 Java 端和 flex 端必须要通过一个 xml 文件实现,这个文件是配置文件夹下的 文件,这个文件的作用就相当于 MVC 中的控制层( Controller), flex 端所有对 java 端的调用都要通过这个配置文件来进行,只有修改了该 xml 文件中的配置路径, flex端才能调用 java 端的 java 类。 Flex 与 java 交互如图 21(flex 与 java 交互图 )所示: 图 21 flex 与 java交互图 天津工业大学 20xx 届本科生毕业论文 7 其次, flex 端还存在一个很严重的问题,就是 flex 端只能接收 java 端传递过来的 String 类型的字符串,不能接收任何的其他类型的数据,如 list、 array 等。 java 端被调用以后产生的返回值,都要重新封装成一个 string 类型的字符串返回给 flex 端,然后在 flex 端进行字符串的解析,这个缺点无疑加大了代码编写量和难度。 为了实现 java 端和 flex 端数据的传递,需要在 java 端的 entity 包(实体类包)中重写 toString 方法,并在 biz 返回数据给 flex 端之前调用这个方法对数据进行封装,而在 flex 端则需要对这段封装以后的数据进行解析,然后利用数据绑定的方式让数据显示出来。 最后,还有一个很严重的问题是, flex 端没有 session 这个在 jsp 中 常用而且是最重要的功能,因此 flex 页面中的防穿墙不能通过 session 来实现,而是要通过代码编写的方式人为的构建一个类似 session 功能的类,让前台在页面运行时调用。 flex 端单例模式的应用 单例模式是一种常用的软件设计模式 ,其 核心结构中只包含一个被称为单例类的特殊类。 通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。 如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 在 flex 中引入单例,有两个重要的原因,其中一 个在 中已经提到,因为 flex 端没有 session 可以供使用,只能人为的定义一个类似 session 的类,这个类不仅 java 端有, flex 端也要有,因为 flex 端进行页面跳转的时候页面间需要传递数据不能通过 flex 端直接传送,而是要把需要传送的数据放入 java 端,然后进行页面跳转,跳转完成的时候再从 java 端获取出那些传递的数据,因此 flex端的单例的作用其中一个用途就是替代原来 jsp 页面中 session 的部分功能,存储一些诸如登录用户名、用户 id 这样的一些信息,方便调用和防穿墙的检测。 Flex 中引 入单例的另外一个原因就是要加快系统的运行速度,这点跟 nosql理念是相关联的,可以简单的把这个单例理解为设置在 flex 端的一个缓存,用来存储一些必要信息,当用户在前台调用或者使用的时候可以极大的加快系统的响应速度,提高系统的整体效率。 由于以上两个原因,我们决定在这个楼盘管理系统的 flex 端中引入单例模式,用于弥补 flex 页面的不足,同时也为了加快整个系统的运行效率。 nosql 理念分析 nosql 理念介绍 随着互联网 网站的兴起,非关系型的数据库成了一个极其热门的新天津工业大学 20xx 届本科生毕业论文 8 领域,而传 统的关系数据库在应付超大规模和高并发的 SNS 类型的 纯动态网站 时 已经显得力不从心,对数据库高并发读写的需求 、 对海量数据的高效率存储和访问的需求 、 对数据库的高可扩展性和高可用性的需求 等,这些都 暴露 的难以克服的问题 让很多关系型数据库无用武之地,因此 nosql 应运而生了,NoSQL(Not Only SQL ),意即 “不仅仅是 SQL”,是一项全新的数据库革命性运动,发展至 20xx 年趋势越发高涨 , NOSQL 的 核心思想是 提倡运用非关系型的数据存储 代替现有的关系型数据库。 它的优点在于以下几点:可以处理大量的数 据、可以突破关系型数据库的性能瓶颈、部署和使用十分廉价、操作相对较少。 nosql 理念的应用 Nosql 的核心理念是提倡用非关系型的数据存储代替关系型数据存储,实现这个理念可以有很多的方法, Membase 就是一个 nosql 数据库的典型代表,但是对于我们的楼盘管理系统,我们只打算借鉴 nosql 的理念,而不打算借鉴 nosql的数据库来实现,我们使用的数据库还是关系型数据库 sqlserver20xx, nosql 的理念将在 java 端用代码来实现。 在讨论 nosql 理念的应用之前,不得不说明一下计算机的运 行机制和工作原理,在我们常用的个人 PC 或者服务器中,基本会包括以下一些重要的硬件, CPU、内存、硬盘、高速缓存( cache)、芯片组等,存储介质中速度最快的是高速缓存( cache),然后是内存,最慢的是硬盘,而容量大小则是硬盘 内存 高速缓存,高速缓存中会存放一些经常使用的数据,以免第二次读取时还要从硬盘中读出,增加不必要的时间消耗。 然而高速缓存容量小,不适合存放过多的数据,由于硬件水平的发展,现代 PC 的内存越来越大,加上新操作系统对内存的管理更加合理,因此将常用数据存放在内存中将是一个很好的选择,这也正好 符合了游戏开发中的一个重要准则“空间换时间”。 有了以上的一些对计算机硬件技术的基本了解,可以开始介绍所设计的楼盘管理系统中对于 nosql 这个理念的使用了。 CPU 对内存的访问速度远远高于对硬盘的访问速度,而 sqlserver20xx 又是将数据存放在硬盘中的,因此在程序运行时CPU 对数据的访问速度就会下降,为了解决这个问题,我们将通过代码的形式,在系统运行初始化的时候分配一块静态的内存区域,并将所有的数据从数据库导入到内存的这块内存区域中,由于所有的数据在系统初始化的时候已经全部被导入内存了,因而 web 程序对 于数据的读取,也就相当于对内存进行操作,如此一来可以极大的提高系统的运行效率。 这就是这个楼盘管理系统对于 nosql 理念的应用。 单例模式与 nosql 结合 单例模式的核心思想是 通过单例模式可以保证系统中一个类只有一个实例天津工业大学 20xx 届本科生毕业论文 9 而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。 在 中已经提到了,我们这个楼盘管理系统对 nosql 理念的应用是必须在系统初始化的时候把数据库所有的数据导入到内存的静态区域中的,如果数据量巨大的话,将会对内存空间产生巨大压力,使用单例模式和 nosql 的结合,就是 为了最大程度的节约内存空间,将这片内存区域设置成共享的区域,从而减轻内存空间的负担。 具体的楼盘管理系统是这样实现的:构建一个静态的 DL 类,类中有一个构造函数,构造函数中将写入相应代码,将数据库中所有的内容读入内存,构造函数会在 DL类被调用的时候运行,也就是说 DL类的运行就是整个系统初始化的时候,数据库的数据将会全部被读入内存中分配的静态区域中。 如此在所设计的楼盘管理系统中便实现了 nosql 理念和单例模式相结合的方式,将有助于提高整个楼盘管理系统的性能。 生产者 /消费者模式分析 生产者 /消费者模式介绍 在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理。 产生数据的模块,就形象地称为生产者 , 而处理数据的模块,就称为消费者。 单纯的 抽象出生产者和消费者,还够不上是生产者/消费者模式。 该模式还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。 生产者把数据放入缓冲区,而消费者从缓冲区取出数据。 如图 22( 生产者 /消费者模式图例 )所示: 图 22 生产者 /消费者模式图例 生产者 /消费者模式有很多优点,比如解耦、支持并发、支持忙闲不均等。 (1)解耦。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。