無論是商業化的還是開源的Portal產品,符合國際標準規范是必不可少的要求。有的Portal可能不支持WSRP(Web Services for Remote Portlets),但必須符合JSR-168標準。比較突出的開源Portal主要有JBoss Portal、Apache Jetspeet-2,Liferay Portal,還有兩個屬于歐洲的非美產品eXo Platform和GridSphere也有好的評價。
作為JBoss JEMS(JBoss Enterprise Middleware System)應用開發架構中的一員,JBoss Portal完全支持JSR-168,它還包含了內容管理功能,并支持JavaServer Faces, MyFaces和Spring等Java開發技術。
開源組織Apache早在JSR-168 標準之前就有一個Jetspeed-1 Portal軟件,當JSR-168出來之后,又推出符合該標準的Pluto容器,并以此建立了Jetspeed-2 Portal服務軟件。
以Struts架構技術開發的Liferay Portal完全支持JSR-168和WSRP兩個規范。Liferay Portal能夠在多種應用服務器上運行,支持多種數據庫系統,還提供基于CAS的單點登錄(SSO)功能。
eXo platform建立在JSF架構下,提供了符合JSR-168和WSRP規范的Portlet容器,具有連接池和緩沖功能。eXo 提供的技術文檔不夠齊全,開發應用有一定難度。
GridSphere把網格計算技術應用到Portal產品中,以添加模塊的方式建立了Portal架構。GridSphere 100%兼容JSR-168標準,內置了基于角色的訪問控制(RBAC)功能,采用Hibernate技術連接任何數據庫,支持包括中文在內的多種外國語。
(一)JBoss Portal
產品網址:http://www.jboss.com/products/platforms/portals
http://labs.jboss.com/jbossportal
技術資料:http://labs.jboss.com/jbossportal/docs/index.html
JBoss Portal是著名的紅帽子(Redhat)公司所支助的JBoss開源產品系列中的一員。JBoss Portal支持多實例和群集功能,動態部署是其一大特性。但JBoss Portal提供的組件比較少,功能不夠強,需要自己開發來擴展功能,其最大的局限是只能在JBoss應用服務器下使用。
1 技術架構
l JEMS:適應JBoss企業中間件服務功能(JBoss Application Server, JBoss Cache, JGroups, and Hibernate)。
l DB無關性:適用于所有Hibernate支持的關系數據庫。
l SSO/LDAP:適應Tomcat和JBoss 單點登錄(SSO)方案。身份認證架構適應于企業級LDAP。
l JAAS認證:通過JAAS模塊來配置認證。
l 緩沖技術:利用渲染顯示緩沖技術改善性能。
l 群集能力:支持群集功能。
l 熱部署:適應JBoss自動動態部署特性。
l SAR安裝器:瀏覽器方式的安裝器提供快速安裝和初始配置。
2 支持的標準
l Portlet技術規范和API 1.0 (JSR-168)
l Java內容存儲API(JSR-170)
l Java Server Faces(JSF)1.2(JSR-252)
l Java Management Extension(JMX) 1.2
l 遠程Portlet的Web服務(WSRP) 1.0
3 Portal和Portal容器
l 能夠在一個Portal容器上同時運行多個Portal實例。
l Portlet內部通信接口能夠使Portlet連接到其它對象如頁面,Portal或窗口。
l 管理員和用戶能夠在運行時建立和撤銷對象如Portlet,頁面,主題和外觀等。
l 每個Portlet可以使用國際化資源文件。
l 由Servlet容器和JAAS執行的身份認證能夠切換認證方式。
l 允許Portlet分組按類展現在Portal頁面上。
l Portlet支持Struts, Spring MVC, Sun JSF-RI, AJAX和MyFace架構。
4 主題和外觀
l 易于切換的主題和外觀:包含圖片的新主題和外觀可以WAR包形式部署。
l 靈活的開發接口:主題和外觀接口API能夠把業務層和展示層分離。
l 按頁面定義外觀:不同的頁面可以使用不同的外觀樣式。
5 用戶和群組功能
l 用戶注冊和驗證:可配置的注冊參數允許使用電子郵件地址驗證用戶。
l 用戶登錄:可以使用Servlet容器進行身份認證。
l 建立和編輯用戶樣式:管理員能夠建立和編輯用戶的樣式。
l 建立和編輯角色:管理員能夠建立和編輯角色。
l 角色分配:管理員能夠給用戶分配角色。
6 權限管理
l 可擴展的訪問許可接口:允許根據角色定義配置Portlet的訪問許可。
l 管理接口:允許在任何時候把部署的Portlet、Portal頁面或Portal實例的訪問許可分配給角色。
7 內容管理
l 兼容JCR規范:使用Apache Jackrabbit內容管理器。
l 支持數據庫或文件系統存儲能力:可配置使用文件系統或關系數據庫來存儲Portal內容。
l 支持外部搏客功能:External Blob Support: 可以配置使用文件系統存儲大量搏客內容,而搏客節點、引用和屬性則保存在關系數據庫中。
8 最小系統要求
l JDK 1.4以上
l 內存512 MB
l 硬盤100 MB空間
l CPU 400 MHz主頻
9支持的操作系統
JBoss Portal支持所有能夠使用Java虛擬機(JVM)的操作系統,包括Linux, Windows, UNIX, MacOS X。
10支持的Java應用服務器
JBoss Portal目前只支持JBoss應用服務器JBoss AS 4.0.5.GA和JBoss AS 4.2.0.GA。
11支持的數據庫系統
JBoss Portal通過Hibernate來連接關系數據庫,因此Hibernete所支持的數據它都能使用:
l MySQL 4.x.x (使用Java連接器3.0.16)
l MySQL 5
l PostgreSQL 8.x
l HypersonicSQL
l Derby
l ORACLE 9 和10g
l Microsoft SQL Server
l MaxDB
(二)Apache Jetspeed-2
產品網址:http://portals.apache.org/jetspeed-2/
技術資料:http://portals.apache.org/jetspeed-2/guides/index.html
Jetspeed-2是著名的Apache開源項目的一個企業級Portal產品,它建立在一系列Jetspeed版本的基礎之上,完全符合JSR-168規范,安全性采取了基于JAAS標準的J2EE安全架構,支持分布群集功能。Jetspeed-2使用Apache Pluto作為Portlet容器,但摒棄了Jetspeed-1的Apache Turbine基礎架構,采用了全新的Spring框架技術建立可伸縮的Portal系統。Jetspeed-2提供了比較完整的開發和使用文檔,適用這可以借助常用的開發工具如Eclipse來開發可建立自己的Portal。遺憾的是Jetspeed-2 沒有內置常用的Portlet組件,其次Portal頁面定制功能不夠強,沒有“所見及所得”功能。因此,Jetspeed-2比較適合于有較強開發能力者進行二次開發來擴展應用。
1 標準化
l 完全符合Java Portlet API Standard 1.0 (JSR 168)
l 通過了JSR-168 TCK 兼容測試
l 建立在JAAS標準之上的J2EE安全特性支持LDAP驗證用戶身份。
2 Portal引擎特性
l 服務器端支持并行的JSR-168標準Portlet渲染
l Jetspeed桌面支持Web 2.0客戶端的JSR-168標準Portlet渲染
l 完全支持JSR-168標準Portlet緩沖和對每個Portlet緩沖的配置
l Portlet定時追蹤功能限制渲染時間
l Portlet服務管理器能夠自動移除慢速的Portlet或僵死Portlet
3 定制特性
l 可定制Portal頁面
l 可定制Portal桌面
l 可定制循環片段
l 拖拉式移動Portlet
l 可設定Portlet窗口大小
l 按類選擇Portlet,可全文檢索Portlet
l 可定制主題(外觀)
4 安全性
l 建立在安全一致性或安全許可上的Portlet級安全性檢查
l 聲明式安全一致性和JAAS數據庫安全策略
l 支持完全可切換式安全一致性或安全許可
l Jetspeed的單點登錄(SSO)
l 安全代理功能
5 支持分布式集群
l Portal分布式部署在多個應用服務器平臺上
l Portal部件的分布式緩沖
l Portlet緩沖的分布式失效
6 基礎架構
l 建立在Spring上的部件和可擴展架構
l 可配置的管道請求處理器
l Portlet應用自動部署
l Jetspeed部件提供Java API接口
l 提供AJAX的XML API接口
l 擴展的Portlet現場標記語言(PSML)
l 支持數據庫持久化
l 內容管理功能
l 安全一致性
l 完全支持LDAP的安全驗證
7 Portal內核特性
l 提供運行時Portlet接口標準基于角色的安全特性
l Portal內容管理和導航支持頁面、菜單、目錄和連接
l 提供基于規則的頁面和資源定位配置
l 基于角色的可視頁面聚合功能
l 支持大多數流行數據庫系統如Derby, MySQL, MS SQL, Postgres, ORACLE, DB2
l Portal資源提供12種本地化語言
l 具有統計功能的日志機制
l 使用Lucene實現Portlet資源的全文檢索
l 用戶注冊管理和密碼找回功能
l 豐富的登錄和密碼配置管理
l 可定制的Portlet模式和窗口狀態,支持Portlet打印模式和窗口的solo狀態
l 提供對用戶、角色、群組、密碼和用戶配置文件管理
l Portal場景管理器
l 遠程Portal應用部署器(RPAD)可以熱部署遠程web上的Portlet應用
l JSR-168外觀和用戶屬性編輯器
l 單點登錄管理器
l 權限許可管理(JAAS安全性)
l 安全一致性管理
l Portlet應用和生命周期管理
l 用戶配置文件管理
l 統計報告
8 支持Web架構提供樣板Portlet
l 支持Web架構JSF,Struts,PHP,Perl和Velocity
l 提供樣板Portlet:RSS,IFrame,Calendar XSLT,Struts Petstore,Bookmark,Database Browser
l 集成了顯示標記和Spring MVC架構
9 數據轉換特性
l 提供轉換所有Jetspeed數據庫數據的XML導入/導出工具
l Portal的全部初始數據是XML格式
l 提供全部XML內容的XML樣板文件
10 Portal設計特性
l 使用CSS部件部署Jetspeed的Portlet和頁面樣式
l 可配置的CSS頁面外觀
l 樣式和外觀部件定義使用Velocity宏語言
11 開發工具
l 使用自動化的Maven-1和Maven-2軟件來建立
l 提供客戶開發Jetspeed-2的Maven插件
l 自動部署Portlet應用和Portal資源
12 部署工具
l 插件集成了自動部署功能
l 提供PSML、jetspeed-Portlet.xml和Jetspeed XML的模板
13 支持的數據庫系統
缺省配置使用Derby數據庫,支持任何符合JDBC2.0驅動器規范的數據庫:
l Derby
l HSQLDB - Hypersonic SQL
l MySQL
l ORACLE
l POstgres
l DB2
l Sybase
l SQL Server
14 支持的應用服務器
要求Servlet 2.4版本以上的應用服務器:
l Tomcat 5.5.x
l Jetty
l Websphere 6.0
l Geronimo
l JBoss
l Weblogic
15 運行要求
使用者需要熟悉Apache Maven項目管理工具和Apache Ant腳本工具。要求使用以下軟件:
l Ant 1.5以上版本
l Maven 1.0.2
l Java 1.4.2_02以上版本
l Servlet 2.4版本以上的應用服務器
(三)Liferay Portal 4.3
產品網站:http://www.liferay.com/
技術資料:http://wiki.liferay.com/
Liferay Portal自稱是全球領先的開源企業級門戶軟件,應用了最新的Java、J2EE和Web 2.0等技術,其前臺界面部分利用Struts 框架技術,基于XML的Portlet配置文件可以自由地動態擴展功能,使用Web服務支持遠程信息的獲取,利用Apahce Lucene實現全文檢索功能。
Liferay Portal安裝簡單,技術文檔相對齊全。對于簡單的應用通過使用系統內置的工具進行配置和管理,就可以直接投入實際使用而無需編碼。Liferay Portal的未來發展把ESB和SOA集成進來,因此更適合于企業級使用。
Liferay Portal的主要特性:
l 運行在大多數主流應用服務器和Servlet容器,數據庫和操作系統之上
l 符合JSR-168標準
l 內置60多個適用的Portlet
l 內置了內容管理器(CMS)
l 帶有協同套件
l 為所有用戶提供個性化頁面
l 提供單一登錄接口,多認證模式(LDAP或SQL)
l 管理員能通過用戶界面輕松管理用戶,組,角色
l 支持包括中文在內的多種語言
l 經過嚴格的安全測試
1、技術指標
(1)應用服務器:
l Apache Geronimo 1.1
l Sun GlassFish 2.0
l JBoss 4.x
l ORACLEAS 10.1.3
l SUN JSAS 8.01
l WebLogic 8.1 SP4, 9.2
l WebSphere 5.1, 6.0.x
(2)Servlet容器:
l Tomcat 5.0.x/5.5.x
l Resin 3.0.14
l Jetty 5.1.4
(3)數據庫:
l IBM DB2
l Informix
l InterBase
l MySQL
l ORACLE
l SAP
l SQL Server
l Sybase
(4)操作系統:
l AIX
l LINUX
l SOLARIS
l WINDOWS
l MAC OS
(5)支持的語言:
l 22種主要語言包括簡體中文和繁體中文
2、技術架構
(1)用到的技術:
l Apache ServiceMix
l ehcache
l Hibernate
l ICEfaces
l Java J2EE/JEE
l jBPM
l JGroups
l jQuery JavaScript Framework
l Lucene
l MuleSource ESB
l PHP
l Ruby
l Seam
l Spring & AOP
l Struts & Tiles
l Tapestry
l Velocity
(2)支持的標準:
l AJAX
l iCalendar & Microformat
l JSR-168
l JSR-127
l JSR-170
l OpenSearch
l JSON
l Hessian
l Burlap
l REST
l RMI
l WSRP
l WebDAV
3、體系架構
4、應用架構
l 面向服務(SOA)—— Liferay應用了SOA 設計理念為企業應用提供了擴展SOA的工具和框架。
l 提供可插入ServiceMix ESB,也支持Mule ESB。
l 支持Web服務,簡化不同應用之間的通信聯系。
l 支持AJAX技術
l 安全性——Liferay使用了工業標準的政府級加密技術如DES、MD5和RSA。
l 單點登錄(SSO)——支持使用耶魯大學的CAS、SUN的JAAS、LDAP、Netegrity、微軟Exchange進行用戶驗證。缺省集成了CAS。
l 支持群集和高可靠性應用。
l 支持對靜態內容的頁面緩沖提高了Web性能。
5、內置Portlets
(1)門戶管理類:
l Admin Portlet :顯示Liferay Portal版本、企業信息(組織機構名稱、地址等)、有效的Portlets、當前活動Session、認證屬性、LDAP配置、新用戶屬性等。
l Enterprise Admin Portlet :允許授權用戶管理用戶、組織機構、場所、群組、角色、權限等。
l Page Settings : 管理頁面、修改頁面外觀、設置用戶URL等。
(2)內容管理類:
l Alfresco Content :集成了Alfresco 內容管理器,內置對HTML內容的瀏覽和發布、在線編輯內容、管理圖像和內容、預覽未發布內容等。
l Document Library :提供了符合JSR-170標準的Jackrabit Java內容存儲管理器管理文檔資料。
l Journal :Liferay集成Web發布系統的主接口,允許用戶建立、編輯和發布文章。
l Journal Articles :顯示社區所有動態文章列表。
l Journal Content :在頁面上發布任何CMS中的文章。
l Journal Content Search :檢索CMS中的內容。
l Recent Documents :顯示最新文檔庫中的文章。
l Breadcrumb :顯示當前頁面的父頁面,作導航用途。
l Navigation :提供門戶頁面結構的連接目錄。
l Site Map :顯示門戶所有頁面的結構目錄。
(3)協同類:
l Blogs :提供博客服務,具有分類和所見即所得編輯功能。
l Calendar :顯示日歷信息,用戶可以建立、管理和檢索事件。
l Enterprise Instant Messaging :提供用戶即時通信(聊天)的客戶端。
l Mail :Web電郵客戶端,適用于任何電郵服務器。
l Message Boards :提供論壇功能。
l Wiki : 提供威客功能。
(4)社區類:
l Announcements :提供公告功能。
l Bookmarks :提供收藏夾功能。
l Communities :用來建立和管理新的門戶社區和社區的用戶群。
l Directory :所有注冊用戶信息列表。
l Polls :提供投票功能。
(5)個人工具類:
l Financial Tools :金融財務計算器。
l Google Portlets :提供Google檢索功能。
l News and RSS :動態獲取互聯網新聞。
l Weather :通過互聯網獲取并顯示城市的天氣情況。
l Other Tools :包括模擬鐘表、美國區號查詢、詞典、語言選擇、密碼生成器、信息檢索、單位換算等。
(6)開發工具類:
l Prototype Portlets :提供了幾個樣板Portlet 實例,包括Flash、JSP、Struts等。
l WSRP :提供訪問其他門戶的Portlet。
l Workflow :用于管理工作流。
6、許可協議
Liferay采用的是麻省理工學院的軟件許可協議。
轉自:http://neujingxiao.blog.163.com/blog/static/51394720087735039741/