JetSpeed-2技術(shù)資料文檔:
JETSPEED2.0 概述
Jetspeed2.0最終release版本發(fā)布于2005年12月, 可以從以下網(wǎng)址下載源代碼和捆綁tomcat的壓縮文件: http://www.apache.org/dist/portals/jetspeed-2/ 。
與Jetspeed1.x比較,Jetspeed2.0 (以下簡稱J2)的架構(gòu)發(fā)生了很大變化, J1.x使用了Turbine,在J2中Turbine不再使用, 而是使用了Spring Framework作為默認(rèn)的組件框架,從官方的資料介紹看,J2架構(gòu)支持將一種組件架構(gòu)替換為別的組建架構(gòu)如Pico,Spring僅僅是J2默認(rèn)的Component Framework,從本節(jié)下文的敘述中可以看到替換的方式。
JETSPEED-2 工作流程
1、request送至server后由JetspeedServlet接收。JetspeedServlet通過Jetspeed取得ComponentManager,然后通過ComponentManager取得RequestContextComponent。
2、RequestContextComponent會針對這個 request建立一個RequestContext,并且讓這個request和新建的RequestContext能互相參照。
3、 呼叫Engine的service()方法,這個方法會把剛剛建立的RequestContext傳入,這樣后面的組件才能使用。
4、 在service()方法中,Engine會依據(jù)request的目標(biāo)URL來取得相對應(yīng)的Pipeline來處理。Pipeline使用了chain of responsibility的pattern,是由一堆Valve串起來的 。
5、 各個Valve依序執(zhí)行,其中某些Valve會和Container動作,某些Valve會負(fù)責(zé)產(chǎn)生要response的portal頁面。在這個過程中,Continer會執(zhí)行相關(guān)的Portlet,并將結(jié)果返回至Pipeline,也就是Valve chain中。
6、 將產(chǎn)生的portal頁面?zhèn)骰亟ouser,流程結(jié)束。
JETSPEED-2安全機(jī)制
J2使用JAAS的來處理security有關(guān)的問題。在j2捆綁的tomcat中,從bin同級別目錄conf中查找Catalina\localhost\jetspeed.xml,打開這個文件可看到有關(guān)JAAS Realm及l(fā)ogin的設(shè)定。
大致上來說,JAAS包含Principal、Permission、Policy三個概念。在J2中有user、role、group三種Principal。而Permission基本上有page、portlet,tab等等,當(dāng)然也可以增加自定的Permission。至于Policy,J2并沒有使用JAAS的policy,而是使用自帶的RdbmsPolicy,也就是把Policy的信息存在資料庫中;而通過適當(dāng)?shù)脑O(shè)置, J2也可以使用相關(guān)App Server的JAAS。
JETSPEED-2的PORTAL BRIDGE
隨著Portal一步步走向成熟其結(jié)構(gòu)和功能也發(fā)生了較大變化,從混和型服務(wù)走向以系統(tǒng)框架為核心,應(yīng)用程序與部署、開發(fā)完全分開的階段,Portal相當(dāng)與一個骨架一樣可以接納外部的這種技術(shù)架構(gòu)開發(fā)的應(yīng)用程序,使用Portals Bridges模式來連接不同的應(yīng)用程序,可包括以下幾種:
集成Struts MVC模式開發(fā)的應(yīng)用程序;
集成WebWorks開發(fā)的應(yīng)用程序;
集成JSF開發(fā)的應(yīng)用程序;
集成Perl開發(fā)的應(yīng)用程序;
集成PHP開發(fā)的應(yīng)用程序;
相關(guān)技術(shù)介紹和規(guī)范
簡單介紹了WSRP, PORTLET容器, PORTLET, PORTLET PREFERENCES, JSR168規(guī)范, PSML, LAYOUT, DECORATION, AGGREGATOR, PLUTO, EXO, LIFERAY, JPORTAL。
JETSPEED-2相關(guān)資源鏈接
文檔下載: http://www.cchensoft.com/devguide/down/book/java/jetspeed2-doc.zip