关闭

Web开发中软件工程艺术(Web程序员请进来谈谈,特别是有大型门户网站后台开发的程序员)

标签: web开发web中软website数据库缓存服务器
1441人阅读 评论(0) 收藏 举报
近正着手一个大型综合性门户网站后台管理系统(准确说是内容管理系统)设计 
与规划,对网站开发技术有一个较深刻的认识。从Internet的出现到现在,WebSite的开发技术有4个过程: 
          1.静态WebSite,页面均为静态,无数据库支持。 
          
          2.动态WebSite,这是当前中小型WebSite使用最多的技术,也就是数据库驱动的 
  的WebSite 
          
          3.动态内容静态发布技术。这是当前比较先进Web开发技术。随着用户访问量的增加 
,当日访问量上万甚至更多时,Web服务器的负载迅速增大,达到满载甚至超载,大大降低 
了系统的效率甚至导致系统难以运行,尽管从DBMS的升级和硬件设施的升级可以适当解决 
这个效率瓶劲问题,但这大大增加了成本。另外,我们要提高在搜索引擎中的应用。搜索 
引擎中的“机器人程序”在搜索过程中遇到动态网页时,比如:News.asp?Year=2003& 
Month=12&Date=19时,机器人程序在检索这个字符串中遇到“?”和“&”,时就会进入死循环,因此机器人程序要避免进入死循环而用的“机器人陷阱程序”,此时,它只能搜索到 
News.asp这个页面的内容。而我们采用动态内容的静态发布技术后News.aspYear=2003& 
Month=12&Date=19这个URL转换成静态的News/2003121911062033.htm,这个静态页面的内容就是News.aspYear=2003&Month=12&Date=19生成的内容,不仅提高被搜索的概率, 
而且使系统的效率提高很多(因为当Web用户请求访问这个页面是不需要向数据库系统请求 
数据).这种技术在大、中型综合性网站普遍应用,如新浪,搜狐。 

          4.基于Cache的发布技术(反向代理)。 
          以前做应用的时候也用过一些方式:应用首次访问以后将生成的内容存成一个缓存文件,下次请求时从缓存目录中读取缓存文件,内容更新时,应用把内容从缓存目录中删掉,从而减少对数据库的访问。虽然这样做也能承载比较大的负载,但这样的内容管理和缓存一体的系统是很难分离的。 

如果换一个思路:通过一定的分工现内容管理和缓存机制2者的分离,你会发现无论哪一方面可选的余地都是非常大的。甚至有可能利用目前的已经是“功能”比较全面的内容管理系统,而让所有“效率”问题都由前台更专业,而且是很容易分布的缓存服务器解决:可以是通过开放源代码的SQUID做反相代理的WEB加速,可以是专门的缓存硬件设备,甚至是专业的缓存服务商。 

动态缓存必须有一个基于静态链接本身的参数解析过程,很多专业内容管理系统系统都是将参数解析机制做成了WEB服务器的模块实现的。   

我们可以把以前的HTTP/GET方式的?key=value改为直接用/value1/value2的方式来传递,从而实现了动态页面的静态URL形式。而缓存只需要在前端加上一层CACHE服务器,比如:Squid。网站动态内容的动态缓存发布就可以实现了。 

            这是当前最先进的网站开发技术,实现了真正意义上的软件工程,实现开发过程 
中的真正分工开发,开发过程中相互依赖大大降低,提高了开发速度。美工只管模板的 
设计,页面策划师也只顾版面策划,Web程序员只顾功能模块的开发,而系统集成的程序员 
只顾将页面模板和程序模块的调用和逻辑集成,实现了界面和内容完全分开,即所见所得,在网站管理中,美工可以完全不懂程序去维护模板,而技术管理员则不考虑界面去处理程序。 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:437659次
    • 积分:3979
    • 等级:
    • 排名:第7854名
    • 原创:36篇
    • 转载:92篇
    • 译文:0篇
    • 评论:36条
    最新评论