輕鬆應用WebSphere Portal 中的個性化支援

CloudSpace發表於2009-04-15

引言

關於 WebSphere Portal 個性化的更多資訊,請訪問以下資源:

門戶(Portal)為使用者提供了一種通過 Web 訪問各種後臺應用和資訊系統的統一介面。然而Portal 將資訊和服務整合的同時,也帶來了使用者的多樣性。如何滿足特定使用者或者使用者群體的特定需求,為其提供可定製的個性化內容成為了一個必須解決的問題。

通常,要解決網站個性化問題需要涉及到以下資源和技術:

  • 使用者:入口網站的所有可訪問使用者的相關資訊及屬性。
  • 內容:網站能夠展現給使用者的內容及服務,也包括展現內容或者提供服務的方式。
  • 匹配技術:將使用者關聯到恰當的內容的技術,可能包括過濾、規則引擎、推薦引擎等。

IBM WebSphere Portal(以下稱 WebSphere Portal)應用不同的匹配技術處理了使用者和內容兩種資源,為您提供了多種層次的個性化支援:

  • 根據使用者概要的定製:WebSphere Portal 可以根據事先定義好的使用者或使用者組的概要向使用者展現其需要的內容。例如,當一個新使用者註冊後,WebSphere Portal 可以根據在使用者概要中定義的語言偏好為其顯示特定語言的內容。另外,您還可以把某個頁面的佈局情況或者對頁面上某些資源的訪問控制資訊記錄在使用者概要中,WebSphere Portal 將根據使用者概要顯示頁面上的資源。
  • 基於規則的個性化引擎:使用者可以定義一系列業務規則用於決定哪些內容可以被哪些使用者訪問到。使用者可以通過WebSphere Portal 提供的規則編輯 Portlet 來撰寫業務規則並通過WebSphere Portal 提供的規則引擎來完成這些業務規則的執行。這種方式可以非常靈活地把使用者資源和內容資源聯絡起來。本文通過 WebSphere Portal 提供的規則引擎,可以輕鬆的實現諸如“在每年7月的時候為結婚1-2年的使用者提供育嬰產品的目錄服務”之類的業務規則。
  • 基於協作篩選的個性化推薦:一般這個層次的個性化支援需要大量的統計資料作為基礎。例如,有若干位經常訪問體育新聞頁面的使用者都購買了某種體育產品,則 WebSphere Portal 可能為其他也經常訪問體育新聞頁面的使用者推薦這款產品。WebSphere Portal 對這方面的支援是通過 Feedback 機制和 Likeminds 引擎實現的。

本文將重點介紹前兩種方式的個性化支援,關於“基於協作篩選的個性化推薦”相關內容,請您參考附錄中關於 FeedbackLikeminds 的資源。通過本文,您可以瞭解如何使用 WebSphere Portal 提供的機制進行基於使用者概要的個性化定製,以及如何使用規則引擎實現更加靈活的基於規則的個性化支援。

Portal 中的個性化定製

WebSphere Portal 提供了多種個性化定製機制,使用者可以通過這些個性化定製方式訪問到基於使用者實際需求而重新組合的 Portal 的資源集合。本部分內容以 Portal 外觀的個性化定製、訪問控制和可視性規則、簡單類別匹配為例,介紹幾種使用者常用到的個性化定製方法。

Portal 外觀的個性化定製

WebSphere Portal 為使用者提供了多種編輯 Portal 外觀的個性化定製方式。

下面是一個通過編輯使用者概要檔案的首選語言對 Portal 進行外觀個性化定製的示例。

在 Portal 中新註冊兩個使用者,其中,user_zh 的使用者概要檔案中將中文設定為首選語言,user_jp 的使用者概要檔案中將日文設定為首選語言,通過這樣的個性化定製方式,以使用者 user_zh 和 user_jp 登入後的 Portal 外觀對比如圖 1 所示。


