多用户博客系统设计与实现——毕业设计论文.doc
《多用户博客系统设计与实现——毕业设计论文.doc》由会员分享,可在线阅读,更多相关《多用户博客系统设计与实现——毕业设计论文.doc(87页珍藏版)》请在三一办公上搜索。
1、北京理工大学毕业设计(论文)论文题目: 多用户博客系统设计与实现 专 业: 计算机科学与技术 学生姓名: 指导老师: 摘要多用户博客系统是一个以文章形式来发布自己所见、所得、所闻、体会等的互联网信息发布系统,类似个人网站,但它更强内容的私有性,用户有权力不公开自己的文章。本文以博客日志发布管理为基础,并结合其实际需求,详细简述了多用户博客系统设计、开发的全过程。本系统主要功能包括博客的日志发布、分类和评论等。除了这些基本功能外,还有博客风格更改、模块设置和页面布局更改等个性化功能。开发过程中,采用了MVC分层思想,设计了专门的缓存策略,运用了当今比较流行的Web前端开发技术Ajax、Javas
2、cript等.本系统基于B/S架构,采用PHP为开发语言、MySQL为数据库的LAMP开发平台,结合功能强大的开源框架ZendFramework为开发框架,从而保证了整个系统稳定、快速、高效的运行。关键词:博客,Web2.0,LAMP,缓存,个性化,稳定性AbstractMulti-user blog system is one of the aritlce form to publish their own findings obtained, the smell, experience and other Internet information release system。simila
3、r to the personal website, but its more private nature of the content, the user has the power to not open their own articles.In this paper, based on post publishing and management, combined with their actual requirement, detailed description of the multi-user blog system design and development at th
4、e entire process. The main features include post publish, category and comments, etc. In addition to these basic functions described, it will also blog-style changes, the module settings and change page layout, etc. in the development process, using the MVC layered thinking, design a special caching
5、 strategy, the use of todays popular Web front-end development technologies Ajax, Javascript, etc.The system is based on B / S structure, to use PHP language and MySQL database for the development of the LAMP development platform, combined with a powerful open-source PHP framework for ZendFramework
6、as a development framework, thus ensuring the entire system is stable, fast, and efficient.Key words:Blog, Web2.0, LAMP, cache, personalization, stable目录前言IV第1章 系统技术方案11.1方案分析11.2开发工具11.2.1关于PHP21.2.2关于MySQL21.2.3关于Apache21.2.4关于 ZendFramework21.2.5关于JavaScript31.2.6关于Ajax31.2.7关于MVC3第2章 可行性分析52.1市场
7、分析52.2经济分析52.3技术分析7第3章 需求分析83.1性能要求83.2运行环境要求83.2.1硬件环境83.2.2软件环境83.3功能分析83.3.1系统概述83.3.2基本功能要求93.3.3用户分析93.3.4功能详细说明10第4章 总体设计154.1功能模块划分154.2数据库设计154.2.1users用户表164.2.2spaces 空间信息表174.2.3blogs 日志表174.2.4comments 评论表184.2.5categoryies 系统分类表194.2.6itemtypes 用户自定义分类表194.2.7mods 模块表194.2.8modsettings
8、模块设置表204.2.9ipban 禁止ip表204.2.10tags 标签表204.2.11tag_items tag和item关联表204.2.12attachments 附件表214.2.13trashblogs 删除日志表224.3系统架构224.4系统运行机制23第5章 详细设计与编码实现265.1自定义类库介绍265.1.1Tswc_Cache 缓存类265.1.2Tswc_Pager 分页类285.1.3Tswc_Db 数据库操作类295.1.4Blog_Global 全局函数类295.2代码编写说明305.2.1代码组织结构305.2.2系统可用全局对象325.3系统各功能具体
9、实现345.3.1注册登录345.3.2日志管理345.3.3用户自定义分类管理415.3.4博客设置465.3.5风格设置475.3.6布局设置495.3.7版式设置585.3.8模块设置605.3.9日志列表635.3.10日志浏览645.3.11发布评论685.3.12浏览评论69第6章 系统的扩展性716.1垂直扩展716.2水平扩展716.2.1负载均衡726.2.2扩展MySQL73第7章 系统测试757.1链接测试757.2表单测试757.3浏览器兼容测试767.4连接速度测试767.5压力测试76结论78致谢80参考文献81前言随着互联网技术的高速发展和日益的普及,互联网用户迅
10、速增加,用户对互联网的寄托也发生了翻天覆地的变化,用户不甘于只单单的被动的接受互联网提供的内容,更希望能够加入到内容制造的大家庭中,这时传统的Web应用已经显得力不从心,而Web2.0的出现,极大的改变了这一局面。所谓Web2.0其核心就是用户不只是内容的被动浏览者,同时也是内容的制造者。正是因为整个互联网产品设计理念的重大变化,具有代表性的Web2.0时代的互联网产品也就相继出现,如:论坛,博客、威客,社区、RSS和SNS等。博客也称为网络日志,是blog的谐音,由很多经常更新的帖子(也叫日志或者个人文章)顺序倒序排列,最新的帖子在最上面,这些帖子的内容不一定要长篇大论,具体内容格式也没有任
11、何要求,它以个人纯粹的个人想法和心得,包括你对时事新闻、国家大事的个人看法,或者一日三餐、服饰打扮的精心料理等,也可以是在基于某一主题的情况下或者是在某一共同领域内由一群人集体创作的内容。类似于传统的“网络日志”,但又不同于传统的“网络日志“,传统的”网络日志“是带有显示的私人性质的,而博客则是私人性和公共性的有效结合,绝不仅仅是纯粹个人思想的表达和日常锁事的记录,它所提供的内容可以用来进行交流和为他人提供帮助,是可以包容事个互联网的,具有极高的共享精神和价值。博客还有个最大的特点是可以图文并茂的描述一件事,在文字、图片和视频等的共同描述下,使得内容更加生动形象。博客由2000年悄然进入中国,
12、随后得到迅速发展,但业绩平平,直到2004年由于某一事件,才让民众了解博客,并运用博客。2005年,财大气粗的原本不看好博客的几大门户,也加入到博客的春秋战国时代,开始了你死我活的拼杀。Web2.0和传统Web1.0应用相比,有一个非常显著的特点,即:实时性和较高的交互性,正是因为这一实时性和较高的交互性,传统的互联网开发技术也面临的严峻的挑战。在传统的应用中,内容一旦发布,基本不会更新,为了减少服务器的的负载,一般会将内容归档成静态文件(后缀为.html的文件)存在磁盘中,并根据内容在数据库中的唯一标识号生成一个唯一的url地址。当用户需要查看这些内容时,直接通过所生成的唯一的URL地址,经
13、过服务器就直接能访问到这些内容,服务器基本不需要花费时间来生成这些内容,这对于服务器软硬件资源是一个很大的节省。而新形势下(Web2.0)的应用,由于它的实时性和较高的交互性,就注定了不能完全采用生成静态文件方式来解决这一问题,页面可能会实时更新,从而需要实时的请求数据库,将所请求的内容展现在用户面前。由于数据的动态生成。无疑会添加服务器的处理能力,在服务器端并发性一定的情况下,由于请求的用户过多,而服务器又一时处理不过来,所请求的用户必然会经历一个排队的过程,从而使得系统的整体响应时候大幅度添加,这样的用户体验也就不言而喻了。以上这些都是做一个Web2.0应用所必考虑的问题。第1章 系统技术
14、方案本章主要从技术方案和与此相关的开发工具进行说明。1.1 方案分析由于博客提供了信息的实时发布,动态展示,信息状态的跟踪,以及博客和浏览者、博客和博客之间互动等这些高交互行为,就注定了对技术的要求会比较苛刻,必需选择一种技术架构成熟,稳定性好,执行效率高、经济实惠的解决方案。纵观各种解决方案,最终选择LAMP作为本博客的技术路线。LAMP是基于Linux,Apache,MySQL和PHP的开放资源网络开发平台,一组常用来搭建动态网站或者服务器的开源软件的组合,它们都是各自独立的程序,但是因为长期的放在一起使用,拥有越来越高的兼容性,共同组建了一个强大的Web应用开发平台。由于它们开源,标志着
15、任何人都可以无偿的免费使用它,也意味着越来越多的开发者加入到其中,无偿的奉献他们的智慧,使得软件在性能、效率方面得到了极大的提高。和其它平台解决方案相比,LAMP平台开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注,全球80%以上的访问量是由LAMP提供的。目前国外比较有影响力的公司如:Yahoo!、Facebook、Google以及国内比较有影响力的公司如:百度、新浪、腾讯等著名互联网公司的绝大部分产品均采用该方案。因此,LAMP是最强大的互联网产品解决方案。1.2 开发工具LAMP平台架构不只是架构成熟,稳定性好,执行效率高以及免费,它还有一个更重要的特点,运行平台的无关性。即
16、,基于LAMP平台开发的系统除了能运行在LINUX操作系统上外,还能运动在除此之外的WINDOW,苹果等操作系统上。真正做到一处开发,多处运行。所以开发语言将采用PHP,数据库采用MySQL,运行服务器采用Apache。虽然最终完工的系统能运行在不同的操作系统平台上,但从性能等指标来讲,采用Linux作为最终的运行平台,与其它操作系统相比,更是胜出一筹,所以最终运行操作系统采用Linux。为了提高开发效率以及整个系统代码的良好构架,采用PHP官方鼎力相推的一款PHP开源框架ZendFramework进行开发。同样,为了提升客户端的用户体验,还会借助于客户端技术Javascrip脚本语言和Aja
17、x等相关技术。采用MVC设计模式,从而使整个系统的架构更加清晰。对于开发PHP而言,本来是任何一款文本编辑工具都能进行,不过这里还是推荐使用能提高开发效率的一款专业的PHP开发工具,即:ZendStudio for Eclipse以下为各自的介绍。1.2.1 关于PHPPHP是Hypertext Preprocessor的简称,是一种HTML内嵌式编程语言。它的语法混合了C、Java和Perl优点及它的新语法,比CGI、ASP或者Perl更快速地执行动态网页。总的来说,它有以下几个方面的优点:1.支持的数据库非常广泛,大到SYBASE、MySQL、ORACLE,小到Access都支持。2.跨平
18、台性非常好,支持Windows系列操作系统,LINUX操作系统和UNIX操作系统。同时支持多种Web服务器。3.开源软件,升级更新速度非常快。4.免费软件,无须花钱购买。同时与Linux、Apache、MySQL构成性价比最高的Web系统。5.PHP5.0有成熟的面向对象体系,能够适应基本的面向对象要求,适合开发大型项目。1.2.2 关于MySQLMySQL是基于SQL的,完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有体积小,功能强,使用简便,管理方便,运行速度快,安全可靠性高,尤其是开源这一特点,所以很多企业为了降低网站总体拥有成本而选择了
19、MySQL作为网络数据库。更重要的是提供了用于C、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API,从而可以很容易的将其加入到各种应用中。1.2.3 关于ApacheApache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。并且它也是开源的,在稳定性和效率方面当然也是毋庸置疑的。1.2.4 关于 ZendFrameworkZend Framework (ZF) 是用 PHP 5 来开发 web 程序和服务的开源框架。ZF 用 100% 面向对象编码实现。 ZF 的组件结构独一无二,每个组件几乎不依靠其他组件。这样的松耦合
20、结构可以让开发者独立使用组件。Zend Framework 项目的主要赞助者是 Zend Technologies,但许多其它公司也贡献了组件或重大功能。例如 Google、 Microsoft 和 StrikeIron 作为伙伴提供了 web 服务接口和其它 希望给 Zend Framework 开发者使用的技术。 1.2.5 关于JavaScriptJavaScript是目前互联网上最流行的脚本语言,并且目前所有主要浏览器都能很好的支持它。在当今Web2.0时代的应用中,无一不借助它来提升客户端的用户体验。1.2.6 关于AjaxAJAX全称为“Asynchronous JavaScrip
21、t and XML”(异步JavaScript和XML),它不是一门新的语言,而是借助于已经存在的Javascript和XML组合成一种全新的技术。它能和服务器端进行异步通信,所为的异步即为当前页面和服务器端进行通信时,当前浏览用户全然不知。比如典型的应用有,当用户去一个网站进行注册时,在当前页面没有任何变化的情况下,当输入完注册用户名后,系统马上就告诉你,该用户是否已注册,其实在用户输入完用户名的瞬间,用户名就被异步的传到了服务器端,然后将后台处理的状态返回给当前网页,然后由javaScript将状态呈现给当前用户。除了注册用户名的验证外,当今各大搜索引擎公司提供的关键字智能提示功能也是基于
22、这样的一个原理来实现。1.2.7 关于MVCMVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。优点如下:1. 低耦合性视图层和业务层分离:这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。2. 高重用性和可适用性随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WE
23、B(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的仅令是改变视图层的实现方式,而控制层和模型层无需做任何改变。3.较低的生命周期MVC使降低开发和维护用户接口的技术含量成为可能。4.快速的部署使用MVC模式使开发时间得到相当大的缩减,它使程序员集中精力于业务逻辑,界面程序员(HTML开发人员)集中精力于表现形式上。5.可维护性分熟视图层和业务逻辑层也
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多用户 博客 系统 设计 实现 毕业设计 论文
链接地址:https://www.31ppt.com/p-3941236.html