Sei sulla pagina 1di 340

Introducing Tivoli Personalized Services Manager 1.

1
Supports pervasive devices Creates personalized service environments Provides self care

Stephen Hochstetler Edgar Gutierrez Patricia Iglesias

ibm.com/redbooks

SG24-6031-00

International Technical Support Organization Introducing Tivoli Personalized Services Manager 1.1

June 2001

Take Note! Before using this information and the product it supports, be sure to read the general information in Appendix A, Special notices on page 291.

First Edition (June 2001) This edition applies to V1R1 of Tivoli Personalized Services Manager, TPSM product number

5698-PSM for use with the AIX and Solaris operating systems.
Comments may be addressed to: IBM Corporation, International Technical Support Organization Dept. JN9B Building 003 Internal Zip 2834 11400 Burnet Road Austin, Texas 78758-3493 When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you.
Copyright International Business Machines Corporation 2001. All rights reserved. Note to U.S Government Users Documentation related to restricted rights Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp.

Contents
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ix Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv The team that wrote this redbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Comments welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi Chapter 1. Evolution of the Internet and ISP solutions . . . . . . . . . . . . . 1 Chapter 2. Overview of Tivoli Personalized Service Manager . . . . . . . . 5 2.1 What's new for this release of Tivoli Personalized Services Manager . . 6 2.1.1 Web Hosting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.2 Portal Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.3 Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.4 DB2 support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.5 Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.6 Device Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.7 Integration with WebSphere Everyplace suite . . . . . . . . . . . . . . . 10 2.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.1 Device Manager (only in TPSM) . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.2 Enrollment and service provisioning . . . . . . . . . . . . . . . . . . . . . . 11 2.2.3 Subscriber authentication and access control . . . . . . . . . . . . . . . 12 2.2.4 Customer care support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.5 Subscriber personalized service environment and self care . . . . 14 2.2.6 Integration with third party components and tools . . . . . . . . . . . . 16 2.2.7 Operation support for growing provider business . . . . . . . . . . . . 16 2.2.8 Emerging Internet business models-wholesale and virtual ISP . . 17 2.2.9 Adherence to industry standards . . . . . . . . . . . . . . . . . . . . . . . . 18 Chapter 3. Installation checklist . . . . . . . . . . . . . . . 3.1 Infrastructure used in this project . . . . . . . . . . . . . 3.2 Infrastructure installation . . . . . . . . . . . . . . . . . . . 3.2.1 AIX software . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Installing additional IBM AIX filesets . . . . . . . 3.2.3 JDK 1.2.2 installation and setup procedure. . 3.2.4 IBM HTTP Server V1.3.12 for AIX . . . . . . . . 3.3 Oracle JDBC driver 8.1.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . 21 . 21 . 22 . 22 . 22 . 25 . 29 . 30

Chapter 4. Building the environment . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1 File system configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.2 Oracle installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Copyright IBM Corp. 2001

iii

4.3 Installing Netscape Enterprise Server 3.63 . . . . . . . . . . . . . . . . . . . . . 38 4.3.1 Creating groups and users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.3.2 Installing Netscape Enterprise Server 3.6 . . . . . . . . . . . . . . . . . . 38 4.4 Creating Netscape server instances . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.4.1 Creating the Authentication Server . . . . . . . . . . . . . . . . . . . . . . . 42 4.4.2 Creating the Customer Care Server . . . . . . . . . . . . . . . . . . . . . . 43 4.4.3 Creating the Selfcare Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.4.4 Creating the System Management Tools Server . . . . . . . . . . . . . 45 4.4.5 Creating the Personalization Server . . . . . . . . . . . . . . . . . . . . . . 46 4.4.6 Creating the Premium Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.4.7 Creating the Enrollment Server. . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.4.8 Creating the SDP Servlet Server . . . . . . . . . . . . . . . . . . . . . . . . 50 4.4.9 Creating the Web Hosting Content Server . . . . . . . . . . . . . . . . . 51 4.5 Installation of IBM WebSphere Application Server . . . . . . . . . . . . . . . 52 4.6 Installing Tivoli Internet Services Manager software . . . . . . . . . . . . . . 57 4.6.1 Post-Installation tasks for TISM software. . . . . . . . . . . . . . . . . . . 66 4.7 Usage and verification test of installed TISM software . . . . . . . . . . . . 69 4.7.1 Director test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.7.2 Authentication test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.7.3 Premium test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.7.4 Customer Care test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.7.5 Enrollment test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.7.6 SelfCare test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.7.7 Personal test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.8 Startup order for starting up a system. . . . . . . . . . . . . . . . . . . . . . . . . 70 4.8.1 Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.8.2 Start Provisioning server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.8.3 Transaction Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.8.4 Start Netscape Servers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.8.5 Start WebSphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Chapter 5. Enrollment and service provisioning . . . 5.1 Registration configuration . . . . . . . . . . . . . . . . . . . . 5.1.1 Creation of a Realm . . . . . . . . . . . . . . . . . . . . 5.1.2 Creation of Registration Names . . . . . . . . . . . 5.1.3 Creation of Access Codes . . . . . . . . . . . . . . . 5.1.4 Creation of a deal . . . . . . . . . . . . . . . . . . . . . . 5.1.5 Creation of deal text . . . . . . . . . . . . . . . . . . . . 5.1.6 Creating a property. . . . . . . . . . . . . . . . . . . . . 5.1.7 Associating the deals with the Realm . . . . . . . 5.1.8 Associating the Access Codes with the deals . 5.1.9 Creating a Sales Channel . . . . . . . . . . . . . . . . 5.1.10 Creating a Method of Payment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 . 73 . 76 . 77 . 79 . 82 . 84 . 87 . 90 . 92 . 93 . 95

iv

Introducing Tivoli Personalized Services Manager 1.1

5.1.11 5.1.12 5.1.13 5.1.14

Creating a List of Method of Payment . Association of a MOP list and a deal . Managing the enrollment process . . . . Enrollment JSPs . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . 96 . . 98 . . 99 . 108 . 111 . 112 . 113 . 113 . 114 . 133 . 135 . 138 . 144

Chapter 6. Subscriber authentication and access 6.1 Authentication stages . . . . . . . . . . . . . . . . . . . . . 6.2 Authentication modes . . . . . . . . . . . . . . . . . . . . . 6.3 Internet world . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1 Structure of Authentication Server . . . . . . . 6.4 Wireless World . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.1 Structure of Authentication Server . . . . . . . 6.4.2 Business case 1 . . . . . . . . . . . . . . . . . . . . . 6.4.3 Business case 2 . . . . . . . . . . . . . . . . . . . . .

control. ....... ....... ....... ....... ....... ....... ....... .......

Chapter 7. Using Customer Care and Director Tool . . . . . . . . . . . . . . 149 7.1 Assigning login IDs and access control profiles to CSRs . . . . . . . . . 150 7.2 Logging on to Customer Care. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 7.3 Log on steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.4 Managing consumer accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.4.1 Enroll a new consumer subscriber . . . . . . . . . . . . . . . . . . . . . . 156 7.4.2 View and update a subscriber account . . . . . . . . . . . . . . . . . . . 157 7.4.3 Changing a subscriber's deal . . . . . . . . . . . . . . . . . . . . . . . . . . 159 7.4.4 Change subscriber's method of payment . . . . . . . . . . . . . . . . . 159 7.4.5 Disconnect a subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 7.4.6 Reconnect a subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 7.4.7 Create a consumer child subscriber . . . . . . . . . . . . . . . . . . . . . 162 7.4.8 Disconnect a child subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . 163 7.5 Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 7.6 Additional services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 7.7 Using the Search Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 7.7.1 Search criteria for individual subscribers . . . . . . . . . . . . . . . . . 165 7.7.2 Exact match feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Chapter 8. Subscriber Selfcare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 8.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 8.2 Customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 8.3 Running Subscriber Selfcare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 8.3.1 Changing a subscribers password . . . . . . . . . . . . . . . . . . . . . . 172 8.3.2 Changing personal information . . . . . . . . . . . . . . . . . . . . . . . . . 174 8.3.3 Change payment information . . . . . . . . . . . . . . . . . . . . . . . . . . 176 8.3.4 Adding new members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

Chapter 9. Subscriber Personalized Service Environment . . . . . . . . 181 9.1 Portal Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 9.2 Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 9.2.1 Multi-device Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 9.2.2 User Preferences API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 9.2.3 Hierarchical repository of referenced links . . . . . . . . . . . . . . . . 182 9.2.4 Double click AdServer interface . . . . . . . . . . . . . . . . . . . . . . . . 182 9.2.5 JSP Portlet framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 9.2.6 WAP portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 9.2.7 WES Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9.2.8 Portal page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9.3 Portal software architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 9.3.1 Authentication API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 9.3.2 User preferences API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 9.4 JSP portlets framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 9.4.1 JSP portlet architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 9.4.2 Portlet design pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 9.4.3 Portlet addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 9.4.4 Portlet API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 9.5 TPSM portlet library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 9.5.1 Structural portlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 9.6 Service portlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 9.6.1 Customizor Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 9.6.2 LinkSelector Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 9.6.3 Calendar Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.6.4 Agenda Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 9.6.5 AddressBook Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 9.7 Filter API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 9.8 Profiler API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 9.9 Example of personalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.9.1 Internet world . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.9.2 Wireless World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 Chapter 10. Virtual ISP . . . . . . . . . . . . . . 10.1 Overview . . . . . . . . . . . . . . . . . . . . . 10.2 REALMs . . . . . . . . . . . . . . . . . . . . . . 10.2.1 User groups Within Realms . . . 10.3 Enrollment and service provisioning . 10.4 Configuring a Virtual ISP . . . . . . . . . 10.5 Enrolling into the Virtual ISP . . . . . . . . . . . . . . .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. . . . . . . . . . . . . . . . 263 . 263 . 264 . 265 . 265 . 266 . 267

Chapter 11. Integration Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 11.1 Architectural overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

vi

Introducing Tivoli Personalized Services Manager 1.1

11.2 iTk usage scenarios . . . . . 11.3 iTk classes . . . . . . . . . . . . 11.3.1 Core classes. . . . . . . 11.3.2 iTk Business Objects

. . . .

. . . .

. . . .

. . . .

.. .. .. ..

. . . .

. . . .

. . . .

.. .. .. ..

. . . .

. . . .

. . . .

. . . .

.. .. .. ..

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. 271 . 272 . 272 . 275

Chapter 12. Device Manager . . . . . . . . . . . . . . . . . . 12.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2 Device Manager on TPSM . . . . . . . . . . . . . . . . . 12.3 Device Manager Components . . . . . . . . . . . . . . 12.3.1 Device Manager server. . . . . . . . . . . . . . . . 12.3.2 Device plug-ins . . . . . . . . . . . . . . . . . . . . . . 12.3.3 Device management server API . . . . . . . . . 12.3.4 Device Manager database . . . . . . . . . . . . . 12.3.5 Device management API . . . . . . . . . . . . . . 12.3.6 Device Manager console . . . . . . . . . . . . . . 12.4 Device Manager functions . . . . . . . . . . . . . . . . . 12.5 Supported devices . . . . . . . . . . . . . . . . . . . . . . . 12.5.1 Palm Computing PDAs . . . . . . . . . . . . . . . . 12.5.2 Compaq Aero 8000 H/PC Pro devices . . . . 12.5.3 NetVista Internet Appliance devices . . . . . . 12.5.4 Generic Windows CE devices . . . . . . . . . . . 12.6 Features of Device Manager . . . . . . . . . . . . . . . 12.6.1 Extensibility for managing various devices . 12.6.2 Centralized management . . . . . . . . . . . . . . 12.6.3 Provisioning to other system . . . . . . . . . . . . 12.6.4 Scalability and availability . . . . . . . . . . . . . .

. . 277 . . 277 . . 278 . . 278 . . 279 . . 280 . . 281 . . 281 . . 282 . . 283 . . 284 . . 285 . . 286 . . 286 . . 287 . . 288 . . 289 . . 289 . . 290 . . 290 . . 290

Appendix A. Special notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Appendix B. Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 B.1 IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 B.2 IBM Redbooks collections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 B.3 Other resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 IBM Redbooks fax order form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 IBM Redbooks review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

vii

viii

Introducing Tivoli Personalized Services Manager 1.1

Figures
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. Tivoli Internet Services Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Device Manager Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Enrollment and service provisioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Subscriber authentication and access control . . . . . . . . . . . . . . . . . . . . . . 13 Customer care support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Subscriber personalization and self care . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Operation support for growing provider business . . . . . . . . . . . . . . . . . . . 17 Supporting emerging Internet business models. . . . . . . . . . . . . . . . . . . . . 18 Netscape Server Administration console . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Form for Authentication Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Form for Customer Care Serer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Form for Selfcare Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Form for System Management Tools Server . . . . . . . . . . . . . . . . . . . . . . . 45 Form for Personalization Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Form for Premium Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Form for Enrollment Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Form of CGI for Enrollment Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Form for SDP Servlet Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Form for the Web Hosting Content Server. . . . . . . . . . . . . . . . . . . . . . . . . 51 WebSphere Application Server Installation on AIX - welcome page . . . . . 53 WebSphere Application Server Installation on AIX - type of installation . . 53 WebSphere Installation on AIX - selecting components to install . . . . . . . 54 WebSphere Installation on AIX - selecting plug-ins to install. . . . . . . . . . . 55 WebSphere Installation on AIX - web server configuration file . . . . . . . . . 55 WebSphere Installation on AIX - indicating database repository . . . . . . . . 56 WebSphere Installation on AIX - security information . . . . . . . . . . . . . . . . 56 WebSphere Installation on AIX - specifying WebSphere home directory . 57 TISM/TPSM installationwelcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Choosing the database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Local Information for the install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Oracle configuration information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 TISM install components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 TISM prerequisite checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Prerequisites installation directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Installation verification dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Installation is finished . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 WebSphere administration console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Starting up an Application Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Administration Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 The TISM Administration Console dialog box . . . . . . . . . . . . . . . . . . . . . . 74

Copyright IBM Corp. 2001

ix

41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83.

Director Tool Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Structure of the enrollment objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Press the right mouse button and select Add . . . . . . . . . . . . . . . . . . . . . . 76 Dialog box for the creation of Realm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Registration Names dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Flow of a multi-access registration name. . . . . . . . . . . . . . . . . . . . . . . . . . 81 Access Code dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Deal examples offered to the user in the enrollment process . . . . . . . . . . 82 Dialog of the creation of a new deal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Deal text dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Dialog for properties of a deal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Table with the deals and deal text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Menu to create a property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Dialog to create the property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Creating a value for FAVBOOKS property. . . . . . . . . . . . . . . . . . . . . . . . . 90 Table of deals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Example of how to relate a deal with several Realms . . . . . . . . . . . . . . . . 92 Relation of access code and deals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 A new Sales Channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Table of existing Sales Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Example of selection of created Sales Channel in the new Access Code . 95 Payment Method dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Method of Payment list dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Relationship between method of payment list and table . . . . . . . . . . . . . . 97 Example of how to relate the MOP list to MOPs . . . . . . . . . . . . . . . . . . . . 98 Example of combo-box of MOP list for a deal . . . . . . . . . . . . . . . . . . . . . . 99 Enroll home page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Enroll with access code PUBLIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Agreement window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Personal detail of enroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Deal and Userid details for enroll details . . . . . . . . . . . . . . . . . . . . . . . . . 104 Password for enroll details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Details of chosen deal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Payment Method details for enroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Confirmation details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Congratulations screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Configuration enroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Choosing the cheapest deal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Structure of directories of enroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 How the authentication server works . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Authentication form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Active components of the Authentication Server for internet access. . . . 115 Cluster configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Introducing Tivoli Personalized Services Manager 1.1

84. Premium configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 85. Hierarchal device type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 86. WAP architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 87. Active components of the Authentication Server (mobile internet) . . . . . 136 88. Example of navigation for business case 1 . . . . . . . . . . . . . . . . . . . . . . . 144 89. The TISM Administration Console dialog box . . . . . . . . . . . . . . . . . . . . . 150 90. TISM Administration Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 91. Add a New Access Role (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 92. Add a New Access Role (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 93. TISM Administration Console (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 94. TISM Administration Console (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 95. Add a New Login Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 96. TISM Administration Console (3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 97. Customer care logging page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 98. TISM customer care. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 99. Search results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 100.Subscriber update panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 101.Changing method of payment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 102.Disconnecting a user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 103.User disconnected. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 104.Enrolling a customer child subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 105.TISM Reporting Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 106.Selfcare initial page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 107.Logging into Selfcare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 108.Changing a subscribers password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 109.Change Password confirmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 110.Password successfully changed message . . . . . . . . . . . . . . . . . . . . . . . 174 111.Change Personal Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 112.Changing Personal Information confirmation . . . . . . . . . . . . . . . . . . . . . 176 113.Changing Payment Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 114.Changing method of payment confirmation. . . . . . . . . . . . . . . . . . . . . . . 178 115.Adding a new member (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 116.Adding a new member (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 117.Portal software architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 118.JSP Portlet Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 119.Pattern model-view-controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 120.More detail about the architecture of JSP Portlets . . . . . . . . . . . . . . . . . 204 121.Example of welcome.jsp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 122./perso/home without an authentication . . . . . . . . . . . . . . . . . . . . . . . . . . 205 123./perso/home with authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 124./perso/home for WAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 125.Sending a command and parameters to a portlet in the HTTP request . 208 126.Use of LayoutSelectorComponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

xi

127.Example for HTML browsers of ComponentSelectorComponent . . . . . . 214 128.Example for WAP browsers of ComponentSelectorComponent . . . . . . . 214 129.Example of redirection to authentication server . . . . . . . . . . . . . . . . . . . 241 130.Customizor component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 131.Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 132.Abstracts news . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 133.Content news . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 134.The selection of themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 135.An applied theme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 136.Example of link selector step 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 137.Example of link selector step 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 138.Example of link selector step 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 139.Example of Calendar component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 140.Example of Agenda component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 141.Example of ComponentSelector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 142.ComponentSelectorComponent after adding an external application . . . 256 143.New application added by the user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 144.Internet business model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 145.Enrollment and Service Provisioning. . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 146.iTk architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 147.iTk usage scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 148.iTk core classes structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 149.Device Manager on TPSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

xii

Introducing Tivoli Personalized Services Manager 1.1

Tables
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. AIX requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Netscape Enterprise Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Values of Registration Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Required fields for the creation of a new deal . . . . . . . . . . . . . . . . . . . . . . 83 Fields to create deal text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Fields to create a property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Fields for a Sales Channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Description of the required fields for a method of payment . . . . . . . . . . . . 95 JSPs for enroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Property files for enroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Limitations of single-domain mode authentication . . . . . . . . . . . . . . . . . . 113 JSPs for SelfCare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 SelfCare.properties file variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 AccessBean implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 List of portlet commands for the LayoutSelectorComponent . . . . . . . . . . 212 Macros for ComponentSelectorComponent. . . . . . . . . . . . . . . . . . . . . . . 217 Commands for ComponentSelectorComponent . . . . . . . . . . . . . . . . . . . 217 Commands for Aggregator.class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Commands for Customizor Portlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Commands for LinkSelectorComponent.class . . . . . . . . . . . . . . . . . . . . . 226 Commands for Calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Commands for Agenda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Commands for AddressBook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 DM functions and device plugins matrix . . . . . . . . . . . . . . . . . . . . . . . . . 285

Copyright IBM Corp. 2001

xiii

xiv

Introducing Tivoli Personalized Services Manager 1.1

Preface
This redbook will help you install, tailor, and configure the new Tivoli Personalized Service Manager (TPSM) V1.1.1. This redbook is about building business solutions using the Tivoli Personalized Service Manager product to enable ISPs to manage different domains or realms and provide different services such as customer care, selfcare, premium, personalization server, and authentication, among others for any type of devices, Web browsers, or pervasive computing devices. It will help you to understand this product and focuses on implemented solutions for both environments; Web and mobile internet browsers. TPSM has been integrated in an AIX environment running as a database, Oracle 8.1.5. In this redbook, you will find information that will help you successfully implement solutions to manage the domains, access Web, and enterprise applications from desktop browsers and the new class of client devices such as WAP phones, Palm Pilots, and WorkPads to the personalized server. A basic knowledge of AIX, Oracle, HTTP, and WAP protocols as well as some understanding of Web and Java technologies (HTML, WML, servlets, and JSPs) and the terminology used in Web and enterprise applications is assumed.

The team that wrote this redbook


This redbook was produced by a team of specialists from around the world working at the International Technical Support Organization Austin Center. Stephen Hochstetler is a Project Leader at the International Technical Support Organization, Austin Center. He applies his 17 years of experience as an I/T Tivoli Specialist to his work at the ITSO where he writes extensively on all areas of Systems Management. Before joining the ITSO, Stephen worked in the Tivoli Services organization of Tivoli as a Network Management Specialist. He was involved in numerous projects designing and implementing large systems management solutions for major customers of Tivoli. For the last four years, he has concentrated on architectural work and the design of network management solutions for large customer environments and service providers. Patricia Iglesias is an IT Specialist with IBM in Spain. She has one year of experience in the e-business field. She has worked at IBM for one year. Her areas of expertise include TPSM, Java, object orientation, e-commerce, and

Copyright IBM Corp. 2001

xv

pervasive. For the last several months she has concentrated in pervasive device development, e-business, and simulation with multi-agents. Edgar Gutierrez is an RS/6000 support specialist for Grupo Vitro, an IBM customer in Monterrey, Mexico. He has 5 years of experience with RS/6000. His areas of expertise includes Oracle implementation and support as well as performance tuning. For the last year he has concentrated on the software platforms for e-business in his company. Thanks to the following people for their invaluable contributions to this project: Tivoli Systems Doug Geiger, Kent Hayes, Al Montibello, Theresa Morris, Dean Skidmore, IBM USA Ernest A. Keenan, Bill Tracey IBM France Jean-Michel Porce IBM Spain Rafael Sanchez Alfonso

Comments welcome
Your comments are important to us! We want our Redbooks to be as helpful as possible. Please send us your comments about this or other Redbooks in one of the following ways: Fax the evaluation form found in IBM Redbooks review on page 317 to the fax number shown on the form. Use the online evaluation form found at ibm.com/redbooks Send your comments in an Internet note to redbook@us.ibm.com

xvi

Introducing Tivoli Personalized Services Manager 1.1

Chapter 1. Evolution of the Internet and ISP solutions


This is an abbreviated history to demonstrate how quickly the Internet has expanded. With this expansion comes opportunities for your business. The goal of Tivoli Personalized Services Manager (TPSM) is to allow you to seize that opportunity by delivering premium services to your customers quickly. As you seize that opportunity, TPSM can grow with your success by easily scaling to handle millions of enrollments. An abbreviated Internet history: 1969 1972 ARPANET commissioned by DoD for research into networking. One of the original four nodes is an IBM 360. Ray Tomlinson of Bolt Beranek and Newman, Inc. (BBN) modifies the E-mail program for ARPANET, where it becomes a quick hit. The @ sign was chosen from the punctuation keys on Tomlinson's Model 33 Teletype for its at meaning. BBN opens Telenet, the first public packet data service (a commercial version of ARPANET). TCP split into TCP and IP. USENET established using UUCP between Duke and UNC by Tom Truscott, Jim Ellis, and Steve Bellovin. All original groups were under the net.* hierarchy. DCA and ARPA establish the Transmission Control Protocol (TCP) and Internet Protocol (IP) as the protocol suite, commonly known as TCP/IP, for ARPANET. EARN (European Academic and Research Network) established. Very similar to the way BITNET works with a gateway funded by IBM. Domain Name System (DNS) introduced. Number of hosts breaks 1,000. 100 years to the day of the last spike being driven on the cross-Canada railroad, the last Canadian university is connected to NetNorth in a one year effort to have coast-to-coast connectivity. National Science Foundation (NSF) signs a cooperative agreement to manage the NSFNET backbone with Merit Network, Inc. (IBM and MCI involvement was through an agreement with Merit). Merit, IBM, and MCI later founded ANS. Number of hosts breaks 10,000.

1974 1978 1979

1982

1983

1984 1985

1987

Copyright IBM Corp. 2001

1989 1990 1992 1993

Number of hosts breaks 100,000. The World comes on-line (world.std.com), becoming the first commercial provider of Internet dial-up access. Number of hosts breaks 1,000,000. The term surfing the Internet is coined by Jean Armour Polly. Mosaic takes the Internet by storm; WWW proliferates at a 341,634% annual growth rate of service traffic. Gopher's growth is 997%. WWW edges out telnet to become 2nd most popular service on the Net (behind ftp-data) based on percentage of packets and bytes traffic distribution on NSFNET. WWW surpasses ftp-data in March as the service with greatest traffic on NSFNet based on packet count, and in April based on byte count. Various ISPs suffer extended service outages, bringing into question whether they will be able to handle the growing number of users. AOL (19 hours), Netcom (13 hours), and AT&T WorldNet (28 hours - E-mail only).

1994

1995

1996

Starting in 1990, individual companies, such as The World, have been writing custom ISP programs to enroll customers, bill customers, provision services, deliver content, provide hot backup, rewrite code to increase scalability, and write new code for premium services. Many of those programs are still in use today, maintained by an army of programmers, each fighting the issues of scalability and content. There is a better way. In late 1997, the IBM Telecommunications and Media Industry Solutions Unit wanted to enter the Internet space. IBM named the new system ISMS (Internet Subscription Management System). In mid 1999 the process to move the ISMS team to Tivoli began. The name was changed to TSM (Tivoli Subscription Manager), and ultimately, to TISM (Tivoli Internet Services Manager) and TPSM (Tivoli Personalized Services Manager), where TPSM operates on the same code base as TISM with some additional modules to support pervasive device management. TISM is a completely integrated infrastructure of software components for Internet service provisioning. TISM is an industrial strength system designed to allow the Internet Service Provider (ISP) to support multiple separately branded offerings simultaneously, and provide each brand with a unique and completely stand-alone identity and full range of business offerings. To do

Introducing Tivoli Personalized Services Manager 1.1

this, TISM is designed for continuous operation, flexible enhancement, and is highly scalable. The system relies on industry standard hardware and software components with a flexible architecture for integrating varied components so that ISPs operating under the TISM umbrella can offer their subscribers an unlimited variety of Internet value-add features and benefits without having to alter the core base of information management and customer service platform that TISM maintains in a centralized database. TISM is designed to anticipate growth by allowing service providers to initially deploy a system size that comfortably accommodates their immediate operational needs and grow it exponentially to support a subscription install base of millions of users while providing uninterrupted services and maintaining database consistency. TPSM expands on TISM. It is a complete business infrastructure that empowers ISPs to offer new and different types of value-added and premium-content services. TPSM will carry ISP s into the next generation of IP communication services. TPSM extends the capability of present day Internet services to new mobile and handheld service offerings. TPSM is designed to scale and manage millions of subscribers and pervasive devices in a feature-rich environment. TPSM's new operational service paradigm goes beyond the simple connection of subscribers by single devices. TPSM associates and links subscribers with individual Personalized Service Environments and allows each subscriber to access their customized secure environment from a variety of pervasive devices anywhere and anytime. Tivoli and IBM will continue to push the envelope on developing scalable Internet solutions. In 1999 IBM became the first Corporate partner to be approved for Internet2 access.

Chapter 1. Evolution of the Internet and ISP solutions

Introducing Tivoli Personalized Services Manager 1.1

Chapter 2. Overview of Tivoli Personalized Service Manager


The Tivoli Internet Services Manager provides a completely integrated infrastructure of software components for Internet service provisioning. It is an industrial strength system designed to allow the Internet Service Provider (ISP) to support several separately branded offerings simultaneously and to provide each brand with a unique marketplace identity and with a full range of business offerings. The Tivoli Internet Services Manager is designed for continuous operation and flexible enhancement, and is highly scalable. The system relies on industry standard hardware and software components with a flexible architecture for integrating additional and varied components. ISPs using the Tivoli Internet Services Manager can offer their subscribers an unlimited variety of Internet features without having to alter a core base of information management and customer service features that the system centralized database. The system's design anticipates growth and allows the Tivoli Internet Services Manager owner to start with a size that comfortably accommodates the initial anticipated subscriber base while remaining poised to grow exponentially as needed (see Figure 1).

Figure 1. Tivoli Internet Services Manager

Copyright IBM Corp. 2001

2.1 What's new for this release of Tivoli Personalized Services Manager
Tivoli Internet Services Manager contains several new features to help enhance the functionality. These include a web content hosting system that allows user to create and maintain personal web pages, a portal toolkit to enhance personalization, a radius server to assist with authentication, localization, and a device manager system to help filter realms and deals. Each of these new enhancements are discussed in detail in the following paragraphs.

2.1.1 Web Hosting


The Web Content Hosting system allows users to manage their own published webspace. It is a separate process from other parts of the TISM infrastructure. The interface between the core TISM processes and Web Content Hosting is through the provisioning subsystem. Below is a list of each of the components associated with the web content hosting server and how they fit into the overall picture. Upload Facility Web Hosting contains an upload facility that allows users to use either an HTTP interface or FTP client for the purpose of managing their personal webspace. Users can use their own FTP client, while the ISP can customize the HTTP GUI to comply with their look and feel. The upload facility automatically publishes files via an HTTP Server. Provisioning Provisioning utilizes both FTP and HTTP support. There are two FTP systems; the Provisioning FTP Daemon (PFTPD) and the FTP server (NcFTPd). The PFTPD sends and receives user information from the Tivoli Internet Services Manager database. From this information gathering process, it creates the user structure and the NcFTPd user account. The NcFTPD is what allows user to upload and download from their device to the web content hosting server. CGI Script The following features are provided to ISP users through Perl scripts: Page access counter Guestbook Mail-to function Access counters statistics

Introducing Tivoli Personalized Services Manager 1.1

WebSpace Administration Servlet WebSpace management application provides the user with the following operations: Personal Web space display File upload and automatic publishing File download File delete

2.1.2 Portal Toolkit


The Portal Toolkit (pTk) enhances personalization by allowing the development of portal pages. Below is a listing of the new features for 1.1 Multi-device Portal Engine This provides the ability to build portals with unique URLs capable of generating pages for specific devices such as PCs with web browsers, mobile phones with WAP devices, or screenphones. User Preferences API Allows users to personalize portal home pages. For example, users can selecting from a list of news channels to appear within the news JSP. Referenced Links Management Administrators create a database repository of links that the portal can reference. Users can access these links to customize their portal pages. Vertical Services Integrated with pTk These services provide the users with functionality such as a calendar, agenda, and address book. ISPs can use these services to develop their own additional services. JSP Portlet Framework Allows you to construct portal pages by assembling portlets. Authentication Services User are authenticated at the beginning of each user session. A user does not have to be re-authenticated to access different services. This is all part of a Single Sign-On process, which allows premium content access control.

Chapter 2. Overview of Tivoli Personalized Service Manager

Targeted Ads: Interface with Double Click Ads Server Personalization allows users to customize their device's home page. Subscribers can proactively customize their portal page by configuring categories such as: Stock quotes (personal portfolio) Weather (local, national, or international) Entertainment (music, movies, theatre, etc.) Travel (destinations, prices, etc.) News (local, national, or international) The Tivoli Personalized Service Manager and virtual ISPs can personalize subscriber home pages over and above the choices made by subscribers by adding: Links to local content based on subscriber profile Targeted ads pulled from an external ad-queue management system

2.1.3 Radius
The following are enhancements and changes to the Radius server. DB2 support - DB2 is not supported in this release. NLS message support - RADIUS will now support translated messages written to an NLS log file in addition to the English-only message written to the standard log file. IP Allocation - Rather than using the IP address generated by the RADIUS client (NAS), the RADIUS server can be configured to generate an IP address from a pool of IP addresses set up through the Director Console.

2.1.4 DB2 support


TPSM now supports IBM DB2 as well as Oracle relational database management system.

2.1.5 Localization
Enhancements were made to the data model, toolkits, and applications to support localization. The purpose of localization is to have the ability to translate into many different languages. In this release, only Japanese translation is provided.

Introducing Tivoli Personalized Services Manager 1.1

2.1.6 Device Manager


The enhancements and changes for this release of Device Manager are as follows: Job distribution by realm, deal, or both A device's owner can be the member of a single realm and of one or more deals, as defined by the subscription manager component used with Device Manager. It is now possible to distribute jobs to devices in a realm, a deal, or both. In addition, an administrator can filter jobs by realm or deal. Support for DB2 Universal Database Version 7 and Oracle 8.1.5 Device Manager can now use DB2 Universal Database Version 7.1 as its relational database. In addition, Device Manager has added support for Oracle8i Version 8.1.5. Changes to plug-ins The following plug-ins have been added: The Internet appliance device (IAD) plug-in provides support for devices used for Internet access, e-mail, voice mail, Personal Information Management (PIM), and other pervasive computing tasks that use the PVC client stack as their base architecture. The Generic Windows CE device plug-in provides basic support for all devices that use the Windows CE operating system. In addition, support for the Iap500 plug-in has been dropped for this release of Device Manager. Enhancements to the Device Manager console The Device Manager console's filtering capability now allows for more granularity and more complex combinations of filtering criteria. New icons help an administrator to identify which criteria are being used, and which are not valid or not in effect. Other look and feel changes improve the usability of the console and its ability to display very large numbers of devices. Integration with WebSphere Everyplace Suite (WES) As part of Tivoli Personalized Services Manager Version 1.1, Device Manager supports the WES concept of an authentication proxy. The authentication proxy provides a single sign-on to the WES servers, including the Tivoli Personalized Services Manager server. Installers who choose to take advantage of this support need to take additional steps during the Device Manager configuration so the Device Manager can redirect devices through the authentication proxy during enrollment.

Chapter 2. Overview of Tivoli Personalized Service Manager

2.1.7 Integration with WebSphere Everyplace suite


TPSM can be used as a stand-alone system or as a component of the WebSphere Everyplace Suite (WES). Lightweight Directory Access Protocol (LDAP) Integration enhances integration to provide information to the IBM LDAP Server. Active Session Support provides complete tracking of subscribers user sessions across their device set. TPSM Portal Toolkit can provide portlets in the WES environment. It can also delegate authentication to the WES Authentication Proxy. The web authentication server interfaces with the WES authentication proxy and when used, users are authenticated and device type identification is achieved.

2.2 Features
This section highlights the features that make TISM and TPSM formidable Internet service provisioning systems. TISM and TPSM contain several new features to help enhance the functionality that are detailed in the following pages.

2.2.1 Device Manager (only in TPSM)


The Tivoli Personalized Services Manager provides a wide range of subscriber device management features, including: Enrolling subscribers and their devices Distributing software to the device Updating device configuration remotely Listing the devices owned by a user Updating restpages (startup pages) for screenphones The Device Manager feature provides a flexible framework and a set of services for managing a subscriber's devices. Device vendors can extend the system's framework and use it to enable their devices to be managed by the Tivoli Personalized Services Manager (Figure 2 on page 11). Support is provided for several distinct types of devises such as: Personal Digital Assistants (PDAs) Screenphones Wireless Access Protocol (WAP) devices

10

Introducing Tivoli Personalized Services Manager 1.1

Figure 2. Device Manager Services

2.2.2 Enrollment and service provisioning


Every ISP relies on a centrally managed enrollment engine while being allowed total autonomy in presentation and payment plan offers. A standard set of enrollment screens can be customized to deliver uniquely branded messages and graphics as well as ISP-specific billing plans and payment options. Behind the scenes, a consistent array of data elements are captured from each new subscriber, thereby distributing all of Tivoli Personalized Services Manager's additional features to every subscriber, regardless of their ISP (Figure 3 on page 12). With individual branding comes unique realm name distinction. Every ISP hosted on Tivoli Personalized Services Manager is granted a realm, which is a partition within the overall database that distinguishes them and their subscribers from all others in the system and the Internet at large. Realms help extend brand name identification. For example, realm 1 could be alpha.com and realm 2 could be beta.com. Every subscriber to the ISP named Alpha would receive a user name and e-mail address that is unique to the realm of alpha.com (John@alpha.com, Mary@alpha.com, etc.), while subscribers to Beta would receive addresses ending in beta.com.

Chapter 2. Overview of Tivoli Personalized Service Manager

11

Realm distinctions provide benefits to system management. Customer Care Reps can be granted complete read and write security provisions to specific realms, which keeps each realm's data separate and secure from any others.

Figure 3. Enrollment and service provisioning

2.2.3 Subscriber authentication and access control


Subscribers are granted single sign-on status throughout a session. Information pertinent to the continuation of the session is preserved via cookies, eliminating the need to re-enter ID information. For access to critically secure data, Tivoli's SecureWay Policy Director can be used in conjunction with the Tivoli Personalized Services Manager (Figure 4 on page 13).

12

Introducing Tivoli Personalized Services Manager 1.1

Figure 4. Subscriber authentication and access control

2.2.4 Customer care support


All data viewed by the customer service representatives (CSRs) is completely up-to-date and any changes made are immediately accessible to the billing system and any other integrated systems (Figure 5 on page 14). Access control for Customer Service personnel can be restricted in several ways. For example, they can be limited to read or write capabilities, or be allowed to only access certain portions of the subscriber population. This degree of security control allows ISPs within TPSM to subcontract Customer Service help in off-site locations where Customer Service Reps can log into the Tivoli Personalized Services Manager Customer Care application remotely and work with secure, online subscriber data.

Chapter 2. Overview of Tivoli Personalized Service Manager

13

Figure 5. Customer care support

2.2.5 Subscriber personalized service environment and self care


Personalization allows users to customize their device's home page. Subscribers can proactively customize their portal page by configuring categories such as: Stock quotes (personal portfolio) Weather (local, national, or international) Entertainment (music, movies, theatre, etc.) Travel (destination, prices, etc.) News (local, national or international) The Portal Toolkit (pTk) was created to simplify the design and implementation of custom portal pages. This is achieved through a building block structure, or components. Structural components assist in creating the layout and content of a portal page, while service components include turn-key applications or services within portal pages (Figure 6 on page 15).

14

Introducing Tivoli Personalized Services Manager 1.1

Figure 6. Subscriber personalization and self care

The portal engine is delivered with built-in components, such as Personal Information Management (PIM), components such as calendar, agenda, and address book. These components allow the subscriber to customize the portal pages on their devices. Some additional key functions associated with pTk are: 1. Multi-device Portal Engine Web devices (e.g., PC, Win CE, screenphones), WAP devices 2. User Preferences API Users and user groups profiling 3. Referenced Links Management Hierarchical repository of links referenced by the portal 4. Vertical Services Integrated with pTk Web Content Hosting PIM: Calendar, Agenda, Address Book, etc. 5. JSP Components Framework Components framework drastically simplifies JavaServer Pages (JSP) writing Components library: PIM components, structural components

Chapter 2. Overview of Tivoli Personalized Service Manager

15

6. Authentication Services User authentication and device type identification Single sign-on, Premium content access control, WAP support 7. Targeted Ads: Interface with Double Click Ads Server This feature provides a marketing opportunity for ISPs. They can target their subscriber's portal pages for banner ads and special interest notices. Another aspect of personalization is self-care. Subscribers can access and modify some of their profile data. They can update their address and telephone data, change their billing plan and method of payment data, and subscribe to premium content through the Tivoli Personalized Services Manager's self-care application, which is linked to the central database from links on their portal page.

2.2.6 Integration with third party components and tools


Tivoli Personalized Services Manager also supports an LDAP interface for easy integration with LDAP oriented systems and servers such as mail and messaging systems.

2.2.7 Operation support for growing provider business


A centralized configuration tool, called the Director Tool, allows easy access to the central controls for system administration, enrollment customization, billing plan customization, and Customer Service Rep. security profiling (Figure 7 on page 17). Many of the configuration options can be used by non-technical managers and marketing personnel, making Tivoli Personalized Services Manager a more flexible Internet solution.

16

Introducing Tivoli Personalized Services Manager 1.1

Figure 7. Operation support for growing provider business

2.2.8 Emerging Internet business models-wholesale and virtual ISP


A variety of APIs allow Tivoli Personalized Services Manager to integrate nearly any Internet component that meets industry standards so it can provide diverse functionality and follow new trends in Internet interaction (Figure 8 on page 18). Tivoli Personalized Services Manager can host several stand-alone ISPs (virtual ISPs) with unique brand names and identities without any degradation to response time or to processing efficiency. Bulk transfers of subscriber bases can be accomplished programmatically, allowing ISPs to purchase existing subscriber populations and quickly add them to the ISP's business.

Chapter 2. Overview of Tivoli Personalized Service Manager

17

Figure 8. Supporting emerging Internet business models

2.2.9 Adherence to industry standards


The Tivoli Internet Services Manager uses industry standard languages and protocols to facilitate integration with third party components and tools: Industry standard relational databases (DB2, Oracle) Java based .application programming interfaces (APIs) TCP/IP-based communications between components and systems Web user interfaces based on industry standard implementations of Java, JavaScript, HTML and similar web content languages Benefits gained by using industry standards: ISPs are able to take advantage of their staff's existing technical skills Tivoli Internet Services Manager integrates well with other industry standard systems Industry standard components include: IBM DB2 or Oracle RDBMS Netscape Enterprise Server or IBM AIX httpd software for Web servers WebSphere Application Server IBM AIX operating system

18

Introducing Tivoli Personalized Services Manager 1.1

Sun Solaris support Industry standard protocols and languages include: Structured Query Language (SQL '92) standard interface for relational database access. The Tivoli Internet Services Manager RADIUS authentication server, which complies with Internet Engineering Task Force (IETF) specifications. Web user interfaces and publishing based on industry standard implementations of Java, JavaScript, HTML, and similar web content languages. Java based APIs (Tivoli Internet Services Manager Integration Toolkits iTk's) Java Standard Java Server Pages (JSP) interfaces and Servlets Use of industry-standard utilities such as Perl for CGI. TCP/IP-based communications between components and systems. Standard scripts to assist in installation, maintenance, and troubleshooting.

Chapter 2. Overview of Tivoli Personalized Service Manager

19

20

Introducing Tivoli Personalized Services Manager 1.1

Chapter 3. Installation checklist


This chapter is a guide to the installation of all the software infrastructure that we implemented for the successful operation of TPSM. The hardware and software requirements for Tivoli Internet & Personalized Services Manager on AIX are as follows (Table 1):
Table 1. AIX requirements

Operating System Web Server

IBM AIX Version 4.3.3 IBM HTTP Server 1.3.12 or Netscape Enterprise Server 3.6 JDK 1.2.2 with PTF 7. See IBM APAR IY12075 Oracle Database Enterprise Edition 8.1.5 IBM DB2 Version 7.1 WebSphere Application Server V3.5 Standard Edition using Instant DB Option.

JDK Supported Databases Application Server

RS/6000 or RS/6000 SP running AIX V4.3.3, with maintenance level 06 applied Support for an appropriate network interface Minimum 300 MB of free disk space on the /usr filesystem for installation CD-ROM drive Minimum 256MB of memory; 512 MB recommended

3.1 Infrastructure used in this project


The following is a list of hardware and software that was used for this project: RS/6000: RS/6000 F50 (7025-140) Four 332 MHz PowerPC_604e processors 1.5 GB RAM 4 * 8 GB SCSI HDD

Copyright IBM Corp. 2001

21

AIX Software: AIX 4.3.3.06 Tivoli Personalized Services Manager V1.1.1 WebSphere Application Server Standard V3.5 Netscape Enterprise Server 3.63 Oracle Enterprise Edition 8.1.5 Oracle JDBC driver 8.1.6 JDK 1.2.2 with APAR IY12075 IBM HTTP Server V1.3.12

3.2 Infrastructure installation


In this section we explain the installation procedures for all TPSM software pre-requisites.

3.2.1 AIX software


We made a new installation of the AIX 4.3.3 and applied the latest maintenance level, which in our case was ML 06.

3.2.2 Installing additional IBM AIX filesets


The following filesets were installed from the IBM AIX 4.3.3 CDs. The CD contains the minimum level of the filesets. Later in this chapter we show how to bring them all to the latest level. bos.adt (ALL) bos.compat.termcap - Termcap Compatibility Package (2) xlC.rte - C++ runtime library for IBM AIX (select ALL) X11.adt - Applications Development Toolkit (all) X11.base (x windows) (ALL) perl.rte 5.5.3 (all) X11.motif.mwsm.4.3.3.1 X11.motif.lib.4.3.3.2 X11.adt.motif.4.3.3.1 X11.compat.lib.X11R5.4.3.3.2 X11.base.rte.4.3.3.2

22

Introducing Tivoli Personalized Services Manager 1.1

X11.base.lib.4.3.3.2 X11.Dt.lib.4.3.3.2 X11.Dt.rte.4.3.3.3 bos.up.4.3.3.3 bos.sysmgt.serv_aid.4.3.3.2 bos.rte.libpthreads.4.3.3.2 bos.net.tcp.client.4.3.3.3 bos.mp.4.3.3.3 bos.adt.prof.4.3.3.3 bos.adt.include.4.3.3.1 To verify that we have installed the fileset, we used the lslpp command as shown below:

# lslpp -l bos.net.tcp.* Fileset Level State Description ---------------------------------------------------------------------------Path: /usr/lib/objrepos bos.net.tcp.adt 4.3.3.25 COMMITTED TCP/IP Application Toolkit bos.net.tcp.client 4.3.3.26 COMMITTED TCP/IP Client Support bos.net.tcp.server 4.3.3.25 COMMITTED TCP/IP Server bos.net.tcp.smit 4.3.3.25 COMMITTED TCP/IP SMIT Support Path: /etc/objrepos bos.net.tcp.client bos.net.tcp.server

4.3.3.26 COMMITTED TCP/IP Client Support 4.3.3.25 COMMITTED TCP/IP Server

We can see that the bos.net.tcp.client is at the 4.3.3.26 level and we required 4.3.3.3 as minimum, so with the 4.3.3.26 we do not have any problem. 1. Use the following steps to install the required filesets with smit: - smitty or smit - Select Software Installation and Maintenance. - Select Install and Update Software. - Select Install and Update from LATEST Available Software. - Enter INPUT device (press F4 to list devices). - Select the CD-ROM where the IBM AIX CD is located, then press Enter.

Chapter 3. Installation checklist

23

- Select SOFTWARE to install (press F4 to list available software from CD). - Using the find and select keys on all of the following file sets: bos.adt (select ALL) Base Operating System Application Developers Toolkit bos.compat.termcap - Termcap Compatibility Package (2) xlC.rte - C++ runtime library for IBM AIX (select ALL) X11.adt - Applications Development Toolkit (ALL) X11.base (x windows) (ALL) perl.rte 5.5.3 (ALL) X11.motif.mwsm.4.3.3.1 X11.motif.lib.4.3.3.2 X11.adt.motif.4.3.3.1 X11.compat.lib.X11R5.4.3.3.2 X11.base.rte.4.3.3.2 X11.base.lib.4.3.3.2 X11.Dt.lib.4.3.3.2 X11.Dt.rte.4.3.3.3 bos.up.4.3.3.3 bos.sysmgt.serv_aid.4.3.3.2 bos.rte.libpthreads.4.3.3.2 bos.net.tcp.client.4.3.3.3 bos.mp.4.3.3.3 bos.adt.prof.4.3.3.3 bos.adt.include.4.3.3.1 - When you have finished, press Enter to install the selected filesets. 2. To obtain maintenance level 06, please contact your local Software Service Center or use FixDist to get the latest maintenance level for the AIX. Once you obtained the ML, use the following steps to install the update with smit: smitty or smit Select Software Installation and Maintenance.

24

Introducing Tivoli Personalized Services Manager 1.1

Select Install and Update Software. Select Install and Update from LATEST Available Software. Enter INPUT device (press F4 to list devices). Select the directory where you downloaded the maintenance level Select all file sets from SOFTWARE maintenance level 6 When you have finished, press Enter to install.

3.2.3 JDK 1.2.2 installation and setup procedure


This section will show you how to install a Java Developer Toolkit (JDK) on an AIX machine. You can obtain the JDK by downloading from http://www.ibm.com/java/jdk/download/index.html. On the AIX platform, the JDK is available in tar format. You need to make sure to download the following files: Java_dev2.rte.tar Java_dev2.msg.tar Java_dev2.samples.tar Java_dev2.ext.tar Java_dev2.adt.tar You need to uncompress each of these files into a temporary directory before starting the installation. - Uncompress the downloaded tar file using:
tar -xvf <tar-filename>

- Change directory to the directory that contains uncompressed results. If the installation package table of contents (the .toc file) does not exist, create it with the following command while still in the install directory:
inutoc .

To perform the installation, you need to be a user that has root privileges. In an AIX terminal window, enter the following command:
smitty installp

This will bring up the AIX System Management Interface Tool window and put you at the Install and Update Software menu as shown in the next screen:

Chapter 3. Installation checklist

25

Install and Update Software Move cursor to desired item and press Enter. Install and Update from LATEST Available Software Update Installed Software to Latest Level (Update All) Install and Update Software by Package Name (includes devices and printers) Install Software Bundle (Easy Install) Update Software by Fix (APAR) Install and Update from ALL Available Software

F1=Help Esc+9=Shell

F2=Refresh Esc+0=Exit

F3=Cancel Enter=Do

Esc+8=Image

Choose Install and Update from LATEST Available Software to invoke the installation process. After that, enter the device or directory where the JDK installation package is located, as shown in the next screen:

Install and Update from LATEST Available Software Type or select a value for the entry field. Press Enter AFTER making all desired changes. [Entry Fields] * INPUT device / directory for software [] +

F1=Help Esc+5=Reset Esc+9=Shell

F2=Refresh Esc+6=Command Esc+0=Exit

F3=Cancel Esc+7=Edit Enter=Do

F4=List Esc+8=Image

smitty will then let you choose which software to install, as shown in the next

screen. Choose _all_latest and click Enter to start the installation.

26

Introducing Tivoli Personalized Services Manager 1.1

Install and Update from LATEST Available Software Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] /software/JDK [_all_latest] + no + yes + no + yes + yes + no + no + yes + no + yes +

* INPUT device / directory for software * SOFTWARE to install PREVIEW only? (install operation will NOT occur) COMMIT software updates? SAVE replaced files? AUTOMATICALLY install requisite software? EXTEND file systems if space needed? OVERWRITE same or newer versions? VERIFY install and check file sizes? Include corresponding LANGUAGE filesets? DETAILED output? Process multiple volumes?

F1=Help F5=Reset

F2=Refresh F6=Command

F3=Cancel F7=Edit

F4=List F8=Image

After it finishes, it will provide you with an installation summary at the bottom of the command status screen, as shown in the next screen. You should verify each components installation status.

COMMAND STATUS Command: OK stdout: yes stderr: no

Before command completion, additional instructions may appear below. [MORE...143] Installation Summary -------------------Name Level Part Event Result ----------------------------------------------------------------------Java_dev2.ext.plugin 1.2.2.0 USR APPLY SUCCESS Java_dev2.ext.jaas 1.2.2.0 USR APPLY SUCCESS Java_dev2.ext.commapi 1.2.2.0 USR APPLY SUCCESS Java_dev2.rte.lib 1.2.2.0 USR APPLY SUCCESS Java_dev2.rte.bin 1.2.2.0 USR APPLY SUCCESS Java_dev2.samples.demos 1.2.2.0 USR APPLY SUCCESS [BOTTOM] F1=Help F8=Image F2=Refresh F9=Shell F3=Cancel F10=Exit F6=Command /=Find

After the successful installation of IBM Developer Kit for AIX, Java Technology Edition, Version 1.2.2, we proceded to apply PTF 7. See APAR IY12075.

Chapter 3. Installation checklist

27

The instfix -ik command tells you if youve applied the APAR, as seen in the next screen:

# instfix -ik IY12075 There was no data for IY12075 in the fix database.

The above output tells us that we have not installed all filesets for IY12075. You can obtain the APAR from:
http://techsupport.services.ibm.com/rs6k/fixdb.html

You have to download the next filesets: - Java_dev2.adt.debug.1.2.2.8 - Java_dev2.adt.src.1.2.2.8 - Java_dev2.ext.plugin.1.2.2.8 - Java_dev2.rte.bin.1.2.2.8 - Java_dev2.rte.lib.1.2.2.8 Total number of images: 5 Total byte size of fix package(s): 44889088 To install the APAR, you should log on as a root user and perform the following steps: 1. Change directory to the directory that contains uncompressed results. If the installation package table of contents (the .toc file) does not exist, create it with the following command while still in the install directory:
inutoc .

2. Call the AIX smitty utility for package installation:


smitty installp

3. Specify the source directory of installation package, and click Enter to start the installation. At the end of the installation process, you can verify the installation status from the installation summary. We used the instfix -icvk command to determine the status of IY12075. See the next screen.

28

Introducing Tivoli Personalized Services Manager 1.1

# instfix -ivck IY12075 #Keyword:Fileset:ReqLevel:InstLevel:Status:Abstract IY12075:Java_dev2.adt.debug:1.2.2.8:1.2.2.8:=:SDK 1.2.2 PTF 7: ca122-20000726 IY12075:Java_dev2.adt.src:1.2.2.8:1.2.2.8:=:SDK 1.2.2 PTF 7: ca122-20000726 IY12075:Java_dev2.ext.plugin:1.2.2.8:1.2.2.8:=:SDK 1.2.2 PTF 7: ca122-20000726 IY12075:Java_dev2.rte.bin:1.2.2.8:1.2.2.8:=:SDK 1.2.2 PTF 7: ca122-20000726 IY12075:Java_dev2.rte.lib:1.2.2.8:1.2.2.8:=:SDK 1.2.2 PTF 7: ca122-20000726 #

There are five filesets for IY12075. The Status field tells us if weve installed the fileset or not. If it says +, it means that weve already applied the correct level of fileset. If it shows -, it indicates that we need to apply the level of fileset that the ReqLevel field shows you. Setting environment variable After installation, the JDK needs to know the path to its own class libraries. To enable the JDK to find other class libraries, you should set the system CLASSPATH environment variable. You should also set the JAVA_HOME environment variable to point to the base directory for the JDK, which is /usr/jdk_dev2 by default. You can set this variable in your current AIX session by using the export command or put these commands into your login profile.
export CLASSPATH=$CLASSPATH:.:path1:path2:any path to class library export JAVA_HOME=/usr/jdk_dev2

3.2.4 IBM HTTP Server V1.3.12 for AIX


For the AIX platform, you can obtain the IBM HTTP Server from the WebSphere CD or obtain it in tar format from:
http://www.software.ibm.com/webservers/httpservers/download.html

3.2.4.1 Installing IBM HTTP Server If you install the HTTP Server from a downloaded package, you should log on as a root user, and perform the following steps: Uncompress the downloaded tar file using:
tar -xvf <tar-filename>

Change directory to the directory that contains uncompressed results. If the installation package table of contents (the .toc file) does not exist, create it with the following command while still in the install directory:
inutoc .

Chapter 3. Installation checklist

29

Call the AIX smitty utility for package installation:


smitty installp

Specify the source directory of installation package, and click Enter to start the installation. At the end of the installation process, you can verify the installation status from the installation summary.

3.3 Oracle JDBC driver 8.1.6


We obtained the classes12.zip file from:
http://technet.oracle.com/software

After we downloaded the classes12.zip file, we copied to the $ORACLE_HOME/jdbc/lib directory. This file must be available to Java through the CLASSPATH variable.

30

Introducing Tivoli Personalized Services Manager 1.1

Chapter 4. Building the environment


In this chapter we explain all the Operating Systems tasks that we performed, and also explain the installation and configuration of the products that we used in this project. We choose the following products to run the TPSM: Oracle 8.1.5i Netscape Enterprise Server 3.63 WebSphere Application Server 3.5 Standard Edition

4.1 File system configuration


In order to begin installing the products, we must increase the size of some filesystems. You can use smitty to change the file system sizes, or use the following commands:
chfs chfs chfs chfs chfs -a -a -a -a -a size='65536' / size='32768' /var size='32768' /home size='655360' /tmp size='4030464' /usr

Also we need to create two new file systems; /db and /var/adm/logs. For /var/adm/logs, we are going to create it in the rootvg volume group.
crfs -v jfs -g'rootvg' -asize='49152' -m'/var/adm/logs' -Ayes

For /db, we are going to create in a new volume group dbvg. If you have only one disk, its possible to create the new file system for the database in the same volume group. This change requires that you change the Oracle scripts. We will explain that in Section 4.2, Oracle installation on page 32. We create the volume group and the new file system /db.
mkvg -f -y'dbvg' -s'8' hdisk1 crfs -v jfs -g'dbvg' -asize=' 4259840' -m'/db' -Ayes

We mount the file systems.


mount /var/adm/logs mount /db

Copyright IBM Corp. 2001

31

4.2 Oracle installation


The Oracle installation scripts are packaged as a file set in TivTISM.ora.1.1.0.1.1025.bff. The installation has two parts; the Oracle installation script and the installation of Oracle, and the Tivoli Personalized Services Manager schema. To install the Oracle installation script: 1. Open a console 2. Type smitty install_latest 3. Select the device or directory where you have located the Oracle installation scripts 4. Press F4 in the field SOFTWARE TO INSTALL. This will open a window where you can select the software that you want to install. 5. Select 1.1.1.0 Tivoli Internet Services Manager - Oracle Database Integration and install it. Now, the Oracle scripts are installed. 6. To install the Oracle and the Tivoli Personalized Service Manager Schema export DISPLAY=:0.0 7. xhost + . You should receive the message access control disabled, clients can
connect from any host.

Try to open the smit console: smit. If the smit console doesnt open you have to solve this problem. 8. Unmount any CD-ROMs, making sure there are no file systems that begin with the name cdrom. 9. Place the Oracle 8i CD in the CD-ROM drive 10.Change directory to /usr/TivTSM/install/db/oracle. 11. export PATH=$PATH:/usr/TivTSM/install/db/oracle 12.../TSMOracle8i 13.Press Enter when you are prompted to place the Oracle CD in the drive. 14.Answer Yes when prompted for Checking for 'dba' group...'dba' group
not found. Create? created.

15.Answer Yes when prompted for Checking for 'oracle8' user...'oracle8'


user not found. Create? created.

16.Answer /db when prompted, What is the 'mount point' for Oracle user's
home?

32

Introducing Tivoli Personalized Services Manager 1.1

This process initializes Java Virtual Machine, which may take up to 10 minutes. If after 10 minutes you do not see the message Install phase starts, updates every 15 seconds, an error has occurred. Press Ctrl+C to stop the install. Otherwise, within 20-90 minutes, you will receive a message informing you of the progress of the Oracle software installation. If you do not receive a message, or if the install process immediately asks for the database instance, an error has occurred. You should quit the install at once and look in the log file for errors. The cause of errors in this part is usually a wrong installation of Java 1.2.2 17.When the install and link phase have completed, you will receive the following message: Enter the full pathname of the local bin directory: [/usr/local/bin]:. Use the default value. 18.Enter ispb when asked, Enter instance name to be created, or 'q' to abort:. 19.Enter n when asked, Do you want logging on or off for this install?
(n/f)

20.Answer How many subscribers in this database? Note: The minimum number of subscribers is 10,000, while the maximum number is limited by your hardware. Don't use any punctuation, i.e., 100000. 21.Press Enter to review/update the /db/creispblv.ksh file. If all the information looks acceptable, quit the file without saving. This information is also saved in the /usr/TivTSM/install/db/oracle/dbcalc.log file. An example of this file is:
Physical Partition Size: 16MB File Units Size ====== ===== ========= Data: 8 127999K Index: 6 95999K Temp: 2 31999K System: 11 User: 1 Rbs: 1 Drsystem: 6 Oem: 1 Redo: 1 Ctrl: 1

This table shows the values that you have to have in mind to review the files /db/creispblv.ksh and /db/app/oracle/admin/ispb/create/ispbrun1.ksh. /db/creispblv.ksh

Chapter 4. Building the environment

33

#!/bin/ksh COMMAND=$(basename $0 .ksh) DIR=$(dirname $0) echo "Sending output to $DIR/$COMMAND.log" exec 2>$DIR/$COMMAND.log 1>&2 MAXRC=0 mklv -a c -y lvispbdata -ex -u1 rootvg 8 hdisk3

Compare the number of lvispbdata units with the number of units for data in the table.
RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RC mklv -a c -y lvispbindex -ex -u1 rootvg 6 hdisk3

Compare the number of lvispbindex units with the number of units for index in the table.
RC=$?;[ mklv -a RC=$?;[ mklv -a RC=$?;[ mklv -a RC=$?;[ mklv -a RC=$?;[ mklv -a RC=$?;[ mklv -a RC=$?;[ mklv -a RC=$?;[ mklv -a RC=$?;[ mklv -a $RC -gt $MAXRC ] && MAXRC=$RC c -y lvispbrbs1 rootvg 1 hdisk3 $RC -gt $MAXRC ] && MAXRC=$RC c -y lvispbrbs2 rootvg 1 hdisk3 $RC -gt $MAXRC ] && MAXRC=$RC c -y lvispbredo11 rootvg 1 hdisk3 $RC -gt $MAXRC ] && MAXRC=$RC c -y lvispbredo12 rootvg 1 hdisk3 $RC -gt $MAXRC ] && MAXRC=$RC c -y lvispbredo13 rootvg 1 hdisk3 $RC -gt $MAXRC ] && MAXRC=$RC c -y lvispbredo21 rootvg 1 hdisk3 $RC -gt $MAXRC ] && MAXRC=$RC c -y lvispbredo22 rootvg 1 hdisk3 $RC -gt $MAXRC ] && MAXRC=$RC c -y lvispbredo23 rootvg 1 hdisk3 $RC -gt $MAXRC ] && MAXRC=$RC c -y lvispbsys rootvg 11 hdisk3

Compare the number of lvispbsys units with the number of units for system in the table.
RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RC mklv -a c -y lvispbdrsys rootvg 6 hdisk3

Compare the number of lvispbdrsys units with the number of units for drsystem in the table.
RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RC mklv -a c -y lvispbtemp rootvg 2 hdisk3

Compare the number of lvispbtemp units with the number of units for temp in the table.

34

Introducing Tivoli Personalized Services Manager 1.1

RC=$?;[ mklv -a RC=$?;[ mklv -a RC=$?;[ mklv -a RC=$?;[ mklv -a

$RC -gt $MAXRC ] c -y lvispbctrl1 $RC -gt $MAXRC ] c -y lvispbctrl2 $RC -gt $MAXRC ] c -y lvispbctrl3 $RC -gt $MAXRC ] c -y lvispbuser

&& MAXRC=$RC rootvg 1 hdisk3 && MAXRC=$RC rootvg 1 hdisk3 && MAXRC=$RC rootvg 1 hdisk3 && MAXRC=$RC rootvg 1 hdisk3

Compare the number of lvispbuser units with the number of units for user in the table.
RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RC mklv -a c -y lvispboem rootvg 1 hdisk3

Finally, compare the number of lvispboem units with the number of units for oem in the table.
RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RC chown oracle8:dba /dev/lvispb* chown oracle8:dba /dev/rlvispb* exit $MAXRC

The others usually are 1 so you dont have to worry about them. Another important point is the volume group where you are going to install it. Its specified here, so if you want to install in another volume group (in our case dbvg) you must change the command to read:
mklv -a c -y lvispboem dbvg 1 hdisk3

If you change the name of the instance for the db, you will notice that the names for the logical volumes change in the middle for the name of the instance. /db/app/oracle/admin/ispb/create/ispbrun1.ksh
#!/bin/sh ORACLE_SID=ispb export ORACLE_SID /db/app/oracle/products/8.1.5/bin/svrmgrl << EOF connect internal @/db/app/oracle/products/8.1.5/rdbms/admin/catalog.sql; CREATE ROLLBACK SEGMENT r0 TABLESPACE SYSTEM STORAGE (INITIAL 32K NEXT 64K MINEXTENTS 10 MAXEXTENTS 512); ALTER ROLLBACK SEGMENT r0 ONLINE;

Chapter 4. Building the environment

35

REM ************ TABLESPACE FOR OEM_REPOSITORY *************** CREATE TABLESPACE OEM_REPOSITORY DATAFILE '/dev/rlvispboem' SIZE 5M REUSE AUTOEXTEND ON NEXT 25M MAXSIZE 80M MINIMUM EXTENT 128K DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0); REM ************** TABLESPACE FOR ROLLBACK ***************** CREATE TABLESPACE RBS1 DATAFILE '/dev/rlvispbrbs1' SIZE 12M REUSE DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 2 MAXEXTENTS UNLIMITED PCTINCREASE 0); ALTER DATABASE DATAFILE '/dev/rlvispbrbs1' AUTOEXTEND ON; REM ************** TABLESPACE FOR ROLLBACK ***************** CREATE TABLESPACE RBS2 DATAFILE '/dev/rlvispbrbs2' SIZE 12M REUSE DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 2 MAXEXTENTS UNLIMITED PCTINCREASE 0); ALTER DATABASE DATAFILE '/dev/rlvispbrbs2' AUTOEXTEND ON; REM ************** TABLESPACE FOR TEMPORARY ***************** CREATE TABLESPACE TEMP_DATA DATAFILE '/dev/rlvispbtemp' SIZE 31999K REUSE

You have to compare the size of /dev/rlvispbtemp with the size of temp.
DEFAULT STORAGE ( INITIAL 256K NEXT 256K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0) TEMPORARY; ALTER DATABASE DATAFILE '/dev/rlvispbtemp' AUTOEXTEND ON; REM ************** TABLESPACE FOR USER ********************* CREATE TABLESPACE USER_DATA DATAFILE '/dev/rlvispbuser' SIZE 5M REUSE DEFAULT STORAGE ( INITIAL 50K NEXT 50K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0); ALTER DATABASE DATAFILE '/dev/rlvispbuser' AUTOEXTEND ON; REM ************** TABLESPACE FOR INDEX ********************* CREATE TABLESPACE ISPB_INDEX DATAFILE '/dev/rlvispbindex' SIZE 95999K REUSE

You have to compare the size of /dev/rlvispbindex with the size of index.
DEFAULT STORAGE ( INITIAL 50K NEXT 50K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0); ALTER DATABASE DATAFILE '/dev/rlvispbindex' AUTOEXTEND ON; REM ************** TABLESPACE FOR DATA ********************* CREATE TABLESPACE ISPB_DATA DATAFILE '/dev/rlvispbdata' SIZE 127999K REUSE

36

Introducing Tivoli Personalized Services Manager 1.1

You have to compare the size of /dev/rlvispbdata with the size of data.
DEFAULT STORAGE ( INITIAL 50K NEXT 50K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0); ALTER DATABASE DATAFILE '/dev/rlvispbdata' AUTOEXTEND ON; REM **** Creating four rollback segments **************** CREATE ROLLBACK SEGMENT r01 TABLESPACE RBS1; CREATE ROLLBACK SEGMENT r02 TABLESPACE RBS2; CREATE ROLLBACK SEGMENT r03 TABLESPACE RBS1; CREATE ROLLBACK SEGMENT r04 TABLESPACE RBS2; ALTER ROLLBACK SEGMENT r01 ONLINE; ALTER ROLLBACK SEGMENT r02 ONLINE; ALTER ROLLBACK SEGMENT r03 ONLINE; ALTER ROLLBACK SEGMENT r04 ONLINE; ALTER ROLLBACK SEGMENT r0 OFFLINE; DROP ROLLBACK SEGMENT r0; REM **** SYS and SYSTEM users **************** alter user sys temporary tablespace TEMP_DATA; alter user system temporary tablespace TEMP_DATA; disconnect exit

EOF

22.Enter Y to run the script and create the logical volumes. Details of the run are available by entering: tail -f /usr/TivTSM/install/db/oracle/./sqlispb.log. 23.Use the following steps for the schema creation script: Press Enter to accept the default single value between parenthesis, or type a new value and press Enter. - Enter the password for the db user system manager.

Note You may accept the defaults for the remaining steps if you used ispb as the database instance. - Enter stage_master as schema owner. - Enter stage_user as schema user. - Enter en as default local

Chapter 4. Building the environment

37

- e value. - Enter Y to create the schema. - The install will load tables and check results. - If you will use Device Manager, enter Y to include the Device Schema. - Enter Y to load the zip code table. - Enter Y to configure LDAP Integration. - Enter Y to configure eBill. - Enter Y to configure Web Hosting. 24.At this point the installation is complete. You may review the logs in the following directories: - /usr/TivTSM/install/db/oracle/ - /db/app/oracle/products/8.1.5/schemas/ispb - /tmp/OrasoftInst.log.

4.3 Installing Netscape Enterprise Server 3.63


We installed the Netscape Enterprise Server 3.63 as our Web Server. In this section we explain the tasks we performed to get Netscape Server up and running.

4.3.1 Creating groups and users


1. mkgroup -'A' netscape
2. mkuser 'enterpri'

3. chuser pgrp=netscape enterpri

4.3.2 Installing Netscape Enterprise Server 3.6


The Netscape installation requires approximately 250 MB of file system space for the 3.6 server version. Execute the ns-setup file (./ns-setup). Use the following answers to the Netscape install prompts:
Do you agree to the license terms? [no]: y Server root [/usr/netscape/suitespot]: /usr/netscape/suitespot Machine's name [hostname.]: hostname.domainname.com SuiteSpot User [nobody]: enterpri

38

Introducing Tivoli Personalized Services Manager 1.1

SuiteSpot Group [nobody]: netscape Are you using an LDAP-based directory server? [n] n

After all prompts, press Enter to copy the software. When prompted provide the following information: Administration port [6557]: 11043
Run Administration Server as [root]:root Enter path to 2.x version of Netscape Administration Server root:

[/usr/ns-home] leave blank if 2.x of Netscape was not loaded prior


Server Administrator ID [admin]: admin password: admin password (again): admin Web browser [netscape]: NONE

Perform the following steps to allow remote access to Netscape server: Stop the admin server by typing the command
/usr/netscape/suitespot/stop-admin

Type cd /usr/netscape/suitespot/admin-serv/config In a text editor, open ns-admin.conf. Change Hosts X.X.X.X to Hosts * Change Addresses X.X.X.X to Addresses * Start the admin server by typing the following command:
/usr/netscape/suitespot/start-admin

4.4 Creating Netscape server instances


Use the following steps to create Netscape server instances. 1. To get to the Netscape server administration console, start a browser and go to http://hostname:11043, where hostname is the name of the server and 11043 is the port where the admin was loaded as shown in Figure 9 on page 40.

Chapter 4. Building the environment

39

Figure 9. Netscape Server Administration console

2. Press Create New Netscape Enterprise Server 3.63. 3. Fill in form using the table below for each server instance. The following sections show you examples of filling out the form for each server instance. - When you create the Enrollment Server, follow the additional steps described in the example for Enrollment Server - Server Name field is the name of the server where you have installed Netscape (host.domain). - Take the default value for Bind address, Server User, MTA Host, NNTP Host. - Verify that the Never attempt to resolve IP addresses into hostnames radio button is selected. Confirm that the server port, server identifier,

40

Introducing Tivoli Personalized Services Manager 1.1

and primary document directory values are set in the form as in Table 2.
Table 2. Netscape Enterprise Servers

Server component Authentication Insecure Customer Care Subscriber Self-Care System Management Tools Personalization Premium Enrollment1 SDP Servlet Web Content Hosting

Server port 8080 14080 15080 9080 16080 10080 18080 8090 12080

Server identifier authserv custcare selfcare sysmgmt personal premium enroll sdp wch

Primary document directory /usr/TivTSM/authentication/conte nt /usr/TivTSM/custcare/content /usr/TivTSM/selfcare/content /usr/TivTSM/sysmgmt/content /usr/TivTSM/personal/content /usr/TivTSM/premium/content /usr/TivTSM/enroll/content /usr/TivTSM/sdp/content /usr/TivTSM/wch/content

Chapter 4. Building the environment

41

4.4.1 Creating the Authentication Server


Fill in the form as shown in Figure 10 to create the Authentication Server instance.

Figure 10. Form for Authentication Server

42

Introducing Tivoli Personalized Services Manager 1.1

4.4.2 Creating the Customer Care Server


Fill in the form as shown in Figure 11 to create the Customer Care Server instance.

Figure 11. Form for Customer Care Serer

Chapter 4. Building the environment

43

4.4.3 Creating the Selfcare Server


Fill in the form as shown in Figure 12 to create the Selfcare Server instance.

Figure 12. Form for Selfcare Server

44

Introducing Tivoli Personalized Services Manager 1.1

4.4.4 Creating the System Management Tools Server


Fill in the form as shown in Figure 13 to create the System Management Tools Server instance.

Figure 13. Form for System Management Tools Server

Chapter 4. Building the environment

45

4.4.5 Creating the Personalization Server


Fill in the form as shown in Figure 14 to create the Personalization Server instance.

Figure 14. Form for Personalization Server

46

Introducing Tivoli Personalized Services Manager 1.1

4.4.6 Creating the Premium Server


Fill in the form as shown in Figure 15 to create the Premium Server instance.

Figure 15. Form for Premium Server

Chapter 4. Building the environment

47

4.4.7 Creating the Enrollment Server


Fill in the form as shown in Figure 16 to create the Enrollment Server instance.

Figure 16. Form for Enrollment Server

1. After you create the Enrollment Server, click on the enroll server button to configure the server. 2. Click Programs, then click CGI Directory (see Figure 17 on page 49).

48

Introducing Tivoli Personalized Services Manager 1.1

Figure 17. Form of CGI for Enrollment Server

3. Type cgi-bin on the URL prefix line. 4. Type /usr/TivTSM/enroll/cgi-bin on the CGI directory line. 5. When you see a warning that the directory does not exist, click OK. 6. Save. 7. Apply. 8. Click OK. 9. Click admin.

Chapter 4. Building the environment

49

4.4.8 Creating the SDP Servlet Server


Fill in the form as shown in Figure 18 to create the SDP Servlet Server instance.

Figure 18. Form for SDP Servlet Server

50

Introducing Tivoli Personalized Services Manager 1.1

4.4.9 Creating the Web Hosting Content Server


Fill in the form as shown in Figure 19 to create the Web Hosting Content Server instance.

Figure 19. Form for the Web Hosting Content Server

Chapter 4. Building the environment

51

4.5 Installation of IBM WebSphere Application Server


To ensure a smooth installation process, do the following before you install the WebSphere in your AIX machine: Choose an edition of WebSphere Application Server that matches your requirements (in our case WebSphere Application Server 3.5 Standard Edition). Make sure that all hardware and software requirements are set up and running on your machine. This includes working versions of JDK/JRE, Web browser, Web Server, and database systems. Ensure that you have configured your TCP/IP environment correctly. Verify your machines Host Name, Domain Name, and IP, routing, and name server addresses. Make sure that your Internet/intranet access from/to your machine is working properly. You should have an AIX user ID for running the Web Server. WebSphere will use the same user ID for executing its process. To install WebSphere Application Server, you can either log in as a root ID, or as a user ID that can run the Web Server. The installation process consists of a sequence of dialog boxes. After each dialog box, you can proceed to the next dialog box by clicking the Next> button. If you miss some information in a screen, you can always go back by clicking the Back>button. After the Welcome dialog box (Figure 20 on page 53), go to the next dialog box.

52

Introducing Tivoli Personalized Services Manager 1.1

Figure 20. WebSphere Application Server Installation on AIX - welcome page

Specify the type of installation (Figure 21). Select Custom Installation from the list.

Figure 21. WebSphere Application Server Installation on AIX - type of installation

Chapter 4. Building the environment

53

The next dialog box (Figure 22) asks you to select the application server components that you want to install.

Figure 22. WebSphere Installation on AIX - selecting components to install

The installation will ask you to select the Web Server on which WebSphere will run (Figure 23 on page 55). Select the appropriate Web server plug-ins on the right. If your Web server has a later version than those listed in the dialog box, choose the latest plug-in version available.

54

Introducing Tivoli Personalized Services Manager 1.1

Figure 23. WebSphere Installation on AIX - selecting plug-ins to install

Specify the location of your Web server configuration file (Figure 24). For Netscape Server, the file is obj.conf; for Apache or IBM HTTP Server, the file is httpd.conf.

Figure 24. WebSphere Installation on AIX - web server configuration file

Chapter 4. Building the environment

55

The next dialog box (Figure 25) asks you to indicate the type of the database you would like to use. For our purposes, choose InstantDB.

Figure 25. WebSphere Installation on AIX - indicating database repository

Now, enter the security information (Figure 26). The user is the user that WebSphere is going to run under. Use the dummy key ring file.

Figure 26. WebSphere Installation on AIX - security information

56

Introducing Tivoli Personalized Services Manager 1.1

Specify a directory to install the WebSphere (Figure 27). This directory will be the WebSphere Application Server root directory.

Figure 27. WebSphere Installation on AIX - specifying WebSphere home directory

The installation program will take some time to install files into your system. After it finishes, the last dialog box will allow you to read the readme.txt file or click Finish to complete the installation. At that point, the Websphere Application server is ready.

4.6 Installing Tivoli Internet Services Manager software


This section will show you how to install TISM/TPSM software on an AIX machine. Before you run the following command, be sure that you can start an X-application like xclock. If not, set your DISPLAY variable properly before continuing. To perform the installation, you need to be a user that has root privileges. First, change directory to the where you have the TISM/TPSM installation CD mounted. In the TISM Planning and Installation online manual, it says to run

Chapter 4. Building the environment

57

./install.sh in an AIX terminal window, but it really should be the following

command:
./install.ksh

This will bring up the install welcome panel as shown in Figure 28.

Figure 28. TISM/TPSM installationwelcome

Choose Next to continue. You will then be asked which database you will be using. Select the proper database and click on Next as shown in Figure 29 on page 59.

58

Introducing Tivoli Personalized Services Manager 1.1

Figure 29. Choosing the database

It is interesting that we are prompted for the database because we are installing from the TPSM/Oracle CD. It appears that in the future, this will allow both DB2 and Oracle support to be shipped on one CD instead of two. Selecting Next will bring up the next dialog (Figure 30 on page 60) where you will be prompted for the local machine information. DNS domain resolution is a requirement.

Chapter 4. Building the environment

59

Figure 30. Local Information for the install

Fill in the information and select Next to bring up the next dialog as shown in Figure 31 on page 61.

60

Introducing Tivoli Personalized Services Manager 1.1

Figure 31. Oracle configuration information

While the ITSO did an initial install on itso14.dev.tivoli.com, this screen capture was done on a separate machine, knight1. This is the reason for the discrepancy in hostnames on our dialog boxes. No information was changed on this dialog. Selecting Next opened the next dialog as shown in Figure 32 on page 62. If you have a Radius server already installed, you can unselect the internal TISM Radius server.

Chapter 4. Building the environment

61

Figure 32. TISM install components

You will notice that Systems Management and Authentication is greyed out. This is because the installation of these components are required. Select Next to bring up a prerequisite checklist dialog as shown in Figure 33 on page 63.

62

Introducing Tivoli Personalized Services Manager 1.1

Figure 33. TISM prerequisite checklist

Selecting Next will bring up the dialog to ask you where the prerequisites have been installed as shown in Figure 34 on page 64. Update the dialog with any changes from the application defaults.

Chapter 4. Building the environment

63

Figure 34. Prerequisites installation directories

Select Next to open the verification dialog as shown in Figure 35 on page 65.

64

Introducing Tivoli Personalized Services Manager 1.1

Figure 35. Installation verification dialog

You can scroll up/down the information that you have chosen from the previous panels. When you have verified that it is correct select Next to start the install. While it is installing this version of the install code does not display a status window. While the install document tells us to look at /installdir/TivTSM/install/tisminstall.log, that file is not written until the installation is complete or fails. You cannot tail the file to check the status of the installation. After the installation has completed a dialog will open as shown in Figure 36 on page 66.

Chapter 4. Building the environment

65

Figure 36. Installation is finished

Select Finish to close the installation dialogs.

4.6.1 Post-Installation tasks for TISM software.


In this section we make the final configurations to ready TISM for use. Start all the Netscape Servers Create the WebSphere Application Servers Configure all of the components of the TISM. 4.6.1.1 IBM WebSphere Application Server configuration 1. For TISM Application, execute the following command:
cp /usr/TivTSM/install/etc/rc.txservers /etc

2. For starting and stopping the Netscape services, we created a rc.webservers file in the /etc filesystem. Our file looks like this:

66

Introducing Tivoli Personalized Services Manager 1.1

cat /etc/rc.webservers /usr/netscape/suitespot/https-enroll/$1 /usr/netscape/suitespot/https-custcare/$1 /usr/netscape/suitespot/https-personal/$1 /usr/netscape/suitespot/https-selfcare/$1 /usr/netscape/suitespot/https-premium/$1 /usr/netscape/suitespot/https-authserv/$1

3. In the Netscape server administration console, http://hostname:port, select each Netscape server instance and select Apply to load manual file changes. 4. Stop all the Netscape servers:
/etc/rc.webservers stop

5. Start all the Netscape servers:


/etc/rc.webservers start

4.6.1.2 IBM WebSphere Application Server configuration This section shows you the steps to configure the Application Servers. 1. Change directory to /usr/WebSphere/AppServer/bin. 2. In a text editor, open was.prp. and change traceLevel=0 to traceLevel=4 to avoid a huge log file. 3. Enter ./startupServer.sh to start the WebSphere. 4. Enter tail -f ../logs/tracefile. Wait for an Open for e-business message. To create all the application servers for TISM, follow the next steps: 5. Enter ./setupCmdLine.sh 6. Enter ./XMLConfig.sh -adminNodeName nodename -import SMAPPV11ora.xml. 7. Ignore the following warning messages during the import process
Failed to find Servlet Creating Servlet : xxxxxxxxxxxx, since it was not found for update.

8. Backup the InstantDB database: - Change directory to usr/WebSphere/AppServer/bin and issue tar -cvf ./idbstore.tar ./idbStore. - Enter ./XMLConfig.sh -adminNodeName node name -export nodename.xml Now we can start the Admin Console (Figure 37 on page 68) to verify the creation of the application servers. Go to the /usr/WebSphere/AppServer and issue ./adminclient.sh&. Ignore the following warning messages:

Chapter 4. Building the environment

67

[00.11.15 15:59:11:457 CST] bbe7e34f IExtendedSecu A 2000.11.15 15:59:11.457 SecurityConfiguration reportVerificationAnalysis IBM WebSphere Security The security service will not be disabled during bootstrap activation.

Figure 37. WebSphere administration console

Now we start up all the application servers. Just click on the Application Server to be started and then click on Start. You should see a completed message as shown in Figure 38 on page 69.

68

Introducing Tivoli Personalized Services Manager 1.1

Figure 38. Starting up an Application Server

4.7 Usage and verification test of installed TISM software


In this section we access each component of the TISM to verify the operation.

4.7.1 Director test


To start the Director Tool, you should open a browser and go to http://<hostname>:9080/console/console.html to get the TSM Administration page (see Figure 39 on page 73). Download and install the console application code in your local machine. Then edit the Transaction.properties file and change the TransactionURL variable to match the hostname and port where the server is running:
http://itso14.dev.tivoli.com:2001/Transaction.

Start console with the command console.bat, which will open a dialog box where you have to give Administrator login and password. See Figure 40 on page 74. After filling in the username and password, the Administration Console appears as shown in Figure 41 on page 74.

Chapter 4. Building the environment

69

4.7.2 Authentication test


Open a browser and go to: http://<hostname>:8080/authentication/server. You should see a TSM userid/password prompt screen. Enter a valid user id and password (TEST1/test1).

4.7.3 Premium test


Open a browser and go to http://<hostname>:10080/premium/sample.jsp. You should see a TSM userid/password prompt screen. Enter a valid user id and password (TEST1/test1).

4.7.4 Customer Care test


Open a browser and go to http://<hostname>:14080/cc.html. You will see a TISM customer care logon screen. There is a default CSR ID of CSR001/csr001 that you can use to verify the server. For further details, refer to Chapter 7, Using Customer Care and Director Tool on page 149.

4.7.5 Enrollment test


Open a browser, go to http://<hostname>:18080/enroll.html, and select Enroll. For further information refer to Chapter 5, Enrollment and service provisioning on page 73.

4.7.6 SelfCare test


Open a browser and go to http://<hostname>:15080. You can log on to personal with TEST1/test1 from the sample data. For further information please refer to Chapter 8, Subscriber Selfcare on page 167.

4.7.7 Personal test


Open a browser and go to http://<hostname>:16080/perso/samples/welcome.jsp and log on to personal with TEST1/test1 from the sample data.

4.8 Startup order for starting up a system


In this section we are going to review the sequence that we used to start all the services in order to get the TISM/TPSM running. The following assumes we are using a user with root privileges.

70

Introducing Tivoli Personalized Services Manager 1.1

4.8.1 Oracle
Switch to the oracle software owner, in our case oracle8:
su - oracle8

Start up the Oracle listener:


lsnrctl start

Start up the Oracle Database:


dbstart

4.8.2 Start Provisioning server


Change to the /usr/TivTSM/provisioning/bin directory and issue:
nohup ./StartProvServer.ksh > /var/adm/logs/ProvServ.log

4.8.3 Transaction Servers


To verify if the Transactions Servers are running using the next command:

[# ps -ef|grep Trans root 9024 18256 0 Nov 10 - 5:17 /usr/java_dev2/jre/sh/../bin/java com.tivoli.tsm.tx.TransactionImp root 21396 20432 0 Nov 10 - 8:33 /usr/java_dev2/jre/sh/../bin/java com.tivoli.tsm.tx.TransactionImp root 36504 13136 0 15:39:18 pts/4 0:00 grep Trans #

To start up the Transaction Server, go to the /etc directory and enter:


./rc.txservers

4.8.4 Start Netscape Servers


To start up the Netscape Servers, go to /etc directory and enter:
./rc.webservers start

4.8.5 Start WebSphere


To start the WebSphere, please refer to Section 4.6.1.2, IBM WebSphere Application Server configuration on page 67.

Chapter 4. Building the environment

71

72

Introducing Tivoli Personalized Services Manager 1.1

Chapter 5. Enrollment and service provisioning


This chapter is divided into two parts; registration configuration and managing the enrollment process. To use the enrollment process in a realm, you must establish which flow the user will follow.

5.1 Registration configuration


Enrollment can be performed through Dial-Up Networking or the Internet. In either case, the enrollment server is used. Several people can be logged onto the enrollment server using the same Registration Name and password. The Registration Name can be used for an unlimited number of enrollments, or a limit may be imposed on the number of subscribers who can be enrolled using a Registration Name. Network Access Server (NAS)-level filtering restricts a potential subscribers access to the enrollment application only while the Registration Name and password are being used. Before new members can be enrolled, the TISM enrollment options in the Enrollment profile database must be configured. To do this, use the Director Tool. This tool is run in a Windows environment. To install it: 1. Open a browser and go to http://hostname:9080/console (Figure 39)

Figure 39. Administration Console

Copyright IBM Corp. 2001

73

2. Download console.zip to your hard disk. 3. Unzip the file to a known location. 4. Edit the unzipped Transaction.properties, TransactionURL variable. It should match the hostname and port of the machine where the console RMI server is running. For instance:
//itso14.dev.tivoli.com:2001/Transaction

5. Open a DOS Windows and cd (change directory) to the directory where you unzipped. Type console.bat to start the TISM Administration Console. 6. It will open a dialog box where you must give the Administrator login and password (Figure 40).

Figure 40. The TISM Administration Console dialog box

7. The TISM Administration Console will open. 8. Double-click the Registration configuration folder (Figure 41).

Figure 41. Director Tool Console

A wide variety of configuration options are available to the ISP. The following section provides an overview of the enrollment configuration objects: Realms

74

Introducing Tivoli Personalized Services Manager 1.1

Registration names Access codes Deals Deal text Enrollment metrics The enrollment configuration objects have a structure. This structure is required to create the enrollment object as shown in Figure 42.

Figure 42. Structure of the enrollment objects

A realm needs a registration name to be able to enroll new users. A registration name requires an access code to be able to work. For marketing purposes, we have deals and each deal has a deal text, which explains the deal, for example, a deal, FREE, could have as deal text, you dont have to pay anything. But if you have to pay something, you have a list of payment methods.

Chapter 5. Enrollment and service provisioning

75

For a deal, you can set a number of properties. The access code is related with the deals. Depending on the access code, the ISP could offer different deals, for instance, the old customers could be offered a free access. Due to that the deals are not going to be always free, you have to related what methods of payment you permit.

5.1.1 Creation of a Realm


A Realm can be considered an ISP. For instance, IBM is a realm and its domain is ibm.com. We must register a Realm in the TPSM to be able to begin the enrollment process. 1. Right-click the Realm folder and select Add (Figure 43).

Figure 43. Press the right mouse button and select Add

2. Enter the following fields as shown in Figure 44 on page 77: - Realm Name: A name for the realm. - Realm Description: Optional text describing the realm - Default Domain: The E-mail domain for the realm.

76

Introducing Tivoli Personalized Services Manager 1.1

Figure 44. Dialog box for the creation of Realm

5.1.2 Creation of Registration Names


A Registration Name is a special TISM User Name used to enroll new members. Subscribers who log in via a Registration Name have access only to the enrollment server. They cannot access other resources of the ISP such as the open Internet. Registration Names always have at least one access code named DEFAULT. The process of defining a Registration Name builds the DEFAULT Access Code automatically. There are 2 kinds of registration names; Generic and Multiple Access. A Generic Registration Name has only the DEFAULT Access Code. A Multiple Access Registration Name has the DEFAULT Access Code, and may have additional Access Codes. Registration Name does not meaningfully exist without an Access Code. There must always be a Registration Name-Access Code combination in effect for registration to succeed.

Chapter 5. Enrollment and service provisioning

77

The following values define a Registration Name as shown in Table 3:


Table 3. Values of Registration Name

Value Registration Name Description Password Registration Authorization Attributes Member Authorization Attributes Registration Type Access Code Required

Description The username of this Registration Name. Optional 40 character text description The password for this Registration Name. The set of NAS filters to be invoked during the time this Registration Name is logged on (for example, filters that force subscribers to stay in the registration subnet and not be able to surf the web). NAS attributes to be set for subscribers who register using this Registration Name (for example, the attributes for the new subscriber for all subsequent sessions after registration). Generic, or Multiple Access Code Only meaningful for Multiple Access Registration Names. Y= Access Code is required (if not provided, registration is terminated). N= Access Code is optional (if not provided, registration proceeds, using the DEFAULT Access Code). Determines if the subscriber, when created, will be considered business or consumer. Drop-down selection list that comes from the sales channel folder of available sales channels. Account type used on the subscriber's account when it is created.

Consumer or Business Sales Channel Account Type

An example of creation of Registration Name is shown in Figure 45 on page 79. 1. Select the new realm, ITSOCHANNEL. 2. Press the right mouse button and select Add 3. An example of dialog is:

78

Introducing Tivoli Personalized Services Manager 1.1

Figure 45. Registration Names dialog box

5.1.3 Creation of Access Codes


Access Codes are a convenient way to extend the Registration Name. Registration Names always have at least one Access Code, called DEFAULT. When a Registration Name is defined, the DEFAULT Access Code is created automatically. Access Codes are specific to a Registration Name. A particular Realm, Registration Name, and Access Code combination is unique in the TPSM database. Access Codes are identifiers that provide an entry point into the registration process. An Access Code is essentially a software override to a Registration

Chapter 5. Enrollment and service provisioning

79

Name. The Access Code allows the Service Provider to track the sales channel used to acquire subscribers. An important aspect of Access code is that each one has its own set of billing deals, thus enabling the generation of many different deals and registration scenarios without having to build a new software kit for each new promotion. As noted before, a registration name can be one of two types; generic or multiple access. The first one uses the DEFAULT access code, so it doesnt deal with access codes. The second one requires an access code from the registering subscriber, although it could have also the DEFAULT access code. If a Multiple-Access Registration Name is driving a particular registration, then the run-time registration code asks the access code, which is usually provided in the software kit. If the access code given by the user is correct, the registration flow continues as it was established in the attributes. If the access code entered is incorrect, the user would be asked again. If the access code is incorrect again, one of two things can happen depending on whether the access code is required or not. If it is not required, the registration will go on. If the access code is required, the registration flow will be halted. This is shown in Figure 46 on page 81.

80

Introducing Tivoli Personalized Services Manager 1.1

Figure 46. Flow of a multi-access registration name

An example of creation of access code: 1. Select the new registration name, USER_FOR_ENROLL 2. Press the right mouse button and select Add -> Access Code 3. The dialog box shown in Figure 47 on page 82 appears:

Chapter 5. Enrollment and service provisioning

81

Figure 47. Access Code dialog box

5.1.4 Creation of a deal


The deal is a set of services and associated billing options that are offered to potential subscribers at enrollment time (Figure 48). A given deal may be re-used by any number of Registration Name - Access Code combinations. A registration name can be related with several deals, in which case the subscriber can choose between them during the enrollment.

Figure 48. Deal examples offered to the user in the enrollment process

A deal may have any number of properties. These can be used to associate various parameters with a deal, which at registration time become associated with the subscribers account. If no deals are found for a given Registration Name-Access code combination, the registration fails.

82

Introducing Tivoli Personalized Services Manager 1.1

The required fields to create a deal are shown in Table 4:


Table 4. Required fields for the creation of a new deal

Field Deal

Description The deal name is also the Billing System Product Code. The name links the deal with a billing plan in the billing system. Text description of the deal. This description is not seen by the user. 1-5 characters. Required. Future use. Name of the DEAL TEXT that you want to relate with the deal Name of the Method of Payment List that we relate with this deal For each property presented, select the desired value from the pull-down that applies. (As a convenience, the default value is always the first one)

Description Plan Type Text Block ID Method of Payment List Properties

An example of the creation of a deal is: 1. Select the deal folder and click the right mouse button. 2. Select Add. 3. The dialog box shown in Figure 49 on page 84 will appear.

Chapter 5. Enrollment and service provisioning

83

Figure 49. Dialog of the creation of a new deal.

4. A new dialog box appears to create new deal text or set the default text.

5.1.5 Creation of deal text


Deal text is a description of a deal. It can be related to several deals. This information is displayed in several parts of TPSM, enrollment, selfcare, and customer care processes. The necessary information to create a deal text is shown in Table 5:
Table 5. Fields to create deal text

Value Reporting description Short text Long text Sort sequence

Description ID for the deal text Short deal description. Its usually used in the radio buttons. Long description of the deal. This is optional. Numeric value used in descending order to set how they are listed on the screen.

84

Introducing Tivoli Personalized Services Manager 1.1

At this point, you have two choices: a. Select the default one by pressing Cancel. b. Create new deal text: 1. The dialog box in Figure 50 will appear, and you have to write the fields as you decide to set. 2. Press Add when you finish

Figure 50. Deal text dialog box

3. A dialog box to set the properties will appear. 5.1.5.1 Setting the properties for a deal To set the properties in the deal, you have to set the values in the dialog box shown in Figure 51 on page 86.

Chapter 5. Enrollment and service provisioning

85

Figure 51. Dialog for properties of a deal

When completed, select Add. In the TISM Administrator Console you will now see the deal that you added (Figure 52 on page 87).

86

Introducing Tivoli Personalized Services Manager 1.1

Figure 52. Table with the deals and deal text

Now you have to relate the deals with the Realms, which is described in Section 5.1.7, Associating the deals with the Realm on page 90

5.1.6 Creating a property


A property is a definition of a system parameter that can be assigned to various components. Each property is identified by its domain name. Each property has a sublist of possible setting values for it. Each property is also assigned a subsystem, which is the name of the application that presets a given property. The values in Table 6 are required to create a property:
Table 6. Fields to create a property

Value Name Domain Description Subsystem

Description Name of the property Domain of the property Description of the property Component that sets property values; for instance, PIDEAL, so the property is going to be defined as a deal level in the registration configuration folder. For more information, check the Data Dictionary documentation

Chapter 5. Enrollment and service provisioning

87

Value Unit of Measure Default Value Setting type

Description Unit of measure for property values; for instance, MegaBytes Default setting for property; for instance, 1, 0, 2, None Determines the type of values the properties have. This value determines the sort order of the Setting Folder for the property. Currently, there is no type checking when new setting values are added to a property. They may be one of the following: - Number -Character - Date

The Director Tool has a few defaults. You can also add your own. 5.1.6.1 Creating a new property To add a new property, follow these steps as shown in Figure 53: 1. Select the Registration Values Folder in the TISM Administrator Console. 2. Select the Properties Folder. 3. Select the Action Menu, and select Add -> Property to bring up a dialog box as shown in Figure 54 on page 89.

Figure 53. Menu to create a property

88

Introducing Tivoli Personalized Services Manager 1.1

Figure 54. Dialog to create the property

4. Fill in the dialog with your property information and select Add. The new property is now visible in the Properties table. 5. After this you can set values to this property. a. Select, in the table of properties, the property that you want to add possible values to. b. Select Action Menu c. Select Add -> Setting d. A dialog box as shown in Figure 55 on page 90 will appear where you write the new value.

Chapter 5. Enrollment and service provisioning

89

Figure 55. Creating a value for FAVBOOKS property

5.1.7 Associating the deals with the Realm


With this action, you set which deals are going to be offered in the enrollment, customer care, and selfcare to a customer for a specific Realm. Follow these steps: 1. Select the deal folder in the Administrator Console. 2. As you can see in Figure 56 on page 91, in the top of the window you have the available deals and in the bottom of the right hand side, you have the existing Realms. Check the deal that you want to relate, for instance, FREE.

90

Introducing Tivoli Personalized Services Manager 1.1

Figure 56. Table of deals

3. Select the deal in the top table that you want to associate with a Realm, then select the Realm(s) in the lower right window that will offer this deal, for example, IBM and ITSOCHANNEL. See Figure 57 on page 92 to see the deal and Realms associated.

Chapter 5. Enrollment and service provisioning

91

Figure 57. Example of how to relate a deal with several Realms

5.1.8 Associating the Access Codes with the deals


With this action, you will associate the deals that you have created with access codes within the context of a Registration Name. This gives you the freedom of Registration Name/deal/Access code associations instead of locking you into a single deal/Access code association for all Registration Names.The steps to do so are: 1. Select the registration name as shown in Figure 58 on page 93. 2. In the bottom of the right hand-side, there is a table that displays the available access codes and deals. Also, this table displays the relations between the access codes and deals. 3. Check the deals that you want to offer for this access code.

92

Introducing Tivoli Personalized Services Manager 1.1

Figure 58. Relation of access code and deals

5.1.9 Creating a Sales Channel


A Sales Channel is a free-form data item used for marketing purposes. It is an attribute related to access codes. When a subscriber enrolls, the Sales Channel associated with the access code is stored in the database and can be used for reporting. The following values are necessary to create a sales channel (Table 7):
Table 7. Fields for a Sales Channel

Value ID Description

Description ID for Sales Channel Text description about the Sales Channel

To create a sales channel: 1. Select the Sales Channel folder in the Registration Configuration folder of the Administrative Console. 2. Select Action Menu. 3. Select Add. 4. A new dialog box will appear as shown in Figure 59 on page 94.

Chapter 5. Enrollment and service provisioning

93

Figure 59. A new Sales Channel

The new Sales Channel will now show up in the Administrator Console (Figure 60).

Figure 60. Table of existing Sales Channel

When you create a new Access Code, you would have the choice of selecting the new Sales Channel as shown in Figure 61 on page 95.

94

Introducing Tivoli Personalized Services Manager 1.1

Figure 61. Example of selection of created Sales Channel in the new Access Code

5.1.10 Creating a Method of Payment


A method of payment describe a valid payment method available in the overall system. The payment methods are contained in the list of payment methods. Table 8 explains each required field to create a payment method:
Table 8. Description of the required fields for a method of payment

Value Type

Description There are three primitive Method of Payment types: - Paper - For paper invoice creation - Credit - Credit card - Telco - Add to phone bill It could be any letter Description of the new method

Subtype Description

Here is an example about how to create a payment method: 1. Select the Payment Method folder in the Registration values folder. 2. Either right click on the folder or choose the Action menu.

Chapter 5. Enrollment and service provisioning

95

3. Select Add. A new dialog box will be displayed as shown in Figure 62.

Figure 62. Payment Method dialog

5.1.11 Creating a List of Method of Payment


The Method of Payment (MOP) Lists are named collections of Payment Methods. A MOP List is an attribute of a deal. How to create a List of Method of Payment: 1. Select the Method of Payment Lists folder. 2. Select the Action menu. 3. Select Add. A new dialog box will be displayed asking you the name of the list of payment methods as shown in Figure 63 on page 97.

96

Introducing Tivoli Personalized Services Manager 1.1

Figure 63. Method of Payment list dialog

4. Now you have to add the Payment Methods that you want contained in the MOP list. Select the MOP List in the table that appears in the middle of Figure 64.

Figure 64. Relationship between method of payment list and table

5. Select the Method of Payment we want to include in the MOP list in the right hand-side of the table as shown in Figure 65 on page 98.

Chapter 5. Enrollment and service provisioning

97

Figure 65. Example of how to relate the MOP list to MOPs

5.1.12 Association of a MOP list and a deal


You have two choices depending on when you decide to set the association between the Method of Payment (MOP) List and the deal. As we saw, you can select it in the deal dialog box when you create it (see Section 5.1.4, Creation of a deal on page 82), or you can set after creation as follows: 1. Select the deals folder as shown in Figure 66 on page 99. 2. A table appears in the top of right hand-side of the window, Click the method of payment list of the deal that you want to change. A combo-box with the different MOP list will be displayed.

98

Introducing Tivoli Personalized Services Manager 1.1

Figure 66. Example of combo-box of MOP list for a deal

3. Select the MOP list that you want to set for the deal.

5.1.13 Managing the enrollment process


With the settings we have specified, we are going to personalize a enrollment process for ITSOCHANNEL, explaining the object components and the role that they are going to play in this scenario as we go. We have a Realm, ITSOCHANNEL. This realm has created a registration name for the enrollment process, USER_FOR_ENROLL. This registration name has a Multi Access type, so we can use access codes other than DEFAULT. We created two access codes, PUBLIC and CHEAP. Depending on the access code, the user will be offered different deals. PUBLIC access code offers the FREE deal. The CHEAP access code offers two deals; FREE and CHEAP. Both use MOP test as the method of payment list. MOP test contains all the available credit cards. Keeping this in mind, we are going to see what we need to change in the code to make it work how we want. The generic configuration for enrollment process is explained in Chapter 4, Building the environment on page 31.

Chapter 5. Enrollment and service provisioning

99

The enroll process begins in the URL: http://hostname:18080/enroll.html This will bring up the enrollment home page as shown in Figure 67.

Figure 67. Enroll home page

This page sets the Realm that the user is going to be enrolled in, and the Registration Name that we want to use for the enrollment process, in this case ITSOCHANNEL as Realm and USER_FOR_ENROLL as Registration Name. The following screen shows the code associated with this page:

100

Introducing Tivoli Personalized Services Manager 1.1

<!DOCTYPE HTML PUBLIC "-//W3C//DTC HTML 4.0//EN"> <META HTTP-EQUIV="Content-type" CONTENT="text/html;charset=iso-8859-1"> <HTML> <HEAD> <TITLE>Welcome to ISP</TITLE> </HEAD> <BODY BGCOLOR="Teal" TEXT="white"> <CENTER> <TABLE WIDTH=370 CELLSPACING=0 BORDER=0> <TR><TD>&nbsp;</TD></TR> <TR><TD WIDTH=201> <CENTER><IMG SRC="../../art/reg000.gif" WIDTH=578 HEIGHT=52 BORDER=0 ALT="Subscriber System Registration"> </CENTER> </TD> </TR> </TABLE> <TABLE> <TR><TD>&nbsp;</TD></TR> <TR><TD>&nbsp;</TD></TR> </TABLE> <TABLE> <TR><TD> <FONT SIZE=6> <CENTER>Welcome !!</CENTER></FONT><BR></TD></TR> <TR><TD>&nbsp;</TD></TR> <TR><TD> <CENTER><FONT SIZE=5>Here's an opportunity to join the fastest growing ISP !!</FONT></CENTER><BR> <BR></TD></TR> <TR></TR> <TR><TD>&nbsp;</TD></TR> <TR><TD> <CENTER><FONT SIZE=15> <FORM METHOD="POST" ACTION="/enroll/EnrollServlet"> <INPUT TYPE="HIDDEN" NAME="RegName" VALUE="USER_FOR_ENROLLMENT"> <INPUT TYPE="HIDDEN" NAME="RealmName" VALUE="ITSOCHANNEL"> <INPUT TYPE="SUBMIT" NAME="" VALUE="ENROLL NOW"> </FORM> </FONT> </CENTER> </TD></TR> </TABLE> </CENTER> </BODY> </HTML>

These changes create the new REALM. Once you press ENROLL NOW, you pass to the next window (Figure 68 on page 102), which prompts the user for an access code. We have two; PUBLIC and CHEAP. In this example we will enroll with both to show the differences due to the different configuration.

Chapter 5. Enrollment and service provisioning

101

Figure 68. Enroll with access code PUBLIC

After this, the agreement window appears as shown in Figure 69.

Figure 69. Agreement window

102

Introducing Tivoli Personalized Services Manager 1.1

The enrollment details window appears. This is divided into Personal details (Figure 70) and deals/Username (Figure 71 on page 104).

Figure 70. Personal detail of enroll

Chapter 5. Enrollment and service provisioning

103

Figure 71. Deal and Userid details for enroll details

At this point the customer can choose the password for accessing the new account as shown in Figure 72.

Figure 72. Password for enroll details

Next, TPSM gives details about the deal that the user chooses as shown in Figure 73 on page 105.

104

Introducing Tivoli Personalized Services Manager 1.1

Figure 73. Details of chosen deal

Access information and a choice for method of payment is shown (see Figure 74).

Figure 74. Payment Method details for enroll

Chapter 5. Enrollment and service provisioning

105

The enrolling person is given a chance to confirm all the information that had been entered (see Figure 75).

Figure 75. Confirmation details

Enrollment is complete, as shown in Figure 76.

Figure 76. Congratulations screen

106

Introducing Tivoli Personalized Services Manager 1.1

Selecting Continue on Figure 76 on page 106 will bring up Figure 77, which provides additional information for configuring your machine to access the service.

Figure 77. Configuration enroll

Now we are going to see what happens when we use the CHEAP access code in the screen shown as Figure 68 on page 102 to enroll a new user. First we go to the enroll main page (Figure 67 on page 100) and proceed to enroll a new one following the steps that we mentioned earlier in this chapter; see Figure 68 on page 102 through Figure 77. On the screen that asks us to choose the deal, we select the second option as shown in Figure 78 on page 108.

Chapter 5. Enrollment and service provisioning

107

Figure 78. Choosing the cheapest deal.

As you can see, there are two deals. These deals are those we set for CHEAP access code. After we choose the deal, the enrollment procedure continues as described on the prior pages.

5.1.14 Enrollment JSPs


You can change the flow of the enrollment process by changing the JSPs. Table 9 on page 109 describes the enrollment JSPs. Figure 79 on page 109 shows the structure of directories for Enroll.

108

Introducing Tivoli Personalized Services Manager 1.1

Figure 79. Structure of directories of enroll

The content directory contains the JSPs. Their names and functions are described in Table 9:
Table 9. JSPs for enroll

JSP file accessCode accountCode areYou18 cancelByUser configure confirm congrats

Description Ask the access code If the access code is not correct, it would ask the access code again If the user dont give the birth date, It would ask if you are 18 or over If you cancel the registration, it would send you to this JSP After registering, the user could download the configuration to your PC Shows the user details about the registration It gives the user the congratulations, when it finishes

Chapter 5. Enrollment and service provisioning

109

JSP file debug dontGo enroll mopCombined paymentPlan userNameInvalid personalCombined agreement

Description Not used If the user presses cancel Controls the flow of the enrollment Shows the Payment Details to be confirmed by the user Shows the Deal Details to be confirmed by the user If the user chooses a ID that is used already The form with all the personal details Shows the terms of agreement

For the servlet directory, we have the configuration files. In Table 10, we are going to explain what who they are and they do.
Table 10. Property files for enroll

File name EnrollJspMsg.properties Transaction.properties Validator.properties device_enroll.properties enroll.properties

Description Variables with messages for the user JDBC configuration for Oracle Variable format to validate the data that the user introduces It has the error page where if something wrong happens go General configuration file

110

Introducing Tivoli Personalized Services Manager 1.1

Chapter 6. Subscriber authentication and access control


Authentication is the process by which a user is recognized by the system and allowed to gain access to files or views. Typically a user is authenticated by prompting a form with their user name and password. This information is verified by the server. The authentication server is one of the most important parts of TPSM because almost all the other servers use it. Figure 80 shows how the authentication server works in TPSM.

Figure 80. How the authentication server works

1. A user attempts to access a portal page and is intercepted by the authentication checker 1. 2. The user has never access the portal page before and therefore is not authenticated. The user is redirected to the Authentication Server.
1

The Authentication Checker is a component of the Portal Toolkit (pTk) that recognizes the type of device.

Copyright IBM Corp. 2001

111

3. The authentication server prompts the user for a username and password in order to validate them. The other possibility is the authentication server verifies the IP address given to the user at sign-on with the Radius server. 4. User enters the appropriate information if prompted. The Authentication Server validates that he or she is an authorized user, and stores information in the TISM database. 5. The user is authenticated and redirected back to the portal page. Now the checker acknowledges the users authentication and permits them to enter the site. 6. A user session is opened that contains all the profiling information stored in the database. As you know, TPSM supports multiple types of devices. Depending on the type, its necessary to change the configuration. There are mainly two types of devices; the internet browsers, such as Microsoft Internet Explorer and Netscape, and the wireless browsers such as mobile telephones and PDAs. Because these are handled very differently, this chapter is divided into two sections.

6.1 Authentication stages


The server attempts to authenticate users in two stages. These stages are: Stage 1 tries to identify the user with information extracted from the HTTP request headers. It supports: - Authentication by source IP address - Authentication by source IP address forwarded in any HTTP header - Authentication by username forwarded in any HTTP header (or MS-ISDN) Stage 2 prompts the user for login password if stage 1. - Basic HTTP authentication - Authentication form using http or https: That form is device dependant. it can be HTML, WML, etc.

112

Introducing Tivoli Personalized Services Manager 1.1

6.2 Authentication modes


The server authenticates in two modes: Multi-domain mode: the authentication process is distributed. Each content server is protected by the Authentication Checker. There is one central Authentication Server, or several, that receives requests for authentication, processes them, and redirects them to the request server. Single-domain mode: The authentication process is entirely done in the Checker. This mode is good for limited devices, such as WAP devices that dont support redirection. It is also preferable when the authentication process is delegated to an external component such as a WES authentication proxy. This mode can be faster but has the limitations that appear in the next table:
Table 11. Limitations of single-domain mode authentication

Multi-Domain Mode Single Sign On (cookie) Stage 1: by IP address in IP header Stage 1: by IP address in HTTP header Stage 1: by Username or MSISDN in HTTP header Stage 1: no Stage 2: Form Stage 2: Basic HTTP External Partners Premium Content Servers Session load balancing Assumption: Yes Yes Yes Yes Yes Yes Yes Yes Yes Checker does not need connectivity to DB

Single-Domain Mode No Yes Yes Yes Yes No Yes No Yes Checker needs connectivity to DB

6.3 Internet world


The differences between the internet world and the Wireless World is the amount of space available on the screen to display information and the protocols. Due to this, the authentication server uses a pTk component

Chapter 6. Subscriber authentication and access control

113

Authentication Checker that determines the type of device attempting to access the server. This information is read from the user- agent, at which point the Authentication Checker searches for the proper configuration file to display information for that devices needs, and to decide what type of authentication it needs, such as HTML or WAP. The authentication server for the Internet World uses cookies. It creates a JavaBeans session when the user signs on to access authentication information. There are some pTK commands that can use the session to gather authentication information. You should be able to work for internet access, so if you write in the browser the next URL http://hostname:8080/authentication/server, it will bring up a dialog as shown in Figure 81.

Figure 81. Authentication form

The structure of this page can be changed. Section 6.3.1, Structure of Authentication Server on page 114 has a complete guide to configuring this page.

6.3.1 Structure of Authentication Server


The important parts of the Authentication Server when its used for internet access are shown in Figure 82 on page 115.

114

Introducing Tivoli Personalized Services Manager 1.1

Figure 82. Active components of the Authentication Server for internet access

The authentication file system is divided in two: 1. Content, where the structure of the page is located. 2. Servlet, where the configuration files and Java code for the authentication server is. The content file system has different parts, as you see in Figure 82: a. css contains the default style sheet for the authentication server. b. en contains the English JSPs. c. images contains all the pictures files for the authentication server. d. ja contains all the Japanese JSPs. The JSP used for internet access is authentication.jsp, and as you can see in the next screen it is a form with a Java Bean that creates a session with the information passes.

Chapter 6. Subscriber authentication and access control

115

The bolded lines are the important code for authentication.jsp. As you can see at the beginning, we have the Java code for importing the classes and creating the Java Bean for authentication. In the second part of the code, we have the form with the auth JavaBeans methods for verifying the authentication in the server and the redirection to the page where the authentication was requested from.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <%@ page import="java.util.*,java.text.*" %> <jsp:useBean id="auth" class="com.tivoli.tsm.authentication.AuthFormBean" scope="request" /> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <TITLE>&nbsp;TSM Authentication Page&nbsp;</TITLE> <LINK rel="stylesheet" href="/css/default.css" type="text/css"> </head> <BODY text="#000000" bgcolor="#FFFFFF" link="#000000" vlink="#000000" alink="#000000"> <TABLE border="0" cellspacing="0" cellpadding="0" > <TR> <TD><A href="http://www.tivoli.com"><IMG src="/images/tivoli_logo.gif" ALT="Tivoli" border="0" ></A></TD> <TD ><IMG width="1000" height="50" src="/images/spacer.gif" ></TD> </TR> <TR><TD>&nbsp;</TD><TD>&nbsp;</TD></TR> </TABLE> <TABLE border="0" cellspacing="0" cellpadding="0" width="100%"> <TR> <TD valign="top" align="left"> <TABLE border="0" cellspacing="0" cellpadding="0" width="250"> <TR><TD bgcolor="#6666CC"><FONT color="#FFFFFF"><b>Personalize</b></font></TD></TR> <TR><TD ><A href="/perso/home">My Portal</A></TD></TR> <TR><TD bgcolor="#6666CC"><FONT color="#FFFFFF"><b>Shopping</b></font></TD></TR> <TR><TD ><a href="http://www.gap.com/onlinestore/gap/default.htm">GAP</a></TD></TR> <TR><TD ><a href="http://www.laredoute.fr">La Redoute</a></TD></TR> <TR><TD bgcolor="#6666CC"><FONT color="#FFFFFF"><b>Books</b></font></TD></TR> <TR><TD ><a href="http://www.amazon.com">Amazon</a></TD></TR> <TR><TD bgcolor="#6666CC"><FONT color="#FFFFFF"><b>Auction</b></font></TD></TR> <TR><TD ><a href="http://www.ibazar.com">iBazar</a></TD></TR> <TR><TD ><a href="http://www.aucland.com">Aucland</a></TD></TR> <TR><TD >&nbsp;</TD></TR> <TR><TD >&nbsp;</TD></TR> <TR ><TD height="200">&nbsp;</TD></TR> </TABLE> </TD> <TD valign="top" align="left" > <TABLE border="0" cellspacing="5" cellpadding="0"> <tr><td colspan="2" align="center"><IMG src="/images/ibmbanner.gif"></td></tr> <tr><td>&nbsp;</td></tr>

116

Introducing Tivoli Personalized Services Manager 1.1

<tr bgcolor="#6666CC"><td align="center" colspan="2"><H2><font color="#FFFFFF">Please log-in...</font></H2></td></tr> <tr bgcolor="#FFFFFF">&nbsp;</td></tr> <TR><TD valign="top" align="center" > <FORM action="<%= auth.getAuthenticationServerURL() %>" method="get"> <TABLE border="1" cellspacing="1" cellpadding="0" bgcolor="#EEEEEE"> <TR> <TD align=left>&nbsp;Your User Name&nbsp;</TD> <TD align=left><INPUT type="text" name="SMSusername" value="<%= auth.getUserName() %>" size="20" maxlength="30"></TD> <TD align=left>&nbsp;</TD> </TR> <TR> <TD align=left>&nbsp;Your Password&nbsp;</TD> <TD align=left><INPUT type="password" name="SMSpassword" value="" size="20" maxlength="30"></TD> <TD align=right><INPUT type="submit" name="SMSsubmit" value="GO" enctype="application/html-form-urlencoded"></TD> </TR> </TABLE> <INPUT <INPUT <INPUT <INPUT type="hidden" type="hidden" type="hidden" type="hidden" name="SMSkey" name="SMSrealm" name="SMSurl" name="SMStiers" value="<%=auth.getKeyIndex()%>"><P> value="<%=auth.getRealm()%>"><P> value="<%=auth.getComeBackURL()%>"><P> value="<%=auth.getTierList()%>"><P>

</FORM> </TD></TR> </TABLE> </TD></TR> </TABLE> </BODY> </HTML>

The servlet file system contains the configuration files for the servlets and the Java code (jar files). The important files for internet access are: Authentication.properties (Section 6.3.1.1, Authenticator.properties on page 118) DBPool.properties (Section 6.3.1.2, DBPool.properties on page 121) DefaultAuthenticator.properties (Section 6.3.1.3, DefaultAuthenticator.properties on page 122) IE.properties (Section 6.3.1.4, IE.properties on page 131) Nav4.properties (Section 6.3.1.5, Nav4.properties on page 131) We are going to explain how each of them works.

Chapter 6. Subscriber authentication and access control

117

The authentication system of TPSM uses a server-side plug-in architecture. Two plug-ins are delivered with TPSM. One of them is for browsers: DefaultAuthenticator.properties for Web Browsers Its possible to adapt this plug-in to the environment where it is going to be used. The Authentication Checker and Authentication Server both use it. The other is Authenticator.properties. 6.3.1.1 Authenticator.properties The Authenticator.properties file defines the authentication plug-ins that are loaded when the application server starts. It specifies a property file for each authenticator. This is the code used for internet access:
def.authenticator.class=com.tivoli.tsm.authentication.DefaultAuthenticator def.authenticator.properties=com.tivoli.tsm.authentication.DefaultAuthenti cator

As you realize, the second part of the assignment is the directory and file. The file also specifies the different types of devices, their HTTP signatures, and their associated Authentication plug-ins. The following is an example and definition for browsers.
# IE 4/5 Web browser ie.device.signature.user-agent=MSIE ie.device.properties=properties.com.tivoli.tsm.authentication.IE ie.device.authenticator=def # Netscape Navigator 4 Web browser nav.device.signature.user-agent=Mozilla nav.device.properties=properties.com.tivoli.tsm.authentication.Nav4 nav.device.authenticator=def

Imagine that a new browser appears and you need to configure for TPSM. You have to get the user agent that it uses, in these cases, MSIE and Mozilla. You then must create a new configuration file. The default files should have been configured for Microsoft Explorer and Netscape as shown in Section 6.3.1.4, IE.properties on page 131 and Section 6.3.1.5, Nav4.properties on page 131. Because its going to use the DefaultAuthenticator.properties because its not a wireless device, define it as authenticator def. The file also specifies the path used to log the authentication tickets delivery:
authentication.log.name=/var/adm/logs/authentication.log

118

Introducing Tivoli Personalized Services Manager 1.1

When the authentication is delegated to the WES authentication proxy, the Authenticator.properties file must be replaced by the Authentication.properties.wes. This change must be done at the end of installation, before application servers start. The following screen is the Authenticator.properties file.

Chapter 6. Subscriber authentication and access control

119

###################################################################### # TSM Authentication properties # This file is used by the class com.tivoli.tsm.Server # This file lists # - the different authenticators and their property file # - the different devices and their signature # - the TSM database connection pool properties ###################################################################### # List of authenticators # ---------------------# The syntax is : # <authenticator index>.authenticator.class=<classname> # <authenticator index>.authenticator.properties=<authenticator properties name> # ###################################################################### # Default Authenticator is good for every WEB devices with a reasonable HTTP support # It also supports Premium content access control ###################################################################### # def.authenticator.class=com.tivoli.tsm.authentication.DefaultAuthenticator def.authenticator.properties=properties.com.tivoli.tsm.authentication.DefaultAuthen ticator # ###################################################################### # WAP Authenticator can work with IBM and Nokia WAP gateway # It may work too with Ericsson gateway (requires some tuning) ###################################################################### wap.authenticator.class=com.tivoli.tsm.authentication.WapAuthenticator wap.authenticator.properties=properties.com.tivoli.tsm.authentication.WapAuthentica tor # ###################################################################### # List of devices # --------------# The syntax is : # <device index>.device.signature.<HTTP header name>=<HTTP header string> # <device index>.device.properties=<device profile properties name> # <device index>.device.authenticator=<authenticator index> # ###################################################################### # # Devices definition for TISM w/o WES # ###################################################################### # WAP gateway 7110.device.signature.user-agent=Nokia7110/1.0 7110.device.properties=properties.com.tivoli.tsm.authentication.Nokia7110WapDevice 7110.device.authenticator=wap # WAP gateway R320.device.signature.user-agent=R320 R320.device.properties=properties.com.tivoli.tsm.authentication.R320WapDevice R320.device.authenticator=wap # WAP gateway

120

Introducing Tivoli Personalized Services Manager 1.1

R380.device.signature.user-agent=R380 R380.device.properties=properties.com.tivoli.tsm.authentication.R380WapDevice R380.device.authenticator=wap # WAP gateway nokiaemul.device.signature.user-agent=Nokia nokiaemul.device.properties=properties.com.tivoli.tsm.authentication.NokiaEmulWapDe vice nokiaemul.device.authenticator=wap # IE 4/5 Web browser ie.device.signature.user-agent=MSIE ie.device.properties=properties.com.tivoli.tsm.authentication.IE ie.device.authenticator=def # Netscape Navigator 4 Web browser nav.device.signature.user-agent=Mozilla nav.device.properties=properties.com.tivoli.tsm.authentication.Nav4 nav.device.authenticator=def # Default Web browser default.device.signature.user-agent= default.device.properties=properties.com.tivoli.tsm.authentication.DefaultDevice default.device.authenticator=def # ###################################################################### # Authentication log file path ###################################################################### # authentication.log.name=/var/adm/logs/authentication.log

6.3.1.2 DBPool.properties DBPool.properties is used by the authentication server and pTk. It specifies the connection to the TISM database. These are the standard JDBC parameters:
JDBC.dbDriver=oracle.jdbc.driver.OracleDriver

This line specifies the driver, in this example, Oracle.


JDBC.dbUser=stage_master JDBC.dbPassword=oracle

This is the user and password to connect to TISM database. The following parameters tune the JDBC Connection pool used by the authentication and pTk.
MaxDBConnections=5 MinDBConnections=2

The following specifies the TISM data model level.


tsm.level=4.0

Chapter 6. Subscriber authentication and access control

121

The following screen shows the DBPool.properties file.

###################################################################### # database connection management parameters ###################################################################### # For Oracle RDBM # JDBC driver name JDBC.dbDriver=oracle.jdbc.driver.OracleDriver # # RDBM server JDBC URL JDBC.dbConnect=jdbc:oracle:thin:@itso14.dev.tivoli.com:1521:ispb # ###################################################################### # For DB2 RDBM # JDBC.dbDriver=COM.ibm.db2.jdbc.net.DB2Driver # JDBC.dbConnect=jdbc:db2://kriek.lagaude.ibm.com:1521/ispb # ###################################################################### # RDBM user name JDBC.dbUser=stage_master # JDBC.dbUser=stage_user # # RDBM user password JDBC.dbPassword=oracle # # Connection pool parameters MaxDBConnections=5 MinDBConnections=2 # ###################################################################### # TISM DB level : # It is used to provide compatibility with DB from TSM 2.x to TISM 1.1 # 2.1 | 3.0BETA | 3.0 | 4.0 # 3.0 = TISM 1.0 # 4.0 = TISM 1.1 ###################################################################### tsm.level=4.0

6.3.1.3 DefaultAuthenticator.properties DefaultAuthenticator.properties is the configuration file of the DefaultAuthenticator plug-in:


authentication.multidomain.enabled=yes|no

When this parameter is yes, the multi-domain mode is enabled. This means that a central authentication server is used, and users who are not authenticated are redirected to it. This is the most powerful authentication mode that can be used when applications host in different domains and share a central authentication server. For more information, see Figure 6.2, Authentication modes on page 113.

122

Introducing Tivoli Personalized Services Manager 1.1

In multi-domain mode, the following parameter specifies the URL of the authentication server (not including the URL path).
authentication.server.url=http://hostname:8080

In multi-domain mode, the following parameter specifies the URL path of the authentication server.
authentication.form.path=/authentication/en/authentication.jsp

The next parameters define the type of authentication stage. For more information, see Figure 6.1, Authentication stages on page 112.
authentication.type1=ip|username|no authentication.type1.header=ip|<HTTP header name>

The first parameter defines the type of authentication for stage 1. If no value is specified, it uses authentication stage 2 only. If the value IP is specified, it tries to identity a dial-up user by their IP Address in the Radius Active Session Table. If the value username is used, it searches for that username in the specified HTTP Header. The syntax of the username cannot be username or username@realm. The second parameter specifies the header name where the IP address of the username must be fetched. IP means the IP address contained within the original IP header. The following parameter specifies the type of authentication for stage 2; by a HTML (or WML) form, or by a basic HTTP authentication.
authentication.type2=basic|form

The next parameter covers Single Sign-On Cookies. For more information, see Figure 6.2, Authentication modes on page 113.
authentication.sso.enabled=yes|no

If this parameter is set to yes, the central authentication server sets a Single Sign-On Cookie to avoid prompting the user for several successive authentications. An SSO Cookie only works in multi-domain mode.

Chapter 6. Subscriber authentication and access control

123

The following parameters define the SSO Cookie more in-depth.


sso.cookie.name=sauth sso.cookie.path=/authentication authentication.cookie.maxage=-1 suthentication.cookie.invalidation.delay=3600 authentication.cookie.encrypted=yes|no authentication.key=1,...,32

The above parameters specifies the Single Sign On Cookie. A negative maxage means a session cookie (lost when the browser is stopped). If the cookie is encrypted, a key number (from 1 to 32) must be specified. The next parameter specify the default URL after the authentication. This is not typically used.
authentication.openurl=http://www.afterauthentication.com

If the user logs off, the next parameter specifies where the user goes.
authentication.logout.url=http://www.whenlogout.com

If the user doesnt pass a Realm, the next parameter specifies the default one he or she will be assigned to.
authentication.default.realm=IBM

These parameters must be un-commented when a cluster configuration is used, such as a configuration with an eND with several portal servers in parallel. This enables TISM session level load balancing as shown in Figure 83 on page 125.

124

Introducing Tivoli Personalized Services Manager 1.1

Figure 83. Cluster configuration

On the authentication checker side, the Webmaster must specify the list of premium services ids hosted by a thin server, and provide a list of URL paths prefixes for each of them as shown in Figure 84.

Figure 84. Premium configuration

Chapter 6. Subscriber authentication and access control

125

The next parameters are for the premium server.


authentication.premium.tierids= 08004, 08005, .. authentication.premium.tierurls.08004=/premium1 authentication.premium.tierurls.08005=/premim2

This parameter specifies the URL where a non authorized user is sent when he or she tries to attend to a premium server.
premium.accessrejected.url=http://hostname:1080/premium/auth.html

For setting the logs:


premium.access.log=no|yes premium.access.logname=/var/adm/logs/premium.log

The authentication profiler class specifies an optional profiler class that can be used by the Webmaster to write dynamic profiling rules. Profiling rules are invoked at each user session start to dynamically add additional properties to that user. It can be used to specify targeting rules for promotions, to count user sessions, to make statistics, etc.
authentication.profile.class=<profile class name>

The following screen shows the DefaultAuthenticator.properties file.

126

Introducing Tivoli Personalized Services Manager 1.1

###################################################################### # TSM DefaultAuthenticator properties ###################################################################### # ###################################################################### # Multi-domain or Single-Domain authentication # # - Multi-domain : allows Single Sign-On (SSO) on several # domains, including domains hosted by tiers (premium content) # It requires that devices supports HTTP redirect properly # # - Single-domain : allows SSO on a single ISP domain # It does not use HTTP redirect since the authenticaiton is done # directly in the Checkers. # So it is faster, and good for dummy devices (I won't give name here ;-) # It has limited functions : no SSO, # authentication.type2=basic is forced # It can be a good solution to work with WES authentication proxy # or Tivoli Policy director. # # Multi-domain is the default, allowed values : yes | no ###################################################################### authentication.multidomain.enabled=yes # ###################################################################### # authentication server URL : http://hostName:port ###################################################################### # authentication.server.url=http://thklamberton.lagaude.ibm.com authentication.server.url=http://itso14.dev.tivoli.com:8080 # ###################################################################### # authentication server path ###################################################################### authentication.server.uri=/authentication/server # ###################################################################### # authentication form file path ###################################################################### authentication.form.path=/authentication/en/authentication.jsp # ###################################################################### # 1st authentication type (w/o login/pwd prompting) : # authentication.type1 = ip | username | no # # it must also specify the packet header which contains that information : # authentication.type1.header = ip | <any HTTP header name> # # if authentication.type1=username is used take care of the other property : # authentication.force.username which forces a test username # ###################################################################### authentication.type1=username

Chapter 6. Subscriber authentication and access control

127

authentication.type1.header= # # Values to work with WES Authentication proxy : # # authentication.type1=username # authentication.type1.header=X-IBM-PVC-User # ###################################################################### # 2nd authentication type (with login/pwd prompting): # basic | form : form is supported only in multi-domain mode : # (authentication.multidomain.enabled=yes) # # The 2nd authentication type is used if the 1st one fails or is not active # ###################################################################### authentication.type2=form # ###################################################################### # When single sign-on is enabled, the authenticator sets # a SSO cookie "sauth" which can be used by later authentications # It avoids prompting twice the user with authentication form # # This parameter only applies when # "authentication.type2=form" and "authentication.multidomain.enabled=yes" # # SSO is not available in single domain # # Allowed values : yes | no ###################################################################### authentication.sso.enabled=yes # ###################################################################### # Single Sign On cookie parameters # only required if "authentication.sso.enabled=yes" ###################################################################### # SSO cookie name authentication.cookie.name=sauth # SSO cookie path authentication.cookie.path=/authentication # SS0 Cookie maxage : positive value in second, or negative values means non persistant authentication.cookie.maxage=-1 # SSO Cookie invalidation delay : positive value in second # After that period of time, even replayed (by a hacker) the cookie # is rejected authentication.cookie.invalidation.delay=3600 # # Use encrypted SSO cookie : yes | no # Turn to off when single-domain authentication is used : it avoids # useless encryption/decryption authentication.cookie.encrypted=yes

128

Introducing Tivoli Personalized Services Manager 1.1

# # Key index for cookie encryption authentication.key=5 # ###################################################################### # Default redirection URL after authentication # This default is usually overridden by the URL of the service # which requests the authentication ###################################################################### authentication.openurl=http://www.ibm.com # ###################################################################### # Redirection URL after Single Sign On logout : # It can be a welcome page, not personalized ###################################################################### authentication.logout.url=http://www.tivoli.com # ###################################################################### # Default realm ###################################################################### authentication.default.realm=IBM # ###################################################################### # Authentication server uses a pool of prepared statements # Pool size : min, max nbr of statements ###################################################################### accessbean.statementpool.min = 1 accessbean.statementpool.max = 5 # ###################################################################### # For test : force a username or username@realm # (uncomment to force a user name) # # to use that facility the property above must be set : # authentication.type1=username # ###################################################################### # authentication.force.username=TEST1@IBM # ###################################################################### # Session Load Balancing Parameters : # >> Parameters for Checker side only # # >> Session load balancing can be activated if the portal is # >> deployed on a cluster of servers with eND (WebSphere Perf. Pack) # >> # >> It is perticularly useful in environments where eND sticky port cannot # >> be used, such as with a WAP gateway or a proxy that hides user-agent IP address # >> # >> To enable the load balancing : specify here the server cluster # >> hostname (or IP address), and

Chapter 6. Subscriber authentication and access control

129

# >> the server private hostname (or IP address) . # >> # >> It requires that the portal pages are deployed using relative # >> hyperlinks (no hostname in the links) or server private hostname. ###################################################################### # authentication.cluster.hostname=cluster.ibm.com # authentication.private.hostname=myhost.ibm.com ###################################################################### # PREMIUM CONTENT Parameters : # >> These parameters are only necessary on Checker side # >> Each premium content server contains the definition of its tiers # >> # >> On Authentication server side the TSM data base contains also the # >> tiers definition, as defined with the TSM director tool # >> # >> These are optional parameters : # >> if ommitted it runs simple authentication w/o # >> premium content access control ###################################################################### # The tier ids of the premium content protected by this Checker # If more than one tier, use ',' as separator ###################################################################### authentication.premium.tierids=08004 # authentication.premium.tierids=08004,08005 ###################################################################### # List of URL's patterns protected by each tier # This list must only contain absolute path (starting with /) # When several URL's patterns for one tier, use ',' as separator # /perso is not in that list : it is not subject to premium content access control ###################################################################### authentication.premium.tierurls.08004=/premium # authentication.premium.tierurls.08005=/dummysample1,/dummysample2,/dummysample3 ###################################################################### # This URL is displayed when the access to a premium content is # rejected. # It can be an error page, selfcare, a portal page,... # It is recommended to use a full URL here ###################################################################### premium.accessrejected.url=http://itso14.dev.tivoli.com:10080/premium/premiumerror. html ###################################################################### # Log the access to a premium service into file... ###################################################################### premium.access.log=no premium.access.logname=/var/adm/logs/premium.log ###################################################################### # Optional Profiler class : if specified it is called at each session # start. It allows the portal WebMaster to specify rules which # create dynamic User profile propeties # see com.tivoli.tsm.perso.filter.SampleProfiler ###################################################################### authentication.profiler.class=com.tivoli.tsm.perso.filter.SampleProfiler

130

Introducing Tivoli Personalized Services Manager 1.1

6.3.1.4 IE.properties The IE.properties is the properties for Internet Explorer browsers as seen in the following screen.

###################################################################### # TSM DeviceType properties for authentication and personalization ###################################################################### # device type name # It is structured like a file path : # / is the root # /WEB is the sub-root for every HTTP/HTML browsers # /WAP is the sub-root for every WAP devices ###################################################################### # device.type=/WEB # ###################################################################### # Content-type's accepted by the device separated by , # # The 1st one in the list is the main content type, # it plays a special role in the component framework : it is the content # type forced by the LayoutComponent's ###################################################################### # device.content.types=text/html,text/plain,image/gif,image/jpeg # ###################################################################### # device presentation properties # (-1 means unknown value) ###################################################################### # device.color.nbr=-1 device.column.nbr=-1 device.line.nbr=-1 # ###################################################################### # Any ISP defined properties ... ###################################################################### #

6.3.1.5 Nav4.properties Nav4.properties is the properties for Enterprise Navigator browsers, as seen in the following screen.

Chapter 6. Subscriber authentication and access control

131

.
###################################################################### # TSM DeviceType properties for authentication and personalization ###################################################################### # device type name # It is structured like a file path : # / is the root # /WEB is the sub-root for every HTTP/HTML browsers # /WAP is the sub-root for every WAP devices ###################################################################### # device.type=/WEB # ###################################################################### # Content-type's accepted by the device separated by , # # The 1st one in the list is the main content type, # it plays a special role in the component framework : it is the content # type forced by the LayoutComponent's ###################################################################### # device.content.types=text/html,text/plain,image/gif,image/jpeg # ###################################################################### # device presentation properties # (-1 means unknown value) ###################################################################### # device.color.nbr=-1 device.column.nbr=-1 device.line.nbr=-1 # ###################################################################### # Any ISP defined properties ... ###################################################################### #

The next parameter specifies the device type and the user agent. This property is mandatory. This type is used by pTk portlet framework to generate the content that fits each device. The device type is hierarchal (Figure 85 on page 133):
device.type=/WEB/IE

132

Introducing Tivoli Personalized Services Manager 1.1

Figure 85. Hierarchal device type

The next parameter is mandatory and specifies the type of content supported by that device. The first content type in the list must be the primary markup language used by thin device. It is used by the portlet framework.
device.content.types=text/html,text/plain,image/gif,image/jpeg

6.4 Wireless World


Figure 86 on page 134 shows how the Wireless devices work when they access the TPSM.

Chapter 6. Subscriber authentication and access control

133

Figure 86. WAP architecture

Mobile WAP Devices need to access the internet through a wireless network. To do this, the user dials the NAS (Network Access Server), which prompts the authentication form, user, and password. The NAS is a gateway between networks and the internet that allows the users to connect to the ISP. Once the user is connected to the internet, he or she goes through the WAP Gateway that connects the WAP Protocol to HTTP Protocol to the Portal Web Server. Once users are connected, they can access their portal pages. At this point the Authentication Checker determines if the user has accessed before and prompts authentication for TPSM. The authentication can only be through configuration with the TPSM.

134

Introducing Tivoli Personalized Services Manager 1.1

The Wireless World has its own features that make the configuration and personalization of TPSM different. The main features are: Protocol WAP Programming Language; WML, WML Script, XML Different infrastructure; Wireless Gateway, mobiles, PDAs These features have important consequences that affect configuration. The main consequences are: Different ways to process the data, so different ways to authenticate Different way to program the JSPs Different configuration of servlets Besides all these general differences are some differences depending on the infrastructure that the customer has, such as if the customer has a gateway or not, a RADIUS server or not, and the type of gateway. Authentication is the same as that for Internet World in some cases. The authentication server has a pTk component called Authentication Checker that determines the type of device that its trying to access. Once that it knows the type of device, the Authentication Server treats it as the device needs. To do this, the servlets must be configured for the type of infrastructure.

6.4.1 Structure of Authentication Server


The important parts of the Authentication Server when its used for wireless internet access are shown in Figure 87 on page 136. The authentication file system is divided in two parts: 1. Contents, where the JSPs are stored. 2. Servlets, where all the configuration files and servlets for the authentication server are stored.

Chapter 6. Subscriber authentication and access control

135

Figure 87. Active components of the Authentication Server (mobile internet)

The content file system has different parts, as you can see in Figure 87: css contains the default style sheet for the authentication server. en contains all the English JSPs. images contains all the pictures for the authentication server. ja contains all the Japanese JSPs. The JSP used for mobile internet is wapauthentication.jsp, and is a form in WML with a Java Bean that creates a session. The default wapauthenticator.jsp sometimes needs to be changed by hand in some fields because it doesnt get all the information. This is based on the mobile device. Keep this in mind if you notice odd behavior while configuring an application, and the /usr/WebSphere/AppServer/logs/authentication.log appears as the user is using the wapauthentication.jsp, then you need to update the default. The next screen is an example of wapauthentication.jsp, but the file has been modified to be able to work for the business cases.

136

Introducing Tivoli Personalized Services Manager 1.1

<%@ page contentType="text/vnd.wap.wml" import="java.util.*,java.text.*,com.tivoli.tsm.authentication.*"%> <jsp:useBean id="auth" class="com.tivoli.tsm.authentication.AuthFormBean" scope="request" /> <?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <template> <do type="prev" name="back" label="Back"> <prev/> </do> </template> <card id="login" title="TISM Authentication"> <p> User: <input type="text" title="userid" name="userid"/> Password : <input type="password" title="password" name="password"/> <anchor>Submit <go href="<%= auth.getAuthenticationServerURL() %>" method="get"> <postfield value="$(userid)" name="SMSusername" /> <postfield value="$(password)" name="SMSpassword" /> <postfield value="<%=auth.getKeyIndex()%>" name="SMSkey" /> <postfield value="ITSOCHANNEL" name="SMSrealm" /> <postfield value="http://itso14.dev.tivoli.com:16080/perso/home" name="SMSurl" /> <postfield value="<%=auth.getTierList()%>" name="SMStiers" /> </go> </anchor> </p> </card> </wml>

The bolded lines in this JSP are vital to understanding how TPSM works. In that code, the JSP sets the type of mime type and creates the Java Bean auth to collect the data needed for authentication. The rest of the code is a WML form. As you can see the SMSrealm and SMSurl has been changed by hand. These fields are the REALM and the URL to go back to when the user is authenticated that we used because we dont pass these parameters. The configuration for the servlets will be explained in the sample business cases because it depends on the environment.

Chapter 6. Subscriber authentication and access control

137

6.4.2 Business case 1


This business case is for a company that already has a NAS server. The TPSM will be installed on it to authenticate the users. The company doesnt use a Wireless Gateway, so everything is sent and received in WML. 6.4.2.1 Configuration The configuration files that need to be changed are: Authentication.properties WapAuthentication.properties Device.properties (This is an example of properties file for the different type of devices, Nokia 7110, Ericsson 320, etc.) The files were changed as follows. Authentication.properties Authentication.properties is a properties file where the type of authenticators and the different type of devices supported are defined. As you can see at the beginning of the file, there is the definition of the two authenticators; DefaultAuthenticator and WapAuthenticator. Both are the Java classes that manage the authentication depending on the type of device. After the definition of authenticators, you have the type of devices supported and the authenticator that each of them requires. If you see an example of type of device, you have: Definition of user - agent Path of the properties file Type of authenticator required At the end of the file is the log file location. WapAuthentication.properties WapAuthentication.properties is a properties file to set the way to make the authenticate mobile internet devices. This file configures the WAPAuthenticator.properties file. It follows the same syntax and DefaultAuthenticator.properties file. This section provides information to tune the parameters.
authentication.multidomain.enabled = yes

138

Introducing Tivoli Personalized Services Manager 1.1

The recommended value is no because it can be used when devices do not support HTTP redirect properly, but we set it as yes because the mobile devices that we are using support HTTP redirection. Because we dont have a gateway, we set:
authentication.type1 = no authentication.type2 = form

These parameters disable auto logon and prompt the user with a log-in WML form.
authentication.sso.enabled = no

Although we are not using a gateway at the moment, we set this parameter as no. Many WAP gateways do not support cookies. In that case, it is better to disable the SSO Cookie. The IBM WAP gateway supports session cookies, and can be used for SSO.
authentication.openurl=http://www.ibm.com

If the servlet doesnt receive any ComeBackURL, it uses this one.


authentication.default.realm=IBM

If the servlet doesnt receive the REALM that is using, it would get this one as default. See the next screen for the WAPAuthentication.properties code.

Chapter 6. Subscriber authentication and access control

139

###################################################################### # TSM DefaultAuthenticator properties ###################################################################### # ###################################################################### # Multi-domain or Single-Domain authentication # # - Multi-domain : allows Single Sign-On (SSO) on several # domains, including domains hosted by tiers (premium content) # It requires that devices supports HTTP redirect properly # # - Single-domain : allows SSO on a single ISP domain # It does not use HTTP redirect since the authenticaiton is done # directly in the Checkers. # So it is faster, and good for dummy devices (I won't give name here ;-) # # Multi-domain is the default, allowed values : yes | no ###################################################################### authentication.multidomain.enabled=yes # ###################################################################### # authentication server URL : http://hostName:port ###################################################################### authentication.server.url=http://itso14.dev.tivoli.com:8080 # ###################################################################### # authentication server path ###################################################################### authentication.server.uri=/authentication/server # ###################################################################### # authentication form file path ###################################################################### authentication.form.path=/authentication/en/wapauthentication.jsp # ###################################################################### # 1st authentication type (w/o login/pwd prompting) : # authentication.type1 = ip | username | no # # it must also specify the packet header which contains that information : # authentication.type1.header = ip | <any HTTP header name> # # if authentication.type1=username is used take care of the other property : # authentication.force.username which forces a test username # authentication.type1=no #authentication.type1.header = X-Network-Info # # IBM WAP gateway of Nokia enterprise gateway #authentication.type1.header=X-Network-Info # Ericsson WAP gateway 1.1 # authentication.type1.header=Cookie

140

Introducing Tivoli Personalized Services Manager 1.1

###################################################################### # 2nd authentication type (with login/pwd prompting): # basic | form # The 2nd authentication type is used if the 1st one fails or is not active ###################################################################### authentication.type2=form # ###################################################################### # When single sign-on is enabled, the authenticator sets # a SSO cookie "sauth" which can be used by later authentications # It avoids prompting twice the user with authentication form # # This parameter only applies when "authentication.type=form" is used # when "authentication.type=ip or basic" SSO is always enabled ###################################################################### authentication.sso.enabled=no # ###################################################################### # Single Sign On cookie parameters ###################################################################### # SSO cookie name authentication.cookie.name=sauth # SSO Cookie path authentication.cookie.path=/authentication # SSO Cookie maxage : positive value in second, or negative values means non persistant authentication.cookie.maxage=-1 # SSO Cookie invalidation delay : positive value in second # After that period of time, even replayed (by a hacker) the cookie # is rejected authentication.cookie.invalidation.delay=3600 # # Use encrypted SSO cookie : yes or no authentication.cookie.encrypted=yes # # Key index for SSO cookie encryption authentication.key=5 # ###################################################################### # Default redirection URL after authentication ###################################################################### authentication.openurl=http://www.ibm.com # ###################################################################### # Default realm ###################################################################### authentication.default.realm=IBM # ###################################################################### # Use session context : yes/no # >> Using session context optimizes performances # >> In a Web server cluster (e.g. with eND), session context # must be used carefully : with eND sticky port, or WAS Advance Edition # clustering feature ###################################################################### authentication.session.used=yes

Chapter 6. Subscriber authentication and access control

141

###################################################################### # Authentication server uses a pool of prepared statements # Pool size : min, max nbr of statements ###################################################################### accessbean.statementpool.min = 1 accessbean.statementpool.max = 5 ###################################################################### # For test : force a username or username@realm # (uncomment to force a user name) # # to use that facility the property above must be set : # authentication.type1=username # ###################################################################### # authentication.force.username=TEST1@IBM

###################################################################### # PREMIUM CONTENT Parameters : # >> These parameters are only necessary on Checker side # >> Each premium content server contains the definition of its tiers # >> # >> On Authentication server side the TSM data base contains also the # >> tiers definition, as defined with the TSM director tool # >> # >> These are optional parameters : # >> if ommitted it runs simple authentication w/o # >> premium content access control ###################################################################### # The tier ids of the premium content protected by this Checker # If more than one tier, use ',' as separator ###################################################################### authentication.premium.tierids=08004,08005 # ###################################################################### # List of URL's patterns protected by each tier # This list must only contain absolute path (starting with /) # When several URL's patterns for one tier, use ',' as separator # /perso is not in that list : it is not subject to premium content access control ###################################################################### authentication.premium.tierurls.08004=/premium authentication.premium.tierurls.08005=/dummysample1,/dummysample2,/dummysample3 # ###################################################################### # This URL is displayed when the access to a premium content is # rejected. # It can be an error page, selfcare, a portal page,... # It is recommended to use a full URL here ###################################################################### premium.accessrejected.url=http://wap.yahoo.com

142

Introducing Tivoli Personalized Services Manager 1.1

####################################################################### # Log the access to a premium service into file... ###################################################################### premium.access.log=yes premium.access.logname=premium.log # # ###################################################################### # Optional Profiler class : if specified it is called at each session # start. It allows the portal WebMaster to specify rules which # create dynamic User profile propeties # see com.tivoli.tsm.perso.filter.SampleProfiler ###################################################################### authentication.profiler.class=com.tivoli.tsm.perso.filter.SampleProfiler

Device.properties The Device.properties is an example of properties file for devices. The explanation for this one is the same as IE.properties and Nav4.properties. Each type of WAP Device has its own type of file, so now we have an example. The first code line is a label for the device. After that, it sets the mime types supported and the presentation properties for the device. See the next screen for the code.

###################################################################### # TSM DeviceType properties for authentication and personalization ###################################################################### # device type label ###################################################################### device.type=/WAP/NokiaEmul # ###################################################################### # content types accepted by the device # # The 1st one in the list is the main content type, # it plays a special role in the component framework : it is the content # type forced by the LayoutComponent's ###################################################################### device.content.types=text/vnd.wap.wml,text/vnd.wap.wmlscript,application/vnd.wap.wm lc,application/vnd.wap.wmlscriptc,image/vnd.wap.wbmp # ###################################################################### # device presentation properties ###################################################################### device.color.nbr=2 device.column.nbr=20 device.line.nbr=5

Chapter 6. Subscriber authentication and access control

143

6.4.2.2 Example Here is the result of this configuration. When you write in the URL, http://hostname:8080/authentication/server, the first screen as shown in Figure 88 appears, where you write the userid and password. Once sent to the authentication server, the userid and password are checked and, if correct, the user will be redirected to the URL.

Figure 88. Example of navigation for business case 1

6.4.3 Business case 2


This business case is for a company that has a Nokia Gateway 1.1.1. It was tested with HTTP 1.1 devices. It can work with HTTP 1.2 devices, but we didnt include them in this redbook. 6.4.3.1 Configuration files We modified the WapAuthenticator.properties file from Business Case 1 was as shown in the next screen.

144

Introducing Tivoli Personalized Services Manager 1.1

###################################################################### # TSM DefaultAuthenticator properties ###################################################################### # ###################################################################### # Multi-domain or Single-Domain authentication # # - Multi-domain : allows Single Sign-On (SSO) on several # domains, including domains hosted by tiers (premium content) # It requires that devices supports HTTP redirect properly # # - Single-domain : allows SSO on a single ISP domain # It does not use HTTP redirect since the authenticaiton is done # directly in the Checkers. # So it is faster, and good for dummy devices (I won't give name here ;-) # # Multi-domain is the default, allowed values : yes | no ###################################################################### authentication.multidomain.enabled=yes # ###################################################################### # authentication server URL : http://hostName:port ###################################################################### authentication.server.url=http://itso14.dev.tivoli.com:8080 # ###################################################################### # authentication server path ###################################################################### authentication.server.uri=/authentication/server # ###################################################################### # authentication form file path ###################################################################### authentication.form.path=/authentication/en/wapauthentication.jsp # ###################################################################### # 1st authentication type (w/o login/pwd prompting) : # authentication.type1 = ip | username | no # # it must also specify the packet header which contains that information : # authentication.type1.header = ip | <any HTTP header name> # # if authentication.type1=username is used take care of the other property : # authentication.force.username which forces a test username # #authentication.type1=no authentication.type1.header = X-Network-Info

Chapter 6. Subscriber authentication and access control

145

# Ericsson WAP gateway 1.1 # authentication.type1.header=Cookie # ###################################################################### # 2nd authentication type (with login/pwd prompting): # basic | form # The 2nd authentication type is used if the 1st one fails or is not active ###################################################################### authentication.type2=form # ###################################################################### # When single sign-on is enabled, the authenticator sets # a SSO cookie "sauth" which can be used by later authentications # It avoids prompting twice the user with authentication form # # This parameter only applies when "authentication.type=form" is used # when "authentication.type=ip or basic" SSO is always enabled ###################################################################### authentication.sso.enabled=no # ###################################################################### # Single Sign On cookie parameters ###################################################################### # SSO cookie name authentication.cookie.name=sauth # SSO Cookie path authentication.cookie.path=/authentication # SSO Cookie maxage : positive value in second, or negative values means non persistant authentication.cookie.maxage=-1 # SSO Cookie invalidation delay : positive value in second # After that period of time, even replayed (by a hacker) the cookie # is rejected authentication.cookie.invalidation.delay=3600 # # Use encrypted SSO cookie : yes or no authentication.cookie.encrypted=yes # # Key index for SSO cookie encryption authentication.key=5 # ###################################################################### # Default redirection URL after authentication ###################################################################### authentication.openurl=http://itso14.dev.tivoli.com:16080/perso/samples # ###################################################################### # Default realm ###################################################################### authentication.default.realm=ITSOCHANNEL ###################################################################### # Use session context : yes/no # >> Using session context optimizes performances # >> In a Web server cluster (e.g. with eND), session context # must be used carefully : with eND sticky port, or WAS Advance Edition # clustering feature ######################################################################

146

Introducing Tivoli Personalized Services Manager 1.1

authentication.session.used=yes ###################################################################### # Authentication server uses a pool of prepared statements # Pool size : min, max nbr of statements ###################################################################### accessbean.statementpool.min = 1 accessbean.statementpool.max = 5 ###################################################################### # For test : force a username or username@realm # (uncomment to force a user name) # # to use that facility the property above must be set : # # authentication.type1=username ###################################################################### # authentication.force.username=TEST1@IBM

###################################################################### # PREMIUM CONTENT Parameters : # >> These parameters are only necessary on Checker side # >> Each premium content server contains the definition of its tiers # >> # >> On Authentication server side the TSM data base contains also the # >> tiers definition, as defined with the TSM director tool # >> # >> These are optional parameters : # >> if ommitted it runs simple authentication w/o # >> premium content access control ###################################################################### # The tier ids of the premium content protected by this Checker # If more than one tier, use ',' as separator ###################################################################### authentication.premium.tierids=08004,08005 # ###################################################################### # List of URL's patterns protected by each tier # This list must only contain absolute path (starting with /) # When several URL's patterns for one tier, use ',' as separator # /perso is not in that list : it is not subject to premium content access control ###################################################################### authentication.premium.tierurls.08004=/premium authentication.premium.tierurls.08005=/dummysample1,/dummysample2,/dummysample3 # ###################################################################### # This URL is displayed when the access to a premium content is # rejected. # It can be an error page, selfcare, a portal page,... # It is recommended to use a full URL here ######################################################################

Chapter 6. Subscriber authentication and access control

147

premium.accessrejected.url=http://wap.yahoo.com # ###################################################################### # Log the access to a premium service into file... ###################################################################### premium.access.log=yes premium.access.logname=premium.log # # ###################################################################### # Optional Profiler class : if specified it is called at each session # start. It allows the portal WebMaster to specify rules which # create dynamic User profile propeties # see com.tivoli.tsm.perso.filter.SampleProfiler ###################################################################### authentication.profiler.class=com.tivoli.tsm.perso.filter.SampleProfiler

6.4.3.2 Example screen The screens that appear upon entering the URL http://hostname:8080/authentication/server are the same as the ones from Business Case 1 as seen in Figure 88 on page 144.

148

Introducing Tivoli Personalized Services Manager 1.1

Chapter 7. Using Customer Care and Director Tool


The TISM Customer Care Component is the primary tool used for customer service. This application will be the first point of contact that Customer Service Representatives (CSRs) use to access customer information when the customer calls in. "Customers" are usually referred to as "subscribers" The Customer Care Component allows the CSR to: Enroll and manage consumer subscribers Primary Accounts Add, update, and remove consumer Child Accounts Enroll and manage business accounts and sub-accounts Add, update, and remove business subscribers The CSRs can view and update: - Account status - Personal information - Deals (i.e., service plans) - Method of payment - E-mail settings TISM is designed to support both consumer accounts and business accounts. Many of the processes described in this chapter are specific to one category or the other. The topic headings will tell you which is being covered. Consumer accounts consist of a primary subscriber/account and (optionally) a number of child subscribers. The primary account is responsible for all billing and payment. The child subscribers each have their own username and password, which gives the child a separate identity. The consumer account is created automatically when the subscriber is enrolled. Business accounts consist of a primary (top-level) account, (optional) sub-accounts, and subscribers. A CSR needs to create the business account before subscribers can be enrolled. Billing can be set up at the primary or sub-account level for business accounts.

Copyright IBM Corp. 2001

149

7.1 Assigning login IDs and access control profiles to CSRs


As a first step to be able to access the Customer Care, we created a Profile, which is associated with a REALM. Open a DOS Windows and run console.bat to start the TISM Administration Console. It will open a dialog box where you have to give the Administrator login and password (Figure 89).

Figure 89. The TISM Administration Console dialog box

The TISM Administration Console should be open now. Double click on Access Control, click on Profiles, right click on CSR, and choose add as shown in Figure 90.

Figure 90. TISM Administration Console

150

Introducing Tivoli Personalized Services Manager 1.1

Fill out the Profile Name field and click on the checkbox for the REALM that is going to administer the new role, then click the Add button as shown in Figure 91.

Figure 91. Add a New Access Role (1)

Fill in the fields in the window as shown in Figure 92, then click on Add.

Figure 92. Add a New Access Role (2)

Now we can see the profile that we have just created, as shown in Figure 93 on page 152.

Chapter 7. Using Customer Care and Director Tool

151

Figure 93. TISM Administration Console (1)

After we created a Profile, we now must create a Login to access the Customer Care. Right click on Login, then click on Add as shown in Figure 94.

Figure 94. TISM Administration Console (2)

152

Introducing Tivoli Personalized Services Manager 1.1

This will open the window shown in Figure 95. Fill out all the information. In the Access Profile, choose the one that you just have created, in our example CSR_ITSOCHANNEL.

Figure 95. Add a New Login Name

The Login we just created is shown in Figure 96 on page 154.

Chapter 7. Using Customer Care and Director Tool

153

Figure 96. TISM Administration Console (3)

7.2 Logging on to Customer Care


Customer Care Reps (CSRs) must be enrolled in the Customer Care system by an authorized administrator and assigned a login name and password. See the previous section for details. The CSRs login name and password must have an access control profile associated with them. This profile controls the realms and types of accounts that the CSR can access. For example, CSR #1 may be given an access control profile that allows access to (a)employee and (b)billable on ITSOchannel.com. CSR #2 may be given an access control profile that allows access to (a)employee, (b)billable, and (C)complementary on ITSOchannel.com and Tivoli.com.

154

Introducing Tivoli Personalized Services Manager 1.1

7.3 Log on steps


To log on, please follow the next steps: Launch the Customer Care Component on your computer:
http://itso14.dev.tivoli.com:14080/cc.html

On the Login panel, Enter Login Name and Password. This Login Name needs to be created with the Director Tool and have a REALM associated with it. Press OK as shown in Figure 97.

Figure 97. Customer care logging page

When you are successfully authenticated, the Search screen is shown (Figure 99 on page 158). Please refer to Section 7.4.2, View and update a subscriber account on page 157 for further details.

7.4 Managing consumer accounts


Consumer accounts consist of a primary subscriber/account and (optionally) a number of child subscribers that can be family members, friends, or colleagues. The primary account is responsible for all billing and payment. The child subscribers each have their own username and password, which gives the child a separate identity and makes the account private and secure. The consumer account is created automatically when the subscriber is enrolled.

Chapter 7. Using Customer Care and Director Tool

155

7.4.1 Enroll a new consumer subscriber


When the subscriber calls in, the Customer Service Representative (CSR) will choose the Realm the subscriber will be enrolled in and, based on the Realm, the CSR will choose the Deal from a list of options. The CSR will also collect and enter the following information: Personal Information: first and last names, address, city, state, zip code. Title, middle initial, daytime phone, evening phone, gender, and birth date are optional. Account Information: username, password, secret. Method of Payment Information: payment method (credit card, invoice, telephone bill), account number (for telephone bill and credit cards only), expiration date (for credit cards only), account holder name. To enroll a new consumer subscriber follow these steps: - Press the New Person button on the menu at the top of any screen. This will bring up a new, blank enrollment screen as shown in Figure 98 on page 157. - Enter subscriber information and press the "Enroll" button. If the enrollment fails, a message at the bottom of the screen will indicate the reason for failure. Correct the error and press the "Enroll" button again. If everything is okay, the message "Enrollment completed successfully" appears at the bottom of the screen.

156

Introducing Tivoli Personalized Services Manager 1.1

Figure 98. TISM customer care

7.4.2 View and update a subscriber account


The view and update consumer account function is used by CSRs to modify information about a consumer subscriber's personal information (name, address, etc.), password, deal, and method of payment information. For each update operation, the CSRs can add remarks. They will be presented with a list of possible reason codes for the update. CSRs choose the appropriate reason code and enter some meaningful information to be associated with the operation. Press the "Search" button on the menu bar to get the search screen. Enter search criteria and press the Search button. See Using the Search Panel in Section 7.7.1, Search criteria for individual subscribers on page 165 for details about search criteria. If there is just one subscriber that exactly matches the search criterion, the Subscriber Update panel will be displayed (Figure 99 on page 158). If there are more than one match for the search, a list of subscribers will be displayed

Chapter 7. Using Customer Care and Director Tool

157

If the search produced a list of subscribers, select the correct one from the list by double clicking the subscriber's name or highlighting the subscriber and clicking the "UPDATE" button. The Subscriber Update panel is displayed (Figure 100 on page 159) with the subscriber information filled in. View the existing data or make changes as needed. If changes are made, press the "UPDATE" button to process them. Error messages will appear near the "Update" button if changes are invalid. Make changes as indicated by the messages and press "Update" again. A "success" message will appear when changes are successful.

Figure 99. Search results

158

Introducing Tivoli Personalized Services Manager 1.1

Figure 100. Subscriber update panel

7.4.3 Changing a subscriber's deal


A deal represents a set of services that the Service Provider offers to a customer. It describes the service offered and the price. To change the subscribers deal, follow the next steps: On the Subscriber Update panel (Figure 100 on page 159), select the drop-down Deal list and choose the applicable deal. To view details about the deal, press the DEAL DETAILS button at the bottom right-hand side of the window. The details will be displayed in another window. Press the Update button to process the deal change. A message will be displayed with the status of the request. If there are errors, make the corrections indicated by the message and press Update again.

7.4.4 Change subscriber's method of payment


To change the subscribers method of payment, follow these steps: Select the Payment Method drop-down box at the bottom left hand portion of the window as shown in Figure 101 on page 160.

Chapter 7. Using Customer Care and Director Tool

159

If the subscriber is changing from Credit Card to Invoice, the credit card fields will be removed from the window. If the subscriber is changing from Invoice to Credit Card, the associated credit card fields will display next to the Payment Method box (Figure 101). The CSR will be required to enter the Account Number, Expiration Date, and the Account Holder name. Press the UPDATE button. If there are errors, make the corrections indicated by the message and press Update again.

Figure 101. Changing method of payment

7.4.5 Disconnect a subscriber


To remove a subscriber, perform these steps: On the Subscriber Update panel, select the Disconnect button. A window for confirmation will appear (Figure 102 on page 161). Press OK and the account will be disconnected. The CSR will be returned to the Subscriber Update panel and the Status at the top of the window will say Disconnected (Figure 103 on page 161).

160

Introducing Tivoli Personalized Services Manager 1.1

Figure 102. Disconnecting a user

Figure 103. User disconnected

7.4.6 Reconnect a subscriber


To reconnect a subscriber, follow these steps: On the Subscriber Update panel, press the Reconnect button.

Chapter 7. Using Customer Care and Director Tool

161

Subscriber status displayed at the top of the window will state Active instead of Disconnected (Figure 103 on page 161).

7.4.7 Create a consumer child subscriber


A child subscriber is an optional sub-account under a primary consumer account. The child subscriber has a separate login id and E-mail address, but is billed to the primary (parent) account. Typically, child subscribers are used to set up separate logins and passwords for children or relatives in a household. Only the primary account receives a bill, but usage identifying each sub-account may be detailed on the bill. To define a child subscriber, do the following: From the Subscriber Update screen (Figure 100 on page 159), press the Enroll Child button. The child maintenance window will be displayed, as shown in Figure 104.

Figure 104. Enrolling a customer child subscriber

162

Introducing Tivoli Personalized Services Manager 1.1

Note

The primary Subscriber Update window shows the details of the "parent" account, including payment and deal details. These elements cannot be changed for the child subscriber. Enter the username, password, secret word, and other required fields for the child subscriber and then press the Enroll button. The comment at the bottom of the screen will confirm that the child has been enrolled.

7.4.8 Disconnect a child subscriber


Using the search panel, the CSR can find either the main account or search directly for a subscriber. The application will launch the maintenance window populating the subscriber information in the applicable fields (if the search was for the main account, the CSR will then select a subscriber by clicking on the USER NAME dropdown box, which displays all of the associated child subscribers). After the CSR selects the correct child subscriber, the associated information will be populated in the maintenance window. Select the Disconnect button in the middle of the window. The system will display another window asking for confirmation to disconnect the sub-account. Press OK to confirm (Figure 102 on page 161). The CSR will be returned to the maintenance window and the status at the top of the window (for that child subscriber) will say disconnected.

7.5 Reports
This function is launched by pressing the Reports button on the Customer Care menu bar. The next applet window will appear as shown in Figure 105 on page 164. Available Reports include: Daily Report of Enrollment Activity Daily Report of Session Activity Daily Report of Hourly Activity Weekly Member Level Part 1 Report Weekly Member Level Part 2 Report Weekly Subscriber Level Report

Chapter 7. Using Customer Care and Director Tool

163

Monthly Usage Summary Report Monthly Cohort by Hours Report Monthly Enrollment by Access Code Report Monthly Enrollment Report Monthly Disconnect Analysis Report

Figure 105. TISM Reporting Program

7.6 Additional services


The Customer Care Component has the ability to link to applications that are external to the TISM system. For example, an application that enrolls users in another program offered by the service provider, such as a telephone long-distance calling plan, can be linked to TISM. The advantage to linking external applications to TISM is that the TISM subscriber database is linked too. Therefore, personal information (such as, name, address, and phone) is automatically transferred to the external application. The GUI interface to additional services is a button called Additional Services that appears at the bottom of subscriber maintenance screens. TISM operators can take advantage of existing external applications or develop new ones, install them on a web server, and configure the Customer Care Component with the application's URL. The Additional Services button will then link to and launch the external application.

164

Introducing Tivoli Personalized Services Manager 1.1

7.7 Using the Search Panel


In this section we are going to review how to use the Search Panel.

7.7.1 Search criteria for individual subscribers


To find individual subscribers (either consumer subscribers or business account subscribers), enter some or all of the following: Realm - this field defaults to one of the configured realms. User Name -the name a subscriber uses to login Subscriber's first name Subscriber's last name Phone Number - primary Phone Number - secondary The Search button remains disabled until some search criteria are entered. Do not enter Account Number or Company Name, as they are not recognized as search criteria items for individual subscribers.

7.7.2 Exact match feature


The search screen looks up the character string you put in and assumes there is a wildcard following the string unless you check Exact Match For example, with Exact Match not checked, entering Last Name [Stein] will find Steiner, Steinfeld, Steinsky, and Stein. With Exact Match checked, only Stein will be found. The Name field does not accept a star (*) for search criteria; it doesn't interpret *stein, stein*, or *stein* where an asterisk (*) is typed in to signify a wildcard. In other words, users might type *stein and expect the system to find Rothstein or Willstein but it won't. A User Name Field search assumes that what you type is the beginning of the search object. If you type nge won't get Engel, for example. At best it gets a name that starts with Nge. For consumer accounts the Account Number does not appear when the subscriber's data is displayed. For business accounts the Account Number does appear when the subscriber's data is displayed

Chapter 7. Using Customer Care and Director Tool

165

166

Introducing Tivoli Personalized Services Manager 1.1

Chapter 8. Subscriber Selfcare


This chapter describes how to customize and run the Subscriber Selfcare applications.

8.1 Overview
Subscriber Selfcare is a suite of applications that allows subscribers to view and change personal information collected during enrollment (refer to Chapter 5, Enrollment and service provisioning on page 73). These applications let a subscriber perform the following: Change password Display and update personal information (name, address, phone numbers) Display and update payment information Display and add member accounts under the subscriber account Display devices the member has enrolled (only in Tivoli Personalized Services Manager) These functions are presented to a subscriber using HyperText Markup Language (HTML) pages or Java Server Pages (JSPs) that a Service Provider (SP) can customize to give them a unique appearance. All of the applications are run from servlets hosted on a Web server.

8.2 Customization
The flow and order of presentation of pages is controlled by the main JSP file. Through programmatic tests of the current state of the data object, the page to be displayed is selected. The SP can rearrange the order of presentation, combine or divide the content of individual pages, and take side trips to other applications through customization of the JSP pages. The customiser is responsible for ensuring that side trips are returned from and prerequisites are entered before dependent data. The JSP files, which are located in the /usr/TivTSM/selfcare/content/jsp directory, are described in Table 12:
Table 12. JSPs for SelfCare

JSP File AddMemberAuthError

Description Authentication page.

Copyright IBM Corp. 2001

167

JSP File AddMemberMemberCancel AddMemberCommit AddMemberInput AddMemberMain AddMemberRefused AddMemberSubmit ChangePasswordAuthError ChangePasswordCancel ChangePasswordCommit ChangePasswordInput ChangePasswordMain ChangePasswordRefused ChangePasswordSubmit ChangePaymentAuthError ChangePaymentCancel ChangePaymentCommit ChangePaymentInput ChangePaymentMain ChangePaymentRefused ChangePaymentSubmit ChangePersonalInfoAuthError ChangePersonalInfoCancel

Description If you cancel the registration, it will send you to this JSP. Commits the changes to the database. New Member form,. JSP that controls all the flow. If there is anything wrong with the information entered. Asks for confirmation to proceed with the registration. Authentication Page. If you cancel the registration, it will send you to this JSP. Commits the changes to the database. The Change Password form to be filled. JSP that controls the flow. If there is anything wrong with the password, this JSP is called. Asks if you want to go ahead with the new password. Authentication page. If you cancel the payment, it would send you to this JSP. Commits the changes to the database. The form to change the information. JSP that controls the flow. If there is something wrong. Asks for confirmation to proceed with the changes. User authentication. If you cancel the registration, it would send you to this JSP.

168

Introducing Tivoli Personalized Services Manager 1.1

JSP File ChangePersonalInfoCommit ChangePersonalInfoInput ChangePersonalInfoMain ChangePersonalInfoRefused ChangePersonalInfoSubmit DisplayDeviceAuthError DisplayDeviceInfo DisplayDeviceList DisplayDeviceMain DisplayDevicenotFound DisplayDeviceRefused

Description Commits the changes to the database. Shows the fields to change. JSP that controls the flow. If there is anything wrong with a field, this JSP is called. Asks for confirmation to proceed with the changes. Authentication page. Display the device information. Display the devices. JSP that controls the flow. If a device is not found. If there is something wrong with the device.

All Selfcare use a common configuration file named selfcare.properties located in /usr/TivTSM/selfcare/. In Table 13, you can see each of the variables that you can modify.
Table 13. SelfCare.properties file variables

Variable displayDevice.JSPPath displayDevice.mainJSPPa ge displayDevice.hostName displayDevice.debug

Description The URL location of the application JSP files. The name of the main JSP file. The URL location of the application host. A switch to cause the logging of more detailed messages. Exit class of application. Device specific class.

Example /selfcare DisplayDeviceMain.jsp http://itso14.dev.tivoli.com false

displayDevice.exitClass displayDevice.device.defa ult

com.tivoli.tsm.selfcare.Sa mpleExit1 com.tivoli.tsm.selfcare.devi ce.DisplayDevice4PC

Chapter 8. Subscriber Selfcare

169

Variable displayDevice.device.PC

Description Device specific class.

Example com.tivoli.tsm.selfcare.devi ce.DisplayDevice4PC /selfcare ChangePasswordMain.jsp http://itso14.dev.tivoli.com false

changePassword.JSPPath changePassword.mainJSP Page changePassword.hostNam e changePassword.debug

The URL location of the application JSP files. The name of the main JSP file. The URL location of the application host. A switch to cause the logging of more detailed messages. Exit class of application. Device specific class. Device specific class. The URL location of the application JSP files. The name of the main JSP file. The URL location of the application host. A switch to cause the logging of more detailed messages. Exit class of application. Device specific class. Device specific class. The URL location of the application JSP files.

changePassword.exitClas s changePassword.device.d efault changePassword.device.P C changePayment.JSPPath changePayment.mainJSP Page changePayment.hostNam e changePayment.debug

com.tivoli.tsm.selfcare.Sa mpleExit1 com.tivoli.tsm.selfcare.Ch angePassword4PC com.tivoli.tsm.selfcare.Ch angePassword4PC /selfcare ChangePaaymentMain.jsp http://itso14.dev.tivoli.com false

changePayment.exitClass changePayment.device.de fault changePayment.device.P C changePersonalInfo.JSPP ath

com.tivoli.tsm.selfcare.Sa mpleExit1 com.tivoli.tsm.selfcare.Ch angePassword4PC com.tivoli.tsm.selfcare.Ch angePassword4PC /selfcare

170

Introducing Tivoli Personalized Services Manager 1.1

Variable changePersonalInfo.mainJ SPPage changePersonalInfo.hostN ame changePersonalInfo.debug

Description The name of the main JSP file. The URL location of the application host. A switch to cause the logging of more detailed messages. Exit class of application. Device specific class. Device specific class. The URL location of the application JSP files. The name of the main JSP file. The URL location of the application host. A switch to cause the logging of more detailed messages. Exit class of application. Device specific class. Device specific class.

Example ChangePersonalInfoMain.j sp http://itso14.dev.tivoli.com false

changePersonalInfo.exitCl ass changePersonalInfo.devic e.default changePersonalInfo.devic e.PC addMember.JSPPath addMember.mainJSPPage addMember.hostName addMember.debug

com.tivoli.tsm.selfcare.Sa mpleExit1 com.tivoli.tsm.selfcare.Ch angePassword4PC com.tivoli.tsm.selfcare.Ch angePassword4PC /selfcare AddMemberMain.jsp http://itso14.dev.tivoli.com false

addMember.exitClass addMember.device.default addMember.device.PC

com.tivoli.tsm.selfcare.Sa mpleExit1 com.tivoli.tsm.selfcare.Ch angePassword4PC com.tivoli.tsm.selfcare.Ch angePassword4PC

8.3 Running Subscriber Selfcare


The URL to the Subscriber Selfcare applications should be provided as a link to the subscriber's home page (assuming the home page is the SP index or welcome page when the subscriber logs on) or another appropriate page as determined by the administrator. When subscribers click on the link, they should reach the Subscriber Selfcare applications page.

Chapter 8. Subscriber Selfcare

171

Use the URL for each of the Subscriber Selfcare applications. In the demonstration version of Subscriber Selfcare, links to all of the existing Subscriber Selfcare applications are available in intro.htm. To access the Self Care Administration home page, go to the next URL: http://itso14.dev.tivoli.com:15080/intro.htm. The screen as shown in Figure 106 will open.

Figure 106. Selfcare initial page

In this screen we can choose which task to perform: Change Password Change Personal Information Change Payment Information Add New Members

8.3.1 Changing a subscribers password


Select Change Password from the main page (Figure 106), which will bring up the screen in Figure 107 on page 173.

172

Introducing Tivoli Personalized Services Manager 1.1

Figure 107. Logging into Selfcare

When we introduced the username and password we were authenticated in the Authentication Server, (please refer to Chapter 6, Subscriber authentication and access control on page 111),and now we are ready to change the password as is shown in Figure 108.

Figure 108. Changing a subscribers password

Chapter 8. Subscriber Selfcare

173

Once this form is completely filled out, click on Change Password to proceed. You will be prompted to confirm this step as shown in Figure 109.

Figure 109. Change Password confirmation

When we confirm the password a message like the one in Figure 110 on page 174 will be shown.

Figure 110. Password successfully changed message

8.3.2 Changing personal information


This option allows members to change their name, address, phone numbers, and date of birth. From the main page of the Self Care (Figure 106 on

174

Introducing Tivoli Personalized Services Manager 1.1

page 172) choose Change Personal Information. Type your username and password in the Login screen as shown in Figure 107 on page 173. This will bring up a screen to update Personal Information as shown in Figure 111.

Figure 111. Change Personal Information

When the changes are complete, click on Change Personal Information, which will bring up a confirmation page as shown in Figure 112 on page 176

Chapter 8. Subscriber Selfcare

175

Figure 112. Changing Personal Information confirmation

When you click on Yes, Change Personal Information, the database is updated with the new data and a message with the new information is displayed.

8.3.3 Change payment information


Allows members to change their payment type and payment information for each of the types. From the main page of Selfcare (Figure 106 on page 172), choose Change Payment Information. Type your username and password in the Login screen as shown in Figure 107 on page 173. This will bring up a screen to update Payment Information as shown in Figure 113 on page 177.

176

Introducing Tivoli Personalized Services Manager 1.1

Figure 113. Changing Payment Information

Update the information and click Change Payment Information. A confirmation screen will be displayed (Figure 114 on page 178), in this screen, click Yes, Change Payment Information to confirm the changes.

Chapter 8. Subscriber Selfcare

177

Figure 114. Changing method of payment confirmation

When the changes are accepted a screen with the new values is shown.

8.3.4 Adding new members


Allows members to add new members to their account. From the main page of Selfcare (Figure 106 on page 172), choose Add New Members. Type your username and password in the Login screen as shown in Figure 107 on page 173. This will bring up a screen to add new members as shown in Figure 115. Fill in all the information of the new member whom you are adding, then press Add a Member. You can look at the Figure 115 on page 179 and Figure 116 on page 180 to see all the fields that need to be filled.

178

Introducing Tivoli Personalized Services Manager 1.1

Figure 115. Adding a new member (1)

Chapter 8. Subscriber Selfcare

179

Figure 116. Adding a new member (2)

When you click on Add A Member, a confirmation screen is displayed. Click Yes, Add Member, and the information on the new member will be displayed.

180

Introducing Tivoli Personalized Services Manager 1.1

Chapter 9. Subscriber Personalized Service Environment


The TPSM Personalized Service Environment allows each subscriber to customize his or her own home page. The ISP also has the Portal Toolkit, which can be used to develop personalized portal pages.

9.1 Portal Toolkit


The Portal Toolkit (pTk) is a package that has several important functions: 1. Generation of pages according the specific devices. 2. Allow users to customize their own homepages. This personalization is achieved by user profiling data stored in TPSM. 3. The Administrator creates a set of links that user can add to his or her own homepage. 4. Vertical Services are integrated with pTk, such as Agenda, Calendar, and Address Book. 5. The JSP Portlets Framework allows you to construct portal pages by assembling portlets. A portlet is a servlet that can be invoked as a building block from a JSP or a servlet. 6. Control of the authentication process. 7. The Double Click AdServer Interface, which is a sophisticated way to perform marketing campaigns.

9.2 Functionality
The following are the main functions of Portal Toolkit.

9.2.1 Multi-device Portal


There are many kinds of devices that access the internet. Each type has its own requirements about speed, size, and memory, and so must be treated in a different way. This is the target of pTk.

9.2.2 User Preferences API


The User Preferences API is a set of Java Beans that access the users profile and preferences. The TPSM customer can develop a set of personalized JSPs or servlets that use the personalization API Java Bean to access the user data.

Copyright IBM Corp. 2001

181

9.2.3 Hierarchical repository of referenced links


Another feature of the pTk is that the ISP can contain a repository database of links that the portal references. Users can then select the links they want to have associated with their personalized portal page from the repository.

9.2.4 Double click AdServer interface


Personalization provides a marketing opportunity for ISPs. They can target their subscribers portal pages for banner ads and special interest notices.

9.2.5 JSP Portlet framework


Portlets are specialized servlets that can be included with the portal pages. The applications are like building blocks. There are two different kinds of Portlets: Structural Portlets Structural Portlets help to structure the layout and content of a portal pages. The structural portlets are as follows: - LayoutSelector Portlet - portletSelector Portlet - Aggregatorportlet - Customizer Service Portlets Service portlets are turn-key applications or services within portal pages. The service portlets are as follows: - LinkSelector portlet - Calendar portlet - Agenda portlet - AddressBook portlet

9.2.6 WAP portal


The TISM authentication server supports several new modes of authentication that can be used in a WAP environment. Identification by user-agent IP address (and Radius) Identification by user MS-ISDN number Prompting the user for username and password (either by WML form, or a basic HTTP authentication.)

182

Introducing Tivoli Personalized Services Manager 1.1

These authentication modes can also be tuned for the various service providers environments using the authentication plug-in architecture (authenticators). The TISM portlet framework can generate content according to the type of device currently connected. Each portlet knows the type of device, and selects the content (the Java server page) that fits with it. All the portlet sample pages provided with the pTk support both HTML and WML contents.

9.2.7 WES Authentication


TPSM 1.1 is one of the components of WebSphere Every Place Suite (WES). TPSM 1.1 can delegate authentication to the WES Authentication Proxy. The current version of WES supports two modes of authentication: Radius Basic HTTP Authentication

9.2.8 Portal page


The portal pages are written by the portal Webmaster. They are Java Server Pages (JSP) belonging to two categories: Layout JSPs - define the general layout of a page Portlet JSPs - define the content and design (look and feel) of each portlet The TISM pTk is delivered with a set of sample JSPs. They support both HTML and WML devices. It is possible to modify these JSPs to generate different markup languages belonging to the XML family. Figure 117 on page 184 displays an overview of the portal software architecture.

Chapter 9. Subscriber Personalized Service Environment

183

Figure 117. Portal software architecture

9.3 Portal software architecture


Here is an indepth explanation of each of functionality of the Java package portal toolkit.

9.3.1 Authentication API


The Authentication APIs are a set of Java Classes contained in the authentication.jar library. They allow users to be authenticated, and allow user credentials (username, password, etc) to be retrieved. The following paragraphs explain the different Java Class methods: Checker.isNotAuthenticated () This method must be invoked at the beginning of each JSP or servlet protected by the TISM Authentication System. If the statement returns true, the user is not authenticated and the JSP/Servlet must return control.
<% @ import="com.tivoli.tsm.authentication.*" %> <% if (Checker.isNotAuthenticated(request, response)) return; %>

An example of this is shown in the next screen.

184

Introducing Tivoli Personalized Services Manager 1.1

<%@ page import="com.tivoli.tsm.authentication.*" %> <% if (Checker.isNotAuthenticated(request, response)) return; %>

Checker.getSSOUserName () This GET method can be invoked by a JSP or Servlet protected by the TISM Authentication System to retrieve the connected user's username.
<% @ import="com.tivoli.tsm.authentication.*" %> <% String name = Checker.getSSOUserName (request); String password = Checker.getSSOPassword (request); %>

Checker.getSSOPassword () This GET method can be invoked by an JSP or Servlet protected by the TISM Authentication System to retrieve the connected user's password.
<% @ import="com.tivoli.tsm.authentication.*" %> <% String name = Checker.getSSOUserName (request); String password = Checker.getSSOPassword (request);%>

9.3.2 User preferences API


The user preferences API provides access to the user profiling data stored in TISM RDBM. It only gives access to the data of the authenticated user. The API contains a set of Java Beans that cache the data in memory during the user session, and then persist back to TISM DB at the end of the session. All those Beans inherit from an abstract class; AccessBean.class. 9.3.2.1 AccessBean.class This abstract class is inherited by every pTk access Bean that accesses the TISM data base. Those Beans must override the following methods. It implements HttpSessionBindingListener at the end of user session. The data contained in the AccessBean is persisted back to TISM database (if it has changed). package com.tivoli.tsm.perso; public abstract class AccessBean implements HttpSessionBindingListener; This class has the following methods: public abstract void read(ServletRequest request) throws PersonalizationException

Chapter 9. Subscriber Personalized Service Environment

185

This method reads the data of the authenticated user from the TISM database, and populates the AccessBean attributes. If it fails it throws a PersonalizationException. public abstract void update(ServletRequest request) throws PersonalizationException This method stores the data contained in the AccessBean in the TISM database. This is done only if the data in the AccessBean has been changed since the read() has been invoked. If it fails it throws a PersonalizationException. public static String getWellKnownName() This method returns the well-known name of the AccessBean. Each AccessBean class has a unique well-known name used as a key to store its instance in the user HttpSession. Use that name to avoid storing double instances of the same AccessBean in one user session. public static AccessBean getBean(ServletRequest request) throws PersonalizationException This method is not in AccessBean.class, but it is implemented by every real sub-classes of access Bean. It retrieves in the user HttpSession the corresponding AccessBean instance, either by its name or type. If no instance exists yet, it creates one new instance and populates its data by calling the read() method. It creates a user session, if none exists, and stores the AccessBean instance as HttpSession attributes. These attributes use the access Beans well-known name. The following table is the real AccessBean implementations. They do not provide a detailed description of all of their functions; this can be found in the Java documentation provided with TISM. It only gives clues on the most significant methods. Some access Beans are read only; it is not possible to modify subscription data with the pTk. Table 14 also lists the commodity classes that are handled by the access Beans.
Table 14. AccessBean implementations

AccessBean Class Account

Description Wraps the residential and business accounts Favorite links at account level

Commodity Classes

Read or Read/Write R

AccountFavouriteLinks

Link, LinkEnumeration, LinkCategoryEnumerat ion,LinkCategorylxEnu meration

R/W

186

Introducing Tivoli Personalized Services Manager 1.1

AccessBean Class AccountMembers AccountNameValuePai rs AddressBook

Description All users sharing the same account Generic properties at account level Users agenda entries Users agenda entries Device profile All members of a family Users favourite links

Commodity Classes

Read or Read/Write R

NameValue, NameValueEnumeratio n AddressBookEntry, AddressBookEntryEnu meration Appointment, AppointmentEnumerati on

R/W

R/W

Agenda

R/W

Device FamilyMembers FavouriteLinks

R R Link, LinkEnumeration, LinkCategoryEnumerat ion, LinkCategorylxEnumer ation NameValue, NameValueEnumeratio n Link, ReferencedLinkEnume ration, ReferencedLinkReposi tory R/W

NameValuePairs

Users generic properties Singleton that contains the hierarchy of referenced links Users information For future use For future use

R/W

ReferencedLinks

R/W

User UserExtensions UserTopics

R R

9.3.2.2 Account.class This class is an access Bean that wraps the TISM EBILL_ACCOUNTINFO and EBILL_ACCOUNT tables. An account can be either a residential account or a business account. Business accounts can be organized in a hierarchy mapped on the company organization. This access Bean is read only.

Chapter 9. Subscriber Personalized Service Environment

187

public void read(ServletRequest request) throws PersonalizationException This method reads the account data of the authenticated user from the TISM database. If it belongs to a hierarchy of accounts, it reads the lowest level account (tree leaf side) of the user. public Account getParentAccount() throws PersonalizationException, NoResourceFound This method returns the parent account, if any. This is only useful with business accounts that have been organized into a hierarchy. 9.3.2.3 AccountFavoriteLinks.class This class is an access Bean that wraps the PERACCOUNTFAVLINKS table. It can store and retrieve favorite links at each account level. It inherits from FavoriteLinks. For explanations see Section 9.3.2.10, FavoriteLinks.class on page 196. package com.tivoli.tsm.perso; public class AccountFavoriteLinks extends FavoriteLinks; 9.3.2.4 AccountMembers.class This class is an access Bean that retrieves the member of an account, i.e. all users sharing the same account. package com.tivoli.tsm.perso; public class AccountMembers extends AccessBean; public int getMemberNbr() This method returns the number of users sharing that account. public Account getUserName(int ix) This returns the name of the ixth user of that account. If ix is < 0 or > getMemberNbr(), it returns null. public Account getUserFirstName(int ix) It returns the first name of the ixth user of that account. If ix is < 0 or > getMemberNbr(), it returns null. 9.3.2.5 AccountNameValuePairs.class This class is an access Bean that wraps the PERACCOUNTNAMEVALUESET table. It can store any generic property (name=value) at each account level. The name=value set model is different

188

Introducing Tivoli Personalized Services Manager 1.1

from the Java Properties model; it can store several values with the same name. It inherits from NameValuePairs. For an explanation, refer to the NameValuePairs class description. package com.tivoli.tsm.perso; public class AccountNameValuePairs extends NameValuePairs; 9.3.2.6 AddressBook.class This class is an access Bean that stores and retrieves the address book entries of a user. package com.tivoli.tsm.perso; public class AddressBook extends AccessBean; public synchronized boolean add(AddressBookEntry) This method adds a new address book entry to the AddressBook AccessBean. It is cached in the JVM memory. It will be stored into the TISM data base when the update() method is invoked, or at the end of the user session. It returns true if it succeeds, and false if it fails, in particular if the entry already exists. public synchronized boolean add(String category, String firstname, String lastname, String title, String company, String address, String tel1, String tel2, String fax, String email, String url) This is a commodity method to avoid handling AddrssBookEntry objects. It is equivalent to the add(AddrssBookEntry) method. public synchronized String[] categories() It returns a table containing all the address book categories. This list can be used to display the contacts sorted by categories. public synchronized boolean del(AddressBookEntry delEntry) These two methods delete a contact from the user's address book. It returns true if it succeeded. It returns false if it fails, in particular if the entry does not exist. public synchronized Enumeration elementsByCategoryAndName(String category, String firstname, String lastname) It returns an Enumeration of AddressBookEntry for all the contacts of that user. That enumeration can be used to display all the contacts of a user. public Enumeration elements()

Chapter 9. Subscriber Personalized Service Environment

189

It returns an Enumeration of AddressBookEntry for all the contacts. public Enumeration elementsByCategory(String category) It returns an Enumeration of AddressBookEntry for all the contacts belonging to that category. public Enumeration elementsByLastname(StringlastnamePattern) Returns an Enumeration of AddressBookEntry for all the contacts where the lastname field begins with the specified pattern. public Enumeration elementsByCategoryAndLastname(String category, String lastnamePattern) Returns a list of AddressBookEntry entries selected by category and lastname. public synchronized boolean modify(AddressBookEntry entry, String newTitle, String newCompany, String newAddress, String newTel1,String newTel2, String newFax, String newEmail, String newUrl) This method modifies an existing AddressBookEntry from the AddressBook AccessBean, with the new values title, company, address, tel1, tel2, fax #, email, and Url. It returns true if it succeeds, and false if it fails, in particular if the entry does not exist. An example is shown in the following screen.

190

Introducing Tivoli Personalized Services Manager 1.1

<%@ page buffer="none" import="com.tivoli.tsm.perso.* %> <HTML><BODY> <% // Create, read and populate the AddressBook bean, or just retrieve it from session AddressBook addbook = AddressBook.getBean(request); // Add a new contact AddressBookEntry newEntry = new AddressBookEntry ("Business", "John", "Smith", "Mr", "IBM","LA", "1111111111", "2222222222", "333333333", "js@ibm.com", "http://www.sm.com"); addbook.add(newEntry); %> <!-- Display all entries --> <TABLE border=1 cellspacing=0 cellpadding=4> <TR align="center"> <TD> Category </TD> <TD> Lastname / Firstname </TD> <TD> Tel </TD> <TD> Email </TD> <TD> Url </TD> </TR> <% Enumeration entriesEnum = addbook.elements(); while (entriesEnum.hasMoreElements()) { AddressBookEntry abookentry = (AddressBookEntry) entriesEnum.nextElement(); %> <TR align="center"> <TD> <%=abookentry.getCategory()%></TD> <TD> <%=abookentry.getLastname()%>, <%=abookentry.getFirstname()%></TD> <TD> <%=abookentry.getTel1()%> </TD> <TD> <%=abookentry.getEmail()%> </TD> <TD> <%=abookentry.getUrl()%> </TD> </TR> <% } %> </TABLE> .../... </BODY></HTML>

9.3.2.7 Appointment.class This class is a utility class used to add or store Appointments in the Agenda access Bean. It is not an access Bean. package com.tivoli.tsm.perso; public class Appointment;

Chapter 9. Subscriber Personalized Service Environment

191

public Appointment(Date start, int duration, String description) public Appointment(long id, Date start, int duration, String description) start is the start date of the appointment. duration must be defined in minutes. public String displayDate() This method displays the start date of the appointment as a string with the format yyyy:MM:dd E public String displayStart() This method displays the start date of the appointment as a string with the format HH'h'mm public String displayEnd() This method displays the end date of the appointment (start date + duration) as a string with the format HH'h'mm public boolean equals(Appointment appointment) Returns true if the current appointment is equal (same start date, duration and description) to appointment parameter. public java.lang.String getDescription() Returns description of the appointment. public void setDescription(java.lang.String newDescription) Updates the description of the appointment with newDescription. public Date getStart() Returns start date of appointment. public void setStart(java.util.Date newStart) Updates start date of appointment with newStart. public int getDuration() Returns duration (in minutes) of the appointment. public void setDuration(int newDuration) Updates duration of the appointment with newDuration. public int getDurationHour() Converts duration of the appointment in hours (duration in minutes / 60).

192

Introducing Tivoli Personalized Services Manager 1.1

public int getDurationMin() Returns remaining duration of the appointment in minutes (duration (duration /60)*60). public Date getEnd() Returns the end date of the appointment (start date + duration). public long getId() Returns the database sequence number of the appointment. public void setId(long newId) Updates the database sequence number of the appointment with newId. public int getStartDay() Returns only the day (1- 31) of the start date of the appointment. public int getStartMonth() Returns only the month (1- 12) of the start date of the appointment. public int getStartYear() Returns only the year (2000, 2001, etc.) of the start date of the appointment. public int getStartHour() Returns only the hour (0-23) of the start date of the appointment. public int getStartMin() Returns only the minute (0-59) of the start date of the appointment. public boolean isInThePast() Returns true if the appointment is in the past (older that the current date). 9.3.2.8 Agenda.class This class is an access Bean that stores and retrieves the agenda entries of a user. package com.tivoli.tsm.perso; public class Agenda extends AccessBean; public java.util.Date getStarttime() Returns current date of the agenda. public void setStarttime(java.util.DatenewDate) Updates current date of agenda with a new date

Chapter 9. Subscriber Personalized Service Environment

193

public Enumeration elements(int interval, Calendar date) Returns a AppointmentEnumeration of Appointment of the current date of agenda filtered by the hour (interval=HOUR) or by the day (interval=DAY). That enumeration can be used to display all appointments started between a given hour h and h+1, or started on the day d. public synchronized boolean add(Appointmentappointment) This method adds a new appointment to the Agenda AccessBean. It is cached in the JVM memory. It will be stored in the TISM database when the update() method is invoked, or at the end of the user session. It returns true if it succeeds, and false if it fails, in particular if the appointment already exists. public synchronized boolean del(Appointment appointment) This method deletes an existing appointment from the Agenda AccessBean. It will be deleted from the TISM database when the update()method is invoked, or at the end of the user session. public synchronized void del(long id, java.util.Date start, int duration, String description) This method deletes an existing appointment from the Agenda access Bean. The appointment can be identified by a data base sequence number (id), or, if the id is zero, by its start date, duration, and description. It is more efficient to delete an appointment by its id. public boolean modify(Appointment appt, java.util.Date date, int duration, String description) This method modifies an existing appointment appt from the Agenda AccessBean with the new values; start date, duration (in minutes), and description. public int getStartHour() This method gets the latest hour of appointments found in the appointment enumeration given by the elements() methods. public int getMinHour() This method gets the earliest hour of appointments found in the appointment enumeration given by the elements() methods.

194

Introducing Tivoli Personalized Services Manager 1.1

public void updateMinMaxHours(java.util.Datedate) This method updates minimum or maximum hours given by the methods getMinHour() and getMaxHour() of the agenda if necessary. If the hour of date < getMinHour(), then minHour of agenda is updated with this value. If the hour of date > getMaxHour() then maxHour is updated with this value. An example of use of Agenda.class is shown in the following screen.

<%@ page buffer="none" import="com.tivoli.tsm.perso.*, java.text.*" %> <HTML><BODY> <% // Create, read and populate Account bean, or just retrieve it from session Agenda agenda = Agenda.getBean(request); %> <TABLE border=1> <TR><TH>Start Date</TH><TH>Appointment description</TH><TH>Duration</TH><TR> <% Enumeration appointments = agenda.elements(); while (appointments.hasMoreElements()) { Appointment appt = (com.tivoli.tsm.perso.Appointment) appointments.nextElement(); %> <TR><TD><%=DateFormat.getDateTimeInstance().format(appt.getStart())%><TD> <TD><%=appt.getDescription()%><TD> <TD><%=Integer.toString(appt.getDurationHour())%>h<%=Integer.toString(appt.getDurat ionMin())%>min<TD> </TR> <% } %> </TABLE> .../... </BODY></HTML>

9.3.2.9 FamilyMembers.class This class is an access Bean that retrieves the members of a family. It inherits from AccountMembers. Refer to AccountMembers for explanations. package com.tivoli.tsm.perso; public class FamilyMembers extends AccountMembers; An example is shown in the following screen.

Chapter 9. Subscriber Personalized Service Environment

195

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <%@ page buffer="none" import="com.tivoli.tsm.perso.*,com.tivoli.tsm.perso.components.*,java.util.*,java.tex t.*" %> <jsp:useBean id="myFamily" class="com.tivoli.tsm.perso.FamilyMembers" scope="session" /> <% myFamily.read(request); %> <% //---------------------------------// Compute style sheet String style[] = pairs.getValues("style"); String css = "default"; if (style.length >= 1) css = style[0]; int nbr = myFamily.getMembersNbr(); %> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <TITLE>&nbsp;TSM Personal page&nbsp;</TITLE> <LINK rel="stylesheet" href="/perso/css/<%=css%>.css" type="text/css"> </head> <BODY text="#000000" link="#000000" vlink="#000000" alink="#000000"> <TABLE border="0" cellspacing="0" cellpadding="0" >

<TD><A href="http://www.tivoli.com"><IMG src="/images/tivoli_logo.gif" ALT="Tivoli" border="0" ></A></TD> <TD ><IMG width="1000" height="50" src="/images/spacer.gif" ></TD> </TR> <% for (int ix = 0; ix<nbr ; ix++) { %> <TR><TD>&nbsp;</TD><TD>&nbsp;<%= myFamily.getFirstName(ix)%> </TD></TR> <% } %> </TABLE> ..

9.3.2.10 FavoriteLinks.class This class is an access Bean that stores and retrieves the favorite links of a user. package com.tivoli.tsm.perso; public class FavoriteLinks extends AccessBean;

196

Introducing Tivoli Personalized Services Manager 1.1

public synchronized boolean add(Link link) This method adds a new link to the FavoriteLinks AccessBean. It is cached in the JVM memory. It will be stored in the TISM database when the update() method is invoked, or at the end of the user session. It returns true if it succeeded. It returns false if it fails, in particular if the link already exists. public synchronized boolean add(String category, String title, String URL) This is a commodity method to avoid handling Link objects. It is equivalent to the add(Link) method. public synchronized void del(Link) Deletes a link from the user's favorite links. public synchronized void del(long id) Each link is identified by a data base sequence number. It is more efficient to delete a link by its id. public synchronized void delCategory(String category) Deletes all the links belonging to that category. public Enumeration elements() Returns a LinkEnumeration of Link for all the favorite links of that user. That enumeration can be used to display all the favorite links of a user. public Enumeration elements(String category) Returns an Enumeration of Link for all the links belonging to that category. An example is shown in the following screen.

Chapter 9. Subscriber Personalized Service Environment

197

<%@ page buffer="none" import="com.tivoli.tsm.perso.* %> <HTML><BODY> <% // Create, read and populate FavoriteLinks bean, or just retrieve it from session FavoriteLinks links = FavoriteLinks.getBean(request); // Add new links Link link = new Link ("software", "Tivoli", "http://www.tivoli.com"); links.add(link); Link link = new Link ("computers", "IBM", "http://www.ibm.com"); links.add(link); Enumeration myLinks = links.elements(); while (myLinks.hasMoreElement()) { link = (Link) myLinks.nextElement(); %> <H2><%=link.getCategory() + " " + link.getTitle() + " " + link.getUrl() + " " + link.getDeviceType()%> <% } %> .../... </BODY></HTML>

9.3.2.11 NameValuePairs.class This class is an access Bean that stores and retrieves the properties of a user. It wraps the PERNAMEVALUESET table in TISM database. The name=value set model also stores several properties with the same name. package com.tivoli.tsm.perso; public class NameValuePairs extends AccessBean; public synchronized boolean add(NameValuepair) This method adds a new name=value pair into the NameValuePairs AccessBean. It is cached in the JVM memory. It will be stored in the TISM database when the update() method is invoked, or at the end of the user session. It returns true is it succeeds, and false if it fails, in particular if the link already exists. public synchronized boolean add(String name, String value) This is a commodity method to avoid handling NameValue objects. It is equivalent to the add(NameValue) method. public synchronized void del(NameValue) It deletes a NameValue from the user's NameValuePairs.

198

Introducing Tivoli Personalized Services Manager 1.1

public synchronized void del(long id) Each NameValue is identified by a data base sequence number. It is more efficient to delete a NameValue by its id. public synchronized void del(String name) Deletes all the name=value pairs having the same name. public synchronized void del(String name, String value) Deletes one name=value pair with the supplied name and value. public Enumeration elements() Returns a NameValueEnumeration of NameValue for all properties of that user. public Enumeration elements(String name) Returns a NameValueEnumeration of NameValue for all the values having that name. An example is shown in the following screen.

Chapter 9. Subscriber Personalized Service Environment

199

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <%@ page buffer="none" import="com.tivoli.tsm.perso.*,com.tivoli.tsm.perso.components.*,java.util.*,java.tex t.*" %> <% //********************************************************************************** // Code for writting a table with the values of NameValuePairs java bean //********************************************************************************** // Be careful with this variable because its usually used for getting values for the // style sheets // Getting the java bean for the NameValuePairs NameValuePairs pairs = NameValuePairs.getBean(request); //Creating a new Pair of Values NameValue p = new NameValue("hobbies","football"); pairs.add(p); // Code for going through the values of the NameValuePairs Enumeration myProperties = pairs.elements(); NameValue prueba; String valor; String nombre; while(myProperties.hasMoreElements()){ prueba = (NameValue)myProperties.nextElement(); valor = prueba.getValue();%> <TR><td> <%=valor%> </td> <%nombre = prueba.getName();%> <td><%=nombre%></td></TR> <% } %>

9.3.2.12 ReferencedLinks.class This class accesses the repository of referenced links stored in the TISM data base. It is instanciated by user session, and contains data on user's navigation in the tree of referenced links. It is a read only AccessBean. The class that caches the tree of referenced links is ReferencedLinksRepository.class. It is a singleton class. It periodically

200

Introducing Tivoli Personalized Services Manager 1.1

reloads the referenced links from TISM data base. To update the repository of links, the operator must use TISM director tool. package com.tivoli.tsm.perso; public class ReferencedLinks extends AccessBean; 9.3.2.13 User.class This class is an access Bean that represents the user's subscription data. It wraps the TISM tables PIAUTHUSER, PISUBSCRIBER, and PISUBSCRIBERINFO. It is a read only access Bean. package com.tivoli.tsm.perso; public class User extends AccessBean; An example is shown in the following screen.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <%@ page buffer="none" import="com.tivoli.tsm.perso.*,com.tivoli.tsm.perso.components.*,java.util.*,java.tex t.*" %> <% // Retrieve pTk access beans : user and name value pairs // The getBean() method retrieves or instanciates the bean(s), // then it populates it with TISM DB data. User user = User.getBean(request); %> // // In the HTML code // <H2><font color="#FFFFFF">Welcome <%= user.getFirstName() %> <%=user.getLastName()%> <%= user.getAddress1() %> </font></H2>

9.4 JSP portlets framework


The portlet framework provides the mechanisms to structure JSP's by including building blocks; the portlets. Because the requirements for PC, PDA's, and WAP phones are so different, it is necessary to distinguish the pages delivered to a Web browser from the pages delivered to a WAP browser. The content markup languages, the aggregation model, and the navigation are all different.

Chapter 9. Subscriber Personalized Service Environment

201

9.4.1 JSP portlet architecture


Figure 118 on page 203 displays the pTk JSP portlets framework architecture. Portlets have the following features: Portlets inherit from the HttpServlet class. A portlet has a URL. It can be included in a JSP through the servlet API include and forward mechanisms. Some portlets can be also called directly by a HTTP request carrying the portlet URL. Such top level portlets are also called Desktop or Layout portlets. A portlet has a state. Each specific portlet implementation can extend the portletSession class to store their specific state. This state is cached in memory for efficient portlet re-painting. A portlet receives commands passed as parameters of the HTTP request. The portlet framework provides the mechanisms to address commands to a specific portlet within a page. Portlets are enabled for multi-device rendering. Each portlet dispatches portlet JSPs. The portlet JSPs are responsible for painting the area of the page under control of the portlet. The portlet JSPs are dispatched according to: - portlet JSP = f (portlet Command , Device Type) A portlet uses configuration data. It basically contains the dispatching rules for the portlet JSPs. Portlets can also extend their configuration data to carry portlet specific properties (e.g. data formats for the Calendarportlet). There are two types of portlets; the structural portlets that help structure pages, and the services portlets.

202

Introducing Tivoli Personalized Services Manager 1.1

Figure 118. JSP Portlet Architecture

9.4.2 Portlet design pattern


The portlet framework complies to the traditional servlet/JSP model with a controller, a model, and a view, as shown in Figure 119.

Figure 119. Pattern model-view-controller

Chapter 9. Subscriber Personalized Service Environment

203

A portlet is made of three abstract classes that must be sub-classed by every portlet implementation. See Figure 120. The Component class inherits from HttpServlet. It is the entry point of the portlet. The ComponentSession class contains the user session state of the portlet. The ComponentSession contains the business logic of the portlet: the programmer of a new portlet must override the method:
ComponentSession::service() : it is the portlet "controller"

The ComponentSession creates the Bean(s) that is (are) transmitted to the portlet JSPs for rendering: it contains the portlet model. The ComponentConfiguration class parses the portlet properties file during the portlet init(). In particular it contains the portlet JSP's dispatching rules: portlet JSP = f (portlet Command, Device Type). It contains all the references to the portlet JSP's. It can also be sub-classed to implement additional properties specific to each portlet real implementation. A portlet also contains portlet JSPs that are the portlet view.

Figure 120. More detail about the architecture of JSP Portlets

204

Introducing Tivoli Personalized Services Manager 1.1

9.4.3 Portlet addressing


The TPSM has several sample pages. For HTML devices: http://hostname:16080/perso/samples/welcome.jsp This is a non personalized HTML page, as you can see in Figure 121

Figure 121. Example of welcome.jsp

http://hostname:16080/perso/home This is a redirection to a personalized page. This page depends on the type of device and if the user was authenticated before or not. See Figure 122, Figure 123 on page 206, and Figure 124 on page 206.

Figure 122. /perso/home without an authentication

Chapter 9. Subscriber Personalized Service Environment

205

Figure 123. /perso/home with authentication

Figure 124. /perso/home for WAP

9.4.3.1 Selecting a layout page The LayoutSelector portlet is possible to select a Layout page according to the device type and page index. The structure of the URL is:
http://hostname:16080/perso/home?layout=pageindex

206

Introducing Tivoli Personalized Services Manager 1.1

hostname: The DNS or IP address of the portal server. 16080: port for the personalization server /perso/home: alias for LayoutSelector portlet layout: instance name of LayoutSelector portlet pageindex: label defined in the /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/personal/compone nts/LayoutSelectorComponent.properties for the redirection to the JSP file. See the next screen.

###################################################################### # Layout Selector Component for TISM pTk # -----------------------------------# The syntax is : # page.<device type>.<component HTTP command>=<JSP URL path> ###################################################################### # ###################################################################### # Pages for HTML devices ###################################################################### # page./WEB.defaultcmd=/perso/components/layoutselector/homehtml.jsp page./WEB.home=/perso/components/layoutselector/homehtml.jsp page./WEB.addrbook=/perso/components/layoutselector/addrbookhtml.jsp page./WEB.agenda=/perso/components/layoutselector/agendahtml.jsp page./WEB.news=/perso/components/layoutselector/newshtml.jsp page./WEB.logout=/perso/components/layoutselector/logouthtml.jsp # ###################################################################### # Pages for WML devices ###################################################################### # page./WAP/R380.defaultcmd=/perso/components/layoutselector/homewml.jsp page./WAP/R380.minimize=/perso/components/layoutselector/homewml.jsp page./WAP/NokiaEmul.defaultcmd=/perso/components/layoutselector/homewml.jsp page./WAP/NokiaEmul.minimize=/perso/components/layoutselector/homewml.jsp page./WAP/nokia7110.defaultcmd=/perso/components/layoutselector/homewml.jsp page./WAP/nokia7110.minimize=/perso/components/layoutselector/homewml.jsp page./WAP/R320.defaultcmd=/perso/components/layoutselector/homewml.jsp page./WAP/R320.minimize=/perso/components/layoutselector/homewml.jsp

Chapter 9. Subscriber Personalized Service Environment

207

9.4.3.2 Addressing a command to an included portlet Each portlet can receive commands and parameters in the HTTP request (GET or POST). The Figure 125 illustrates the command addressing mechanism.

Figure 125. Sending a command and parameters to a portlet in the HTTP request

A portlet is included in the page generated from the redirection of http://hostname:16080/perso/home. The portlet contains an instance name that determines the new pages layout, using the configuration file of the servlet LayoutSelectorComponent. The defined JSP receives a command.

9.4.4 Portlet API


The portlet API is structured in: The Component API. It allows to include a portlet within a page (JSP or servlet) The ComponentSession API. It drives the interactions between a portlet and its portlet JSPs: - to address a command from a JSP to a portlet - to retrieve portlet Beans from the portlet JSPs.

208

Introducing Tivoli Personalized Services Manager 1.1

9.4.4.1 Component API This static method includes a portlet within a page (servlet or Java Server Page). package com.tivoli.tsm.perso.components; public abstract class Component extends javax.servlet.http.HttpServlet; The methods that comprise this class are: public static void Component::include (String componentPath, String componentName, GenericServlet servlet, HttpServletRequest request, HttpServletResponse response) - String componentPath: each portlet is a servlet, and so has a URL path in the application server. - String componentName: each portlet has an instance name. This name is used to address commands to a portlet. - GenericServlet servlet: the basic code of the including servlet or JSP. - HttpServletRequest request: the HTTP request object. - HttpServletResponse response: the HTTP response object. An example of the method follows:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <%@ page buffer="none" import="com.tivoli.tsm.perso.*,com.tivoli.tsm.perso.components.*,java.util.*,java.tex t.*" %> <HTML> ../.. <TABLE border="0" cellspacing="0" cellpadding="0" width="250"> <TR><TD> <!----------- Component selector ---------------------------> <% Component.include("/perso/componentSelectorComponent", "comps", this, request, response); %> </TD></TR> ../..

9.4.4.2 ComponentSession API Each portlet can receive commands that are processed by the ComponentSession::service() method.

Chapter 9. Subscriber Personalized Service Environment

209

The portlet command API provides the means to compute the href attribute of a button or control that will address a command to the current portlet. Each portlet JSP needs to retrieve user session Beans (the model) before generating the page content (the view). package com.tivoli.tsm.perso.components; public abstract class ComponentSession implements javax.servlet.http.HttpSessionBindingListener; The methods for the class ComponentSession are: public void ComponentSession::init(HttpServletRequest request) - HttpServletRequest request : the HTTP request object. This method may be overridden by portlet real implementations. It is invoked by the portlet framework after the ComponentSession object is instanciated, on the 1st user session HTTP request that needs to display that portlet. For portlets that need to access to TISM data base, the init() method usually loads the necessary user's preference Java Bean. public abstract void ComponentSession::service(String command, HttpServletRequest request) throws javax.servlet.ServletException, java.io.IOException - String command: the command addressed to the portlet - HttpServletRequest request: the HTTP request object. This method must be overridden by each portlet real implementation. It contains the portlet controller, the process of each command addressed to the portlet, and the preparation of the Beans before the dispatching of the portlet JSP's. For portlets that need to access the TISM data base, the service() method usually loads at the User's preferences Java Beans when the ComponentSession is instanciated. public String href(String command) - String command: the command addressed to the portlet This method is used by the portlet JSP's to compute the href attribute of buttons or controls. Clicking on such a control will send an HTTP request to the current portlet with the parameter componentName=command. This command will be dispatched by the component framework to the portlet instance identified by componentName.

210

Introducing Tivoli Personalized Services Manager 1.1

public static ComponentSession getSession(HttpServletRequest request) - HttpServletRequest request: the HTTP request object. This method is used by the portlet JSP's to retrieve the current user's ComponentSession instance. This object carries the Beans (the model) with the data that must be rendered by the JSP. It is a common programming idiom to implement simple data directly as attributes of the ComponentSession class, and provide getXxx() accessors. 9.4.4.3 Portlet configuration Each portlet loads a property file at initialization. That property file is parsed by the ComponentConfiguration class. It contains the portlet JSP's dispatching rules: portlet JSP = f (portlet Command, Device Type). These rules are specified by properties with the following syntax: page.<device type>.<command>=<Portlet JSP URL path> For an example, see Section 9.4.3.1, Selecting a layout page on page 206.

9.5 TPSM portlet library


There are two types of portlets delivered with TISM 1.1; structural portlets, and service portlets. Each portlet has specified the specific properties and the interface between it and its portlet JSPs specified: The list of commands that can be sent from the JSP's controls (buttons) to the portlet The list of accessors that the JSP's can use to retrieve the model data Beans

9.5.1 Structural portlets


The Structural portlets help structure the layout and content of the portal pages. The Structural portlets are: 1. LayoutSelectorComponent 2. ComponentSelectorComponent 3. Aggregator 4. CustomizorComponent

Chapter 9. Subscriber Personalized Service Environment

211

9.5.1.1 LayoutSelectorComponent The LayoutSelectorComponent is not included in a page, but rather invoked by an HTTP request URL. It sends out the correct layout JSP that fits the device type. Although the LayoutSelectorComponent is optional, it can be useful with devices such as WAP mobiles because WAP browsers rendering is very critical and must be tuned for different devices. Figure 126 illustrates the use of LayoutSelectorComponent.

Figure 126. Use of LayoutSelectorComponent

For the configuration of the servlet LayoutSelectorComponent, use the LayoutSelectorComponent.properties, which are described in Section 9.4.3.1, Selecting a layout page on page 206. Portlet commands processed by LayoutSelectorComponent For the layout selector, the command indexes the layout pages that are dispatched on the reception of each command. This list is unlimited, and can be extended by the webmaster when the portal site is designed. Table 15 gives a list of commands and layout pages provided with the TISM 1.1 samples.
Table 15. List of portlet commands for the LayoutSelectorComponent

Commands defaultcmd home

Description Used when no specific command is addressed Displays the portal home page

Dispatched HTML JSP homehtml.jsp homehtml.jsp

Dispatched WML JSP homewml.jsp homewml.jsp

212

Introducing Tivoli Personalized Services Manager 1.1

Commands addrbook

Description Displays a layout page that includes the addressbook Displays a layout page that includes the agenda Displays a layout page that includes the news Displays a layout page used at logout

Dispatched HTML JSP addrbookhtml.jsp

Dispatched WML JSP

agenda news logout

agendahtml.jsp newshtml.jsp logouthtml.jsp

Class definition package com.tivoli.tsm.perso.components; public class LayoutSelectorComponent extends LayoutComponent; public class LayoutSelectorComponentSession extends LayoutComponentSession; 9.5.1.2 ComponentSelectorComponent ComponentSelectorComponent displays the list of available services to the user. The user chooses services, and that information is saved in the user profile. This is used to display, for instance, favorite applications in a homepage. See examples in Figure 127 on page 214 and Figure 128 on page 214.

Chapter 9. Subscriber Personalized Service Environment

213

Figure 127. Example for HTML browsers of ComponentSelectorComponent

Figure 128. Example for WAP browsers of ComponentSelectorComponent

Portlet configuration file The configuration file used for ComponentSelectorComponent servlet is /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/perso/components/Co mponentSelectorComponent.properties as shown in the following screen.

214

Introducing Tivoli Personalized Services Manager 1.1

###################################################################### # Application Selector Component for TISM pTk # -----------------------------------# # List of applications managed by the ComponentSelector # # The syntax is : # --------------# application.label.<application name>=<application label> # application.icon.<application name>=<application icon URL> # application.componenturl.<application name>=<component URL> # this parameter is required for components # application.iconclickurl.<application name>=<Click URL for the icon> # this parameter is optional : when present, the component icon is clickable # application.devicetype.<application name>=<device_type> # where <device_type> = /WEB, /WAP or / for all devices ###################################################################### # Calendar : Example of application which entry point is a component (servlet) # it is referenced by the URI path of its servlet alias # application.label.calendar=My Calendar application.icon.calendar=/images/calendar.gif application.componenturl.calendar=/perso/calendarComponent application.iconclickurl.calendar= application.devicetype.calendar=/ # ###################################################################### # Agenda : Example of application which entry point is a component (servlet) # it is referenced by the URI path of its servlet alias # application.label.agenda=My Agenda application.icon.agenda=/images/agenda.gif application.componenturl.agenda=/perso/agendaComponent application.iconclickurl.agenda=/perso/home?layout=agenda&agenda=maximize application.devicetype.agenda=/ # ###################################################################### # Link Selector : Example of application which entry point is a component (servlet) # it is referenced by the URI path of its servlet alias # application.label.links=My Favorite Links application.icon.links=/images/world.gif application.componenturl.links=/perso/linkSelectorComponent application.iconclickurl.links= application.devicetype.links=/ # ###################################################################### # Address book Example of application which entry point is a JSP # It is referenced by the JSP URI path used in a tag <a href="..."></a> # application.label.addressBook=My Address Book application.icon.addressBook=/images/addrbook.gif application.componenturl.addressBook=/perso/addressBookComponent application.iconclickurl.addressBook=/perso/home?layout=addrbook&addressBook=maximize application.devicetype.addressBook=/

Chapter 9. Subscriber Personalized Service Environment

215

###################################################################### # Example of aggregation content application.label.news=The News application.icon.news=/images/news.gif application.componenturl.news=/perso/news application.iconclickurl.news=/perso/home?layout=home&news=maximize application.devicetype.news=/ ###################################################################### # Example of an external link with macrosubstitution using the user's profile # This type of link has no component URL application.label.weather=My Weather application.icon.weather=/images/weather.gif application.componenturl.weather= application.iconclickurl.weather=http://search.weather.yahoo.com/weather/query.cgi? q=*getCity* application.devicetype.weather=/WEB ###################################################################### # Component JSP's : dispatched according to (deviceType, componentCommand) ###################################################################### # Pages for HTML devices # The syntax is : # page.<device type>.<component HTTP command>=<JSP URL path> ###################################################################### # Startup mode: defaultcmd --> maximized for WEB devices page./WEB.defaultcmd=/perso/components/componentselector/myapplihtml.jsp # Minimized page page./WEB.minimize=/perso/components/componentselector/minapplihtml.jsp # Page with my applications page./WEB.maximize=/perso/components/componentselector/myapplihtml.jsp page./WEB.myappli=/perso/components/componentselector/myapplihtml.jsp page./WEB.add=/perso/components/componentselector/myapplihtml.jsp page./WEB.delete=/perso/components/componentselector/myapplihtml.jsp # Page with other available applications page./WEB.customize=/perso/components/componentselector/customapplihtml.jsp ###################################################################### # layouts for WAP devices ###################################################################### # Startup mode for WAP devices : defaultcmd --> minimized page./WAP/R380.defaultcmd=/perso/components/componentselector/myappliwml.jsp page./WAP/R380.minimize=/perso/components/componentselector/minappliwml.jsp page./WAP/R380.maximize=/perso/components/componentselector/maxappliwml.jsp page./WAP/R380.add=/perso/components/componentselector/myappliwml.jsp page./WAP/R380.delete=/perso/components/componentselector/myappliwml.jsp page./WAP/R380.myappli=/perso/components/componentselector/myappliwml.jsp page./WAP/NokiaEmul.defaultcmd=/perso/components/componentselector/myappliwml.jsp page./WAP/NokiaEmul.minimize=/perso/components/componentselector/minappliwml.jsp page./WAP/NokiaEmul.maximize=/perso/components/componentselector/maxappliwml.jsp page./WAP/NokiaEmul.add=/perso/components/componentselector/myappliwml.jsp page./WAP/NokiaEmul.delete=/perso/components/componentselector/myappliwml.jsp page./WAP/NokiaEmul.myappli=/perso/components/componentselector/myappliwml.jsp page./WAP/nokia7110.defaultcmd=/perso/components/componentselector/myappliwml.jsp page./WAP/nokia7110.minimize=/perso/components/componentselector/minappliwml.jsp page./WAP/nokia7110.maximize=/perso/components/componentselector/maxappliwml.jsp page./WAP/nokia7110.add=/perso/components/componentselector/myappliwml.jsp

216

Introducing Tivoli Personalized Services Manager 1.1

Each service is described in the properties file by the following attributes: A title: application.label.agenda=My Agenda An icon URL: application.icon.agenda=/images/agenda.gif A portlet URL: application.componenturl.agenda=/perso/agendaComponent An icon click URL: application.iconclickurl.agenda=/perso/home?layout=agenda&agenda=ma ximize For external services (with no portlet) the property application.componenturl.agenda is blank. The icon click URL can be completed dynamically with the user's profiling parameters. It uses pre-defined macros between * characters: http://www.yahoo.com/weather?q=*getCity* URL macros definition The macros are listed in Table 16.
Table 16. Macros for ComponentSelectorComponent

Macro Definition *getLastName* *getFirstName* *getCity* *getGender* *getXxx* *Yyy // any property name not starting with get

Method User.getLastName() User.getFirstName() User.getCity() User.getGender() User.getXxx() NameValuePairs.getValue(Yyy)

Commands The commands are shown in Table 17.


Table 17. Commands for ComponentSelectorComponent

Commands defaultcmd

Description Used when no specific command is addressed.

Dispatched HTML JSP myapplihtml.jsp

Dispatched WML JSP myappliwml.jsp

Chapter 9. Subscriber Personalized Service Environment

217

Commands minimize maximize

Description Minimizes the component Maximizes the component, and displays the user's selection. Adds a new application to the user's profile, and displays the user's selection. Deletes an application from the user's profile, and displays the user's selection. Displays the user's selection. Allows modification of the user's selection.

Dispatched HTML JSP minapplihtml.jsp myapplihtml.jsp

Dispatched WML JSP minappliwml.jsp maxappliwml.jsp

add

myapplihtml.jsp

myappliwml.jsp

delete

myapplihtml.jsp

myappliwml.jsp

myappli customize

myapplihtml.jsp customapplihtml.js p

myappliwml.jsp

Definition package com.tivoli.tsm.perso.components; public class ComponentSelectorComponent extends Component; public class ComponentSelectorComponentSession extends ComponentSession; Methods public Hashtable getComponents() Returns a Hashtable of ComponentDescription, which is the list of every service available on the portal. ComponentDescription is a utility class that describes a service; URL, title, icon URL, or type. Refer to the pTk Java documentation for a complete description. public Hashtable getMyComponents() Returns a Hashtable of ComponentDescription, which is the list of every service selected by the current user.

218

Introducing Tivoli Personalized Services Manager 1.1

9.5.1.3 Aggregator The Aggregator is responsible for filtering and aggregating content into a page, such as the head-lines of the portal. An aggregator handles a list of Contents. For each user, that content can be filtered out according to filtering rules specified by the site WebMaster, such as new promotions targeting some categories of users. The aggregated contents are presented in a JSP selected according to the device type. Those JSPs are responsible for skinning the aggregated contents with the correct mark-up language (HTML, WML, etc). The contents' abstract and detailed texts should not include any markup tags so they are device type independent. Portlet configuration file The file used for the configuration of this servlet is /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/perso/components/Ag gregatorComponent.properties as shown in the following screen. Each content is defined by: A label: politics A content abstract defined by its local URL:
aggregator.abstract.politics=/perso/samples/news/politics_abstract.txt

A content detail defined by its local URL:


aggregator.content.politics=/perso/samples/news/politics_news.txt

An image defined by its URL:


aggregator.images.politics=/images/news/clinton.jpg

The content filtering rules are specified in a class which is loaded by name. This class can be defined by the site webmaster to specify any filtering rules based on the user's profile. This class must implement the Filter API. Its name is specified in the property: aggregator.filterclass=com.tivoli.tsm.perso.filter.SampleFilter The component is shown in the following screen.

Chapter 9. Subscriber Personalized Service Environment

219

###################################################################### # Aggregator Component for TISM pTk # -----------------------------------###################################################################### # # List of contents aggregated # The syntax is : # aggregator.content.<content name>=<URL> # aggregator.abstract.politics=/perso/samples/news/politics_abstract.txt aggregator.content.politics=/perso/samples/news/politics_news.txt aggregator.images.politics=/images/news/clinton.jpg # aggregator.abstract.basketball=/perso/samples/news/basketball_abstract.txt aggregator.content.basketball=/perso/samples/news/basketball_news.txt aggregator.images.basketball=/images/news/basketball.jpg # aggregator.abstract.golf=/perso/samples/news/basketball_abstract.txt aggregator.content.golf=/perso/samples/news/golf_news.txt aggregator.images.golf=/images/news/golf.jpg # aggregator.abstract.soccer_1=/perso/samples/news/soccer_abstract.txt aggregator.content.soccer_1=/perso/samples/news/soccer_news.txt aggregator.images.soccer_1=/images/news/soccer.jpg # aggregator.abstract.soccer_2=/perso/samples/news/euro2000_abstract.txt aggregator.content.soccer_2=/perso/samples/news/euro2000_news.txt aggregator.images.soccer_2=/images/news/euro2000.jpg # ###################################################################### # Class to be provided to filter the contents to be displayed to a user # The SampleFilter works with the samples provided with TISM ###################################################################### # aggregator.filterclass=com.tivoli.tsm.perso.filter.SampleFilter # ###################################################################### # Pages for HTML devices ###################################################################### # # news aggregator page page./WEB.defaultcmd=/perso/components/aggregator/newsabstract.jsp page./WEB.minimize=/perso/components/newsabstract.jsp page./WEB.normal=/perso/components/aggregator/newsabstract.jsp page./WEB.maximize=/perso/components/aggregator/newsfull.jsp page./WEB.oneitem=/perso/components/aggregator/onenews.jsp # ###################################################################### # Pages for R380 WAP device ###################################################################### page./WAP/R380.defaultcmd=/perso/components/aggregator/minnewswml.jsp page./WAP/R380.minimize=/perso/components/aggregator/minnewswml.jsp page./WAP/R380.maximize=/perso/components/aggregator/newswml.jsp page./WAP/R380.oneitem=/perso/components/aggregator/onenewswml.jsp #

220

Introducing Tivoli Personalized Services Manager 1.1

page./WAP/NokiaEmul.defaultcmd=/perso/components/aggregator/minnewswml.jsp page./WAP/NokiaEmul.minimize=/perso/components/aggregator/minnewswml.jsp page./WAP/NokiaEmul.maximize=/perso/components/aggregator/newswml.jsp page./WAP/NokiaEmul.oneitem=/perso/components/aggregator/onenewswml.jsp # .../... page./WAP/nokia7110.defaultcmd=/perso/components/aggregator/minnewswml.jsp page./WAP/nokia7110.minimize=/perso/components/aggregator/minnewswml.jsp page./WAP/nokia7110.maximize=/perso/components/aggregator/newswml.jsp page./WAP/nokia7110.oneitem=/perso/components/aggregator/onenewswml.jsp # .../...

Portlet commands processed by Aggregator.class The commands are shown in Table 18.
Table 18. Commands for Aggregator.class

Commands defaultcmd

Description Used when no specific command is addressed. Minimizes the component. Maximizes the component, and displays the list of news abstracts filtered out for this user. Maximizes the component, and displays the list of news details filtered out for this user. Maximizes the component, and displays one news details

Dispatched HTML JSP newsabstract.jsp

DIspatched WML JSP minnewswml.jsp

minimize normal

newsabstract.jsp newsabstract.jsp

onenewswml.jsp

maximize

newsfull.jsp

newswml.jsp

oneitem

onenews.jsp

onenewswml.jsp

Chapter 9. Subscriber Personalized Service Environment

221

Definition package com.tivoli.tsm.perso.components; public class Aggregator extends Component; public class AggregatorComponentSession extends ComponentSession; Methods public ContentDescription getContent(String contentName) Returns the ContentDescription of one news item indexed by its content name. The ContentDescription is a utility class that describes a content: URL, title, icon URL, type,... Refer to the pTk java documentation for a complete description. public Enumeration getContentEnumeration(HttpServletRequest request) Returns an Enumeration of ContentDescription filtered out with the current user profile. The user's profile is retrieved in the request context.

9.6 Service portlets


Service portlets are turn-key applications or services within portal pages. The service portlets are as follows: LinkSelector portlet Calendar portlet Agenda portlet AddressBook portlet Customizor portlet Customer can also implement their own service portlets

9.6.1 Customizor Portlet


The Customizor Portlet allows you to capture parameters from the HTTP requests, validate them, and store them into the user's profile data. In the samples provided with TISM, it is used to present customization forms to the user: to select his favorite topics, and his desktop theme. Portlet Configuration file /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/perso/components/Cu stomizorComponent.properties is shown in the following screen.

222

Introducing Tivoli Personalized Services Manager 1.1

###################################################################### # Customizor Component for TISM pTk # -----------------------------------###################################################################### # ###################################################################### # customizable parameter rules : # param.<param name>=<checkings> # <checkings>=<value>,<parameter>,... # value 1st param 2nd param # --------------------- ------------# any min length max length # letter min length max length # digit min length max length # value params # ---------------------------------------------------# list allowed words list separated by ',' # Words will be compared with String.equalsIgnoreCase() method ###################################################################### param.style=list,default,clouds,paper,bricks,green param.topics=list,politics,soccer,golf,basketball ###################################################################### # Layout rules : # page.<device type>.<component HTTP command>=<JSP URL path> ###################################################################### ###################################################################### # Pages for HTML devices ###################################################################### # Minimized page page./WEB.defaultcmd=/perso/components/customizor/mincustomhtml.jsp page./WEB.minimize=/perso/components/customizor/mincustomhtml.jsp # page./WEB.maximize=/perso/components/customizor/maxcustomhtml.jsp page./WEB.save=/perso/components/customizor/maxcustomhtml.jsp # page./WEB.topics=/perso/components/customizor/topicshtml.jsp # page./WEB.themes=/perso/components/customizor/themehtml.jsp # ###################################################################### # layouts for Nokia 7110 WML device ###################################################################### # ###################################################################### # Pages for WML devices ###################################################################### # # .../...

Chapter 9. Subscriber Personalized Service Environment

223

List of portlet commands processed by Customizor Table 19 shows the portlet commands.
Table 19. Commands for Customizor Portlet

Commands defaultcmd

Description Used when no specific command is addressed. Minimizes the component Maximizes the component Validates, and saves a parameter whose name is defined in the properties file. Then it displays the maximized view. Not processed by the service() method. It displays the topics selection form. Not processed by the service() method. It displays the themes selection form.

Dispatched HTML JSP mincustomhtml.jsp

Dispatched WML JSP

minimize maximize save

mincustomhtml.jsp maxcustomhtml.jsp maxcustomhtml.jsp

topics

topicshtml.jsp

themes

themehtml.jsp

Class definition package com.tivoli.tsm.perso.components; public class CustomizorComponent extends Component; public class CustomizorComponentSession extends ComponentSession; Methods public boolean exists(String name, String value) Checks if a (name,value) pair exists in the user's profile. This method can be used in a portlet JSP to propose selections with check boxes. Choices

224

Introducing Tivoli Personalized Services Manager 1.1

already selected by the user in a previous session, are already checked in the proposed selection. public String getParameterCheckings(String parmName) It returns the edit checkings specification String specified in the properties file. e.g.:"list,default,clouds,paper,bricks,green" It can be used in a portlet JSP to retrieve and present the list of possible values for a selection.

9.6.2 LinkSelector Portlet


The LinkSelector allows you to display and manage the links referenced in the portal and saved in the user profile. The administrator of the portal uses the TISM director tool to register the links referenced by the portal. These links are sorted in a hierarchy of categories and stored in the TISM data base. The LinkSelector Portlet can be toggled with different views: The hierarchy of links referenced by the portal. The user can navigate in the categories, display the links per category, and save some of them into his or her own profile. The user favorite links; he or she can display the links, ordered by categories, and delete or modify them. Link input form to save new links into user profile; this is for links not referenced in the portal database. The links contained in the data base (both user favorite links, and portal referenced links) can contain macros. A macro is a symbol that is substituted at run-time with the values of the user profile. The macro's definition is specified here. Portlet configuration file /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/perso/components/Lin kSelectorComponent.properties

Chapter 9. Subscriber Personalized Service Environment

225

Portlet commands processed by LinkSelectorComponent.class The commands are listed in Table 20.
Table 20. Commands for LinkSelectorComponent.class

Command defaultcmd minimize reflink back copylink

Description Used when no specific command is addressed. Minimizes the component Displays the hierarchy of referenced links Goes up in the hierarchy of referenced links Saves one link from the referenced links to the personal favorite links Adds one new link to the personal favorite links Displays the user's favorite links Deletes one link from the personal favorite links Displays a form to create a new link Displays a form to create a new link

Dispatched HTML JSP minlinkhtml.jsp minlinkhtml.jsp reflinkhtml.jsp reflinkhtml.jsp reflinkhtml.jsp

Dispatched WML JSP minlink7110.jsp minlink7110.jsp reflink7110.jsp reflink7110.jsp reflink7110.jsp

addlink favlink dellink createlink creproplink

favlinkhtml.jsp favlinkhtml.jsp favlinkhtml.jsp createfavlinkhtml.jsp

favlink7110.jsp favlink7110.jsp favlink7110.jsp

createlink7110.jsp

Class definition package com.tivoli.tsm.perso.components; public class LinkSelectorComponent extends Component; public class LinkSelectorComponentSession extends ComponentSession; Methods public Enumeration getCatEnum() Returns an Enumeration of String, which is the list of categories at the current level in the referenced links hierarchy. For each user session, there is a server-side context of where the user is in the hierarchy.

226

Introducing Tivoli Personalized Services Manager 1.1

public Enumeration getCatIxEnum() Returns an Enumeration (LinkCategoryIxEnumeration), which is the list of categories indexes at the current level in the referenced links hierarchy. It is more efficient to access categories by their indexes than by their name. public String getCurrentCategory() Returns the name of the current category name for the user context in the referenced links repository. public Enumeration getLinkEnum() Returns the Enumeration of referenced links of the current category for the user context in the referenced links repository. public String[] getFavCategories() Returns the list of category names for the user's favorite links. public java.util.Enumeration getFavLinkEnum() Returns the Enumeration of Favorite Links for the current user. public java.util.Enumeration getFavLinkEnum(String category) Returns the Enumeration of Favorite Links of a given category for the current user. public FavoriteLinks getFavLinks(HttpServletRequest request) throws PersonalizationException Returns the FavoriteLinks Java Bean.

9.6.3 Calendar Portlet


The purpose of this portlet is to display the current month or week calendar. The user can scroll up and down the months, or click on a day to display the days appointments. Portlet configuration file /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/perso/components/Ca lendar Component.properties is shown in the next screen.

Chapter 9. Subscriber Personalized Service Environment

227

###################################################################### # Calendar Component for TSM pTk # -----------------------------------# The syntax is : # page.<device type>.<component HTTP command>=<JSP URL path> # # <device type> is specified in the device profile property "device.type" # ###################################################################### # Calendar parameters calendar.date.format=yyyy.MM.dd calendar.time.format=hh:mm:ss calendar.month.format=MMMM yyyy # ###################################################################### # Component start mode = minimized | maximized ###################################################################### # start.mode=maximized # ###################################################################### # layouts for HTML devices ###################################################################### page./WEB.defaultcmd=/perso/components/calendar/mincalendarhtml.jsp page./WEB.minimize=/perso/components/calendar/mincalendarhtml.jsp page./WEB.maximize=/perso/components/calendar/monthhtml.jsp page./WEB.currmonth=/perso/components/calendar/monthhtml.jsp page./WEB.nextmonth=/perso/components/calendar/monthhtml.jsp page./WEB.prevmonth=/perso/components/calendar/monthhtml.jsp page./WEB.currweek=/perso/components/calendar/weekhtml.jsp page./WEB.nextweek=/perso/components/calendar/weekhtml.jsp page./WEB.prevweek=/perso/components/calendar/weekhtml.jsp # ###################################################################### # layouts for Nokia 7110 WML device ###################################################################### page./WAP/nokia7110.defaultcmd=/perso/components/calendar/mincalendar7110.jsp page./WAP/nokia7110.minimize=/perso/components/calendar/mincalendar7110.jsp page./WAP/nokia7110.maximize=/perso/components/calendar/monthwml7110.jsp page./WAP/nokia7110.currmonth=/perso/components/calendar/monthwml7110.jsp page./WAP/nokia7110.nextmonth=/perso/components/calendar/monthwml7110.jsp page./WAP/nokia7110.prevmonth=/perso/components/calendar/monthwml7110.jsp page./WAP/nokia7110.week=/perso/components/calendar/weekwml7110.jsp # ###################################################################### # layouts for NokiaEmul WML device ###################################################################### page./WAP/NokiaEmul.defaultcmd=/perso/components/calendar/mincalendar7110.jsp page./WAP/NokiaEmul.minimize=/perso/components/calendar/mincalendar7110.jsp page./WAP/NokiaEmul.maximize=/perso/components/calendar/monthwml7110.jsp page./WAP/NokiaEmul.currmonth=/perso/components/calendar/monthwml7110.jsp page./WAP/NokiaEmul.nextmonth=/perso/components/calendar/monthwml7110.jsp page./WAP/NokiaEmul.prevmonth=/perso/components/calendar/monthwml7110.jsp page./WAP/NokiaEmul.week=/perso/components/calendar/weekwml7110.jsp

228

Introducing Tivoli Personalized Services Manager 1.1

The following properties (see the next screen) specify the date and time format. They must comply with java.text.SimpleDateFormat specifications.

# Calendar parameters calendar.date.format=yyyy.MM.dd calendar.time.format=hh:mm:ss calendar.month.format=MMMM yyyy

Portlet commands processed by Calendar Table 21 lists the commands.


Table 21. Commands for Calendar

Command defaultcmd

Description Used when no specific command is addressed. Minimizes the component Opens the month view Resets the calendar to the current month Scrolls to the next month view Scrolls to the previous month view Opens the week view (WAP only)

Dispatched HTML JSP mincalendarhtml.js p mincalendarhtml.js p monthhtml.jsp monthhtml.jsp

Dispatched WML JSP mincalendar7110.j sp mincalendar7110.j sp monthwml7110.jsp monthwml7110.jsp

minimize maximize currmonth

nextmonth prevmonth

monthhtml.jsp monthhtml.jsp

monthwml7110.jsp monthwml7110.jsp

week

weekwml7110.jsp

Class definition package com.tivoli.tsm.perso.components; public class CalendarComponent extends Component; public class CalendarComponentSession extends ComponentSession;

Chapter 9. Subscriber Personalized Service Environment

229

Methods public String getCurrentDate() Returns the current date formatted according to the Calendar properties file. public String getCurrentTime() Returns the current time formatted according to the Calendar properties file. public int getRollingMonthWeekNbr() Returns the number of weeks in the current month. public int getDayOfMonth(int week, int dayOfWeek) Returns the position of the day in the month; 1st day of Month, 2nd day of Month,...31st day of Month. If the specified day does not belong to the current rolling month, it returns a negative value (a calendar month view often starts with the last days of the previous month, or ends with the first days of the next month). public long getTime(int day) Returns the Time (number of ms since January 1, 1970) of the specified day of Month for the current rolling month.

9.6.4 Agenda Portlet


This portlet works in conjunction with the Calendar portlet and supports concurrent appointments. It displays user appointments for one day. The user can also create, update, and delete appointments. Each appointment entry contains a title, description, start time, and duration. A garbage collector exists to remove outdated appointments automatically. Portlet configuration file /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/perso/components/Ag endaComponent.properties The following properties specify the date and time format. It must comply with java.text.SimpleDateFormat specifications.

################################################# # Agenda Component for TSM pTk ################################################# # Agenda parameters # date format to display agenda.date.format=yyyy.MM.dd E

230

Introducing Tivoli Personalized Services Manager 1.1

The following properties specify the default minimum and maximum hours to display in the agenda view. If an appointment starts before or after these minimum and maximum hours, the minimum and maximum values will be updated and the appointment displayed.

################################################# #min and max hours to display in agenda agenda.min.hour=8 agenda.max.hour=18

The following properties specify the garbage collector properties. The periodicity defines when the garbage collector must be activated in order to delete elder appointments. The appointment validity time is defined by the last properties. In this case, every six months the garbage collector is launched to delete all appointments whose start dates are more than six months ago.

############################## # For Garbage Collector ############################## #GC periodicity (in months) agenda.gc.periodicity=6 #appointment validity time (in months) agenda.gc.apptvaliditytime=6

Portlet commands processed by Agenda The commands are shown in Table 22.
Table 22. Commands for Agenda

Command defaultcmd minimize maximize

Description Used when no specific command is addressed. Minimizes the component Opens all appointments of the current date of the agenda Prepares information to add a new appointment

Dispatched HTML JSP displayAppthtml.js p minAgendahtml.jsp displayAppthtml.js p addAppthtml.jsp

Dispatched WML JSP displayApptwml.jsp minAgendawml.jsp displayApptwml.jsp

addapptentry

addApptwml.jsp

Chapter 9. Subscriber Personalized Service Environment

231

Command updateappten try

Description Prepares information to update or delete an existing appointment Prepares information to delete an existing appointment Adds a new appointment Updates an existing appointment Deletes an existing appointment

Dispatched HTML JSP addAppthtml.jsp

Dispatched WML JSP updateDelApptwml 7110.jsp

delapptentry

delAppthtml.jsp

displayApptwml.jsp

addappt updateappt delappt

resultAgendahtml.j sp resultAgendahtml.j sp displayAppthtml.js p displayAppthtml.js p displayAppthtml.js p

displayApptwml.jsp displayApptwml.jsp displayApptwml.jsp

resOK resKO

nextday

Changes the start date of agenda to the next day and updates the agenda access Bean with the appointments of this new date Changes start date of agenda to the previous day and updates the agenda access Bean with the appointments of this new date

displayAppthtml.js p

displayApptwml.jsp

previousday

displayAppthtml.js p

displayApptwml.jsp

Class definition package com.tivoli.tsm.perso.components; public class AgendaComponent extends Component; public class AgendaComponentSession extends ComponentSession;

232

Introducing Tivoli Personalized Services Manager 1.1

Methods public com.tivoli.tsm.perso.Agenda getAgenda() Returns the agenda access Bean associated with the session. public java.util.Enumeration elements(int hour) This method returns an enumeration of appointments which have their start time between hour and hour+1. public String getDate() Returns the current date of the agenda as a string. The format of the date is defined in the configuration file. public int getStartDay() Returns the current day of the agenda (day between 1 to 31). public int getStartMonth() Returns the current month of the agenda (day between 1 to 12). public int getStartYear() Returns the current year of the agenda (1999, 2000, 2001, etc.). public Calendar getStartTime() Returns the current date of the agenda beginning at hour 00h00min00s. public int getMaxHourConfig() public void setMaxHourConfig(int newMaxHourConfig) Returns or sets the maximum hour to display in the agenda defined in the configuration file. public int getMinHourConfig() public void setMinHourConfig(int newMinHourConfig) Returns or sets the minimum hour to display in the agenda defined in the configuration file. public int getMaxHour() It returns the maximum hour displayed in the agenda. It can be bigger than the maximum hour defined in the configuration file if appointments start after the maximum defined in the configuration file. public int getMinHour() Returns the minimum hour displayed in the agenda. It can be smaller than the minimum hour defined in the configuration file if appointments start before the minimum defined in the configuration file.

Chapter 9. Subscriber Personalized Service Environment

233

public boolean isCommandValid() Returns true if the current command is valid. It could be false by example if the user tries to add an appointment in the past; the command is not validated and the new appointment is not added. public java.lang.String getPageCommand() A same page can be used to add, update or delete an appointment. This method returns the current command.

9.6.5 AddressBook Portlet


This portlet works with the WebMail (not part of TISM, but can be provided as a service offering) application to save and retrieve e-mail addresses automatically. The main features are: An entry contains a first name, last name, telephone and fax numbers, e-mail address, and a type (personal, business, etc) Display sorted by entry Name (A tab, B tab, Z tab), or entry types (business, personal, etc.) Creation, modification, and deletion of entries Integrated with WebMail application. A click on a name can trigger a 'mailto' reference to automatically send mail to that person. From the WebMail, a sender email address can be saved automatically Multi-rendering enabled: HTML, WML, XML Portlet configuration file /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/perso/components/Ad dressBookComponent.properties No specific properties for AddressBookComponent were changed in the default file. Portlet commands processed by AddressBook Table 23 shows the portlet commands.
Table 23. Commands for AddressBook

Command defaultcmd

Description Used when no command specified.

Dispatched HTML JSP findaddrbookentrie shtml.jsp

Dispatched WML JSP minaddressbookw ml.jsp

234

Introducing Tivoli Personalized Services Manager 1.1

Command minimize

Description Minimizes the component Opens all the address book entries Allows searching for an entry by the first and lastname characters Applies a filtering command by lastname Prepares information to add to a new contact. Prepares information to update or delete an existing entry Adds a new contact

Dispatched HTML JSP findaddrbookentrie shtml.jsp displayaddressboo khtml.jsp

Dispatched WML JSP minaddressbookw ml.jsp displayaddressboo kwml.jsp findaddrbookentrie swml.jsp

maximize

search

setfilter

displayaddressboo khtml.jsp manageaddrbooke ntrieshtml.jsp manageaddrbooke ntrieshtml.jsp

displayaddressboo kwtml.jsp addaddressbooken trywml.jsp manageaddrbooke ntrieswml.jsp

addentry

delupdateentry

addcommand

manageaddrbooke ntrieshtml.jsp

addaddressbooken trywml.jsp

delupdatecomman d

Updates or deletes an existing entry

displayaddressboo khtml.jsp

displayaddressboo kwml.jsp

endmanageentry

Terminates a sequence of add contacts (allow to update the address book entries in DB) It cancels an add, update or delete command

displayaddressboo khml.jsp

displayaddressboo kwtml.jsp

cancelmanageentr y

displayaddressboo khtml.jsp

Chapter 9. Subscriber Personalized Service Environment

235

Class definition package com.tivoli.tsm.perso.components; public class AddressBookComponent extends Component; public class AddressBookComponentSession extends ComponentSession; Methods public com.tivoli.tsm.perso.AddressBook getAddressBook() Returns the address book access Bean associated with the session. public java.util.Enumeration elements() This method returns an enumeration of address book entries. public String getCategoryFilter() Returns a string with the category used for a filtering display (returns All if no category filter selected). public String getLastnameFilter() Returns a string with the lastname pattern used for a filtering display (returns All if no lastname filter selected). public com.tivoli.tsm.perso.AddressBookEntry getCurrentEntry() Returns the last address book entry added, updated, or deleted. public java.lang.String getPageCommand() The same page can be used to add, update, or delete an address book entry. The page command allows you to differentiate the treatment. This method returns this command. public boolean isLastCommandValid() Returns true if the current command is valid, and false if it fails (for example, if the user tries to add an entry that already exists).

9.7 Filter API


The filter API allows the site WebMaster to define content filtering rules. These rules are expressed in Java, and use the user's profiling information. To define such rules, it is necessary to write a class that implements the com.tivoli.tsm.perso.filter.Filter interface. A sample Filtering class is provided in com.tivoli.tsm.perso.filter.SampleFilter as shown in the following screen. Interface definition package com.tivoli.tsm.perso.filter;

236

Introducing Tivoli Personalized Services Manager 1.1

public interface Filter; Methods public boolean isIncluded(String contentName, HttpServletRequest request) For each content item defined in the Aggregator property file, the Aggregator invokes the Filter API to determine if that content must be presented to that user. The first parameter contentName is the label of the content as defined in the Aggregator property file. The second parameter request gives access to the user's profiling information.

Chapter 9. Subscriber Personalized Service Environment

237

package com.tivoli.tsm.perso.filter; import javax.servlet.http.*; import com.tivoli.tsm.perso.*; import com.tivoli.tsm.authentication.*; /** * It is a sample Filter implementation. * It filters the contents aggregation for the sample news : * - the golf news * - the soccer news * - the basketball news * Date de cration : (06/06/00 13:35:35) * @author : Administrator */ public class SampleFilter implements Filter { public SampleFilter() { super(); } /** * Sample filtering function. */ public boolean isIncluded(String contentName, javax.servlet.http.HttpServletRequest request) { // It retrieves the NameValue pairs for the connected user // and checks if that contentName matches with one of the topics selected by the user // with the Customizor portlet try { NameValuePairs nameValues = NameValuePairs.getBean(request); // Isolate the prefix of content name (e.g. soccer_1 --> soccer) int pos = contentName.indexOf('_'); if (pos >= 0) contentName = contentName.substring (0, pos); // Check that content topic is selected in user profile if (nameValues.exists("topics", contentName)) return true; } catch (Exception ex) { Recorder.slog(ex); } return false; } }

9.8 Profiler API


It is often necessary to change the personalization rules to define new promotions, banners, content targeted according to user's profile, time of the day, day of the week, etc. This is possible with the Profiler API.

238

Introducing Tivoli Personalized Services Manager 1.1

It allows the portal Webmaster to define arbitrary rules that are evaluated at the beginning of each user session. Typically those rules can: Load the user's profiling data. Test any user's profile values, and other values provided by the JDK such as time and date. Perform dynamic user's grouping; if (condition), then user belongs to a group. Compute and save new properties in the user's profiling data. These properties can then be used to personalize pages. Those rules can be changed at any time. They are expressed in Java in a class that implements the Profiler interface. That class is loaded by name by the authentication Checker; its name is specified in the property files: Web devices: /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/authentication/Default Authenticator. properties WAP devices: /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/authentication/WapAu thenticator.properties The property is: authentication.profiler.class=com.tivoli.tsm.perso.filter.SampleProfiler A sample Profiling class is provided in com.tivoli.tsm.perso.filter.SampleProfiler as shown in the next screen. Interface definition package com.tivoli.tsm.perso.filter; public interface Profiler; Methods public void createDynamicProfile(javax.servlet.http.HttpServletRequest request);

Chapter 9. Subscriber Personalized Service Environment

239

This method is called at each user's session start. The user's profiling data is accessible through the request object.
package com.tivoli.tsm.perso.filter; import import import import java.util.*; javax.servlet.http.*; com.tivoli.tsm.perso.*; com.tivoli.tsm.authentication.*;

/** * It is a sample Filter implementation. * It filters the contents aggregation for the sample news : * - the golf news * - the soccer news * - the basketball news * Date de cration : (06/06/00 13:35:35) */ public class SampleProfiler implements Profiler { /** * This sample Profiler applies rules to group users, * according to their age and gender. It creates 3 groups : * kids, women, men * Date de cration : (10/07/00 18:58:24) * @param param javax.servlet.http.HttpServletRequest */ public void createDynamicProfile(javax.servlet.http.HttpServletRequest request) { try { User user = User.getBean(request); NameValuePairs pairs = NameValuePairs.getBean(request); pairs.del("group"); long now = new Date().getTime(); long birth = user.getBirthDate().getTime(); long age = (now - birth) / (31557600 * 1000); String gender = user.getGender(); if ((age < 18)) { pairs.add("group", "kid"); } else if (gender.equals("F")) { pairs.add("group", "woman"); } else { pairs.add("group", "man"); } } catch (PersonalizationException ex) { } } }

240

Introducing Tivoli Personalized Services Manager 1.1

9.9 Example of personalization


As you have seen, there is two different ways to develop depending on the type of code that you have to produce, so we have two different examples for internet and wireless. The wireless sample has been developed for a system without a gateway. This is important because the gateway transforms the code so some that works with a system without a gateway might not work for a gateway system, and furthermore different gateways may have different compatibility with the same code. You have to be conscious about that when you develop for a Wireless World.

9.9.1 Internet world


This example is a car club, where the subscribers receive car news, agendas, calendars, and other services. The subscriber must log on, and once the system knows who it is, the system displays her/his homepage. This homepage can be personalized by the user. 9.9.1.1 Implementation This section is going to explain how to perform each of the requirements in the code and configuration files. We will begin with the JSP codification. Authentication The subscriber when arrives at the homepage, we want the system to recognize who he or she is. If the system doesnt recognize the subscriber, he or she should be redirected to the authentication server. The following screen shows you how to do it.

<%@ page import="com.tivoli.tsm.authentication.*" %> <% if (Checker.isNotAuthenticated(request, response)) return; %>

Figure 129. Example of redirection to authentication server

Now the system knows who the user is and how the subscriber likes his/her homepage. Searching Yahoo This is a simple code in HTML. See the following screen.

Chapter 9. Subscriber Personalized Service Environment

241

<TR ID=componentbar ><TD align="center"><font color="white">Search</font></TD></TR> <TR ID=componentbckground ><TD> <FORM method=get action="http://search.yahoo.com/bin/search" target="_blanck"> <INPUT type=text name="p" size=15 height=17 maxlength=64> <INPUT type=submit value=go></TD> </FORM> </TD></TR>.

Customizor This TPSM component is used for customizing the background and the topics or themes that you want to receive in the news. See Figure 130.

Figure 130. Customizor component

The code to include in the home page is shown in the following screen.

<TR ><TD align="center">&nbsp;</TD></TR> <TR><TD bgcolor="black"> <% Component.include("/perso/customizorComponent", "custom", this, request, response); %> </TD></TR>

With this step, you will have the component in the homepage. If you want to customize the topics for the news that you want to offer or the themes for the background, you will have to perform the next steps: Customizing the topics The topics are specified in the properties file, /usr/TivTSM/personal/servlet/com/tivoli/tsm/perso/components/CustomizorC omponent.properties In the bold line in the next screen, you specify the different themes that you want to offer.

242

Introducing Tivoli Personalized Services Manager 1.1

###################################################################### # Customizor Component for TISM pTk # -----------------------------------###################################################################### # ###################################################################### # customizable parameter rules : # param.<param name>=<checkings> # <checkings>=<value>,<parameter>,... # # value 1st param 2nd param # --------------------- ------------# any min length max length # letter min length max length # digit min length max length # # # value params # ---------------------------------------------------# list allowed words list separated by ',' # Words will be compared with String.equalsIgnoreCase() method # ###################################################################### # param.style=list,default,clouds,paper,bricks,green param.topics=list,buy,finance,research,maintain # ###################################################################### # Layout rules : # page.<device type>.<component HTTP command>=<JSP URL path> ###################################################################### # ###################################################################### # Pages for HTML devices ###################################################################### # # Minimized page page./WEB.defaultcmd=/perso/components/customizor/mincustomhtml.jsp page./WEB.minimize=/perso/components/customizor/mincustomhtml.jsp # page./WEB.maximize=/perso/components/customizor/maxcustomhtml.jsp page./WEB.save=/perso/components/customizor/maxcustomhtml.jsp # page./WEB.topics=/perso/components/customizor/topicshtml.jsp # page./WEB.themes=/perso/components/customizor/themehtml.jsp # ###################################################################### # layouts for Nokia 7110 WML device ######################################################################

This will display the selected themes in the customizer panel. See Figure 131 on page 244.

Chapter 9. Subscriber Personalized Service Environment

243

Figure 131. Topics

The next step is to specify where the news will be located by altering /usr/TivTSM/personal/servlet/com/tivoli/tsm/perso/components/AgregatorCo mponent.properties as shown in the next screen. You specify for each topic an abstract, the content, and where an image is. In the specified files, you will create the abstract and content. You have a choice on displaying this as shown in Figure 132 and Figure 133 on page 245.

Figure 132. Abstracts news

244

Introducing Tivoli Personalized Services Manager 1.1

Figure 133. Content news

Now, you have a news service. If you have a problem that you dont get the changes in your page, restart the personal server. Customizing the desktop themes In the next screen, the themes are specified in the AgregatorComponent.properties after the topics. Once you set this, there are a few more steps. Create a style sheet in /usr/TivTSM/personal/content/css with the same name that you specified as the theme name in the AgregatorComponent.properties. For example, if you specify a theme name as verde, then you will have in the /usr/TivTSM/personal/content/css a style sheet file called verde.css. The result is the shown in the Figure 134 on page 247 and Figure 135 on page 247.

Chapter 9. Subscriber Personalized Service Environment

245

###################################################################### # Aggregator Component for TISM pTk # -----------------------------------###################################################################### # # List of contents aggregated # The syntax is : # aggregator.content.<content name>=<URL> # aggregator.abstract.buy=/perso/samples/news/politics_abstract.txt aggregator.content.buy=/perso/samples/news/politics_news.txt aggregator.images.buy=/images/buy_off.gif # aggregator.abstract.finance=/perso/samples/news/basketball_abstract.txt aggregator.content.finance=/perso/samples/news/basketball_news.txt aggregator.images.finance=/images/finance_off.gif # aggregator.abstract.research=/perso/samples/news/basketball_abstract.txt aggregator.content.research=/perso/samples/news/golf_news.txt aggregator.images.research=/images/research_off.gif # aggregator.abstract.maintain=/perso/samples/news/soccer_abstract.txt aggregator.content.maintain=/perso/samples/news/soccer_news.txt aggregator.images.maintain=/images/maintain_off.gif # aggregator.abstract.sell=/perso/samples/news/euro2000_abstract.txt aggregator.content.sell=/perso/samples/news/euro2000_news.txt aggregator.images.sell=/images/sell_off.gif # ###################################################################### # Class to be provided to filter the contents to be displayed to a user # The SampleFilter works with the samples provided with TISM ###################################################################### # aggregator.filterclass=com.tivoli.tsm.perso.filter.SampleFilter # ###################################################################### # Pages for HTML devices ###################################################################### # # news aggregator page page./WEB.defaultcmd=/perso/components/aggregator/newsabstract.jsp page./WEB.minimize=/perso/components/newsabstract.jsp page./WEB.normal=/perso/components/aggregator/newsabstract.jsp page./WEB.maximize=/perso/components/aggregator/newsfull.jsp page./WEB.oneitem=/perso/components/aggregator/onenews.jsp

246

Introducing Tivoli Personalized Services Manager 1.1

Figure 134. The selection of themes

Figure 135. An applied theme

Logout This TPSM component is for logging out from the personalization server and TPSM. The next screen shows the code for this component.

Chapter 9. Subscriber Personalized Service Environment

247

<TR ><TD align="center">&nbsp;</TD></TR> <TR><TD> <table BORDER=0 CELLSPACING=0 CELLPADDING=0> <tr ID=componentbar > <td WIDTH="228" ALIGN="center"><font color="FFFFFF">Logout from portal</font></td> <td WIDTH="17"><a href="/perso/home?layout=logout&logout=session"><img src="/images/minimizebutton.gif" href=""></a></td> </tr> </table> </TD></TR> <TR ><TD align="center">&nbsp;</TD></TR> <TR><TD> <table BORDER=0 CELLSPACING=0 CELLPADDING=0> <tr ID=componentbar > <td WIDTH="228" ALIGN="center"><font color="FFFFFF">General Logout</font></td> <td WIDTH="17"><a href="/perso/home?layout=logout&logout=sso"><img src="/images/minimizebutton.gif" href=""></a></td> </tr> </table> </TD></TR> <TR ><TD align="center">&nbsp;</TD></TR>

Link Selector This TPSM component allows the user to create links to the subscribers favorite places on his/her homepage. The subscriber manages the links by him/herself. See the code in the next screen and the results in Figure 136, Figure 137 on page 249, and Figure 138 on page 249.

<TR><TD align="center"> <% comp = (ComponentDescription) comps.get("links"); if (comp != null) comp.include(this, request, response); %> </TD> </TR>

Figure 136. Example of link selector step 1

248

Introducing Tivoli Personalized Services Manager 1.1

Figure 137. Example of link selector step 2

Figure 138. Example of link selector step 3

If you want to personalize the layout of the LinkSelector, go to /usr/TivTSM/personal/content/component/linkselector and choose the file that you are using. Calendar This TPSM component is a calendar as shown in Figure 139 on page 250. The code to include it in the personalized homepage is shown in the next screen.

<TR><TD align="left" width="90%"> <% comp = (ComponentDescription) comps.get("calendar"); if (comp != null) comp.include(this, request, response); %> </TD> </TR>.

Chapter 9. Subscriber Personalized Service Environment

249

Figure 139. Example of Calendar component

Agenda The Agenda is a TPSM component (see the Figure 140 on page 251) that you can add to your personalize homepage with the code shown in the following screen.

<TR><TD align="center"> <% comp = (ComponentDescription) comps.get("agenda"); if (comp != null) comp.include(this, request, response); %> </TD> </TR>

250

Introducing Tivoli Personalized Services Manager 1.1

Figure 140. Example of Agenda component

ComponentSelector This TPSM component permits the subscriber to customize the applications that he/she wants to have in his/her homepage. An example of the code to add to a homepage is shown in the next screen. Later on, we are going to explain how to add new applications to the ComponentSelector.

<% Component.include("/perso/componentSelectorComponent", "comps", this, request, response); %>

Figure 141 on page 252 shows what the ComponentSelector looks like on a homepage.

Chapter 9. Subscriber Personalized Service Environment

251

Figure 141. Example of ComponentSelector

To add a new external application that can be chosen by the user, follow these steps: 1. Edit the file ComponentSelectorComponent.properties of the directory /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/perso/component as shown in the following screen. 2. Add the next lines for your new external application, see the bold code as our example. The first thing that you have to do is to decide what name are you going to give to the application, for instance, mail, to identify the properties in the file a. Label of application to appear in the homepage as description b. Name application.label.mail=My Mail c. Icon that you are going to use and location:
application.icon.mail=/images/yahoo.gif

d. The location in the TPSM:


application.componenturl.mail=

e. URL for the new application:


application.iconclickurl.mail=http://mail.yahoo.com

f. Type of devices to apply:


application.devicetype.mail=/WEB

3. Stop and restart the personalization server. 4. Try your homepage as shown in Figure 142 on page 256 and Figure 143 on page 256. The code for ComponentSelectorComponent.properties is as follows:

252

Introducing Tivoli Personalized Services Manager 1.1

###################################################################### # Application Selector Component for TISM pTk # -----------------------------------# # List of applications managed by the ComponentSelector # # The syntax is : # --------------# application.label.<application name>=<application label> # application.icon.<application name>=<application icon URL> # application.componenturl.<application name>=<component URL> # this parameter is required for components # application.iconclickurl.<application name>=<Click URL for the icon> # this parameter is optional : when present, the component icon is clickable # application.devicetype.<application name>=<device_type> # where <device_type> = /WEB, /WAP or / for all devices ###################################################################### # Calendar : Example of application which entry point is a component (servlet) # it is referenced by the URI path of its servlet alias # application.label.calendar=My Calendar application.icon.calendar=/images/calendar.gif application.componenturl.calendar=/perso/calendarComponent application.iconclickurl.calendar= application.devicetype.calendar=/ # ###################################################################### # Agenda : Example of application which entry point is a component (servlet) # it is referenced by the URI path of its servlet alias # application.label.agenda=My Agenda application.icon.agenda=/images/agenda.gif application.componenturl.agenda=/perso/agendaComponent application.iconclickurl.agenda=/perso/home?layout=agenda&agenda=maximize application.devicetype.agenda=/ # ###################################################################### # Link Selector : Example of application which entry point is a component (servlet) # it is referenced by the URI path of its servlet alias # application.label.links=My Favorite Links application.icon.links=/images/world.gif application.componenturl.links=/perso/linkSelectorComponent application.iconclickurl.links= application.devicetype.links=/ # ###################################################################### # Address book Example of application which entry point is a JSP # It is referenced by the JSP URI path used in a tag <a href="..."></a> # application.label.addressBook=My Address Book application.icon.addressBook=/images/addrbook.gif application.componenturl.addressBook=/perso/addressBookComponent

Chapter 9. Subscriber Personalized Service Environment

253

application.iconclickurl.addressBook=/perso/home?layout=addrbook&addressBook=maximi ze application.devicetype.addressBook=/ # ###################################################################### # Example of aggregation content # application.label.news=The News application.icon.news=/images/news.gif application.componenturl.news=/perso/news application.iconclickurl.news=/perso/home?layout=home&news=maximize application.devicetype.news=/ # ###################################################################### # Example of an external link with macrosubstitution using the user's profile # This type of link has no component URL # application.label.weather=My Weather application.icon.weather=/images/weather.gif application.componenturl.weather= application.iconclickurl.weather=http://search.weather.yahoo.com/weather/query.cgi? q=*getCity* application.devicetype.weather=/WEB # ###################################################################### # Example of an external link with macrosubstitution using the user's profile # This type of link has no component URL # application.label.mail=My Mail application.icon.mail=/images/yahoo.gif application.componenturl.mail= application.iconclickurl.mail=http://mail.yahoo.com application.devicetype.mail=/WEB ###################################################################### # # Component JSP's : dispatched according to (deviceType, componentCommand) # ###################################################################### # Pages for HTML devices # ---------------------# The syntax is : # page.<device type>.<component HTTP command>=<JSP URL path> ###################################################################### # # Startup mode: defaultcmd --> maximized for WEB devices page./WEB.defaultcmd=/perso/components/componentselector/myapplihtml.jsp # # Minimized page page./WEB.minimize=/perso/components/componentselector/minapplihtml.jsp # # Page with my applications page./WEB.maximize=/perso/components/componentselector/myapplihtml.jsp page./WEB.myappli=/perso/components/componentselector/myapplihtml.jsp page./WEB.add=/perso/components/componentselector/myapplihtml.jsp page./WEB.delete=/perso/components/componentselector/myapplihtml.jsp #

254

Introducing Tivoli Personalized Services Manager 1.1

# # Page with other available applications page./WEB.customize=/perso/components/componentselector/customapplihtml.jsp # ###################################################################### # layouts for WAP devices ###################################################################### # # Startup mode for WAP devices : defaultcmd --> minimized page./WAP/R380.defaultcmd=/perso/components/componentselector/myappliwml.jsp page./WAP/R380.minimize=/perso/components/componentselector/minappliwml.jsp page./WAP/R380.maximize=/perso/components/componentselector/maxappliwml.jsp page./WAP/R380.add=/perso/components/componentselector/myappliwml.jsp page./WAP/R380.delete=/perso/components/componentselector/myappliwml.jsp page./WAP/R380.myappli=/perso/components/componentselector/myappliwml.jsp page./WAP/NokiaEmul.defaultcmd=/perso/components/componentselector/myappliwml.jsp page./WAP/NokiaEmul.minimize=/perso/components/componentselector/minappliwml.jsp page./WAP/NokiaEmul.maximize=/perso/components/componentselector/maxappliwml.jsp page./WAP/NokiaEmul.add=/perso/components/componentselector/myappliwml.jsp page./WAP/NokiaEmul.delete=/perso/components/componentselector/myappliwml.jsp page./WAP/NokiaEmul.myappli=/perso/components/componentselector/myappliwml.jsp page./WAP/nokia7110.defaultcmd=/perso/components/componentselector/myappliwml.jsp page./WAP/nokia7110.minimize=/perso/components/componentselector/minappliwml.jsp page./WAP/nokia7110.maximize=/perso/components/componentselector/maxappliwml.jsp page./WAP/nokia7110.add=/perso/components/componentselector/myappliwml.jsp page./WAP/nokia7110.delete=/perso/components/componentselector/myappliwml.jsp page./WAP/nokia7110.myappli=/perso/components/componentselector/myappliwml.jsp page./WAP/R320.defaultcmd=/perso/components/componentselector/myappliwml.jsp page./WAP/R320.minimize=/perso/components/componentselector/minappliwml.jsp page./WAP/R320.maximize=/perso/components/componentselector/maxappliwml.jsp page./WAP/R320.add=/perso/components/componentselector/myappliwml.jsp page./WAP/R320.delete=/perso/components/componentselector/myappliwml.jsp page./WAP/R320.myappli=/perso/components/componentselector/myappliwml.jsp # .../...

Chapter 9. Subscriber Personalized Service Environment

255

Figure 142. ComponentSelectorComponent after adding an external application

Figure 143. New application added by the user

The whole code for the entire page with all components installed is shown in the next screen.

256

Introducing Tivoli Personalized Services Manager 1.1

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <%@ page import="com.tivoli.tsm.authentication.*" %> <% if (Checker.isNotAuthenticated(request, response)) return; %> <%@ page buffer="none" import="com.tivoli.tsm.perso.*,com.tivoli.tsm.perso.components.*,java.util.*,java.t ext.*" %> <% User user = User.getBean(request); NameValuePairs pairs = NameValuePairs.getBean(request); String first, second, address1; try{ first = user.getFirstName(); second = user.getLastName(); address1 = user.getAddress1(); }catch(Exception e) { System.out.println(e); } // Compute style sheet String style[] = pairs.getValues("style"); String css = "default"; if (style.length >= 1) css = style[0]; %> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <TITLE>&nbsp;TSM Personal page&nbsp;</TITLE> <LINK rel="stylesheet" href="/perso/css/<%=css%>.css" type="text/css"> </head> <BODY text="#000000" link="#000000" vlink="#000000" alink="#000000"> <TABLE border="0" cellspacing="0" cellpadding="0" > <tr> <TD><IMG width="250" height="190" src="/images/autoclub.gif" ALT="Auto Club" border="3" ></TD> <TD ><IMG width="750" height="50" src="/images/spacer.gif" ></TD> <TD><IMG width="250" height="190" src="/images/ah1.gif" ALT="Auto Club" border="3" ></TD> </TR> <tr> <td> </TABLE> <TABLE border="0" cellspacing="0" cellpadding="0" width="100%"> <TR> <TD valign="top" align="left"> <!----------- PAGE LEFT column ---------------------------> <TABLE border="0" cellspacing="0" cellpadding="0" width="250"> <!----------- Search form to Yahoo ---------------------------> <TR ID=componentbar ><TD align="center"><font color="white">Search</font></TD></TR> <TR ID=componentbckground ><TD> <FORM method=get action="http://search.yahoo.com/bin/search" target="_blanck"> <INPUT type=text name="p" size=15 height=17 maxlength=64> <INPUT type=submit value=go></TD> </FORM> </TD></TR>

Chapter 9. Subscriber Personalized Service Environment

257

<!----------- Calendar

--------------------------->

<% Hashtable comps = ComponentSelectorComponent.getComponents("comps", request); ComponentDescription comp; %> <!----------- Customizor ---------------------------> <TR ><TD align="center">&nbsp;</TD></TR> <TR><TD bgcolor="black"> <% Component.include("/perso/customizorComponent", "custom", this, request, response); %> </TD></TR> <!----------- Logout -----------------------------------> <TR ><TD align="center">&nbsp;</TD></TR> <TR><TD> <table BORDER=0 CELLSPACING=0 CELLPADDING=0> <tr ID=componentbar > <td WIDTH="228" ALIGN="center"><font color="FFFFFF">Logout from portal</font></td> <td WIDTH="17"><a href="/perso/home?layout=logout&logout=session"><img src="/images/minimizebutton.gif" href=""></a></td> </tr> </table> </TD></TR> <TR ><TD align="center">&nbsp;</TD></TR> <TR><TD> <table BORDER=0 CELLSPACING=0 CELLPADDING=0> <tr ID=componentbar > <td WIDTH="228" ALIGN="center"><font color="FFFFFF">General Logout</font></td> <td WIDTH="17"><a href="/perso/home?layout=logout&logout=sso"><img src="/images/minimizebutton.gif" href=""></a></td> </tr> </table> </TD></TR> <TR ><TD align="center">&nbsp;</TD></TR> <!----------- Links selector ---------------------------> <TR><TD align="center"> <% comp = (ComponentDescription) comps.get("links"); if (comp != null) comp.include(this, request, response); %></TD> </TR> <TR ><TD align="center">&nbsp;</TD></TR>
<tr><td> </td></TR> <TR ID=componentbar ><TD align="center"><font color="white">Cars Trade Marks</font></TD></TR> <TR><TD align="left"><font color="black"><A HREF="www.bmw.com">BMW</a></font></TD></TR> <TR><TD align="left"><font color="black"><A HREF="www.ferrari.com">Ferrari</a></font></TD></TR> <TR><TD align="left"><font color="black"><A HREF="www.ford.com">Ford</a></font></TD></TR> <TR><TD align="left"><font color="black"><A HREF="www.gm.com">General Motors</a></font></TD></TR> <TR><TD align="left"><font color="black"><A HREF="www.hyundai.com">Hyundai</a></font></TD></TR> <TR><TD align="left"><font color="black"><A HREF="www.honda.com">Honda</a></font></TD></TR> <TR><TD align="left"><font color="black"><A HREF="www.mercedes.com">Mercedes</a></font></TD></TR> <TR><TD align="left"><font color="black"><A HREF="www.nissan.com">Nissan</a></font></TD></TR> <TR><TD align="left"><font color="black"><A HREF="www.renault.com">Renault</a></font></TD></TR> <TR><TD align="left"><font color="black"><A HREF="www.seat.com">Seat</a></font></TD></TR> <TR><TD align="left"><font color="black"><A HREF="www.toyota.com">Toyota</a></font></TD></TR>

258

Introducing Tivoli Personalized Services Manager 1.1

<TR><TD align="left"><font color="black"><A HREF="www.vw.com">Volkswagen</a></font></TD></TR> </TABLE> </TD> <!----------- PAGE RIGHT column ---------------------------> <TD valign="top" align="left" > <TABLE border="0" cellspacing="5" cellpadding="0"> <!----------- Promotional banner : could be done with Aggregator component too ---------> <% // Include promotional banner for kid // The property group=xxx is set by the SampleProfiler at user session start if (pairs.exists("group", "kid")) { %> <TR><TD align="center" valign="top" width="90%"> <A HREF="http://www.toysrus.com/"><IMG BORDER="0" SRC="/images/toys.jpg"></A> </TD></TR> <% } %> <% // Include promotional banner for men if (pairs.exists("group", "man")) { %> <TR><TD align="center" valign="top" width="90%"> <A HREF="http://www.ferrari.it/"><IMG SRC="/images/car.jpg"></A> </TD></TR> <% } %> <% // Include promotional banner for woman if (pairs.exists("group", "woman")) { %> <TR><TD align="center" valign="top" width="90%"> <A HREF="http://www.ferrari.it/"><IMG SRC="/images/elle.gif"></A> </TD></TR> <% } %> <TR ID=componentbar ><TD align="center" WIDTH="500"> <H2><font color="#FFFFFF">Welcome <%=user.getFirstName() %> </font></H2> </TD></TR> <!----------- News : presented by Aggregator component ---------> <TR><TD align="left" valign="top" width="90%"> <% // Include news filtered by user prefered topics comp = (ComponentDescription) comps.get("news"); if (comp != null) comp.include(this, request, response); else { %> <H3>Please subscribe to the news...</H3> <BR> Click on the top left box 'My applications' to select the news. <%

Chapter 9. Subscriber Personalized Service Environment

259

} %> </TD></TR> <tr><td>&nbsp;</td></tr> </TABLE> </TD> <!----------- PAGE LAST column ---------------------------> <td> <TABLE> <!--------------------Aplications--------------------------> <TR><TD> <!----------- Component selector ---------------------------> <% Component.include("/perso/componentSelectorComponent", "comps", this, request, response); %> </TD></TR> <!--------------------Calendar--------------------------> <TR><TD align="left" width="90%"> <% comp = (ComponentDescription) comps.get("calendar"); if (comp != null) comp.include(this, request, response); %> </TD> </TR> <!----------------------Agenda-------------------------> <TR><TD align="center"> <% comp = (ComponentDescription) comps.get("agenda"); if (comp != null) comp.include(this, request, response); %> </TD> </TR> </TABLE> </TD> </TR> </TABLE> </BODY> </HTML> . .

260

Introducing Tivoli Personalized Services Manager 1.1

9.9.2 Wireless World


As in the Internet world, you can customize the homepage in Wireless World, but the amount of space in the display is very limited. TPSM doesnt have a welcome homepage for WAP, so you have to create it yourself. Here is an example.

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <%@ page import="com.tivoli.tsm.authentication.*" %> <% if (Checker.isNotAuthenticated(request, response)) return; %> <%@ page contentType="text/vnd.wap.wml" import="java.util.*,java.text.*,com.tivoli.tsm.perso.*"%> <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <!-- Source Generated by WML Deck Decoder --> <%@ page buffer="none" import="com.tivoli.tsm.perso.components.*,com.tivoli.tsm.perso.*,java.util.*" %> <% LayoutComponentSession layout = (LayoutComponentSession) LayoutComponentSession.getSession(request); %> <wml> <template> <do type="prev" name="back" label="Back"> <prev/> </do> <do type="accept" name="nav1" label="Service Menu"> <go href="<%=layout.href(response)%>"> <postfield name="currentComponent" value="comps"/> <postfield name="comps" value="myappli"/> </go> </do> </template> <% String currentComponent = layout.getCurrentComponent(); // If no previous value, set to component selector if (currentComponent == null) currentComponent = "comps"; if (currentComponent.equals("comps")) Component.include("/perso/componentSelectorComponent", currentComponent, this, request, response); else { // Component.include("/perso/componentSelectorComponent", "comps", this, request, response, "minimize"); Hashtable comps = ComponentSelectorComponent.getComponents("comps", request); ComponentDescription comp = (ComponentDescription) comps.get(currentComponent); if (comp != null) comp.include(this, request, response); } %></wml>

Chapter 9. Subscriber Personalized Service Environment

261

This code redirects the subscriber when it detects that he or she has not been authenticated before. See the code in Section 9.9.1.1, Implementation on page 241. The rest of the code is for using the TPSM component, ComponentSelectorComponent. Add other components just as we did for HTML. To see the results, see Figure 88 on page 144.

262

Introducing Tivoli Personalized Services Manager 1.1

Chapter 10. Virtual ISP


This chapter is an overview of the Virtual ISP feature. For configuration and further information, please refer to Chapter 5, Enrollment and service provisioning on page 73.

10.1 Overview
Tivoli Personalized Services Manager can host several stand-alone ISPs (virtual ISPs) each with its own brand name and unique identity without any degradation in response time or processing efficiency. Bulk transfers of subscriber bases can be accomplished programmatically, allowing ISPs to purchase existing subscriber populations and quickly add them to the ISP's business. Businesses can own and operate a virtual ISP within the Tivoli Internet Services Manager base system. Virtual ISPs operate as distinct entities separately branded with a unique realm name (e.g., acme.com) Virtual ISPs can configure the Tivoli Internet Services Manager enrollment screens to display their logo, and offer their billing plans and payment options. Access codes used during enrollment to trigger the proper enrollment screens and enrollment options from the Tivoli Internet Services Manager system base. Also, virtual ISPs can create a unique home page to support their company's identity. The Internet Signup file (INS file) created at the end of enrollment and downloaded to a subscriber's PC will configure the subscriber's browser to use the virtual ISP's settings (for home page, e-mail and newsgroup settings). Virtual ISPs can configure Tivoli Internet Services Manager's Customer Care component to conform to their company's identity and support their subscriber's needs, and can offer special business accounts within the ISP. These business accounts can have their own subscribers A variety of APIs allow Tivoli Personalized Services Manager to integrate nearly any Internet component that meets industry standards to provide diverse functionality and follow new trends in Internet interaction.

Copyright IBM Corp. 2001

263

10.2 REALMs
Realms are a division of the subscriber name-space that allow the ISP to divide its Internet provisioning services, effectively creating a set of Virtual ISPs. Tivoli Personalized Services Manager can support several realms for its virtual ISPs. For example: allConsumers.com smallBusiness.com importantCustomer.com Virtual ISPs can use the Tivoli Personalized Services Manager enrollment process to enroll their own subscribers but maintain management control over enrollment channels, access codes, deals, subscriber names, and e-mail addresses as shown in Figure 144. Realms can have consolidated or separate billing systems.

Figure 144. Internet business model

With a delegated REALM administration, TISM provides a configurable way to limit the realms that Customer Service Reps (CSRs) can access.

264

Introducing Tivoli Personalized Services Manager 1.1

This allows CSRs to use the full functionality of the Customer Care application, but limits their access to some or all realms within Tivoli Internet Services Manager.

10.2.1 User groups Within Realms


Subscribers can be divided into groups within a realm (see realm description above). For example: Consumer account users Business account users Employee account users Marketing managers, CSRs, and system administrators can support and target information to specific groups by limiting their scope to the group they have in mind. Virtual ISPs can hire their own CSR staff or subcontract through agencies. The CSRs working for the virtual ISP will be configured with security privilege profiles that deny access to all but the virtual ISP's realm(s).

10.3 Enrollment and service provisioning


Every ISP relies on a centrally managed enrollment engine while being allowed total autonomy in presentation and payment plan offers. A standard set of enrollment screens can be customized to deliver uniquely branded messages and graphics as well as ISP-specific billing plans and payment options. Behind the scenes, a consistent array of data elements are captured from each new subscriber, thereby distributing all of Tivoli Personalized Services Manager's additional features to every subscriber, regardless of their ISP as shown in Figure 145 on page 266. With individual branding comes unique realm name distinction. Every ISP hosted on Tivoli Personalized Services Manager is granted a realm - which is a partition within the overall database that distinguishes them and their subscribers from all others in the system and the Internet at large. Realms help extend brand name identification. Realm 1 could be "alpha.com" and Realm 2 could be "beta.com." Every subscriber to the ISP named "Alpha" would receive a user name and e-mail address that is unique to the realm of "alpha.com" (John@alpha.com, Mary@alpha.com, etc.).

Chapter 10. Virtual ISP

265

Every subscriber enrolled with the ISP named "Beta" would get a user name and e-mail address unique to "beta.com" (John@beta.com, Mary@beta.com, etc.).

Figure 145. Enrollment and Service Provisioning

10.4 Configuring a Virtual ISP


A Realm is an ISP. It is the area where is going to work a company, for example, IBM is a realm and its domain is ibm.com. To configure a Virtual ISP, we need to create a new REALM on the TPSM, please refer to Chapter 5.1.1, Creation of a Realm on page 76 for the creation of a REALM. In order to be able to start using the new REALM or Virtual ISP, it is necessary to perform the next tasks: Create a Registration name, refer to Chapter 5.1.2, Creation of Registration Names on page 77. Create an Access Code, refer to Chapter 5.1.3, Creation of Access Codes on page 79 Create a Deal, refer to Chapter 5.1.4, Creation of a deal on page 82 Create a Deal Text, refer to Chapter 5.1.5, Creation of deal text on page 84

266

Introducing Tivoli Personalized Services Manager 1.1

Optionally, you can create a property for the deal, refer to Chapter 5.1.6, Creating a property on page 87 Associate the Deal with the Realm, refer to Chapter 5.1.7, Associating the deals with the Realm on page 90 Associate the Access Code with the Deal, refer to Chapter 5.1.8, Associating the Access Codes with the deals on page 92 Also, we need to add CSRs to each one of the Virtual ISPs, please refer to Chapter 7, Using Customer Care and Director Tool on page 149.

10.5 Enrolling into the Virtual ISP


With the creation of the REALM also the realm creates a registration name for the enrollment process. The registration name by default has just one access code, but we can create as much access codes as we want to offer and assigned them to the REALM in order to make the a multi access REALM type. Depending on the access code that the user selects, different deals are going to be offered to him. For further details refer to Chapter 5.1.13, Managing the enrollment process on page 99.

Chapter 10. Virtual ISP

267

268

Introducing Tivoli Personalized Services Manager 1.1

Chapter 11. Integration Toolkit


The TSM Integration Toolkit, iTk, is a set of tools that permits you to integrate TPSM with other systems. The TSM Integration Toolkit, iTk, is written in Java, so it is easy to use, portable, and independent of the type of database used. The TPSM has its main functionality based in the database, so to be able to manage TPSM, the developer has to manage the database. This is provided via Java Database Connectivity (JDBC), and is oriented to transactions. This means that if an error occurs in the middle of a set of database commands, the database will not become inconsistent. A transaction must complete fully before the database is updated. Some examples of the use of iTk are: Read the available Access Codes for controlling the enrollment process Create an account and read the details of the accounts for TPSM subscribers Read and change the deals Authenticate TSM Customer Service Representative and System Administrators Read and change Methods of Payment (MOPs) Read Realms Create a subscriber and read it Create a transaction from the Transaction Factory Create a TxCursor interface, which provides an uniform return value from the read() method of the Transaction class, using the fetch() and close() methods Create a TxWhereClause instance, which provides the capability to specify a complex searching criteria when invoking the read() method of Transaction.

11.1 Architectural overview


The database is at the core of Tivoli Internet Services Manager. It contains all the information needed to run the management system. It also implements constraints to guarantee the integrity of the data.

Copyright IBM Corp. 2001

269

Around the database primary business and transaction objects are available that provide access to the database in a uniform and consistent way without having to code the actual SQL statements that are needed. See Figure 146.

Figure 146. iTk architecture

Using JDBC, the specific details of the database are hidden from higher level objects. This makes it easier to change databases because it provides isolation from different database management systems like DB2, Oracle, etc. JDBC separates the database server from the business object server, and even facilitates an evolution to a distributed database. A set of high level, business oriented objects provide simple ways to perform complex business transactions. In turn, the high-level business objects are built around the simpler, table oriented business objects.

270

Introducing Tivoli Personalized Services Manager 1.1

11.2 iTk usage scenarios


iTk can be used in different ways as shown in Figure 147.

Figure 147. iTk usage scenarios

1. Form based browser This is the most lightweight type of client possible. An unmodified (no plug-in) version of Internet Explorer, Netscape Navigator, or any other type of Web browser accesses a Web server. Behind the Web server, a servlet engine verifies input submitted with HTML form fields and prepares the pages to be sent to the browser. The servlet engine communicates with the business logic server and prepares HTML to be sent to the browser using Java Server Pages. This approach has major advantages over older technologies like CGI (Common Gateway Interface) or Server Side Plugins. First, the Java language used in the servlet engine guarantees the uniformity of one platform. Second, the portability of the Java language enables deployment on different platforms with different types of servlet engines. Lastly, the presence of the servlet engine avoids the costly generation of a new process with every HTTP request as required by CGI type interfaces. With this model, the servlet engine contains iTk object stubs if RMI is used. If RMI is not used the objects contained in the

Chapter 11. Integration Toolkit

271

business logic server will run in the Java Virtual Machine (JVM) of the servlet engine. 2. Java Applets This solution allows deploying business code on the browser without the need of software installation. A Java applet is downloaded from the server when the browser accesses a specific webpage. The code is dynamically loaded into the Java Virtual Machine on the client and is launched once the download is completed. This model does not require any software installation and guarantees easy updates of software because only the server needs to be updated. The applet can communicate directly with the business logic, or an intermediate server can be introduced in between. With this approach, the Java applet contains iTk object stubs if RMI is used. Otherwise, the objects contained in the business logic server will run in the same JVM as the applet. 3. Third party applications In some cases customers want to integrate Tivoli Internet Services Manager in their core applications. In this case, access to the Tivoli Internet Services Manager services through a browser or Web server is not convenient. Instead, customers would like to write programs that access Tivoli Internet Services Manager directly, through well-known interfaces. In this model, iTk object stubs are contained in the third party application if RMI is used. Otherwise, the business logic server code will run in the same JVM as the third party application.

11.3 iTk classes


iTk is a Java package, iTk.jar. This package contains all the iTk classes. These classes can be classified into: 1. Core Classes: classes for iTk architecture. 2. iTk Business Objects: provides the business level functionality, for instance, subscriber, account, realm, deal, etc.

11.3.1 Core classes


Figure 148 on page 273 shows the relations between the objects.

272

Introducing Tivoli Personalized Services Manager 1.1

Figure 148. iTk core classes structure

The iTk permits the integration of applications without knowing the structure of the database tables. Some examples of what the iTk core classes do are:

Chapter 11. Integration Toolkit

273

Manage TSM Transactions. The action of creating a new subscriber is represented as one transaction. Because there are several database updatesm, if any fail, the database rolls back to avoid corruption. Connect to the database. Generate SQL commands dynamically. Providing a common interface to retrieve data. Utility function as debug or trace. Validate values set by an application. Manage exceptions. There are objects oriented to transactions in the database, such as Transaction, TransactionConfig, TransactionFactory, TxCursor, TxException, and TxWhereClause. These classes are not accessible to the applications, and are only explained to understand the architecture: DbConnectionMgr Manages and retains database connections. SqlGenerator Creates your own SQL statements dynamically. It optimizes updates and validation of data. Trace Generic class used for tracking the progress and completion of methods. It generates three types of methods; information, error, and warning. TraceResources Provides NLS support on tracing/logging. TxObject The base for all transaction objects. Defines the methods described in the Transaction interface and provides a default implementation. It also takes care of transaction management and failures. TxSqlContext Holds the resources that are reserved by a TxCursor Object. TxValue Encapsulates all objects and Java primitive types that are set to the fields of TxObject. TxValue object can also store the TxWhereClause object.

274

Introducing Tivoli Personalized Services Manager 1.1

TxValues Developed to improve the performance of retrieving data with RMI. Validator Allows applications to perform some simple validation of user input locally.

11.3.2 iTk Business Objects


The TSM Business Objects are classes that manage TSM objects in the TSM databases. A TSM Business Object is a representation of one or more database tables. There are low level classes that can be used instead of TSM Business Objects, but they are not recommended because they do not guarantee integrity within TSM. iTk also supports composed SqlGenerator to handle composed TSM Business Object class queries. The TSM Business Objects have three categories of methods: 1. Methods to specify returned fields: Not all applications need all of the attributes from the database, which is the iTk Tivoli Internet Services Manager Business Object default. Two methods to choose among the attributes are provided: a. void setSelectAllField(boolean): allows application to select all fields true or false at once. b. void setSelectField(int field_index, boolean): allows the application to select/unselect an individual field. field_index is defined in the class as public static final integer attributes -- usually they are all-caps class attributes. Code Example: to select realm name to be retrieved from Realm object:
setSelectField(Realm.REALM_NAME,TRUE);

This set of methods wont be described in this redbook. NOTE: The table primary keys are always set as select field. The reason is that the iTk is always prepared for an update or delete after a read statement, and the keys are used to build the where clause because its faster to update or delete an entry from the table based on keys . 2. set <attributeName>|get<attributeName> methods: All Tivoli Internet Services Manager Business Objects implement this category of methods. It sets and gets attributes from the object.

Chapter 11. Integration Toolkit

275

Code Example: to set and get realm name from Realm object:
setRealmName(Tivoli); String db_realm_name= getRealmName();

These methods wont be described in this redbook. 3. Database related methods: All Tivoli Internet Services Manager Business Objects derive from TxObject, and implement the following methods. Note: Additional specific methods will be described within the specific Tivoli Internet Services Manager Business Object. a. count(): Returns the number of entries in the database that matches the specified criteria. b. create(): Creates the object in the database. NOTE: A few Tivoli Internet Services Manager Business Objects do not allow creation. c. delete(): Deletes one or more entries from the database. d. NOTE: This method is not available for all classes because not all Tivoli Internet Services Manager objects are programmatically deletable. e. read(): Retrieves all entries from the database that match the specified criteria f. update(): Updates one or more entries in the database. NOTE: A few Tivoli Internet Services Manager Business Objects do not allow update.

276

Introducing Tivoli Personalized Services Manager 1.1

Chapter 12. Device Manager


In this chapter we give an introduction of the Device Manager feature on TPSM. For additional information about installation and configuration, please refer to the IBM Redbook Pervasive Device Management, using Tivoli Personalized Services Manager, SG24-6027.

12.1 Overview
Device Manager is software that helps service providers manage their subscribers devices. In this chapter, the term devices means information appliances, such as personal digital assistants (PDAs), handheld PCs, subnotebooks, smartphones, wireless access protocol (WAP) devices, set-top boxes, in-vehicle information systems, and other emerging devices for pervasive computing. You use the Device Manager as a part of Tivoli Personalized Services Manager (TPSM). The Tivoli Personalized Services Manager provides a completely integrated infrastructure of software components for internet service provisioning. The purpose of Device Manager is to extend the functionality of the required subscription manager product to include management of devices and their related resources, like device application software. Device Manager must work in conjunction with either Tivoli Personalized Services Manager or another subscription manager product whose enrollment application meets the requirements. Device Manager also requires a relational database. All job and device information is stored in tables in this database. The relational database is a required product, not a component. The subscription manager product and Device Manager share the same database. Device Manager uses Java technology. Its servers run on IBM AIX operating system or Sun Solaris environments. It uses a global, relational database for data storage. UDB and Oracle8 are supported with DMS v1.1. Its administration clients run in Microsoft Windows operating system environments, where the Device Manager console for administrators is deployed. Device Manager can be installed as a single-server environment or, for larger user and device numbers, as a multi-server environment with a network dispatcher as the front end. Using a network dispatcher as a load balancer, you can keep scalability and high availability for a number of Device Manager servers.

Copyright IBM Corp. 2001

277

12.2 Device Manager on TPSM


The Device Manager feature on TPSM provides a flexible framework and set of services for managing a subscriber's devices. Device vendors can extend the system's framework to enable their devices to be managed by the Tivoli Personalized Services Manager (Figure 149). The Tivoli Personalized Services Manager provides a wide range of subscriber device management features, including: Enrolling subscribers and their devices Distributing software to the device Updating device configuration remotely Listing the devices owned by a user Updating restpages (startup pages) for screenphones

Figure 149. Device Manager on TPSM

12.3 Device Manager Components


Device Manager consists of six components: Device Manager server

278

Introducing Tivoli Personalized Services Manager 1.1

Device plug-ins Device management server API Device Manager database Device management API Device Manager console We describe the functions of each component in this section.

12.3.1 Device Manager server


A Device Manager server is a computer that includes the device management server servlet (DMS servlet) and the device plug-ins. When a new job gets submitted, Device Manager server processes it for devices. The DMS servlet and device plug-ins work together to process a job. When a device connects to the service provider's network, it is directed, either directly or by a network dispatcher, to a Device Manager server for job processing. A redirection function checks to make sure the device is enrolled with the service provider. Functionally, Device Management server is divided into two portions; Device Management Dispatcher and the Device Management Server servlet. 12.3.1.1 Device Management Dispatcher Device Management Dispatcher (DMD) assists the identification and dispatching of devices connecting to the network. Devices new to Device Manager contact Device Management Dispatcher first, and then are redirected to an enrollment application for initial setup and configuration. Devices already enrolled also contact DMD at the beginning of the connection, and the DMD checks if any jobs are scheduled for the job. If so, DMD redirects the device to a DMS servlet to process those jobs. Thus, every device contacts DMD first in the connection, and DMD will redirect a device to the appropriate enrollment server if it is not registered in the database, or redirect it to a home DM server that executes device specific jobs. 12.3.1.2 Device Management Server servlet Devices are redirected by the DMD to Device Management Server servlet (DMS servlet) when there are device management jobs for the device. The DMS servlet interacts with Device plug-ins and coordinates the execution of scheduled jobs against specific devices.

Chapter 12. Device Manager

279

The DMS servlet interacts with the device management API to get information such as the home Device Manager server from the Device Manager database. It also uses DM API to update the database after successful completion of a job.

12.3.2 Device plug-ins


A device plug-in resides on the Device Manager server and provides the logic that handles device identification, communications, job processing, and high-level management tasks for a particular class of managed devices. A device class is made up of specific kinds of manufacturer devices whose operations can be managed similarly. For example, one device class provided with Device Manager includes Palm PDAs that run PalmOS 3.0.1 (or later); another device class might include Internet appliance devices that use the Windows CE operating system and a specific CPU. Device plug-ins are typically developed by and provided with Device Manager, but they can also originate with a device manufacturer or integrator and be installed later on a Device Manager server. Device plug-ins communicate with device agent, device specific software that is installed on the device, to distribute software and perform remote device configuration. The communications between a device plug-in and the device agent is device-class-dependent and is determined by the integrator who wrote the plug-in code. The device management server API defines the programming interface between a device plug-in residing on Device Manager and the rest of Device Manager, including its redirection function. The device management server API is designed to be generic and protocol-independent. 12.3.2.1 The components of device plug-in Plug-ins are logically structured into four parts: 1. A device-specific communication component that the plug-in software uses to communicate with the device. This interface is defined by the plug-in developer; typically it is implemented as a servlet. 2. The internal device communications component, which enables communication between the plug-in software and the DMS servlet. This piece is created by the plug-in developer, using the DeviceCommunicationManager API methods. 3. The set of device-specific job classes. This piece of the plug-in interacts with the DMS servlet, the device-specific communication component, and the DeviceCommunicationManager implementation. It implements the higher-level management tasks (such as software distribution or device

280

Introducing Tivoli Personalized Services Manager 1.1

configuration). This piece is created by the plug-in developer by implementing the DeviceJob interface. 4. An optional template file that describes the set of device parameters such as the IP gateway or domain name server used, that are required by all devices of the same device class, to support many different kinds of devices and jobs. Device plug-ins provide the actual implementation logic for devices managed by the Device Manager. Device plug-ins implement the logic described in 1. and 2. as the Device Class layer. It defines a set of methods to perform low-level primitive operations on the device. The Job Class layer implements high-level management tasks, which is described in 3. It performs management tasks by invoking the methods of the Device Class layer.

12.3.3 Device management server API


The Device Management Server API (DMS API, com.tivoli.dms.dmserver) defines the programming interface between the Device Management Server servlet (DMS servlet, which means DMD or DMS servlet here) and the device plug-ins. This interface allows device plug-ins to interact with a Device Manager server. The DMS API is a general purpose, protocol-independent interface that serves as an abstraction layer, allowing all classes of devices to be managed in the same way by Device Manager. Either Device Manager, or the device manufacturer or integrator, provides a device plug-in for the new device that implements the required functionality and contains logic for performing the unique management functions for the class of devices. The DMS API can be used to develop plug-ins for any new class of device that implement device identification, communications, and job processing for all devices in the new class.

12.3.4 Device Manager database


The Device Manager database is the repository for all device management information. It is implemented in a relational database and accessed using the device management API. The database contains tables of entries that describe devices and device-related data resources. Device Management database stores all device management information that is used to perform management tasks. When a device connects to the Device Manager server for the first time, the device information is enrolled to the Device Manager database, such as Device ID, device type, and user name. Also, when software distribution jobs are submitted to devices, the information about the job; software package name, distribute duration, target realm, and so forth; is stored.

Chapter 12. Device Manager

281

The Device Manager database is accessed using the device management API. This API updates all records in the Device Manager database that are related to each other. Therefore, Device Management Server servlets, the Device Manager console, and all external applications such as subscription managers and billing systems should use the device management API to access the Device Manager database. The Subscription Manager and Device Manager databases reside in the same database. However, they use different tables that have no relation between them. For additional information about these tables, see the Device Manager: Developer's Guide, which is shipped on the TPSM CD.

12.3.5 Device management API


The device management API (package com.tivoli.dms.dmapi) defines the programming interface between Device Manager servers, administration clients, and external applications, and the device-related data resources stored in the Device Manager database. Resources that can be managed include table entries describing devices and classes of devices, their parameters, the device class template, software defined for and available to devices, software actually installed on devices by Device Manager, Device Manager servers, and jobs and classes of jobs. Methods are provided to add, delete, and modify these entries, and to search the database for entries matching certain criteria. In addition, the device management APIs will be used by various Subscription Manager (SM) components of TPSM. Examples of how the device management APIs are (or may be) used by these components are listed below: The DMD uses the DM API to determine if connecting devices are defined in the Device Manager database, and to determine where to route the devices. The DMS servlet uses the DM API to determine the device class for a specific device, the job class implementation for a specific device class and the device, and/or device class parameters for a device. It also uses DM API to query/update the list of installed software for a device. The Device Manager console uses the DM API to perform the operations t invoked by an administrator such as creating/listing devices, displaying device classes, viewing/modifying the parameters for devices or device classes, and submitting new jobs for devices.

282

Introducing Tivoli Personalized Services Manager 1.1

The SM component of TPSM uses the DM API to define, configure, and schedule jobs for new devices enrolled through the enrollment application. In addition, Customer Care or Self Care applications can be written to enable customer service representatives (CSRs) or customers to view or manage devices within their scope of control.

12.3.6 Device Manager console


The Device Manager console is a graphical user interface (GUI) for administering device management operations from a Microsoft Windows client. Administrators use this interface to perform tasks like add and view devices and device software, submit jobs for devices, and query job status. The console invokes methods of the device management API to access information in the Device Manager database and perform requested operations. The Device Manager console uses the device management API to interact with the Device Manager database to accomplish administrator-initiated operations. External applications like enrollment and billing can also use this API to retrieve device information from the database and submit device jobs. From this console, a service providers administrators can manage the following: Single devices Classes of devices Parameters for devices Parameters for device classes Jobs for specific devices Jobs for all devices in a particular realm Jobs for all devices in a particular deal Software for devices Device Manager servers Typical jobs for devices include the following supplied job types (though all job types may not be applicable to all devices): Device configuration Software distribution Rest page management (typically for devices that stay continuously connected to the service provider)

Chapter 12. Device Manager

283

Administrators submit these jobs to update the configuration of devices (including network parameters), distribute new or updated software applications to devices, and update device rest pages with, for example, timely new information from the service provider. Administrators can initiate a new job of an available job type and target it to: All devices All devices of a device class All devices in a realm, a deal, or both One or more selected devices Other typical administrator tasks include the following: Viewing device jobs and their status. Canceling jobs. Identifying and configuring a newly deployed device, including associating the device with its owner. Obtaining and displaying information about the software Device Manager has distributed to a device, and the configuration parameters it has set for a device.

12.4 Device Manager functions


The Device Manager feature provides a flexible framework and set of services for managing subscribers devices. It includes: Enrollment Offers easy methods for enrolling new subscribers and their devices, and enrolling devices for existing subscribers. Updating device configuration remotely Performs initial device setup, and changes device setup as needed at any time during enrollment or after. Distributing software to the device The service provider can centrally manage software and configure Tivoli Personalized Services Manager to automatically distribute software to a subscribers personal devices. Updating restpages (startup pages) for screenphones Rest pages are device-resident initial start pages. They may contain clickable icons and advertising that are remotely changed by the

284

Introducing Tivoli Personalized Services Manager 1.1

service provider. Tivoli Personalized Services Manager Device Manager controls the distribution of rest pages to devices. APIs The device management API allows device and related information to be maintained in the Device Manager database and available for use by external applications, Device Manager servers, and administrative clients. The Device Management server API allows for configuration and distribution requests to be queued for distribution to devices. The Device Management server API also allows DMS servlet and device plug-ins to communicate as see in Table 24.
Table 24. DM functions and device plugins matrix

Palm Enrollment Device Config Software Distribution Restpage Support APIs Supported Supported Supported N/A Supported

Aero 8000 Supported Supported Supported N/A Supported

Netvista Supported Supported Supported Supported Supported

Win CE Supported Supported Supported N/A Supported

12.5 Supported devices


In this section, we describe supported devices and device plug-ins that are included in Device Manager v1.1. We also describe device characteristics. Tivoli Personalized Services Manager Device Manager feature supports several types of devices such as: Personal Digital Assistants (PDAs) Screenphones Wireless Access Protocol (WAP) devices Device Manager v1.1 includes device plug-ins. Plug-ins are plugable software that enables administrators to manage the following types of supported physical devices: Palm Computing PDAs Compaq Aero 8000 H/PC Pro devices NetVista Internet Appliance devices

Chapter 12. Device Manager

285

Generic support for Windows CE devices

12.5.1 Palm Computing PDAs


Device Manager supports all Palm III and Palm V-series Palm Computing devices that use the PalmOS R3.0.1 (or later) operating system. Palm positions these devices as PC companions used as connected organizers. PalmOS devices, with their relatively small displays, infrequent network connections, and portability features, are not necessarily optimized for all the same services that might be offered to users of other devices. For example, rest page presentations are ideal for devices that are continuously connected to a service provider, but not for disconnected PalmOS devices that people carry around in their pockets. As with any unique class of devices, the services and jobs for which they are best suited will vary with the characteristics of the device class itself. Device Manager supplies a device plug-in for the supported PalmOS devices that includes the following Java classes: The Palm device class The SW_DIST job class for software distribution The DEVICE_CFG job class for device configuration For more information about the physical Palm computing devices themselves, see the Palm organizer information on the Palm Computing Web site:
http://www.palm.com

12.5.2 Compaq Aero 8000 H/PC Pro devices


The Compaq Aero 8000 Handheld PC Professional (Aero 8000) is a handheld PC or subnotebook for sales and service people, mobile business professionals, and other field personnel who need access to their enterprise network or the Internet. This handheld PC includes Microsoft Windows CE for Handheld PC Professional Edition, Version 3.0 operating system. The Aero 8000 is light in weight at only three pounds, and has resources unavailable with many palm-like devices. With the Aero 8000, you can access the Internet or the enterprise network with an Ethernet PC card or internal modem. The Aero 8000 also includes these features: Instant-on so there is no waiting to boot Flash memory to store applications in non-volatile memory A 10-inch SVGA (800 x 600) screen providing a 256-color display A 95% size keyboard A touch pad system for a point-and-click Windows environment

286

Introducing Tivoli Personalized Services Manager 1.1

A built-in smart card reader Pocket e-mail The Aero 8000 can be pre-configured for Device Manager by a service provider. The consumer has quick access to the Internet through the Pocket Internet Explorer browser. For more about the Aero 8000, see the Compaq Web site. See http://www5.compaq.com/products/handhelds/8000/ The Device Manager software includes a device plug-in for the Aero 8000 and its agent program. The Aero 8000 plug-in installs with the Device Manager software. The communication protocol between the Aero 8000 plug-in and its agent program is based on the HTTP protocol. The device agent program works only as an HTTP client.

12.5.3 NetVista Internet Appliance devices


The NetVista Internet Appliance is a device for Internet access, e-mail, voice mail, Personal Information Management (PIM), and other pervasive computing tasks. This device uses the PvC (pervasive computing) client stack as the base architecture, and then places a shell and applications within that architecture. The PvC client stack is a set of software components for a wide range of non-traditional devices, such as Service Gateway or Networked Vehicle. The stack consists of a real time operating system, native programs, a JVM, the Service Management Framework, and other services. To manage the NetVista Internet Appliance efficiently, the plug-in software for Device Manager server and the device agent program are needed. The plug-in software and the device agent program communicate with each other using a protocol based on the HTTP or HTTPS protocol, and perform system management tasks. The plug-in software functions as the servlet on the HTTP server, and the device agent program is implemented as a Service Management Framework bundle written in Java and functions as the client. When disconnected from the service provider's network, the display on the NetVista Internet Appliance presents a rest page, which is a Web page customized by the service provider to display advertising and other information. The NetVista Internet Appliance can be pre-configured for Device Manager by a telephone company or service provider.

Chapter 12. Device Manager

287

The NetVista Internet Appliance also includes: A unique ID, such as serial number or NIC ID The PvC client stack The ability to handle special HTTP messages from the enrollment program for starting the system management agent after the enrollment is complete Support for HTTP redirection Support for SSL For more information about the NetVista Internet Appliance, see the NetVista Web site: http://www.pc.ibm.com/us/netvista/index.html

12.5.4 Generic Windows CE devices


A Windows CE device is a handheld PC, Palm-type device, pocket-type device, or subnotebook for sales and service people, mobile business professionals, and other field personnel who need access to their enterprise network or the Internet. This handheld PC includes Microsoft Windows CE for Handheld PC Professional Edition, Version 3.0 operating system. Windows CE devices have resources unavailable with many Palm-type devices. With Windows CE devices, you can access the Internet or the enterprise network with an Ethernet PC card or internal modem. Windows CE devices also include these features: Instant-on so there is no waiting to boot Flash memory to store applications in non-volatile memory Typical screen sizes are 240x320, 640x240, 640x480, 800x480, and 800x600 Typical CPUs include SH-3, SH-4, MIPS, and StrongARM Pocket Internet Explorer browser Because screen size and resolution varies among the Windows CE devices, the Device Manager user interface may change for different types of Windows CE devices. In addition, the CPU type and file structure can differ among the various Windows CE devices. A Windows CE device can be pre-configured for Device Manager by a service provider. The consumer has quick access to the Internet through the Pocket Internet Explorer browser. The Device Manager software includes a device plug-in for Windows CE devices and the Windows CE agent program. The Windows CE plug-in

288

Introducing Tivoli Personalized Services Manager 1.1

installs with the Device Manager software. The communication protocol between the Windows CE plug-in and the Windows CE agent program is based on the HTTP protocol. The device agent program works only as an HTTP client.

12.6 Features of Device Manager


This section describes the features of Device Manager.

12.6.1 Extensibility for managing various devices


In order to provide extensibility to manage a variety of devices, the Device Manager server supports a plug-in architecture. Device Manager provides some basic device modules that can be easily extended to support various device types. And Device Manager can support more than one device type at the same time. TPSM Device Manager provides Device plug-ins that support Palm Pilot, Aero8000, general WindowsCE, and NetVista Internet Appliance by default. Other device venders, service providors, and ISPs can develop their own plug-ins with specialized functions to meet their needs. Generic functions are handled by other components of the Device Manager (that is Device Management Server servlets), while functions specific to a class of devices are localized to the plug-in for that device class. Along with the Device plug-ins, device agents are provided. Device agents reside on the device, and communicate with the server side plug-in to perform actual installation or parameter settings. The communication between a device plug-in and the device agent is device-class-dependent and is determined by the integrator who writes the plug-in code. For example, the WAP device vender can develop WAP device plug-in and the agent that uses WAP as its communication protocol between the plug-in and the agent. TPSM Device Manager plug-ins, which support Palm Pilot, Aero8000, general WindowsCE devices, and NetVista Internet Appliance, use HTTP (and HTTP-S) as their transport mechanism between the plug-in and the device agent. This allows device management traffic to pass through various kinds of network elements such as fire walls. However, it imposes some restrictions on the interaction between devices and the Device Manager, primarily that interactions take the form of request/response pairs initiated by the device. The Device Management server API defines programming interface between a Device plug-in and Device Management Dispatcher or Device Management Server servlet. The device management server API is designed to be generic and protocol-independent to support many kinds of devices and jobs.

Chapter 12. Device Manager

289

Plug-ins developers use this API to write plug-in code.

12.6.2 Centralized management


Device Manager console is used to manage all Device Manager functions. Business administrators and system administrators use this console to perform management tasks.

12.6.3 Provisioning to other system


The Device Management API provides the programming interface for managing the device, jobs, and related resources in the device Manager database. All Device Manager components and other applications that access the Device Manager database should use this API. The interfaces between the DM feature and the subscription manager are well-defined and highly localized. Consequently, DM can be used as a facility through which other applications can perform device management. Essentially, the DM system is a repository of device data and an engine for processing jobs on devices when they are connected to the network. DM relieves the applications that use it from the need to store detailed device information (such as operating system, installed software, and configuration settings), and shields them from the protocols used to communicate with each type of device.

12.6.4 Scalability and availability


Scalability is achieved horizontally with many DM servers identically configured. Requests are routed to these servers by a front-end such as an IBM e-Network Dispatcher. The e-Network Dispatcher allows you to add extra Device Manager servers without stopping the service. For the back-ended database system, you can use the IBM AIX HACMP solution for high availability.

290

Introducing Tivoli Personalized Services Manager 1.1

Appendix A. Special notices


This publication is intended to help people to understand the concepts and implementations of Tivoli Personalized Services Manager. The information in this publication is not intended as the specification of any programming interfaces that are provided by Tivoli Personalized Services Manager V1.1 or Tivoli Internet Services Manager V1.1. See the PUBLICATIONS section of the IBM Programming Announcement for ?Tivoli Personalized Services Manager V1.1 or Tivoli Internet Services Manager V1.1for more information about what publications are considered to be product documentation. References in this publication to IBM products, programs or services do not imply that IBM intends to make these available in all countries in which IBM operates. Any reference to an IBM product, program, or service is not intended to state or imply that only IBM's product, program, or service may be used. Any functionally equivalent program that does not infringe any of IBM's intellectual property rights may be used instead of the IBM product, program or service. Information in this book was developed in conjunction with use of the equipment specified, and is limited in application to those specific hardware and software products and levels. IBM may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to the IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785. Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independently created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact IBM Corporation, Dept. 600A, Mail Drop 1329, Somers, NY 10589 USA. Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee. The information contained in this document has not been submitted to any formal IBM test and is distributed AS IS. The use of this information or the implementation of any of these techniques is a customer responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. While each item may have been reviewed by IBM for accuracy in a specific situation, there is no guarantee

Copyright IBM Corp. 2001

291

that the same or similar results will be obtained elsewhere. Customers attempting to adapt these techniques to their own environments do so at their own risk. Any pointers in this publication to external Web sites are provided for convenience only and do not in any manner serve as an endorsement of these Web sites. The following terms are trademarks of the International Business Machines Corporation in the United States and/or other countries:
e (logo) Netfinity Redbooks RS/6000 System/390 WorkPad IBM NetVista Redbooks Logo SecureWay WebSphere

The following terms are trademarks of other companies: Tivoli, Manage. Anything. Anywhere.,The Power To Manage., Anything. Anywhere.,TME, NetView, Cross-Site, Tivoli Ready, Tivoli Certified, Planet Tivoli, and Tivoli Enterprise are trademarks or registered trademarks of Tivoli Systems Inc., an IBM company, in the United States, other countries, or both. In Denmark, Tivoli is a trademark licensed from Kjbenhavns Sommer - Tivoli A/S. C-bus is a trademark of Corollary, Inc. in the United States and/or other countries. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and/or other countries. Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States and/or other countries. PC Direct is a trademark of Ziff Communications Company in the United States and/or other countries and is used by IBM Corporation under license. ActionMedia, LANDesk, MMX, Pentium and ProShare are trademarks of Intel Corporation in the United States and/or other countries. UNIX is a registered trademark in the United States and other countries licensed exclusively through The Open Group.

292

Introducing Tivoli Personalized Services Manager 1.1

SET, SET Secure Electronic Transaction, and the SET Logo are trademarks owned by SET Secure Electronic Transaction LLC. Other company, product, and service names may be trademarks or service marks of others.

Appendix A. Special notices

293

294

Introducing Tivoli Personalized Services Manager 1.1

Appendix B. Related publications


The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this redbook.

B.1 IBM Redbooks


For information on ordering these publications see How to get IBM Redbooks on page 297. Tivoli Personalized Services Manager Device Manager 1.1: Pervasive Device Management, SG24-6027 An Introduction to IBM WebSphere Everyplace Suite Version 1.1, SG24-5995 Database Performance on AIX in DB2 UDB and Oracle Environments, SG24-5511 IBM HTTP Server Powered by Apache on RS/6000, SG24-5132 WebSphere Application Servers: Standard and Advanced Editions, SG24-5460 IBM WebSphere Performance Pack: Load Balancingwith IBM SecureWay Network Dispatcher, SG24-5858 IBM Network Dispatcher User's Guide (Version 3.0 for Multiplatforms), GC31-8496

B.2 IBM Redbooks collections


Redbooks are also available on the following CD-ROMs. Click the CD-ROMs button at ibm.com/redbooks for information about all the CD-ROMs offered, updates and formats.
CD-ROM Title Collection Kit Number IBM System/390 Redbooks Collection SK2T-2177 IBM Networking Redbooks Collection SK2T-6022 IBM Transaction Processing and Data Management Redbooks Collection SK2T-8038 IBM Lotus Redbooks Collection SK2T-8039 Tivoli Redbooks Collection SK2T-8044 IBM AS/400 Redbooks Collection SK2T-2849 IBM Netfinity Hardware and Software Redbooks Collection SK2T-8046 IBM RS/6000 Redbooks Collection SK2T-8043 IBM Application Development Redbooks Collection SK2T-8037 IBM Enterprise Storage and Systems Management Solutions SK3T-3694

Copyright IBM Corp. 2001

295

B.3 Other resources


These publications are also relevant as further information sources: HACMP for AIX 4.4 Planning Guide, SC23-4277 The following publications mentioned in this redbook are Product Documentation, which can be obtained in Tivoli product CD-ROMs or IBM WebSphere Everyplace Suite product CD-ROMs: WebSphere Everyplace Suite Getting Started v1.1 Tivoli Internet and Personalized Services Manager Documentation: TPSM Overview Tivoli Internet and Personalized Services Manager Documentation: Planning and Installation Tivoli Internet and Personalized Services Manager Documentation: Administration Tivoli Internet and Personalized Services Manager Documentation: Director Guide Tivoli Internet and Personalized Services Manager Documentation: Programmers Guide Tivoli Personalized Services Manager Device Manager: Planning and Installation Tivoli Personalized Services Manager Device Manager: Administration Tivoli Personalized Services Manager Device Manager: Developer's Guide Tivoli Personalized Services Manager Device Manager: PalmOS Plug-in Notes Tivoli Personalized Services Manager Device Manager: NetVista Internet Appliance Plug-in Notes Tivoli Personalized Services Manager Device Manager: Aero 8000 Plug-in Notes Tivoli Personalized Services Manager Device Manager: Windows CE Plug-in Notes

296

Introducing Tivoli Personalized Services Manager 1.1

How to get IBM Redbooks


This section explains how both customers and IBM employees can find out about IBM Redbooks, redpieces, and CD-ROMs. A form for ordering books and CD-ROMs by fax or e-mail is also provided. Redbooks Web Site ibm.com/redbooks Search for, view, download, or order hardcopy/CD-ROM Redbooks from the Redbooks Web site. Also read redpieces and download additional materials (code samples or diskette/CD-ROM images) from this Redbooks site. Redpieces are Redbooks in progress; not all Redbooks become redpieces and sometimes just a few chapters will be published this way. The intent is to get the information out much quicker than the formal publishing process allows. E-mail Orders Send orders by e-mail including information from the IBM Redbooks fax order form to: In United States or Canada Outside North America Telephone Orders United States (toll free) Canada (toll free) Outside North America 1-800-879-2755 1-800-IBM-4YOU Country coordinator phone number is in the How to Order section at this site: http://www.elink.ibmlink.ibm.com/pbl/pbl e-mail address pubscan@us.ibm.com Contact information is in the How to Order section at this site: http://www.elink.ibmlink.ibm.com/pbl/pbl

Fax Orders United States (toll free) Canada Outside North America 1-800-445-9269 1-403-267-4455 Fax phone number is in the How to Order section at this site: http://www.elink.ibmlink.ibm.com/pbl/pbl

This information was current at the time of publication, but is continually subject to change. The latest information may be found at the Redbooks Web site. IBM Intranet for Employees IBM employees may register for information on workshops, residencies, and Redbooks by accessing the IBM Intranet Web site at http://w3.itso.ibm.com/ and clicking the ITSO Mailing List button. Look in the Materials repository for workshops, presentations, papers, and Web pages developed and written by the ITSO technical professionals; click the Additional Materials button. Employees may access MyNews at http://w3.ibm.com/ for redbook, residency, and workshop announcements.

Copyright IBM Corp. 2001

297

IBM Redbooks fax order form


Please send me the following: Title Order Number Quantity

First name Company Address City Telephone number Invoice to customer number Credit card number

Last name

Postal code Telefax number

Country VAT number

Credit card expiration date

Card issued to

Signature

We accept American Express, Diners, Eurocard, Master Card, and Visa. Payment by credit card not available in all countries. Signature mandatory for credit card payment.

298

Introducing Tivoli Personalized Services Manager 1.1

Glossary
Aero 8000 The Compaq Aero 8000 Handheld PC, which is a kind of Windows CE machine. It uses Hitachi SH4 processor and has a 10-inch color SVGA screen with 800 x 600 resolution, 256 colors, and a 0.24 pixel pitch. AIX Advanced Interactive eXecutive. An IBM industrial-strength version of UNIX. API Application program interface. ASP Application Service Provider. An Internet service provider that offers application services. business object An object containing business methods (logic) and state that is intended for use within business applications. Business objects are Managed Objects. In some contexts, the term business object in this book is used to refer to a business object class. It may also be used to refer to a composition of business object classes. Challenge Handshake Authentication Protocol (CHAP) A type of authentication in which the authentication agent (typically a network server) sends the client program a key to be used to encrypt the username and password. CHAP See Challenge Handshake Authentication Protocol. conduit A component of Palm Desktop software. A conduit specifies how to transfer and translate data between your handheld and your computer for a specific handheld application or database during a Hot Sync operation. cradle The docking station for PDA devices to connect to the desktop PC. Generally, they also have the function to charge the device. DBCS Double byte character set. DDL Data Definition Language. deal Deals represent the service plan that is being subscribed to. Device management API An API (package com.tivoli.dms.dmapi) that defines the programming interface for manipulating the device- and job-related data resources stored in the Device Manager database. Device management server API An API (package com.tivoli.dms.dmserver) that defines the programming interface between the device management server servlet and the device plug-ins. Device Manager console A graphical user interface, written by Java, for administering device management operations. DHCP See Dynamic Host Configuration Protocol. DM Device Manager. DM console see Device Manager console. DMD Device Management Dispatcher. DMS servlet Device management server servlet. DNS See Domain Name System. Domain Name System (DNS) A function to associate names and addresses on Internet domain servers. Dynamic Host Configuration Protocol (DHCP) A protocol for assigning dynamic IP addresses to devices on a network. e-business A term used by IBM to describe the use of Internet technologies to transform business processes. In practice, this means using Internet clients, such as Web browsers, as front ends for applications that access back-end legacy systems to allow greater access. See http://www.software.ibm.com/ebusiness for more information. eXtensible Markup Language (XML) This markup language, a streamlined version of SGML, is regulated by WC3 (the World Wide Web Consortium). Can create more advanced links than HTML.

Copyright IBM Corp. 2001

299

file package Describes which files and directories to distribute and how to distribute them. file package definition file An ASCII file that identifies the contents and characteristics of a file package. File Transfer Protocol (FTP) The protocol used for sending files over the network. FTP See File Transfer Protocol. GUI Graphical User Interface. HACMP High Availability Cluster Multi-Processing. HotSync A Palm function to do two-way synchronization of records between your handheld and your computer. Changes that you make on your handheld or your computer are updated on both platforms after a HotSync operation. The HotSync operation only synchronizes the changed portions of data, reducing HotSync time. HTTP See Hyper Text Transmission Protocol. Hyper Text Transmission Protocol (HTTP) The communications protocol used to connect to servers on the World Wide Web. Its primary function is to establish a connection with a Web server and transmit HTML pages to the client browser. IBM International Business Machines. IMAP See Internet Message Access Protocol. Integrated Services Digital Network (ISDN) An international communications standard for sending voice, video, and data over digital telephone lines and normal telephone wires. Internet Message Access Protocol (IMAP) A protocol for retrieving e-mail messages. Internet screenphone A telephone-like appliance with a built-in display screen that may be used to call up Internet sites quickly. Internet Service Provider (ISP) Offers services on the Internet, such as connection services. ISDN See Integrated Services Digital Network. ISP See Internet Service Provider.

iTk Tivoli Internet Services Manager Integration Toolkits. Java A high-level programming language developed in 1991 by Sun Microsystems that works on virtually any computer. Unlike HTML, which is a document display format that is continually improved to make it do more, Java is a full-blown programming language like C and C++. It allows for the creation of sophisticated client/server applications to be developed for the Web and for intranets. Java Database Connectivity (JDBC) A Java API that allows Java programs to communicate with different database management systems in a platform-independent manner. Database vendors provide JDBC drivers for their platforms that implement the API for their database, allowing the Java developer to write applications to a consistent API no matter which database is used. Java Development Kit (JDK) A software development kit (SDK) for producing Java programs. JDBC See Java Database Connectivity. JDK See Java Development Kit. kiosk services Solutions for business center service providers such as hotel chains, airports, and office service franchises that offer document services (storing, reproduction, and distribution) through shared access devices in public spaces. LAN See Local Area Network. LDAP See Lightweight Directory Access Protocol. Lightweight Directory Access Protocol (LDAP) A set of protocols for accessing information directories. LDAP is based on the X.500 protocol, but supports TCP/IP, which is necessary for Internet access. Because it's a simpler version of X.500, LDAP is sometimes called X.500-lite. Local Area Network (LAN) A computer network that spans a relatively small area, such as a building or a group of buildings. meta file definition file An ASCII file that provides software distribution properties for the

300

Introducing Tivoli Personalized Services Manager 1.1

job. It also has a numbered application stanza, [Applicationn], for each application package in the software distribution job. NetVista The IBM NetVista system includes all-in-one, legacy-free, traditional desktops and thin clients to provide a full range of computing solutions for your business or home. Palm OS platform A popular operating system for Palm and other handheld devices, designed by Palm specifically for information management. Palm Pilot One of the most popular brands of PDAs, which uses Palm OS provided by Palm, Inc. Nowadays, 3Com, IBM, Sony, and some other vendors sell original Palm Pilot devices. Palm OS resource database Commonly referred to as a PRC (Palm Resource). A PRC can exist as a file on the host computer (that is, a PC or a Macintosh) and is commonly referred to as a PRC file. A PRC contains database header information as well as individual resource records in the database itself. Palmscape Palmscape is a Web browser for PDA. Palm version of Palmscape works on the Palm OS 3.0 and above. PAP See Password Authentication Protocol. Password Authentication Protocol (PAP) The most basic form of authentication in which a user's name and password are transmitted over a network and compared to a table of name-password pairs. PDA See Personal Digital Assistant. PDB PDB files contain database records that are used by Palm OS to store the application data. They have features unique to the Palm OS. Personal Digital Assistant (PDA) A small handheld device that offers functions such as address storage, calendar, and e-mail. This mobile device can be synchronized with desktop PCs. Point-to-Point Protocol (PPP) A data link protocol that provides dial-up access over several lines. POP See Post Office Protocol.

Portal Toolkit (pTk) A toolkit that features a Multi-device portal engine thata supports web devices such as Win CE based PDAs, screenphones, and WAP devices as well as PCs. It also features a User Preference API, which allows user and user group profiling. Post Office Protocol (POP) A protocol used to retrieve e-mail from a mail server. PPP See Point-to-Point Protocol. PRC Palm Resource. See Palm OS resource database. proxy A proxy server is configured to manage network traffic and to protect your network. PSTN See Public Switched Telephone Network. PTF Problem temporary fix. pTk See Portal Toolkit. Public Switched Telephone Network (PSTN) The international telephone system based on copper wires carrying analog voice data. This is in contrast to newer telephone networks based on digital technologies such as ISDN and FDDI. RADIUS Remote Access Dial-In User Service. RAM disk Refers to RAM that has been configured to simulate a disk drive. You can access files on a RAM disk as you would access files on a real disk. RAS Short for Reliability, Availability, Serviceability. See Remote Access Services. Realm Realms are a division of the subscriber name-space that allow the ISP to divide its Internet provisioning services, effectively creating a set of Virtual ISPs. Remote Access Services (RAS) A feature built into Windows NT that enables users to log into an NT-based LAN using a modem, X.25 connection, or WAN link. screenphone See Internet screenphone. servlets Java classes that run on Web servers to provide dynamic HTML content to clients. They take as input the HTTP request from the client and output dynamically generated HTML. For more information on servlets, see

301

http://www.software.ibm.com/ebusiness/ pm.html#Servlets Simple Mail Transfer Protocol (SMTP) A protocol for sending e-mail messages between servers. SM See Subscription Manager. smart phone Enables connections to the Internet or Lotus Notes network so that users can access e-mail, faxes, voice mail, Web pages, and other files. It also has the potential to connect to a speech recognition server by phone, which would allow a user to dictate notes or responses and then see the recognized text as it is returned from the server. SMTP See Simple Mail Transfer Protocol. Solaris A UNIX-based operating environment developed by Sun Microsystems. Originally developed to run on Sun's SPARC workstations, it now runs on many workstations from other vendors. Solaris includes the SunOS operating system and a windowing system (either Open Windows or CDE). SQL See Structured Query Language. SSL Secure Sockets Layer. A protocol for transmitting private documents securely via the Internet. Structured Query Language (SQL) A standard set of statements used to manage information stored in a database. By using these statements, users can add, delete, or update information in a table, request information through a query, and display the result in a report. Subscription Manager (SM) A feature of the Tivoli Internet and Personalized Services Manager: Programmers Guide, which has functions such as enrollment, access control, and personalization. TCP/IP Transmission Control Protocol/Internet Protocol. TISM Tivoli Internet Services Manager. TPSM Tivoli Personalized Services Manager. transcoding The operation of changing data from one format to another, such as XML to

HTML, so that the output will be displayed in a manner appropriate to the device. TSM Tivoli Subscriber Manager. UDB DB2 Universal Database from IBM. URL Universal Resource Locator. WAN Wide Area Network. WAP See Wireless Application Protocol. WAS IBM WebSphere Application Server. WE See WebSphere Everyplace Suite. WebSphere Everyplace Suite (WES) IBM WebSphere Everyplace Suite is the solution for pervasive computing that connects any device to any data, anywhere, anytime. It supports the following features; Connectivity, Content Adaptation, Optimization, Security, Management Services, and Services. WebSphere Transcoding Publisher (WTP) A network software that modifies content presented to users based on the information associated with the request, such as device constraints, network constraints, user preferences, and organization policies. Transforming content can reduce or eliminate the need to maintain multiple versions of data or applications for different device types and network service levels. Windows CE A version of the Windows operating system designed for small devices such as personal digital assistants (PDAs) (or handheld PCs in the Microsoft vernacular). The Windows CE graphical user interface (GUI) is similar to Windows 95, so devices running Windows CE should be easy to operate for anyone that is familiar with Windows 95. Wireless Application Protocol (WAP) A protocol to transfer content to and from wireless devices. Wireless Markup Language (WML) A language to present content on wireless devices. WML See Wireless Markup Language. WTE Web Traffic Express. WTP See WebSphere Transcoding Publisher.

302

Introducing Tivoli Personalized Services Manager 1.1

XML See eXtensible Markup Language.

303

304

Introducing Tivoli Personalized Services Manager 1.1

Index A
Access Code 75, 76, 94 associating with a deal 92 creation 79 DEFAULT 77, 79 purpose 80 unique billing deals 80 AccessBean implementation 186 AccessBean.class 185 getBean method 186 getWellKnownName method 186 read method 185 update method 186 Account Information 156 Account.class getParentAccount method 188 read method 188 AccountMembers.class getMemberNbr method 188 getUserFirstName method 188 getUserName method 188 accounts sub-accounts 149 Additional Services 164 AddressBook 182 AddressBook portlet command addcommand 235 addentry 235 cancelmanageentry 235 defaultcmd 234 delupdatecommand 235 delupdateentry 235 endmanageentry 235 maximize 235 minimize 235 search 235 setfilter 235 method elements 236 getAddressBook 236 getCategoryFilter 236 getCurrentEntry 236 getLastnameFilter 236 getPageCommand 236 isLastCommandValid 236 AddressBook.class add method 189 categories method 189 del method 189 elements method 189 elementsByCategory method 190 elementsByCategoryAndLastname method 190 elementsByCategoryAndName method 189 elementsByLastname method 190 modify method 190 Aero 8000 299 Agenda 182 example 250 garbage collector 230 Agenda portlet command addappt 232 addapptentry 231 defaultcmd 231 delappt 232 delapptentry 232 maximize 231 minimize 231 nextday 232 previousday 232 resOK 232 updateappt 232 updateapptentry 232 method elements 233 getAgenda 233 getDate 233 getMaxHour 233 getMaxHourConfig 233 getMinHour 233 getMinHourConfig 233 getPageCommand 234 getStartDay 233 getStartMonth 233 getStartTime 233 getStartYear 233 isCommandValid 234 setMaxHourConfig 233 setMinHourConfig 233 Agenda.class

Copyright IBM Corp. 2001

305

add method 194 del method 194 elements method 194 getMinHour method 194 getStartHour method 194 getStarttime method 193 modify method 194 Starttime method 193 updateMinMaxHours method 195 Aggregator 182 Aggregator portlet commands defaultcmd 221 maximize 221 minimize 221 normal 221 oneitem 221 method getContent 222 getContentEnumeration 222 AIX 299 AIX filesets 22 installing latest level 23 API 299 Application Servers configuration 67 Appointment.class Appointment method 192 displayDate method 192 displayEnd method 192 displayStart method 192 equals method 192 getDescription method 192 getDuration method 192 getDurationHour method 192 getDurationMin method 193 getEnd method 193 getId method 193 getStart method 192 getStartDay method 193 getStartHour method 193 getStartMin method 193 getStartMonth method 193 getStartYear method 193 isInThePast method 193 setDescription method 192 setDuration method 192 setId method 193 setStart method 192

Architecture JSP Portlet 202 ARPANET 1 ASP 299 Authentication 111 API 184 MS-ISDN 182 Multi-domain mode 113 Single-domain mode 113 stages 112 WML 182 Authentication Checker 113 supports multiple device types 114 wireless 134, 135 Authentication Server 111, 112, 241 central 122 creating 42 file system 115 structure 114 testing 70 wireless 135 authentication.jar 184

B
billing systems 264 BITNET 1 business accounts 149 business case one 138 business object 299

C
Calendar 182 example 249 Calendar portlet command currmonth 229 defaultcmd 229 maximize 229 minimize 229 nextmonth 229 prevmonth 229 week 229 method getCurrentDate 230 getCurrentTime 230 getDayOfMonth 230 getRollingMonthWeekNbr 230 getTime 230

306

Introducing Tivoli Personalized Services Manager 1.1

challenge handshake authentication protocol 299 CHAP 299 child subscriber creating 162 disconnecting 163 class Component 204, 209 ComponentConfiguration 204, 211 ComponentSession 204, 210 HttpServlet 202, 204 portletSession 202 command /etc/rc.txservers 71 /etc/rc.webservers 71 /usr/netscape/suitespot/stop-admin 39 adminclient.sh 67 chuser 38 console.bat 69, 74, 150 instfix 28 inutoc 25 lslpp 23 mkgroup 38 mkuser 38 smitty 25 StartProvServer.ksh 71 tar 25 XMLConfig.sh 67 Component.class include method 209 ComponentSelector example 251 ComponentSelectorComponent WAP example 262 ComponentSelectorComponent portlet commands add 218 customize 218 defaultcmd 217 delete 218 maximize 218 minimize 218 myappli 218 macro *getCity* 217 *getFirstName* 217 *getGender* 217 *getLastName* 217 *getXxx* 217 method

getCity 217 getComponents 218 getFirstName 217 getGender 217 getLastName 217 getMyComponents 218 getValue 217 getXxx 217 ComponentSession.class getSession method 211 href method 210 init method 210 service method 210 conduit 299 console application downloading 69 Consumer account managing 155 consumer accounts 149 cookies 12, 114, 123, 124 cradle 299 CSR 13 limits by realm 264 see Customer Service Representative 149 Customer Care 12, 152 accessing 150 component 149 functions 149 launching 155 linking external applications 164 reports 163 security provisions 12 Customer Care Representative enrollment 154 Customer Care Server creating 43 test 70 Customer Care Support 13 Customer Service security control 13 Customer Service Representative 149 access control profile 154 enrolling a consumer 156 view and update consumer account 157 Customizor example 242 Customizor portlet commands defaultcmd 224

307

maximize 224 minimize 224 save 224 themes 224 topics 224 CustomizorComponent.class exists method 224 getParameterCheckings method 225

D
DB2 21 DbConnectionMgr 274 DBCS 299 DDL 299 Deal 9, 75 associate Method of Payment List 98 associate with a realm 90 associating an access code 92 change the subscribers Deal 159 creation 82 definition 299 properties 76, 85 Deal text 75 creation 84 device distributing software 10 device management API 281, 282, 299 device management server API 299 Device Manager components 278 console 283 console updates 9 DB2 support 9 functions 278, 284 Generic Windows CE device 9 Iap500 9 Internet appliance device 9 job distribution 9 overview 277 Personal Digital Assistants 10 plug-ins changes 9 purpose 277 Screenphones 10 subscription manager 9 Wireless Access Protocol 10 Device Manager console 299 device plug-ins 280 DHCP 299

Director Tool 16, 225 installing 73 testing 69 directory /usr/TivTSM/selfcare/content/jsp 167 /usr/WebSphere/AppServer/bin 67 DM. See Device Manager DMD 299 DMS servlet 299 DNS 299 double byte character set 299

E
EARN 1 e-business 299 eND 124 enrollment engine 11 Enrollment JSP 108 Enrollment metrics 75 enrollment process managing 99 Enrollment Server creating 48 test 70

F
FavoriteLinks.class add method 197 del method 197 elements method 197 field Profile Name 151 file /db/app/oracle/admin/ispb/create/ispbrun1.ksh 33 /db/creispblv.ksh 33 /installdir/TivTSM/install/tisminstall.log 65 /usr/TivTSM/install/db/oracle/./sqlispb.log 37 /usr/TivTSM/install/etc/rc.txservers 66 /usr/WebSphere/AppServer/bin/setupCmdLine.sh 67 AddressBookComponent.properties 234 AgendaComponent.properties 230 AggregatorComponent.properties 219 AgregatorComponent.properties 244, 245 authentication.jsp 115, 116 Authentication.properties 117, 138 Authentication.properties.wes 119

308

Introducing Tivoli Personalized Services Manager 1.1

Authenticator.properties 118, 119 Calendar Component. properties 227 ComponentSelectorComponent.properties 214, 252 CustomizorComponent.properties 222, 242 DBPool.properties 117, 121, 122 DefaultAuthenticator.properties 117, 118, 122, 126, 138, 239 Device.properties 138, 143 device_enroll.properties 110 enroll.properties 110 EnrollJspMsg.properties 110 httpd.conf 55 IE.properties 117, 131 install.ksh 58 LayoutSelectorComponent.properties 207, 212 LinkSelectorComponent.properties 225 Nav4.properties 117, 131 ns-setup 38 obj.conf 55 selfcare.properties 169 Transaction.properties 69, 74, 110 Validator.properties 110 WAPAuthentication.properties 138, 139 WapAuthentication.properties 138 WAPAuthenticator.properties 138, 144 file package 300 definition file 300 file transfer protocol 300 filter API 236 Filter.class sample 236 FTP 300

I
IBM 300 IBM HTTP Server 21, 22 IMAP 300 installation different volume group 35 InstantDB 56 backup database 67 Integration Toolkit see iTk 269 Internet Explorer 131 Internet screenphone 300 Internet Service Provider 2, 5 Internet Signup file 263 Internet2 3 ISDN 300 ISP 300 ispb 33 iTk 300 definition 269 example uses 269 form based browser 271 Java Applets 272 method count 276 create 276 delete 276 read 276 setSelectAllField 275 setSelectField 275 update 276 third party applications 272 usage scenarios 271 IY12075 28

G
garbage collector agenda 230 properties 231 GUI 300

J
jar files 117 Java 19, 300 Java Bean 116 auth 137 personalization API 181 Java Developer Toolkit download 25 installation 25 PTF 7 27 Java Server Pages 19 JavaBeans session 114 JavaScript 19

H
HACMP 300 home page customization 14 HotSync 300 HTTP 300

309

JDBC 121, 269, 270, 300 JDBC Connection pool tuning 121 JDK 22, 300 JDK 1.2.2 with PTF 7 21 JSP accessCode 109 accountCode 109 addaddressbookentrywml.jsp 235 addAppthtml.jsp 231, 232 addApptwml.jsp 231 AddMemberAuthError 167 AddMemberCommit 168 AddMemberInput 168 AddMemberMain 168 AddMemberMemberCancel 168 AddMemberRefused 168 AddMemberSubmit 168 addrbookhtml.jsp 213 agendahtml.jsp 213 agreement 110 areYou18 109 cancelByUser 109 ChangePasswordAuthError 168 ChangePasswordCancel 168 ChangePasswordCommit 168 ChangePasswordInput 168 ChangePasswordMain 168 ChangePasswordRefused 168 ChangePasswordSubmit 168 ChangePaymentAuthError 168 ChangePaymentCancel 168 ChangePaymentCommit 168 ChangePaymentInput 168 ChangePaymentMain 168 ChangePaymentRefused 168 ChangePaymentSubmit 168 ChangePersonalInfoAuthError 168 ChangePersonalInfoCancel 168 ChangePersonalInfoCommit 169 ChangePersonalInfoInput 169 ChangePersonalInfoMain 169 ChangePersonalInfoRefused 169 ChangePersonalInfoSubmit 169 configure 109 confirm 109 congrats 109 createfavlinkhtml.jsp 226 createlink7110.jsp 226

customapplihtml.jsp 218 debug 110 delAppthtml.jsp 232 displayaddressbookhml.jsp 235 displayaddressbookhtml.js 235 displayaddressbookhtml.jsp 235 displayaddressbookwml.jsp 235 displayaddressbookwtml.jsp 235 displayAppthtml.jsp 231, 232 displayApptwml.jsp 231, 232 DisplayDeviceAuthError 169 DisplayDeviceInfo 169 DisplayDeviceList 169 DisplayDeviceMain 169 DisplayDevicenotFound 169 DisplayDeviceRefused 169 dontGo 110 English 136 enroll 110 example 241 favlink7110.jsp 226 favlinkhtml.jsp 226 findaddrbookentrieshtml.jsp 234, 235 findaddrbookentrieswml.jsp 235 homehtml.jsp 212 homewml.jsp 212 Japanese 136 Layout 183 logouthtml.jsp 213 manageaddrbookentrieshtml.jsp 235 manageaddrbookentrieswml.jsp 235 maxappliwml.jsp 218 maxcustomhtml.jsp 224 minaddressbookwml.jsp 234, 235 minAgendahtml.jsp 231 minAgendawml.jsp 231 minapplihtml.jsp 218 minappliwml.jsp 218 mincalendar7110.jsp 229 mincalendarhtml.jsp 229 mincustomhtml.jsp 224 minlink7110.jsp 226 minlinkhtml.jsp 226 minnewswml.jsp 221 monthhtml.jsp 229 monthwml7110.jsp 229 mopCombined 110 myapplihtml.jsp 217, 218 myappliwml.jsp 217, 218

310

Introducing Tivoli Personalized Services Manager 1.1

newsabstract.jsp 221 newsfull.jsp 221 newshtml.jsp 213 newswml.jsp 221 onenews.jsp 221 onenewswml.jsp 221 paymentPlan 110 personalCombined 110 Portlet 183 Portlets Framework 201 reflink7110.jsp 226 reflinkhtml.jsp 226 resultAgendahtml.jsp 232 themehtml.jsp 224 topicshtml.jsp 224 updateDelApptwml7110.jsp 232 userNameInvalid 110 wapauthentication.jsp 136 wapauthenticator.jsp 136 weekwml7110.jsp 229 JSP Portlet architecture 202

K
Kiosk services 300

L
LAN 300 LayoutSelector 182 LayoutSelectorComponent portlet command addrbook 213 agenda 213 defaultcmd 212 home 212 logout 213 news 213 LDAP 16, 300 see Lightweight Directory Access Protocol 10 Lightweight Directory Access Protocol 10 LinkSelector 182 example 248 LinkSelectorComponent portlet command addlink 226 back 226 copylink 226 createlink 226

creproplink 226 defaultcmd 226 dellink 226 favlink 226 minimize 226 reflink 226 method getCatEnum 226 getCatIxEnum 227 getCurrentCategory 227 getFavCategories 227 getFavLinkEnum 227 getFavLinks 227 getLinkEnum 227 List of Method of Payment creation 96 load balancing 124 log /usr/WebSphere/AppServer/logs/authentication.log 136 locations 38 Login creating 152 lvispbdata 34 lvispbdrsys 34 lvispbindex 34 lvispboem 35 lvispbsys 34 lvispbtemp 34 lvispbuser 35

M
macros links 225 meta file definition file 300 method Checker.getSSOPassword Checker.getSSOUserName Checker.isNotAuthenticated Method of Payment creation 95 method of payment changing 159 Method of Payment Information Method of Payment List associate deal 98 Mosaic 2 multi-domain mode 122, 123

185 185 184

156

311

N
NameValuePairs.class add method 198 del class 198 elements method 199 NAS 138 National Science Foundation 1 NcFTPd 6 Netscape Enterprise Server 18, 21 installing 38 Netscape server administration console starting 39 Netscape server instances creating 39 ports 41 primary directories 41 server identifier 41 Netscape servers starting 67 stopping 67 NetVista 301 Network Access Server 73, 134 Nokia Gateway 1.1.1 144 NSFNET 2

O
Oracle 21 8i Version 8.1.5 9 starting 71

P
Palm OS 301 Palm pilot 301 Palmscape 301 PAP 301 password authentication protocol 301 payment methods 75 PDA 135, 277, 301 PDB 301 Perl 19 Personal Information 156 Personal Information Management address book 15 agenda 15 calendar 15 personalization 14 example 241 Personalization Server

creating 46 port 207 test 70 Personalized Service Environment 181 PFTPD 6 plug-in Authenticator.properties 118 DefaultAuthenticator.properties 118 plug-ins Generic Windows CE 9 Internet appliance device 9 lap500 9 POP 301 portal software architecture 183 Portal Toolkit 14 address book 7 agenda 7 Authentication Services 7, 16 calendar 7 JSP Components Framework 15 JSP Portlet Framework 7 Multi-device Portal Engine 7, 15 Referenced Links Management 7, 15 see pTk 181 Targeted Ads 8, 16 User Preferences API 7, 15 Vertical Services Integrated 15 portlet API Component API 208 ComponentSession API 208 portlet framework design 203 portlet JSP definition 204 portlets 201 classes 204 command addressing mechanism 208 Desktop 202 features 202 Layout 202 LayoutSelector 206, 207 service 182, 211 AddressBook 222 , 234 Agenda 222, 230 Calendar 222, 227 Customizor 222 LinkSelector 222, 225 structural 182, 211 Aggregator 211, 219

312

Introducing Tivoli Personalized Services Manager 1.1

ComponentSelectorComponent 211, 213 CustomizorComponent 211 LayoutSelectorComponent 211, 212 portletSelector 182 PPP 301 PRC 301 Premium Server creating 47 parameters 126 test 70 Profile 150 profile creating 151 Profiler.class sample 239 property creating 87 definition 87 Provisioning FTP Daemon 6 Provisioning server starting 71 proxy 301 PSTN 301 PTF 301 pTk 132, 135, 301 access Bean 185 Account.class 187 AccountFavoriteLinks.class 188 AccountMembers.class 188 AccountNameValuePairs.class 188 AddressBook.class 189 Agenda.class 193 Appointment.class 191 banner ads 182 database of links 182 FamilyMembers.class 195 FavoriteLinks.class 188, 196 filter API 236 functions 181 JSP portlets 202 NameValuePairs.class 198 Profiler API 238 ReferencedLinks.class 200 sample JSP for HTML 183 sample JSP for WML 183 see Portal Toolkit 7 User.class 201

R
RADIUS 112, 123, 135, 182, 183, 301 RADIUS authentication server 19 RADIUS server enhancements 8 RAM disk 301 RAS 301 Realm 9, 11, 74, 91, 99, 150 associating with deals 90 creation 76 default 124 default domain 76 definition 264, 301 description 76 name 76 wireless 137 Registration Name 73, 92, 99 creation 77 Registration name 75 generic 77 Multiple Access 77 reporting sales 93 reports available reports 163 restpages 10 rlvispbdata 36 rlvispbindex 36 rlvispbtemp 36

S
Sales Channel 94 creation 93 definition 93 sample pages for HTML devices 205 screenphone 301 SDP Servlet Server creating 50 SelfCare 16 adding members 178 administration home page 172 change password 172 changing payment information 176 changing personal information 174 configuration file 169 Server creating 44

313

test 70 Service Provisioning 265 servlet 301 Single Sign On 124 SM 302 SMTP 302 Solaris 302 Solaris support 19 SQL 302 SqlGenerator 274 SSL 302 SSO Cookie 123 style sheet 245 wireless 136 sub-accounts 149 subscriber bulk transfer 17 creating child subscriber 162 disconnecting 160 reconnecting 161 removing 160 searching 165 subscriber bases bulk transfer 263 subscriber number 33 Subscriber Selfcare functions 167 Subscriber Update panel 158 subscribers child 149 primary 149 System Management Tools Server creating 45

start sequence 70 whats new 6 Tivoli SecureWay Policy Director 12 TPSM 302 installation 57 overview 5 start sequence 70 Trace 274 traceLevel 67 TraceResources 274 Transaction Servers verifying 71 TSM 302 TxObject 274 TxSqlContext 274 TxValue 274 TxValues 275

U
UDB 302 URL 302 USENET 1 User Groups definition 265 User Preference API 185 User Preferences API 181

V
Validator 275 Virtual ISP 264 creation 266 enrolling subscribers 267 overview 263

T
TCP/IP 302 Telenet 1 test environment hardware 21 software 22 TISM 302 Administration Console 74, 150 DB2 support 8 installation 57 installation verification 69 localization 8 overview 5 post-installation steps 66

W
WAN 302 WAP 135, 277, 302 authentication 182 welcome homepage 261 WAP device 113 WAP Gateway 134 WAS 302 Web Content Hosting 6 File delete 7

314

Introducing Tivoli Personalized Services Manager 1.1

File download 7 File upload and automatic publishing 7 Perl scripts access counters statistics 6 guestbook 6 mail-to function 6 page access counter 6 Personal Web space display 7 provisioning 6 upload facility 6 Web Hosting Content Server creating 51 Web server configuration file 55 WebMail 234 WebSphere starting 67 Websphere create application servers 67 WebSphere Application Server 21 installation 52 root directory 57 WebSphere Every Place Suite see WES 183 WebSphere Everyplace Suite 9 WebSphere Everyplace suite TPSM integration 10 WES 119, 302 Authentication Proxy 183 WES authentication proxy 113 Windows CE 302 wireless access 134 Wireless Gateway 135 WML 135, 137, 138, 139, 302 WML Script 135 WTE 302 WTP 302

X
XML 135, 183, 303

315

316

Introducing Tivoli Personalized Services Manager 1.1

IBM Redbooks review


Your feedback is valued by the Redbook authors. In particular we are interested in situations where a Redbook "made the difference" in a task or problem you encountered. Using one of the following methods, please review the Redbook, addressing value, subject matter, structure, depth and quality as appropriate. Use the online Contact us review redbook form found at ibm.com/redbooks Fax this form to: USA International Access Code + 1 845 432 8264 Send your comments in an Internet note to redbook@us.ibm.com

Document Number Redbook Title Review

SG24-6031-00 Introducing Tivoli Personalized Services Manager 1.1

What other subjects would you like to see IBM Redbooks address?

Please rate your overall satisfaction: Please identify yourself as belonging to one of the following groups: Your email address: The data you provide here may be used to provide you with information from IBM or our business partners about our products, services or activities. Questions about IBMs privacy policy?

O Very Good

O Good

O Average

O Poor O Solution Developer

O Customer O Business Partner O IBM, Lotus or Tivoli Employee O None of the above

O Please do not use the information collected here for future marketing or promotional contacts or other communications beyond the scope of this transaction.

The following link explains how we protect your personal information. ibm.com/privacy/yourprivacy/

Copyright IBM Corp. 2001

317

Introducing Tivoli Personalized Services Manager 1.1

(0.5 spine) 0.475<->0.875 250 <-> 459 pages

Introducing Tivoli Personalized Services Manager 1.1


Supports pervasive devices Creates personalized service environments Provides self care
Tivoli Personalized Service Manager is a new product that helps the Internet Services Providers to manage and provide services to their clients. Tivoli Personalized Service Manager manages the different domains and provides services for them; selfcare, customer care, premium services, personalization, and web content hosting. TPSM permits the creation of a portal for any type of device very quickly. All of these features have the flexibility to be personalized very easy via standard languages, such as JavaBeans, JSP, HTML, WML, and XML. This redbook will show you how to install the Tivoli Personalized Service Manager and create a Portal for Internet and Wireless Devices with all the necessary services to manage it. The homepage can be personalized with applications provided via TPSM or the ISP. Some samples of applications provided by TPSM are Agenda, Calendar, News. Tivoli Personalized Service Manager provides tools that manage all these applications in the homepages, allowing you to set up a professional portal with a lot of services in a few hours. This book is valuable when planning a TPSM architecture and development. The discussions of design, installation and customization issues gives valuable information for Administrators, Architects, and Developers.

INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION

BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment.

For more information: ibm.com/redbooks

SG24-6031-00

ISBN 0738419788

Potrebbero piacerti anche