圖1 不同首選語言定義下的 Portal 外觀對比

除了通過設定使用者概要檔案中首選語言或其他屬性來個性化定製 Portal 外觀的方式外,WebSphere Portal 使用者還可以把某個頁面的 portlet 佈局情況或者頁面上某些資源的訪問控制資訊記錄在使用者概要中,Portal 將根據使用者概要顯示頁面上的資源。

訪問控制和可視性規則

WebSphere Portal 提供對頁面、Portlets 、文件等資源的訪問控制,使得每個成員登入後只能訪問被授權資源。這種個性化定製方式是通過 WebSphere Portal 提供的訪問控制和可視性規則實現的。

訪問控制決定了允許使用者訪問頁面或 Portlet 時擁有的許可權。為了檢視頁面和 Portlet,必須使使用者具有對該資源的足夠訪問許可權。您可以參考資源中關於訪問控制的資源。可視性規則可以定義 Portlet 在某種條件下對特定 Portal 使用者可見或隱藏。

下面是一個在 Portal 的管理頁面通過個性化採集器建立可視性規則的應用例項。在該例項中,有標題為“招聘人員資訊”的頁面,該頁面由“人員查詢程式”和“頻繁訪問的使用者數”兩個 Portlet 組成,通過對 Portlet “頻繁訪問的使用者數”進行可視性規則對映使其對特定使用者可見或隱藏。

1.登入 WebSphere Portal ,進入“管理”->“管理頁面”,對頁面“招聘人員資訊”進行頁面佈局編輯。

2.在彈出的“編輯佈局”頁面中,點“顯示 portlet 規則對映”,顯示所編輯頁面的 portlet規則對映情況。

3.為 Portlet “頻繁訪問的使用者數”新建對映規則。如圖2所示。


圖2 為指定 Portlet 新建對映規則

4.在彈出的“個性化採集器“介面上定義可視性規則“user1 可見“,如圖 3,此可視性規則的邏輯判斷語義是當前使用者是 user1 時顯示頁面或 portlet,對其他使用者,頁面或portlet 隱藏,儲存建立的可視性規則。


圖3 建立可視性規則

通過以上4個步驟,設定了 portlet“頻繁訪問的使用者數“的對映規則為可視性規則“user1可見”。

在完成這些設定後,由“人員查詢程式”和“頻繁訪問的使用者數”這兩個 Portlet 組成的頁面“招聘人員資訊”展現給使用者 user1 和使用者 user2 的頁面內容是不同的。在可視性規則“user1 可見”的作用下,使用者 user1 可以訪問到“招聘人員資訊”頁面上的 portlet“頻繁訪問的使用者數”,而該 portlet 對 user2 則是隱藏不可見的。如圖4所示。


圖4 可視性規則作用下的頁面訪問情況對比

需要注意的是,訪問控制的優先順序高於可視性規則。在應用可視性規則之前,您必須擁有訪問該頁面或 portlet 的許可權。訪問控制還決定了是否在搜尋中返回頁面或 portlet。如果使用者沒有對 portlet 或頁面的訪問權,那麼在搜尋結果中將看不到這些 portlet 或頁面;如果使用者可以訪問 portlet 或頁面,但是將可視性規則設定為隱藏頁面或 portlet ,那麼仍將在搜尋結果中會顯示它。

簡單類別匹配

WebSphere Portal 的 Web Content Management (以下稱 WCM )元件提供了類別匹配的個性化定製方法。WCM 支援將 Web 內容( Web Content )劃分為很多類別( Category ),並將這些類別的內容通過編輯使用者概要檔案分配給特定使用者。通過這種方式,您可以自定義登入後所要瀏覽的內容。

1.登入 WebSphere Portal,進入 WCM。

2.在 WCM 裡,選擇”新建”->”類別”。新建兩個標題分別為”體育新聞”和”經濟新聞”的類別。

