── 大幅度提高信息发布型网站服务器能力的新技术
一、动态网站及其存在的问题
早期的互联网网站,页面基本由手工编写,静态发布,不仅规模小,而且容易出现各种错误,维护起来也很繁琐。随着技术的发展,出现了各种动态生成网页的技术,这种技术的主要原理是根据客户端的请求,各种服务器端的程序(或脚本)通过访问数据库,根据获取的数据动态地生成页面。这种技术对于内容不断变化(增加、修改、删除)的网站来说非常有效,能够降低网站的编写和维护工作。
但是当网站信息量逐渐增大后,如果仍采用动态程序访问数据库实现信息动态化的方案,网站的管理者不得不面临一系列新的问题:服务器端程序的执行及数据库访问将大量地消耗服务器的CPU及内存资源,从而造成网站访问困难,最终可能造成服务器的崩溃;由于数据库系统一般都与Web服务器分离,数据访问量的不断增大给网络带来了巨大的压力。
为保证动态网站能够正常运转,常见的解决办法是在硬件设备升级的基础上,采用分布式处理技术和计算机集群技术将网站的负载分配到不同的服务器上,进而提高网站系统的服务器能力。事实证明这种解决方案是非常有效的,但它的代价也是巨大的----新增的软、硬件既增加了管理的难度,又极大幅度地提高了设备投资和管理成本。
二、动态网站的分类
采用动态型网站的主要原因之一是网站的内容变化较为频繁。在经过进一步的分析后,可以把动态型网站分为三大类:第一类是以信息发布为主的网站,它的特点是内容只增加和删除,一般不作修改;第二类是以在线交易为主的网站,它的内容不仅可能增加和删除,已存在的内容还不断修改变化;最后一类网站是前两类的综合,信息发布和在线交易在网站中具有同等的比重。
对于第一类和第三类网站来说,动态信息发布占据了很重要的位置。在这里,信息的"动态"是相对的,一旦发布完成,信息数据会有一个相对稳定的生存周期,以静态的形式存在,直至最终被删除。考虑到此类信息数据的特点,如果在发布的时候将它们动态地生成静态页面,从而减少服务器的资源消耗,大大加快访问速度,减小给数据库带来的压力。
三、静态网站的动态生成技术
静态网站的动态生成技术的主要思路是将网站的动态动态信息和彼此之间的关系存入数据库,根据特定的规则和模版生成网站各级的静态页面(网站首页、频道、栏目、最终页面),以静态页面的形式发布,完成网站的自动生成。图1为使用该技术的网站系统模块示意图
图1 模块示意图
图1中所描述的系统由数据处理子系统(DPS,Data Processing Subsystem)、页面生成子系统(PGS,Page Generating Subsystem)和页面管理子系统(PMS,Page Management Subsystem)三个子系统构成。
数据处理子系统由数据操纵模块、模版管理模块、数据库和模版库构成,主要完成负责完成动态信息数据(Information)、指令规则(Rule)和页面模版(Template)的管理。动态信息数据由网站编辑人员日常更新及维护,它是网站内容数据库的原始积累过程。网站编辑人员将需要更新的信息进行录入或取出原有的信息进行修改编辑;页面模板是用来定义页面结构的XML文档及描述页面样式的XSL文档,在系统中采用页面内容与样式分离的方法来达到工作量的减少;指令规则描述页面生成中的规则及信息与模版关系,它和页面模板还共同起着描述网站结构的作用。
页面生成子系统是整个系统的核心部分,它从数据处理子系统获取信息数据,根据指令规则内容,生成基于特定模版的静态HTML页面,即:
PDS的工作可由编辑在信息录入的过程中触发。
页面管理子系统主要实现静态页面的增删改功能,由于此类操作可能影响经PDS产生的页面(如信息索引),所以需要访问数据库,将库内的信息作相应的改动,然后再次通知PDS生成新的相关静态页面。
四、在IBM eServer iSeries上的应用
在一台IBM AS/400 270 (DSD)上,以DB2 UDB for AS/400为数据库,结合IBM WebSphere 3.5和IBM Visual Age 3.5,我们应用上文描述的技术构建了"工会网站自动发布系统"(LU-WARS)Labour Union Web-site Auto Release System),用于各级工会网站的生成和管理。该系统由网站信息管理、频道管理、网站模版管理和页面生成模块构成。系统开发完成后,各级工会可以利用这一平台,生成自己单位的网站系统。这些网站既可以置于全总工会的服务器,由全国总工会统一管理;也可以利用发布的系统,在本地设立服务器,独立安装和运行。在一定程度上解决了全国各级工会在建立网站系统时重复建设、重复投资、开发效率低,以及维护不方便等方面的问题,取得了初步的成效。