introducing tivoli personalized services manager 1.1 sg246031

340
ibm.com/redbooks Introducing Tivoli Personalized Services Manager 1.1 Stephen Hochstetler Edgar Gutierrez Patricia Iglesias Supports pervasive devices Creates personalized service environments Provides self care

Upload: banking-at-ho-chi-minh-city

Post on 13-Jan-2015

11.391 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Introducing tivoli personalized services manager 1.1 sg246031

ibm.com/redbooks

Introducing Tivoli Personalized Services Manager 1.1

Stephen HochstetlerEdgar GutierrezPatricia Iglesias

Supports pervasive devices

Creates personalized service environments

Provides self care

Page 2: Introducing tivoli personalized services manager 1.1 sg246031
Page 3: Introducing tivoli personalized services manager 1.1 sg246031

Introducing Tivoli Personalized Services Manager 1.1

June 2001

SG24-6031-00

International Technical Support Organization

Page 4: Introducing tivoli personalized services manager 1.1 sg246031

© 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 torestrictions set forth in GSA ADP Schedule Contract with IBM Corp.

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 OrganizationDept. JN9B Building 003 Internal Zip 283411400 Burnet RoadAustin, 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.

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

Take Note!

Page 5: Introducing tivoli personalized services manager 1.1 sg246031

Contents

Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ix

Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvThe team that wrote this redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvComments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi

Chapter 1. Evolution of the Internet and ISP solutions . . . . . . . . . . . . . 1

Chapter 2. Overview of Tivoli Personalized Service Manager . . . . . . . . 52.1 What's new for this release of Tivoli Personalized Services Manager . . 6

2.1.1 Web Hosting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.2 Portal Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.3 Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.1.4 DB2 support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.1.5 Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.1.6 Device Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.7 Integration with WebSphere Everyplace suite . . . . . . . . . . . . . . . 10

2.2 Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.1 Device Manager (only in TPSM) . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.2 Enrollment and service provisioning . . . . . . . . . . . . . . . . . . . . . . 112.2.3 Subscriber authentication and access control . . . . . . . . . . . . . . . 122.2.4 Customer care support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2.5 Subscriber personalized service environment and self care . . . . 142.2.6 Integration with third party components and tools . . . . . . . . . . . . 162.2.7 Operation support for growing provider business . . . . . . . . . . . . 162.2.8 Emerging Internet business models-wholesale and virtual ISP . . 172.2.9 Adherence to industry standards . . . . . . . . . . . . . . . . . . . . . . . . 18

Chapter 3. Installation checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.1 Infrastructure used in this project . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2 Infrastructure installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.1 AIX software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.2 Installing additional IBM AIX filesets . . . . . . . . . . . . . . . . . . . . . . 223.2.3 JDK 1.2.2 installation and setup procedure. . . . . . . . . . . . . . . . . 253.2.4 IBM HTTP Server V1.3.12 for AIX . . . . . . . . . . . . . . . . . . . . . . . 29

3.3 Oracle JDBC driver 8.1.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Chapter 4. Building the environment . . . . . . . . . . . . . . . . . . . . . . . . . . 314.1 File system configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2 Oracle installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

© Copyright IBM Corp. 2001 iii

Page 6: Introducing tivoli personalized services manager 1.1 sg246031

4.3 Installing Netscape Enterprise Server 3.63 . . . . . . . . . . . . . . . . . . . . . 384.3.1 Creating groups and users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.3.2 Installing Netscape Enterprise Server 3.6 . . . . . . . . . . . . . . . . . . 38

4.4 Creating Netscape server instances . . . . . . . . . . . . . . . . . . . . . . . . . . 394.4.1 Creating the Authentication Server . . . . . . . . . . . . . . . . . . . . . . . 424.4.2 Creating the Customer Care Server . . . . . . . . . . . . . . . . . . . . . . 434.4.3 Creating the Selfcare Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.4.4 Creating the System Management Tools Server . . . . . . . . . . . . . 454.4.5 Creating the Personalization Server . . . . . . . . . . . . . . . . . . . . . . 464.4.6 Creating the Premium Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.4.7 Creating the Enrollment Server. . . . . . . . . . . . . . . . . . . . . . . . . . 484.4.8 Creating the SDP Servlet Server . . . . . . . . . . . . . . . . . . . . . . . . 504.4.9 Creating the Web Hosting Content Server . . . . . . . . . . . . . . . . . 51

4.5 Installation of IBM WebSphere Application Server . . . . . . . . . . . . . . . 524.6 Installing Tivoli Internet Services Manager software . . . . . . . . . . . . . . 57

4.6.1 Post-Installation tasks for TISM software. . . . . . . . . . . . . . . . . . . 664.7 Usage and verification test of installed TISM software . . . . . . . . . . . . 69

4.7.1 Director test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.7.2 Authentication test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.7.3 Premium test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.7.4 Customer Care test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.7.5 Enrollment test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.7.6 SelfCare test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.7.7 Personal test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

4.8 Startup order for starting up a system. . . . . . . . . . . . . . . . . . . . . . . . . 704.8.1 Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.8.2 Start Provisioning server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.8.3 Transaction Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.8.4 Start Netscape Servers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.8.5 Start WebSphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Chapter 5. Enrollment and service provisioning . . . . . . . . . . . . . . . . . 735.1 Registration configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.1.1 Creation of a Realm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765.1.2 Creation of Registration Names . . . . . . . . . . . . . . . . . . . . . . . . . 775.1.3 Creation of Access Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795.1.4 Creation of a deal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825.1.5 Creation of deal text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845.1.6 Creating a property. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875.1.7 Associating the deals with the Realm . . . . . . . . . . . . . . . . . . . . . 905.1.8 Associating the Access Codes with the deals . . . . . . . . . . . . . . . 925.1.9 Creating a Sales Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935.1.10 Creating a Method of Payment . . . . . . . . . . . . . . . . . . . . . . . . . 95

iv Introducing Tivoli Personalized Services Manager 1.1

Page 7: Introducing tivoli personalized services manager 1.1 sg246031

5.1.11 Creating a List of Method of Payment . . . . . . . . . . . . . . . . . . . . 965.1.12 Association of a MOP list and a deal . . . . . . . . . . . . . . . . . . . . 985.1.13 Managing the enrollment process . . . . . . . . . . . . . . . . . . . . . . . 995.1.14 Enrollment JSPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

Chapter 6. Subscriber authentication and access control. . . . . . . . . 1116.1 Authentication stages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126.2 Authentication modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136.3 Internet world . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

6.3.1 Structure of Authentication Server . . . . . . . . . . . . . . . . . . . . . . 1146.4 Wireless World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

6.4.1 Structure of Authentication Server . . . . . . . . . . . . . . . . . . . . . . 1356.4.2 Business case 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1386.4.3 Business case 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

Chapter 7. Using Customer Care and Director Tool . . . . . . . . . . . . . . 1497.1 Assigning login IDs and access control profiles to CSRs . . . . . . . . . 1507.2 Logging on to Customer Care. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1547.3 Log on steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1557.4 Managing consumer accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

7.4.1 Enroll a new consumer subscriber . . . . . . . . . . . . . . . . . . . . . . 1567.4.2 View and update a subscriber account . . . . . . . . . . . . . . . . . . . 1577.4.3 Changing a subscriber's deal . . . . . . . . . . . . . . . . . . . . . . . . . . 1597.4.4 Change subscriber's method of payment . . . . . . . . . . . . . . . . . 1597.4.5 Disconnect a subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1607.4.6 Reconnect a subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1617.4.7 Create a consumer child subscriber . . . . . . . . . . . . . . . . . . . . . 1627.4.8 Disconnect a child subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . 163

7.5 Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1637.6 Additional services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647.7 Using the Search Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

7.7.1 Search criteria for individual subscribers . . . . . . . . . . . . . . . . . 1657.7.2 Exact match feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Chapter 8. Subscriber Selfcare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1678.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1678.2 Customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1678.3 Running Subscriber Selfcare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

8.3.1 Changing a subscriber’s password . . . . . . . . . . . . . . . . . . . . . . 1728.3.2 Changing personal information . . . . . . . . . . . . . . . . . . . . . . . . . 1748.3.3 Change payment information . . . . . . . . . . . . . . . . . . . . . . . . . . 1768.3.4 Adding new members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

v

Page 8: Introducing tivoli personalized services manager 1.1 sg246031

Chapter 9. Subscriber Personalized Service Environment . . . . . . . . 1819.1 Portal Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1819.2 Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

9.2.1 Multi-device Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1819.2.2 User Preferences API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1819.2.3 Hierarchical repository of referenced links . . . . . . . . . . . . . . . . 1829.2.4 Double click AdServer interface . . . . . . . . . . . . . . . . . . . . . . . . 1829.2.5 JSP Portlet framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1829.2.6 WAP portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1829.2.7 WES Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1839.2.8 Portal page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

9.3 Portal software architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849.3.1 Authentication API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849.3.2 User preferences API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

9.4 JSP portlets framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2019.4.1 JSP portlet architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2029.4.2 Portlet design pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2039.4.3 Portlet addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2059.4.4 Portlet API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

9.5 TPSM portlet library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2119.5.1 Structural portlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

9.6 Service portlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2229.6.1 Customizor Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2229.6.2 LinkSelector Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2259.6.3 Calendar Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2279.6.4 Agenda Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2309.6.5 AddressBook Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

9.7 Filter API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369.8 Profiler API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2389.9 Example of personalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

9.9.1 Internet world . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2419.9.2 Wireless World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

Chapter 10. Virtual ISP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26310.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26310.2 REALMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

10.2.1 User groups Within Realms . . . . . . . . . . . . . . . . . . . . . . . . . . 26510.3 Enrollment and service provisioning . . . . . . . . . . . . . . . . . . . . . . . . 26510.4 Configuring a Virtual ISP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26610.5 Enrolling into the Virtual ISP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

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

vi Introducing Tivoli Personalized Services Manager 1.1

Page 9: Introducing tivoli personalized services manager 1.1 sg246031

11.2 iTk usage scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27111.3 iTk classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

11.3.1 Core classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27211.3.2 iTk Business Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

Chapter 12. Device Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27712.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27712.2 Device Manager on TPSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27812.3 Device Manager Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

12.3.1 Device Manager server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27912.3.2 Device plug-ins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28012.3.3 Device management server API . . . . . . . . . . . . . . . . . . . . . . . 28112.3.4 Device Manager database . . . . . . . . . . . . . . . . . . . . . . . . . . . 28112.3.5 Device management API . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28212.3.6 Device Manager console . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

12.4 Device Manager functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28412.5 Supported devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

12.5.1 Palm Computing PDAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28612.5.2 Compaq Aero 8000 H/PC Pro devices . . . . . . . . . . . . . . . . . . 28612.5.3 NetVista Internet Appliance devices . . . . . . . . . . . . . . . . . . . . 28712.5.4 Generic Windows CE devices. . . . . . . . . . . . . . . . . . . . . . . . . 288

12.6 Features of Device Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28912.6.1 Extensibility for managing various devices . . . . . . . . . . . . . . . 28912.6.2 Centralized management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29012.6.3 Provisioning to other system. . . . . . . . . . . . . . . . . . . . . . . . . . 29012.6.4 Scalability and availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

Appendix A. Special notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

Appendix B. Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295B.1 IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295B.2 IBM Redbooks collections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295B.3 Other resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297IBM Redbooks fax order form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305

IBM Redbooks review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

vii

Page 10: Introducing tivoli personalized services manager 1.1 sg246031

viii Introducing Tivoli Personalized Services Manager 1.1

Page 11: Introducing tivoli personalized services manager 1.1 sg246031

Figures

1. Tivoli Internet Services Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52. Device Manager Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113. Enrollment and service provisioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124. Subscriber authentication and access control . . . . . . . . . . . . . . . . . . . . . . 135. Customer care support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146. Subscriber personalization and self care . . . . . . . . . . . . . . . . . . . . . . . . . . 157. Operation support for growing provider business . . . . . . . . . . . . . . . . . . . 178. Supporting emerging Internet business models. . . . . . . . . . . . . . . . . . . . . 189. Netscape Server Administration console . . . . . . . . . . . . . . . . . . . . . . . . . . 4010. Form for Authentication Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4211. Form for Customer Care Serer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4312. Form for Selfcare Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4413. Form for System Management Tools Server . . . . . . . . . . . . . . . . . . . . . . . 4514. Form for Personalization Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4615. Form for Premium Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4716. Form for Enrollment Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4817. Form of CGI for Enrollment Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4918. Form for SDP Servlet Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5019. Form for the Web Hosting Content Server. . . . . . . . . . . . . . . . . . . . . . . . . 5120. WebSphere Application Server Installation on AIX - welcome page . . . . . 5321. WebSphere Application Server Installation on AIX - type of installation . . 5322. WebSphere Installation on AIX - selecting components to install . . . . . . . 5423. WebSphere Installation on AIX - selecting plug-ins to install. . . . . . . . . . . 5524. WebSphere Installation on AIX - web server configuration file . . . . . . . . . 5525. WebSphere Installation on AIX - indicating database repository . . . . . . . . 5626. WebSphere Installation on AIX - security information . . . . . . . . . . . . . . . . 5627. WebSphere Installation on AIX - specifying WebSphere home directory . 5728. TISM/TPSM installationwelcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5829. Choosing the database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5930. Local Information for the install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6031. Oracle configuration information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6132. TISM install components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6233. TISM prerequisite checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6334. Prerequisites’ installation directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6435. Installation verification dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6536. Installation is finished. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6637. WebSphere administration console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6838. Starting up an Application Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6939. Administration Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7340. The TISM Administration Console dialog box . . . . . . . . . . . . . . . . . . . . . . 74

© Copyright IBM Corp. 2001 ix

Page 12: Introducing tivoli personalized services manager 1.1 sg246031

41. Director Tool Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7442. Structure of the enrollment objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7543. Press the right mouse button and select Add . . . . . . . . . . . . . . . . . . . . . . 7644. Dialog box for the creation of Realm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7745. Registration Names dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7946. Flow of a multi-access registration name. . . . . . . . . . . . . . . . . . . . . . . . . . 8147. Access Code dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8248. Deal examples offered to the user in the enrollment process . . . . . . . . . . 8249. Dialog of the creation of a new deal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8450. Deal text dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8551. Dialog for properties of a deal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8652. Table with the deals and deal text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8753. Menu to create a property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8854. Dialog to create the property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8955. Creating a value for FAVBOOKS property. . . . . . . . . . . . . . . . . . . . . . . . . 9056. Table of deals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9157. Example of how to relate a deal with several Realms . . . . . . . . . . . . . . . . 9258. Relation of access code and deals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9359. A new Sales Channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9460. Table of existing Sales Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9461. Example of selection of created Sales Channel in the new Access Code. 9562. Payment Method dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9663. Method of Payment list dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9764. Relationship between method of payment list and table . . . . . . . . . . . . . . 9765. Example of how to relate the MOP list to MOPs . . . . . . . . . . . . . . . . . . . . 9866. Example of combo-box of MOP list for a deal . . . . . . . . . . . . . . . . . . . . . . 9967. Enroll home page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10068. Enroll with access code PUBLIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10269. Agreement window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10270. Personal detail of enroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10371. Deal and Userid details for enroll details . . . . . . . . . . . . . . . . . . . . . . . . . 10472. Password for enroll details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10473. Details of chosen deal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10574. Payment Method details for enroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10575. Confirmation details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10676. Congratulations screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10677. Configuration enroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10778. Choosing the cheapest deal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10879. Structure of directories of enroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10980. How the authentication server works . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11181. Authentication form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11482. Active components of the Authentication Server for internet access. . . . 11583. Cluster configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

x Introducing Tivoli Personalized Services Manager 1.1

Page 13: Introducing tivoli personalized services manager 1.1 sg246031