3.對每個類別編輯使用者概要檔案,對類別”經濟新聞”操作使用者概要檔案的示例如圖 5 所示。


圖5 對類別“經濟新聞”操作使用者概要檔案

4.在”使用者概要檔案選擇”介面中,點”選擇”為該類別指定訪問使用者。


圖6 選擇使用者概要檔案

5.在彈出的”人員查詢”介面上,搜尋並新增使用者 userB 。則使用者 userB 可訪問類別為”經濟新聞”的 Web 內容。

同理,對使用者 userA 進行概要分析,使使用者 userA 可以訪問類別為”體育新聞”的 web 內容。

通過以上操作,userA 可以檢視類別為“體育新聞”的內容,userB 可以檢視類別為“經濟新聞”的內容。如圖 7 所示。


圖7 類別匹配的個性化定製

WCM 提供的這種個性化定製方式將使用者概要檔案和內容類別進行匹配,個性化定義了使用者登入 Portal 後所瀏覽的內容。

個性化規則引擎

個性化規則引擎概要

WebSphere Portal 還提供了個性化規則引擎,它能夠根據訪問者的偏好以及上下文環境設定,為其選擇適用於該概要檔案的內容。使用者通過 WebSphere Portal 個性化提供的編輯介面撰寫業務規則,並應用在具體的頁面和 Portlet 中,為當前門戶訪問者提供基於上下文屬性的特定資源和內容。

WebSphere Portal 的個性化規則引擎主要包含如下項:

資源( Resource )

組織展現給門戶訪問者的內容。WebSphere Portal 個性化元件將 Web 站點的內容和資源結構化,組織成資源集合(Resource Collection),通過請求最終顯示在其所訪問的 Web 頁面上。一個資源集合定義一系列屬性,用以描述具有相似特點的一組資源。Web 站點中的新聞文章、產品、統計資訊和教材等,均能在 WebSphere Portal 個性化元件中各被定義為一個資源集合。

WebSphere Portal 個性化元件為 WCM 元件提供了預設的資源集合。Web Content 和 Web Component ,分別用來表示 WCM 中的 Web 內容和 Web 元件兩類資源。使用者也能根據具體的業務需要來定義自己的資源集合。

使用者可以在定義資源集合時指定該資源所擁有的屬性,稱為固有屬性。使用者也可以在執行階段擴充套件資源的屬性,稱為動態屬性。

規則( Rule )

個性化引擎通過執行具體的規則來完成內容的選擇。撰寫規則時需要定義具體的條件判斷語句,在規則執行時個性化引擎根據當前訪問者的屬性設定和上下文環境匹配條件判斷語句,並根據判斷結果決定執行那些工作。因此個性化元件能夠通過規則的執行實現對 Web 站點展現內容的個性化。

一條規則通常包含邏輯條件判斷語句和對應的執行動作定義。執行動作可以是根據邏輯判斷選擇具體的返回資源,也可以返回邏輯判斷對應的當前訪問者概要分析結果。圖 8 為一個典型的規則”選擇內容規則1”的內容定義。該規則包含三條直觀的邏輯判斷子句及子句間的邏輯關係,執行動作為返回所有滿足邏輯條件的 Web 內容。


圖 8. 典型的規則內容定義

WebSphere Portal 個性化提供瞭如下幾種規則型別:

  • 操作規則,該類規則將完成某些動作或返回某些資源,包括選擇內容操作規則,更新操作規則和電子郵件操作規則。
  • 概要分析規則,根據個人(通常是當前站點訪問者)的屬性來對使用者進行分類。
  • 繫結規則,使操作和概要分析程式結合在一起,以指定遇到已定義的條件時要執行的操作。
  • 推薦規則,基於 LikeMinds 引擎向站點訪問者推薦內容。
  • 可視性規則,決定使用者在站點中將看到的內容或應該向使用者顯示的內容。

