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

Light是一個基于Ajax與Java的開源Portal框架,它能夠被無縫地集成到任何Java Web應用程序中或作為一個獨立的Portal系統。它的特點就是當用戶以管理方式訪問portal時打開它,當用戶需要把它作為規則商業處理時關閉它。
支持JSR168 Portlet API設計規范.
支持多主題,也支持自定主題。
每個Portlet都可以配置成單獨刷新的模式,自動獨立刷新與在同一個tab頁面刷新其它portlet。

posted on 2007-04-27 20:48
wqwqwqwqwq 閱讀(2779)
評論(6) 編輯 收藏 所屬分類:
No Category