84. Premium configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12585. Hierarchal device type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13386. WAP architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13487. Active components of the Authentication Server (mobile internet) . . . . . 13688. Example of navigation for business case 1 . . . . . . . . . . . . . . . . . . . . . . . 14489. The TISM Administration Console dialog box . . . . . . . . . . . . . . . . . . . . . 15090. TISM Administration Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15091. Add a New Access Role (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15192. Add a New Access Role (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15193. TISM Administration Console (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15294. TISM Administration Console (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15295. Add a New Login Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15396. TISM Administration Console (3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15497. Customer care logging page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15598. TISM customer care. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15799. Search results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158100.Subscriber update panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159101.Changing method of payment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160102.Disconnecting a user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161103.User disconnected. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161104.Enrolling a customer child subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . 162105.TISM Reporting Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164106.Selfcare initial page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172107.Logging into Selfcare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173108.Changing a subscriber’s password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173109.Change Password confirmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174110.Password successfully changed message . . . . . . . . . . . . . . . . . . . . . . . 174111.Change Personal Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175112.Changing Personal Information confirmation . . . . . . . . . . . . . . . . . . . . . 176113.Changing Payment Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177114.Changing method of payment confirmation. . . . . . . . . . . . . . . . . . . . . . . 178115.Adding a new member (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179116.Adding a new member (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180117.Portal software architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184118.JSP Portlet Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203119.Pattern model-view-controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203120.More detail about the architecture of JSP Portlets . . . . . . . . . . . . . . . . . 204121.Example of welcome.jsp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205122./perso/home without an authentication . . . . . . . . . . . . . . . . . . . . . . . . . . 205123./perso/home with authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206124./perso/home for WAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206125.Sending a command and parameters to a portlet in the HTTP request . 208126.Use of LayoutSelectorComponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

xi

Page 14: Introducing tivoli personalized services manager 1.1 sg246031

127.Example for HTML browsers of ComponentSelectorComponent . . . . . . 214128.Example for WAP browsers of ComponentSelectorComponent . . . . . . . 214129.Example of redirection to authentication server . . . . . . . . . . . . . . . . . . . 241130.Customizor component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242131.Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244132.Abstracts news . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244133.Content news . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245134.The selection of themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247135.An applied theme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247136.Example of link selector step 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248137.Example of link selector step 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249138.Example of link selector step 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249139.Example of Calendar component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250140.Example of Agenda component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251141.Example of ComponentSelector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252142.ComponentSelectorComponent after adding an external application . . . 256143.New application added by the user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256144.Internet business model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264145.Enrollment and Service Provisioning. . . . . . . . . . . . . . . . . . . . . . . . . . . . 266146.iTk architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270147.iTk usage scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271148.iTk core classes structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273149.Device Manager on TPSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

xii Introducing Tivoli Personalized Services Manager 1.1

Page 15: Introducing tivoli personalized services manager 1.1 sg246031

Tables

1. AIX requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212. Netscape Enterprise Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413. Values of Registration Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784. Required fields for the creation of a new deal . . . . . . . . . . . . . . . . . . . . . . 835. Fields to create deal text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846. Fields to create a property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877. Fields for a Sales Channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938. Description of the required fields for a method of payment . . . . . . . . . . . . 959. JSPs for enroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10910. Property files for enroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11011. Limitations of single-domain mode authentication . . . . . . . . . . . . . . . . . . 11312. JSPs for SelfCare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16713. SelfCare.properties file variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16914. AccessBean implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18615. List of portlet commands for the LayoutSelectorComponent . . . . . . . . . . 21216. Macros for ComponentSelectorComponent. . . . . . . . . . . . . . . . . . . . . . . 21717. Commands for ComponentSelectorComponent . . . . . . . . . . . . . . . . . . . 21718. Commands for Aggregator.class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22119. Commands for Customizor Portlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22420. Commands for LinkSelectorComponent.class. . . . . . . . . . . . . . . . . . . . . 22621. Commands for Calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22922. Commands for Agenda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23123. Commands for AddressBook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23424. DM functions and device plugins matrix . . . . . . . . . . . . . . . . . . . . . . . . . 285

© Copyright IBM Corp. 2001 xiii

Page 16: Introducing tivoli personalized services manager 1.1 sg246031

xiv Introducing Tivoli Personalized Services Manager 1.1

Page 17: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 18: Introducing tivoli personalized services manager 1.1 sg246031

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 SystemsDoug Geiger, Kent Hayes, Al Montibello, Theresa Morris, Dean Skidmore,

IBM USAErnest A. Keenan, Bill Tracey

IBM FranceJean-Michel Porce

IBM SpainRafael 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 [email protected]

xvi Introducing Tivoli Personalized Services Manager 1.1

Page 19: Introducing tivoli personalized services manager 1.1 sg246031

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 ARPANET commissioned by DoD for research into networking. One of the original four nodes is an IBM 360.

1972 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.

1974 BBN opens Telenet, the first public packet data service (a commercial version of ARPANET).

1978 TCP split into TCP and IP.

1979 USENET established using UUCP between Duke and UNC by Tom Truscott, Jim Ellis, and Steve Bellovin. All original groups were under the net.* hierarchy.

1982 DCA and ARPA establish the Transmission Control Protocol (TCP) and Internet Protocol (IP) as the protocol suite, commonly known as TCP/IP, for ARPANET.

1983 EARN (European Academic and Research Network) established. Very similar to the way BITNET works with a gateway funded by IBM.

1984 Domain Name System (DNS) introduced. Number of hosts breaks 1,000.

1985 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.

1987 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.

© Copyright IBM Corp. 2001 1

Page 20: Introducing tivoli personalized services manager 1.1 sg246031

1989 Number of hosts breaks 100,000.

1990 The World comes on-line (world.std.com), becoming the first commercial provider of Internet dial-up access.

1992 Number of hosts breaks 1,000,000. The term “surfing the Internet” is coined by Jean Armour Polly.

1993 Mosaic takes the Internet by storm; WWW proliferates at a 341,634% annual growth rate of service traffic. Gopher's growth is 997%.

1994 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.

1995 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.

1996 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).

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

2 Introducing Tivoli Personalized Services Manager 1.1

Page 21: Introducing tivoli personalized services manager 1.1 sg246031

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 3

Page 22: Introducing tivoli personalized services manager 1.1 sg246031

4 Introducing Tivoli Personalized Services Manager 1.1

Page 23: Introducing tivoli personalized services manager 1.1 sg246031

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 5

Page 24: Introducing tivoli personalized services manager 1.1 sg246031

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 HostingThe 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.

ProvisioningProvisioning 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

6 Introducing Tivoli Personalized Services Manager 1.1

Page 25: Introducing tivoli personalized services manager 1.1 sg246031

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 ToolkitThe 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 7

Page 26: Introducing tivoli personalized services manager 1.1 sg246031

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 RadiusThe 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 supportTPSM now supports IBM DB2 as well as Oracle relational database management system.

2.1.5 LocalizationEnhancements 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.

8 Introducing Tivoli Personalized Services Manager 1.1

Page 27: Introducing tivoli personalized services manager 1.1 sg246031

2.1.6 Device ManagerThe 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.5Device 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-insThe 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 9

Page 28: Introducing tivoli personalized services manager 1.1 sg246031

2.1.7 Integration with WebSphere Everyplace suiteTPSM 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

Page 29: Introducing tivoli personalized services manager 1.1 sg246031

Figure 2. Device Manager Services

2.2.2 Enrollment and service provisioningEvery 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” ([email protected], [email protected], etc.), while subscribers to “Beta” would receive addresses ending in beta.com.

Chapter 2. Overview of Tivoli Personalized Service Manager 11

Page 30: Introducing tivoli personalized services manager 1.1 sg246031

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 controlSubscribers 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

Page 31: Introducing tivoli personalized services manager 1.1 sg246031

Figure 4. Subscriber authentication and access control

2.2.4 Customer care supportAll 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

Page 32: Introducing tivoli personalized services manager 1.1 sg246031

Figure 5. Customer care support

2.2.5 Subscriber personalized service environment and self carePersonalization 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

Page 33: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 34: Introducing tivoli personalized services manager 1.1 sg246031

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 toolsTivoli 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 businessA 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

Page 35: Introducing tivoli personalized services manager 1.1 sg246031

Figure 7. Operation support for growing provider business

2.2.8 Emerging Internet business models-wholesale and virtual ISPA 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

Page 36: Introducing tivoli personalized services manager 1.1 sg246031

Figure 8. Supporting emerging Internet business models

2.2.9 Adherence to industry standardsThe 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

Page 37: Introducing tivoli personalized services manager 1.1 sg246031

• 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

Page 38: Introducing tivoli personalized services manager 1.1 sg246031

20 Introducing Tivoli Personalized Services Manager 1.1

Page 39: Introducing tivoli personalized services manager 1.1 sg246031

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

• 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

Operating System IBM AIX Version 4.3.3

Web Server IBM HTTP Server 1.3.12 orNetscape Enterprise Server 3.6

JDK JDK 1.2.2 with PTF 7. See IBM APAR IY12075

Supported Databases Oracle Database Enterprise Edition 8.1.5IBM DB2 Version 7.1

Application Server WebSphere Application Server V3.5 Standard Edition using Instant DB Option.

© Copyright IBM Corp. 2001 21

Page 40: Introducing tivoli personalized services manager 1.1 sg246031

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 softwareWe 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 filesetsThe 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

Page 41: Introducing tivoli personalized services manager 1.1 sg246031

• 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:

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.

# lslpp -l bos.net.tcp.*Fileset Level State Description----------------------------------------------------------------------------

Path: /usr/lib/objreposbos.net.tcp.adt 4.3.3.25 COMMITTED TCP/IP Application Toolkitbos.net.tcp.client 4.3.3.26 COMMITTED TCP/IP Client Supportbos.net.tcp.server 4.3.3.25 COMMITTED TCP/IP Serverbos.net.tcp.smit 4.3.3.25 COMMITTED TCP/IP SMIT Support

Path: /etc/objreposbos.net.tcp.client 4.3.3.26 COMMITTED TCP/IP Client Supportbos.net.tcp.server 4.3.3.25 COMMITTED TCP/IP Server

Chapter 3. Installation checklist 23

Page 42: Introducing tivoli personalized services manager 1.1 sg246031

- 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

Page 43: Introducing tivoli personalized services manager 1.1 sg246031

• 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 procedureThis 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

Page 44: Introducing tivoli personalized services manager 1.1 sg246031

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:

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.

Install and Update Software

Move cursor to desired item and press Enter.

Install and Update from LATEST Available SoftwareUpdate 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 F2=Refresh F3=Cancel Esc+8=ImageEsc+9=Shell Esc+0=Exit Enter=Do

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 F2=Refresh F3=Cancel F4=ListEsc+5=Reset Esc+6=Command Esc+7=Edit Esc+8=ImageEsc+9=Shell Esc+0=Exit Enter=Do

26 Introducing Tivoli Personalized Services Manager 1.1

Page 45: Introducing tivoli personalized services manager 1.1 sg246031

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 component’s installation status.

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.

Install and Update from LATEST Available Software

Type or select values in entry fields.Press Enter AFTER making all desired changes.

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

F1=Help F2=Refresh F3=Cancel F4=ListF5=Reset F6=Command F7=Edit F8=Image

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 SUCCESSJava_dev2.ext.jaas 1.2.2.0 USR APPLY SUCCESSJava_dev2.ext.commapi 1.2.2.0 USR APPLY SUCCESSJava_dev2.rte.lib 1.2.2.0 USR APPLY SUCCESSJava_dev2.rte.bin 1.2.2.0 USR APPLY SUCCESSJava_dev2.samples.demos 1.2.2.0 USR APPLY SUCCESS

[BOTTOM]

F1=Help F2=Refresh F3=Cancel F6=CommandF8=Image F9=Shell F10=Exit /=Find

Chapter 3. Installation checklist 27

Page 46: Introducing tivoli personalized services manager 1.1 sg246031

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

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.

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

28 Introducing Tivoli Personalized Services Manager 1.1

Page 47: Introducing tivoli personalized services manager 1.1 sg246031

There are five filesets for IY12075. The Status field tells us if we’ve installed the fileset or not. If it says “+”, it means that we’ve 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 variableAfter 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 AIXFor 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 ServerIf 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 .

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

Chapter 3. Installation checklist 29

Page 48: Introducing tivoli personalized services manager 1.1 sg246031

• 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

Page 49: Introducing tivoli personalized services manager 1.1 sg246031

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 -a size='65536' /chfs -a size='32768' /varchfs -a size='32768' /homechfs -a size='655360' /tmpchfs -a 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, it´s 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' hdisk1crfs -v jfs -g'dbvg' -asize=' 4259840' -m'/db' -Ayes

We mount the file systems.

mount /var/adm/logsmount /db

© Copyright IBM Corp. 2001 31

Page 50: Introducing tivoli personalized services manager 1.1 sg246031

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 doesn’t 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

Page 51: Introducing tivoli personalized services manager 1.1 sg246031

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: 16MBFile Units Size====== ===== =========Data: 8 127999KIndex: 6 95999KTemp: 2 31999KSystem: 11User: 1Rbs: 1Drsystem: 6Oem: 1Redo: 1Ctrl: 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

Page 52: Introducing tivoli personalized services manager 1.1 sg246031

#!/bin/kshCOMMAND=$(basename $0 .ksh)DIR=$(dirname $0)echo "Sending output to $DIR/$COMMAND.log"exec 2>$DIR/$COMMAND.log 1>&2MAXRC=0mklv -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=$RCmklv -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=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a c -y lvispbrbs1 rootvg 1 hdisk3RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a c -y lvispbrbs2 rootvg 1 hdisk3RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a c -y lvispbredo11 rootvg 1 hdisk3RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a c -y lvispbredo12 rootvg 1 hdisk3RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a c -y lvispbredo13 rootvg 1 hdisk3RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a c -y lvispbredo21 rootvg 1 hdisk3RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a c -y lvispbredo22 rootvg 1 hdisk3RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a c -y lvispbredo23 rootvg 1 hdisk3RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a 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=$RCmklv -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=$RCmklv -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

Page 53: Introducing tivoli personalized services manager 1.1 sg246031

RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a c -y lvispbctrl1 rootvg 1 hdisk3RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a c -y lvispbctrl2 rootvg 1 hdisk3RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a c -y lvispbctrl3 rootvg 1 hdisk3RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -a c -y lvispbuser rootvg 1 hdisk3

Compare the number of lvispbuser units with the number of units for user in the table.RC=$?;[ $RC -gt $MAXRC ] && MAXRC=$RCmklv -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 don´t have to worry about them.

Another important point is the volume group where you are going to install it. It´s 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/shORACLE_SID=ispbexport ORACLE_SID

/db/app/oracle/products/8.1.5/bin/svrmgrl << EOFconnect internal@/db/app/oracle/products/8.1.5/rdbms/admin/catalog.sql;CREATE ROLLBACK SEGMENT r0 TABLESPACE SYSTEMSTORAGE (INITIAL 32K NEXT 64K MINEXTENTS 10 MAXEXTENTS 512);ALTER ROLLBACK SEGMENT r0 ONLINE;

Chapter 4. Building the environment 35

Page 54: Introducing tivoli personalized services manager 1.1 sg246031

REM ************ TABLESPACE FOR OEM_REPOSITORY ***************CREATE TABLESPACE OEM_REPOSITORY DATAFILE '/dev/rlvispboem' SIZE 5MREUSEAUTOEXTEND ON NEXT 25M MAXSIZE 80MMINIMUM EXTENT 128KDEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1MAXEXTENTS UNLIMITED PCTINCREASE 0);

REM ************** TABLESPACE FOR ROLLBACK *****************CREATE TABLESPACE RBS1 DATAFILE '/dev/rlvispbrbs1' SIZE 12M REUSEDEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 2 MAXEXTENTSUNLIMITED PCTINCREASE 0);ALTER DATABASE DATAFILE '/dev/rlvispbrbs1' AUTOEXTEND ON;

REM ************** TABLESPACE FOR ROLLBACK *****************CREATE TABLESPACE RBS2 DATAFILE '/dev/rlvispbrbs2' SIZE 12M REUSEDEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 2 MAXEXTENTSUNLIMITED PCTINCREASE 0);ALTER DATABASE DATAFILE '/dev/rlvispbrbs2' AUTOEXTEND ON;

REM ************** TABLESPACE FOR TEMPORARY *****************CREATE TABLESPACE TEMP_DATA DATAFILE '/dev/rlvispbtemp' SIZE 31999KREUSE

You have to compare the size of /dev/rlvispbtemp with the size of temp.

DEFAULT STORAGE ( INITIAL 256K NEXT 256K MINEXTENTS 1 MAXEXTENTSUNLIMITED PCTINCREASE 0) TEMPORARY;ALTER DATABASE DATAFILE '/dev/rlvispbtemp' AUTOEXTEND ON;

REM ************** TABLESPACE FOR USER *********************CREATE TABLESPACE USER_DATA DATAFILE '/dev/rlvispbuser' SIZE 5M REUSEDEFAULT STORAGE ( INITIAL 50K NEXT 50K MINEXTENTS 1 MAXEXTENTS UNLIMITEDPCTINCREASE 0);ALTER DATABASE DATAFILE '/dev/rlvispbuser' AUTOEXTEND ON;

REM ************** TABLESPACE FOR INDEX *********************CREATE TABLESPACE ISPB_INDEX DATAFILE '/dev/rlvispbindex' SIZE 95999KREUSE

You have to compare the size of /dev/rlvispbindex with the size of index.

DEFAULT STORAGE ( INITIAL 50K NEXT 50K MINEXTENTS 1 MAXEXTENTS UNLIMITEDPCTINCREASE 0);ALTER DATABASE DATAFILE '/dev/rlvispbindex' AUTOEXTEND ON;

REM ************** TABLESPACE FOR DATA *********************CREATE TABLESPACE ISPB_DATA DATAFILE '/dev/rlvispbdata' SIZE 127999KREUSE

36 Introducing Tivoli Personalized Services Manager 1.1

Page 55: Introducing tivoli personalized services manager 1.1 sg246031

You have to compare the size of /dev/rlvispbdata with the size of data.DEFAULT STORAGE ( INITIAL 50K NEXT 50K MINEXTENTS 1 MAXEXTENTS UNLIMITEDPCTINCREASE 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;disconnectexit

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.

- Enter stage_master as schema owner.

- Enter stage_user as schema user.

- Enter en as default local

You may accept the defaults for the remaining steps if you used ispb as the database instance.

Note

Chapter 4. Building the environment 37

Page 56: Introducing tivoli personalized services manager 1.1 sg246031

- 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 users1. mkgroup -'A' netscape

2. mkuser 'enterpri'

3. chuser pgrp=netscape enterpri

4.3.2 Installing Netscape Enterprise Server 3.6The 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

Page 57: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 58: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 59: Introducing tivoli personalized services manager 1.1 sg246031

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

Table 2. Netscape Enterprise Servers

Server component

Server port

Server identifier

Primary document directory

Authentication Insecure

8080 authserv /usr/TivTSM/authentication/content

Customer Care 14080 custcare /usr/TivTSM/custcare/content

Subscriber Self-Care

15080 selfcare /usr/TivTSM/selfcare/content

System Management Tools

9080 sysmgmt /usr/TivTSM/sysmgmt/content

Personalization 16080 personal /usr/TivTSM/personal/content

Premium 10080 premium /usr/TivTSM/premium/content

Enrollment1 18080 enroll /usr/TivTSM/enroll/content

SDP Servlet 8090 sdp /usr/TivTSM/sdp/content

Web Content Hosting

12080 wch /usr/TivTSM/wch/content

Chapter 4. Building the environment 41

Page 60: Introducing tivoli personalized services manager 1.1 sg246031

4.4.1 Creating the Authentication ServerFill 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

Page 61: Introducing tivoli personalized services manager 1.1 sg246031

4.4.2 Creating the Customer Care ServerFill 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

Page 62: Introducing tivoli personalized services manager 1.1 sg246031

4.4.3 Creating the Selfcare ServerFill 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

Page 63: Introducing tivoli personalized services manager 1.1 sg246031

4.4.4 Creating the System Management Tools ServerFill 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

Page 64: Introducing tivoli personalized services manager 1.1 sg246031

4.4.5 Creating the Personalization ServerFill 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

Page 65: Introducing tivoli personalized services manager 1.1 sg246031

4.4.6 Creating the Premium ServerFill 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

Page 66: Introducing tivoli personalized services manager 1.1 sg246031

4.4.7 Creating the Enrollment ServerFill 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

Page 67: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 68: Introducing tivoli personalized services manager 1.1 sg246031

4.4.8 Creating the SDP Servlet ServerFill 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

Page 69: Introducing tivoli personalized services manager 1.1 sg246031

4.4.9 Creating the Web Hosting Content ServerFill 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

Page 70: Introducing tivoli personalized services manager 1.1 sg246031

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 machine’s 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

Page 71: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 72: Introducing tivoli personalized services manager 1.1 sg246031

• 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

Page 73: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 74: Introducing tivoli personalized services manager 1.1 sg246031

• 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

Page 75: Introducing tivoli personalized services manager 1.1 sg246031

• 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

Page 76: Introducing tivoli personalized services manager 1.1 sg246031

./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

Page 77: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 78: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 79: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 80: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 81: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 82: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 83: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 84: Introducing tivoli personalized services manager 1.1 sg246031

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 configuration1. 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

Page 85: Introducing tivoli personalized services manager 1.1 sg246031

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 configurationThis 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 ServletCreating 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:

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

Chapter 4. Building the environment 67

Page 86: Introducing tivoli personalized services manager 1.1 sg246031

[00.11.15 15:59:11:457 CST] bbe7e34f IExtendedSecu A 2000.11.1515:59:11.457 SecurityConfiguration reportVerificationAnalysis IBMWebSphere Security The security service will not be disabled duringbootstrap 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

Page 87: Introducing tivoli personalized services manager 1.1 sg246031

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 testTo 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

Page 88: Introducing tivoli personalized services manager 1.1 sg246031

4.7.2 Authentication testOpen 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 testOpen 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 testOpen 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 testOpen 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 testOpen 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 testOpen 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

Page 89: Introducing tivoli personalized services manager 1.1 sg246031

4.8.1 OracleSwitch 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 serverChange to the /usr/TivTSM/provisioning/bin directory and issue:

nohup ./StartProvServer.ksh > /var/adm/logs/ProvServ.log

4.8.3 Transaction ServersTo verify if the Transactions Servers are running using the next command:

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

./rc.txservers

4.8.4 Start Netscape ServersTo start up the Netscape Servers, go to /etc directory and enter:

./rc.webservers start

4.8.5 Start WebSphereTo start the WebSphere, please refer to Section 4.6.1.2, “IBM WebSphere Application Server configuration” on page 67.

[# ps -ef|grep Transroot 9024 18256 0 Nov 10 - 5:17 /usr/java_dev2/jre/sh/../bin/java

com.tivoli.tsm.tx.TransactionImproot 21396 20432 0 Nov 10 - 8:33 /usr/java_dev2/jre/sh/../bin/java

com.tivoli.tsm.tx.TransactionImproot 36504 13136 0 15:39:18 pts/4 0:00 grep Trans

#

Chapter 4. Building the environment 71

Page 90: Introducing tivoli personalized services manager 1.1 sg246031

72 Introducing Tivoli Personalized Services Manager 1.1

Page 91: Introducing tivoli personalized services manager 1.1 sg246031

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 subscriber’s 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

Page 92: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 93: Introducing tivoli personalized services manager 1.1 sg246031

• 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 don’t 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

Page 94: Introducing tivoli personalized services manager 1.1 sg246031

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 RealmA 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

Page 95: Introducing tivoli personalized services manager 1.1 sg246031

Figure 44. Dialog box for the creation of Realm

5.1.2 Creation of Registration NamesA 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

Page 96: Introducing tivoli personalized services manager 1.1 sg246031

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

Table 3. Values of Registration Name

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:

Value Description

Registration Name

The username of this Registration Name.

Description Optional 40 character text description

Password The password for this Registration Name.

Registration Authorization Attributes

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).

Member Authorization Attributes

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).

Registration Type

Generic, or Multiple Access Code

Access Code Required

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).

Consumer or Business

Determines if the subscriber, when created, will be considered business or consumer.

Sales Channel Drop-down selection list that comes from the sales channel folder of available sales channels.

Account Type Account type used on the subscriber's account when it is created.

78 Introducing Tivoli Personalized Services Manager 1.1

Page 97: Introducing tivoli personalized services manager 1.1 sg246031

Figure 45. Registration Names dialog box

5.1.3 Creation of Access CodesAccess 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

Page 98: Introducing tivoli personalized services manager 1.1 sg246031

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 doesn’t 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

Page 99: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 100: Introducing tivoli personalized services manager 1.1 sg246031

Figure 47. Access Code dialog box

5.1.4 Creation of a dealThe 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 subscriber´s 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

Page 101: Introducing tivoli personalized services manager 1.1 sg246031

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

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

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.

Field Description

Deal The deal name is also the Billing System Product Code. The name links the deal with a billing plan in the billing system.

Description Text description of the deal. This description is not seen by the user.

Plan Type 1-5 characters. Required. Future use.

Text Block ID Name of the DEAL TEXT that you want to relate with the deal

Method of Payment List Name of the Method of Payment List that we relate with this deal

Properties 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)

Chapter 5. Enrollment and service provisioning 83

Page 102: Introducing tivoli personalized services manager 1.1 sg246031

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 textDeal 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 Description

Reporting description ID for the deal text

Short text Short deal description. It´s usually used in the radio buttons.

Long text Long description of the deal. This is optional.

Sort sequence Numeric value used in descending order to set how they are listed on the screen.

84 Introducing Tivoli Personalized Services Manager 1.1

Page 103: Introducing tivoli personalized services manager 1.1 sg246031

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 dealTo 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

Page 104: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 105: Introducing tivoli personalized services manager 1.1 sg246031

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 propertyA 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 Description

Name Name of the property

Domain Domain of the property

Description Description of the property

Subsystem 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

Page 106: Introducing tivoli personalized services manager 1.1 sg246031

The Director Tool has a few defaults. You can also add your own.

5.1.6.1 Creating a new propertyTo 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

Unit of Measure Unit of measure for property values; for instance, MegaBytes

Default Value Default setting for property; for instance, 1, 0, 2, None

Setting type 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

Value Description

88 Introducing Tivoli Personalized Services Manager 1.1

Page 107: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 108: Introducing tivoli personalized services manager 1.1 sg246031

Figure 55. Creating a value for FAVBOOKS property

5.1.7 Associating the deals with the RealmWith 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

Page 109: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 110: Introducing tivoli personalized services manager 1.1 sg246031

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

5.1.8 Associating the Access Codes with the dealsWith 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

Page 111: Introducing tivoli personalized services manager 1.1 sg246031

Figure 58. Relation of access code and deals

5.1.9 Creating a Sales ChannelA 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

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.

Value Description

ID ID for Sales Channel

Description Text description about the Sales Channel

Chapter 5. Enrollment and service provisioning 93

Page 112: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 113: Introducing tivoli personalized services manager 1.1 sg246031

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

5.1.10 Creating a Method of PaymentA 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

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.

Value Description

Type There are three primitive Method of Payment types:- Paper - For paper invoice creation- Credit - Credit card- Telco - Add to phone bill

Subtype It could be any letter

Description Description of the new method

Chapter 5. Enrollment and service provisioning 95

Page 114: Introducing tivoli personalized services manager 1.1 sg246031

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 PaymentThe 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

Page 115: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 116: Introducing tivoli personalized services manager 1.1 sg246031

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

5.1.12 Association of a MOP list and a dealYou 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

Page 117: Introducing tivoli personalized services manager 1.1 sg246031

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 processWith 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

Page 118: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 119: Introducing tivoli personalized services manager 1.1 sg246031

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.

<!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="SubscriberSystem 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>

Chapter 5. Enrollment and service provisioning 101

Page 120: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 121: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 122: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 123: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 124: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 125: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 126: Introducing tivoli personalized services manager 1.1 sg246031

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 JSPsYou 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

Page 127: Introducing tivoli personalized services manager 1.1 sg246031

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 Description

accessCode Ask the access code

accountCode If the access code is not correct, it would ask the access code again

areYou18 If the user don’t give the birth date, It would ask if you are 18 or over

cancelByUser If you cancel the registration, it would send you to this JSP

configure After registering, the user could download the configuration to your PC

confirm Shows the user details about the registration

congrats It gives the user the congratulations, when it finishes

Chapter 5. Enrollment and service provisioning 109

Page 128: Introducing tivoli personalized services manager 1.1 sg246031

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

debug Not used

dontGo If the user presses cancel

enroll Controls the flow of the enrollment

mopCombined Shows the Payment Details to be confirmed by the user

paymentPlan Shows the Deal Details to be confirmed by the user

userNameInvalid If the user chooses a ID that is used already

personalCombined The form with all the personal details

agreement Shows the terms of agreement

File name Description

EnrollJspMsg.properties Variables with messages for the user

Transaction.properties JDBC configuration for Oracle

Validator.properties Variable format to validate the data that the user introduces

device_enroll.properties It has the error page where if something wrong happens go

enroll.properties General configuration file

JSP file Description

110 Introducing Tivoli Personalized Services Manager 1.1

Page 129: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 130: Introducing tivoli personalized services manager 1.1 sg246031

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 user’s 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, it’s 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 PDA’s. 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

Page 131: Introducing tivoli personalized services manager 1.1 sg246031

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 don’t 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

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

Multi-Domain Mode Single-Domain Mode

Single Sign On (cookie) Yes No

Stage 1: by IP address in IP header

Yes Yes

Stage 1: by IP address in HTTP header

Yes Yes

Stage 1: by Username or MSISDN in HTTP header

Yes Yes

Stage 1: no Yes Yes

Stage 2: Form Yes No

Stage 2: Basic HTTP Yes Yes

External Partners Premium Content Servers

Yes No

Session load balancing Yes Yes

Assumption: Checker does not need connectivity to DB

Checker needs connectivity to DB

Chapter 6. Subscriber authentication and access control 113

Page 132: Introducing tivoli personalized services manager 1.1 sg246031

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 device’s 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 it’s used for internet access are shown in Figure 82 on page 115.

114 Introducing Tivoli Personalized Services Manager 1.1

Page 133: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 134: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 135: Introducing tivoli personalized services manager 1.1 sg246031

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.

<tr bgcolor="#6666CC"><td align="center" colspan="2"><H2><fontcolor="#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 type="hidden" name="SMSkey" value="<%=auth.getKeyIndex()%>"><P><INPUT type="hidden" name="SMSrealm" value="<%=auth.getRealm()%>"><P><INPUT type="hidden" name="SMSurl" value="<%=auth.getComeBackURL()%>"><P><INPUT type="hidden" name="SMStiers" value="<%=auth.getTierList()%>"><P>

</FORM></TD></TR></TABLE></TD></TR></TABLE>

</BODY></HTML>

Chapter 6. Subscriber authentication and access control 117

Page 136: Introducing tivoli personalized services manager 1.1 sg246031

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

It’s 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.propertiesThe 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.DefaultAuthenticatordef.authenticator.properties=com.tivoli.tsm.authentication.DefaultAuthenticator

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 browserie.device.signature.user-agent=MSIEie.device.properties=properties.com.tivoli.tsm.authentication.IEie.device.authenticator=def# Netscape Navigator 4 Web browsernav.device.signature.user-agent=Mozillanav.device.properties=properties.com.tivoli.tsm.authentication.Nav4nav.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 it’s going to use the DefaultAuthenticator.properties because it’s 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

Page 137: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 138: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### 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.DefaultAuthenticatordef.authenticator.properties=properties.com.tivoli.tsm.authentication.DefaultAuthenticator######################################################################## 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.WapAuthenticatorwap.authenticator.properties=properties.com.tivoli.tsm.authentication.WapAuthenticator######################################################################## 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 gateway7110.device.signature.user-agent=Nokia7110/1.07110.device.properties=properties.com.tivoli.tsm.authentication.Nokia7110WapDevice7110.device.authenticator=wap# WAP gatewayR320.device.signature.user-agent=R320R320.device.properties=properties.com.tivoli.tsm.authentication.R320WapDeviceR320.device.authenticator=wap# WAP gateway

120 Introducing Tivoli Personalized Services Manager 1.1

Page 139: Introducing tivoli personalized services manager 1.1 sg246031

6.3.1.2 DBPool.propertiesDBPool.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_masterJDBC.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=5MinDBConnections=2

The following specifies the TISM data model level.

tsm.level=4.0

R380.device.signature.user-agent=R380R380.device.properties=properties.com.tivoli.tsm.authentication.R380WapDeviceR380.device.authenticator=wap# WAP gatewaynokiaemul.device.signature.user-agent=Nokianokiaemul.device.properties=properties.com.tivoli.tsm.authentication.NokiaEmulWapDevicenokiaemul.device.authenticator=wap# IE 4/5 Web browserie.device.signature.user-agent=MSIEie.device.properties=properties.com.tivoli.tsm.authentication.IEie.device.authenticator=def# Netscape Navigator 4 Web browsernav.device.signature.user-agent=Mozillanav.device.properties=properties.com.tivoli.tsm.authentication.Nav4nav.device.authenticator=def# Default Web browserdefault.device.signature.user-agent=default.device.properties=properties.com.tivoli.tsm.authentication.DefaultDevicedefault.device.authenticator=def######################################################################## Authentication log file path#######################################################################authentication.log.name=/var/adm/logs/authentication.log

Chapter 6. Subscriber authentication and access control 121

Page 140: Introducing tivoli personalized services manager 1.1 sg246031

The following screen shows the DBPool.properties file.

6.3.1.3 DefaultAuthenticator.propertiesDefaultAuthenticator.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.

####################################################################### database connection management parameters####################################################################### For Oracle RDBM# JDBC driver nameJDBC.dbDriver=oracle.jdbc.driver.OracleDriver## RDBM server JDBC URLJDBC.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 nameJDBC.dbUser=stage_master# JDBC.dbUser=stage_user## RDBM user passwordJDBC.dbPassword=oracle## Connection pool parametersMaxDBConnections=5MinDBConnections=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

122 Introducing Tivoli Personalized Services Manager 1.1

Page 141: Introducing tivoli personalized services manager 1.1 sg246031

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|noauthentication.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

Page 142: Introducing tivoli personalized services manager 1.1 sg246031

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

sso.cookie.name=sauthsso.cookie.path=/authenticationauthentication.cookie.maxage=-1suthentication.cookie.invalidation.delay=3600authentication.cookie.encrypted=yes|noauthentication.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 doesn’t 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

Page 143: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 144: Introducing tivoli personalized services manager 1.1 sg246031

The next parameters are for the premium server.

authentication.premium.tierids= 08004, 08005, ..authentication.premium.tierurls.08004=/premium1authentication.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|yespremium.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

Page 145: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### 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.comauthentication.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

Page 146: Introducing tivoli personalized services manager 1.1 sg246031

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 nameauthentication.cookie.name=sauth# SSO cookie pathauthentication.cookie.path=/authentication# SS0 Cookie maxage : positive value in second, or negative values means nonpersistantauthentication.cookie.maxage=-1# SSO Cookie invalidation delay : positive value in second# After that period of time, even replayed (by a hacker) the cookie# is rejectedauthentication.cookie.invalidation.delay=3600## Use encrypted SSO cookie : yes | no# Turn to off when single-domain authentication is used : it avoids# useless encryption/decryptionauthentication.cookie.encrypted=yes

128 Introducing Tivoli Personalized Services Manager 1.1

Page 147: Introducing tivoli personalized services manager 1.1 sg246031

## Key index for cookie encryptionauthentication.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 = 1accessbean.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

Page 148: Introducing tivoli personalized services manager 1.1 sg246031

# >> 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=nopremium.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

Page 149: Introducing tivoli personalized services manager 1.1 sg246031

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

6.3.1.5 Nav4.propertiesNav4.properties is the properties for Enterprise Navigator 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=-1device.column.nbr=-1device.line.nbr=-1######################################################################## Any ISP defined properties ...#######################################################################

Chapter 6. Subscriber authentication and access control 131

Page 150: Introducing tivoli personalized services manager 1.1 sg246031

.

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

####################################################################### 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=-1device.column.nbr=-1device.line.nbr=-1######################################################################## Any ISP defined properties ...#######################################################################

132 Introducing Tivoli Personalized Services Manager 1.1

Page 151: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 152: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 153: Introducing tivoli personalized services manager 1.1 sg246031

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 it´s 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 ServerThe important parts of the Authentication Server when it´s 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

Page 154: Introducing tivoli personalized services manager 1.1 sg246031

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 doesn’t 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 155: Introducing tivoli personalized services manager 1.1 sg246031

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 don’t pass these parameters.

The configuration for the servlets will be explained in the sample business cases because it depends on the environment.

<%@ 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>

Chapter 6. Subscriber authentication and access control 137

Page 156: Introducing tivoli personalized services manager 1.1 sg246031

6.4.2 Business case 1This 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 doesn’t use a Wireless Gateway, so everything is sent and received in WML.

6.4.2.1 ConfigurationThe 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.propertiesAuthentication.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

Page 157: Introducing tivoli personalized services manager 1.1 sg246031

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 don’t have a gateway, we set:

authentication.type1 = noauthentication.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 doesn’t receive any ComeBackURL, it uses this one.

authentication.default.realm=IBM

If the servlet doesn’t 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

Page 158: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### 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

Page 159: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### 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 nameauthentication.cookie.name=sauth# SSO Cookie pathauthentication.cookie.path=/authentication# SSO Cookie maxage : positive value in second, or negative values means nonpersistantauthentication.cookie.maxage=-1# SSO Cookie invalidation delay : positive value in second# After that period of time, even replayed (by a hacker) the cookie# is rejectedauthentication.cookie.invalidation.delay=3600## Use encrypted SSO cookie : yes or noauthentication.cookie.encrypted=yes## Key index for SSO cookie encryptionauthentication.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

Page 160: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### Authentication server uses a pool of prepared statements# Pool size : min, max nbr of statements######################################################################accessbean.statementpool.min = 1accessbean.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=/premiumauthentication.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

Page 161: Introducing tivoli personalized services manager 1.1 sg246031

Device.propertiesThe 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.

######################################################################## Log the access to a premium service into file...######################################################################premium.access.log=yespremium.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

####################################################################### 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.wmlc,application/vnd.wap.wmlscriptc,image/vnd.wap.wbmp######################################################################## device presentation properties######################################################################device.color.nbr=2device.column.nbr=20device.line.nbr=5

Chapter 6. Subscriber authentication and access control 143

Page 162: Introducing tivoli personalized services manager 1.1 sg246031

6.4.2.2 ExampleHere 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 2This 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 didn’t include them in this redbook.

6.4.3.1 Configuration filesWe modified the WapAuthenticator.properties file from Business Case 1 was as shown in the next screen.

144 Introducing Tivoli Personalized Services Manager 1.1

Page 163: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### 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=noauthentication.type1.header = X-Network-Info

Chapter 6. Subscriber authentication and access control 145

Page 164: Introducing tivoli personalized services manager 1.1 sg246031

# 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 nameauthentication.cookie.name=sauth# SSO Cookie pathauthentication.cookie.path=/authentication# SSO Cookie maxage : positive value in second, or negative values means nonpersistantauthentication.cookie.maxage=-1# SSO Cookie invalidation delay : positive value in second# After that period of time, even replayed (by a hacker) the cookie# is rejectedauthentication.cookie.invalidation.delay=3600## Use encrypted SSO cookie : yes or noauthentication.cookie.encrypted=yes## Key index for SSO cookie encryptionauthentication.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

Page 165: Introducing tivoli personalized services manager 1.1 sg246031

authentication.session.used=yes

####################################################################### Authentication server uses a pool of prepared statements# Pool size : min, max nbr of statements######################################################################accessbean.statementpool.min = 1accessbean.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=/premiumauthentication.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

Page 166: Introducing tivoli personalized services manager 1.1 sg246031

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.

premium.accessrejected.url=http://wap.yahoo.com######################################################################## Log the access to a premium service into file...######################################################################premium.access.log=yespremium.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

148 Introducing Tivoli Personalized Services Manager 1.1

Page 167: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 168: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 169: Introducing tivoli personalized services manager 1.1 sg246031

• 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

Page 170: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 171: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 172: Introducing tivoli personalized services manager 1.1 sg246031

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 CSR’s 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

Page 173: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 174: Introducing tivoli personalized services manager 1.1 sg246031

7.4.1 Enroll a new consumer subscriberWhen 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

Page 175: Introducing tivoli personalized services manager 1.1 sg246031

Figure 98. TISM customer care

7.4.2 View and update a subscriber accountThe 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

Page 176: Introducing tivoli personalized services manager 1.1 sg246031

• 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

Page 177: Introducing tivoli personalized services manager 1.1 sg246031

Figure 100. Subscriber update panel

7.4.3 Changing a subscriber's dealA 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 subscriber’s 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 paymentTo change the subscriber’s 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

Page 178: Introducing tivoli personalized services manager 1.1 sg246031

• 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 subscriberTo 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

Page 179: Introducing tivoli personalized services manager 1.1 sg246031

Figure 102. Disconnecting a user

Figure 103. User disconnected

7.4.6 Reconnect a subscriberTo reconnect a subscriber, follow these steps:

• On the Subscriber Update panel, press the “Reconnect” button.

Chapter 7. Using Customer Care and Director Tool 161

Page 180: Introducing tivoli personalized services manager 1.1 sg246031

• 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 subscriberA 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

Page 181: Introducing tivoli personalized services manager 1.1 sg246031

• 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 subscriberUsing 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

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.

Note

Chapter 7. Using Customer Care and Director Tool 163

Page 182: Introducing tivoli personalized services manager 1.1 sg246031

• 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

Page 183: Introducing tivoli personalized services manager 1.1 sg246031

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 subscribersTo 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 featureThe 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

Page 184: Introducing tivoli personalized services manager 1.1 sg246031

166 Introducing Tivoli Personalized Services Manager 1.1

Page 185: Introducing tivoli personalized services manager 1.1 sg246031

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/jspdirectory, are described in Table 12:

Table 12. JSPs for SelfCare

JSP File Description

AddMemberAuthError Authentication page.

© Copyright IBM Corp. 2001 167

Page 186: Introducing tivoli personalized services manager 1.1 sg246031

AddMemberMemberCancel If you cancel the registration, it will send you to this JSP.

AddMemberCommit Commits the changes to the database.

AddMemberInput New Member form,.

AddMemberMain JSP that controls all the flow.

AddMemberRefused If there is anything wrong with the information entered.

AddMemberSubmit Asks for confirmation to proceed with the registration.

ChangePasswordAuthError Authentication Page.

ChangePasswordCancel If you cancel the registration, it will send you to this JSP.

ChangePasswordCommit Commits the changes to the database.

ChangePasswordInput The Change Password form to be filled.

ChangePasswordMain JSP that controls the flow.

ChangePasswordRefused If there is anything wrong with the password, this JSP is called.

ChangePasswordSubmit Asks if you want to go ahead with the new password.

ChangePaymentAuthError Authentication page.

ChangePaymentCancel If you cancel the payment, it would send you to this JSP.

ChangePaymentCommit Commits the changes to the database.

ChangePaymentInput The form to change the information.

ChangePaymentMain JSP that controls the flow.

ChangePaymentRefused If there is something wrong.

ChangePaymentSubmit Asks for confirmation to proceed with the changes.

ChangePersonalInfoAuthError User authentication.

ChangePersonalInfoCancel If you cancel the registration, it would send you to this JSP.

JSP File Description

168 Introducing Tivoli Personalized Services Manager 1.1

Page 187: Introducing tivoli personalized services manager 1.1 sg246031

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

ChangePersonalInfoCommit Commits the changes to the database.

ChangePersonalInfoInput Shows the fields to change.

ChangePersonalInfoMain JSP that controls the flow.

ChangePersonalInfoRefused If there is anything wrong with a field, this JSP is called.

ChangePersonalInfoSubmit Asks for confirmation to proceed with the changes.

DisplayDeviceAuthError Authentication page.

DisplayDeviceInfo Display the device information.

DisplayDeviceList Display the devices.

DisplayDeviceMain JSP that controls the flow.

DisplayDevicenotFound If a device is not found.

DisplayDeviceRefused If there is something wrong with the device.

Variable Description Example

displayDevice.JSPPath The URL location of the application JSP files.

/selfcare

displayDevice.mainJSPPage

The name of the main JSP file.

DisplayDeviceMain.jsp

displayDevice.hostName The URL location of the application host.

http://itso14.dev.tivoli.com

displayDevice.debug A switch to cause the logging of more detailed messages.

false

displayDevice.exitClass Exit class of application. com.tivoli.tsm.selfcare.SampleExit1

displayDevice.device.default

Device specific class. com.tivoli.tsm.selfcare.device.DisplayDevice4PC

JSP File Description

Chapter 8. Subscriber Selfcare 169

Page 188: Introducing tivoli personalized services manager 1.1 sg246031

displayDevice.device.PC Device specific class. com.tivoli.tsm.selfcare.device.DisplayDevice4PC

changePassword.JSPPath The URL location of the application JSP files.

/selfcare

changePassword.mainJSPPage

The name of the main JSP file.

ChangePasswordMain.jsp

changePassword.hostName

The URL location of the application host.

http://itso14.dev.tivoli.com

changePassword.debug A switch to cause the logging of more detailed messages.

false

changePassword.exitClass

Exit class of application. com.tivoli.tsm.selfcare.SampleExit1

changePassword.device.default

Device specific class. com.tivoli.tsm.selfcare.ChangePassword4PC

changePassword.device.PC

Device specific class. com.tivoli.tsm.selfcare.ChangePassword4PC

changePayment.JSPPath The URL location of the application JSP files.

/selfcare

changePayment.mainJSPPage

The name of the main JSP file.

ChangePaaymentMain.jsp

changePayment.hostName

The URL location of the application host.

http://itso14.dev.tivoli.com

changePayment.debug A switch to cause the logging of more detailed messages.

false

changePayment.exitClass Exit class of application. com.tivoli.tsm.selfcare.SampleExit1

changePayment.device.default

Device specific class. com.tivoli.tsm.selfcare.ChangePassword4PC

changePayment.device.PC

Device specific class. com.tivoli.tsm.selfcare.ChangePassword4PC

changePersonalInfo.JSPPath

The URL location of the application JSP files.

/selfcare

Variable Description Example

170 Introducing Tivoli Personalized Services Manager 1.1

Page 189: Introducing tivoli personalized services manager 1.1 sg246031

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.

changePersonalInfo.mainJSPPage

The name of the main JSP file.

ChangePersonalInfoMain.jsp

changePersonalInfo.hostName

The URL location of the application host.

http://itso14.dev.tivoli.com

changePersonalInfo.debug A switch to cause the logging of more detailed messages.

false

changePersonalInfo.exitClass

Exit class of application. com.tivoli.tsm.selfcare.SampleExit1

changePersonalInfo.device.default

Device specific class. com.tivoli.tsm.selfcare.ChangePassword4PC

changePersonalInfo.device.PC

Device specific class. com.tivoli.tsm.selfcare.ChangePassword4PC

addMember.JSPPath The URL location of the application JSP files.

/selfcare

addMember.mainJSPPage The name of the main JSP file.

AddMemberMain.jsp

addMember.hostName The URL location of the application host.

http://itso14.dev.tivoli.com

addMember.debug A switch to cause the logging of more detailed messages.

false

addMember.exitClass Exit class of application. com.tivoli.tsm.selfcare.SampleExit1

addMember.device.default Device specific class. com.tivoli.tsm.selfcare.ChangePassword4PC

addMember.device.PC Device specific class. com.tivoli.tsm.selfcare.ChangePassword4PC

Variable Description Example

Chapter 8. Subscriber Selfcare 171

Page 190: Introducing tivoli personalized services manager 1.1 sg246031

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 subscriber’s passwordSelect 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

Page 191: Introducing tivoli personalized services manager 1.1 sg246031

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 subscriber’s password

Chapter 8. Subscriber Selfcare 173

Page 192: Introducing tivoli personalized services manager 1.1 sg246031

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 informationThis 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 193: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 194: Introducing tivoli personalized services manager 1.1 sg246031

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 informationAllows 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

Page 195: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 196: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 197: Introducing tivoli personalized services manager 1.1 sg246031

Figure 115. Adding a new member (1)

Chapter 8. Subscriber Selfcare 179

Page 198: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 199: Introducing tivoli personalized services manager 1.1 sg246031

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 PortalThere 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 APIThe User Preferences API is a set of Java Beans that access the user’s profile and preferences. The TPSM customer can develop a set of personalized JSP’s or servlets that use the personalization API Java Bean to access the user data.

© Copyright IBM Corp. 2001 181

Page 200: Introducing tivoli personalized services manager 1.1 sg246031

9.2.3 Hierarchical repository of referenced linksAnother 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 interfacePersonalization 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 frameworkPortlets 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 portalThe 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

Page 201: Introducing tivoli personalized services manager 1.1 sg246031

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 AuthenticationTPSM 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 pageThe 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

Page 202: Introducing tivoli personalized services manager 1.1 sg246031

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 APIThe 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 203: Introducing tivoli personalized services manager 1.1 sg246031

• 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 APIThe 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.classThis 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

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

Chapter 9. Subscriber Personalized Service Environment 185

Page 204: Introducing tivoli personalized services manager 1.1 sg246031

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 Bean’s 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 Description Commodity Classes Read or Read/Write

Account Wraps the residential and business accounts

R

AccountFavouriteLinks Favorite links at account level

Link, LinkEnumeration, LinkCategoryEnumeration,LinkCategorylxEnumeration

R/W

186 Introducing Tivoli Personalized Services Manager 1.1

Page 205: Introducing tivoli personalized services manager 1.1 sg246031

9.3.2.2 Account.classThis 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.

AccountMembers All users sharing the same account

R

AccountNameValuePairs

Generic properties at account level

NameValue, NameValueEnumeration

R/W

AddressBook User´s agenda entries

AddressBookEntry,AddressBookEntryEnumeration

R/W

Agenda User´s agenda entries

Appointment,AppointmentEnumeration

R/W

Device Device profile R

FamilyMembers All members of a family

R

FavouriteLinks User´s favourite links

Link, LinkEnumeration, LinkCategoryEnumeration, LinkCategorylxEnumeration

R/W

NameValuePairs User´s generic properties

NameValue,NameValueEnumeration

R/W

ReferencedLinks Singleton that contains the hierarchy of referenced links

Link,ReferencedLinkEnumeration,ReferencedLinkRepository

R/W

User User´s information R

UserExtensions For future use R

UserTopics For future use

AccessBean Class Description Commodity Classes Read or Read/Write

Chapter 9. Subscriber Personalized Service Environment 187

Page 206: Introducing tivoli personalized services manager 1.1 sg246031

• 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.classThis 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.classThis 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.classThis 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

Page 207: Introducing tivoli personalized services manager 1.1 sg246031

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.classThis 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

Page 208: Introducing tivoli personalized services manager 1.1 sg246031

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 209: Introducing tivoli personalized services manager 1.1 sg246031

9.3.2.7 Appointment.classThis 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;

<%@ page buffer="none" import="com.tivoli.tsm.perso.* %><HTML><BODY><%// Create, read and populate the AddressBook bean, or just retrieve it from sessionAddressBook addbook = AddressBook.getBean(request);

// Add a new contactAddressBookEntry newEntry = new AddressBookEntry ("Business", "John", "Smith", "Mr","IBM","LA", "1111111111", "2222222222", "333333333", "[email protected]","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>

Chapter 9. Subscriber Personalized Service Environment 191

Page 210: Introducing tivoli personalized services manager 1.1 sg246031

• 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

Page 211: Introducing tivoli personalized services manager 1.1 sg246031

• 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.classThis 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

Page 212: Introducing tivoli personalized services manager 1.1 sg246031

• 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

Page 213: Introducing tivoli personalized services manager 1.1 sg246031

• 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.

9.3.2.9 FamilyMembers.classThis 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.

<%@ page buffer="none" import="com.tivoli.tsm.perso.*, java.text.*" %><HTML><BODY><%// Create, read and populate Account bean, or just retrieve it from sessionAgenda 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.getDurationMin())%>min<TD></TR><%}%></TABLE>.../...</BODY></HTML>

Chapter 9. Subscriber Personalized Service Environment 195

Page 214: Introducing tivoli personalized services manager 1.1 sg246031

9.3.2.10 FavoriteLinks.classThis 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;

!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.text.*" %><jsp:useBean id="myFamily" class="com.tivoli.tsm.perso.FamilyMembers" scope="session"/><% myFamily.read(request); %>

<%

//----------------------------------// Compute style sheetString 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>..

196 Introducing Tivoli Personalized Services Manager 1.1

Page 215: Introducing tivoli personalized services manager 1.1 sg246031

• 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 216: Introducing tivoli personalized services manager 1.1 sg246031

9.3.2.11 NameValuePairs.classThis 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.

<%@ page buffer="none" import="com.tivoli.tsm.perso.* %><HTML><BODY><%// Create, read and populate FavoriteLinks bean, or just retrieve it from sessionFavoriteLinks links = FavoriteLinks.getBean(request);// Add new linksLink 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>

198 Introducing Tivoli Personalized Services Manager 1.1

Page 217: Introducing tivoli personalized services manager 1.1 sg246031

• 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

Page 218: Introducing tivoli personalized services manager 1.1 sg246031

9.3.2.12 ReferencedLinks.classThis 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

<!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.text.*" %>

<%//**********************************************************************************// Code for writting a table with the values of NameValuePairs java bean//**********************************************************************************

// Be careful with this variable because it´s usually used for getting values forthe

// 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>

<%}%>

