基于Web的高铁沉降信息管理系统.docx_第1页
基于Web的高铁沉降信息管理系统.docx_第2页
基于Web的高铁沉降信息管理系统.docx_第3页
基于Web的高铁沉降信息管理系统.docx_第4页
基于Web的高铁沉降信息管理系统.docx_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分类号P22密 级 U D C 编 号 1 0 4 8 6 武 汉 大 学硕 士 学 位 论 文基于Web的高铁沉降信息管理系统设计与实现 二一一年五月IIThe Design and Realization of Web-based High-Speed Railway Subsidence Information Management System ByHeChaoSupervised byProfessor Huang ShengxiangWuhan UniversityWuhan,430079 P.R.ChinaMay,2011郑 重 声 明本人的学位论文是在导师指导下独立撰写并完成的,学位论文没有剽窃、抄袭、造假等违反学术道德、学术规范和侵权行为,否则本人愿意承担由此产生的法律后果和法律责任,特此郑重声明。学位论文作者(签名): 年 月 日摘 要随着我国经济社会的发展,铁路的建设也进入了“高铁时代”,高速铁路的建设正在全国各地蓬勃推进中。在高速铁路的施工建设中,全线铺设无缝轨道,无渣轨道。由于无渣轨道的建成后有无法调整的特点,故只有在线下工程或者路基的沉降基本稳定,达到铺设轨道的要求的时候才能铺设无渣轨道,因此轨道沿线的线下工程以及路基的沉降观测成为高速铁路测量工作中的重中之重。现阶段我国高速铁路一般是通过“分段分包”的方式来建设,因此,不同工段的数据,无法汇总到一起,从而在进行沉降监测评估的时候,只能局限于某一标段,而无法查看、分析整体的沉降监测情况。此外,现阶段的沉降监测信息管理系统主要是桌面应用,且仅限于数据的处理与显绘,无法直观的在地图上将沉降点标注出来,方法不直观。鉴于高速铁路建设对沉降监测的高要求与现阶段我国高速铁路沉降监测的弊端,一种新型的沉降信息监测信息管理模式成为迫切的需求。近年来,随着Web技术与信息管理技术的发展,基于B/S结构在信息管理系统中变得越来越重要,有取代传统C/S结构之势。同时,随着Ajax技术的不断发展,异步已经成为Web2.0时代的标志。Ajax技术有助于解决降低网络负载,大大提高网络应用程序的用户体验。一个基于Web的沉降信息管理系统可以实现数据的实时入库,数据分析,数据预测,数据管理,报表显绘等功能,为相关部门的决策提供必要的、及时的参考资料。本文首先阐述了系统开发的现实背景和技术背景,表明了系统开发的必要性。接着讨论了系统开发的环境和开发技术,证实了系统在技术上的可行性。接着,分析了系统实现中的关键技术问题,并给出了相应的解决方法。最后,结合石武高铁沉降项目的相关监测数据,实现了一个三层的B/S结构的沉降信息管理系统。系统采用Windows Server 2008作为服务器操作系统,采用Apache作为Web服务器,采用MySQL作为数据库,采用PHP作为服务器端开发语言。整个系统包含基准点数据管理子系统、监测点数据管理子系统、监测数据录入子系统、沉降信息显示绘制子系统、沉降预测子系统、报表输出子系统和后台管理子系统八个子模块。关键词: 高速铁路;沉降;管理信息系统;B/S结构;MySQL数据库;PHPAbstractAs Chinas economic and social development, railway construction has entered a high-speed railway era. In the High-speed railway construction, the entire railway tracks are lastless and seamless track. Once the track is completed, it cannot be adjusted any more. So, only when the subsidence of track infrastructure is stable and can meet the requirement can lay the ballastless track. Therefore, the subsidence monitoring of the subgrade and the track infrastructure is the most important task.At present, in order to accelerate the construction speed, all the companies which meet the construction qualification are invited to tender for construction of High-Speed railways. In view of this construction mode, the subsidence data of different section cannot be aggregated together. So, if you want to analyze the subsidence data, your research scope will be limited to a certain section not the whole railway line. The subsidence information management systems which are in use are all desktop application, and the utilities are limited to data processing and plotting. Because of the construction mode and the high requirement of subsidence monitoring, A new type ofsettlementinformationmanagementsystemis an urgent need. In recent years, with the development of Webtechnology andinformation management technology, information management systems based on B/S structure are becoming too important to replace these old information systems based on C/S structure. Meanwhile, with the continuous development of Ajax techniques, asynchronous has become a sign of Web 2.0. Ajax helps solve the reduced network load and greatly enhance the user experience of Web applications. Therefore, this paper implements a subsidence information management system based on three-tier B/S structure. The system uses Windows Server 2008 as the operating system, Apache as a Web server, MySQL as a database, PHP as a server-side development language.The whole system has eight modules:Base points information management module, monitoring points information management module, Monitoringdata entrymodule, subsidence data display module, subsidence prediction module, report output module and background management module. The systemsreal-timedatawarehousing, data analysis, data prediction, data management, report outputand other functionsaredrawnfor therelevant departmentsto provide the necessary and timely decisionsThe paper describes the realistic background and technical background,indicating the need for system development. Followed by a discussion of system development environment and the development of technology, illustrates the technical feasibility of the new system. Then, it analyses the key technical issues in developing the system,and gives solutions. Finally, complete the whole system, and do the corresponding tests.Keywords: High-speed railway; subsidence; information management system; B/S structure; MySQL database; PHPVI目 录摘 要IABSTRACTII1绪论11.1引言11.2论文研究的现实背景11.2.1我国高速铁路的飞快发展11.2.2高速铁路无砟轨道对沉降监测的要求较高21.2.3目前我国高速铁路沉降信息管理上的不足21.3论文研究的技术背景31.3.1B/S架构的迅速发展与广泛应用31.3.2管理信息系统的发展41.4本论文研究的现实意义71.5论文的主要研究内容72系统开发环境与开发技术82.1服务器端技术与数据库82.1.1Apache WEB服务器82.1.2PHP82.1.3MySQL数据库102.1.4PHP-Extension技术132.2浏览器端技术142.2.1HTML与CSS142.2.2Javascript与AJAX152.2.3XML数据存储方式182.3本章小结193系统的需求分析与总体设计213.1系统开发背景213.1.1项目概况213.1.2沉降监测内容223.1.3沉降变形监测技术指标233.1.4观测数据格式要求253.1.5沉降预测方法273.2需求分析283.3系统的总体设计293.3.1基准点数据管理子系统设计293.3.2监测点数据管理子系统303.3.3监测数据录入子系统303.3.4沉降信息显绘子系统313.3.5沉降信息预测子系统323.3.6报表输出子系统323.3.7系统管理子系统333.4系统数据库设计333.4.1数据库设计步骤333.4.2本系统数据库详细设计343.5本章小结374几个关键技术的解决384.1沉降曲线的动态显示384.2利用VS开发PHP扩展实现沉降预测功能404.2.1VS开发环境的配置404.2.2扩展代码书写示例424.3报表输出444.4系统安全性与数据保密464.4.1系统安全性464.4.2数据的保密性485系统的设计与实现495.1系统登录界面与权限管理495.1.1MD5加密算法495.1.2用户权限控制505.1.3系统登录界面设计505.2观测数据上传系统525.2.1文件批量上传监测点高程信息525.2.2批量上传监测点属性信息535.2.3手工上传监测点属性信息545.2.4批量上传基准点高程信息555.3监测数据管理系统565.3.1监测点属性管理565.3.2监测数据管理575.4数据拟合与预测模块585.5数据统计与图形显绘子系统595.5.1监测点与基准点沉降表显示595.5.2查看整个断面的总沉降605.6报表输出子系统615.7系统管理子系统625.7.1发布公告625.7.2管理公告625.7.3管理用户信息625.7.4管理用户权限635.7.5更改用户密码635.8本章小结636总结与展望646.1总结646.2展望64参考文献66致谢681 绪论1.1 引言随着信息技术的日新月异,迅猛发展,计算机技术与网络技术已经融入到人们生活的每一个角落,人类已经进入到了一个信息高度爆炸的时代,各种信息充斥在网络上,分布在全球各地的计算机中。而与此同时,各种类型的对信息进行有效管理的信息管理软件也应运而生。特别是随着web2.0的浪潮的兴起,信息系统也开始进入了网络时代。各种基于网络的信息管理系统被应用在社会生活的各个方面,譬如政府办公、商贸经济、交通运输、文化教育等等。我国高速铁路正处于高速建设时期,由于高速铁路对铁路沿线沉降监测要求高,故沉降监测频率高,精度高,数据量大。因此,建立一个基于web的高速铁路沉降信息管理系统不仅可以对高铁沿线的沉降数据进行统一、高效、有序的管理,而且可以更好的为高层决策提供必要的、完善的的信息。1.2 论文研究的现实背景1.2.1 我国高速铁路的飞快发展高速铁路作为现代社会的一种新的运输方式,具有极为明显的优势。在运行速度上,目前最高时速可达350公里,正在建设的京沪高速铁路,其试验段最高时速已经达到486.1公里,堪称陆地飞行,在运输能力上,一个长编组的列车可以运送1000多人,每隔3分钟就可以开出一趟列车,运力强大,在适应自然环境上,高速列车可以全天候运行,基本不受雨雪雾的影响,在列车开行上,采取“公交化”的模式,旅客可以随到随走,在节能环保上,高速铁路是绿色交通工具,非常适应节能减排的要求1。随着我国经济的不断发展,社会的不断进步,高速铁路的建设正在蓬勃的发展。我国高速铁路发展规划,是2004年1月国务院常务会议讨论并原则通过的中长期铁路网规划确定的。规划提出,到2020年,全国铁路营业里程达到10万公里,主要繁忙干线实现客货分线,建设客运专线1.2万公里以上2。2008年,国务院根据我国综合交通体系建设的需要,对中长期铁路网规划进行了调整,确定到2020年,全国铁路营业里程达到12万公里以上,建设客运专线1.6万公里以上。根据中长期铁路网规划,我国高速铁路发展以“四纵四横”为重点,构建快速客运网的主要骨架,形成快速、便捷、大能力的铁路客运通道,逐步实现客货分线运输。“四纵”:一是北京上海高速铁路,贯通环渤海和长三角东部沿海经济发达地区;二是北京武汉广州深圳(香港)高速铁路,连接华北、华中和华南地区;三是北京沈阳哈尔滨(大连)高速铁路,连接东北和关内地区;四是上海杭州宁波福州深圳高速铁路,连接长三角、东南沿海、珠三角地区。“四横”:一是青岛石家庄太原高速铁路,连接华北和华东地区;二是徐州郑州兰州高速铁路,连接西北和华东地区;三是上海南京武汉重庆成都高速铁路,连接西南和华东地区;四是上海杭州南昌长沙昆明高速铁路,连接华中、华东和西南地区。同时,以环渤海地区、长三角地区、珠三角地区以及辽中南、山东半岛、中原地区、江汉平原、湘东地区、关中地区、成渝地区、海峡西岸等经济发达和人口稠密地区为重点,建设城际高速铁路,覆盖区域内主要城镇。1.2.2 高速铁路无砟轨道对沉降监测的要求较高由于高速铁路的列车运行速度较原有的普通列车有了很大的提高,因此原有的有砟轨道无法满足高速列车对运行平稳性与舒适性的要求。因此,自上世纪 6 0年代开始,世界各国相继开展了采用混凝土、沥青混合料等整体基础代替散粒体碎石道床的轨道结构等各类无砟轨道结构的室内模型和现场试验研究,如今一些国家和地区已经把采用无砟轨道作为发展高速铁路的主要技术政策3。与有砟轨道线路相比,无砟轨道线路具有平顺性高、稳定性好、使用寿命长、轨道几何形位能持久保持、线路养修工作量显著减少,对运营干扰小等突出的技术特点。在我国高速铁路的建设中,高速铁路全线铺设无砟轨道,并优先采用“以桥代路”的方式。采用这种方式主要是由于我国南方的地址结构决定的。南方沿线多为深厚软土,部分地段因超采地下水造成地面沉降。桥梁打桩比直接修在地面沉降小,轨道更平滑。此外,由于无砟轨道的建成后有无法调整的特点,故只有在线下工程或者路基的沉降基本稳定,达到铺设轨道的要求的时候才能铺设无砟轨道,因此轨道沿线的线下工程以及路基的沉降观测成为高速铁路测量工作中的重中之重4。无砟轨道对路基、桥涵、隧道等线下工程的工后沉降要求非常严格,要求工后沉降不大于15 mm,路桥、路隧结构物过渡段的不均匀沉降差不大于5 mm,纵向变形折角不大于0.1%5。1.2.3 目前我国高速铁路沉降信息管理上的不足经过我国专家对国外高速铁路技术的吸收再创新,我国高速铁路技术已经走在了世界的前列,但是在高速铁路沉降数据信息管理方面,还相对落后。现阶段我国高速铁路高速发展建设,一般而言是通过“分标段”的方式来建设,这种方式的好处是加快了我国高速铁路建设的速度,但是其对高速铁路整个线路的沉降监测工作造成了一定的影响,其影响主要表现在一下几个方面,1) 各标段的监测数据以“文件”的形式存在,沉降监测数据管理的方式仍停留在原始的文件管理阶段。2) 整个线路的监测数据,人为的被“标段”分割开,无法对数据进行统一、规范的管理,这必然导致在进行沉降监测评估的时候,只能局限于某一标段,而无法查看、分析整体的沉降监测情况。随着信息技术的发展,特别是网络技术与数据库技术的发展,这些技术将大大改变现有的沉降监测信息管理模式。其必将引领高速铁路沉降信息管理系统朝着“网络化”与“自动化”的方向发展。本文结合网络技术与数据库技术,并集合目前常用的沉降预测模型,建立一个基于网络的在线沉降信息管理系统。从而从整体上解决了高铁沉降数据被人为分割的状况,不仅可以分标段对沉降监测数据进行查看、分析,还可以对整个线路的数据进行分析、预测。此外,其还实现了对整个线路的数据进行统一管理与长期保存。1.3 论文研究的技术背景1.3.1 B/S架构的迅速发展与广泛应用B/S(Browser/Server)结构即浏览器和服务器结构。与C/S结构不同,其客户端不需要安装专门的软件,只需要浏览器即可,浏览器通过Web服务器与数据库进行交互,可以方便的在不同平台下工作。B/S结构兴起于20世界90年代末期,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层结构,如图1.1所示6。这样做,可以大大的减轻客户端的载荷,有利于减少系统维护与升级的成本和工作量,从而达到降低用户的总体成本的目的。图1.1 三层B/S结构图在B/S结构中,提供服务的流程一般是:用户通过各种浏览器像web服务器发送数据与请求,web服务器根据请求的类型的不同做出相应的回应,如果需要访问数据库,web服务器便向数据库服务器发送请求,进而获取相应的数据,在web服务器处理完请求之后,便将处理结果通过网络返回到浏览器,如下图所示。这就形成了典型的“瘦客户端,胖服务器”模式。图1.2 传统B/S结构示意图与传统的C/S结构相比,B/S结构的优点主要体现在以下方面71) 维护和升级方式简单目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。在一个较大规模的企业或单位中,系统管理人员如果对网络中的电脑进行单一的维护,不仅工作量巨大,效率也是非常低下的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,不需要对客户端做任何的维护。因此,不管用户的规模有多么的大,所有的操作只需要针对服务器进行,工作量不会因为用回规模的扩大而增加。如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向8。2) 平台多样化,降低了架设成本在服务器操作系统上windows并不是处于绝对的统治地位。目前流行的是,服务器端采用linux系统,不仅免费,而且安全性高。3) 减少了客户端的复杂度,操作更容易上手由于B/S结构是典型的“瘦客户端,胖服务器”模式,故客户端的作用只是用于提交数据和相应的请求,B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成9。因此,使用者上手更加容易,界面更加友好。1.3.2 管理信息系统的发展1 管理信息系统的概念管理信息系统(Management Information System,简称MIS),是对一个组织进行全面管理的人和计算机相结合的系统,它综合运用计算机技术、信息技术、管理技术和决策技术,与现代化的管理思想、方法和手段相结合,辅助管理人员进行管理和决策10。MIS一词最早出现在1970年,由瓦尔特肯尼万(Walter T.Kennevan)给出的:“以书面或口头的形式,在合适的时间向经理、职员以及外界人员提供过去、现在、未来的有关企业内部、外部环境的信息,以帮助他们决策。11”当然,随着计算机技术和网络技术的发展,管理信息系统越来越依赖于计算机技术,计算机技术在信息管理中所表现出来的作用越来越明显。因此在1985年,管理信息系统的创始人、明尼苏达大学卡尔森学院的著名教授高登戴维斯(Gordon B.Davis)给出了管理信息系统一个完整的定义:“他是利用计算机硬件和软件,手工作业,分析、计划、控制和决策模型,以及数据库的用户-机器系统。它能够提供信息,支持企业或组织的运行、管理和决策功能。”2 信息管理系统的特点从上面的定义我们可以看出,管理信息系统不仅仅是一个计算机应用系统,更是一个人机交互的系统,管理信息系统具有以下几个特点:一个组织的信息系统是为实现组织的目标而存在和发展的,它必须完成组织为实现其目标所需要的信息收集、传输、存储、加工和利用等信息处理活动。一个组织的信息系统可以是企业的供、产、销、库存、财务、计划、管理、控制、预测等综合系统,也可以是机关的办公事务处理系统、战略规划、信息服务等综合信息系统。 由于管理信息系统是人机系统,因此在系统中需要同时发挥人和计算机的长处,即人与计算机进行分工,二者和谐工作。在管理信息系统的实际应用中,应当更加重视人的作用,因为管理信息系统的技术已经比较完善了,充分发挥人的作用有助于管理信息系统与实际管理工作的结合。管理信息系统是一个综合系统,它既是人与技术的综合体,也是硬件与软件的综合体。它的设计与实施需要各种人员的参与,包括管理人员、系统分析人员、系统设计人员、程序员和工作人员等;它包括了计算机、通信工具、网络设备等硬件设备;在软件方面,它不仅包括系统软件、应用软件,还包括组织的规章制度和岗位职责等。 管理信息系统是动态的,即它具有生命周期。随着组织外部环境和内部条件的变化,我们可以通过对系统不断进行维护,以尽可能延长其生命周期,但管理信息系统的生命周期仍将会终结,需要开发新的系统来适应新的环境,如此周而复始。管理信息系统的主要功能如下:1) 数据处理包括数据收集和输入,数据传输、数据存储、数据加工处理和输出。它准备和提供统一格式的信息,使各种统计工作简化,使信息成本最低。2) 预测功能运用现代数学方法,统计方法或模拟方法,根据过去的数据预测未来的情况。3) 计划功能根据企业提供的约束条件,合理地安排各职能部门的计划,按照不同的管理层,提供相应的计划报告。4) 控制功能根据各职能部门提供的数据,对计划的执行情况进行监测、检查、比较执行与计划的差异,分析产生差异的原因,辅助管理人员及时以各种方法加以控制。5) 辅助决策功能采用各种数学模型和所存储在计算机中的大量数据,及时推导出有关问题的最优解或满意解,辅助各级管理人员进行决策,以期合理利用人、财、物和信息资源,取得较大的经济效益。3 管理信息系统的发展现状随着系统科学、管理科学、现代通信技术,特别是计算机技术的跨越式发展以及信息技术的广泛应用,管理信息系统的发展也经历了从处理单项任务到处理综合事务,从单机应用到网络应用,从电子数据处理到管理信息系统,再到决策支持系统的发展历程。总的来说,管理信息系统的发展可以分为以下4个阶段,l 20世纪50年代之前,人们处于“手工和机械方式的数据处理”时代,这个时候人们对信息的处理于管理主要依赖于手工,而到了工业社会,人们已经开始尝试了机械化的数据处理,到18世纪末期,出现了每分钟可以处理200张卡片的穿孔卡片机,在20世纪上半叶,人们曾经使用光电穿孔方法进行工资处理12。l 20世纪50年代,随着计算机的出现,信息管理系统也进入了“电子数据处理”阶段。计算机的出现,代替了原始的手工数据处理,大大提高了数据处理的效率,并提高了数据处理的准确性、时效性,大大的节省了人工成本。l 进入70年代,数据库技术、网络技术以及管理科学的迅速发展,使得“管理信息系统”逐渐起来。该阶段,在企业中全面实现了计算机管理。可以在企业各职能部门实现数据处理的基础上,通过计算机网络连接起来,形成分布式企业管理信息系统,实现数据的充分共享。同时,在管理科学上开发了一大批为管理服务的预测、决策模型,决策支持系统发展起来,这又为管理信息系统的发展提供了新的模型与方法。管理信息系统正朝着网络化、集成化趋势发展13。l 20世纪90年代处,计算机软硬件的发展呈爆发式,而人工智能等技术也越趋于成熟,因此也催生了诸如决策支持系统、专家系统等更加高级的管理信息系统。战略信息系统(Strategic Information System)、专家系统(Expert System)和办公自动化系统(Office Automation )等各种更为智能的管理信息系统陆续出现。这些系统最大的特点是其模拟了人类的思维方式和方法,在信息的管理和企业的决策上起着越来越重要的作用。1.4 本论文研究的现实意义我国高速铁路迅猛的发展、无砟轨道对沉降监测的高要求、沉降数据的巨大数据量以及现阶段我国高速铁路沉降数据管理所存在的不足,这些因素表明传统的沉降数据管理方式已经大大的落后于时代,现有的沉降数据管理软件已经无法满足高速铁路沉降数据处理的要求。因此,需要一个完善的在线沉降信息管理系统,能够及时的、快速的保存数据,并实现数据分析、超限预警、报表输出等功能。从而可以为相关部门的决策提供必要的、及时的参考资料。1.5 论文的主要研究内容本文根据目前变形分析的常用方法,利用PHP语言与MySql数据库作为项目开发的主要技术,开发过程的流程与所需技术如下图所示。图1.3 系统开发流程与所需技术本论文主要研究内容如下:1) 研究B/S模式下所需的各种网络技术,如PHP技术,Javascript,Ajax,Jquery,PHP-Extension以及本文所采用的B/S结构。2) 整理分析石武高铁沉降监测数据,确定数据格式,从而确定数据库设计模式3) 确定开发环境、模块划分、服务器配置、以及开发所需语言4) 对各个模块进行拆解分析,确定各个模块所需的算法和技术5) 整合各个模块,建立起一套基于web的高速铁路沉降信息管理系统的原型,并进行系统测试。2 系统开发环境与开发技术2.1 服务器端技术与数据库2.1.1 Apache WEB服务器Web服务器也称为WWW(World Wide Web)服务器,主要使用应用层的HTTP(Hypertext Transfer Protocol)协议,提供统一资源定位服务(URL,Uniform ResourceLocator)和信息浏览服务14。Apache是世界排名第一的web服务器, 根据netcraft(sraft.co.uk)所作的调查,目前全世界有超过1亿的网站在使用Apache服务器.与其他web服务器如(微软的IIS)相比,Apache具有免费、开源、支持跨平台(Apache可以在Windows、Linux、Unix等平台上运行)、安装方便、配置简单、执行效率高、便于管理等优点。鉴于Apache以上的优点,本文Apache服务器最为本系统的WEB服务器。2.1.2 PHPPHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP是一门专门用于网络服务器端开发的语言15。PHP是一种HTML内嵌式的语言,是一种在服务器端执行的“嵌入HTML文档的脚本语言”,PHP的语言风格于C语言较为类似,其独特的语法混合了C、Java、Perl以及PHP自创新的语法,令人耳目一新,它可以比 CGI 或者 Perl 更快速的执行动态网页16。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多,与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,充分利用了服务器的性能,PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一17。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实。PHP还具有高性能、内置与许多不同数据库系统的接口、并且内置许多常见Web任务所需的函数库、低成本、易学习使用、对面向对象的高度支持、可移植性、源代码与技术支持可供使用等诸多优点18。此外,由于PHP的代码是开源的,而且具有良好的跨平台性,因此,PHP不仅可以再windows操作系统上运行,更是可以在Linux、Unix等平台上运行。PHP工作原理图如图2.1图2.1 PHP工作原理图根据上图所示,当用户访问到一个PHP页面或者含有PHP语句的页面的时候,整个解析过程需要以下几步:1) 用户在浏览器中输入请求地址2) 浏览器向web服务器发送请求3) 浏览器接收到请求,并根据语法判断是否存在PHP语句4) PHP应用程序服务器解析PHP语句,并生成相应的HTML静态页面5) WEB服务器将解析后的HTML静态页面发送到浏览器6) 浏览器解析HTML页面,显示给用户根据2007年4月的统计数据,PHP已经被安装在超过2000万个网站和100万台服务器上。在GOOGLE搜索引擎中,用PHP作为关键字进行搜索,可以搜索到7,860,000,000条搜索结果。之所以PHP在网站构建方面如此火热,主要是因为以下几个原因1) 良好的开放性和可扩展性。PHP的源码是公开的,所以根据自己的需求为开发PHP扩展是意见很容易的事情。2) 拥有强大而且广泛的数据库支持。php支持多种数据库如: dbm、filepro、informix、interbase、mysql、microsoft sql server、solid、sybase、oracle等。目前常用的而且成熟的是PHP+MySQL。3) 面向对象编程。PHP提供了类和对象。为了实现面向对象编程,PHP4及更高版本提供了新的功能和特性,包括对象重载、引用技术等。4) 具有丰富的功能。从对象式的设计、结构化的特性、数据库的处理、网络接口应用、安全编码机制等,PHP几乎涵盖了所有网站的一切功能。5) 兼容C语言语法,上手容易。任何有C语言基础的人,都可以在12周内掌握PHP语言,并可以逐步进行开发。6) 非常强大的容错能力。PHP是一门弱类型语言,在PHP中申请一个变量,可以不用申明其类型,这个变量可以作为数字,也可作为数组,还可以作为字符串。PHP与传统的ASP、JSP等语言的区别如下表:表2.1 PHP与ASP、JSP对比表比较项目PHPASP.NETJSP操作系统支持Windows、Linux、Unix等大部分操作系统WindowsWindows、Linux、Unix等大部分操作系统服务器支持IIS、Apache等大多数服务器IISIIS、Apache等大多数服务器跨平台良好的跨平台性需要第三方支持良好的跨平台性主要开发工具Zend StudioVisual StudioJBuilder数据库支持非常强弱强开发时间短短长网络性能强弱较弱安全性强一般强稳定性强弱强应用范围很广广较窄学习难度简单简单难是否开源是否是OOP强(PHP5)强强函数支持多少不定2.1.3 MySQL数据库MySQL 是一个真正的多用户、多线程 SQL 数据库服务器。MySQL 是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,MySQL 主要目标是快速、健壮和易用,关键的是它是免费的,可以在Internet上免费下载到,并可免费使用19。MySQL 对于一般中小型,甚至大型应用都能够胜任。除了支持标准的ANSI SQL语句,它还支持多种平台,而在Unix系统上该软件支持多线程运行方式,从而能获得相当好的性能。对于不使用Unix的用户,它可以在Windows NT系统上以系统服务方式运行,或者在Windows 95/98系统上以普通进程方式运行。MySQL的特点除了免费之外,还有以下特点1) 使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性。2) 支持FreeBSD、Linux、Mac OS、Solaris、Windows等多种操作系统。3) 为多种编程语言提供了API。这些编程语言包括C、C+、Java、Perl、PHP、Python、Ruby等。 4) 支持多线程,充分利用CPU资源。5) 优化的SQL查询算法,有效地提高查询速度。6) 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。7) 提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。8) 提供TCP/IP、ODBC和JDBC等多种数据库连接途径。9) 提供用于管理、检查、优化数据库操作的管理工具。10) 可以处理拥有上千万条记录的大型数据库。MySQL与微软的MS SQL Server作为目前网站常用的两种数据库,MySQL与微软的MS SQL Serve2005r的区别如表2.2所示:表2.2 MySQL与MS SQL Server 2005对比对比项目MySQLMS SQL Server2005版权费用开源软件, 大部分版本免费Windows 任何 200美元Unix或Linux 自行安装 免费Unix或Linux 第三方安装 200美元版权软件,收费标准版高达$5,999企业版更是高达$24,999支持平台类型各种平台,比较适合Linux、Unix平台只能在Windows平台访问速度默认MyISAM存储引擎,速度很快速度较快数据类型字段类型多, 字符串最大支持65536多,字符串最大支持8000管理方式比较容易图形化界面,非常容易开发软件C,C+,JAVA(JDBC),Perl,Python,PHP and TCL 的API接口等C,C+,JAVA(JDBC),asp等事物操作INNODB存储引擎下支持,速度比较慢支持,速度比较快SQL语法支持支持大部分,不支持某些扩展SQL语法支持全部中文支持支持中文但开发和转移数据时容易出现中文字符问题全中文环境数据导入导出较难,速度快的是字符操作界面图形化界面,很容易维护监控在第三方软件支持下较为容易容易用户安全很高比较低备份恢复简单简单第三方软件很多很多病毒风险低高开发难度较高低存储过程INNODB存储引擎下支持,速度较慢不容易使用支持,图形化查看编辑界面容易使用综合比较了上述两种数据库系统,本文决定采用MySQL作为本文数据的数据库,原因有以下几点,1) MS SQL Server2005数据库过于昂贵,对系统开发的预算要求较高由于本系统最终的运行平台可能不仅仅限于Windows平台,故要求数据库能对多平台给予支持,从上表看出,MS SQL Server2005仅仅支持Windows平台,局限性太大。2) 由于本系统后台采用的是PHP进行编写,从上表中,我们可以看到,微软的MS SQL Server2005并不支持PHP进行开发。而MySQL与PHP是目前市面上最流行的建站组合,PHP的PDO(PHP Data Objects)20使得PHP访问MySQL数据库非常的方便。3) 由于本系统的专业性,其操作的数据专业性、保密性较强,故系统对数据库的安全性提出了很高的要求,MySQL在安全性的方面大大高于微软的MS SQL Server。本文在管理数据库时,采用了拥有图形界面的phpMyAdmin。phpMyAdmin 是一个用PHP编写的,可以通过web方式控制和操作 MySQL 数据库。通过 phpMyAdmin 可以完全对数据库进行操作,例如建立、复制、删除数据等等。phpMyAdmin采用图形界面从而使得MySQL的操作更加直观和友好21。2.1.4 PHP-Extension技术PHP取得成功的一个主要原因之一是她拥有大量的可用扩展。web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到。PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内的许多扩展。当然,这些扩展可以由PHP发行商提供之外,我们自己也可以为PHP写扩展。PHP是一门解释形语言,而且是一门弱类型语言。这两个特点决定了PHP在进行数值运算,特别是进行迭代运算的时候,效率变的极其低下。在对常用的动态网页技术进行循环性能测试的时候,对JSP进行2000*20000的循环测试,用时4s,对ASP进行2000*2000的循环测试耗时63s,对PHP进行2000*2000的循环测试耗时84s22。通过上面的实现看,可以说明,在需要进行精确的数值运算的情况下,PHP的执行效率不尽人意。此时,就应该考虑对PHP进行扩展,通过扩展的形式,使其适应我们系统中的某些数值运算的需要。PHP主要以三种方式来进行扩展:外部模块,内建模块和Zend引擎。1) 外部模块 外部模块可以在脚本运行时使用dl()函数载入。这个函数从磁盘载入一个共享对象并将它的功能与调用该函数的脚本进行绑定并使之生效。脚本终止后,这个外部模块将在内存中被丢弃。这种方式有利有弊,如表2.3所示:表2.3 外部模块优缺点优点缺点外部模块不需要重新对PHP进行编译每次脚本调用时都需要对其进行加载,速度较慢PHP通过“外包”方式来让自身的体积保持很小附加的外部模块文件会让磁盘变得比较散乱外部模块非常适合开发第三方产品,较少使用的附加的小功能或者仅仅是调试等这些用途。为了迅速开发一些附加功能,外部模块是最佳方式。2) 内建模块 内建模块被直接编译进PHP并存在于每一个PHP处理请求当中。它们的功能在脚本开始运行时立即生效。和外部模块一样,内建模块也有各有利弊,列表如下:表2.4 内部模块优缺点优点缺点无需专门手动载入,功能即时生效。修改内建模块时需要重新编译 PHP无需额外的磁盘文件,所有功能均内置在PHP二进制代码当中。PHP二进制文件会变大并且会消耗更多的内存。3) Zend 引擎 当然,也可以直接在Zend擎里面进行扩展。如果你需要在语言特性方面做些改动或者是需要在语言核心内置一些特别的功能,那么这就是一种很好的方式。但一般情况下应该尽力避免对Zend引擎的修改。这里面的改动会导致和其他代码的不兼容,而且几乎没有人会适应打过特殊补丁的Zend引擎。况且这些改动与主PHP源代码是不可分割的,因此就有可能在下一次的官方的源代码更新中被覆盖掉。因此,这种方式通常被认为是“不良的习惯”。本系统对PHP扩展的要求主要在于数值计算方面,目的是通过PHP扩展提高数值计算的效率和速度,并不涉及到PHP内核。因此本文对PH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论