基于ThinkPHP的网站集群设计

2016-01-05 12:39孙祎
电脑知识与技术 2015年31期

孙祎

摘要:随着互联网的跨越式飞速发展,目前高职院校网站主要包括学校主门户网站、各行政管理部门和教学部门建立自己的二级门户网站、各类专题网站和应用系统,这些网站在学校的招生就业、对外宣传、信息发布、业务交流等诸多方面提供了巨大帮助。但大量的网站也带来了许多管理和维护的问题。

关键词:Think HP;网站集群;LAMP

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)31-0073-02

1 概述

随着互联网的跨越式快速发展,网络充斥着社会的每一个角落,从PC端到移动端,信息传播速度越来越快,传播的信息量也越来越多。网站作为一种互联网传媒的重要信息载体也在不断的飞速发展,网站的发展也从早期的基本信息发布发展到Web2.0社交互动时代,网站成为与世界沟通的重要的渠道,而基于HTML5的下一代Web3.0也必将掀起互联网的又一次发展浪潮。

伴随着互联网的飞速发展,高职院校对信息化建设也在不断地提出更高的要求和更多的服务,每个学校都建设了大量的门户网站和应用网站。目前高职院校网站主要包括学校主门户网站、各行政管理部门和教学部门建立自己的二级门户网站、各类专题网站和应用系统,这些网站在学校的招生就业、对外宣传、信息发布、业务交流等诸多方面提供了巨大帮助。在带来巨大的同时,大量的网站也带来了许多问题:大量的网站形成了一个个“信息孤岛”,各个站点之间都是封闭的,需要单独的服务器配置,不同网站的开发语言及运行平台都不同,每个网站建设与维护需要单独的管理,这给管理人员带来的很大的烦恼,不仅需要大量的人力,还需要投入大量的财力来运行这么多的独立网站。目前的CMS只能解决单个站点的内容管理,而对于文章在各网站中的相互调用和数量的统计显得力不从心,不得不进行着重复劳动。各部门的CMS就形成了一个个的信息孤岛,各站点之间的信息不能共享。二级门户网站的建设与维护要求专业人士进行,现实是二级部门不可能都单独配备一个专职的网站技术专业人才来管理维护网站,网络中心在面对如此多的二级站点的管理维护也显得焦头烂额。这就要求网站必须考虑以下问题:稳定性、操作简单、人性化、功能完备。

2 相关概念介绍

2.1 网站集群

网站集群是指统一部署,统一标准,建立在统一技术构架基础之上,信息可以实现基于特定权限共享呈送的网站整体。网站集群系统是一种多网站架构模式,支持生成独立网站、多个网站,完成各个网站横向一体化和纵向一体化网站群的构建,主站、子站、网站间的信息可共享和信息互联。

网站集群系统具有统一的数据结构,主网站与子网站、子网站之间数据结构统一,数据格式定义的统一,实现所有信息在资源这个层面上的整合;网站集群能将各站点连为一体,支持全部站点的统一管理,将现有的各部门的信息联系起来,使得同一组织内各个站点之间不再互相孤立,为各个站点提供统一的信息协同框架。网站集群是实现统一部门、统一权限、消除“信息黑洞”和“信息孤岛”的基础,形成供各部门共享的网站集群的软、硬件资源。

2.2 ThinkPHP

ThinkPHP是国内比较著名的PHP开发框架,采用面向对象和MVC设计模式,功能强大,开发也很便捷,且遵循Apache2开源协议发布。早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现。

作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。

2.3 LAMP

目前,越来越多的企业和单位选择PHP+MySQL来开发自己的网站,运行运行在安装有Apache软件的Linux服务器上,即服务器采用Linux操作系统,安装Apache web服务器,使用MySQL作为数据库系统,采用PHP来开发站点应用,以上合成为LAMP组合。LAMP中各个软件本身都是各自独立的,分属不同的公司,这几个软件都是开源、免费的,因此很多企业从成本角度考虑,经常使用这些软件,所以LAMP拥有了越来越高的兼容度,共同组成了一个功能非常强大的Web应用程序平台。如今开源软件已经是一种趋势,更多的人开始关注到LAMP,互联网中不低于70%的网络访问流量是由LAMP来提供的。LAMP组合不仅成本低、开源,而且安全性较高,足以与Sun的J2EE和微软的.Net相媲美。