200 Introducing Tivoli Personalized Services Manager 1.1

Page 219: Introducing tivoli personalized services manager 1.1 sg246031

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.classThis 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.

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.

<!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.text.*" %>

<%// 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>

Chapter 9. Subscriber Personalized Service Environment 201

Page 220: Introducing tivoli personalized services manager 1.1 sg246031

9.4.1 JSP portlet architectureFigure 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

Page 221: Introducing tivoli personalized services manager 1.1 sg246031

Figure 118. JSP Portlet Architecture

9.4.2 Portlet design patternThe 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

Page 222: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 223: Introducing tivoli personalized services manager 1.1 sg246031

9.4.3 Portlet addressingThe 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

Page 224: Introducing tivoli personalized services manager 1.1 sg246031

Figure 123. /perso/home with authentication

Figure 124. /perso/home for WAP

9.4.3.1 Selecting a layout pageThe 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

Page 225: Introducing tivoli personalized services manager 1.1 sg246031

• 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/components/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.jsppage./WEB.home=/perso/components/layoutselector/homehtml.jsppage./WEB.addrbook=/perso/components/layoutselector/addrbookhtml.jsppage./WEB.agenda=/perso/components/layoutselector/agendahtml.jsppage./WEB.news=/perso/components/layoutselector/newshtml.jsppage./WEB.logout=/perso/components/layoutselector/logouthtml.jsp######################################################################## Pages for WML devices#######################################################################page./WAP/R380.defaultcmd=/perso/components/layoutselector/homewml.jsppage./WAP/R380.minimize=/perso/components/layoutselector/homewml.jsp

