October 26 2008

Windows平台下轻量级门户网站静态化解决方案

PurpleFire @ 11:19

本文主要讨论关于轻量级门户网站静态化的解决方案,所谓轻量级就是指访问量不太大,服务器规模较小的情况,当然没有绝对的界限,仅仅是相对比较而言。高校和中小企业门户网站是很好的案例,但是像新浪、腾讯这种大型门户网站不在讨论范围之内。

一、问题的提出

通 常,一个校园网的门户网站群仅由几台(<10)服务器构成,当然很多知名大学的门户网站服务器远不止这个数目,在这里我只是说一般的高校,或者再降 低一个层次——一个高校下属的某个学院的主页。我们的门户网站可能集成了多个频道,比如新闻、教学资源、业务(信息)系统以及由电影、音乐、论坛、即时通 讯等版块构成的娱乐生活栏目,这些频道可能由来自于不同平台的CMS系统构成,而且你的首页需要调用这些不同频道的最新内容。那么,面对较大的访问量,网 站静态化是必须考虑的。

二、需求分析

现在流行的CMS系统/论坛系统一般都提供了首页调用功能,即通过访问一个含有参数的URL链接,返回一个满足需要的内容列表。门户网站的首页比如下面的iWMS官方首页截图,图中画红框的模块其实可能都是调用了某个栏目的最新文章。

点击查看大图

以 前我将新闻频道作为一个门户网站的主频道,其他频道作为次要频道,然后通过修改iWMS自己提供的首页模板来构建整个门户首页。由于调用了大量其他系统的 内容,导致访问速度较慢,用户体验很差,而且可扩展性比较差,况且有些小系统并没有提供首页调用代码。使用那个模板完全束缚了网站前台设计师,没办法放开 手脚做。因此我们放弃了它自己的模板,转而构建我们自己的主页。像腾讯、金融界这 种风格的首页越来越普及了,它们采用了多栏目重叠放置,使首页承载的信息量翻了数倍。我们模仿这种风格,将各频道、栏目模块化,这些模块全部采用调用的方 式。由于这些调用分散在不同 的服务器,涉及了不同的数据库、Web服务器技术,在门户网站首页进行调用会产生大量的服务器间通信、多次数据库查询以及磁盘I/O操作,因此,将这些调 用结果静态化是一个很好的解决办法,毕竟很多人看到的首页大部分内容都是重复的,如果每个人来访问都调用一遍最新数据是对服务器性能极大的浪费。

三、门户网站首页静态化解决方案

1.完善调用代码

即使这些cms系统有些提供了自己的调用,但输出的结果可能并不是我们需要的显示方式,我们还得格式化这些调用结果。

最笨的也是最有效的方法就是自己分析数据库结构,然后随心所欲的写调用代码。因为仅仅是查询数据库的操作,所以这个过程比较简单,只是比较麻烦,要费些工夫。

当然,你也可以直接利用系统自带的调用代码,然后在设计页面时利用强大的正则表达式对它们进行格式化。

2.执行调用并将生成的结果静态化

当我们通过某些随机或周期事件触发调用代码,得到了结果,接下来应该把它们静态化。

一种方法就是调用完毕即生成一个文件(脚本/或纯文本形式),让首页可以include这些文件。这样做的好处是文件一旦生成就不会消失,除非新的调用将其覆盖。坏处就是对磁盘频繁读写,造成cpu等资源占用升高,影响了效率。

另 一种方法就是将结果写入服务器内存,在ASP中可以写入Application变量,在ASP.Net中淡化了Application变量,当然你一样可 以使用它,也可以使用cache类,这里不讨论。这样做极大的提高了访问速度,缺点就是由于Application变量不宜存储大量数据,比如图片什么 的,还有就是Application变量依赖于服务器的进程,默认2小时空闲进程就会被IIS6回收。因此,如果你不想让用户看到你的页面中调用的部分是 空白内容,你就要调整IIS的设置,让工作进程的生存周期变长。

当然只是将首页频繁调用的内容写入内存,而文章的内容页还是写到文件比较好。毕竟内存是有限的,而首页调用的内容访问频率较高且不算太大,所以放入内存。

3.如何调用&什么时候触发调用?

如何调用?

我想说的不是传统的调用方式,那样大家都会,这里我来探讨一下如何使用服务端ajax进行调用。

