基于LAMP的网络在线投票系统的设计与实现文献综述

基于LAMP的网络在线投票系统的设计与实现文献综述

ID:479806

大小:55.50 KB

页数:7页

时间:2017-08-09

上传者:U-944
基于LAMP的网络在线投票系统的设计与实现文献综述_第1页
基于LAMP的网络在线投票系统的设计与实现文献综述_第2页
基于LAMP的网络在线投票系统的设计与实现文献综述_第3页
基于LAMP的网络在线投票系统的设计与实现文献综述_第4页
基于LAMP的网络在线投票系统的设计与实现文献综述_第5页
资源描述:

《基于LAMP的网络在线投票系统的设计与实现文献综述》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

文献综述基于LAMP的网络在线投票系统的设计与实现一、前言部分写作目的:介绍了lamp在网站建设中的相关知识,并且介绍了相关的成熟技术及成品,熟悉lamp技术的应用,以加深对lamp在网站建设这方面知识的理解,为此类系统的开发提供一定的启发性和指导性。相关概念:Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案[3]。争论焦点:目前,主要是在LAMP和Java之间有所争论。Java虽然技术很成熟,随着互联网开源潮流的迅速发展,全球IT业正迎来一个新的发展格局成长期。对全球的开源体系——LAMP(Linux、Apache、MYSQL、PHP)而言,其所代表的开源软件及应用,以其开放性、低成本、安全性、适用性以及可靠性能,正对传统软件、硬件和系统集成商产生巨大的冲击,同时,也给创新型IT企业、程序开发者创造了前所未有的机遇。作为软件行业风尖浪口的Java,几多褒贬,几多称赞。LAMP宣称,在Linux系统下开发软件不再需要层的概念了,Java不再是唯一的选择了[9]。LAMP在英语中是“灯”的意思,但是在IT行业当然不是那么简单的一个意思,这个术语在德国十分流行,代表了Linux平台上的Apache网站服务器、MySQL数据库以及Perl、Python或者PHP编程语言的结合。笔者相信,这个术语也会在我们中国的开放源代码界,乃至整个网络界开始流行,LAMP不仅会成为企业上网,政府上网的“明灯”,也应该会在企业内部实施的Intranet大有作为。LAMP开源软件——包括Linux操作系统、Apache网络服务器、MySQL数据库和PHP——正在进军主流计算市场[14]。 Java与.Net工具一统商业软件开发领域已数年,但是具有易于开发、更新速度快、成本低的特点,LAMP被许多开发者视为“黄金组合”,在近几年中由LAMP集体开源厂家,或者确切的说LAMP开源自由社区吹响向主流计算市场发起进攻的号角。甚至在2005年的TechEd大会上,微软总裁鲍尔默以“微软有能力抵挡LAMP的进攻”的用词,将LAMP列为Windows和它的.Net开发软件的竞争者。IBM、Intel、HP、SUN等众多厂家提出开源贡献口号,收购开源公司;Intel、SAP投资PHP公司,Zend科技;LAMP的开源和发展潜力可见风头正盛。LAMP所代表的不仅仅是开放源码,它更是开发和实施高性能Web应用的重要平台。如果说Apache能代表LAMP的占有率的话,那么,采用LAMP的站点几乎就已经是占据了主要的市场,看看Netcraft每月的调查就可以知道Apache的流行程度。国外的开放源码站点,例如Apacheweek、MySQL.com、Perl.com等自不必说,现在国内的很多站点也开始扑向LAMP[10]。而Java的应用范围更加的宽广。可以开发桌面程序,手机游戏、DVD播放器及应用服务器等。Java与某些软件有着天然的内在联系,如Database,ERP等。其次,Java有大量的开源社区支持,看看Apache的Portfolio或SourceForge就明白这一点,这是Java发展快速的主要原因之一。采用Java作为平台而开发的软件,稳定地运行在各种操作系统上,相对竞争对手其它语言,如C++或C语言,极大的提高了人们的生产力。第三,Java开发平台的多样性。有多种JDK可以供选择,包括Sun、IBM、Bea及开源的JDK.同时,有大量的应用服务器可供选择,如开源阵营的JBoss应用服务器、Apache的Geronimo、Sun的Glassfish等等。除此之外,还有大量的商业服务器平台[11]。第四,和Java相比,PHP和Python等脚本语言更容易学习,它们在开发人员当中相当的流行,尤其是那些网页开发者。很多人,包括一些前Java语言的拥护者都认为,脚本语言和所谓的LAMP开源部件正在蓬勃发展,而这种发展减弱了Java的影响。但是,有一点经常被人遗忘,那就是,Java是一种两种层面上的语言:它既是一种虚拟机,同时它也是一种ASCII语言。很多人看不到Java作为虚拟机的神奇之处,因为非常多的脚本语言就是建立在这种虚拟机之上的。LAMP组合正在逐渐获得市场认可,但是它已经具有追上非开源竞争者的实力吗?生活中最好的东西真的是免费的吗?开源支持者们当然愿意让我们相信这一点。多年以来,他们已经将不断改进的LAMP组合作为构建商业系统并使之运转的一条免费之路[5]。 但是LAMP组合也有一些潜在的缺点。开源组合和私有软件的一个明显区别在于新特性。私有软件提供商的发展依赖于增长率,也就是说需要不断增加销售额。这就使得他们要不断开发新品。另一方面,开源开发没有这样的环境,就是说创新的步伐经常要慢许多。你很少看到走在前沿的创新是开源产品。例如,当微软在SQLServer中开发XML作为一个本地数据类型的时候,开源MySQL数据库才刚刚将存储程序作为一个新特性,这比它的竞争对手落后了好几代[6]。同时扩展可能是对LAMP用户的一个挑战。使用集群计算机或刀片服务器和诸如RedHatLinux这样的企业级系统扩展到LAMP系统是可能的,但是这并不容易。在许多公司,LAMP仍然没有得到正式认可。但是在开源开发模式中,人人都可以做出贡献,这将推动LAMP比Java或.Net更快的前进。不过,LAMP也不可能把现有的Java和.Net两大阵营消灭,因为大的公司客户都不会只采用一套软件。应用促进开源发展,理念走向务实应用。与欧美相比,国内的LAMP架构在企业关键应用中的应用还有待提高。目前我国LAMP应用存在的问题:国内开源数据库的应用已经开始起步了,但是开发还没有和开源技术挂钩。LAMP要发展,能否做出商业软件是关键。LAMP的商业化过程存在严重的问题。例如,PHP的产品给人留下的似乎就是,技术很好,但是客户体验服务没跟上,包括安装提示,升级以及Bug反馈等等服务都很粗糙,客户宁愿去选中商业化更浓的Java或.Net.毫无疑问的是,LAMP组合拥有其自身的价值,但是要小心地使用它。它是为新兴商业系统和概念业务系统的可行性寻找证据的优秀工具,但是它也需要适当的关心和关注以变得更加高效[11]。二、主题部分1.LAMP的发展简史:Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案. LAMP这个特定名词最早出现在1998年。当时,MichaelKunze为德国计算机杂志c't写作的一篇关于自由软件如何成为商业软件替代品的文章时,创建了LAMP这个名词,用来指代Linux操作系统、Apache网络服务器、MySQL数据库和PHP(Perl或Python)脚本语言的组合(由四种技术的开头字母组成)。由于IT世界众所周知的对缩写的爱好,Kunze提出的LAMP这一术语很快就被市场接受。O'Reilly和MySQLAB更是在英语人群中推广普及了这个术语。随之LAMP技术成为了开源软件业的一盏真正的明灯[10]。目前,几乎在所有的Linux发布版中都默认包含了“LAMPstack”的产品。这些产品组成了一个强大的Web应用程序平台。“LAMPstack”中的每一个组件都是一个FOSS(免费或者开源软件/FreeorOpenSourceSoftware)的实例。FOSS方法的好处有三个方面。第一,FOSS软件的性质意味着应用程序可以免费下载,能够让更广泛的人们不用付费就可以使用这个应用软件。这种免费的方式对于广大用户特别具有吸引力。这些用户如果不使用免费的软件就需要付费购买“专业”的商用软件工具。这在制作网站方面通常是一种昂贵的步骤。FOSS许可证是开放式的,因此对于基于FOSS技术的应用软件的使用和限制都非常少。不需要为软件的发布支付任何许可证费就可以开发和应用基于LAMP的工程。因此,这对业余爱好者和专业人员都非常有吸引力。FOSS技术(包括LAMP)的增长和使用的主要原因是因为用户能够访问其资源,修复故障和改善应用软件的性能都非常容易。与开源软件许可证结合在一起,这种方法为许多企业简化了开发过程,并且为企业提供了专有软件或者商业软件的限制中所没有的灵活性[14]。LAMP平台由几个组件组成,呈分层结构。每一层都提供了整个软件栈的一个关键部分:Linux和windows:Linux和windows处在最低层,提供操作系统。其他每个组件实际上也在其上运行。但是,并不一定局限于Linux和windows,如有必要,其他组件包括:MacOSX或UNIX。Apache:次低层是Apache,它是一个Web服务器。Apache提供可让用户获得Web页面的机制。Apache是一款稳定的、支持关键任务的服务器,Internet上超过65%的网站都使用它作为Web服务器。PHP组件实际上是在Apache中,动态页面可以通过Apache和PHP创建。MySQL:MySQL提供LAMP系统的数据存储端。有了MySQL,便可以获得一个非常强大的、适合运行大型复杂站点的数据库。在Web应用程序中,所有数据、产品、帐户和其他类型的信息都存放在这个数据库中,通过SQL语言可以很容易地查询这些信息[9]。PHP:PHP是一门简单而有效的编程语言,它像是粘合剂,可以将LAMP系统所有其他的组件粘合在一起。您可以使用PHP编写能访问MySQL数据库中的数据和Linux 提供的一些特性的动态内容。Perl:Perl是一种脚本语言。这表示它并不编译成可执行程序,而是在运行时进行解释的一组指令(脚本)。Perl是代表“实际抽取和报告语言”(practicalextractionandreportlanguage)的字首组合词。Perl被誉为语言中的“瑞士军刀”。它功能强大且非常灵活。语言学家LarryWall在廿世纪八十年代后期在NASA担任系统管理员时开发了Perl。他创建Perl的目的是使构建报告的任务变得更简单。Perl现在用来执行许多任务。它也许是用于在Web上进行CGI(公共网关接口)编程最流行的语言。其原因就是Perl是一种功能非常强大的文本处理器,而Web编程主要就是文本处理。另外,使用Perl通常比使用C/C++、Java或Tcl更简单,而且它比Python更早出现。Perl被称为是一种“胶水语言”。所谓胶水语言,也就是说它是可以用来将许多元素连接在一起的语言[7]。Python:Python一种交互式面向对象的解释型编程语言。Python使用非常清晰的语法实现非常强大的功能。它具有模块、类、意外处理以及非常高级别的动态数据类型和动态定义。并且,它具有接口和库函数供多种系统调用。内建模块还可以使用C或C++语言方便地编写。对于用户界面的编程,Python同样能够胜任。Python可以运行在Linux、UNIX、Windows、DOS、OS/2、Mac以及Amiga等等多种环境下。Python虽然有版权,但完全可以免费使用和分发,甚至是为了商业用途。早期安装一个LAMP系统是比较负责的,随着Linux的普及现在安装一个LAMP系统变得比较简单另外许多Linux发行版本(Redhat、Debian)安装时可以自动配置Apache、php、mysql等组件[2]。2.国内外研究现状:目前,几乎在所有的Linux发布版中都默认包含了“LAMPstack”的产品。这些产品组成了一个强大的Web应用程序平台。“LAMPstack”中的每一个组件都是一个FOSS(免费或者开源软件/FreeorOpenSourceSoftware)的实例。FOSS方法的好处有三个方面。第一,FOSS软件的性质意味着应用程序可以免费下载,能够让更广泛的人们不用付费就可以使用这个应用软件。这种免费的方式对于广大用户特别具有吸引力。这些用户如果不使用免费的软件就需要付费购买“专业” 的商用软件工具。这在制作网站方面通常是一种昂贵的步骤。FOSS许可证是开放式的,因此对于基于FOSS技术的应用软件的使用和限制都非常少。不需要为软件的发布支付任何许可证费就可以开发和应用基于LAMP的工程。因此,这对业余爱好者和专业人员都非常有吸引力。FOSS技术(包括LAMP)的增长和使用的主要原因是因为用户能够访问其资源,修复故障和改善应用软件的性能都非常容易。与开源软件许可证结合在一起,这种方法为许多企业简化了开发过程,并且为企业提供了专有软件或者商业软件的限制中所没有的灵活性[1]。3.未来发展趋势:LAMP组合以其简单性、开放性、低成本、安全性和适用性,受到越来越多的Web开发人员的欢迎和喜爱。虽然这些开放源代码程序本身并不是专门设计成同另外几个程序一起工作的,但由于它们都是影响较大的开源软件,拥有很多共同特点,这就导致了这些组件经常在一起使用。而且这些组件的兼容性在不断完善,在一起的应用情形变得更加普遍。并且它们为了改善不同组件之间的协作,创建了一些扩展功能。目前,几乎在所有的Linux发布版中都默认包含了这些产品。Linux操作系统、Apache服务器、MySQL数据库和PHP语言,这些产品共同组成了一个强大的Web应用程序平台。LAMP中的成员都是源码开放的,这意味着其代码的核心部分可以被免费使用,所有源码、文档都可以在相应的官方网站上获得,用户都可以自由复制、编译、分发和拷贝。任何一个LAMP项目都属于自己,并且可以自行处理。正是由于这种开源精神,才使得LAMP社区可以聚集众多爱好者,也使得LAMP有如此迅猛的发展,而且更新速度,以及发现和修正错误的速度都是非常快的[8]。现在越来越多的供应商、用户和企业投资者逐渐认识到,使用LAMP单个组件的开源软件组成的平台,用来构建以及运行各种商业应用和协作构建各种网络应用程序,变得更加具有竞争力,更加吸引客户。LAMP无论是性能、质量还是价格都将成为企业、政府信息化所必须考虑的平台,并逐渐开始于面向企业级应用发展。Apache+PHP+MySQL被认为是在Linux平台上最佳组合之一[2]。.三、总结部分本文较为详细地阐述了有关lamp方面的知识,回顾历史,立足现实,展望未来。今后随着信息技术的发展和lamp应用领域的逐步增加,lamp产品的差异化发展将逐步明显。lamp的尖端发展趋势也将包括智能化、一体化、集成化,这将极大地提高lamp在网站开发方面的应用性能及适用性。lamp是实现最简单的网站建设和开发,是网络和开发技术方面的革新与新的思路,我们应注重这方面的研究。 四、参考文献[1]LUPA编著.LAMP系统工程师实用教程[M].北京:科学出版社,2008.[2]麦其.深入PHP4编程技术[M].北京:中国石化出版社,2000.[3]四维科技.PHP网络编程技术与实例[M].北京:人民邮电出版社,2006.[4]BillMcCarty.PHP4开发指南[M].北京:清华大学出版社,2002.[5]JeffreyD.Ullman,JenniferWidom.AFirstCourseinDatabaseSystems[M].北京:清华大学出版社,1998.[6]JohnW.Satzinger等.系统分析与设计(英文版第4版)[M].北京:机械工业出版社,2008.[7]LAMP网站开发黄金组合LINUX+APACHE+MYSQL+PHP[M].北京:电子工业出版社,2004.[8]LAMP从入门到精通[M].浙江:浙江大学出版社,2006.[9]LAMP开发实践教程[M].北京:中国铁道出版社,2005.[10]LAMP系统工程师实用教程[M].北京:科学出版社,2008.[11]Linux操作系统之奥秘[M].北京:电子工业出版社,2007.[12]PHP+MySQL八大动态Web应用实战[M].北京:电子工业出版社,2005.[13]完美应用Ubuntu[M].北京:机械工业出版社,2006.[14]Linux系统最佳实践工具:命令行技术[M].北京:电子工业出版社,2007.[15]Apache模块开发指南=Theapachemodulesbook:applicationdevelopmentwithapache[M].北京:电子工业出版社,2003.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