WebSphere Portal 個性化支援對所有型別的規則進行方便的視覺化編輯。編輯介面能夠滿足使用者制定具有高複雜度邏輯條件判斷語句的規則。邏輯條件判斷語句中可以引用與使用者相關的上下文資訊,因此可通過規則的執行結果實現使用者訪問的個性化。

示例:建立一條規則:

1.登入 WebSphere Portal,進入個性化(Personalization)編輯頁面。

2.點選業務規則連結,點選”新建””規則”以開啟規則編輯介面。

3.在規則編輯介面,將規則命名為”選擇內容規則1”,制定和編輯邏輯條件判斷語句,完成後儲存。如圖 9所示。


圖9 定義“選擇內容規則1”的規則內容

4.在 Personalization 導航器中將看到儲存的規則,單擊規則名稱將在頁面下方的編輯器中顯示規則:”選擇內容規則1”的內容。

內容點(Content Spot)和競銷(Campaign)

使用者使用內容點來在 Web 頁面上呼叫規則,是規則在頁面上的代表或佔位符。當訪問者檢視頁面時,頁面上的內容點會被觸發,通過規則對映通知規則引擎執行哪個規則,從而將執行結果展現到客戶端。

圖 10 為一個內容點的示例,當訪問者訪問部署了內容點的頁面時,將根據內容點中指定的預設對映觸發規則“選擇內容規則1”。


圖 10. 內容點的示例

下面介紹一個 Personalization 術語—競銷,用來定義一個時間範圍,在該時間內為內容點提供更高優先度的規則對映。一條競銷包含一組規則到內容點的對映,優先順序別,以及開始時間和結束時間。在競銷週期內,頁面上的內容點將執行競銷中所對映的規則。使用者能夠在WebSphere Portal 個性化提供的編輯頁面中建立和編輯內容點和競銷。

圖 11 為競銷的示例,根據該競銷定義,在2008年7月3日到2009年7月3日之間(稱為競銷期),頁面上的內容點將執行競銷中所對映的規則。圖12定義了”新建內容點”在該競銷中將對映到規則”擇內容規則2”因此在競銷期內(每一條規則對映允許再次定義自己對映的生效期,但必須在所屬競銷的競銷期之內),當訪問者訪問部署有該內容點的頁面時,將不觸發執行上一節例子中的規則”擇內容規則1”而是觸發規則”擇內容規則2”更多有關內容點、競銷以及規則對映的執行機制,請參閱參考資料中所列的 WebSphere Portal 資訊中心


圖 11. 競銷的示例


圖 12. 競銷中規則對映的示例

規則釋出與內容展現

預覽執行結果

WebSphere Portal 個性化元件中提供了預覽功能。使用者可在規則的撰寫過程中進行預覽,使規則的執行結果滿足預期要求。

在規則和內容點的編輯介面上,點選預覽選項卡,即可測試規則和內容點的執行和返回結果。預覽結果如下圖,將返回符合邏輯判斷語句的 Web 內容。因內容點的執行處於圖12中規則對映所定義的競銷期內,執行”容點1”回的是”擇內容規則 2”結果。請參閱 WebSphere Portal 資訊中心,獲取關於 WCM 操作與設定的詳細文件。


圖 13. 預覽規則的執行結果

通過 WebSphere Portal 個性化元件提供的的個性化列表 portlet ,也能進行預覽。個性化列表 portlet 用於顯示來自規則、內容點或資源的個性化內容。在很多情況下,它使您無需自己對新的 portlet 和 JSP 進行編碼即可看到返回的具體資源內容。

如圖14,點選個性化列表 Portlet 右上角的”配置”,進入個性化列表 Portlet 配置介面。在”索了哪些 Personalization 資源”欄中,點選下三角符號並開啟”擇規則、內容點或資源集合”選擇需要預覽的具體個性化物件,如選擇”擇內容規則 1”。


圖 14. 配置個性化列表 Portlet

