本系列帖子第七篇,大家讨论一下所有项目中也不可或缺的设计模式的问题。前六版已经结帖,估计对大家都回有点启发,目前大家讨论的还比较浅显,没有涉及到深的领域,所以希望高手们,或者有门户网站开发经验的牛人们发表高论~项目需求用Java开发一个大型门户网站,
1、开发CMS(内容管理系统),由XSL模版、XML内容,产生静态页面HTML或者由客户端直接访问XML文件
2、开发博客系统
3、会员社区系统
4、各种互动系统
5、cache
6、客户端工具希望大家参与。
最后我会总结本系列帖,为以后各位同仁们使用Java开发门户网站提供部分帮助,更可以为新手们提供经验~

解决方案 »

  1.   

    以前作过很多BS的
    没有作过这种类型的,没有经验,
    所以向大家请教相关的开发技术、系统架构、经验等等
    当然要考虑系统性能等等目前我们提供7台服务器,性能很好,做相关的服务器,所以硬件方面不用担心
    网站的内容发布用CMS发布但是网站是互动性很强的网站,动态内容系统还要再做
    目前考虑用常用的SSH(Struts + Spring + Hibernate),数据库用SQL Server 2000或者MySQL(没有考虑Oracle成本太高)
    如分数3000分不够还可以再加3000分~
    希望大家踊跃提出自己的解决方案,这样做当然对初学者也会有很大的帮助的,谢谢~
    ---------------------------------------------------------------------------
    GlandJacky(Jacky狂奔在Java大地) ( ) 信誉:105  2006-6-26 11:06:07  
    这门户网站开发就需要很多技术了,希望楼下的兄弟们将自己的经验谈一谈
    我也是建议一下,网上有很多开源的东东,其中最有名的是Liferay,我所开发的很多东东都是在Liferay上的二次开发。
    Liferay的相关介绍如下:
        代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce Lucene实现全文检索功能。
    主要特点:
        1、提供单一登陆接口,多认证模式(LDAP或SQL);
        2、管理员能通过用户界面轻松管理用户,组,角色;
        3、用户能可以根据需要定制个性化的portal layout;
        4、能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat,JOnAS;
        5、支持主流的数据库,如PostgreSQL,MySQL;
        6、使用了第三放的开源项目,如Hibernate, Lucene, Struts;
        7、支持包括中文在内的多种语言;
        8、采用最先进的技术 Java, EJB, JMS, SOAP, XML;
    网址:    http://www.liferay.com/ansys(狂刀) ( ) 信誉:89  2006-6-26 11:41:46    
    门户级网站,表现层最好不要用Struts + Spring,用静态网页来存储数据,可以减轻数据库的压力.
    要不访问量一上去,数据库连接就超出连接池设置了.
    Hibernate实际上也只是做小网站的料,随着数据量的增长,你的网站就会越来越慢.
    Hibernate很浪费资源的说,即使你有7台服务器,做好了也会将你的服务器资源耗光.AreamArgentateOfWing(梦幻银翼) ( ) 信誉:100  2006-6-26 11:47:51    
    Struts + Spring + Hibernate
    对于小型的网站可以.但是如果你是要做大型的门户网站,而且互动性很强.建议你考虑J2EE.wuyg(平平) ( ) 信誉:99  2006-6-26 12:27:56     
    多关注一下负载均衡,这些是涉及到开发过程的。
    ansys(狂刀) ( ) 信誉:89  2006-6-26 14:02:56  
    1.服务器最好选用resin,因为它很多模块是用C++写的,所以效率很高,Resin也可以做群集,有个缺点,估计数据库连接池必须改写,因为resin的连接池好象不能象weblogic,websphere那样动态增长.
    2.根据服务器性能,可选GZIP过滤器,如果CPU不是很强劲,建议还是不要用GZIP.
    3.可以让图片在客户端缓存,减少带宽消耗.
    4.根据客户端使用的浏览器,如果都是用IE6,可选择xml/xsl技术,优点是:性能好,界面改动方便,存放空间小,节约网络带宽,存放格式清晰,方便导入到数据库.......
    5.根据服务器内存大小,对重要页面,可做内存缓冲.如果内存太小,就不用考虑了.kevinliuu(@。@) ( ) 信誉:107  2006-6-26 14:09:42   
    框架的选型要好好考虑,一旦选定,就不好改了,尤其大型的应用GlandJacky(Jacky狂奔在Java大地) ( ) 信誉:105  2006-6-26 14:16:52   
    数据库连接池方面也是要考虑的。
    目前有三种主流的连接池
       1、DBCP
       2、proxool
       3、c3p0
    建议使用proxool~
    1、单点登录技术
    2、互动上面要考虑Ajax技术
    3、网站的安全机制
    除了CMS系统外
    建议hiei熊考虑一下底层的框架
    先前hiei提到使用SSH技术,即Struts + Spring + Hibernate。
    我赞成,这是目前主流的一种方案,不过是针对轻量级J2EE应用,至于在大型门户系统上应该怎样解决,希望有人能够提出方案。
    楼上有人提到hibernate的速度问题
    这点我也疑惑过,最初应用hibernate的项目,我也感觉速度很慢,所以后期的项目几乎没有使用过hibernate,知道后来才知道问题的所在。
    其实hibernate的速度性能并不差,比起jdbc来说,又是性能能高2倍。
    当然了这和应用的数据库有关,在Oracle上,hibernate支持hibernate.jdbc.fetch_size和
    hibernate.jdbc.batch_size,而MySQL却不支持,而我原来的项目绝大多数都是使用MySQL的,所以觉得速度慢,其实在企业级应用,尤其是金融系统大型应用上,使用Oracle比较多,相对来说,hibernate会提升系统很多性能的。AreamArgentateOfWing(梦幻银翼) ( ) 信誉:100  2006-6-26 14:24:53
    可以使用现有连接池进行大批量数据操作.测试数据达到50w条就差不多了.
    然后进行比较.选择连接池性能更优越的作为数据库连接方式.
    因该尽可能减少对数据库的操作,减少服务器后台计算功能.happyvivi() ( ) 信誉:100  2006-6-26 14:56:36   
    之前有兄弟提到hibernate速度慢的问题,小弟有个问题:
    hibernate作为数据持久层,已经被成功的应用到了银行和金融系统中,这些系统的数据吞吐量应该是非常大的,而且实时性要求高。
    如果应用hibernate在门户系统中,能否满足性能要求?请大家发表一下意见,同时谢谢楼主上个帖子慷慨给分,呵呵。ansys(狂刀) ( ) 信誉:89  2006-6-26 16:29:26  得分: 30    
    1.如果银子实在是很多的话,又想每次访问都快0.00几秒的体验的话,可以考虑用这种硬件.
    http://mb.zol.com.cn/27/275892.html
    将数据库,页面缓冲,程序全部通通扔在里面.
    这种硬件寻址速度是scsi的15倍以上.
    2.逻辑较复杂可以用数据库扩展命令来做(非存储过程)。
    上面所说都是服务器单机上的J2ee优化方案,还有包括硬件上、操作系统、数据库、防火墙和群集的方案,还有许许多多,有这方面经验的可以补充。
    听说群集都Linux上做的,linux没用过,其它方案的应该是网管比较有经验。MBlue(无为) ( ) 信誉:100  2006-6-26 17:19:49   
    sina也是portal网站
    只不过是另一类型的portal
    真正的企业级的portal还包含了integration, process flow,work flow,当然还有content manager等ansys(狂刀) ( ) 信誉:89  2006-6-26 17:21:25 
    感觉 MYSQL 好象不如 MSSQL 优化.
    函数比较多,方便.
    上次做个搜索引擎,MYSQL里面才40000多,每秒钟提交5~10次查询,CPU占用率就到90%多了.ttaallkk1(j2ee_lover) ( ) 信誉:100  2006-6-26 17:41:00  
    把现有的系统都集合起来
    把各系统的户用 权限都统一
    我们准备采用weblogic的 portal作
    请北京一家专门作门户的公司提供解决方案MBlue(无为) ( ) 信誉:100  2006-6-27 10:16:51   
    可以分为静态页面和动态的jsp两个部分,分别交给2个server处理 
     
    ansys(狂刀) ( ) 信誉:89  2006-6-27 10:24:54    
    做页面不能调太多iframe,js,css,最好整合成一个页面,那网页下载和执行的速度才快,google也是这么做的.
    多加一个iframe,网页下载时间加1倍.
     
    GlandJacky(Jacky狂奔在Java大地) ( ) 信誉:105  2006-6-27 10:29:44     
    比如说主框架增加一个iframe,可能在访问主页面的时候会增加一次访问服务器次数,
    但是在以后的页面访问中,服务器的负载量会减少。
      如果都使用同一个页面的话,那么每一个页面相同的部分会增加服务器的下载负担。
    总的来说使用iframe,会给服务器的负载产生一个峰值,但是以后性能会比使用同一个页面减少不少。
      

  2.   

    ansys(狂刀) ( ) 信誉:89  2006-6-27 10:34:31     
    嗯,是,所以最好欢迎页面不要用iframe.
    本来欢迎页面的压力很大.
    其它页面能不用尽量不用.happyvivi() ( ) 信誉:100  2006-6-27 10:50:06     
    推荐楼主参考一下http://www.open-open.com/中的门户系统开源项目。小弟这几天正在研究,收获还是听多的
     
    TinyJimmy(Jimmy) ( ) 信誉:105  2006-6-27 14:32:42  
    造一部车没必要从制造车轮开始,从现有可用资源上起步,这样起点高,而且会稳定有效。建议多看看一些现有的资源,如免费blog、论坛等GlandJacky(Jacky狂奔在Java大地) ( ) 信誉:105  2006-6-27 14:35:36  
    现在的门户网站还要考虑很多东东
    例如:
    More Themes 
    Better layout and portlet
    Realtime security and permissioning
    J2EE compliance
    Integrated Content Management System
        
    应用服务器
    BEA 的 Weblogic
    IBM 的 WebSphere
    JBoss、Resin、Tomcat等等
    当然作门户网站最好使用Weblogichappyvivi() ( ) 信誉:100  2006-6-27 16:04:25    
    就我所知,关于WebSphere:
    优点:支持最新的标准;集群安装和管理非常方便;整个管理也改善了;企业平台产品线包括一套使开发工作更容易的集成的产品,包括服务器、开发环境、门户和Java虚拟机。
    缺点:价格太贵。
    所以有钱的话使用WebSphere当然最好了。MBlue(无为) ( ) 信誉:100  2006-6-27 16:25:04
    portal实际上是在ws上加了一个portlet容器
    其他的如cms应该是需要整合到portal里的应用系统 
     
    ansys(狂刀) ( ) 信誉:89  2006-6-27 16:31:20   
    WebSphere很慢..............
    不过非常稳定,我用了两年才发现一个bug.
    要稳定可以选择它.
    以前我们这里有个客户用websphere,用的服务器50多w,相当高档,也不见得怎么快,跑起来跟我开发pc上跑resin差不多.
     
    jyf_sxit() ( ) 信誉:97  2006-6-27 17:14:59  
    AMS BMS CMS 采用workflow
     
    Octer(一剑风情(兵熊熊一个,将熊熊一窝呀!)) ( ) 信誉:100  2006-6-27 17:17:33    
    目前是开发阶段,所以可以考虑使用开源的东西,以降低开发成本。
    我觉的还是尽量降低与App Server之类的资源依赖
    开发过程中,需要loadRunner与optimizeit 或者JProbe之类的性能测试工具与分析工具
    门户网站嘛,必然要考虑大量用户访问afengonline(我是阿风) ( ) 信誉:100  2006-6-27 17:18:58    
    对于websphere,我认为关键在于websphere家族的强大性,以及技术的全面性。
    结合WSAD,基本上开发周期内就不用考虑别的杂七杂八的工具了。
    另外,WSAD使用习惯源于eclipse, 熟手很多。
    说了实施的一个当面,没有设计到技术,楼主不要见怪  
     
    ansys(狂刀) ( ) 信誉:89  2006-6-27 17:29:42      
    赞成用loadRunner与optimizeit测试.
    开发过程中,需要loadRunner与optimizeit 或者JProbe之类的性能测试工具与分析工具.
     
    ttaallkk1(j2ee_lover) ( ) 信誉:100  2006-6-27 17:31:54    
    如果资金够雄厚的化
    建议用 bea的 portal
     
    GlandJacky(Jacky狂奔在Java大地) ( ) 信誉:105  2006-6-27 17:46:48     
    关于CMS的还是看鄙人的blog~
    谈谈CMS内容管理系统的两种方案:XSL+XML和HTML (一)
    http://blog.csdn.net/GlandJacky/archive/2006/06/20/816127.aspx
    谈谈CMS内容管理系统的两种方案:XSL+XML和HTML (二)
    http://blog.csdn.net/GlandJacky/category/205827.aspxhappyvivi() ( ) 信誉:100  2006-6-27 17:52:07   
    楼主可以去了解一下开源项目:openCms,功能很强大。
    可惜中文资料不多。但是可以作为参考。GlandJacky(Jacky狂奔在Java大地) ( ) 信誉:105  2006-6-27 18:04:17 
    DotCMS是一个100%免费基于J2EE/portal的内容管理系统,
    它有着许多吸引人的特性是其它许多CMS所没有的。
    在dotCMS中使用到的开源项目与框架有:Apache Tomcat ,Liferay Enterprise Portal ,Apache Struts, Hibernate ORM,Velocity模板语言,Lucene搜索引擎 。
    dotCMS采用Eclipse IDE开发并使用Velocity + Struts做为前端使得dotCMS变得容易扩展和构建。
      

  3.   

    GlandJacky(Jacky狂奔在Java大地) ( ) 信誉:105  2006-6-28 11:34:28  得分: 30    
    设计模式啊,无招胜有招,什么意思呢?
    我给大家详细讲来~~~
    给大家先讲讲基础知识~
    设计模式有很多种:
    经典的设计模式有23种,后来又补充进去3种,就是现在常说的26中设计模式。
     
    championmajian(小马哥|only you~~~预备——唱!) ( ) 信誉:100  2006-6-28 13:48:01    
    轻量级容器对于web 应用的意义尤为明显;但对于其他类型的应用(包括在J2EE环境中运行的应用和独立的应用)来说,轻量级容器也有助于提高它们的复用程度,例如业务对象和数据访问对象(DAO)的复用。  
     
    GlandJacky(Jacky狂奔在Java大地) ( ) 信誉:105  2006-6-28 14:09:27     
    给大家普及一下设计模式的知识~
       Java设计模式,英文是Java Design Patterns。原本我们平时常谈论的是Java的23种经典设计模式,后来又补充进去3种,就形成了现在常谈论的26种设计模式。
        在中国现阶段,设计模式方面的牛人有2个,一个就是阎宏博士,另一个就是网上名人板桥里人~记得曾给我讲解Java设计模式的老师曾说过这个板桥里人的趣事,这里就不多谈了。
       设计模式主要分为3大类,分别是创建模式、结构模式和行为模式。
       其中
        创建模式包含:
            1、Factory(工厂方法和抽象工厂)
            2、Prototype(原型)
            3、Builder
            4、Singleton(单态模式,又是也称单例模式)
       结构模式包含:
            1、Facade
            2、Proxy
            3、Adapter
            4、Composite
            5、Decorator
            6、Bridge
            7、Flyweight
        行为模式包含:
            1、Template
            2、Memento
            3、Observer
            4、Chain of Responsibility
            5、Command
            6、State
            7、Strategy
            8、Mediator
            9、Interpreter
            10、Visitor
            11、Iterator
        最后你可能问这里只有22种啊,还缺少呢,不急,我慢慢告诉你,其中工厂模式又分为简单工厂模式、抽象工厂模式、工厂模式,最后还有多例模式。
        没有写完,以后继续补充~
        以后每一种设计模式我都回写一篇和大家交流的~上面说的是我Blog里写的,还没写完,我会补充的
    http://blog.csdn.net/GlandJacky/archive/2006/06/28/845769.aspx当然了,其实不要一味的追寻什么设计模式,真正的应用肯定是设计模式的综合。
    设计模式有很多,哪种更适合,或者哪几种的组合更适合你的项目,你就选择就行了。
    其实到最后,个人感觉是无招胜有招,即不要考虑什么设计模式,做到最好就行,呵呵~ afengonline(我是阿风) ( ) 信誉:100  2006-6-28 14:26:44 
    我再来说几句吧,
    如果直接采用jsp/servlet + jdbc开发的开发模式,
    那就要好好考虑框架应该采用何种J2EE设计模式,并且自己实现之。
    而若采用现有架构的话,这部分就不用那么费心的。这是架构级的。
    然后就是具体的业务功能的,这部分应该还灵活性很大,
    但对全局的影响不大,可以在具体设计每个功能模块时决定。
     
    MBlue(无为) ( ) 信誉:100  2006-6-28 14:58:09    
    大的结构分为2层
    portal(表现层)
    eip(系统集成,包含work folw、process flow)
    -----------------------------------------------------------
    本系列帖子第八篇,已经开始写概要设计了,基本的技术都定下来了,多谢大家的参与,现在大家随便讨论门户网站的技术就可以了,多交流交流。
    等项目完后,给大家总结一下开发门户网站的技术~
      

  4.   

    抢分啊,楼主都开始写概要设计了,这几天大家伙可帮了不少忙啊
    散分吧!
    我接招ing...
      

  5.   

    call都这个样子了,好!
    本人宣布本贴是散分贴,先到先得~
      

  6.   

    Java开发门户网站,新鲜事,csdn就是好,牛人多的,接分!!!
      

  7.   

    穷抢分流行是SSH其他用什么好不要用EJB吧