page./WAP/NokiaEmul.defaultcmd=/perso/components/layoutselector/homewml.jsppage./WAP/NokiaEmul.minimize=/perso/components/layoutselector/homewml.jsp

page./WAP/nokia7110.defaultcmd=/perso/components/layoutselector/homewml.jsppage./WAP/nokia7110.minimize=/perso/components/layoutselector/homewml.jsp

page./WAP/R320.defaultcmd=/perso/components/layoutselector/homewml.jsppage./WAP/R320.minimize=/perso/components/layoutselector/homewml.jsp

Chapter 9. Subscriber Personalized Service Environment 207

Page 226: Introducing tivoli personalized services manager 1.1 sg246031

9.4.3.2 Addressing a command to an included portletEach 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 page’s layout, using the configuration file of the servlet LayoutSelectorComponent. The defined JSP receives a command.

9.4.4 Portlet APIThe 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

Page 227: Introducing tivoli personalized services manager 1.1 sg246031

9.4.4.1 Component APIThis 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:

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

<!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.text.*" %>

<HTML>../..<TABLE border="0" cellspacing="0" cellpadding="0" width="250"><TR><TD>

<!----------- Component selector --------------------------->

<%Component.include("/perso/componentSelectorComponent", "comps", this, request,

response);%></TD></TR>

