ibm.com/redbooks
Introducing Tivoli Personalized Services Manager 1.1
Stephen HochstetlerEdgar GutierrezPatricia Iglesias
Supports pervasive devices
Creates personalized service environments
Provides self care
Introducing Tivoli Personalized Services Manager 1.1
June 2001
SG24-6031-00
International Technical Support Organization
© 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!
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
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
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
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
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
viii Introducing Tivoli Personalized Services Manager 1.1
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
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
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
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
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
xiv Introducing Tivoli Personalized Services Manager 1.1
Preface
This redbook will help you install, tailor, and configure the new Tivoli Personalized Service Manager (TPSM) V1.1.1.
This redbook is about building business solutions using the Tivoli Personalized Service Manager product to enable ISPs to manage different domains or realms and provide different services such as customer care, selfcare, premium, personalization server, and authentication, among others for any type of devices, Web browsers, or pervasive computing devices. It will help you to understand this product and focuses on implemented solutions for both environments; Web and mobile internet browsers. TPSM has been integrated in an AIX environment running as a database, Oracle 8.1.5.
In this redbook, you will find information that will help you successfully implement solutions to manage the domains, access Web, and enterprise applications from desktop browsers and the new class of client devices such as WAP phones, Palm Pilots, and WorkPads to the personalized server.
A basic knowledge of AIX, Oracle, HTTP, and WAP protocols as well as some understanding of Web and Java technologies (HTML, WML, servlets, and JSPs) and the terminology used in Web and enterprise applications is assumed.
The team that wrote this redbook
This redbook was produced by a team of specialists from around the world working at the International Technical Support Organization Austin Center.
Stephen Hochstetler is a Project Leader at the International Technical Support Organization, Austin Center. He applies his 17 years of experience as an I/T Tivoli Specialist to his work at the ITSO where he writes extensively on all areas of Systems Management. Before joining the ITSO, Stephen worked in the Tivoli Services organization of Tivoli as a Network Management Specialist. He was involved in numerous projects designing and implementing large systems management solutions for major customers of Tivoli. For the last four years, he has concentrated on architectural work and the design of network management solutions for large customer environments and service providers.
Patricia Iglesias is an IT Specialist with IBM in Spain. She has one year of experience in the e-business field. She has worked at IBM for one year. Her areas of expertise include TPSM, Java, object orientation, e-commerce, and
© Copyright IBM Corp. 2001 xv
pervasive. For the last several months she has concentrated in pervasive device development, e-business, and simulation with multi-agents.
Edgar Gutierrez is an RS/6000 support specialist for Grupo Vitro, an IBM customer in Monterrey, Mexico. He has 5 years of experience with RS/6000. His areas of expertise includes Oracle implementation and support as well as performance tuning. For the last year he has concentrated on the software platforms for e-business in his company.
Thanks to the following people for their invaluable contributions to this project:
Tivoli 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
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
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
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
4 Introducing Tivoli Personalized Services Manager 1.1
Chapter 2. Overview of Tivoli Personalized Service Manager
The Tivoli Internet Services Manager provides a completely integrated infrastructure of software components for Internet service provisioning. It is an industrial strength system designed to allow the Internet Service Provider (ISP) to support several separately branded offerings simultaneously and to provide each brand with a unique marketplace identity and with a full range of business offerings.
The Tivoli Internet Services Manager is designed for continuous operation and flexible enhancement, and is highly scalable. The system relies on industry standard hardware and software components with a flexible architecture for integrating additional and varied components. ISPs using the Tivoli Internet Services Manager can offer their subscribers an unlimited variety of Internet features without having to alter a core base of information management and customer service features that the system centralized database. The system's design anticipates growth and allows the Tivoli Internet Services Manager owner to start with a size that comfortably accommodates the initial anticipated subscriber base while remaining poised to grow exponentially as needed (see Figure 1).
Figure 1. Tivoli Internet Services Manager
© Copyright IBM Corp. 2001 5
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
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
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
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
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
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
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
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
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
Figure 6. Subscriber personalization and self care
The portal engine is delivered with built-in components, such as Personal Information Management (PIM), components such as calendar, agenda, and address book. These components allow the subscriber to customize the portal pages on their devices. Some additional key functions associated with pTk are:
1. Multi-device Portal Engine
Web devices (e.g., PC, Win CE, screenphones), WAP devices
2. User Preferences API
Users and user groups profiling
3. Referenced Links Management
Hierarchical repository of links referenced by the portal
4. Vertical Services Integrated with pTk
Web Content Hosting
PIM: Calendar, Agenda, Address Book, etc.
5. JSP Components Framework
Components framework drastically simplifies JavaServer Pages (JSP) writing Components library: PIM components, structural components
Chapter 2. Overview of Tivoli Personalized Service Manager 15
6. Authentication Services
User authentication and device type identification
Single sign-on, Premium content access control, WAP support
7. Targeted Ads: Interface with Double Click Ads Server
This feature provides a marketing opportunity for ISPs. They can target their subscriber's portal pages for banner ads and special interest notices.
Another aspect of personalization is self-care. Subscribers can access and modify some of their profile data. They can update their address and telephone data, change their billing plan and method of payment data, and subscribe to premium content through the Tivoli Personalized Services Manager's self-care application, which is linked to the central database from links on their portal page.
2.2.6 Integration with third party components and 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
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
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
• Sun Solaris support
Industry standard protocols and languages include:
• Structured Query Language (SQL '92) standard interface for relational database access.
• The Tivoli Internet Services Manager RADIUS authentication server, which complies with Internet Engineering Task Force (IETF) specifications.
• Web user interfaces and publishing based on industry standard implementations of Java, JavaScript, HTML, and similar web content languages.
• Java based APIs (Tivoli Internet Services Manager Integration Toolkits - iTk's)
• Java Standard Java Server Pages (JSP) interfaces and Servlets
• Use of industry-standard utilities such as Perl for CGI.
• TCP/IP-based communications between components and systems.
• Standard scripts to assist in installation, maintenance, and troubleshooting.
Chapter 2. Overview of Tivoli Personalized Service Manager 19
20 Introducing Tivoli Personalized Services Manager 1.1
Chapter 3. Installation checklist
This chapter is a guide to the installation of all the software infrastructure that we implemented for the successful operation of TPSM.
The hardware and software requirements for Tivoli Internet & Personalized Services Manager on AIX are as follows (Table 1):
Table 1. AIX requirements
• 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
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
• 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
- Select SOFTWARE to install (press F4 to list available software from CD).
- Using the find and select keys on all of the following file sets:
• bos.adt (select ALL)
• Base Operating System Application Developers Toolkit
• bos.compat.termcap - Termcap Compatibility Package (2)
• xlC.rte - C++ runtime library for IBM AIX (select ALL)
• X11.adt - Applications Development Toolkit (ALL)
• X11.base (x windows) (ALL)
• perl.rte 5.5.3 (ALL)
• X11.motif.mwsm.4.3.3.1
• X11.motif.lib.4.3.3.2
• X11.adt.motif.4.3.3.1
• X11.compat.lib.X11R5.4.3.3.2
• X11.base.rte.4.3.3.2
• X11.base.lib.4.3.3.2
• X11.Dt.lib.4.3.3.2
• X11.Dt.rte.4.3.3.3
• bos.up.4.3.3.3
• bos.sysmgt.serv_aid.4.3.3.2
• bos.rte.libpthreads.4.3.3.2
• bos.net.tcp.client.4.3.3.3
• bos.mp.4.3.3.3
• bos.adt.prof.4.3.3.3
• bos.adt.include.4.3.3.1
- When you have finished, press Enter to install the selected filesets.
2. To obtain maintenance level 06, please contact your local Software Service Center or use FixDist to get the latest maintenance level for the AIX. Once you obtained the ML, use the following steps to install the update with smit:
• smitty or smit
• Select Software Installation and Maintenance.
24 Introducing Tivoli Personalized Services Manager 1.1
• Select Install and Update Software.
• Select Install and Update from LATEST Available Software.
• Enter INPUT device (press F4 to list devices).
• Select the directory where you downloaded the maintenance level
• Select all file sets from SOFTWARE maintenance level 6
• When you have finished, press Enter to install.
3.2.3 JDK 1.2.2 installation and setup 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
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
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
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
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
• Call the AIX smitty utility for package installation:
smitty installp
• Specify the source directory of installation package, and click Enter to start the installation. At the end of the installation process, you can verify the installation status from the installation summary.
3.3 Oracle JDBC driver 8.1.6
We obtained the classes12.zip file from:
http://technet.oracle.com/software
After we downloaded the classes12.zip file, we copied to the $ORACLE_HOME/jdbc/lib directory. This file must be available to Java through the CLASSPATH variable.
30 Introducing Tivoli Personalized Services Manager 1.1
Chapter 4. Building the environment
In this chapter we explain all the Operating Systems tasks that we performed, and also explain the installation and configuration of the products that we used in this project.
We choose the following products to run the TPSM:
• Oracle 8.1.5i
• Netscape Enterprise Server 3.63
• WebSphere Application Server 3.5 Standard Edition
4.1 File system configuration
In order to begin installing the products, we must increase the size of some filesystems. You can use smitty to change the file system sizes, or use the following commands:
chfs -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
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
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
#!/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
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
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
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
- 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
SuiteSpot Group [nobody]: netscape
Are you using an LDAP-based directory server? [n] n
After all prompts, press Enter to copy the software. When prompted provide the following information:
Administration port [6557]: 11043
Run Administration Server as [root]:root
Enter path to 2.x version of Netscape Administration Server root: [/usr/ns-home] leave blank if 2.x of Netscape was not loaded prior
Server Administrator ID [admin]: admin
password: admin
password (again): admin
Web browser [netscape]: NONE
Perform the following steps to allow remote access to Netscape server:
Stop the admin server by typing the command /usr/netscape/suitespot/stop-admin
Type cd /usr/netscape/suitespot/admin-serv/config
In a text editor, open ns-admin.conf.
Change Hosts X.X.X.X to Hosts *
Change Addresses X.X.X.X to Addresses *
Start the admin server by typing the following command: /usr/netscape/suitespot/start-admin
4.4 Creating Netscape server instances
Use the following steps to create Netscape server instances.
1. To get to the Netscape server administration console, start a browser and go to http://hostname:11043, where ‘hostname’ is the name of the server and ‘11043’ is the port where the admin was loaded as shown in Figure 9 on page 40.
Chapter 4. Building the environment 39
Figure 9. Netscape Server Administration console
2. Press Create New Netscape Enterprise Server 3.63.
3. Fill in form using the table below for each server instance. The following sections show you examples of filling out the form for each server instance.
- When you create the Enrollment Server, follow the additional steps described in the example for Enrollment Server
- Server Name field is the name of the server where you have installed Netscape (host.domain).
- Take the default value for Bind address, Server User, MTA Host, NNTP Host.
- Verify that the “Never attempt to resolve IP addresses into hostnames” radio button is selected. Confirm that the server port, server identifier,
40 Introducing Tivoli Personalized Services Manager 1.1
and primary document directory values are set in the form as in Table 2.
Table 2. Netscape Enterprise Servers
Server component
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
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
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
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
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
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
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
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
Figure 17. Form of CGI for Enrollment Server
3. Type cgi-bin on the URL prefix line.
4. Type /usr/TivTSM/enroll/cgi-bin on the CGI directory line.
5. When you see a warning that the directory does not exist, click OK.
6. Save.
7. Apply.
8. Click OK.
9. Click admin.
Chapter 4. Building the environment 49
4.4.8 Creating the SDP Servlet 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
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
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
Figure 20. WebSphere Application Server Installation on AIX - welcome page
• Specify the type of installation (Figure 21). Select Custom Installation from the list.
Figure 21. WebSphere Application Server Installation on AIX - type of installation
Chapter 4. Building the environment 53
• The next dialog box (Figure 22) asks you to select the application server components that you want to install.
Figure 22. WebSphere Installation on AIX - selecting components to install
• The installation will ask you to select the Web Server on which WebSphere will run (Figure 23 on page 55). Select the appropriate Web server plug-ins on the right. If your Web server has a later version than those listed in the dialog box, choose the latest plug-in version available.
54 Introducing Tivoli Personalized Services Manager 1.1
Figure 23. WebSphere Installation on AIX - selecting plug-ins to install
• Specify the location of your Web server configuration file (Figure 24). For Netscape Server, the file is obj.conf; for Apache or IBM HTTP Server, the file is httpd.conf.
Figure 24. WebSphere Installation on AIX - web server configuration file
Chapter 4. Building the environment 55
• The next dialog box (Figure 25) asks you to indicate the type of the database you would like to use. For our purposes, choose InstantDB.
Figure 25. WebSphere Installation on AIX - indicating database repository
• Now, enter the security information (Figure 26). The user is the user that WebSphere is going to run under. Use the dummy key ring file.
Figure 26. WebSphere Installation on AIX - security information
56 Introducing Tivoli Personalized Services Manager 1.1
• Specify a directory to install the WebSphere (Figure 27). This directory will be the WebSphere Application Server root directory.
Figure 27. WebSphere Installation on AIX - specifying WebSphere home directory
• The installation program will take some time to install files into your system.
• After it finishes, the last dialog box will allow you to read the readme.txt file or click Finish to complete the installation.
At that point, the Websphere Application server is ready.
4.6 Installing Tivoli Internet Services Manager software
This section will show you how to install TISM/TPSM software on an AIX machine.
Before you run the following command, be sure that you can start an X-application like xclock. If not, set your DISPLAY variable properly before continuing.
To perform the installation, you need to be a user that has root privileges. First, change directory to the where you have the TISM/TPSM installation CD mounted. In the TISM Planning and Installation online manual, it says to run
Chapter 4. Building the environment 57
./install.sh in an AIX terminal window, but it really should be the following command:
./install.ksh
This will bring up the install welcome panel as shown in Figure 28.
Figure 28. TISM/TPSM installationwelcome
Choose Next to continue. You will then be asked which database you will be using. Select the proper database and click on Next as shown in Figure 29 on page 59.
58 Introducing Tivoli Personalized Services Manager 1.1
Figure 29. Choosing the database
It is interesting that we are prompted for the database because we are installing from the TPSM/Oracle CD. It appears that in the future, this will allow both DB2 and Oracle support to be shipped on one CD instead of two.
Selecting Next will bring up the next dialog (Figure 30 on page 60) where you will be prompted for the local machine information. DNS domain resolution is a requirement.
Chapter 4. Building the environment 59
Figure 30. Local Information for the install
Fill in the information and select Next to bring up the next dialog as shown in Figure 31 on page 61.
60 Introducing Tivoli Personalized Services Manager 1.1
Figure 31. Oracle configuration information
While the ITSO did an initial install on itso14.dev.tivoli.com, this screen capture was done on a separate machine, knight1. This is the reason for the discrepancy in hostnames on our dialog boxes.
No information was changed on this dialog. Selecting Next opened the next dialog as shown in Figure 32 on page 62. If you have a Radius server already installed, you can unselect the internal TISM Radius server.
Chapter 4. Building the environment 61
Figure 32. TISM install components
You will notice that Systems Management and Authentication is greyed out. This is because the installation of these components are required. Select Next to bring up a prerequisite checklist dialog as shown in Figure 33 on page 63.
62 Introducing Tivoli Personalized Services Manager 1.1
Figure 33. TISM prerequisite checklist
Selecting Next will bring up the dialog to ask you where the prerequisites have been installed as shown in Figure 34 on page 64. Update the dialog with any changes from the application defaults.
Chapter 4. Building the environment 63
Figure 34. Prerequisites’ installation directories
Select Next to open the verification dialog as shown in Figure 35 on page 65.
64 Introducing Tivoli Personalized Services Manager 1.1
Figure 35. Installation verification dialog
You can scroll up/down the information that you have chosen from the previous panels. When you have verified that it is correct select Next to start the install.
While it is installing this version of the install code does not display a status window. While the install document tells us to look at /installdir/TivTSM/install/tisminstall.log, that file is not written until the installation is complete or fails. You cannot tail the file to check the status of the installation. After the installation has completed a dialog will open as shown in Figure 36 on page 66.
Chapter 4. Building the environment 65
Figure 36. Installation is finished
Select Finish to close the installation dialogs.
4.6.1 Post-Installation tasks for TISM software.In this section we make the final configurations to ready TISM for use.
• Start all the Netscape Servers
• Create the WebSphere Application Servers
• Configure all of the components of the TISM.
4.6.1.1 IBM WebSphere Application Server 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
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
[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
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
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
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
72 Introducing Tivoli Personalized Services Manager 1.1
Chapter 5. Enrollment and service provisioning
This chapter is divided into two parts; registration configuration and managing the enrollment process. To use the enrollment process in a realm, you must establish which flow the user will follow.
5.1 Registration configuration
Enrollment can be performed through Dial-Up Networking or the Internet. In either case, the enrollment server is used. Several people can be logged onto the enrollment server using the same Registration Name and password. The Registration Name can be used for an unlimited number of enrollments, or a limit may be imposed on the number of subscribers who can be enrolled using a Registration Name.
Network Access Server (NAS)-level filtering restricts a potential 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
2. Download console.zip to your hard disk.
3. Unzip the file to a known location.
4. Edit the unzipped Transaction.properties, TransactionURL variable. It should match the hostname and port of the machine where the console RMI server is running. For instance:
//itso14.dev.tivoli.com:2001/Transaction
5. Open a DOS Windows and cd (change directory) to the directory where you unzipped. Type console.bat to start the TISM Administration Console.
6. It will open a dialog box where you must give the Administrator login and password (Figure 40).
Figure 40. The TISM Administration Console dialog box
7. The TISM Administration Console will open.
8. Double-click the Registration configuration folder (Figure 41).
Figure 41. Director Tool Console
A wide variety of configuration options are available to the ISP. The following section provides an overview of the enrollment configuration objects:
• Realms
74 Introducing Tivoli Personalized Services Manager 1.1
• Registration names
• Access codes
• Deals
• Deal text
• Enrollment metrics
The enrollment configuration objects have a structure. This structure is required to create the enrollment object as shown in Figure 42.
Figure 42. Structure of the enrollment objects
A realm needs a registration name to be able to enroll new users. A registration name requires an access code to be able to work.
For marketing purposes, we have deals and each deal has a deal text, which explains the deal, for example, a deal, FREE, could have as deal text, you 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
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
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
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
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
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
Figure 46. Flow of a multi-access registration name
An example of creation of access code:
1. Select the new registration name, USER_FOR_ENROLL
2. Press the right mouse button and select Add -> Access Code
3. The dialog box shown in Figure 47 on page 82 appears:
Chapter 5. Enrollment and service provisioning 81
Figure 47. Access Code dialog box
5.1.4 Creation of a 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
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
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
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
Figure 51. Dialog for properties of a deal
When completed, select Add. In the TISM Administrator Console you will now see the deal that you added (Figure 52 on page 87).
86 Introducing Tivoli Personalized Services Manager 1.1
Figure 52. Table with the deals and deal text
Now you have to relate the deals with the Realms, which is described in Section 5.1.7, “Associating the deals with the Realm” on page 90
5.1.6 Creating a 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
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
Figure 54. Dialog to create the property
4. Fill in the dialog with your property information and select Add. The new property is now visible in the Properties table.
5. After this you can set values to this property.
a. Select, in the table of properties, the property that you want to add possible values to.
b. Select Action Menu
c. Select Add -> Setting
d. A dialog box as shown in Figure 55 on page 90 will appear where you write the new value.
Chapter 5. Enrollment and service provisioning 89
Figure 55. Creating a value for FAVBOOKS property
5.1.7 Associating the deals with the 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
Figure 56. Table of deals
3. Select the deal in the top table that you want to associate with a Realm, then select the Realm(s) in the lower right window that will offer this deal, for example, IBM and ITSOCHANNEL. See Figure 57 on page 92 to see the deal and Realms associated.
Chapter 5. Enrollment and service provisioning 91
Figure 57. Example of how to relate a deal with several Realms
5.1.8 Associating the Access Codes with the 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
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
Figure 59. A new Sales Channel
The new Sales Channel will now show up in the Administrator Console (Figure 60).
Figure 60. Table of existing Sales Channel
When you create a new Access Code, you would have the choice of selecting the new Sales Channel as shown in Figure 61 on page 95.
94 Introducing Tivoli Personalized Services Manager 1.1
Figure 61. Example of selection of created Sales Channel in the new Access Code
5.1.10 Creating a Method of 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
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
Figure 63. Method of Payment list dialog
4. Now you have to add the Payment Methods that you want contained in the MOP list. Select the MOP List in the table that appears in the middle of Figure 64.
Figure 64. Relationship between method of payment list and table
5. Select the Method of Payment we want to include in the MOP list in the right hand-side of the table as shown in Figure 65 on page 98.
Chapter 5. Enrollment and service provisioning 97
Figure 65. Example of how to relate the MOP list to MOPs
5.1.12 Association of a MOP list and a 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
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
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
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> </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> </TD></TR><TR><TD> </TD></TR></TABLE><TABLE><TR><TD><FONT SIZE=6> <CENTER>Welcome !!</CENTER></FONT><BR></TD></TR><TR><TD> </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> </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
Figure 68. Enroll with access code PUBLIC
After this, the agreement window appears as shown in Figure 69.
Figure 69. Agreement window
102 Introducing Tivoli Personalized Services Manager 1.1
The enrollment details window appears. This is divided into Personal details (Figure 70) and deals/Username (Figure 71 on page 104).
Figure 70. Personal detail of enroll
Chapter 5. Enrollment and service provisioning 103
Figure 71. Deal and Userid details for enroll details
At this point the customer can choose the password for accessing the new account as shown in Figure 72.
Figure 72. Password for enroll details
Next, TPSM gives details about the deal that the user chooses as shown in Figure 73 on page 105.
104 Introducing Tivoli Personalized Services Manager 1.1
Figure 73. Details of chosen deal
Access information and a choice for method of payment is shown (see Figure 74).
Figure 74. Payment Method details for enroll
Chapter 5. Enrollment and service provisioning 105
The enrolling person is given a chance to confirm all the information that had been entered (see Figure 75).
Figure 75. Confirmation details
Enrollment is complete, as shown in Figure 76.
Figure 76. Congratulations screen
106 Introducing Tivoli Personalized Services Manager 1.1
Selecting Continue on Figure 76 on page 106 will bring up Figure 77, which provides additional information for configuring your machine to access the service.
Figure 77. Configuration enroll
Now we are going to see what happens when we use the CHEAP access code in the screen shown as Figure 68 on page 102 to enroll a new user. First we go to the enroll main page (Figure 67 on page 100) and proceed to enroll a new one following the steps that we mentioned earlier in this chapter; see Figure 68 on page 102 through Figure 77. On the screen that asks us to choose the deal, we select the second option as shown in Figure 78 on page 108.
Chapter 5. Enrollment and service provisioning 107
Figure 78. Choosing the cheapest deal.
As you can see, there are two deals. These deals are those we set for CHEAP access code. After we choose the deal, the enrollment procedure continues as described on the prior pages.
5.1.14 Enrollment 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
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
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
Chapter 6. Subscriber authentication and access control
Authentication is the process by which a user is recognized by the system and allowed to gain access to files or views. Typically a user is authenticated by prompting a form with their user name and password. This information is verified by the server.
The authentication server is one of the most important parts of TPSM because almost all the other servers use it.
Figure 80 shows how the authentication server works in TPSM.
Figure 80. How the authentication server works
1. A user attempts to access a portal page and is intercepted by the authentication checker 1.
2. The user has never access the portal page before and therefore is not authenticated. The user is redirected to the Authentication Server.
1 The Authentication Checker is a component of the Portal Toolkit (pTk) that recognizes the type of device.
© Copyright IBM Corp. 2001 111
3. The authentication server prompts the user for a username and password in order to validate them. The other possibility is the authentication server verifies the IP address given to the user at sign-on with the Radius server.
4. User enters the appropriate information if prompted. The Authentication Server validates that he or she is an authorized user, and stores information in the TISM database.
5. The user is authenticated and redirected back to the portal page. Now the checker acknowledges the 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
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
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
Figure 82. Active components of the Authentication Server for internet access
The authentication file system is divided in two:
1. Content, where the structure of the page is located.
2. Servlet, where the configuration files and Java code for the authentication server is.
The content file system has different parts, as you see in Figure 82:
a. css contains the default style sheet for the authentication server.
b. en contains the English JSPs.
c. images contains all the pictures files for the authentication server.
d. ja contains all the Japanese JSPs.
The JSP used for internet access is authentication.jsp, and as you can see in the next screen it is a form with a Java Bean that creates a session with the information passes.
Chapter 6. Subscriber authentication and access control 115
The bolded lines are the important code for authentication.jsp. As you can see at the beginning, we have the Java code for importing the classes and creating the Java Bean for authentication. In the second part of the code, we have the form with the auth JavaBeans methods for verifying the authentication in the server and the redirection to the page where the authentication was requested from.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<%@ page import="java.util.*,java.text.*" %><jsp:useBean id="auth" class="com.tivoli.tsm.authentication.AuthFormBean"scope="request" />
<HTML><HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><TITLE> TSM Authentication Page </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> </TD><TD> </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 > </TD></TR><TR><TD > </TD></TR><TR ><TD height="200"> </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> </td></tr>
116 Introducing Tivoli Personalized Services Manager 1.1
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"> </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> Your User Name </TD><TD align=left><INPUT type="text" name="SMSusername" value="<%=
auth.getUserName() %>" size="20" maxlength="30"></TD>
<TD align=left> </TD></TR><TR><TD align=left> Your Password </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
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
When the authentication is delegated to the WES authentication proxy, the Authenticator.properties file must be replaced by the Authentication.properties.wes. This change must be done at the end of installation, before application servers start. The following screen is the Authenticator.properties file.
Chapter 6. Subscriber authentication and access control 119
####################################################################### TSM Authentication properties# This file is used by the class com.tivoli.tsm.Server# This file lists# - the different authenticators and their property file# - the different devices and their signature# - the TSM database connection pool properties####################################################################### List of authenticators# ----------------------# The syntax is :# <authenticator index>.authenticator.class=<classname># <authenticator index>.authenticator.properties=<authenticator properties name>######################################################################## Default Authenticator is good for every WEB devices with a reasonable HTTP support# It also supports Premium content access control#######################################################################def.authenticator.class=com.tivoli.tsm.authentication.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
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
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
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
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
Figure 83. Cluster configuration
On the authentication checker side, the Webmaster must specify the list of premium services ids hosted by a thin server, and provide a list of URL paths prefixes for each of them as shown in Figure 84.
Figure 84. Premium configuration
Chapter 6. Subscriber authentication and access control 125
The next parameters are for the premium server.
authentication.premium.tierids= 08004, 08005, ..authentication.premium.tierurls.08004=/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
####################################################################### 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
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
## 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
# >> 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
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
.
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
Figure 85. Hierarchal device type
The next parameter is mandatory and specifies the type of content supported by that device. The first content type in the list must be the primary markup language used by thin device. It is used by the portlet framework.
device.content.types=text/html,text/plain,image/gif,image/jpeg
6.4 Wireless World
Figure 86 on page 134 shows how the Wireless devices work when they access the TPSM.
Chapter 6. Subscriber authentication and access control 133
Figure 86. WAP architecture
Mobile WAP Devices need to access the internet through a wireless network. To do this, the user dials the NAS (Network Access Server), which prompts the authentication form, user, and password. The NAS is a gateway between networks and the internet that allows the users to connect to the ISP. Once the user is connected to the internet, he or she goes through the WAP Gateway that connects the WAP Protocol to HTTP Protocol to the Portal Web Server.
Once users are connected, they can access their portal pages. At this point the Authentication Checker determines if the user has accessed before and prompts authentication for TPSM. The authentication can only be through configuration with the TPSM.
134 Introducing Tivoli Personalized Services Manager 1.1
The Wireless World has its own features that make the configuration and personalization of TPSM different. The main features are:
• Protocol WAP
• Programming Language; WML, WML Script, XML
• Different infrastructure; Wireless Gateway, mobiles, PDAs
These features have important consequences that affect configuration. The main consequences are:
• Different ways to process the data, so different ways to authenticate
• Different way to program the JSPs
• Different configuration of servlets
Besides all these general differences are some differences depending on the infrastructure that the customer has, such as if the customer has a gateway or not, a RADIUS server or not, and the type of gateway.
Authentication is the same as that for Internet World in some cases. The authentication server has a pTk component called Authentication Checker that determines the type of device that 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
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
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
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
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
####################################################################### TSM DefaultAuthenticator properties############################################################################################################################################## Multi-domain or Single-Domain authentication## - Multi-domain : allows Single Sign-On (SSO) on several# domains, including domains hosted by tiers (premium content)# It requires that devices supports HTTP redirect properly## - Single-domain : allows SSO on a single ISP domain# It does not use HTTP redirect since the authenticaiton is done# directly in the Checkers.# So it is faster, and good for dummy devices (I won't give name here ;-)## Multi-domain is the default, allowed values : yes | no######################################################################authentication.multidomain.enabled=yes######################################################################## authentication server URL : http://hostName:port######################################################################authentication.server.url=http://itso14.dev.tivoli.com:8080######################################################################## authentication server path######################################################################authentication.server.uri=/authentication/server######################################################################## authentication form file path######################################################################authentication.form.path=/authentication/en/wapauthentication.jsp######################################################################## 1st authentication type (w/o login/pwd prompting) :# authentication.type1 = ip | username | no## it must also specify the packet header which contains that information :# authentication.type1.header = ip | <any HTTP header name>## if authentication.type1=username is used take care of the other property :# authentication.force.username which forces a test username#authentication.type1=no#authentication.type1.header = X-Network-Info## IBM WAP gateway of Nokia enterprise gateway#authentication.type1.header=X-Network-Info# Ericsson WAP gateway 1.1# authentication.type1.header=Cookie
140 Introducing Tivoli Personalized Services Manager 1.1
####################################################################### 2nd authentication type (with login/pwd prompting):# basic | form# The 2nd authentication type is used if the 1st one fails or is not active######################################################################authentication.type2=form######################################################################## When single sign-on is enabled, the authenticator sets# a SSO cookie "sauth" which can be used by later authentications# It avoids prompting twice the user with authentication form## This parameter only applies when "authentication.type=form" is used# when "authentication.type=ip or basic" SSO is always enabled######################################################################authentication.sso.enabled=no######################################################################## Single Sign On cookie parameters####################################################################### SSO cookie 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
####################################################################### 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
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
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
####################################################################### 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
# 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
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
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
Chapter 7. Using Customer Care and Director Tool
The TISM Customer Care Component is the primary tool used for customer service. This application will be the first point of contact that Customer Service Representatives (CSRs) use to access customer information when the customer calls in.
"Customers" are usually referred to as "subscribers"
The Customer Care Component allows the CSR to:
• Enroll and manage consumer subscribers Primary Accounts
• Add, update, and remove consumer Child Accounts
• Enroll and manage business accounts and sub-accounts
• Add, update, and remove business subscribers
• The CSRs can view and update:
- Account status
- Personal information
- Deals (i.e., service plans)
- Method of payment
- E-mail settings
TISM is designed to support both consumer accounts and business accounts. Many of the processes described in this chapter are specific to one category or the other. The topic headings will tell you which is being covered.
Consumer accounts consist of a primary subscriber/account and (optionally) a number of child subscribers. The primary account is responsible for all billing and payment. The child subscribers each have their own username and password, which gives the child a separate identity. The consumer account is created automatically when the subscriber is enrolled.
Business accounts consist of a primary (top-level) account, (optional) sub-accounts, and subscribers. A CSR needs to create the business account before subscribers can be enrolled. Billing can be set up at the primary or sub-account level for business accounts.
© Copyright IBM Corp. 2001 149
7.1 Assigning login IDs and access control profiles to CSRs
As a first step to be able to access the Customer Care, we created a Profile, which is associated with a REALM.
• Open a DOS Windows and run console.bat to start the TISM Administration Console. It will open a dialog box where you have to give the Administrator login and password (Figure 89).
Figure 89. The TISM Administration Console dialog box
• The TISM Administration Console should be open now. Double click on Access Control, click on Profiles, right click on CSR, and choose add as shown in Figure 90.
Figure 90. TISM Administration Console
150 Introducing Tivoli Personalized Services Manager 1.1
• Fill out the Profile Name field and click on the checkbox for the REALM that is going to administer the new role, then click the Add button as shown in Figure 91.
Figure 91. Add a New Access Role (1)
• Fill in the fields in the window as shown in Figure 92, then click on Add.
Figure 92. Add a New Access Role (2)
• Now we can see the profile that we have just created, as shown in Figure 93 on page 152.
Chapter 7. Using Customer Care and Director Tool 151
Figure 93. TISM Administration Console (1)
After we created a Profile, we now must create a Login to access the Customer Care. Right click on Login, then click on Add as shown in Figure 94.
Figure 94. TISM Administration Console (2)
152 Introducing Tivoli Personalized Services Manager 1.1
This will open the window shown in Figure 95. Fill out all the information. In the Access Profile, choose the one that you just have created, in our example CSR_ITSOCHANNEL.
Figure 95. Add a New Login Name
The Login we just created is shown in Figure 96 on page 154.
Chapter 7. Using Customer Care and Director Tool 153
Figure 96. TISM Administration Console (3)
7.2 Logging on to Customer Care
Customer Care Reps (CSRs) must be enrolled in the Customer Care system by an authorized administrator and assigned a login name and password. See the previous section for details.
The 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
7.3 Log on steps
To log on, please follow the next steps:
• Launch the Customer Care Component on your computer:
http://itso14.dev.tivoli.com:14080/cc.html
• On the Login panel, Enter Login Name and Password. This Login Name needs to be created with the Director Tool and have a REALM associated with it. Press OK as shown in Figure 97.
•
Figure 97. Customer care logging page
When you are successfully authenticated, the Search screen is shown (Figure 99 on page 158). Please refer to Section 7.4.2, “View and update a subscriber account” on page 157 for further details.
7.4 Managing consumer accounts
Consumer accounts consist of a primary subscriber/account and (optionally) a number of child subscribers that can be family members, friends, or colleagues. The primary account is responsible for all billing and payment. The child subscribers each have their own username and password, which gives the child a separate identity and makes the account private and secure. The consumer account is created automatically when the subscriber is enrolled.
Chapter 7. Using Customer Care and Director Tool 155
7.4.1 Enroll a new consumer 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
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
• If the search produced a list of subscribers, select the correct one from the list by double clicking the subscriber's name or highlighting the subscriber and clicking the "UPDATE" button.
• The Subscriber Update panel is displayed (Figure 100 on page 159) with the subscriber information filled in.
• View the existing data or make changes as needed.
• If changes are made, press the "UPDATE" button to process them.
• Error messages will appear near the "Update" button if changes are invalid. Make changes as indicated by the messages and press "Update" again.
• A "success" message will appear when changes are successful.
Figure 99. Search results
158 Introducing Tivoli Personalized Services Manager 1.1
Figure 100. Subscriber update panel
7.4.3 Changing a subscriber's 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
• 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
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
• 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
• 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
• Monthly Usage Summary Report
• Monthly Cohort by Hours Report
• Monthly Enrollment by Access Code Report
• Monthly Enrollment Report
• Monthly Disconnect Analysis Report
Figure 105. TISM Reporting Program
7.6 Additional services
The Customer Care Component has the ability to link to applications that are external to the TISM system. For example, an application that enrolls users in another program offered by the service provider, such as a telephone long-distance calling plan, can be linked to TISM.
The advantage to linking external applications to TISM is that the TISM subscriber database is linked too. Therefore, personal information (such as, name, address, and phone) is automatically transferred to the external application.
The GUI interface to additional services is a button called “Additional Services” that appears at the bottom of subscriber maintenance screens.
TISM operators can take advantage of existing external applications or develop new ones, install them on a web server, and configure the Customer Care Component with the application's URL. The “Additional Services” button will then link to and launch the external application.
164 Introducing Tivoli Personalized Services Manager 1.1
7.7 Using the Search Panel
In this section we are going to review how to use the Search Panel.
7.7.1 Search criteria for individual 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
166 Introducing Tivoli Personalized Services Manager 1.1
Chapter 8. Subscriber Selfcare
This chapter describes how to customize and run the Subscriber Selfcare applications.
8.1 Overview
Subscriber Selfcare is a suite of applications that allows subscribers to view and change personal information collected during enrollment (refer to Chapter 5, “Enrollment and service provisioning” on page 73). These applications let a subscriber perform the following:
• Change password
• Display and update personal information (name, address, phone numbers)
• Display and update payment information
• Display and add member accounts under the subscriber account
• Display devices the member has enrolled (only in Tivoli Personalized Services Manager)
These functions are presented to a subscriber using HyperText Markup Language (HTML) pages or Java Server Pages (JSPs) that a Service Provider (SP) can customize to give them a unique appearance. All of the applications are run from servlets hosted on a Web server.
8.2 Customization
The flow and order of presentation of pages is controlled by the main JSP file. Through programmatic tests of the current state of the data object, the page to be displayed is selected. The SP can rearrange the order of presentation, combine or divide the content of individual pages, and take “side trips” to other applications through customization of the JSP pages. The customiser is responsible for ensuring that side trips are returned from and prerequisites are entered before dependent data.
The JSP files, which are located in the /usr/TivTSM/selfcare/content/jspdirectory, are described in Table 12:
Table 12. JSPs for SelfCare
JSP File Description
AddMemberAuthError Authentication page.
© Copyright IBM Corp. 2001 167
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
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
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
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
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
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
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 172) choose Change Personal Information. Type your username and password in the Login screen as shown in Figure 107 on page 173. This will bring up a screen to update Personal Information as shown in Figure 111.
Figure 111. Change Personal Information
When the changes are complete, click on Change Personal Information, which will bring up a confirmation page as shown in Figure 112 on page 176
Chapter 8. Subscriber Selfcare 175
Figure 112. Changing Personal Information confirmation
When you click on Yes, Change Personal Information, the database is updated with the new data and a message with the new information is displayed.
8.3.3 Change payment 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
Figure 113. Changing Payment Information
Update the information and click Change Payment Information. A confirmation screen will be displayed (Figure 114 on page 178), in this screen, click Yes, Change Payment Information to confirm the changes.
Chapter 8. Subscriber Selfcare 177
Figure 114. Changing method of payment confirmation
When the changes are accepted a screen with the new values is shown.
8.3.4 Adding new members Allows members to add new members to their account. From the main page of Selfcare (Figure 106 on page 172), choose Add New Members. Type your username and password in the Login screen as shown in Figure 107 on page 173. This will bring up a screen to add new members as shown in Figure 115.
Fill in all the information of the new member whom you are adding, then press Add a Member. You can look at the Figure 115 on page 179 and Figure 116 on page 180 to see all the fields that need to be filled.
178 Introducing Tivoli Personalized Services Manager 1.1
Figure 115. Adding a new member (1)
Chapter 8. Subscriber Selfcare 179
Figure 116. Adding a new member (2)
When you click on Add A Member, a confirmation screen is displayed. Click Yes, Add Member, and the information on the new member will be displayed.
180 Introducing Tivoli Personalized Services Manager 1.1
Chapter 9. Subscriber Personalized Service Environment
The TPSM Personalized Service Environment allows each subscriber to customize his or her own home page. The ISP also has the Portal Toolkit, which can be used to develop personalized portal pages.
9.1 Portal Toolkit
The Portal Toolkit (pTk) is a package that has several important functions:
1. Generation of pages according the specific devices.
2. Allow users to customize their own homepages. This personalization is achieved by user profiling data stored in TPSM.
3. The Administrator creates a set of links that user can add to his or her own homepage.
4. Vertical Services are integrated with pTk, such as Agenda, Calendar, and Address Book.
5. The JSP Portlets Framework allows you to construct portal pages by assembling portlets. A portlet is a servlet that can be invoked as a building block from a JSP or a servlet.
6. Control of the authentication process.
7. The Double Click AdServer Interface, which is a sophisticated way to perform marketing campaigns.
9.2 Functionality
The following are the main functions of Portal Toolkit.
9.2.1 Multi-device 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
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
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
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
• 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
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
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
• 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
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
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
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
• public Appointment(Date start, int duration, String description)
• public Appointment(long id, Date start, int duration, String description)
start is the start date of the appointment. duration must be defined in minutes.
• public String displayDate()
This method displays the start date of the appointment as a string with the format “yyyy:MM:dd E”
• public String displayStart()
This method displays the start date of the appointment as a string with the format “HH'h'mm”
• public String displayEnd()
This method displays the end date of the appointment (start date + duration) as a string with the format “HH'h'mm”
• public boolean equals(Appointment appointment)
Returns true if the current appointment is equal (same start date, duration and description) to appointment parameter.
• public java.lang.String getDescription()
Returns description of the appointment.
• public void setDescription(java.lang.String newDescription)
Updates the description of the appointment with newDescription.
• public Date getStart()
Returns start date of appointment.
• public void setStart(java.util.Date newStart)
Updates start date of appointment with newStart.
• public int getDuration()
Returns duration (in minutes) of the appointment.
• public void setDuration(int newDuration)
Updates duration of the appointment with newDuration.
• public int getDurationHour()
Converts duration of the appointment in hours (duration in minutes / 60).
192 Introducing Tivoli Personalized Services Manager 1.1
• public int getDurationMin()
Returns remaining duration of the appointment in minutes (duration - (duration /60)*60).
• public Date getEnd()
Returns the end date of the appointment (start date + duration).
• public long getId()
Returns the database sequence number of the appointment.
• public void setId(long newId)
Updates the database sequence number of the appointment with newId.
• public int getStartDay()
Returns only the day (1- 31) of the start date of the appointment.
• public int getStartMonth()
Returns only the month (1- 12) of the start date of the appointment.
• public int getStartYear()
Returns only the year (2000, 2001, etc.) of the start date of the appointment.
• public int getStartHour()
Returns only the hour (0-23) of the start date of the appointment.
• public int getStartMin()
Returns only the minute (0-59) of the start date of the appointment.
• public boolean isInThePast()
Returns true if the appointment is in the past (older that the current date).
9.3.2.8 Agenda.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
• public Enumeration elements(int interval, Calendar date)
Returns a AppointmentEnumeration of Appointment of the current date of agenda filtered by the hour (interval=HOUR) or by the day (interval=DAY). That enumeration can be used to display all appointments started between a given hour h and h+1, or started on the day d.
• public synchronized boolean add(Appointmentappointment)
This method adds a new appointment to the Agenda AccessBean. It is cached in the JVM memory. It will be stored in the TISM database when the update() method is invoked, or at the end of the user session. It returns true if it succeeds, and false if it fails, in particular if the appointment already exists.
• public synchronized boolean del(Appointment appointment)
This method deletes an existing appointment from the Agenda AccessBean. It will be deleted from the TISM database when the update()method is invoked, or at the end of the user session.
• public synchronized void del(long id, java.util.Date start, int duration, String description)
This method deletes an existing appointment from the Agenda access Bean. The appointment can be identified by a data base sequence number (id), or, if the id is zero, by its start date, duration, and description. It is more efficient to delete an appointment by its id.
• public boolean modify(Appointment appt, java.util.Date date, int duration, String description)
This method modifies an existing appointment appt from the Agenda AccessBean with the new values; start date, duration (in minutes), and description.
• public int getStartHour()
This method gets the latest hour of appointments found in the appointment enumeration given by the elements() methods.
• public int getMinHour()
This method gets the earliest hour of appointments found in the appointment enumeration given by the elements() methods.
194 Introducing Tivoli Personalized Services Manager 1.1
• public void updateMinMaxHours(java.util.Datedate)
This method updates minimum or maximum hours given by the methods getMinHour() and getMaxHour() of the agenda if necessary. If the hour of date < getMinHour(), then minHour of agenda is updated with this value. If the hour of date > getMaxHour() then maxHour is updated with this value.
An example of use of Agenda.class is shown in the following screen.
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
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> TSM Personal page </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> </TD><TD> <%= myFamily.getFirstName(ix)%> </TD></TR><%
}%></TABLE>..
196 Introducing Tivoli Personalized Services Manager 1.1
• public synchronized boolean add(Link link)
This method adds a new link to the FavoriteLinks AccessBean. It is cached in the JVM memory. It will be stored in the TISM database when the update() method is invoked, or at the end of the user session. It returns true if it succeeded. It returns false if it fails, in particular if the link already exists.
• public synchronized boolean add(String category, String title, String URL)
This is a commodity method to avoid handling Link objects. It is equivalent to the add(Link) method.
• public synchronized void del(Link)
Deletes a link from the user's favorite links.
• public synchronized void del(long id)
Each link is identified by a data base sequence number. It is more efficient to delete a link by its id.
• public synchronized void delCategory(String category)
Deletes all the links belonging to that category.
• public Enumeration elements()
Returns a LinkEnumeration of Link for all the favorite links of that user. That enumeration can be used to display all the favorite links of a user.
• public Enumeration elements(String category)
Returns an Enumeration of Link for all the links belonging to that category.
An example is shown in the following screen.
Chapter 9. Subscriber Personalized Service Environment 197
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
• 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
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
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
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
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
A portlet is made of three abstract classes that must be sub-classed by every portlet implementation. See Figure 120.
• The Component class inherits from HttpServlet. It is the entry point of the portlet.
• The ComponentSession class contains the user session state of the portlet. The ComponentSession contains the business logic of the portlet: the programmer of a new portlet must override the method:
ComponentSession::service() : it is the portlet "controller"
• The ComponentSession creates the Bean(s) that is (are) transmitted to the portlet JSPs for rendering: it contains the portlet “model.”
• The ComponentConfiguration class parses the portlet properties file during the portlet init(). In particular it contains the portlet JSP's dispatching rules: portlet JSP = f (portlet Command, Device Type). It contains all the references to the portlet JSP's.
• It can also be sub-classed to implement additional properties specific to each portlet real implementation.
A portlet also contains “portlet JSPs” that are the portlet “view.”
Figure 120. More detail about the architecture of JSP Portlets
204 Introducing Tivoli Personalized Services Manager 1.1
9.4.3 Portlet 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
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
• 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
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
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
The portlet command API provides the means to compute the “href” attribute of a button or control that will address a command to the current portlet.
Each portlet JSP needs to retrieve user session Beans (the model) before generating the page content (the view).
package com.tivoli.tsm.perso.components;
public abstract class ComponentSession implements javax.servlet.http.HttpSessionBindingListener;
The methods for the class ComponentSession are:
• public void ComponentSession::init(HttpServletRequest request)
- HttpServletRequest request : the HTTP request object.
This method may be overridden by portlet real implementations. It is invoked by the portlet framework after the ComponentSession object is instanciated, on the 1st user session HTTP request that needs to display that portlet. For portlets that need to access to TISM data base, the init() method usually loads the necessary user's preference Java Bean.
• public abstract void ComponentSession::service(String command, HttpServletRequest request) throws javax.servlet.ServletException, java.io.IOException
- String command: the command addressed to the portlet
- HttpServletRequest request: the HTTP request object.
This method must be overridden by each portlet real implementation. It contains the portlet “controller”, the process of each command addressed to the portlet, and the preparation of the Beans before the dispatching of the portlet JSP's. For portlets that need to access the TISM data base, the service() method usually loads at the User's preferences Java Beans when the ComponentSession is instanciated.
• public String href(String command)
- String command: the command addressed to the portlet
This method is used by the portlet JSP's to compute the “href” attribute of buttons or controls. Clicking on such a control will send an HTTP request to the current portlet with the parameter componentName=command. This command will be dispatched by the component framework to the portlet instance identified by componentName.
210 Introducing Tivoli Personalized Services Manager 1.1
• public static ComponentSession getSession(HttpServletRequest request)
- HttpServletRequest request: the HTTP request object.
This method is used by the portlet JSP's to retrieve the current user's ComponentSession instance. This object carries the Beans (the model) with the data that must be rendered by the JSP. It is a common programming idiom to implement simple data directly as attributes of the ComponentSession class, and provide getXxx() accessors.
9.4.4.3 Portlet 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
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
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
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
####################################################################### 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
####################################################################### 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
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
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
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
####################################################################### 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
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
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
####################################################################### 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
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
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
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
• 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
####################################################################### 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
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
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
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
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
Methods • public com.tivoli.tsm.perso.Agenda getAgenda()
Returns the agenda access Bean associated with the session.
• public java.util.Enumeration elements(int hour)
This method returns an enumeration of appointments which have their start time between hour and hour+1.
• public String getDate()
Returns the current date of the agenda as a string. The format of the date is defined in the configuration file.
• public int getStartDay()
Returns the current day of the agenda (day between 1 to 31).
• public int getStartMonth()
Returns the current month of the agenda (day between 1 to 12).
• public int getStartYear()
Returns the current year of the agenda (1999, 2000, 2001, etc.).
• public Calendar getStartTime()
Returns the current date of the agenda beginning at hour 00h00min00s.
• public int getMaxHourConfig()
• public void setMaxHourConfig(int newMaxHourConfig)
Returns or sets the maximum hour to display in the agenda defined in the configuration file.
• public int getMinHourConfig()
• public void setMinHourConfig(int newMinHourConfig)
Returns or sets the minimum hour to display in the agenda defined in the configuration file.
• public int getMaxHour()
It returns the maximum hour displayed in the agenda. It can be bigger than the maximum hour defined in the configuration file if appointments start after the maximum defined in the configuration file.
• public int getMinHour()
Returns the minimum hour displayed in the agenda. It can be smaller than the minimum hour defined in the configuration file if appointments start before the minimum defined in the configuration file.
Chapter 9. Subscriber Personalized Service Environment 233
• public boolean isCommandValid()
Returns true if the current command is valid. It could be false by example if the user tries to add an appointment in the past; the command is not validated and the new appointment is not added.
• public java.lang.String getPageCommand()
A same page can be used to add, update or delete an appointment. This method returns the current command.
9.6.5 AddressBook 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
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
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
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
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
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
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
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
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"> </TD></TR><TR><TD bgcolor="black"><%Component.include("/perso/customizorComponent", "custom", this, request, response);%></TD></TR>
242 Introducing Tivoli Personalized Services Manager 1.1
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
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
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
####################################################################### 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
.
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
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"> </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"> </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"> </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
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
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
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
Figure 141. Example of ComponentSelector
To add a new external application that can be chosen by the user, follow these steps:
1. Edit the file ComponentSelectorComponent.properties of the directory /usr/TivTSM/personal/servlet/properties/com/tivoli/tsm/perso/component as shown in the following screen.
2. Add the next lines for your new external application, see the bold code as our example. The first thing that you have to do is to decide what name are you going to give to the application, for instance, mail, to identify the properties in the file
a. Label of application to appear in the homepage as description
b. Name application.label.mail=My Mail
c. Icon that you are going to use and location:
application.icon.mail=/images/yahoo.gif
d. The location in the TPSM:
application.componenturl.mail=
e. URL for the new application:
application.iconclickurl.mail=http://mail.yahoo.com
f. Type of devices to apply:
application.devicetype.mail=/WEB
3. Stop and restart the personalization server.
4. Try your homepage as shown in Figure 142 on page 256 and Figure 143 on page 256.
The code for ComponentSelectorComponent.properties is as follows:
252 Introducing Tivoli Personalized Services Manager 1.1
####################################################################### Application Selector Component for TISM pTk# ------------------------------------## List of applications managed by the ComponentSelector## The syntax is :# ---------------# application.label.<application name>=<application label># application.icon.<application name>=<application icon URL># application.componenturl.<application name>=<component URL># this parameter is required for components# application.iconclickurl.<application name>=<Click URL for the icon># this parameter is optional : when present, the component icon is clickable# application.devicetype.<application name>=<device_type># where <device_type> = /WEB, /WAP or / for all devices####################################################################### Calendar : Example of application which entry point is a component (servlet)# it is referenced by the URI path of its servlet alias#application.label.calendar=My 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
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 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
Figure 142. ComponentSelectorComponent after adding an external application
Figure 143. New application added by the user
The whole code for the entire page with all components installed is shown in the next screen.
256 Introducing Tivoli Personalized Services Manager 1.1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><%@ page import="com.tivoli.tsm.authentication.*" %><% if (Checker.isNotAuthenticated(request, response)) return; %><%@ page buffer="none"import="com.tivoli.tsm.perso.*,com.tivoli.tsm.perso.components.*,java.util.*,java.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> TSM Personal page </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
<!----------- Calendar ---------------------------><%Hashtable comps = ComponentSelectorComponent.getComponents("comps", request);ComponentDescription comp;
%><!----------- Customizor ---------------------------><TR ><TD align="center"> </TD></TR><TR><TD bgcolor="black"><%Component.include("/perso/customizorComponent", "custom", this, request, response);%></TD></TR>
<!----------- Logout -----------------------------------><TR ><TD align="center"> </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"> </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"> </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"> </TD></TR><tr><td> </td></TR><TR ID=componentbar ><TD align="center"><font color="white">Cars Trade Marks</font></TD></TR><TR><TD align="left"><font color="black"><A HREF="www.bmw.com">BMW</a></font></TD></TR><TR><TD align="left"><font color="black"><A HREF="www.ferrari.com">Ferrari</a></font></TD></TR><TR><TD align="left"><font color="black"><A HREF="www.ford.com">Ford</a></font></TD></TR><TR><TD align="left"><font color="black"><A HREF="www.gm.com">General
Motors</a></font></TD></TR><TR><TD align="left"><font color="black"><A HREF="www.hyundai.com">Hyundai</a></font></TD></TR><TR><TD align="left"><font color="black"><A HREF="www.honda.com">Honda</a></font></TD></TR><TR><TD align="left"><font color="black"><A
HREF="www.mercedes.com">Mercedes</a></font></TD></TR><TR><TD align="left"><font color="black"><A HREF="www.nissan.com">Nissan</a></font></TD></TR><TR><TD align="left"><font color="black"><A HREF="www.renault.com">Renault</a></font></TD></TR><TR><TD align="left"><font color="black"><A HREF="www.seat.com">Seat</a></font></TD></TR><TR><TD align="left"><font color="black"><A HREF="www.toyota.com">Toyota</a></font></TD></TR>
258 Introducing Tivoli Personalized Services Manager 1.1
<TR><TD align="left"><font color="black"><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
}%>
</TD></TR>
<tr><td> </td></tr></TABLE>
</TD><!----------- PAGE LAST column --------------------------->
<td><TABLE><!--------------------Aplications--------------------------><TR><TD>
<!----------- Component selector --------------------------->
<%Component.include("/perso/componentSelectorComponent", "comps", this, request,
response);%></TD></TR>
<!--------------------Calendar--------------------------><TR><TD align="left" width="90%"><%comp = (ComponentDescription) comps.get("calendar");if (comp != null)comp.include(this, request, response);
%></TD></TR><!----------------------Agenda-------------------------><TR><TD align="center"><%comp = (ComponentDescription) comps.get("agenda");if (comp != null)comp.include(this, request, response);
%></TD></TR>
</TABLE></TD></TR>
</TABLE></BODY></HTML>
.
.
260 Introducing Tivoli Personalized Services Manager 1.1
9.9.2 Wireless 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
This code redirects the subscriber when it detects that he or she has not been authenticated before. See the code in Section 9.9.1.1, “Implementation” on page 241.
The rest of the code is for using the TPSM component, ComponentSelectorComponent. Add other components just as we did for HTML. To see the results, see Figure 88 on page 144.
262 Introducing Tivoli Personalized Services Manager 1.1
Chapter 10. Virtual ISP
This chapter is an overview of the Virtual ISP feature. For configuration and further information, please refer to Chapter 5, “Enrollment and service provisioning” on page 73.
10.1 Overview
Tivoli Personalized Services Manager can host several stand-alone ISPs (virtual ISPs) each with its own brand name and unique identity without any degradation in response time or processing efficiency.
Bulk transfers of subscriber bases can be accomplished programmatically, allowing ISPs to purchase existing subscriber populations and quickly add them to the ISP's business.
Businesses can own and operate a virtual ISP within the Tivoli Internet Services Manager base system. Virtual ISPs operate as distinct entities separately branded with a unique realm name (e.g., “acme.com”)
Virtual ISPs can configure the Tivoli Internet Services Manager enrollment screens to display their logo, and offer their billing plans and payment options. Access codes used during enrollment to trigger the proper enrollment screens and enrollment options from the Tivoli Internet Services Manager system base. Also, virtual ISPs can create a unique home page to support their company's identity.
The Internet Signup file (INS file) created at the end of enrollment and downloaded to a subscriber's PC will configure the subscriber's browser to use the virtual ISP's settings (for home page, e-mail and newsgroup settings).
Virtual ISPs can configure Tivoli Internet Services Manager's Customer Care component to conform to their company's identity and support their subscriber's needs, and can offer special business accounts within the ISP. These business accounts can have their own subscribers
A variety of APIs allow Tivoli Personalized Services Manager to integrate nearly any Internet component that meets industry standards to provide diverse functionality and follow new trends in Internet interaction.
© Copyright IBM Corp. 2001 263
10.2 REALMs
Realms are a division of the subscriber name-space that allow the ISP to divide its Internet provisioning services, effectively creating a set of “Virtual ISPs.”
Tivoli Personalized Services Manager can support several realms for its virtual ISPs. For example:
• allConsumers.com
• smallBusiness.com
• importantCustomer.com
Virtual ISPs can use the Tivoli Personalized Services Manager enrollment process to enroll their own subscribers but maintain management control over enrollment channels, access codes, deals, subscriber names, and e-mail addresses as shown in Figure 144.
Realms can have consolidated or separate billing systems.
Figure 144. Internet business model
With a delegated REALM administration, TISM provides a configurable way to limit the realms that Customer Service Reps (CSRs) can access.
264 Introducing Tivoli Personalized Services Manager 1.1
This allows CSRs to use the full functionality of the Customer Care application, but limits their access to some or all realms within Tivoli Internet Services Manager.
10.2.1 User groups Within 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
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
• Optionally, you can create a property for the deal, refer to Chapter 5.1.6, “Creating a property” on page 87
• Associate the Deal with the Realm, refer to Chapter 5.1.7, “Associating the deals with the Realm” on page 90
• Associate the Access Code with the Deal, refer to Chapter 5.1.8, “Associating the Access Codes with the deals” on page 92
Also, we need to add CSRs to each one of the Virtual ISPs, please refer to Chapter 7, “Using Customer Care and Director Tool” on page 149.
10.5 Enrolling into the Virtual ISP
With the creation of the REALM also the realm creates a registration name for the enrollment process. The registration name by default has just one access code, but we can create as much access codes as we want to offer and assigned them to the REALM in order to make the a multi access REALM type. Depending on the access code that the user selects, different deals are going to be offered to him.
For further details refer to Chapter 5.1.13, “Managing the enrollment process” on page 99.
Chapter 10. Virtual ISP 267
268 Introducing Tivoli Personalized Services Manager 1.1
Chapter 11. Integration Toolkit
The TSM Integration Toolkit, iTk, is a set of tools that permits you to integrate TPSM with other systems. The TSM Integration Toolkit, iTk, is written in Java, so it is easy to use, portable, and independent of the type of database used.
The TPSM has its main functionality based in the database, so to be able to manage TPSM, the developer has to manage the database. This is provided via Java Database Connectivity (JDBC), and is oriented to transactions. This means that if an error occurs in the middle of a set of database commands, the database will not become inconsistent. A transaction must complete fully before the database is updated.
Some examples of the use of iTk are:
• Read the available Access Codes for controlling the enrollment process
• Create an account and read the details of the accounts for TPSM subscribers
• Read and change the deals
• Authenticate TSM Customer Service Representative and System Administrators
• Read and change Methods of Payment (MOPs)
• Read Realms
• Create a subscriber and read it
• Create a transaction from the Transaction Factory
• Create a TxCursor interface, which provides an uniform return value from the read() method of the Transaction class, using the fetch() and close() methods
• Create a TxWhereClause instance, which provides the capability to specify a complex searching criteria when invoking the read() method of Transaction.
11.1 Architectural overview
The database is at the core of Tivoli Internet Services Manager. It contains all the information needed to run the management system. It also implements constraints to guarantee the integrity of the data.
© Copyright IBM Corp. 2001 269
Around the database primary business and transaction objects are available that provide access to the database in a uniform and consistent way without having to code the actual SQL statements that are needed. See Figure 146.
Figure 146. iTk architecture
Using JDBC, the specific details of the database are hidden from higher level objects. This makes it easier to change databases because it provides isolation from different database management systems like DB2, Oracle, etc. JDBC separates the database server from the business object server, and even facilitates an evolution to a distributed database.
A set of high level, business oriented objects provide simple ways to perform complex business transactions. In turn, the high-level business objects are built around the simpler, table oriented business objects.
270 Introducing Tivoli Personalized Services Manager 1.1
11.2 iTk usage scenarios
iTk can be used in different ways as shown in Figure 147.
Figure 147. iTk usage scenarios
1. Form based browser
This is the most lightweight type of client possible. An unmodified (no plug-in) version of Internet Explorer, Netscape Navigator, or any other type of Web browser accesses a Web server. Behind the Web server, a servlet engine verifies input submitted with HTML form fields and prepares the pages to be sent to the browser. The servlet engine communicates with the business logic server and prepares HTML to be sent to the browser using Java Server Pages. This approach has major advantages over older technologies like CGI (Common Gateway Interface) or Server Side Plugins. First, the Java language used in the servlet engine guarantees the uniformity of one platform. Second, the portability of the Java language enables deployment on different platforms with different types of servlet engines. Lastly, the presence of the servlet engine avoids the costly generation of a new process with every HTTP request as required by CGI type interfaces. With this model, the servlet engine contains iTk object stubs if RMI is used. If RMI is not used the objects contained in the
Chapter 11. Integration Toolkit 271
business logic server will run in the Java Virtual Machine (JVM) of the servlet engine.
2. Java Applets
This solution allows deploying business code on the browser without the need of software installation. A Java applet is downloaded from the server when the browser accesses a specific webpage. The code is dynamically loaded into the Java Virtual Machine on the client and is launched once the download is completed. This model does not require any software installation and guarantees easy updates of software because only the server needs to be updated. The applet can communicate directly with the business logic, or an intermediate server can be introduced in between. With this approach, the Java applet contains iTk object stubs if RMI is used. Otherwise, the objects contained in the business logic server will run in the same JVM as the applet.
3. Third party applications
In some cases customers want to integrate Tivoli Internet Services Manager in their core applications. In this case, access to the Tivoli Internet Services Manager services through a browser or Web server is not convenient. Instead, customers would like to write programs that access Tivoli Internet Services Manager directly, through well-known interfaces. In this model, iTk object stubs are contained in the third party application if RMI is used. Otherwise, the business logic server code will run in the same JVM as the third party application.
11.3 iTk classes
iTk is a Java package, iTk.jar. This package contains all the iTk classes. These classes can be classified into:
1. Core Classes: classes for iTk architecture.
2. iTk Business Objects: provides the business level functionality, for instance, subscriber, account, realm, deal, etc.
11.3.1 Core classesFigure 148 on page 273 shows the relations between the objects.
272 Introducing Tivoli Personalized Services Manager 1.1
Figure 148. iTk core classes structure
The iTk permits the integration of applications without knowing the structure of the database tables. Some examples of what the iTk core classes do are:
Chapter 11. Integration Toolkit 273
• Manage TSM Transactions. The action of creating a new subscriber is represented as one transaction. Because there are several database updatesm, if any fail, the database rolls back to avoid corruption.
• Connect to the database.
• Generate SQL commands dynamically.
• Providing a common interface to retrieve data.
• Utility function as debug or trace.
• Validate values set by an application.
• Manage exceptions.
There are objects oriented to transactions in the database, such as Transaction, TransactionConfig, TransactionFactory, TxCursor, TxException, and TxWhereClause. These classes are not accessible to the applications, and are only explained to understand the architecture:
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
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
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
Chapter 12. Device Manager
In this chapter we give an introduction of the Device Manager feature on TPSM. For additional information about installation and configuration, please refer to the IBM Redbook Pervasive Device Management, using Tivoli Personalized Services Manager, SG24-6027.
12.1 Overview
Device Manager is software that helps service providers manage their subscribers’ devices. In this chapter, the term ‘devices’ means information appliances, such as personal digital assistants (PDAs), handheld PCs, subnotebooks, smartphones, wireless access protocol (WAP) devices, set-top boxes, in-vehicle information systems, and other emerging devices for pervasive computing. You use the Device Manager as a part of Tivoli Personalized Services Manager (TPSM). The Tivoli Personalized Services Manager provides a completely integrated infrastructure of software components for internet service provisioning.
The purpose of Device Manager is to extend the functionality of the required subscription manager product to include management of devices and their related resources, like device application software. Device Manager must work in conjunction with either Tivoli Personalized Services Manager or another subscription manager product whose enrollment application meets the requirements.
Device Manager also requires a relational database. All job and device information is stored in tables in this database. The relational database is a required product, not a component. The subscription manager product and Device Manager share the same database.
Device Manager uses Java technology. Its servers run on IBM AIX operating system or Sun Solaris environments. It uses a global, relational database for data storage. UDB and Oracle8 are supported with DMS v1.1. Its administration clients run in Microsoft Windows operating system environments, where the Device Manager console for administrators is deployed.
Device Manager can be installed as a single-server environment or, for larger user and device numbers, as a multi-server environment with a network dispatcher as the front end. Using a network dispatcher as a load balancer, you can keep scalability and high availability for a number of Device Manager servers.
© Copyright IBM Corp. 2001 277
12.2 Device Manager on TPSM
The Device Manager feature on TPSM provides a flexible framework and set of services for managing a subscriber's devices. Device vendors can extend the system's framework to enable their devices to be managed by the Tivoli Personalized Services Manager (Figure 149). The Tivoli Personalized Services Manager provides a wide range of subscriber device management features, including:
• Enrolling subscribers and their devices
• Distributing software to the device
• Updating device configuration remotely
• Listing the devices owned by a user
• Updating restpages (startup pages) for screenphones
Figure 149. Device Manager on TPSM
12.3 Device Manager Components
Device Manager consists of six components:
• Device Manager server
278 Introducing Tivoli Personalized Services Manager 1.1
• Device plug-ins
• Device management server API
• Device Manager database
• Device management API
• Device Manager console
We describe the functions of each component in this section.
12.3.1 Device Manager 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
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
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
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
• 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
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
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
• 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
• 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
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
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
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
Appendix A. Special notices
This publication is intended to help people to understand the concepts and implementations of Tivoli Personalized Services Manager. The information in this publication is not intended as the specification of any programming interfaces that are provided by Tivoli Personalized Services Manager V1.1 or Tivoli Internet Services Manager V1.1. See the PUBLICATIONS section of the IBM Programming Announcement for ?Tivoli Personalized Services Manager V1.1 or Tivoli Internet Services Manager V1.1for more information about what publications are considered to be product documentation.
References in this publication to IBM products, programs or services do not imply that IBM intends to make these available in all countries in which IBM operates. Any reference to an IBM product, program, or service is not intended to state or imply that only IBM's product, program, or service may be used. Any functionally equivalent program that does not infringe any of IBM's intellectual property rights may be used instead of the IBM product, program or service.
Information in this book was developed in conjunction with use of the equipment specified, and is limited in application to those specific hardware and software products and levels.
IBM may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to the IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independently created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact IBM Corporation, Dept. 600A, Mail Drop 1329, Somers, NY 10589 USA.
Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee.
The information contained in this document has not been submitted to any formal IBM test and is distributed AS IS. The use of this information or the implementation of any of these techniques is a customer responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. While each item may have been reviewed by IBM for accuracy in a specific situation, there is no guarantee
© Copyright IBM Corp. 2001 291
that the same or similar results will be obtained elsewhere. Customers attempting to adapt these techniques to their own environments do so at their own risk.
Any pointers in this publication to external Web sites are provided for convenience only and do not in any manner serve as an endorsement of these Web sites.
The following terms are trademarks of the International Business Machines Corporation in the United States and/or other countries:
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
SET, SET Secure Electronic Transaction, and the SET Logo are trademarks owned by SET Secure Electronic Transaction LLC.
Other company, product, and service names may be trademarks or service marks of others.
Appendix A. Special notices 293
294 Introducing Tivoli Personalized Services Manager 1.1
Appendix B. Related publications
The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this redbook.
B.1 IBM Redbooks
For information on ordering these publications see “How to get IBM Redbooks” on page 297.
• Tivoli Personalized Services Manager Device Manager 1.1: Pervasive Device Management, SG24-6027
• An Introduction to IBM WebSphere Everyplace Suite Version 1.1, SG24-5995
• Database Performance on AIX in DB2 UDB and Oracle Environments, SG24-5511
• IBM HTTP Server Powered by Apache on RS/6000, SG24-5132
• WebSphere Application Servers: Standard and Advanced Editions, SG24-5460
• IBM WebSphere Performance Pack: Load 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
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
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
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
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
file package Describes which files and directories to distribute and how to distribute them.
file package definition file An ASCII file that identifies the contents and characteristics of a file package.
File Transfer Protocol (FTP) The protocol used for sending files over the network.
FTP See File Transfer Protocol.
GUI Graphical User Interface.
HACMP High Availability Cluster Multi-Processing.
HotSync A Palm function to do two-way synchronization of records between your handheld and your computer. Changes that you make on your handheld or your computer are updated on both platforms after a HotSync operation. The HotSync operation only synchronizes the changed portions of data, reducing HotSync time.
HTTP See Hyper Text Transmission Protocol.
Hyper Text Transmission Protocol (HTTP) The communications protocol used to connect to servers on the World Wide Web. Its primary function is to establish a connection with a Web server and transmit HTML pages to the client browser.
IBM International Business Machines.
IMAP See Internet Message Access Protocol.
Integrated Services Digital Network (ISDN) An international communications standard for sending voice, video, and data over digital telephone lines and normal telephone wires.
Internet Message Access Protocol (IMAP) A protocol for retrieving e-mail messages.
Internet screenphone A telephone-like appliance with a built-in display screen that may be used to call up Internet sites quickly.
Internet Service Provider (ISP) Offers services on the Internet, such as connection services.
ISDN See Integrated Services Digital Network.
ISP See Internet Service Provider.
iTk Tivoli Internet Services Manager Integration Toolkits.
Java A high-level programming language developed in 1991 by Sun Microsystems that works on virtually any computer. Unlike HTML, which is a document display format that is continually improved to make it do more, Java is a full-blown programming language like C and C++. It allows for the creation of sophisticated client/server applications to be developed for the Web and for intranets.
Java Database Connectivity (JDBC) A Java API that allows Java programs to communicate with different database management systems in a platform-independent manner. Database vendors provide JDBC drivers for their platforms that implement the API for their database, allowing the Java developer to write applications to a consistent API no matter which database is used.
Java Development Kit (JDK) A software development kit (SDK) for producing Java programs.
JDBC See Java Database Connectivity.
JDK See Java Development Kit.
kiosk services Solutions for business center service providers such as hotel chains, airports, and office service franchises that offer document services (storing, reproduction, and distribution) through shared access devices in public spaces.
LAN See Local Area Network.
LDAP See Lightweight Directory Access Protocol.
Lightweight Directory Access Protocol (LDAP) A set of protocols for accessing information directories. LDAP is based on the X.500 protocol, but supports TCP/IP, which is necessary for Internet access. Because it's a simpler version of X.500, LDAP is sometimes called X.500-lite.
Local Area Network (LAN) A computer network that spans a relatively small area, such as a building or a group of buildings.
meta file definition file An ASCII file that provides software distribution properties for the
300 Introducing Tivoli Personalized Services Manager 1.1
job. It also has a numbered application stanza, [Applicationn], for each application package in the software distribution job.
NetVista The IBM NetVista™ system includes all-in-one, legacy-free, traditional desktops and thin clients to provide a full range of computing solutions for your business or home.
Palm OS platform A popular operating system for Palm and other handheld devices, designed by Palm specifically for information management.
Palm Pilot One of the most popular brands of PDAs, which uses Palm OS provided by Palm, Inc. Nowadays, 3Com, IBM, Sony, and some other vendors sell original Palm Pilot devices.
Palm OS resource database Commonly referred to as a PRC (Palm Resource). A PRC can exist as a file on the host computer (that is, a PC or a Macintosh) and is commonly referred to as a PRC file. A PRC contains database header information as well as individual resource records in the database itself.
Palmscape Palmscape is a Web browser for PDA. Palm version of Palmscape works on the Palm OS 3.0 and above.
PAP See Password Authentication Protocol.
Password Authentication Protocol (PAP) The most basic form of authentication in which a user's name and password are transmitted over a network and compared to a table of name-password pairs.
PDA See Personal Digital Assistant.
PDB PDB files contain database records that are used by Palm OS to store the application data. They have features unique to the Palm OS.
Personal Digital Assistant (PDA) A small handheld device that offers functions such as address storage, calendar, and e-mail. This mobile device can be synchronized with desktop PCs.
Point-to-Point Protocol (PPP) A data link protocol that provides dial-up access over several lines.
POP See Post Office Protocol.
Portal Toolkit (pTk) A toolkit that features a Multi-device portal engine thata supports web devices such as Win CE based PDAs, screenphones, and WAP devices as well as PCs. It also features a User Preference API, which allows user and user group profiling.
Post Office Protocol (POP) A protocol used to retrieve e-mail from a mail server.
PPP See Point-to-Point Protocol.
PRC Palm Resource. See Palm OS resource database.
proxy A proxy server is configured to manage network traffic and to protect your network.
PSTN See Public Switched Telephone Network.
PTF Problem temporary fix.
pTk See Portal Toolkit.
Public Switched Telephone Network (PSTN) The international telephone system based on copper wires carrying analog voice data. This is in contrast to newer telephone networks based on digital technologies such as ISDN and FDDI.
RADIUS Remote Access Dial-In User Service.
RAM disk Refers to RAM that has been configured to simulate a disk drive. You can access files on a RAM disk as you would access files on a real disk.
RAS Short for Reliability, Availability, Serviceability. See Remote Access Services.
Realm Realms are a division of the subscriber name-space that allow the ISP to divide its Internet provisioning services, effectively creating a set of “Virtual ISPs.”
Remote Access Services (RAS) A feature built into Windows NT that enables users to log into an NT-based LAN using a modem, X.25 connection, or WAN link.
screenphone See Internet screenphone.
servlets Java classes that run on Web servers to provide dynamic HTML content to clients. They take as input the HTTP request from the client and output dynamically generated HTML. For more information on servlets, see
301
http://www.software.ibm.com/ebusiness/pm.html#Servlets
Simple Mail Transfer Protocol (SMTP) A protocol for sending e-mail messages between servers.
SM See Subscription Manager.
smart phone Enables connections to the Internet or Lotus Notes network so that users can access e-mail, faxes, voice mail, Web pages, and other files. It also has the potential to connect to a speech recognition server by phone, which would allow a user to dictate notes or responses and then see the recognized text as it is returned from the server.
SMTP See Simple Mail Transfer Protocol.
Solaris A UNIX-based operating environment developed by Sun Microsystems. Originally developed to run on Sun's SPARC workstations, it now runs on many workstations from other vendors. Solaris includes the SunOS operating system and a windowing system (either Open Windows or CDE).
SQL See Structured Query Language.
SSL Secure Sockets Layer. A protocol for transmitting private documents securely via the Internet.
Structured Query Language (SQL) A standard set of statements used to manage information stored in a database. By using these statements, users can add, delete, or update information in a table, request information through a query, and display the result in a report.
Subscription Manager (SM) A feature of the Tivoli Internet and Personalized Services Manager: 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
XML See eXtensible Markup Language.
303
304 Introducing Tivoli Personalized Services Manager 1.1
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
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
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
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
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
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
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
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
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
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
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
316 Introducing Tivoli Personalized Services Manager 1.1
© 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/
(0.5” spine)0.475”<->0.875”
250 <-> 459 pages
Introducing Tivoli Personalized Services Manager 1.1
®
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.