可跟踪性:识别出原来的需求与被规范的功能之间关系的可能性,便于系统升级。
三. 开发及运行环境
1 硬件、软件环境平台
本系统在LAMP环境下开发,系统可运行于LAMP(linux-apache-mysql-php)和WAMP(windows-apache-mysql-php)环境下。
(1)开发环境
表1 开发环境
Table 1 Server-side operating environment 硬件环境
CPU 内存 硬盘 (2)运行环境 服务器端
表2 服务器端运行环境
Table2 Server-side operating environment 硬件环境
CPU
Intel(R) Xeon(R)
以上
Web服务器
内存
2BG以上
数据库系统 操作系统
软件环境
Windows NT/2003/XP VISta、UNIX、Linux
Apache
Mysql5.0
Intel(R) Core(TM)2
1GB 160G
操作系统 Web服务器 数据库系统 PHP版本
软件环境
Linux/ubuntu 11.04
Apache2.2.8
Mysql5.0 PHP5.0
11
硬盘 4OG以上 PHP版本 PHP5.0
2 开发平台核心技术
主要采用的技术有php、mysql、JavaScript、ajax、Google地图API等。 (1)PHP技术
PHP(Personal Home Page)[5]是一种跨平台的服务器端嵌入式脚本语言。它最初是由Rasmus Lerdorf于1994年开发的。早期的版本,提供了访客留言本、访客计数器等简单功能。随后,在第二版中增加了对mSQL的支持。自此奠定了PHP在动态网页开发上的影响力,并迅速在Internet上流传开来[6]。截止2009年5月,在Google中搜索“php”,你将获得95亿条搜索记录,可见php在当今互联网时代是非常流行的。PHP的源代码完全公开,在Open Source意识抬头的今天,它更是这方面的中流砥柱。随着新函数库的不断加入,使PHP无论在Unix、Linux或是Win32的平台上都可以有更多新的功能。如今,PHP已更新至6.0版。在语法方面,PHP混合了C、Java、Perl以及PHP以前版本的优点。它相当于Script与CGI的结合语言,但是其执行将效率却比CGI更好,程序编写也比HTML更便利且更富有弹性,程序的安全性及保密性也比Script好。在函数支持方面,PHP几乎覆盖了Web应用的各个方面,其中最有特色的是数据库函数,使用PHP完成一个含有数据库功能的网页非常简单,而PHP支持的数据库也非常丰富,目前包括:MySQL、Oracle、Sybase、mSQL、Informix等。 (2)Mysql技术
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购[7]。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。其特点是:核心线程使用完全多线程,这意味着它能很容易地利用多CPU;支持PHP、C、C++、Eiffel 、Java、Perl、Python和TCL API等客户工具和API;可运行在不同的操作系统平台上;利用一个优化的一遍扫描多重联结,可快速地进行联结;全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、 MAX()和MIN();一个非常灵活且安
12
全的权限和口令系统,并且它允许基于主机的认证;MYSQL特有的SHOW命令可用来检索数据库、表和索引的信息,EXPLAIN命令可用来解释优化器如何执行一个查询[8]。
(3)JavaScript技术
JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。以它为基础,制定了ECMA Script标准[9]。 (4)Ajax技术
Ajax是当今最为热门的浏览器端开发技术之一[10], 简单的来说, 它是众多成熟技术的集合。Ajax 的出现,为传统开发技术带来全新的应用方式, 极大地提高了用户对程序的操作体验。Ajax使用XMLHttpRequest对象以异步的方式与服务器通信,从服务器获取需要的数据后在页面上进行局部刷新[11]。AJAX技术给B/S模式下的客户端和服务器交互方式带来了巨大的变化,使得B/S模式的前后台交互方式也与C/S模式一样,成为API级别的交互[12]。 (5)Google地图API
Google地图API是由美国Google公司免费开放的电子地图应用接口。灵活提供了flash、JavaScript等多种形式的接口,可以满足网站类(B/S结构)和非网站类(C/S结构)的应用。以HTTP为基础的WebAPI的普及,也降低了应用服务整合的门坎,地图应用接口可以非常简单把地图集成到网站中,使基于互联网地图应用的开发变得十分的简单。同时,谷歌地图 API 是一项免费的服务,任何非盈利性网站均可使用。 (6)jQuery技术
jQuery[13]是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库,能够兼容众多浏览器而且支持CSS3。jQuery使用户能更方便地处理
13
HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。有许多成熟的插件可供选择。 3 MVC系统架构
MVC是Xerox PARC在20世纪80年代为编程语言Smalltalk—80发明的一种软件设计模式,至今已被广泛使用。MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C 则是控制器,使用MVC 的目的是将M 和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,比如一批统计数据你可以分别用柱状图、饼图来表示,C 存在的目的则是确保M和V的同步,一但M 改变,V 应该同步更新,在MVC模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。在MVC 模式中,由于按层把系统分开,那么就能更好的实现开发中的分工,分层后更有利于组件的重用,如控制层可独立成一个能用的组件,视图层也可做成通用的操作界面。
如图1,视图V对应表现层,本层只负责数据的显示和样式渲染;控制器C只负责视图V和模型M的逻辑交互(消息传递);模型M根据控制器C的交付指令完成数据运算、数据存储、返回运算结果。三层各施其职,互不干涉,易于系统开发、维护和扩展。
14
15