2.4MVC设计模式

MVC全名是Model View Controller,是一种软件设计模式,它将软件分为三个基本部分:模型Model、视图View、控制器Controller。三者之间低耦合,代码重用性高、扩展能力强。通过此模式,可以简化问题的复杂度,程序结构更加直观明了,各个部分实现不同的功能:控制器Controller负责转发请求,并对请求进行处理;模型Model负责数据的设计和管理,解决对数据库的相关操作;视图View是控制器处理请求后并将结果最终呈现在用户面前的图形界面。

3网站集群系统

3.1 系统环境

本系统在开发中采用PHP开发语言、Apache Web服务器、MySQL数据库,使用功能强大的ThinkPHP和jQuery开源框架,在后台UI方面使用BootStrap框架和UEditor富文本编辑器。

3.2总体设计

网站集群系统分为系统管理员、站点管理员和信息员三类用户,所有用户登录后的界面都是后台管理中心,不同用户的权限和职责不同,可操作的栏目也会根据权限显示。

系统管理员拥有网站集群系统的最高权限,主要功能有系统管理为维护、站点管理、用户管理、信息管理;站点管理员拥有某个站点的管理权限,主要有栏目管理、信息管理、模版管理等;信息管理员则只拥有某个站点的信息起草功能。网站集群系统主要功能结构如图1:

图1 网站集群系统功能结构

系统除了站点管理和用户管理外,最重要的就是信息的管理与流转,系统中信息流程如图2所示:

图2 信息流程

3.3数据库设计

内容创建后将保存在文章池中,然后发布到站点的新闻表中,便于内容的流转及减少数据冗余。文章池的存储形式采用文章基础信息表、文章内容表、文章附件表3个表来维护。文章基础信息表只存放文章最基础的信息,减小了与其他表之间的耦合度;文章附件表的单独设立主要考虑到不是所有的文章都会有附件,这样设计可以减少数据空间;文章内容的单独设立主要考虑在显示文章列表信息时会对数据库的检索有很大的资源消耗,而且文章的列表在整个网站集群中出现非常频繁,这样就大大减少了数据库的压力。

发布的内容存在新闻表,存储了各站点的所有信息,包括自建信息、推荐信息、转载信息等,通过不同的标识符来决定文章在各站点的显示,表中只记录文章的ID号,解决了与文章表混合在一起造成的数据冗余。

数据库名命名为CMS_Cluster,主要数据表及功能如下:

Cc_news,新闻表,存放整个系统中各站点的所有新闻基本属性,通过website字段区分站点归属、article_id链接对应文章。

cc_article ,文章表,保存文章的基本属性。

cc_article_content,文章内容表,文章的内容单独保存,提高系统的性能。

Cc_article_attachment,文章附件表。

Cc_article_item,新闻栏目表,通过website字段区分站点归属。

Cc_user,用户表。

Cc_website,站点表,通过slave_website_id字段允许创建子站点。

Cc_general,网站集群基础数据表,数据字典。

Cc_template,网站模版库表,提供全站所有的模板。

Cc_var,网站变量及函数表,主要为模板提供数据来源。

4 结束语

ThinkPHP采用面向对象和MVC设计模式,功能强大,开发也很便捷,且遵循Apache2开源协议发布。网站集群并不是一群网站的简单链接,而是一个整体规划、统一设计、紧密联系的有机整体。基于ThinkPHP的网站集群系统对于整合政府信息资源、服务资源和政务应用,消除“信息孤岛”、“应用孤岛”,为社会公众提供更多更好的政府服务将发挥重要作用。

参考文献:

[1] 站集群[EB/OL].[2015-11-20].http://baike.baidu.com/view/1571435.htm.

[2] ThinkPHP3.2.3完全开发手册[EB/OL].[2015-11-20].http://www.kancloud.cn/manual/thinkphp/1678.