为什么要使用服务端Ajax进行调用呢?呵呵,其实这样做的目的就是集成多个调用于一体,通过参数更好地控制各个调用模块,让它更好的为触发服务,不然分散开来调用太麻烦。我们为这个集中调用程序起个名,叫“更新缓存”页面。

什么时候调用?

——更新完新闻、软件、音乐,etc,退出管理时跳到更新缓存页面。

——客户端第一次访问时在后台(比如将更新缓存页面放入一个0高度的iframe中)进行调用。

——显示不正常时,可以直接访问更新缓存页面。

这里给出我的示例代码(点此下载),欢迎探讨。

四、后记

通过上面的解决方案,门户主页的访问速度已经很快了,承载的访问量可以提高2到10个数量级。至于网站内容页面的静态化,直接采用文件型静态化方案就行了,一般的CMS系统均有此功能。

另外,由于高校或企业内部一般都是局域网或高速城域网,页面几乎没有延迟,影响速度的只有浏览器的解析和渲染速度了。因此,还有一件事情就是要使首页应付现在多种浏览器共存的局面,这里不再赘述。

本文只是讨论中小型门户站在Windows平台下的静态化解决方案,对于大型网站来说,负载均衡和缓存加速必不可少,您可以参考车东的博客:基于反相代理的Web缓存加速——可缓存的CMS系统设计

October 19 2008

VOS与Windows Server 2003不兼容之解决方法

PurpleFire @ 23:16

VOS(百度百科:什么是VOS) 是一个PC音乐游戏,跟后来的劲乐团比较像,但表现力不如后者丰富。估计很多人也和我一样,在深夜里,忙完了一天的工作之后,喜欢玩玩这个音乐游戏,也许 你没有弹钢琴的条件,但你完全可以玩玩VOS来感觉感觉,尽管那感觉有很大的不同,当然你也可以用VOS来陶冶一下情操^_^

去年我就发现 VOS无法在windows server 2003系统中正常运行,一运行什么错误也不报,程序直接就退出了,但我发现安装时也没有说不支持2003,于是就搜索了一下,了解了一下无法运行大概是 怎么回事,搜到的文章也没怎么说清楚,我还是来具体说说解决方法吧。

其实原因很简单,那就是DirectX库中没有DirectMusic组件。参考《Windows2003 And Microsoft DirectX And VOS》参考其原因就行了,但不要按照此文中的方法安装,按我下面的方法安装。微软发布2003系统本身就不是让你拿服务器来打游戏的,系统安装好后默认连windows audio服务都没启动,更不用说会把DirectX库给装全喽,我们只需要把DirectMusic组件安装一下就好。安装步骤如下:

1.到微软官方网站下载最新的DirectX库(点此到达下载页面);

2.解压(可以用winrar直接打开这个exe文件)后,再用winrar把dxnt.cab解压出来,找到dmusic.inf,右键点之,执行安装菜单;

3.将以dm开头的共8个dll文件拷贝到system32文件夹中;

4.将c:\windows\system32\drivers\etc文件夹中的gm.dls拷贝到父层文件夹中,这个文件是微软midi软波表库;

此时再运行VOS应该就没问题了,如果还不行,去掉此程序的数据执行保护就行了。方法为,右击我的电脑属性->高级->设置->数据执行保护,选择上面的就行了。如果选下面的“除所选之外,为所有程序和服务提供启用数据执行保护”的话,你也可以将VOS.exe添加到这个列表中来。

BTW:我发现VOS1.0p真难啊,判定比劲乐团严格多了。

关于其它资料,给出几个链接(有些论坛可能需要注册才能阅读或下载附件):

VOS的下载安装/常见问题/重要补丁/相关工具

VOS相关工具打包下载/水平测试系列曲包下载

October 17 2008

从搜狗五笔输入法看用户黏性

PurpleFire @ 18:15