../..

Chapter 9. Subscriber Personalized Service Environment 209

Page 228: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 229: Introducing tivoli personalized services manager 1.1 sg246031

• 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 configurationEach 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 portletsThe 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

Page 230: Introducing tivoli personalized services manager 1.1 sg246031

9.5.1.1 LayoutSelectorComponentThe 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 LayoutSelectorComponentFor 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 Description Dispatched HTML JSP

Dispatched WML JSP

defaultcmd Used when no specific command is addressed

homehtml.jsp homewml.jsp

home Displays the portal home page

homehtml.jsp homewml.jsp

212 Introducing Tivoli Personalized Services Manager 1.1

Page 231: Introducing tivoli personalized services manager 1.1 sg246031

Class definitionpackage com.tivoli.tsm.perso.components;

public class LayoutSelectorComponent extends LayoutComponent;

public class LayoutSelectorComponentSession extends LayoutComponentSession;

9.5.1.2 ComponentSelectorComponentComponentSelectorComponent 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.

addrbook Displays a layout page that includes the addressbook

addrbookhtml.jsp

agenda Displays a layout page that includes the agenda

agendahtml.jsp

news Displays a layout page that includes the news

newshtml.jsp

logout Displays a layout page used at logout

logouthtml.jsp

Commands Description Dispatched HTML JSP

Dispatched WML JSP

Chapter 9. Subscriber Personalized Service Environment 213

Page 232: Introducing tivoli personalized services manager 1.1 sg246031

Figure 127. Example for HTML browsers of ComponentSelectorComponent

Figure 128. Example for WAP browsers of ComponentSelectorComponent

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

214 Introducing Tivoli Personalized Services Manager 1.1

Page 233: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### 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 Calendarapplication.icon.calendar=/images/calendar.gifapplication.componenturl.calendar=/perso/calendarComponentapplication.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 Agendaapplication.icon.agenda=/images/agenda.gifapplication.componenturl.agenda=/perso/agendaComponentapplication.iconclickurl.agenda=/perso/home?layout=agenda&agenda=maximizeapplication.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 Linksapplication.icon.links=/images/world.gifapplication.componenturl.links=/perso/linkSelectorComponentapplication.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 Bookapplication.icon.addressBook=/images/addrbook.gifapplication.componenturl.addressBook=/perso/addressBookComponentapplication.iconclickurl.addressBook=/perso/home?layout=addrbook&addressBook=maximizeapplication.devicetype.addressBook=/

Chapter 9. Subscriber Personalized Service Environment 215

Page 234: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### Example of aggregation contentapplication.label.news=The Newsapplication.icon.news=/images/news.gifapplication.componenturl.news=/perso/newsapplication.iconclickurl.news=/perso/home?layout=home&news=maximizeapplication.devicetype.news=/####################################################################### Example of an external link with macrosubstitution using the user's profile# This type of link has no component URLapplication.label.weather=My Weatherapplication.icon.weather=/images/weather.gifapplication.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 devicespage./WEB.defaultcmd=/perso/components/componentselector/myapplihtml.jsp# Minimized pagepage./WEB.minimize=/perso/components/componentselector/minapplihtml.jsp# Page with my applicationspage./WEB.maximize=/perso/components/componentselector/myapplihtml.jsppage./WEB.myappli=/perso/components/componentselector/myapplihtml.jsppage./WEB.add=/perso/components/componentselector/myapplihtml.jsppage./WEB.delete=/perso/components/componentselector/myapplihtml.jsp# Page with other available applicationspage./WEB.customize=/perso/components/componentselector/customapplihtml.jsp####################################################################### layouts for WAP devices####################################################################### Startup mode for WAP devices : defaultcmd --> minimizedpage./WAP/R380.defaultcmd=/perso/components/componentselector/myappliwml.jsppage./WAP/R380.minimize=/perso/components/componentselector/minappliwml.jsppage./WAP/R380.maximize=/perso/components/componentselector/maxappliwml.jsppage./WAP/R380.add=/perso/components/componentselector/myappliwml.jsppage./WAP/R380.delete=/perso/components/componentselector/myappliwml.jsppage./WAP/R380.myappli=/perso/components/componentselector/myappliwml.jsp

page./WAP/NokiaEmul.defaultcmd=/perso/components/componentselector/myappliwml.jsppage./WAP/NokiaEmul.minimize=/perso/components/componentselector/minappliwml.jsppage./WAP/NokiaEmul.maximize=/perso/components/componentselector/maxappliwml.jsppage./WAP/NokiaEmul.add=/perso/components/componentselector/myappliwml.jsppage./WAP/NokiaEmul.delete=/perso/components/componentselector/myappliwml.jsppage./WAP/NokiaEmul.myappli=/perso/components/componentselector/myappliwml.jsppage./WAP/nokia7110.defaultcmd=/perso/components/componentselector/myappliwml.jsppage./WAP/nokia7110.minimize=/perso/components/componentselector/minappliwml.jsppage./WAP/nokia7110.maximize=/perso/components/componentselector/maxappliwml.jsppage./WAP/nokia7110.add=/perso/components/componentselector/myappliwml.jsp

216 Introducing Tivoli Personalized Services Manager 1.1

Page 235: Introducing tivoli personalized services manager 1.1 sg246031

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=maximize

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 definitionThe macros are listed in Table 16.

Table 16. Macros for ComponentSelectorComponent

CommandsThe commands are shown in Table 17.

Table 17. Commands for ComponentSelectorComponent

Macro Definition Method

*getLastName* User.getLastName()

*getFirstName* User.getFirstName()

*getCity* User.getCity()

*getGender* User.getGender()

*getXxx* User.getXxx()

*Yyy // any property name not starting with ‘get’

NameValuePairs.getValue(Yyy)

Commands Description Dispatched HTML JSP

Dispatched WML JSP

defaultcmd Used when no specific command is addressed.

myapplihtml.jsp myappliwml.jsp

Chapter 9. Subscriber Personalized Service Environment 217

Page 236: Introducing tivoli personalized services manager 1.1 sg246031

Definitionpackage 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.

minimize Minimizes the component

minapplihtml.jsp minappliwml.jsp

maximize Maximizes the component, and displays the user's selection.

myapplihtml.jsp maxappliwml.jsp

add Adds a new application to the user's profile, and displays the user's selection.

myapplihtml.jsp myappliwml.jsp

delete Deletes an application from the user's profile, and displays the user's selection.

myapplihtml.jsp myappliwml.jsp

myappli Displays the user's selection.

myapplihtml.jsp myappliwml.jsp

customize Allows modification of the user's selection.

customapplihtml.jsp

Commands Description Dispatched HTML JSP

Dispatched WML JSP

218 Introducing Tivoli Personalized Services Manager 1.1

Page 237: Introducing tivoli personalized services manager 1.1 sg246031

9.5.1.3 AggregatorThe 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 fileThe file used for the configuration of this servlet is /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/perso/components/AggregatorComponent.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