在”示選項”項卡中,配置需要顯示和預覽的具體屬性(圖 15)。儲存配置資訊後,就能在個性化列表 Portlet 中看到規則、內容點以及資源集合的預覽結果(圖 16)。


圖 15. 配置個性化列表 Portlet 的顯示屬性

選擇”上次修改日期”作為標題屬性,點選確定後,個性化列表 Portlet 將執行”選擇內容規則 1”,並在 Portlet 中顯示返回的內容的”上次修改日期”屬性:


圖 16. Portlet 的顯示結果

在 Web 站點中使用規則展現個性化內容

使用 WebSphere Portal 個性化元件提供的 API 可以將編輯完成的規則或內容點應用到具體的Portlet 和 JSP 頁面上。下面的清單 1 給出了一個在 JSP 頁面上應用內容點的示例。

清單 1. 在 JSP 頁面上應用內容點觸發個性化規則引擎的示例


本頁面將顯示上面建立的“內容點1”的執行結果。根據定義,內容點1將根據競銷的規則對映的設定,在 2008年7月3日到2009年1月3日之間對映到“選擇內容規則 2”。下面為返回的內容:
"); } } %>


將該 JSP 頁面作為 Portlet 的 View 模式介面,部署到 WebSphere Portal 上。該 Portlet 執行“內容點 1”,並通過方法 ((Resource)results[i]).getId() 顯示返回結果的 Id。您可以通過參考資料中提供的 WebSphere Portal 資訊中心 獲得更多的個性化 API 資訊。

擴充套件個性化規則引擎

WebSphere Portal 個性化元件為使用者提供了擴充套件規則引擎的介面。使用者可以通過實現介面來建立滿足業務需要的新資源集合( Resource Collection ),也可以通過新增應用程式物件( Application Object )來擴充套件規則中的可用屬性集合。

擴充套件資源集合( Resource Collection )

使用者可以通過實現個性化元件提供的 API 來定義自己的資源集合。資源集合的定義需要實現如下介面:

com.ibm.websphere.personalization.resources.Resource 介面提供從客戶資料儲存到個性化規則引擎資源集合的對映。通過實現 Resource 介面,能夠使特定的資源和內容為個性化規則引擎所用。

com.ibm.websphere.personalization.resources.ResourceDomain3 介面用以組織資源例項,通過 ResoureDomain3 實現讀取和查詢具體資源例項的方法。在選擇操作規則和推薦規則的執行過程中,規則引擎將呼叫 ResourceDomain3 提供的方法來查詢和定位資源集合。

com.ibm.websphere.personalization.resources.ResourceManager3 介面提供資源的管理方法,並負責個性化引擎中的資源與使用者資料儲存之間的同步。

擴充套件應用程式物件(Application Object)

WebSphere Portal 個性化中的規則呼叫應用程式物件以獲取上下文屬性,作為規則中邏輯判斷條件的引數來源。在規則編輯介面,使用者指定規則中使用的應用程式物件屬性。規則在執行時將通過上下文獲取應用程式物件具體的值,並完成邏輯條件判斷。

建立一個應用程式物件需要將應用程式物件的實現類上傳到 WebSphere Portal 的類路徑( ClassPath )中,並在個性化編輯介面中新建一個應用程式物件。


圖 17. 新建應用程式物件

圖 17是建立應用程式物件的介面,其中會話金鑰一欄是規則執行時該應用物件在請求( request )或會話( session )中的鍵值。類名是該應用程式物件的實現類。應用程式物件建立成功後,可在規則編輯器將其屬性應用於規則邏輯條件判斷語句中。

WebSphere Portal 個性化也提供若干安裝即用的應用程式物件,包括 Action Bean、Action Count、Browser Capability、Category Bean、Category Count、Date、Portlet Attributes、Request 和 Session 物件。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-589256/,如需轉載,請註明出處,否則將追究法律責任。

相關文章