主要包括:Pluto,Liferay,eXo,Jetspeed四種開(kāi)源Portal的介紹和分析,有助于對(duì)具體項(xiàng)目選擇合適的開(kāi)發(fā)平臺(tái)。
(1)Pluto
2003年10月JSR168規(guī)范1.0正式公布后,Jakarta Apache就開(kāi)始實(shí)施Pluto計(jì)劃(冥王星計(jì)劃),最終開(kāi)發(fā)出該規(guī)范的一個(gè)參考實(shí)現(xiàn)(Reference Implementation),即Pluto。Pluto的1.0.1-rc2版與2004年12月發(fā)布。 Pluto實(shí)現(xiàn)基于 JSR168的一個(gè) Portlet Container,相當(dāng)于為開(kāi)發(fā)者提供了一個(gè)運(yùn)行portlets的工作平臺(tái)。Pluto本身也提供了一個(gè)簡(jiǎn)單的Portal模塊,該模塊僅僅是為了滿(mǎn)足Portlet容器和JSR 168的需要而寫(xiě)的,因而顯得非常簡(jiǎn)單,提供的實(shí)用的Portlet也非常少。從某種意義上說(shuō)Pluto更像是一個(gè)Portlet Container,作為一個(gè)實(shí)用的Portal開(kāi)發(fā)框架尚需要更強(qiáng)大的支持。但新版本的Pluto仍沒(méi)有推出。對(duì)于Pluto的應(yīng)用開(kāi)發(fā),Apache更推薦使用Jetspeed項(xiàng)目框架。 盡管Pluto作為一個(gè)完整的Portal應(yīng)用還非常欠缺。但不少有影響力的Portal項(xiàng)目使用Pluto作為Portlet Container。這些項(xiàng)目包括:Jetspeed 、Cocoon uPortal 、Jahia等。由此可見(jiàn)Pluto的重要性。從開(kāi)發(fā)者和學(xué)習(xí)者的角度看,Pluto的意義還在于為開(kāi)發(fā)者和學(xué)習(xí)者提供了一個(gè)深入了解Portlet Container的簡(jiǎn)潔的參考實(shí)例。
(2)Liferay
Liferay(支持JSR168)代表了完整的J2EE應(yīng)用 ,最高版本是2005年1月推出的Professional 3.2.0。它的主要優(yōu)點(diǎn)有: (1)使用第三放的開(kāi)源項(xiàng)目,如Hibernate等。特別是前臺(tái)界面部分使用了Struts技術(shù); (2)支持包括中文在內(nèi)的多種語(yǔ)言; (3)支持較多的先進(jìn)技術(shù),如Web Services、EJB, JMS, SOAP, XML等; Liferay的缺點(diǎn)是它缺乏一個(gè)簡(jiǎn)單清晰可拓展的架構(gòu)設(shè)計(jì),整個(gè)架構(gòu)比較復(fù)雜且龐大;Struts1.1本身并不支持JSR168,所以Liferay在實(shí)現(xiàn)諸如上下文共享等問(wèn)題上顯得十分笨重且沒(méi)有從根本上解決這些問(wèn)題;portlet設(shè)計(jì)也顯得比較凌亂。此外,如果你的門(mén)戶(hù)系統(tǒng)準(zhǔn)備應(yīng)用于商業(yè)用途,你需要購(gòu)買(mǎi)License。基于它進(jìn)行二次開(kāi)發(fā)比較困難。
(3)eXo
eXo(支持JSR168)基于JSF的Portal實(shí)現(xiàn)。最新版本是2004年10月發(fā)布的1.0RC1版。 主要優(yōu)點(diǎn)包括: (1) 由AOP(AspectJ)實(shí)現(xiàn)的內(nèi)容管理系統(tǒng),極大提高了內(nèi)容管理性能; (2) 基于Pico Container的Portlet Container,Pico是一個(gè)著名的IoC3輕量級(jí)容器。同時(shí)也實(shí)現(xiàn)了上下文共享,二次開(kāi)發(fā)的流程比較清晰; (3) 使用Struts框架技術(shù); (4) 提供工作流技術(shù)服務(wù)(Workflow service)。 (5) 提供了很多交流工具,通過(guò)XML可以為結(jié)構(gòu)化的信息輕易地創(chuàng)建視圖; 由上可見(jiàn)eXo采用了諸多先進(jìn)技術(shù),但存在不少缺點(diǎn)。主要缺點(diǎn):由于Portal Server本身的數(shù)據(jù)是使用xmldb來(lái)進(jìn)行處理,保存到數(shù)據(jù)庫(kù)的數(shù)據(jù)都是亂碼而且它所有默認(rèn)的平臺(tái)字符集都是ISO-8859_1。缺乏中文的充分支持,對(duì)于中文門(mén)戶(hù)的開(kāi)發(fā)并沒(méi)有優(yōu)勢(shì);由于JSF是重量級(jí)的表現(xiàn)層框架,使得exo的二次開(kāi)發(fā)工作量比較大;對(duì)于商業(yè)Portal應(yīng)用開(kāi)發(fā)需要購(gòu)買(mǎi)License??傮w開(kāi)發(fā)難度較大。
(4) JetSpeed
JetSpeed是Apache組織的開(kāi)源Portal項(xiàng)目。Jetspeed 目前有兩個(gè)版本可供選擇1.X和2.0版本。Jetspeed1.X出現(xiàn)得比較早,但第一個(gè)較為成熟的版本發(fā)布是1.4。此后1.X不斷推出新版本。但Jetspeed1.X都不支持JSR168。當(dāng)JSR168在2003年發(fā)布后,Apche開(kāi)始開(kāi)發(fā)Jetspeed2,提供對(duì)JSR168 的全面支持。 下表是Jetspeed重要版本的發(fā)布日期: Jetspeed的重要版本 發(fā)布日期 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框架開(kāi)發(fā),它提供了豐富的Portal技術(shù)功能。主要優(yōu)點(diǎn)有:XML文件注冊(cè)Portlet,便于管理;圖形化的部署和卸載;對(duì)中文的良好支持等。值得注意的是IBM早期的WebSphere Portal Server就是在JetSpeed1.X上進(jìn)行二次開(kāi)發(fā)的。Jetspeed2.0在1.X基礎(chǔ)上進(jìn)行了較大的改動(dòng),功能更加豐富,完全遵循JSR標(biāo)準(zhǔn)。
|