Page 238: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### 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.txtaggregator.content.politics=/perso/samples/news/politics_news.txtaggregator.images.politics=/images/news/clinton.jpg#aggregator.abstract.basketball=/perso/samples/news/basketball_abstract.txtaggregator.content.basketball=/perso/samples/news/basketball_news.txtaggregator.images.basketball=/images/news/basketball.jpg#aggregator.abstract.golf=/perso/samples/news/basketball_abstract.txtaggregator.content.golf=/perso/samples/news/golf_news.txtaggregator.images.golf=/images/news/golf.jpg#aggregator.abstract.soccer_1=/perso/samples/news/soccer_abstract.txtaggregator.content.soccer_1=/perso/samples/news/soccer_news.txtaggregator.images.soccer_1=/images/news/soccer.jpg#aggregator.abstract.soccer_2=/perso/samples/news/euro2000_abstract.txtaggregator.content.soccer_2=/perso/samples/news/euro2000_news.txtaggregator.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 pagepage./WEB.defaultcmd=/perso/components/aggregator/newsabstract.jsppage./WEB.minimize=/perso/components/newsabstract.jsppage./WEB.normal=/perso/components/aggregator/newsabstract.jsppage./WEB.maximize=/perso/components/aggregator/newsfull.jsppage./WEB.oneitem=/perso/components/aggregator/onenews.jsp######################################################################## Pages for R380 WAP device######################################################################page./WAP/R380.defaultcmd=/perso/components/aggregator/minnewswml.jsppage./WAP/R380.minimize=/perso/components/aggregator/minnewswml.jsppage./WAP/R380.maximize=/perso/components/aggregator/newswml.jsppage./WAP/R380.oneitem=/perso/components/aggregator/onenewswml.jsp#

220 Introducing Tivoli Personalized Services Manager 1.1

Page 239: Introducing tivoli personalized services manager 1.1 sg246031

Portlet commands processed by Aggregator.classThe commands are shown in Table 18.

Table 18. Commands for Aggregator.class

Commands Description Dispatched HTML JSP

DIspatched WML JSP

defaultcmd Used when no specific command is addressed.

newsabstract.jsp minnewswml.jsp

minimize Minimizes the component.

newsabstract.jsp onenewswml.jsp

normal Maximizes the component, and displays the list of news abstracts filtered out for this user.

newsabstract.jsp

maximize Maximizes the component, and displays the list of news details filtered out for this user.

newsfull.jsp newswml.jsp

oneitem Maximizes the component, and displays one news details

onenews.jsp onenewswml.jsp

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

Chapter 9. Subscriber Personalized Service Environment 221

Page 240: Introducing tivoli personalized services manager 1.1 sg246031

Definitionpackage 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 PortletThe 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/CustomizorComponent.properties is shown in the following screen.

222 Introducing Tivoli Personalized Services Manager 1.1

Page 241: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### 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,greenparam.topics=list,politics,soccer,golf,basketball####################################################################### Layout rules :# page.<device type>.<component HTTP command>=<JSP URL path>############################################################################################################################################# Pages for HTML devices####################################################################### Minimized pagepage./WEB.defaultcmd=/perso/components/customizor/mincustomhtml.jsppage./WEB.minimize=/perso/components/customizor/mincustomhtml.jsp#page./WEB.maximize=/perso/components/customizor/maxcustomhtml.jsppage./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

Page 242: Introducing tivoli personalized services manager 1.1 sg246031

List of portlet commands processed by CustomizorTable 19 shows the portlet commands.

Table 19. Commands for Customizor Portlet

Class definitionpackage 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

Commands Description Dispatched HTML JSP

Dispatched WML JSP

defaultcmd Used when no specific command is addressed.

mincustomhtml.jsp

minimize Minimizes the component

mincustomhtml.jsp

maximize Maximizes the component

maxcustomhtml.jsp

save Validates, and saves a parameter whose name is defined in the properties file. Then it displays the maximized view.

maxcustomhtml.jsp

topics Not processed by the service() method. It displays the topics selection form.

topicshtml.jsp

themes Not processed by the service() method. It displays the themes selection form.

themehtml.jsp

224 Introducing Tivoli Personalized Services Manager 1.1

Page 243: Introducing tivoli personalized services manager 1.1 sg246031

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 PortletThe 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/LinkSelectorComponent.properties

Chapter 9. Subscriber Personalized Service Environment 225

Page 244: Introducing tivoli personalized services manager 1.1 sg246031

Portlet commands processed by LinkSelectorComponent.classThe commands are listed in Table 20.

Table 20. Commands for LinkSelectorComponent.class

Class definitionpackage 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.

Command Description Dispatched HTML JSP

Dispatched WML JSP

defaultcmd Used when no specific command is addressed.

minlinkhtml.jsp minlink7110.jsp

minimize Minimizes the component

minlinkhtml.jsp minlink7110.jsp

reflink Displays the hierarchy of referenced links

reflinkhtml.jsp reflink7110.jsp

back Goes up in the hierarchy of referenced links

reflinkhtml.jsp reflink7110.jsp

copylink Saves one link from the referenced links to the personal favorite links

reflinkhtml.jsp reflink7110.jsp

addlink Adds one new link to the personal favorite links

favlinkhtml.jsp favlink7110.jsp

favlink Displays the user's favorite links

favlinkhtml.jsp favlink7110.jsp

dellink Deletes one link from the personal favorite links

favlinkhtml.jsp favlink7110.jsp

createlink Displays a form to create a new link

createfavlinkhtml.jsp

creproplink Displays a form to create a new link

createlink7110.jsp

226 Introducing Tivoli Personalized Services Manager 1.1

Page 245: Introducing tivoli personalized services manager 1.1 sg246031

• 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 PortletThe 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 day’s appointments.

Portlet configuration file/usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/perso/components/Calendar Component.properties is shown in the next screen.

Chapter 9. Subscriber Personalized Service Environment 227

Page 246: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### 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 parameterscalendar.date.format=yyyy.MM.ddcalendar.time.format=hh:mm:sscalendar.month.format=MMMM yyyy######################################################################## Component start mode = minimized | maximized#######################################################################start.mode=maximized######################################################################## layouts for HTML devices######################################################################page./WEB.defaultcmd=/perso/components/calendar/mincalendarhtml.jsppage./WEB.minimize=/perso/components/calendar/mincalendarhtml.jsppage./WEB.maximize=/perso/components/calendar/monthhtml.jsppage./WEB.currmonth=/perso/components/calendar/monthhtml.jsppage./WEB.nextmonth=/perso/components/calendar/monthhtml.jsppage./WEB.prevmonth=/perso/components/calendar/monthhtml.jsppage./WEB.currweek=/perso/components/calendar/weekhtml.jsppage./WEB.nextweek=/perso/components/calendar/weekhtml.jsppage./WEB.prevweek=/perso/components/calendar/weekhtml.jsp######################################################################## layouts for Nokia 7110 WML device######################################################################page./WAP/nokia7110.defaultcmd=/perso/components/calendar/mincalendar7110.jsppage./WAP/nokia7110.minimize=/perso/components/calendar/mincalendar7110.jsppage./WAP/nokia7110.maximize=/perso/components/calendar/monthwml7110.jsppage./WAP/nokia7110.currmonth=/perso/components/calendar/monthwml7110.jsppage./WAP/nokia7110.nextmonth=/perso/components/calendar/monthwml7110.jsppage./WAP/nokia7110.prevmonth=/perso/components/calendar/monthwml7110.jsppage./WAP/nokia7110.week=/perso/components/calendar/weekwml7110.jsp######################################################################## layouts for NokiaEmul WML device######################################################################page./WAP/NokiaEmul.defaultcmd=/perso/components/calendar/mincalendar7110.jsppage./WAP/NokiaEmul.minimize=/perso/components/calendar/mincalendar7110.jsppage./WAP/NokiaEmul.maximize=/perso/components/calendar/monthwml7110.jsppage./WAP/NokiaEmul.currmonth=/perso/components/calendar/monthwml7110.jsppage./WAP/NokiaEmul.nextmonth=/perso/components/calendar/monthwml7110.jsppage./WAP/NokiaEmul.prevmonth=/perso/components/calendar/monthwml7110.jsppage./WAP/NokiaEmul.week=/perso/components/calendar/weekwml7110.jsp

228 Introducing Tivoli Personalized Services Manager 1.1

Page 247: Introducing tivoli personalized services manager 1.1 sg246031

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

Portlet commands processed by CalendarTable 21 lists the commands.

Table 21. Commands for Calendar

Class definitionpackage com.tivoli.tsm.perso.components;

public class CalendarComponent extends Component;

public class CalendarComponentSession extends ComponentSession;

Command Description DispatchedHTML JSP

Dispatched WML JSP

defaultcmd Used when no specific command is addressed.

mincalendarhtml.jsp

mincalendar7110.jsp

minimize Minimizes the component

mincalendarhtml.jsp

mincalendar7110.jsp

maximize Opens the month view

monthhtml.jsp monthwml7110.jsp

currmonth Resets the calendar to the current month

monthhtml.jsp monthwml7110.jsp

nextmonth Scrolls to the next month view

monthhtml.jsp monthwml7110.jsp

prevmonth Scrolls to the previous month view

monthhtml.jsp monthwml7110.jsp

week Opens the week view (WAP only)

weekwml7110.jsp

# Calendar parameterscalendar.date.format=yyyy.MM.ddcalendar.time.format=hh:mm:sscalendar.month.format=MMMM yyyy

Chapter 9. Subscriber Personalized Service Environment 229

Page 248: Introducing tivoli personalized services manager 1.1 sg246031

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 PortletThis 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/AgendaComponent.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 displayagenda.date.format=yyyy.MM.dd E

230 Introducing Tivoli Personalized Services Manager 1.1

Page 249: Introducing tivoli personalized services manager 1.1 sg246031

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.

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.

Portlet commands processed by AgendaThe commands are shown in Table 22.

Table 22. Commands for Agenda

Command Description Dispatched HTML JSP

Dispatched WML JSP

defaultcmd Used when no specific command is addressed.

displayAppthtml.jsp

displayApptwml.jsp

minimize Minimizes the component

minAgendahtml.jsp minAgendawml.jsp

maximize Opens all appointments of the current date of the agenda

displayAppthtml.jsp

displayApptwml.jsp

addapptentry Prepares information to add a new appointment

addAppthtml.jsp addApptwml.jsp

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

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

Chapter 9. Subscriber Personalized Service Environment 231

Page 250: Introducing tivoli personalized services manager 1.1 sg246031

Class definitionpackage com.tivoli.tsm.perso.components;

public class AgendaComponent extends Component;

public class AgendaComponentSession extends ComponentSession;

updateapptentry

Prepares information to update or delete an existing appointment

addAppthtml.jsp updateDelApptwml7110.jsp

delapptentry Prepares information to delete an existing appointment

delAppthtml.jsp displayApptwml.jsp

addappt Adds a new appointment

resultAgendahtml.jsp

displayApptwml.jsp

updateappt Updates an existing appointment

resultAgendahtml.jsp

displayApptwml.jsp

delappt Deletes an existing appointment

displayAppthtml.jsp

displayApptwml.jsp

resOK displayAppthtml.jsp

resKO displayAppthtml.jsp

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

displayAppthtml.jsp

displayApptwml.jsp

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

displayAppthtml.jsp

displayApptwml.jsp

Command Description Dispatched HTML JSP

Dispatched WML JSP

232 Introducing Tivoli Personalized Services Manager 1.1

Page 251: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 252: Introducing tivoli personalized services manager 1.1 sg246031

• 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 PortletThis 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/AddressBookComponent.properties

No specific properties for AddressBookComponent were changed in the default file.

Portlet commands processed by AddressBookTable 23 shows the portlet commands.

Table 23. Commands for AddressBook

Command Description Dispatched HTML JSP

Dispatched WML JSP

defaultcmd Used when no command specified.

findaddrbookentrieshtml.jsp

minaddressbookwml.jsp

234 Introducing Tivoli Personalized Services Manager 1.1

Page 253: Introducing tivoli personalized services manager 1.1 sg246031

minimize Minimizes the component

findaddrbookentrieshtml.jsp

minaddressbookwml.jsp

maximize Opens all the address book entries

displayaddressbookhtml.jsp

displayaddressbookwml.jsp

search Allows searching for an entry by the first and lastname characters

findaddrbookentrieswml.jsp

setfilter Applies a filtering command by lastname

displayaddressbookhtml.jsp

displayaddressbookwtml.jsp

addentry Prepares information to add to a new contact.

manageaddrbookentrieshtml.jsp

addaddressbookentrywml.jsp

delupdateentry Prepares information to update or delete an existing entry

manageaddrbookentrieshtml.jsp

manageaddrbookentrieswml.jsp

addcommand Adds a new contact manageaddrbookentrieshtml.jsp

addaddressbookentrywml.jsp

delupdatecommand

Updates or deletes an existing entry

displayaddressbookhtml.jsp

displayaddressbookwml.jsp

endmanageentry Terminates a sequence of add contacts (allow to update the address book entries in DB)

displayaddressbookhml.jsp

displayaddressbookwtml.jsp

cancelmanageentry

It cancels an add, update or delete command

displayaddressbookhtml.jsp

Command Description Dispatched HTML JSP

Dispatched WML JSP

Chapter 9. Subscriber Personalized Service Environment 235

Page 254: Introducing tivoli personalized services manager 1.1 sg246031

Class definitionpackage 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 definitionpackage com.tivoli.tsm.perso.filter;

236 Introducing Tivoli Personalized Services Manager 1.1

Page 255: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 256: Introducing tivoli personalized services manager 1.1 sg246031

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.

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 création : (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 portlettry {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 profileif (nameValues.exists("topics", contentName))return true;

}catch (Exception ex) {Recorder.slog(ex);}return false;}}

238 Introducing Tivoli Personalized Services Manager 1.1

Page 257: Introducing tivoli personalized services manager 1.1 sg246031

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/WapAuthenticator.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 definitionpackage com.tivoli.tsm.perso.filter;

public interface Profiler;

Methods public void createDynamicProfile(javax.servlet.http.HttpServletRequest request);

Chapter 9. Subscriber Personalized Service Environment 239

