綜述
Apache開源組織的企業門戶項目,現有兩個版本:jetspeed1與jetspeed2。由於jetspeed1在設計上的“缺陷”,現在已經升級到jetspeed2。目前大陸還沒有成功使用jetspeed2開發的案例。
1 Jetspeed介紹
Jetspeed是Apache組織開發的一個採用Java和XML的開放原始碼的企業信息門戶的實現。門戶可以讓終端用戶可以很方 便的訪問網路資源(套用、資料庫等)。用戶可以通過Web瀏覽器、WAP手機、尋呼機以及其它一些智慧型設備來訪問Portal。Jetspeed就像是中心的控制器,可以很方便地以各種形式展示那些來自不同數據源的數據。
通過Jetspeed展示的數據形式完全獨立於內容的類型。這就意味著Jetspeed可以集成各種各樣的數據源,如:XML、RSS、SMTP。然後通過XSL技術將數據組織成Jsp頁面或Html頁面傳給客戶端。Jetspeed還支持模板和內容的發布框架,比如:Cocoon, WebMacro 和 Velocity。
2 Jetspeed框架結構和核心技術
Jetspeed向用戶展示的頁面由Turbine控制產生,它的主要內容部分由一些標準的Portlet構成。
Portlet設計的目標是:
◇ 一個頁面上可以提供很多小的WEB應用程式給用戶;
◇ 這些WEB應用程式的背景色、標題欄顏色、圖示都可以更換;
◇ 可以用緩衝子系統維持跨多個Portlet的套用;
◇ 可以對所有的WEB應用程式進行管理、維護,並提供給用戶;
◇ 簡單的選擇就可以讓用戶定製頁面,這些頁面除了一個頁面可以顯示多個Portlet之外,和Turbine的顯示頁面很相識;
◇ 由於緩衝子系統的存在,使得系統可以快速運行。這使得即使要和資料庫打交道得複雜Portlet也可以快速生成Html頁面;
◇ 很容易開發整個系統,開發人員不必知道整個Jetspeed的運行機制。
◇ Portlet可以通過多種方式形成頁面。可以通過JDBC從資料庫記錄產生頁面;可以通過XML—>XSL—>HTML產生頁面;可以通過其它途徑如CoCoon形成頁面;
◇ Portlet允許對它的顯示風格進行定製,比如背景色、尺寸等。
◇ Portlet通過PortletController來管理。這個PortletController是標準接口的實現,開發者可以定製它們;
◇ Portlet交給PortletControl來處理,PortletControl給Portlet加上顯示風格後返回Portlet的內容;
◇ Jetspeed內通過XML標記檔案分類管理Portlet;
◇ Portlet接受一個PortletConfig參數,這個參數中包括Url地址和一些參數的哈希表;
◇ 大多數簡單的Portlet可以通過繼承AbstractPortlet來實現。
3 Jetspeed的安裝與配置
Jetspeed實際上是一個採用了Portlet技術的WEB應用程式,我們可以象部署普通WEB應用程式一樣來部署Jetspeed。
安裝配置步驟:
a.下載並安裝Tomcat;
b.下載Jetspeed war包,並拷貝到Tomcat的webapp目錄;
c.啟動Tomcat,在瀏覽器中輸入http://localhost:8080/jetspeed/;
d.以上已經可以正確運行Jetspeed。
進入Jetspeed系統可以使用Login: turbine Password: turbine;Login: admin Password: jetspeed。
要註冊新的用戶必須安裝郵件伺服器James,郵件伺服器設定在/webapps/jetspeed/WEB-INF/conf/TurbineResources.properties中修改。
e.資料庫配置
Turbine目前可以通過JDBC連線以下資料庫:
· Hypersonic SQL
· MySQL
· Postgres
· DB2
· Oracle
· Sybase
· SQL Server
資料庫的配置信息在
/webapp/WEB-INF/conf./Torque.properties檔案中修改。
具體配置的例子如下:
======MySQL:資料庫配置如下======
· torque.database.default.adapter=mysql
· torque.dsfactory.default.connection.driver = org.gjt.mm.mysql.Driver
· torque.dsfactory.default.connection.url = jdbc:mysql://localhost:3306/jetspeed
· torque.dsfactory.default.connection.user = root
· torque.dsfactory.default.connection.password =
======Oracle:資料庫配置如下======
· torque.database.default.adapter=oracle
· torque.dsfactory.default.connection.driver = oracle.jdbc.driver.OracleDriver
· torque.dsfactory.default.connection.url = jdbc:oracle:thin:@:1521:
· torque.dsfactory.default.connection.user =
· torque.dsfactory.default.connection.password =
4 Jetspeed的主要組成部分
4.1 註冊機制
Jetspeed的註冊登記部分存儲了Jetspeed引擎中大多數的動態配置信息,其中包括所有可提供的Portlet的登記信息、布局信息登記、用戶自定義信息等。
Jetspeed的註冊機制採用可插入的Turbine服務體系。因此可以根據自己的需要採用不同的實現。現有兩個已提供的默認實現:基於XML檔案的實現;基於OJB 的SQL資料庫的實現。
4.2 安全機制
Jetspeed安全服務基於以下一些組件接口:PortalAuthentication,PortalAccessController,UserManagement,RoleManagement,GroupManagement,PermissionManagement,CredentialsManagement。這些組件接口都是可插入的。Jetspeed提供了這些接口的一個或多個默認實現,大多數這些實現都是基於資料庫的安全機制。安全服務和Portal Server中的一些標準的基礎安全對象接口一起工作。這些安全對象包括:JetspeedUser、Role、Group、Permission。
4.3 內容整合
能夠支持內容整合是Portal和普通WEB網站、普通WEB套用之間相比最大的優勢。Jetspeed中的內容整合是通過OCS(Open Content Syndication)來支持的。Jetspeed同樣也支持RSS(Rich Site Summary)。
OCS和RSS都是基於XML的應用程式,用來支持頁面的部分共享、頻道列表、公共標題欄等實現。
4.4 WAP
Jetspeed支持WAP(Wireless Application Protocol)。這項技術使得用戶可以通過移動終端來訪問Portal頁面,可以進行多應用程式的簡單集成和頁面組織。Portlet可以將頁面的形式以WML來表示。Jetspeed目前支持WML 1.1和1.2標準。
4.5 個性化定製
支持個性化定製是Portal的另一大優點。Jetspeed可以讓用戶很容易的進行個性化定製。用戶可以很方便創建頁面,為每一個頁面選擇具體的Portlet內容、頁面布局、顯示風格。
用戶個性化必須在系統許可權允許的範圍內進行。
4.6 緩衝機制
為了讓Jetspeed更好的支持遠程內容的顯示和內容的發布,必須採用緩衝機制。
4.7 PSML
PSML(Portal Structure Markup Language)使得在Jetspeed內允許內容組織和提取。PSML由兩部分有關聯的標記部分組成。
registry markup:描述Jetspeed引擎內可提供的資源;
site markup:描述在用戶的頁面中顯示了哪些Portlet,是怎么組織的,需要那些顯示屬性。