韓旭東 景雷 李守宏
遼寧廣播電視大學 (沈陽 110034)
網(wǎng)站群是指通過統(tǒng)一標準、統(tǒng)一規(guī)范,統(tǒng)一規(guī)劃建立在統(tǒng)一技術(shù)構(gòu)架基礎之上,按照一定的隸屬關(guān)系組合在一起的完整的WEB應用解決方案。各站點既可以統(tǒng)一管理,也可以單獨管理自成體系,站點之間基于特定權(quán)限共享公共的資源與數(shù)據(jù)。
系統(tǒng)是基于模型-視圖-控制器這一設計模式的。MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,是一種軟件設計典范,是一種將應用程序的邏輯層和表現(xiàn)層進行分離的方法。 模型 (Model)模型的定義由Model類來完成,代表數(shù)據(jù)結(jié)構(gòu)。通常來說,模型類包含取出、插入、更新數(shù)據(jù)庫資料這些功能。視圖 (View)是展示給用戶的信息,由Template類和模板文件組成,模板做到了100%分離,可以獨立預覽和制作。一個視圖通常是一個網(wǎng)頁,也可以是一個頁面片段,如頁頭、頁尾。它還可以是一個 RSS頁面,或任何其它類型的“頁面”。控制器 (Controller)是模型、視圖以及其他任何處理 HTTP請求所必須的資源之間的中介,并生成網(wǎng)頁。應用控制器(核心控制器App類)和Action控制器都承擔了控制器的角色,Action控制器完成業(yè)務過程控制,而應用控制器負責調(diào)度控制。
本系統(tǒng)在設計時借鑒了很多國外成熟的框架和設計模式,使用面向?qū)ο蟮拈_發(fā)方法,采用MVC設計模式,融合了Struts框架的Action方法,封裝了創(chuàng)建、更新、讀取、刪除和一些常用操作,在系統(tǒng)配置、模板引擎、類庫導入、查詢語言、表單自動驗證和完成、視圖模型、模板編譯、緩存控制、SEO優(yōu)化、多數(shù)據(jù)庫支持、分布式數(shù)據(jù)庫支持、SSO認證機制等方面都有高效、穩(wěn)定的表現(xiàn)。
其主要特性包括:
CBD架構(gòu):核心+行為+驅(qū)動架構(gòu)模式。
編譯機制:有效減少了面向?qū)ο箝_發(fā)中文件加載的性能開銷。
類庫導入:本系統(tǒng)的類庫導入方式包括基于類庫包、類庫命名空間等,讓類庫導入更加簡潔清晰,并且還支持類庫的自動加載。為了方便網(wǎng)站群的跨平臺部署,本系統(tǒng)嚴格區(qū)分加載文件名稱的大小寫。
數(shù)據(jù)庫:支持Mysql、Oracle、SqlServer等數(shù)據(jù)庫,內(nèi)置分布式數(shù)據(jù)庫和讀寫分離功能支持。
查詢語言:系統(tǒng)內(nèi)置了豐富的查詢機制,主要包括組合查詢、關(guān)聯(lián)查詢、快捷查詢、統(tǒng)計查詢、多表查詢、子查詢、原生查詢等。
數(shù)據(jù)模型:無需創(chuàng)建任何對應的數(shù)據(jù)模型類,輕松完成增、刪、改、查等操作,支持多模型間的動態(tài)切換,使得對數(shù)據(jù)的操作更加簡便與規(guī)范。
URL路由:本系統(tǒng)支持普通、PATHINFO、REWRITE和兼容模式的URL,支持不同的WEB服務器和運行模式的部署,結(jié)合URL路由功能,可以方便的創(chuàng)建所需要的URL地址和進行搜索引擎優(yōu)化優(yōu)化。支持靈活的規(guī)則路由和正則路由以及路由重定向。
模板引擎:系統(tǒng)內(nèi)建了一套性能卓越的基于HTML的編譯型模板引擎,支持模板文件的分離。本套模板引擎借鑒了Smarty的基本流程和方法,并內(nèi)置了頁面布局功能和插件擴展支持。
AJAX異步支持:系統(tǒng)內(nèi)置了一套與客戶端無關(guān)的AJAX數(shù)據(jù)返回方法,支持XML、JSON和EVAL類型數(shù)據(jù)返回客戶端瀏覽器,并且可以擴展返回數(shù)據(jù)格式。
多語言支持:系統(tǒng)默認使用UTF-8編碼,從而支持多語言包功能。每個項目和分組都可以擁有單獨的語言包,并且可以根據(jù)用戶的IP地址、操作系統(tǒng)語言、瀏覽器語言等檢測方式自動加載對應的語言包。
自動驗證和自動完成:自動完成用戶表單的數(shù)據(jù)驗證和數(shù)據(jù)過濾,系統(tǒng)集成了IP地址、有效期等多種驗證方式,配合自動完成可以生成安全可靠的數(shù)據(jù)集對象。
字段類型安全檢測:系統(tǒng)會自動緩存數(shù)據(jù)庫表的字段名稱和字段類型,支持強制的非法字段過濾和字段類型轉(zhuǎn)換,從而確保了數(shù)據(jù)的輸入和查詢更安全。
緩存機制:系統(tǒng)支持包括文件緩存、數(shù)據(jù)庫緩存、Memcache服務器等動態(tài)數(shù)據(jù)緩存類型,及可定制的靜態(tài)緩存規(guī)則,并提供了快捷方法進行存取操作。
擴展機制:系統(tǒng)內(nèi)建的擴展包括模式擴展、類庫擴展、驅(qū)動擴展、模型擴展、行為擴展、控制器擴展、插件擴展等,如此強大靈活的擴展機制使得二次開發(fā)人員不再受限于核心程序的不足,隨心定制自己的核心框架和應用擴展,滿足實際開發(fā)中復雜的項目需求。
本系統(tǒng)工作流程如下圖所示:

圖1 系統(tǒng)流程圖
首頁作為前端控制器,初始化運行網(wǎng)站群系統(tǒng)所需要的基本資源。路由(Router)檢查 HTTP請求,以確定誰來處理請求。如果緩存(Cache)文件存在,它將繞過通常的系統(tǒng)執(zhí)行順序,被直接發(fā)送給瀏覽器。安全(Security)??刂破?Controller)裝載之前,HTTP請求和任何用戶提交的數(shù)據(jù)將被過濾??刂破餮b載核心庫、模型庫、函數(shù)庫,以及任何處理特定請求所需的其它資源。最終視圖(View)渲染發(fā)送到 Web瀏覽器中的內(nèi)容。如果開啟緩存(Caching),視圖首先被緩存,所以將可用于以后的請求。
站點管理子系統(tǒng)是站點管理功能的集合,子系統(tǒng)包括站點設置、主題設置、模板編輯等功能。其中主要的實現(xiàn)方法為:
定義站點管理基類(WebsiteadminbaseApp),在其中創(chuàng)建初始化檢查(_run_action)、獲取權(quán)限(_get_privileges)、獲取主題(_get_theme)等公共方法,以方便子類繼承。
定義主題設置類(My_themeApp),繼承于WebsiteadminbaseApp。My_themeApp類主要實現(xiàn)主題設置界面(index)、設置參數(shù)保存(set)、獲取風格(_get_themes)等方法。
定義模板編輯類(TemplateApp),繼承于WebsiteadminbaseApp。TemplateApp類中的主要方法包括可編輯的頁面列表(index)、頁面編輯(edit)、保存編輯(save)等。
站點設置類(MywebsiteApp),繼承于WebsiteadminbaseApp。其中的主要方法包括My_websiteApp用于初始化類屬性、index用于顯示設置頁面及保存設置參數(shù)、_get_member_submenu用于獲取頁面子菜單項、_upload_files用于文件的上傳、drop_uploadedfile用于異步刪除附件。

圖2 站點主要管理框架示意圖



本文采用MVC框架進行網(wǎng)站群系統(tǒng)的實現(xiàn),結(jié)合MVC框架的優(yōu)點,系統(tǒng)的性能得到了提高,安全性也得到了較大改善,同時提高了網(wǎng)站群系統(tǒng)的可擴展性和可復用性,
[1]谷巖.淺談高職院校網(wǎng)站群建設[J].科技資訊,2008,(10):213.
[2]董西尚.網(wǎng)站集群管理系統(tǒng)研究與開發(fā)[J].吉林廣播電視大學學報,2009,(5):27-29.
[3]董珂.基于角色授權(quán)和MVC模式的內(nèi)容管理系統(tǒng)研究[J].軟件導刊,2009,8(4):47-49.
[4]李剛.Struts2權(quán)威指南:基于WebWork核心的MVC開發(fā)[M].北京:電子工業(yè)出版社,2007.
[5]許宏云,李煜.基于thinkphp的權(quán)限控制模塊的設計與實現(xiàn)[J].微計算機信息,2012,9:234-235