Page 258: Introducing tivoli personalized services manager 1.1 sg246031

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 java.util.*;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 création : (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 création : (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

Page 259: Introducing tivoli personalized services manager 1.1 sg246031

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 worldThis 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 ImplementationThis 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.

AuthenticationThe subscriber when arrives at the homepage, we want the system to recognize who he or she is. If the system doesn’t recognize the subscriber, he or she should be redirected to the authentication server. The following screen shows you how to do it.

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 YahooThis is a simple code in HTML. See the following screen.

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

Chapter 9. Subscriber Personalized Service Environment 241

Page 260: Introducing tivoli personalized services manager 1.1 sg246031

CustomizorThis 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.

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/CustomizorComponent.properties

In the bold line in the next screen, you specify the different themes that you want to offer.

<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>.

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

242 Introducing Tivoli Personalized Services Manager 1.1

Page 261: Introducing tivoli personalized services manager 1.1 sg246031

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

####################################################################### 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,greenparam.topics=list,buy,finance,research,maintain######################################################################## Layout rules :# page.<device type>.<component HTTP command>=<JSP URL path>############################################################################################################################################## Pages for HTML devices######################################################################## Minimized pagepage./WEB.defaultcmd=/perso/components/customizor/mincustomhtml.jsppage./WEB.minimize=/perso/components/customizor/mincustomhtml.jsp#page./WEB.maximize=/perso/components/customizor/maxcustomhtml.jsppage./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######################################################################

Chapter 9. Subscriber Personalized Service Environment 243

Page 262: Introducing tivoli personalized services manager 1.1 sg246031

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/AgregatorComponent.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

Page 263: Introducing tivoli personalized services manager 1.1 sg246031

Figure 133. Content news

Now, you have a news service. If you have a problem that you don’t 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

Page 264: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### 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.txtaggregator.content.buy=/perso/samples/news/politics_news.txtaggregator.images.buy=/images/buy_off.gif#aggregator.abstract.finance=/perso/samples/news/basketball_abstract.txtaggregator.content.finance=/perso/samples/news/basketball_news.txtaggregator.images.finance=/images/finance_off.gif#aggregator.abstract.research=/perso/samples/news/basketball_abstract.txtaggregator.content.research=/perso/samples/news/golf_news.txtaggregator.images.research=/images/research_off.gif#aggregator.abstract.maintain=/perso/samples/news/soccer_abstract.txtaggregator.content.maintain=/perso/samples/news/soccer_news.txtaggregator.images.maintain=/images/maintain_off.gif#aggregator.abstract.sell=/perso/samples/news/euro2000_abstract.txtaggregator.content.sell=/perso/samples/news/euro2000_news.txtaggregator.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 pagepage./WEB.defaultcmd=/perso/components/aggregator/newsabstract.jsppage./WEB.minimize=/perso/components/newsabstract.jsppage./WEB.normal=/perso/components/aggregator/newsabstract.jsppage./WEB.maximize=/perso/components/aggregator/newsfull.jsppage./WEB.oneitem=/perso/components/aggregator/onenews.jsp

246 Introducing Tivoli Personalized Services Manager 1.1

Page 265: Introducing tivoli personalized services manager 1.1 sg246031

.

Figure 134. The selection of themes

Figure 135. An applied theme

LogoutThis 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

Page 266: Introducing tivoli personalized services manager 1.1 sg246031

Link SelectorThis TPSM component allows the user to create links to the subscriber’s 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.

Figure 136. Example of link selector step 1

<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>

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

%></TD></TR>

248 Introducing Tivoli Personalized Services Manager 1.1

Page 267: Introducing tivoli personalized services manager 1.1 sg246031

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.

CalendarThis 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

Page 268: Introducing tivoli personalized services manager 1.1 sg246031

Figure 139. Example of Calendar component

AgendaThe 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

Page 269: Introducing tivoli personalized services manager 1.1 sg246031

Figure 140. Example of Agenda component

ComponentSelectorThis 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.

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

<%Component.include("/perso/componentSelectorComponent", "comps", this, request,

response);%>

Chapter 9. Subscriber Personalized Service Environment 251

Page 270: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 271: Introducing tivoli personalized services manager 1.1 sg246031

####################################################################### 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 Calendarapplication.icon.calendar=/images/calendar.gifapplication.componenturl.calendar=/perso/calendarComponentapplication.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 Agendaapplication.icon.agenda=/images/agenda.gifapplication.componenturl.agenda=/perso/agendaComponentapplication.iconclickurl.agenda=/perso/home?layout=agenda&agenda=maximizeapplication.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 Linksapplication.icon.links=/images/world.gifapplication.componenturl.links=/perso/linkSelectorComponentapplication.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 Bookapplication.icon.addressBook=/images/addrbook.gifapplication.componenturl.addressBook=/perso/addressBookComponent

Chapter 9. Subscriber Personalized Service Environment 253

Page 272: Introducing tivoli personalized services manager 1.1 sg246031

application.iconclickurl.addressBook=/perso/home?layout=addrbook&addressBook=maximizeapplication.devicetype.addressBook=/######################################################################## Example of aggregation content#application.label.news=The Newsapplication.icon.news=/images/news.gifapplication.componenturl.news=/perso/newsapplication.iconclickurl.news=/perso/home?layout=home&news=maximizeapplication.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 Weatherapplication.icon.weather=/images/weather.gifapplication.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 Mailapplication.icon.mail=/images/yahoo.gifapplication.componenturl.mail=application.iconclickurl.mail=http://mail.yahoo.comapplication.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 devicespage./WEB.defaultcmd=/perso/components/componentselector/myapplihtml.jsp## Minimized pagepage./WEB.minimize=/perso/components/componentselector/minapplihtml.jsp## Page with my applicationspage./WEB.maximize=/perso/components/componentselector/myapplihtml.jsppage./WEB.myappli=/perso/components/componentselector/myapplihtml.jsppage./WEB.add=/perso/components/componentselector/myapplihtml.jsppage./WEB.delete=/perso/components/componentselector/myapplihtml.jsp#

254 Introducing Tivoli Personalized Services Manager 1.1

Page 273: Introducing tivoli personalized services manager 1.1 sg246031

## Page with other available applicationspage./WEB.customize=/perso/components/componentselector/customapplihtml.jsp######################################################################## layouts for WAP devices######################################################################## Startup mode for WAP devices : defaultcmd --> minimizedpage./WAP/R380.defaultcmd=/perso/components/componentselector/myappliwml.jsppage./WAP/R380.minimize=/perso/components/componentselector/minappliwml.jsppage./WAP/R380.maximize=/perso/components/componentselector/maxappliwml.jsppage./WAP/R380.add=/perso/components/componentselector/myappliwml.jsppage./WAP/R380.delete=/perso/components/componentselector/myappliwml.jsppage./WAP/R380.myappli=/perso/components/componentselector/myappliwml.jsp

page./WAP/NokiaEmul.defaultcmd=/perso/components/componentselector/myappliwml.jsppage./WAP/NokiaEmul.minimize=/perso/components/componentselector/minappliwml.jsppage./WAP/NokiaEmul.maximize=/perso/components/componentselector/maxappliwml.jsppage./WAP/NokiaEmul.add=/perso/components/componentselector/myappliwml.jsppage./WAP/NokiaEmul.delete=/perso/components/componentselector/myappliwml.jsppage./WAP/NokiaEmul.myappli=/perso/components/componentselector/myappliwml.jsp

page./WAP/nokia7110.defaultcmd=/perso/components/componentselector/myappliwml.jsppage./WAP/nokia7110.minimize=/perso/components/componentselector/minappliwml.jsppage./WAP/nokia7110.maximize=/perso/components/componentselector/maxappliwml.jsppage./WAP/nokia7110.add=/perso/components/componentselector/myappliwml.jsppage./WAP/nokia7110.delete=/perso/components/componentselector/myappliwml.jsppage./WAP/nokia7110.myappli=/perso/components/componentselector/myappliwml.jsp

page./WAP/R320.defaultcmd=/perso/components/componentselector/myappliwml.jsppage./WAP/R320.minimize=/perso/components/componentselector/minappliwml.jsppage./WAP/R320.maximize=/perso/components/componentselector/maxappliwml.jsppage./WAP/R320.add=/perso/components/componentselector/myappliwml.jsppage./WAP/R320.delete=/perso/components/componentselector/myappliwml.jsppage./WAP/R320.myappli=/perso/components/componentselector/myappliwml.jsp

# .../...

Chapter 9. Subscriber Personalized Service Environment 255

Page 274: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 275: Introducing tivoli personalized services manager 1.1 sg246031

<!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.text.*" %><%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 sheetString 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"><fontcolor="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

Page 276: Introducing tivoli personalized services manager 1.1 sg246031

<!----------- 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

Page 277: Introducing tivoli personalized services manager 1.1 sg246031

<TR><TD align="left"><font color="black"><AHREF="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 startif (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 menif (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 womanif (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 topicscomp = (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

Page 278: Introducing tivoli personalized services manager 1.1 sg246031

}%>

</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

Page 279: Introducing tivoli personalized services manager 1.1 sg246031

9.9.2 Wireless WorldAs in the Internet world, you can customize the homepage in Wireless World, but the amount of space in the display is very limited.

TPSM doesn’t 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 selectorif (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

Page 280: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 281: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 282: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 283: Introducing tivoli personalized services manager 1.1 sg246031

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 RealmsSubscribers 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" ([email protected], [email protected], etc.).

Chapter 10. Virtual ISP 265

Page 284: Introducing tivoli personalized services manager 1.1 sg246031

Every subscriber enrolled with the ISP named "Beta" would get a user name and e-mail address unique to "beta.com" ([email protected], [email protected], 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

Page 285: Introducing tivoli personalized services manager 1.1 sg246031

• 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

Page 286: Introducing tivoli personalized services manager 1.1 sg246031

268 Introducing Tivoli Personalized Services Manager 1.1

Page 287: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 288: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 289: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 290: Introducing tivoli personalized services manager 1.1 sg246031

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 classesFigure 148 on page 273 shows the relations between the objects.

272 Introducing Tivoli Personalized Services Manager 1.1

Page 291: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 292: Introducing tivoli personalized services manager 1.1 sg246031

• 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:

DbConnectionMgrManages and retains database connections.

SqlGeneratorCreates your own SQL statements dynamically. It optimizes updates and validation of data.

TraceGeneric class used for tracking the progress and completion of methods. It generates three types of methods; information, error, and warning.

TraceResourcesProvides NLS support on tracing/logging.

TxObjectThe 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.

TxSqlContextHolds the resources that are reserved by a TxCursor Object.

TxValueEncapsulates 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

Page 293: Introducing tivoli personalized services manager 1.1 sg246031

TxValuesDeveloped to improve the performance of retrieving data with RMI.

ValidatorAllows applications to perform some simple validation of user input locally.

11.3.2 iTk Business ObjectsThe 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 won’t 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 it’s 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

Page 294: Introducing tivoli personalized services manager 1.1 sg246031

Code Example: to set and get realm name from Realm object:

setRealmName(“Tivoli”);

String db_realm_name= getRealmName();

These methods won’t 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

Page 295: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 296: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 297: Introducing tivoli personalized services manager 1.1 sg246031

• 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 serverA 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 DispatcherDevice 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 servletDevices 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

Page 298: Introducing tivoli personalized services manager 1.1 sg246031

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-insA 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-inPlug-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

Page 299: Introducing tivoli personalized services manager 1.1 sg246031

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 APIThe 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 databaseThe 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

Page 300: Introducing tivoli personalized services manager 1.1 sg246031

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 APIThe 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

Page 301: Introducing tivoli personalized services manager 1.1 sg246031

• 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 consoleThe 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 provider’s 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

Page 302: Introducing tivoli personalized services manager 1.1 sg246031

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 subscriber’s 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 subscriber’s 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

Page 303: Introducing tivoli personalized services manager 1.1 sg246031

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

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

Palm Aero 8000 Netvista Win CE

Enrollment Supported Supported Supported Supported

Device Config Supported Supported Supported Supported

Software Distribution

Supported Supported Supported Supported

Restpage Support

N/A N/A Supported N/A

APIs Supported Supported Supported Supported

Chapter 12. Device Manager 285

Page 304: Introducing tivoli personalized services manager 1.1 sg246031

• Generic support for Windows CE devices

12.5.1 Palm Computing PDAsDevice 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 devicesThe 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

Page 305: Introducing tivoli personalized services manager 1.1 sg246031

• 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 devicesThe 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

Page 306: Introducing tivoli personalized services manager 1.1 sg246031

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 devicesA 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

Page 307: Introducing tivoli personalized services manager 1.1 sg246031

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 devicesIn 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

Page 308: Introducing tivoli personalized services manager 1.1 sg246031

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

12.6.2 Centralized managementDevice 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 systemThe 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 availabilityScalability 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

Page 309: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 310: Introducing tivoli personalized services manager 1.1 sg246031

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:

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 Kjøbenhavns 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.

e (logo)® NetfinityRedbooksRS/6000System/390WorkPad

IBM ®NetVistaRedbooks Logo SecureWayWebSphere

292 Introducing Tivoli Personalized Services Manager 1.1

Page 311: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 312: Introducing tivoli personalized services manager 1.1 sg246031

294 Introducing Tivoli Personalized Services Manager 1.1

Page 313: Introducing tivoli personalized services manager 1.1 sg246031

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 Balancing·with 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-2177IBM Networking Redbooks Collection SK2T-6022IBM Transaction Processing and Data Management Redbooks Collection SK2T-8038IBM Lotus Redbooks Collection SK2T-8039Tivoli Redbooks Collection SK2T-8044IBM AS/400 Redbooks Collection SK2T-2849IBM Netfinity Hardware and Software Redbooks Collection SK2T-8046IBM RS/6000 Redbooks Collection SK2T-8043IBM Application Development Redbooks Collection SK2T-8037IBM Enterprise Storage and Systems Management Solutions SK3T-3694

© Copyright IBM Corp. 2001 295

Page 314: Introducing tivoli personalized services manager 1.1 sg246031

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: Programmer’s 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

Page 315: Introducing tivoli personalized services manager 1.1 sg246031

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:

• Telephone Orders

• Fax Orders

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.

In United States or CanadaOutside North America

e-mail [email protected] information is in the “How to Order” section at this site:http://www.elink.ibmlink.ibm.com/pbl/pbl

United States (toll free)Canada (toll free)Outside North America

1-800-879-27551-800-IBM-4YOUCountry coordinator phone number is in the “How to Order” section at this site:http://www.elink.ibmlink.ibm.com/pbl/pbl

United States (toll free)CanadaOutside North America

1-800-445-92691-403-267-4455Fax phone number is in the “How to Order” section at this site:http://www.elink.ibmlink.ibm.com/pbl/pbl

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.

IBM Intranet for Employees

© Copyright IBM Corp. 2001 297

Page 316: Introducing tivoli personalized services manager 1.1 sg246031

IBM Redbooks fax order form

Please send me the following:

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

Title Order Number Quantity

First name Last name

Company

Address

City Postal code

Telephone number Telefax number VAT number

Invoice to customer number

Country

Credit card number

Credit card expiration date SignatureCard issued to

298 Introducing Tivoli Personalized Services Manager 1.1

Page 317: Introducing tivoli personalized services manager 1.1 sg246031

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

© Copyright IBM Corp. 2001

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.

299

Page 318: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 319: Introducing tivoli personalized services manager 1.1 sg246031

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

Page 320: Introducing tivoli personalized services manager 1.1 sg246031

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: Programmer’s 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

Page 321: Introducing tivoli personalized services manager 1.1 sg246031

XML See eXtensible Markup Language.

303

Page 322: Introducing tivoli personalized services manager 1.1 sg246031

304 Introducing Tivoli Personalized Services Manager 1.1

Page 323: Introducing tivoli personalized services manager 1.1 sg246031

Index

AAccess Code 75, 76, 94

associating with a deal 92creation 79DEFAULT 77, 79purpose 80unique billing deals 80

AccessBeanimplementation 186

AccessBean.class 185getBean method 186getWellKnownName method 186read method 185update method 186

Account Information 156Account.class

getParentAccount method 188read method 188

AccountMembers.classgetMemberNbr method 188getUserFirstName method 188getUserName method 188

accountssub-accounts 149

Additional Services 164AddressBook 182AddressBook portlet

commandaddcommand 235addentry 235cancelmanageentry 235defaultcmd 234delupdatecommand 235delupdateentry 235endmanageentry 235maximize 235minimize 235search 235setfilter 235

methodelements 236getAddressBook 236getCategoryFilter 236getCurrentEntry 236getLastnameFilter 236getPageCommand 236

© Copyright IBM Corp. 2001

isLastCommandValid 236AddressBook.class

add method 189categories method 189del method 189elements method 189elementsByCategory method 190elementsByCategoryAndLastname method 190elementsByCategoryAndName method 189elementsByLastname method 190modify method 190

Aero 8000 299Agenda 182

example 250garbage collector 230

Agenda portletcommand

addappt 232addapptentry 231defaultcmd 231delappt 232delapptentry 232maximize 231minimize 231nextday 232previousday 232resOK 232updateappt 232updateapptentry 232

methodelements 233getAgenda 233getDate 233getMaxHour 233getMaxHourConfig 233getMinHour 233getMinHourConfig 233getPageCommand 234getStartDay 233getStartMonth 233getStartTime 233getStartYear 233isCommandValid 234setMaxHourConfig 233setMinHourConfig 233

Agenda.class

305

Page 324: Introducing tivoli personalized services manager 1.1 sg246031

add method 194del method 194elements method 194getMinHour method 194getStartHour method 194getStarttime method 193modify method 194Starttime method 193updateMinMaxHours method 195

Aggregator 182Aggregator portlet

commandsdefaultcmd 221maximize 221minimize 221normal 221oneitem 221

methodgetContent 222getContentEnumeration 222

AIX 299AIX filesets 22

installing latest level 23API 299Application Servers

configuration 67Appointment.class

Appointment method 192displayDate method 192displayEnd method 192displayStart method 192equals method 192getDescription method 192getDuration method 192getDurationHour method 192getDurationMin method 193getEnd method 193getId method 193getStart method 192getStartDay method 193getStartHour method 193getStartMin method 193getStartMonth method 193getStartYear method 193isInThePast method 193setDescription method 192setDuration method 192setId method 193setStart method 192

ArchitectureJSP Portlet 202

ARPANET 1ASP 299Authentication 111

API 184MS-ISDN 182Multi-domain mode 113Single-domain mode 113stages 112WML 182

Authentication Checker 113supports multiple device types 114wireless 134, 135

Authentication Server 111, 112, 241central 122creating 42file system 115structure 114testing 70wireless 135

authentication.jar 184

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

CCalendar 182

example 249Calendar portlet

commandcurrmonth 229defaultcmd 229maximize 229minimize 229nextmonth 229prevmonth 229week 229

methodgetCurrentDate 230getCurrentTime 230getDayOfMonth 230getRollingMonthWeekNbr 230getTime 230

306 Introducing Tivoli Personalized Services Manager 1.1

Page 325: Introducing tivoli personalized services manager 1.1 sg246031

challenge handshake authentication protocol 299CHAP 299child subscriber

creating 162disconnecting 163

classComponent 204, 209ComponentConfiguration 204, 211ComponentSession 204, 210HttpServlet 202, 204portletSession 202

command/etc/rc.txservers 71/etc/rc.webservers 71/usr/netscape/suitespot/stop-admin 39adminclient.sh 67chuser 38console.bat 69, 74, 150instfix 28inutoc 25lslpp 23mkgroup 38mkuser 38smitty 25StartProvServer.ksh 71tar 25XMLConfig.sh 67

Component.classinclude method 209

ComponentSelectorexample 251

ComponentSelectorComponentWAP example 262

ComponentSelectorComponent portletcommands

add 218customize 218defaultcmd 217delete 218maximize 218minimize 218myappli 218

macro*getCity* 217*getFirstName* 217*getGender* 217*getLastName* 217*getXxx* 217

method

getCity 217getComponents 218getFirstName 217getGender 217getLastName 217getMyComponents 218getValue 217getXxx 217

ComponentSession.classgetSession method 211href method 210init method 210service method 210

conduit 299console application

downloading 69Consumer account

managing 155consumer accounts 149cookies 12, 114, 123, 124cradle 299CSR 13

limits by realm 264see Customer Service Representative 149

Customer Care 12, 152accessing 150component 149functions 149launching 155linking external applications 164reports 163security provisions 12

Customer Care Representativeenrollment 154

Customer Care Servercreating 43test 70

Customer Care Support 13Customer Service

security control 13Customer Service Representative 149

access control profile 154enrolling a consumer 156view and update consumer account 157

Customizorexample 242

Customizor portletcommands

defaultcmd 224

307

Page 326: Introducing tivoli personalized services manager 1.1 sg246031

maximize 224minimize 224save 224themes 224topics 224

CustomizorComponent.classexists method 224getParameterCheckings method 225

DDB2 21DbConnectionMgr 274DBCS 299DDL 299Deal 9, 75

associate Method of Payment List 98associate with a realm 90associating an access code 92change the subscriber’s Deal 159creation 82definition 299properties 76, 85

Deal text 75creation 84

devicedistributing software 10

device management API 281, 282, 299device management server API 299Device Manager

components 278console 283console updates 9DB2 support 9functions 278, 284Generic Windows CE device 9Iap500 9Internet appliance device 9job distribution 9overview 277Personal Digital Assistants 10plug-ins changes 9purpose 277Screenphones 10subscription manager 9Wireless Access Protocol 10

Device Manager console 299device plug-ins 280DHCP 299

Director Tool 16, 225installing 73testing 69

directory/usr/TivTSM/selfcare/content/jsp 167/usr/WebSphere/AppServer/bin 67

DM. See Device ManagerDMD 299DMS servlet 299DNS 299double byte character set 299

EEARN 1e-business 299eND 124enrollment engine 11Enrollment JSP 108Enrollment metrics 75enrollment process

managing 99Enrollment Server

creating 48test 70

FFavoriteLinks.class

add method 197del method 197elements method 197

fieldProfile 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/setupCmd-Line.sh 67AddressBookComponent.properties 234AgendaComponent.properties 230AggregatorComponent.properties 219AgregatorComponent.properties 244, 245authentication.jsp 115, 116Authentication.properties 117, 138Authentication.properties.wes 119

308 Introducing Tivoli Personalized Services Manager 1.1

Page 327: Introducing tivoli personalized services manager 1.1 sg246031

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

file package 300definition file 300

file transfer protocol 300filter API 236Filter.class

sample 236FTP 300

Ggarbage collector

agenda 230properties 231

GUI 300

HHACMP 300home page

customization 14HotSync 300HTTP 300

IIBM 300IBM HTTP Server 21, 22IMAP 300installation

different volume group 35InstantDB 56

backup database 67Integration Toolkit

see iTk 269Internet Explorer 131Internet screenphone 300Internet Service Provider 2, 5Internet Signup file 263Internet2 3ISDN 300ISP 300ispb 33iTk 300

definition 269example uses 269form based browser 271Java Applets 272method

count 276create 276delete 276read 276setSelectAllField 275setSelectField 275update 276

third party applications 272usage scenarios 271

IY12075 28

Jjar files 117Java 19, 300Java Bean 116

auth 137personalization API 181

Java Developer Toolkitdownload 25installation 25PTF 7 27

Java Server Pages 19JavaBeans session 114JavaScript 19

309

Page 328: Introducing tivoli personalized services manager 1.1 sg246031

JDBC 121, 269, 270, 300JDBC Connection pool

tuning 121JDK 22, 300JDK 1.2.2 with PTF 7 21JSP

accessCode 109accountCode 109addaddressbookentrywml.jsp 235addAppthtml.jsp 231, 232addApptwml.jsp 231AddMemberAuthError 167AddMemberCommit 168AddMemberInput 168AddMemberMain 168AddMemberMemberCancel 168AddMemberRefused 168AddMemberSubmit 168addrbookhtml.jsp 213agendahtml.jsp 213agreement 110areYou18 109cancelByUser 109ChangePasswordAuthError 168ChangePasswordCancel 168ChangePasswordCommit 168ChangePasswordInput 168ChangePasswordMain 168ChangePasswordRefused 168ChangePasswordSubmit 168ChangePaymentAuthError 168ChangePaymentCancel 168ChangePaymentCommit 168ChangePaymentInput 168ChangePaymentMain 168ChangePaymentRefused 168ChangePaymentSubmit 168ChangePersonalInfoAuthError 168ChangePersonalInfoCancel 168ChangePersonalInfoCommit 169ChangePersonalInfoInput 169ChangePersonalInfoMain 169ChangePersonalInfoRefused 169ChangePersonalInfoSubmit 169configure 109confirm 109congrats 109createfavlinkhtml.jsp 226createlink7110.jsp 226

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

310 Introducing Tivoli Personalized Services Manager 1.1

Page 329: Introducing tivoli personalized services manager 1.1 sg246031

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

JSP Portletarchitecture 202

KKiosk services 300

LLAN 300LayoutSelector 182LayoutSelectorComponent portlet

commandaddrbook 213agenda 213defaultcmd 212home 212logout 213news 213

LDAP 16, 300see Lightweight Directory Access Protocol 10

Lightweight Directory Access Protocol 10LinkSelector 182

example 248LinkSelectorComponent portlet

commandaddlink 226back 226copylink 226createlink 226

creproplink 226defaultcmd 226dellink 226favlink 226minimize 226reflink 226

methodgetCatEnum 226getCatIxEnum 227getCurrentCategory 227getFavCategories 227getFavLinkEnum 227getFavLinks 227getLinkEnum 227

List of Method of Paymentcreation 96

load balancing 124log

/usr/WebSphere/AppServer/logs/authentica-tion.log 136locations 38

Logincreating 152

lvispbdata 34lvispbdrsys 34lvispbindex 34lvispboem 35lvispbsys 34lvispbtemp 34lvispbuser 35

Mmacros

links 225meta file definition file 300method

Checker.getSSOPassword 185Checker.getSSOUserName 185Checker.isNotAuthenticated 184

Method of Paymentcreation 95

method of paymentchanging 159

Method of Payment Information 156Method of Payment List

associate deal 98Mosaic 2multi-domain mode 122, 123

311

Page 330: Introducing tivoli personalized services manager 1.1 sg246031

NNameValuePairs.class

add method 198del class 198elements method 199

NAS 138National Science Foundation 1NcFTPd 6Netscape Enterprise Server 18, 21

installing 38Netscape server administration console

starting 39Netscape server instances

creating 39ports 41primary directories 41server identifier 41

Netscape serversstarting 67stopping 67

NetVista 301Network Access Server 73, 134Nokia Gateway 1.1.1 144NSFNET 2

OOracle 21

8i Version 8.1.5 9starting 71

PPalm OS 301Palm pilot 301Palmscape 301PAP 301password authentication protocol 301payment methods 75PDA 135, 277, 301PDB 301Perl 19Personal Information 156Personal Information Management

address book 15agenda 15calendar 15

personalization 14example 241

Personalization Server

creating 46port 207test 70

Personalized Service Environment 181PFTPD 6plug-in

Authenticator.properties 118DefaultAuthenticator.properties 118

plug-insGeneric Windows CE 9Internet appliance device 9lap500 9

POP 301portal software architecture 183Portal Toolkit 14

address book 7agenda 7Authentication Services 7, 16calendar 7JSP Components Framework 15JSP Portlet Framework 7Multi-device Portal Engine 7, 15Referenced Links Management 7, 15see pTk 181Targeted Ads 8, 16User Preferences API 7, 15Vertical Services Integrated 15

portlet APIComponent API 208ComponentSession API 208

portlet frameworkdesign 203

portlet JSPdefinition 204

portlets 201classes 204command addressing mechanism 208Desktop 202features 202Layout 202LayoutSelector 206, 207service 182, 211

AddressBook 222, 234Agenda 222, 230Calendar 222, 227Customizor 222LinkSelector 222, 225

structural 182, 211Aggregator 211, 219

312 Introducing Tivoli Personalized Services Manager 1.1

Page 331: Introducing tivoli personalized services manager 1.1 sg246031

ComponentSelectorComponent 211, 213CustomizorComponent 211LayoutSelectorComponent 211, 212

portletSelector 182PPP 301PRC 301Premium Server

creating 47parameters 126test 70

Profile 150profile

creating 151Profiler.class

sample 239property

creating 87definition 87

Provisioning FTP Daemon 6Provisioning server

starting 71proxy 301PSTN 301PTF 301pTk 132, 135, 301

access Bean 185Account.class 187AccountFavoriteLinks.class 188AccountMembers.class 188AccountNameValuePairs.class 188AddressBook.class 189Agenda.class 193Appointment.class 191banner ads 182database of links 182FamilyMembers.class 195FavoriteLinks.class 188, 196filter API 236functions 181JSP portlets 202NameValuePairs.class 198Profiler API 238ReferencedLinks.class 200sample JSP for HTML 183sample JSP for WML 183see Portal Toolkit 7User.class 201

RRADIUS 112, 123, 135, 182, 183, 301RADIUS authentication server 19RADIUS server

enhancements 8RAM disk 301RAS 301Realm 9, 11, 74, 91, 99, 150

associating with deals 90creation 76default 124default domain 76definition 264, 301description 76name 76wireless 137

Registration Name 73, 92, 99creation 77

Registration name 75generic 77Multiple Access 77

reportingsales 93

reportsavailable reports 163

restpages 10rlvispbdata 36rlvispbindex 36rlvispbtemp 36

SSales Channel 94

creation 93definition 93

sample pagesfor HTML devices 205

screenphone 301SDP Servlet Server

creating 50SelfCare 16

adding members 178administration home page 172change password 172changing payment information 176changing personal information 174configuration file 169Server

creating 44

313

Page 332: Introducing tivoli personalized services manager 1.1 sg246031

test 70Service Provisioning 265servlet 301Single Sign On 124SM 302SMTP 302Solaris 302Solaris support 19SQL 302SqlGenerator 274SSL 302SSO Cookie 123style sheet 245

wireless 136sub-accounts 149subscriber

bulk transfer 17creating child subscriber 162disconnecting 160reconnecting 161removing 160searching 165

subscriber basesbulk transfer 263

subscriber number 33Subscriber Selfcare

functions 167Subscriber Update panel 158subscribers

child 149primary 149

System Management Tools Servercreating 45

TTCP/IP 302Telenet 1test environment

hardware 21software 22

TISM 302Administration Console 74, 150DB2 support 8installation 57installation verification 69localization 8overview 5post-installation steps 66

start sequence 70what’s new 6

TivoliSecureWay Policy Director 12

TPSM 302installation 57overview 5start sequence 70

Trace 274traceLevel 67TraceResources 274Transaction Servers

verifying 71TSM 302TxObject 274TxSqlContext 274TxValue 274TxValues 275

UUDB 302URL 302USENET 1User Groups

definition 265User Preference

API 185User Preferences

API 181

VValidator 275Virtual ISP 264

creation 266enrolling subscribers 267overview 263

WWAN 302WAP 135, 277, 302

authentication 182welcome homepage 261

WAP device 113WAP Gateway 134WAS 302Web Content Hosting 6

File delete 7

314 Introducing Tivoli Personalized Services Manager 1.1

Page 333: Introducing tivoli personalized services manager 1.1 sg246031

File download 7File upload and automatic publishing 7Perl scripts

access counters statistics 6guestbook 6mail-to function 6page access counter 6

Personal Web space display 7provisioning 6upload facility 6

Web Hosting Content Servercreating 51

Web server configuration file 55WebMail 234WebSphere

starting 67Websphere

create application servers 67WebSphere Application Server 21

installation 52root directory 57

WebSphere Every Place Suitesee WES 183

WebSphere Everyplace Suite 9WebSphere Everyplace suite

TPSM integration 10WES 119, 302

Authentication Proxy 183WES authentication proxy 113Windows CE 302wireless access 134Wireless Gateway 135WML 135, 137, 138, 139, 302WML Script 135WTE 302WTP 302

XXML 135, 183, 303

315

Page 334: Introducing tivoli personalized services manager 1.1 sg246031

316 Introducing Tivoli Personalized Services Manager 1.1

Page 335: Introducing tivoli personalized services manager 1.1 sg246031

© Copyright IBM Corp. 2001 317

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 [email protected]

Document NumberRedbook Title

SG24-6031-00Introducing Tivoli Personalized Services Manager 1.1

Review

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

Please rate your overall satisfaction:

O Very Good O Good O Average O Poor

Please identify yourself as belonging to one of the following groups:

O Customer O Business Partner O Solution DeveloperO IBM, Lotus or Tivoli EmployeeO None of the above

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.

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

Questions about IBM’s privacy policy?

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

Page 336: Introducing tivoli personalized services manager 1.1 sg246031
Page 337: Introducing tivoli personalized services manager 1.1 sg246031

(0.5” spine)0.475”<->0.875”

250 <-> 459 pages

Introducing Tivoli Personalized Services Manager 1.1

Page 338: Introducing tivoli personalized services manager 1.1 sg246031
Page 339: Introducing tivoli personalized services manager 1.1 sg246031
Page 340: Introducing tivoli personalized services manager 1.1 sg246031

®

SG24-6031-00 ISBN 0738419788

INTERNATIONAL TECHNICALSUPPORTORGANIZATION

BUILDING TECHNICALINFORMATION BASED ONPRACTICAL 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

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.