|
|
Overview of Personalization Development
The following topics are included:
Personalization Server Runtime Architecture
Foundation Classes and Utilities
Foundation Classes and Utilities
Integration of External Components
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.
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.
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.
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 |
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.
|
Copyright © 2000 BEA Systems, Inc. All rights reserved.
|