1) Portlet 和 Servlet 的相似之處
@ portlets 也是 Java 技術(shù)的 web 組件
@ portlets 也是有特定的 container 在管理
@ portlets 可以動態(tài)產(chǎn)生各種內(nèi)容
@ portlets 的生命周期由 container 所管理
@ portlets 和客戶端的互動是通過 request/response 的機制
2) Portlet 和 Servlet 也有一些不同
@ portlets 只產(chǎn)生 markup 信息片段,不是完整的網(wǎng)頁文件。而 Portal 會將所有的 Portlet markup 信息片 段放到一個完整的 Portal 網(wǎng)頁。
@ portlets 不會和 URL 有直接的關(guān)系
@ 客戶端必須通過 portal 系統(tǒng)才能和portlets互動
@ portlets 有一些定義好的request處理,action request以及render request。
@ portlets 默認(rèn)定義 portlet modes 及窗口狀態(tài)可以指出在網(wǎng)頁中該 portlet 的哪個功能正在執(zhí)行及現(xiàn)在的 狀態(tài)。
@ portlets 可以在同一個 portal 網(wǎng)頁之中存在多個。
3) Portlet 有一些附加的功能是 Servlet 所沒有的
@ Portlets 能夠存取及儲存永久配置文件及定制資料。
@ portlets 可以存取使用者數(shù)據(jù)
@ portlets 具有URL的重寫功能在文件中去動態(tài)建立連結(jié),允許 portal server 不用去知道如何在網(wǎng)頁的片 段之中建立連結(jié)及動作。
@ portlets 可以儲存臨時性的數(shù)據(jù)在 portlet session 之中,擁有兩個不同的范圍:
application-wide scope 及 portlet private scope 。
4) Portlet 不具有一些功能,但是 Servlet 卻有提供
@ servlet 具有設(shè)置輸出的文字編碼方式
@ servlet 可以設(shè)置 HTTP 輸出的 header
@ servlet 才能夠接收客戶對于portal發(fā)出的URL請求
基于Portal開發(fā)項目的優(yōu)勢
1、可以與以后新開發(fā)的或已集成到Portal中的企業(yè)應(yīng)用實現(xiàn)無縫集成。
2、可以分享Portal服務(wù)器和Portlet容器提供的種種功能。這要視Portal服務(wù)器提供商而定。
3、由于Portlet已規(guī)范化(JSR168),所以應(yīng)用中開發(fā)的Portlet可以部署在不同的Portal服務(wù)器上。
Java 中開源的portal門戶
Liferay
代
表了完整的J2EE應(yīng)用,使用了Web、EJB以及JMS等技術(shù),特別是其前臺界面部分使用Struts
框架技術(shù),基于XML的portlet配置文件可以自由地動態(tài)擴展,使用了Web Services來支持一些遠(yuǎn)程信息的獲取,使用 Apahce
Lucene實現(xiàn)全文檢索功能。
主要特點:
1、提供單一登陸接口,多認(rèn)證模式(LDAP或SQL);
2、管理員能通過用戶界面輕松管理用戶,組,角色;
3、用戶能可以根據(jù)需要定制個性化的portal layout;
4、能夠在主流的J2EE應(yīng)用服務(wù)器上運行,如JBoss+Jetty/Tomcat,JOnAS;
5、支持主流的數(shù)據(jù)庫,如PostgreSQL,MySQL;
6、使用了第三放的開源項目,如Hibernate, Lucene, Struts;
7、支持包括中文在內(nèi)的多種語言;
8、采用最先進的技術(shù) Java, EJB, JMS, SOAP, XML;
JetSpeed
Jetspeed
是一個開放源代碼的企業(yè)信息門戶(EIP)的實現(xiàn), 使用的技術(shù)是Java和XML. 用戶可以使用瀏覽器,
支持WAP協(xié)議的手機或者其它的設(shè)備訪問Jetspeed架設(shè)的信息門戶獲取信息. Jetspeed扮演著信息集中器的角色,
它能夠把信息集中起來并且很容易地提供給用戶.
Jetspeed具有如下的特征:
* 即將成為標(biāo)準(zhǔn)化的Java Portlet API
* 基于模板的布局, 包括JSP和Velocity
* 通過開放的內(nèi)容同步技術(shù)支持遠(yuǎn)程XML內(nèi)容交換
* 定制默認(rèn)的主頁
* 使用數(shù)據(jù)庫進行用戶認(rèn)證
* 內(nèi)存緩存技術(shù), 加快頁面的響應(yīng)
* 通過Rich Site Summary技術(shù), 支持同步內(nèi)容
* 和Cocoon, WebMacro, Velocity集成.
* Wireless Markup Language (WML) 支持
* 使用XML格式的配置文件注冊portlet.
* 完整的Web Application Archive (WAR) 支持
* Web應(yīng)用程序開發(fā)的基礎(chǔ)設(shè)施
* 可以在本地緩存遠(yuǎn)程內(nèi)容
* 與Avantgo同步
* 可移植到所有支持JDK1.2和Servlet 2.2的平臺
* 與Turbine模塊和服務(wù)集成
* 可以根據(jù)用戶, 安裝媒體類型和語言的不同設(shè)定, 產(chǎn)生不同的個性化服務(wù)
* 持續(xù)化服務(wù)使得所由的portlet能夠容易的存儲每個用戶的狀態(tài), 頁面和portlet
* 使用皮膚技術(shù)使得用戶可以選擇portlet的顏色和顯示屬性
* 自定義功能是的管理員可以選擇portlet以及定義個人頁面的布局
* 在數(shù)據(jù)庫中存儲PSML
* 通過Jetspeed的安全portlets管理用戶, 組,角色和權(quán)限
* 基于角色對訪問portlet進行控制
Pluto
Pluto 是一個滿足Portlet API規(guī)范的Portlet容器的實現(xiàn),它為開發(fā)者提供了一個運行portlets的工作平臺。然而,如果沒有一個驅(qū)動器(driver),也就是 Portal,的支持的話,運行和測試Portlet容器將非常之麻煩。Pluto本身也提供了一個簡單的Portal模塊,該模塊僅僅是為了滿足 Portlet容器和JSR 168的需要而寫的。
oPortal
oPortal是一個用java寫的開源門戶項目,它的目標(biāo)是成為一個安全的web應(yīng)用程序。基于Struts 框架技術(shù)。
jPorta
J2EE Portal Engine是一個建造于Jeenius Framework (http://jeenius.sourceforge.net)框架基礎(chǔ)上的完整功能的門戶引擎。它可以和任意兼容2.3版本的servlet 引擎工作,提供了許多有用的小部件。
jCharon
jCharon 目標(biāo)是創(chuàng)造一個具有國際化與商業(yè)化的 Portal 及 Portlets。發(fā)起該項目的原因大致是現(xiàn)有的開源 portal 太簡單, portlets 也不具有國際化, 所以建立了以冥王星 (pluto)的衛(wèi)星 Charon 為名的開源項目。該項目的 License 是 Apache Foundation License
eXo Platform
eXo Platform 是一個開源企業(yè)門戶解決方案,它基于 Java(tm) Server Faces (JSF) web 層框架,遵循portlet API (JSR 168) 。此開源項目還用到的開源技術(shù)有Pico Container, JbossMX 與AspectJ。
Jakarta Pluto
Portlet API規(guī)范(JSR 168)的Portlet容器的實現(xiàn),它為開發(fā)者提供了一個運行portlets的工作平臺。
JPortal
JPortal 是目前最為符合JSR-168 Spec的Portal實現(xiàn)。他使用了攔截器技術(shù)和 Dynamic Proxy來實現(xiàn)Portlet的可插入設(shè)計。他目前只是一個原型的實現(xiàn)并且之關(guān)注于實現(xiàn) Portal Container,并沒有過多的 Portlet實現(xiàn)和設(shè)計。 優(yōu)點在于其的架構(gòu)清晰,易于擴展,但在Portal的工業(yè)強度上需求的差距是比較大的,沒有分布式的概念是他目前架構(gòu)的一個致命的地方。
uPortal
由(JA -SIG)開發(fā)的uPortal基于的Java, XML, and XSL項目, 發(fā)行版包括WEB服務(wù)頻道,權(quán)限,用戶組管理等等。UPortal讓你可以自己增加你的機構(gòu)需要的新特性。它著眼于高等教育機構(gòu),一些商業(yè)組織也用它來作 為構(gòu)建協(xié)同社區(qū)的框架。這種框架包括插入式的被成為頻道的組件,它提供用戶感興趣的信息。用戶可以根據(jù)其在機構(gòu)中角色選擇關(guān)心的頻道,同時還可以定制自己 站點喜歡的樣式。
jPortlet
jPortlet是portlet容器的一個開源實現(xiàn),Portlet是運行在portle服務(wù)器中的portlet容器之內(nèi)的組件。jPortlet具有以下特性: 1,可以用不同的方式瀏覽portlet:觀察、修改、配置或者提供幫助。2,它的API可以讓你把portlet部署在web瀏覽器內(nèi)、PDA上、蜂窩電話上等許多地方。3,portlet容器可以緩存portlet的內(nèi)容,用來加速porlet的表現(xiàn)。
OpenPortal
OpenPortal是一個Web門戶框架,可以讓用戶個性化運行這一軟件的站點的Web頁面。用戶通過選擇一套可用的門戶組件屬性來構(gòu)造其頁面。一個門戶組件可以是servlet 或JSP頁面。
Jaco Portal Server
一個遵循Portlet Specification(JSR-168) 規(guī)范的portlet 容器。
Stringbeans
Stringbeans是一個兼容JSR 168 portlets部署的平臺。2.4版增加了portlet應(yīng)用部署者工具,支持部分保護(semi-protected)的門戶應(yīng)用、跟蹤和訪問門戶應(yīng)用。
GridSphere
提供一個基于 portlet 的高級開放源代碼門戶。GridSphere 是在歐盟提供基金的 GridLab 項目
下開發(fā)的,提供了一個非常復(fù)雜的門戶,該門戶為各種終端用戶提供高度定制的環(huán)境。portlet
模型向用戶提供了一個靈活易用的接口,并向門戶開發(fā)人員提供了一個模型,用于創(chuàng)建可插入的和動態(tài)的應(yīng)用程序支持。
下面簡要列出核心的 GridSphere 特性:
1,Portlet API 的實現(xiàn)與 IBM WebSphere Portal Server 4.2 或更高版本緊密兼容。
2,易于開發(fā)并易于與插入到 GridSphere portlet 容器中的“第三方 portlet”集成。
3,級別更高的模型,用于使用可視的 bean 和 GridSphere User Interface (UI) 標(biāo)簽庫構(gòu)建復(fù)雜的 portlet。 靈活的基于 XML 的門戶表示描述,可以輕松對其進行修改來創(chuàng)建自定義的門戶布局。
4,對基于角色的訪問控制(Role Based Access Control,RBAC)提供內(nèi)置的支持,RBAC 將用戶分為 guest、user、admin 和 super user。
5,復(fù)雜的服務(wù)模型,允許創(chuàng)建“用戶服務(wù)”,可以按照用戶權(quán)限限制服務(wù)方法。
6,通過 Hibernate for RDBMS 數(shù)據(jù)庫支持提供數(shù)據(jù)的持久性。
7,為 portlet 服務(wù)的服務(wù)端測試集成了 Junit/Cactus 單位測試,包括生成測試報告。
8,GridSphere
核心 portlet 提供基本功能,包括登錄、注銷、用戶和訪問控制管理。 由于 GridSphere portlet API 幾乎與
WebSphere portlet API 完全相同,所以您應(yīng)該多看看 developerWorks 文章,這些文章在 參考資料 和 IBM
WebSphere Portal Zone 中列出。在理論上,使用 IBM WebSphere Portal Server 開發(fā)本文中的示例
portlet 應(yīng)該不難。GridSphere API 與 JSR Portlet API 1.0 最后的規(guī)范非常類似,gridSphere
的將來版本是符合 JSR 168 的。當(dāng)前的 GridSphere 版本提供了一個門戶、一個 portlet 容器和一組有用的核心
portlet,包括用戶和組管理以及布局定制和 portlet 訂閱。
Jaco Portal Server
一個服從Portlet規(guī)范(JSR-168)的Portlet容器。
basicPortal CMS (TM)
basicPortal CMS (TM)是一個企業(yè)信息門戶(EIP)。它完全基于能夠讓用戶開發(fā)標(biāo)準(zhǔn),廉價,跨平臺,動態(tài),靈活和非常快web應(yīng)用程序的開源軟件技術(shù)。
MyPersonalizer 點擊次數(shù):7612
MyPersonalizer是一個基于J2EE框架的“我的”門戶(類似于my.yahoo.com)的開源項目。
NVPortal
NVPortal是一個基于開源BSD協(xié)議的Java企業(yè)門戶解決方案.這個開源方案可滿足用戶的高需求因為:
* 符合JSR 168規(guī)范與WSRP標(biāo)準(zhǔn),
* 通SOAP實現(xiàn)商業(yè)處理引擎與搜索引擎,
* 可隨意地的自定義布局,
* 非常友好的用戶界面,
* 多語言支持,
* 單一登錄(SSO),
* 圖形管理界面等...
WWPortlet
WWPortlet 一個MVC JSR168 Portlet框架基于WebWork,Velocity,Spring,Hibernate.使用WWPortlet框架開發(fā)門戶(Portal)系統(tǒng) 時,可以不需要知道Portlet和JSR168的API與概念.你可以像開發(fā)傳統(tǒng)WebWork/Velocity應(yīng)用程序一樣來開發(fā)門戶 (Portal)系統(tǒng),
Lutece
Lutece 是一個Web門戶引擎,它能夠讓你快速創(chuàng)建基于HTML,XML或數(shù)據(jù)庫內(nèi)容的internet或intranet門戶網(wǎng)站.Lutece可很好的運行在 Linux與Windows平臺上,采用MySQL作為默認(rèn)的數(shù)據(jù)庫.Lutece提供一個非常簡單的管理界面能夠讓最終用戶直接使用而不需要任何專門的 技術(shù).這個工具由巴黎城市數(shù)據(jù)處理部門所開發(fā)主要用于區(qū)域Web站點項目,它已被運用在超過18個城市的Web網(wǎng)站上(具體可查看此處列表).
SIPF
SIPF(Siemens Intranet Portal Framework)提供一個個性化的,結(jié)構(gòu)化的信息訪問和應(yīng)用程序的無縫集成.一個基于web的并且結(jié)構(gòu)分明的可視化桌面工作環(huán)境.
PortletBridge
Portlet Bridge Portlet是一個web clipping proxy portlet,它能夠把web應(yīng)用程序"裁剪"成portlets。Portlet Bridge Portlet使用XSLT和CyberNeko進行web clipping。
Kosmos
Kosmos是一組監(jiān)測軟件項目開發(fā)portlet。符合JSR-168規(guī)范可用于跟蹤項目各方面的進展包括:版本控制,缺陷跟蹤,持續(xù)構(gòu)建,和項目依賴等。
Light Portal
Light是一個基于Ajax與Java的開源Portal框架,它能夠被無縫地集成到任何Java Web應(yīng)用程序中或作為一個獨立的Portal系統(tǒng)。它的特點就是當(dāng)用戶以管理方式訪問portal時打開它,當(dāng)用戶需要把它作為規(guī)則商業(yè)處理時關(guān)閉它。
支持JSR168 Portlet API設(shè)計規(guī)范.
支持多主題,也支持自定主題。
每個Portlet都可以配置成單獨刷新的模式,自動獨立刷新與在同一個tab頁面刷新其它portlet。