BEA Logo BEA WLCS Release Release Number

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy

 

   WLCS Doc Home   |   Personalization Server Developer's Guide   |   Previous Topic   |   Next Topic   |   Contents   |   Index

Overview of Personalization Development

 

The following topics are included:

Personalization Server Runtime Architecture

Personalization Advisor

Portal Management

Foundation Classes and Utilities

User Management

Content Management

Rules Management

Foundation Classes and Utilities

JSP Tags

Integration of External Components

Support for Native Types

WebLogic Personalization Server provides developers with the ability to create personalized applications for eCommerce web sites. This developer's guide provides information about the Personalization Advisor, Foundation Classes and Utilities, and JSP Tags.

 


Personalization Server Runtime Architecture

The WebLogic Personalization Server (WLPS) runtime architecture is designed to support a variety of personalized applications. These applications can be built on the portal/portlet infrastructure, on the tags and EJBs supplied by the personalization advisor, and on select tags and EJBs supplied by other personalization server components.

The following high level architecture picture may be used to visualize the relationships between the components.

The personalized application is one built by the developer to use the personalization components. It may consist of a portal instance with JSP portlets, a set of traditional JSP pages or servlets, and/or code that accesses EJB objects directly.

Personalization Advisor

The personalization advisor component is the primary interface to the most common operations that personalized applications will use. It provides access through tags or a single EJB session bean. Specific functionality provided by the personalization advisor includes classifying users, selecting content based on user properties, and querying content management directly. The personalization advisor uses the foundation, user management, rules service, and content management components.

Portal Management

The portal management component provides tags and EJB objects to support creating a framework of portals and portlets. It is configured using the portal administration tools and has embedded JSP fragments built by the developer.

Foundation Classes and Utilities

The foundation component provides a set objects and utilities to support personalization activities. This component provides EJB objects to support HTTP handling, including object definition for request and session objects, as well as object-based utilities specifically designed to support portals.

User Management

The user management component supports the runtime access of users, groups, and the relationships between them. The notion of property sets is embedded within the user and group property access scheme. This component is set up using the user management administration tools and supports access via JSP tags or direct access to EJB objects. A Unified User Profile may be built by the developer, extending the User EJB object, to provide custom data source access to user property values.

Content Management

The content management component provides the runtime API by which content is queried and retrieved. The functionality of this component is accessible via tags. The content retrieval functionality is provided using either the provided reference implementation or Documentum content retrieval products.

Rules Management

The rules component is the runtime service that runs the rulesheets that are built in the rules management administration tool. This component is accessible only via the functionality of the personalization advisor tags. This component uses the JRules runtime library to make decisions.

 


Foundation Classes and Utilities

The Foundation is a set of miscellaneous utilities to aid JSP and Java developers in the development of personalized applications using the WebLogic Personalization Server. Its utilities include JSP files and Java classes that can be used by JSP developers to gain access to functions provided by the server and helpers for gaining access to Personalization Advisor services.

 


JSP Tags

The JSP tags included with WebLogic Personalization Server 2.0 allow developers to create personalized applications without having to program using Java.

Table 1-1 Java Server Page (JSP) Tags Overview

Library

Tag

Description

Personalization Advisor

<pz:div>

Turns a user-provided piece of content on or off based on the results of a classifier rule.


<pz:contentquery>

Provides content based on search expression query syntax.


<pz:contentselector>

Provides content based on results of a contentselector rule and subsequent content query.

Content Management

<cm:select>

Selects content based on a search expression query syntax.


<cm:selectbyid>

Retrieves content using the content's unique identifier.


<cm:printproperty>

Inlines the value of the specified content metadata property as a string.


<cm:printdoc>

Inlines the raw bytes of a document object in to the JSP out put stream.

Portal Management

<pt:portalmanager>

Provides the ability to do create, get, getColumnInfo, update, and remove actions on a Portal object.


<pt:portletmanager>

Provides the ability to do create, get, getArranged, update, and remove actions on a Portlet object.


<pt:eval>

Evaluates a conditional attribute of a portlet. An example of a conditional attribute is isMinimizeable.


<pt:get>

Retrieves a String attribute of a portlet.


<pt:monitorsession>

Disallows access to a page if the session is not valid or if the user has not logged in.

User Management

<um:login>

Authenticates a user/password combination.


<um:getprofile>

Retrieves the Unified User Profile object.


<um:getproperty>

Gets the value for the specified property from the current user profile in the session.


<um:setproperty>

Sets a new value for the specified property for the current user profile in the session.


<um:removeproperty>

Removes the property from the current user profile in the session.


<um:createuser>

Creates a new persisted User object with the specified user name and password.

Personalization Utilities

<es:condition>

Evaluates a Boolean expression and executes the body if true.


<es:counter>

Creates a for loop construct.


<es:foreachinarray>

Iterates over an array.


<es:isnull>

Checks to see if a value is null. If the value type is a String, also checks to see if the String is empty.


<es:notnull>

Checks to see if a value is not null. If the value type is a String, also checks to see if the String is not empty.


<es:preparedstatement>

Creates a JDBC prepared statement.


<es:simplereport>

Creates a two-dimensional array out of a simple query.


<es:transposearray>

Transposes a standard [row][column] array to a [column][row] array.


<es:uricontent>

Pulls content from a URL.


<es:date>

Gets a date and time formatted string based on the user's time zone preference.


<es:usertransaction>

Wraps database code within a single transaction.

WebLogic Utilities

<wl:process>

Provides a parameter-based flow control construct.

 


Integration of External Components

A range of external components either come already integrated into the Personalization Server, or can be integrated easily by a developer as extensions to the core components. A specific set of components that are known to be widely useful are described in the following table. Other custom component integrations are possible given the JSP and EJB basis for the Personalization Server, but the entire range of possibilities is not addressed here.

Table 1-2 Useful External Components for Personalization Server

External Component

Out-of-the-box Support

Methods and Notes

DBMS

Integrated and tested with Cloudscape, Oracle 8.0.5, and 8.1.5.

Standard WebLogic Server JDBC connection pools used.

LDAP authentication

Can be set up automatically using administration tools and property files.

Uses WebLogic Server security realms.

LDAP retrieval of user and group info

Can be set up automatically using administration tools.

Built into EJB persistence for User entity bean.

Legacy database of users

None.

Requires Unified User Profile extension of User entity bean.

Content management engine

Reference implementation provided.

API/SPI support from Documentum provided.

Legacy content database

None.

Requires either extension of Document entity bean or custom implementation of content management SPI.

Rules engine

JRules engine provided.

API/SPI, with only JRules supported at this time as a valid service.

 


Support for Native Types

WLPS supports the native types shown in the following table.

Table 1-3 Native Types

Supported Type

Java Class

Notes

Boolean

java.lang.Boolean

Comparators: ==, !=

Integer

java.lang.Number

Comparators: ==, !=, <, >, <=, >=

Float

java.lang.Double

Comparators: ==, !=, <, >, <=, >=

Text

java.lang.String

Comparators: ==, !=, <, >, <=, >=, like

Datetime

java.sql.Timestamp

Comparators: ==, !=, <, >, <=, >=

UserDefined

Defined by developer

Comparators: N/A
User-defined properties may be programmatically set and gotten, but are not supported in the tools, rules, or content query expressions.

Any property can be a multi-value of a specific single native type as well. This is implemented as a java.util.Collection. Comparators for multi-values are contains and containsall, although the rules development tool will only allow the use of contains. The values possible as part of a multi-value may be restricted to a valid set, using the Property Set management tools.