这两天,我开始试用搜狗五笔输入法,终于,输入法的战场要延伸到五笔这个“领域”来了。五笔输入法本土化特征明显,相信谷歌那边暂时不会有什么动 作。搜狗五笔主要的竞争对手应该是老牌的陈桥智能五笔、万能五笔和近年来新流行的极点五笔和极品五笔这几个产品了。因为互联网的原因,目前软件产品同质化 比较严重,毕竟网络拉近了大家的距离,竞争对手有什么动作,软件作者们会很快效仿。目前这几家产品基本上都集成了拼音输入法(极品五笔除外),像万能五 笔、极点五笔还实现了拼音五笔混合输入自动识别。搜狗五笔输入法也是,在安装结束时可以让你选择用户模式:分为高手(纯五笔)、普通(五笔拼音混合)和新 手(仅拼音)三种。当然,搜狗拼音里的功能比如在线升级词库、换肤等都得到了很好的延续。它的主要特点如下:

  • 五笔拼音混合输入、纯五笔、纯拼音:多种输入模式向您提供便捷输入途径
  • 词库随身:包括自造词在内的便捷同步,搜狗五笔是真正的互联网输入法
  • 人性化设置:功能强大,兼容多种输入习惯
  • 界面美观:兼容所有搜狗拼音可用的皮肤,资源丰富

搜狗五笔官方首页 升级日志  下载地址

在拼音输入法市场混战中,相信“次世代输入法”三杰——搜狗拼音输入法、谷歌拼音输入法和QQ拼音输入法在网民中已经占有了大部分市场。而传统的微软拼音输入法、智能ABC以及紫光华宇拼音输入法、拼音加加等等,市场萎缩严重。

在 这个互联网高速发展的年代,应用软件的创新、发展空前繁荣,软件的丰富程度和更新速度在前些年是望尘莫及的,十年前互联网那种眼球经济现象也已经减少很多 了,在第一次互联网寒冬过去之后留下来的企业都有它产的长处,眼球经济只是第一步,接下来就是如何留住用户了。腾讯这个企业在互联网行业中的巨大成功也诠 释了用户黏性带来的巨大的商业价值。

于是在接下来的几年里出现了MSN、百度hi、阿里旺旺、新浪UC这些软件来和QQ争夺IM市场份额;于是出现了MySpace、FaceBook、X内网(校内、海内)、51.com、开心网这些新SNS网站;于是也出现了这三个“次世代输入法”...

这 三个拼音输入法之间的明争暗斗由来已久,谷歌拼音输入法在发展初期还盗用了搜狗的词库,当然,后来也道了歉,但是这个事件才让我发现,搜狗的野心一 直都很大,他们早就开始提供一系列试图黏着用户的软件或服务(软件也可算作某种服务)。目前,国内搜索市场本土企业除了百度外,主要还是搜狗、网易以及腾 讯的soso把持着剩余的一点点市场,其中搜狗的市场显然比其他两家稍多(缺乏精确的统计,仅从互联网上流行的站长工具及seo统计结果得出此结论)。另 外,搜狗提供的地图集成了更加本土化的一些服务,比如公交、驾车路线搜索等等均比谷歌地图来得详细和精确,这里仅讨论地图集成的服务,不讨论地图及卫星图 本身的精确性和清晰度。在我身边的朋友或同事里,搜狗拼音输入法也明显比另两家输入法使用率高,当然,一些狂热的Gfans或者非主流们会毫不犹豫地选择 另两家的产品。

而这些变革也为我们创造了质量更高的互联网生活,用《计算机世界》总编孙定先生的话来说,就是“我们经历了为工作学习上网、为娱乐上网,当今却发展到过有质量的生活必须不下网的阶段。互联网已成为我们时代的生活方式”。

October 13 2008

首张FireFox For Windows Mobile截图曝光

PurpleFire @ 19:52

原文请参考这里 (英文)

之间有消息称Firefox小组正在研发Mobile版本,那时还只是概念性的说明。不过现在,首张Firefox Mobile截图已经放出。这个截图依然无法说明什么,甚至连能不能触摸都无法得知,但是至少他们已经正在努力使它能够在手机上运行更好。在Acid3评测中,它获得了88分(百分制)的高分,这对于一个手机浏览器来说已经很了不起了。

另外,据说Firefox Mobile的Alpha版将会在今年底与大家见面。

 

更多图片请阅读全文。

October 11 2008

我真火星,才刚刚发现一件囧事...

PurpleFire @ 12:29

在百度搜索引擎里输入“SB”,出来的第一个词条是Google。反之亦然。

并且使我更囧的是,百度百科里面关于SB的解释如下:

SB_百度百科

【计算机领域】

1,Safe Browsing,即安全浏览技术。
 

  Google的Safe Browsing域名是http://sb.google.com。在百度中搜索sb,得到的第一个结果是Google,常常被人误解为百度与Google有矛盾。其实是指向http://sb.google.com。
 

分页:«1»