⼏种开源Portal的简单介绍分析
⼀、⽹上关于⼏个开源portal框架的⼀些评测1、评测的⼀些标准
每个开源框架都有其优点和缺点,如果没有⼀套全⾯的标准来评价,很难说清楚哪个框架更好。其实从做项⽬的观点出发,没有最好的技术,只有最适合的技术。但我们⼀般都会在选择某项技术的时候,尽可能的追求功能完善,易于开发和扩展,⽂档全⾯等等。下⾯是⼀些相关的标准:
1) 遵循JSR168规范
这是这些标准中最重要的⼀个要求,对规范⽀持得好,意味着做到很好的重⽤和别的Portal产品的交互等。
2) 便于安装
包括数据库的配置以及在web应⽤服务器中的发布等。3) ⽂档
是否有详细的安装⽂档,开发⽂档和⽤户⼿册等。4) 在线⽀持
包括开发社区,Wiki,邮件列表等,当使⽤Portal产品遇到问题时是否能快捷的寻找到解决问题的⽅法。
5) Potal管理
包括管理节⽬是否友好,⽅便,易于添加⽤户管理,⾓⾊管理,分类管理,布局,⽪肤管理,增加和删除portlets等等。
6) portlet资源库
⼀般portal框架都能附带的发布⼀些可被重⽤的portlets。例如邮件portlet,⽇程表portlet,搜索portlet等等。这⾥我们主要的评价标准是这些portlets是否能被很好的复⽤。
7) 性能
包括portal框架的启动时间,portlet的装载时间,数据库的访问时间等等。8) 安全
很多portal框架都有默认的安全机制,但默认的认证和授权机制远远不能满⾜某些⼤项⽬的要求。在这⾥,主要考虑portal框架是否能够很好的和JAAS,SSO,SSL等安全技术整合以及整合的难易程度等。
9) 技术
不同的portal框架基于不同的技术开发,同时可能要求portlet开发⼈员也使⽤同样的技术,例如Struts,JSF,Spring,Hibernate,Tiles,EJB以及Web services等技术。
10) Portal特性
通常情况下Portal框架除了作为⼀个portal/portlet容器外,还附带⼀些很有⽤的特性,例如内容管理系统(CMS),⼯作流(Workflow),管理⼯具,监控⼯具等。
11) 服务器兼容性
此标准主要检验portal框架是否能够很好的运⾏在⼤部分的服务器中,包括Tomcat,JBoss,Weblogic,Websphere等主⼒的服务器。
12)
对The Web Services for Remote Portlets(WSRP)规范的⽀持。2、被评测的框架:
Sakai 1.5(⼴泛的⽤于Virtual Research Environment(VRE)领域)uPortal(⼴泛的⽤于Academic Institutes work领域)
GridSphere(第⼀个⽀持JSR168规范的开源portal框架)eXo平台(当前⾮常流⾏)
Liferay(当前⾮常流⾏,良好的⽤户界⾯以及丰富的内建portlets)StringBeans(⾮常易⽤)
下⾯将基于上⾯的评价标准,仔细的给每个开源Portal框架打分,1~5分,其中5分是满分,最后统计总分,见表:
标准
遵循JSR168规范便于安装⽂档在线⽀持Potal管理⾃定义
portlet资源库性能安全
Sakai 1.5
032334423
uPortal
552353344
GridSphere
554444433
Portal框架
eXo平台
553453344
Liferay
553345534
StringBeans
555554334
技术
Portal特性服务器兼容性WSRP标准合计323035323349433051554357445358323051
⼆、Pluto,Liferay,eXo,Jetspeed四种开源Portal的介绍和分析,有助于对具体项⽬选择合适的开发平台。(1)Pluto
2003 年10⽉JSR168规范1.0正式公布后,Jakarta Apache就开始实施Pluto计划(冥王星计划),最终开发出该规范的⼀个参考实现(Reference Implementation),即Pluto。Pluto的1.0.1-rc2版与2004年12⽉发布。
Pluto实现基于 JSR168的⼀个 Portlet Container,相当于为开发者提供了⼀个运⾏portlets的⼯作平台。Pluto本⾝也提供了⼀个简单的Portal模块,该模块仅仅是为了满⾜Portlet容器和JSR 168的需要⽽写的,因⽽显得⾮常简单,提供的实⽤的Portlet也⾮常少。从某种意义上说Pluto更像是⼀个Portlet Container,作为⼀个实⽤的Portal开发框架尚需要更强⼤的⽀持。但新版本的Pluto仍没有推出。对于Pluto的应⽤开发,Apache 更推荐使⽤Jetspeed项⽬框架。
尽管Pluto作为⼀个完整的Portal应⽤还⾮常⽋缺。但不少有影响⼒的Portal项⽬使⽤Pluto作为Portlet Container。这些项⽬包括:Jetspeed 、Cocoon uPortal 、Jahia等。由此可见Pluto的重要性。从开发者和学习者的⾓度看,Pluto的意义还在于为开发者和学习者提供了⼀个深⼊了解Portlet Container的简洁的参考实例。(2)Liferay
Liferay(⽀持JSR168)代表了完整的J2EE应⽤,最⾼版本是2005年1⽉推出的Professional 3.2.0。它的主要优点有: (1)使⽤第三放的开源项⽬,如Hibernate等。特别是前台界⾯部分使⽤了Struts技术; (2)⽀持包括中⽂在内的多种语⾔;
(3)⽀持较多的先进技术,如Web Services、EJB, JMS, SOAP, XML等;
Liferay的缺点是它缺乏⼀个简单清晰可拓展的架构设计,整个架构⽐较复杂且庞⼤;Struts1.1本⾝并不⽀持JSR168,所以Liferay 在实现诸如上下⽂共享等问题上显得⼗分笨重且没有从根本上解决这些问题;portlet设计也显得⽐较凌乱。此外,如果你的门户系统准备应⽤于商业⽤途,你需要购买License。基于它进⾏⼆次开发⽐较困难。(3)eXo
eXo(⽀持JSR168)基于JSF的Portal实现。最新版本是2004年10⽉发布的1.0RC1版。主要优点包括:
(1)由AOP(AspectJ)实现的内容管理系统,极⼤提⾼了内容管理性能;
(2)基于Pico Container的Portlet Container,Pico是⼀个著名的IoC3轻量级容器。同时也实现了上下⽂共享,⼆次开发的流程⽐较清晰;
(3)使⽤Struts框架技术;
(4)提供⼯作流技术服务(Workflow service)。
(5)提供了很多交流⼯具,通过XML可以为结构化的信息轻易地创建视图;
由上可见eXo采⽤了诸多先进技术,但存在不少缺点。主要缺点:由于Portal Server本⾝的数据是使⽤xmldb来进⾏处理,保存到数据库的数据都是乱码⽽且它所有默认的平台字符集都是ISO-8859_1。缺乏中⽂的充分⽀持,对于中⽂门户的开发并没有优势;由于JSF是重量级的表现层框架,使得exo的⼆次开发⼯作量⽐较⼤;对于商业Portal应⽤开发需要购买 License。总体开发难度较⼤。(4) Liferay与exo⽐较:
liferay的表现层是基于Struts,⽽exo是基于jsf。struts1.1并不能真正⽀持jsr168,虽然liferay对此进⾏了⼀些改造,但是实际上并不能真正⽀持jsr168规范(如上下⽂的共享,在liferay⾥的机制很复杂,⽽且也很牵强,并不能从根本上实现上下⽂共享和wsrp规范),⽽jsf本是就是⽀持jsr168规范的框架,实现了应⽤之间的上下⽂共享,所以没有这⽅⾯的问题。此外liferay的架构⽐较混乱,基于它进⾏⼆次开发很困难(我以前做过liferay的⼆次开发⼯作,对于在这⽅⾯有问题的朋友可以和我聊聊)。exo由于采⽤了picoContainer,也实现了上下⽂共享,所以⼆次开发的流程很清晰。不过由于jsf是重量级的表现层框架,使得exo的⼆次开发⼯作量⽐较⼤。exo的中⽂问题没有解决,主要原因有两个:Portal Server本⾝的数据是使⽤xmldb来进⾏处理,保存到数据库的数据都是乱码;它所有默认的平台字符集都是ISO-8859_1。你可以把区域的选项设成是sp(西班⽛??)等区域,cn是不可⽤的,这样平台的字符集就是utf-8了。
exo⽬标设计很⼤,其中使⽤PicoContainer管理其Service,值得借鉴。使⽤PicoContainer的⼀个⿇烦处是系统启动时将配置⽂件的service都载⼊,exo采取的是捆绑JBoss的war部署包,也就是说,war包⼀旦在JBoss部署,将启动PicoCOntainer的初始化配置,个⼈觉得这样兼容性不够。
(5) JetSpeed
JetSpeed 是Apache组织的开源Portal项⽬。Jetspeed ⽬前有两个版本可供选择1.X和2.0版本。Jetspeed1.X出现得⽐较早,但第⼀个较为成熟的版本发布是1.4。此后1.X不断推出新版本。但 Jetspeed1.X都不⽀持JSR168。当JSR168在2003年发布后,Apche开始开发Jetspeed2,提供对JSR168 的全⾯⽀持。下表是Jetspeed重要版本的发布⽇期:
Jetspeed的重要版本 发布⽇期Jetspeed-1.4b2 2002年12⽉
Jetspeed-1.5 2004年4⽉Jetspeed-2.0-M1 2004年12⽉Jetspeed-2.0-M2 2005年4⽉
Jetspeed1.X基于Turbine框架开发,它提供了丰富的Portal技术功能。主要优点有:XML⽂件注册Portlet,便于管理;图形化的部署和卸载;对中⽂的良好⽀持等。值得注意的是IBM早期的WebSphere Portal Server就是在JetSpeed1.X上进⾏⼆次开发的。Jetspeed2.0在1.X基础上进⾏了较⼤的改动,功能更加丰富,完全遵循JSR标准。
配置⽅法,不同的版本的配置可能有变化,如不成功,可以⾃⾏察看⽂档。Pulto在Tomcat下的安装配置⽅法:
(1)从http://portals.apache.org/pluto/mirrors.cgi下载最新的⼆进制版本安装⽂件(2)执⾏%pluto%/bin/install,将它安装到Tomcat⽬录下即可(3)在浏览器中输⼊:http://localhost:8080/pluto/portal,运⾏PlutoLiferay Professional在Tomcat下的安装配置⽅法:
(1)从http://www.liferay.com/downloads/index.jsp下载Liferay Professional安装⽂件;(2)解压ZIP包到某个⽬录下
(3)若下载Tomcat版本的Liferay安装⽂件,则不需再装Tomcat,直接启动bin⽬录下的startup.bat⽂件。(4)在浏览器中输⼊http://localhost/运⾏Liferay Professional。eXo Platform在Tomcat下的安装配置⽅法:
(1)从http://www.exoplatform.com/portal/faces/public/exo 下载eXo Platform的安装包。(2)解压ZIP包到某个⽬录下
(3)若下载Tomcat版本的eXo安装⽂件,则不需再装Tomcat,直接启动bin⽬录下的startup.bat⽂件。(4) 在浏览器中输⼊http://localhost/ 运⾏eXo Platform.Jetspeed2在Tomcat下的安装配置⽅法:
(1)从http://www.apache.org/dist/portals/jetspeed-2/ 下载Jetspeed2 M1或M2版本安装包。
(2)若是安装包中已经捆绑Tomcat,解压即可。若安装包不含Tomcat,先安装Tomcat,然后将安装包解压到Tomcat⽬录,并覆盖相关⽂件即可。
(3)安装要注意的问题有:Jetspeed2M1版本由于Bug⽆法安装Tomcat5.5上
(此BUG见http://issues.apache.org/jira/browse/JS2-187);Jetspeed2必须安装在Tomcat5.0.28以上版本上,否则低版本由于JAAS问题⽆法登陆;
(4)启动jetspeed-database⽬录下的start-database.bat,启动数据库;(5)启动Tomcat;
(6)在浏览器中输⼊http://localhost:8080/jetspeed/portal 运⾏Jetspeed;
因篇幅问题不能全部显示,请点此查看更多更全内容