本系列帖子第七篇,大家讨论一下所有项目中也不可或缺的设计模式的问题。前六版已经结帖,估计对大家都回有点启发,目前大家讨论的还比较浅显,没有涉及到深的领域,所以希望高手们,或者有门户网站开发经验的牛人们发表高论~项目需求用Java开发一个大型门户网站,
1、开发CMS(内容管理系统),由XSL模版、XML内容,产生静态页面HTML或者由客户端直接访问XML文件
2、开发博客系统
3、会员社区系统
4、各种互动系统
5、cache
6、客户端工具希望大家参与。
最后我会总结本系列帖,为以后各位同仁们使用Java开发门户网站提供部分帮助,更可以为新手们提供经验~
1、开发CMS(内容管理系统),由XSL模版、XML内容,产生静态页面HTML或者由客户端直接访问XML文件
2、开发博客系统
3、会员社区系统
4、各种互动系统
5、cache
6、客户端工具希望大家参与。
最后我会总结本系列帖,为以后各位同仁们使用Java开发门户网站提供部分帮助,更可以为新手们提供经验~
没有作过这种类型的,没有经验,
所以向大家请教相关的开发技术、系统架构、经验等等
当然要考虑系统性能等等目前我们提供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,会给服务器的负载产生一个峰值,但是以后性能会比使用同一个页面减少不少。
嗯,是,所以最好欢迎页面不要用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变得容易扩展和构建。
设计模式啊,无招胜有招,什么意思呢?
我给大家详细讲来~~~
给大家先讲讲基础知识~
设计模式有很多种:
经典的设计模式有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)
-----------------------------------------------------------
本系列帖子第八篇,已经开始写概要设计了,基本的技术都定下来了,多谢大家的参与,现在大家随便讨论门户网站的技术就可以了,多交流交流。
等项目完后,给大家总结一下开发门户网站的技术~
散分吧!
我接招ing...
本人宣布本贴是散分贴,先到先得~