admin 管理员组文章数量: 887021
2024年1月13日发(作者:异型钢材形状)
第七届蓝桥杯大赛
关于梦境的APP
技术实现方案(WEB端)
指导老师:***
队名:微积分(Calculus)团队
队员:魏裔龙 刘海文 孙天松 刘刚 纪阳 徐凯平
时间:2016-03-26
第七届蓝桥杯大赛
目录
1 .WEB1端技术 ................................................................................................................................ 3
1.1 WEB端技术路线 .............................................................................................................. 3
1.1.1 MVC模式 .............................................................................................................. 3
1.1.2WEB架构 ................................................................................................................ 4
1.2 WEB端实现方案 .............................................................................................................. 7
1.2.1通信协议 ................................................................................................................. 7
1.2.2数据处理 ................................................................................................................. 8
1.2.3数据调用基本过程 ................................................................................................. 9
2.数据库 ......................................................................................................................................... 10
2.1数据库技术 ...................................................................................................................... 10
2.1.1数据库技术路线 ................................................................................................... 10
2.2 数据库实现方案 ............................................................................................................. 11
2.2.1 数据库的连接 ...................................................................................................... 11
2.2.2 解决数据量大的问题 .......................................................................................... 12
2.2.3 备份与恢复 .......................................................................................................... 13
3.采用技术 ..................................................................................................................................... 14
3.1.PHP的特性 .................................................................................................................. 14
3.2.优势 ............................................................................................................................... 14
3.3数据库 .............................................................................................................................. 15
111
第七届蓝桥杯大赛
1 .WEB端技术
1.1 WEB端技术路线
1.1.1 MVC模式
WEB端主体框架采用MVC的设计模式,通过视图、控制器、模型的分离减少了代码的耦合度,由于MVC模式的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的少互扰性的构件。
图3-1 MVC模型
图3-2 MVC模式
第七届蓝桥杯大赛
1.1.2WEB架构
图3-3 服务端系统架构图
WEB应用系统大多采用J2EE(Java 2 Platform Enterprise Edition)的多层框架结构模型,WEB应用框架技术是一种针对某一特定应用领域的面向对象软件复用技术由特定应用领域的软件体系结构所决定的软件构架。我们将使用J2EE三个比较受欢迎的开源框架SSH来实现web功能。
SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层。
1) Struts框架
Struts框架是基于MVC(Model-View-Controller,模型视图控制器)模式的框架。采用Java语言编写,它继承了MVC设计模式的特性,对应用系统的用户界面显示和数据的后端业务逻辑代码进行了抽象,并且整合了Servlet与JSP在WEB应用系统开发上的优势。在Struts框架中,模型由实现业务逻辑的JavaBean组件构成,控制器由Action以及配置文件来实现,视图由一组JSP文件构成。
2) Spring框架
第七届蓝桥杯大赛
Spring框架由一个容器、一个配置和组织组件的框架,一组内置的为事务、持久化和WEB用户接口提供的服务组成,是一个轻量的控制反转((Inversion of Control,IoC)和面向方面(Aspect-oriented
Programming,AOP)的容器框架:
轻量:完整的Spring框架可在一个大小1 MB多的JAR文件里发布,并且Spring所需的处理开销也很小。
控制反转:Spring通过一种称作控制反转(IoC)的技术促进了松耦合。控制反转就是指由容器通过配置文件来管理业务对象之间的依赖关系,而非传统方式中由代码方式来直接操控。控制反转的实质,是控制管理权由程序代码转到了外部容器,控制权的转变即是所谓的反转。
面向方面:Spring包含对面向方面编程的丰富支持,允许通过分离应用的业务逻辑与系统服务进行内聚性的开发。应用对象只做它们应该做的,完成业务逻辑,并不负责其它的系统关注点。
容器:Spring包含管理应用对象的配置和生命周期,可以配置每个bean如何被创建。
框架:Spring中,应用对象被声明式地组合,典型地是在一个XML文件里,Spring提供了很多基础功能(事务管理、持久性框架集成等等),并留有应用逻辑开发。
3) Hibernate框架
Hibernate是一种Java语言环境下的对象/关系映射(Object-
Relational,OR) 解决方案。它为面向对象的实体模型到关系型数据库之间的映射,提供了一个极为方便的开源框架。
第七届蓝桥杯大赛
Hibernate使用数据库和配置文件来为应用程序提供持久化(持久化是指和数据库相关的各种操作)服务。Hibernate配置文件有两种格式:一种是XML格式的文件,一种是Java属性文件ties,采用"键=值"的形式。
在应用系统的开发中,Hibernate配置文件中包含了JDBC连接数据库的驱动信息。在应用程序访问数据库时,首先读取Hibernate配置文件,再通过配置文件找到持久化类的XML映射文件,根据该映射文件得到相应的持久化类,从而可以对类进行操作。也就是将持久化对象中的属性与数据库表中的字段对应起来。通过持久化对象完成对数据库表中的数据的增加、修改、查询和删除操作。
4) SSH框架协同工作
三大框架的三大
图3-4 Web段工作流程
三大框架的配合使用让团队的开发效率快且稳定,由于它的集成性好,让整个项目结构清晰,性能优良。
第七届蓝桥杯大赛
1.2 WEB端实现方案
1.2.1通信协议
我们用HTTP协议实现客户端与服务端的连接。HTTP协议是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
图3-4 HTTP协议
图3-5 XMPP协议
XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。
第七届蓝桥杯大赛
因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户用应用程序或给一个配好系统添加功能。
由于HTTP协议时需要客户端发送请求,服务端才会发送数据,但我们系统中有如聊天系统等需要实施的功能使用http协议就不是很合适,因此我们还使用了XMPP协议配合HTML协议完成聊天功能以及系统活动、运动咨询和定点广告的推送功能。
1.2.2数据处理
1. 字符数据处理
图3-6 Json的数据结构
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
第七届蓝桥杯大赛
1.2.3数据调用基本过程
图3-7 数据调用基本过程
第七届蓝桥杯大赛
2.数据库
2.1数据库技术
2.1.1数据库技术路线
图4-1 JDBC架构
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java
API 编写数据库应用程序。
第七届蓝桥杯大赛
2.2 数据库实现方案
2.2.1 数据库的连接
图4-2 连接数据库流程
与数据库建立连接的标准方法是调用nection方法。该方法接受含有某个URL的字符串。DriverManager类(即所谓的JDBC管理层)将尝试找到可与那个URL所代表的数据库进行连接的驱动程序。DriverManager类存有已注册的Driver类的清单。当调用方法getConnection时,它将检查清单中的每个驱动程序,直到找到可与URL中指定的数据库进行连接的驱动程序为止。Driver的方法connect使用这个URL来建立实际的连接。 用户可绕过JDBC管理层直接调用Driver方法。这在以下特殊情况下将很有用:当两个驱动器可同时连接到数据库中,而用户需要明确地选用其中特定的驱动器。但一般情况下,让DriverManager类处理打开连接这种事将更为简单。
第七届蓝桥杯大赛
2.2.2 解决数据量大的问题
图4-3 数据库数据量与性能的关系图
随着用户的增加,每个人上传的图片等的数据量将会在服务器越积越多,导致性能下降。但是每个人的资料信息以及上传的图片又不能删除,这给服务器带来了很大的压力。为了处理多用户量的问题我们在后期决定使用分布式多服务器分工合作原理,解决大数据量带来的压力。
图4-4 服务器分布式实现
第七届蓝桥杯大赛
2.2.3 备份与恢复
图4-5 数据库备份图
备份策略一:直接拷贝数据库文件
直接拷贝数据文件最为直接、快速、方便,但缺点是基本上不能实现增量备份。为了保证数据的一致性,需要在备份文件前,执行以下 sql 语句:
flush tables with read lock;
也就是把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入。这种方法备份出来的数据恢复也很简单,直接拷贝回原来的数据库目录下即可。
备份策略二:使用mysqlhotcopy备份数据库
mysqlhotcopy 是一个 perl 程序,最初由tim bunce编写。它使用
lock tables、flush tables 和 cp 或 scp 来快速备份数据库。它是备份数据库或单个表的最快的途径,但它只能运行在数据库文件(包括数据表定义文件、数据文件、索引文件)所在的机器上,并且mysqlhotcopy 只能用于备份
第七届蓝桥杯大赛
myisam表。
本备份策略适合于小型数据库的备份,数据量不大,可以采用mysqlhotcopy程序每天进行一次完全备份。
3.采用技术
3.1.PHP的特性
1. PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。
2. PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比,
PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。
3. PHP支持几乎所有流行的数据库以及操作系统。
4. 最重要的是PHP可以用C、C++进行程序的扩展!
3.2.优势
1.开放源代码
所有的PHP源代码事实上都可以得到。
2.免费性
和其它技术相比,PHP本身免费且是开源代码。
3.快捷性
程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被
第七届蓝桥杯大赛
嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。
4.跨平台性强
由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、Mac OS、Android等平台
5.效率高
PHP消耗相当少的系统资源。
6.图像处理
用PHP动态创建图像,PHP图像处理默认使用GD2。且也可以配置为使用image magick进行图像处理。
7.面向对象
在php4,php5 中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。
8.专业专注
PHP支持脚本语言为主,同为类C语言。
3.3数据库
数据库采用MySQL,作为一个小型关系数据库管理系统,它体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,这使得许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。Mysql拥有许多优良特性:
1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植
第七届蓝桥杯大赛
性
2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统
3.为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
4.支持多线程,充分利用CPU资源
5.优化的SQL查询算法,有效地提高查询速度
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径
8.提供用于管理、检查、优化数据库操作的管理工具
9.可以处理拥有上千万条记录的大型数据库
版权声明:本文标题:技术实现方案(WEB端) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705076480h472279.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论