Angelo Lee's Blog
This is my kingdom .If i don't fight for it ,who will ?

本文分别从架构、搜索、性能等技术角度分析了电子商务网站重点要解决的几个问题,并给出一些建议和方案。


一、一个好电子商务网站的架构必须是一个易扩展、易维护性的架构
         电子商务网站一个最大的特点就是商业逻辑比较复杂,需求变更快,代码的维护和功能扩展一般会占用整个应用生命周期80%-90%的时间。所以,只有一个灵活性高,扩展性强、方便维护的架构才能适应电子商务网站发展的要求。
         具有以上特点的架构通常具有以下特征:
        1、是一个松散耦合的架构。分层是必须的,通常指常见的三层架构,各层内部也可以根据需求作出一定的细分。
        2、采用了一些合适的设计模式。一个优秀的架构必然在其中使用了一些设计模式,当然反之并不一定成立。
          j2ee社区已经给我们提供优秀的设计模式供我们参考:
          (1) j2ee核心设计模式
             http://java.sun.com/blueprints/corej2eepatterns/Patterns/
           (2) martinfowler的Patterns of Enterprise Application Architecture。
            http://www.martinfowler.com/eaaCatalog/
          你可以在这些模式中找到满足需求的设计模式。总之,一句话,不要为了模式而模式,关键要领会各个模式(when and how),灵活地使用。
         3、提供了一定的基础设施和可重用的组件。只有这样的架构才能提高开发效率,降低重复代码,对客户的需求变化能作出快速的反应。目前我认为SOA(面向服务的架构)是最符合这一要求的架构。
         网上介绍SOA的文章有很多,developerworks专门有个SOA and Web services专区介绍SOA的相关知识。
下面这篇文章我是不久之前看到,觉得写得不错,有一定的借鉴,大家可以看看。
Designing an Enterprise Application Framework for Service-Oriented Architecture


二、搜索引擎
         一个优秀的电子商务网站会提供大量的商品或者信息。为了帮助客户找到他想要的商品,必然要为客户提供一个优秀的搜索引擎供他们查找。
        这样的搜索引擎必须解决了以下两个关键性问题:
        1、大数据量的索引和检索。
        2、快速、准确地返回用户要搜索的信息。

          Lucene是一个基于Java的全文索引工具包,它已经有了其他语言的版本。对于在搜索上没有技术积累的电子商务公司, Lucene是比较好的选择和学习的途径。现在luncene已经成为apache的顶级子项目。
http://lucene.apache.org/
http://www.lucene.com.cn/
学习Lucene,Lucene in Action 这本书是一定要看。

三、交互大数据量的访问。
         对于用户与网站交互比较多的电子商务网站,应用的性能瓶颈通常在数据库方面。特别是随着数据量的增长,数据库的压力会愈加明显。
         对数据库的优化有各种各样的方法,DBA、开发工程师都有各自的要求,比如要求开发工程师在写SQL语句的时候必须采用绑定变量,所有的SQL必须提交DBA审核等等。这些工作对数据库的优化都有大大的帮助。
         但数据库中数据的增长是必然趋势,我认为最终的解决方案就是根据实际需求采用合适的策略降低要访问的数据量。这才是王道。
   
         总之,一个信息量大,访问速度快,安全,方便使用的电子商务网站永远是客户的第一选择。为了创造最佳的客户体验需要网站开发者(这里我主要指技术部门)在以上几方面做出更大的努力,学习和创新是工程师们要牢记的法则。
   

posted on 2009-03-25 20:04  Angelo Lee  阅读(179)  评论(0编辑  收藏  举报