Front cover Draft Document for Review November 10, 2005 2:05 pm REDP-3922-00 System Integrators Guide: Integration into Service Provider Scenarios Explore the offerings that implement a subset of SPDE Understand integration into service provider environments Walk through integration scenarios James Chamberlain Alexandra Thomas Ruddy Kurniawan David Quenzler ibm.com/redbooks Redpaper Draft Document for Review November 10, 2005 2:05 pm 3922edno.fm International Technical Support Organization System Integrators Guide: Integration into Service Provider Scenarios November 2005 3922edno.fm Draft Document for Review November 10, 2005 2:05 pm Note: Before using this information and the product it supports, read the information in “Notices” on page v. First Edition (November 2005) This edition applies to Version 5.0 of WebSphere Everyplace Service Delivery. This document created or updated on November 10, 2005. © Copyright International Business Machines Corporation 2004. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Draft Document for Review November 10, 2005 2:05 pm 3922TOC.fm Contents Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .v Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii The team that wrote this Redpaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x Chapter 1. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Subscription Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi 1.2 Scenario components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii 1.3 Setting up the environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii 1.3.1 WebSphere Everyplace Device Manager Installation . . . . . . . . . . . . . . . . . . . . . . xiii 1.3.2 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii 1.3.3 Device Manager Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii 1.3.4 Device Manager Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii 1.4 Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi 1.4.1 Profile Based Job Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi 1.4.2 WebSphere Everyplace Device Manager utilization of a WebSphere Everyplace Subscription Manager interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi 1.4.3 Targeting a WebSphere Everyplace Device Manager job to WebSphere Everyplace Subscription Manager subscribers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii 1.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv Chapter 2. Integrating WebSphere Everyplace Server for Telecom with WebSphere Everyplace Subscription Manager and WebSphere Everyplace Device Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii 2.2 Scenario components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxviii 2.2.1 WebSphere Everyplace Server for Telecom overview . . . . . . . . . . . . . . . . . . . .xxviii 2.2.2 What is Parlay? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxviii 2.2.3 Supported gateways & simulators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix 2.3 Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix 2.3.1 Presence and availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix 2.3.2 Integrating WebSphere Everyplace Mobile Portal and WebSphere Everyplace Server for Telecom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix 2.3.3 Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx 2.3.4 Leverage WebSphere Everyplace Server for Telecom Parlay applications for select WebSphere Everyplace Device Manager and WebSphere Everyplace Subscription functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx 2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxvii Chapter 3. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Connection Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxix 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxix 3.2 Scenario components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xl 3.2.1 Changes required on the WebSphere Everyplace Connection Manager gateway . xli 3.2.2 Changes required on the WebSphere Everyplace Device Manager server . . . . . . xli © Copyright IBM Corp. 2004. All rights reserved. iii 3922TOC.fm Draft Document for Review November 10, 2005 2:05 pm 3.3 Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlii 3.3.1 Bootstrap jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlii 3.3.2 Notification jobs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliii 3.4 WebSphere Everyplace Device Manager job matrix . . . . . . . . . . . . . . . . . . . . . . . . . . xlv 3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlvi Chapter 4. Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlvii 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlvii 4.2 Integration components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlviii 4.2.1 WebSphere voice components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlviii 4.2.2 WebSphere Everyplace Mobile Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlix 4.2.3 Architecture diagram of integrated components . . . . . . . . . . . . . . . . . . . . . . . . . . . . l 4.2.4 Runtime client device identification by the integrated system. . . . . . . . . . . . . . . . . lii 4.2.5 Mobile access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . liv 4.3 Installation and configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lviii 4.3.1 System requirements for the integrated components . . . . . . . . . . . . . . . . . . . . . . lviii 4.3.2 Installation roadmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lix 4.3.3 Configuration and customization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lx 4.4 Development platform for the integrated components . . . . . . . . . . . . . . . . . . . . . . . . . lxiii 4.4.1 XDIME and VoiceXML markup support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxiii 4.4.2 MCS tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxv 4.4.3 Call Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxvi 4.5 The team that wrote this Redpaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxvii Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxix Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxxi IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxxi Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxxi How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxxiii Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxxiii iv System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922spec.fm Notices This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described 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: IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A. The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. COPYRIGHT LICENSE: This information contains sample application programs in source language, which illustrates programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy, modify, and distribute these sample programs in any form without payment to IBM for the purposes of developing, using, marketing, or distributing application programs conforming to IBM's application programming interfaces. © Copyright IBM Corp. 2004. All rights reserved. v 3922spec.fm Draft Document for Review November 10, 2005 2:05 pm Trademarks The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: Redbooks (logo) AIX 5L™ AIX® Cloudscape™ Domino® DB2® ™ Everyplace® HACMP™ IBM® Lotus® MQSeries® QuickPlace® Redbooks™ RDN™ RS/6000® Sametime® Tivoli® WebSphere® The following terms are trademarks of other companies: ThinkPad® and NetVista® are a registered trademarks of Lenovo in the United States, other countries, or both. OSGi™ is a trademark of The OSGi Alliance in the United States and other countries. Palm® is a registered trademark of Palm, Inc. in the United States, other countries, or both. EJB, Java, Java Naming and Directory Interface, JavaServer, JDBC, JDK, JSP, JVM, J2EE, Solaris, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft, Windows, Win32, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. Linux™ is a trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. vi System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922pref.fm Preface This IBM® Redpaper helps you plan, implement, and perform intra-family integration a family of offerings that implement a subset of the IBM Service Provider Delivery Environment (SPDE), which is a reference architecture that defines a consistent delivery and management platform for services, applications, and content across multiple access networks and devices. Service providers can choose to implement and integrate all or parts of SPDE with their existing platforms. The information in this redpaper contains examples and scenarios showing ways to integrate the following offerings: WebSphere® Everyplace® Subscription Manager WebSphere Everyplace Device Manager. WebSphere Everyplace Server for Telecom WebSphere Everyplace Connection Manager Certain combinations of these offerings integrate well and other combinations require a fair amount of planning and work. What this Redpaper is, is a tool to help you ascertain if integrating a particular combination of offerings makes sense for your unique service provider environment. What this Redpaper is not, is a detailed installation guide for the respective products. The product Information Centers provide are an excellent source for planning and installation. The goal of this Redpaper is to help you decide how well certain combinations of products would fit within your environment. We coach you on possible ways of integrating these products. A basic knowledge of wireless, networking, portal, and web technologies is assumed. © Copyright IBM Corp. 2004. All rights reserved. vii 3922pref.fm Draft Document for Review November 10, 2005 2:05 pm The team that wrote this Redpaper This Redpaper was produced by a team of specialists from around the world working at the International Technical Support Organization, Raleigh Center. Figure 0-1 The IBM Redpaper team (left to right: Ruddy Kurniawan, Alexandra Thomas, James Chamberlain, David Quenzler, and Shunguo Yan-not pictured) James Chamberlain is a Senior Software Engineer and certified Senior IT Specialist. He is a project leader at the ITSO, Raleigh Center. He has over 24 years experience in the IT industry and specializes in pervasive computing technologies. His areas of expertise include e-commerce, pervasive computing, portals, AIX®, Linux®, and Java™ programming. He also architects, designs, and develops solutions using J2EE™, XML, Web Services, and IBM software products including WebSphere and DB2®. Before joining the ITSO, James worked for IBM Global Services on e-commerce system development for IBM Business Partners. He majored in Computer Science at Iowa State University. David Quenzler joined the IBM RS/6000® SP System Test group in 1997. He is an IBM Certified Advanced Technical Expert - RS/6000 AIX and works primarily with runs pertaining to High Availability, SAN, Databases and Linux. Today, he is a Software Engineer for the IBM Linux Technology Center. David holds a BS in Computer Science from the University of Central Florida. Shunguo Yan is a Staff Software Engineer in the Application and Integration Middleware (AIM) division of IBM software group in Austin. He has more than 8 years of experience in object-oriented analysis and design, application integration, and software implementation of industrial specifications. He holds a master degree in Computer Science. His areas of expertise include architecture, design, and development of integrated solutions to various viii System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922pref.fm industries using J2EE, XML, Web Services, and software products from IBM and other companies. Alexandra Thomas is an IT Architect for IBM Business Consulting Services in Melbourne, Australia. She has several years experience in the delivery of software integration and eBusiness solutions. Alexandra holds an honors degree in Information Technology with majors in Software Engineering, Computer Science and Information Management. Ruddy Kurniawan an IT Specialist with Global e-business Transformation (GeT) group in IBM Singapore. He has more than 8 years of working experience in Information Technology area. His area of expertise include WebSphere Portal installation and administration, Lotus® Domino®, SameTime, QuickPlace® and Windows® operating system. He is a Certified Lotus Professional and Microsoft® Certified System Engineer. He holds a Bachelor Degree in Information Technology from Curtin University of Technology of Australia. Thanks to the following people for their contributions to this project: Benson Chen, technical consultant IBM Pervasive Computing Division Kim Foster, reviewer IBM Sales & Distribution WebSphere Portal Technical Sales Many thanks to the following IBM people for their assistance. Lenore Ramm Mike Seedorf Charles Le Vay Mart Nuttall Tony Wrobel Dale Chamberlain Scott Broussard Gary Craig Robert Sager Dave Heller Lei Lu Dave Pierson Don Watson And a specials thanks to our ITSO support staff at the International Technical Support Organization, Raleigh Center: Margaret Ticknor Jeanne Tucker Tamika Barrow Linda Robinson Thanks to our ITSO management: Jere Cline And a special thanks to our IBM Pervasive Computing sponsor: Mary Fisher Preface ix 3922pref.fm Draft Document for Review November 10, 2005 2:05 pm Become a published author Join us for a two- to six-week residency program! Help write an IBM Redbook dealing with specific products or solutions, while getting hands-on experience with leading-edge technologies. You'll team with IBM technical professionals, Business Partners and/or customers. Your efforts will help increase product acceptance and customer satisfaction. As a bonus, you'll develop a network of contacts in IBM development labs, and increase your productivity and marketability. Find out more about the residency program, browse the residency index, and apply online at: ibm.com/redbooks/residencies.html Comments welcome Your comments are important to us! We want our papers to be as helpful as possible. Send us your comments about this Redpaper or other Redbooks™ in one of the following ways: Use the online Contact us review redbook form found at: ibm.com/redbooks Send your comments in an email to: redbook@us.ibm.com Mail your comments to: IBM Corporation, International Technical Support Organization Dept. HZ8 Building 662 P.O. Box 12195 Research Triangle Park, NC 27709-2195 x System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch03.fm 1 Chapter 1. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Subscription Manager 1.1 Introduction This chapter describes integration scenarios related to WebSphere Everyplace Device Manager and WebSphere Everyplace Subscription Manager including: WebSphere Everyplace Device Manager utilization of a WebSphere Everyplace Subscription Manager interface. Targeting a WebSphere Everyplace Device Manager job to WebSphere Everyplace Subscription Manager subscribers. Subscription management and device management features used to bundled as the Tivoli® Personalized Services Manager. © Copyright IBM Corp. 2004. All rights reserved. xi 3922ch03.fm Draft Document for Review November 10, 2005 2:05 pm 1.2 Scenario components This Redpaper primarily focuses on WebSphere Everyplace Device Manager with respect to integration with WebSphere Everyplace Subscription Manager. Figure 1-1 shows the various components within WebSphere Everyplace Device Manager. Figure 1-1 WebSphere Everyplace Device Manager Overview 1.3 Setting up the environment We recommend not enabling WebSphere Application Server Java2 security. Enabling WebSphere Application Server Java2 security turned out to be a problem because we used the Lightweight Directory Access Protocol (LDAP) for authentication. Our LDAP user ID strings were greater than 30 characters, which the Customer Care and Self Care signon would not accept because of the length. However, Device Manager does allow enrollment with long LDAP user ID strings. We found that: enabling Java2 security required that the complete LDAP name be used to log into the WebSphere Application Server Administrative console. stopServer.sh with Java2 enabled required the complete LDAP identifier. xii System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch03.fm disabling Java2 security allowed logging into the Administrative Console using the LDAP shortname. stopServer.sh without Java2 security allowed the LDAP shortname. When enabling WebSphere Application Server security, click Enable Security and be sure to deselect Enable Java2 security. 1.3.1 WebSphere Everyplace Device Manager Installation This section describes some of the issues we worked through as part of WebSphere Everyplace Device Manager installation. Pre-Installation checks Verify that DB2 is installed and running on the Device Manager server. We used DB2 V8.1 (32-bit) plus Fix Pack 6 WebSphere Application Server V5.0 install on AIX V5.2 Note: See Installing WebSphere Application Server v5.0.x on AIX V5.2 http://www.ibm.com/support/docview.wss?rs=180&context=SSEQTP&uid=swg24004726 We recommend that the IBM HTTP Server be installed by the WebSphere installer. 1. Choose the custom install option – select IHS 1.3.26 – deselect Embedded Messaging After base install, verify that the httpd.conf file is appended with the following lines: LoadModule ibm_app_server_http_module \ /usr/WebSphere/AppServer/bin/mod_ibm_app_server_http.so WebSpherePluginConfig /usr/WebSphere/AppServer/config/cells/plugin-cfg.xml 2. Install WebSphere Application Server V5.0 Fix Pack 2 – Ensure that WebSphere Application Server and HTTP processes are not running prior to install. – Read the V5.0.2 release notes. They are useful! 3. Start the IBM HTTP Server 4. Start the WebSphere Application Server Note: On AIX V5, a web-based system management utility called, WebSM, uses the 9090 port in /etc/services. This conflicts with the WebSphere Administration Console and will prevent the WebSphere Application Server from starting. Change the wsmserver entry in /etc/services to another number and refresh the inetd subsystem. Restart WebSphere Application Server. Sign in to IBM Support and navigate to this page for the tip: http://www.ibm.com/support/entdocview.wss?uid=swg21140807 WebSphere Everyplace Device Manager installation A response file may be used to install WebSphere Everyplace Device Manager. Refer to the Information Center for details. Chapter 1. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Subscription Manager xiii 3922ch03.fm Draft Document for Review November 10, 2005 2:05 pm Here are the basic installation steps to follow: 1. Ensure that the users and groups referenced by the installer already exist. The Device Manager database user should have administrator privileges. 2. Make sure there is plenty of room in the file systems where the Device Manager databases will reside (by default, the install process creates /db/db2 and /dmsdb). Placing these databases in the root (/) file system is not recommended. 3. DB2, WebSphere, and the IBM HTTP Server must be running. 4. Ensure that WebSphere security is turned off prior to install. If you are prompted for a password when logging into the WebSphere Administrative Console, security is still enabled. See the Information Center for information on how to disable security. 5. Verify that the install scripts are executable (our installaix.sh script as supplied was not executable). If necessary, change to the install directory and execute the following command: chmod +x *.sh *.bat *.bin *.exe 6. ./installaix.sh starts the Tivoli Device Manager Version V1.5 Installer. Output is logged to /tmp, /tmp/dms_top and /usr/TivDSM15 Follow the prompts and populate the fields with the appropriate information Check the WebSphere Everyplace Device Manager build level with the following command: cat $DMS_HOME/bin/data/Build.name Post Installation checks 1. Re-verify that the IBM HTTP Server, DB2, and the DMS_AppServer are running on the Device Manager server. 2. Verify that the device classes and job types are registered. The $DMS_HOME/bin/deviceclass.sh -list command should display information about the following classes as shown in Example 1-1: Example 1-1 deviceclass.sh -list # cd /usr/TivDMS15/bin # ./deviceclass.sh -list [YOU HAVE NEW MAIL] Updated trace mask to: TYPE_ERROR_EXC TYPE_LEVEL1 Device Class - Palm --------------------------------------------Main Java(R) class - com.tivoli.dms.plugin.palm.Palm Enrollment URL - http://<wedm_server>:80/dmserver/DeviceEnrollmentServlet Version - 1.5 Description Auto Device Naming - false Device Attribute Table Notification Type Device Class - Wince --------------------------------------------Main Java(R) class - com.tivoli.dms.plugin.win.wince.Wince Enrollment URL - http://<wedm_server>:80/dmserver/DeviceEnrollmentServlet Version - 1.5 Description Auto Device Naming - true Device Attribute Table - xiv System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch03.fm Notification Type Device Class - BaseSyncMLDM --------------------------------------------Main Java(R) class - com.tivoli.dms.plugin.syncmldm.BaseSyncMLDM Enrollment URL Version - 1.5 Description Auto Device Naming - false Device Attribute Table - SYNCML_DEVICE Notification Type - WAPPushv12 Device Class - SampleOSGi --------------------------------------------Main Java(R) class - com.tivoli.dms.plugin.syncmldm.sampleOSGi.SampleOSGi Enrollment URL - http://<wedm_server>:80/dmserver/DeviceEnrollmentServlet Version - 1.5 Description Auto Device Naming - false Device Attribute Table - SYNCML_DEVICE Notification Type Device Class - Win32 --------------------------------------------Main Java(R) class - com.tivoli.dms.plugin.syncmldm.win32.Win32 Enrollment URL - http://<wedm_server>:80/dmserver/DeviceEnrollmentServlet Version - 1.5 Description Auto Device Naming - false Device Attribute Table - SYNCML_DEVICE Notification Type - 3. Ensure that the plugins for Palm and Windows CE are registered. Example 1-2 Ensuring that the plugins for Palm and Windows CE are registered # cd /usr/WebSphere/AppServer/logs/DMS_AppServer # grep -w registered\\.$ SystemOut.log | grep -w dms SystemOut O DeviceClass: com.tivoli.dms.plugin.palm.Palm registered. SystemOut O DeviceClass: com.tivoli.dms.plugin.win.wince.Wince registered. 4. Check the following Uniform Resource Locators (URLs): Note: The web browser must be at a supported level. http://wedm_server/dms/docs/en/InfoCenter http://wedm_server/dmserver/PalmServlet (should display a blank screen) http://wedm_server/dmserver/WinceServlet (should display error 400) 5. Enable WebSphere Security. If you decide to implement Java2 security, add the DB2 entries to the /usr/WebSphere/AppServer/config/cells/cell/nodes/node/app.policy file using the Java policytool Graphical User Interface (GUI). For example: find /usr -fstype jfs[2] -name policytool -print Chapter 1. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Subscription Manager xv 3922ch03.fm Draft Document for Review November 10, 2005 2:05 pm Note: The DB2 example listed in the Information Center has a typographical error. Ensure the line containing java.lang.RuntimePermission also contains an asterisk following loadLibrary: For a DB2 database, use the following policy statements: grant codeBase "file:C:/Program Files/SQLLIB/java/db2java.zip" { permission java.util.PropertyPermission "*", "read"; permission java.lang.RuntimePermission "loadLibrary.*"; }; Example 1-3 The app.policy entries for DB2 and Java2 grant codeBase "file:/usr/opt/db2_08_01/java/db2java.zip" { permission java.util.PropertyPermission "*", "read"; permission java.lang.RuntimePermission "loadLibrary.*"; }; Problem When starting the DMS_AppServer, SystemOut.log showed the following: SystemOut O Updated trace mask to: TYPE_ERROR_EXC TYPE_LEVEL1 SystemOut O DeviceClass: com.tivoli.dms.plugin.palm.Palm registered. SystemOut O 2004.09.29 08:47:09.480 com.tivoli.dms.common.DBOperation executeQuery Tivoli Tivoli Web Gateway Device_Manager_Server <server_name> DYM2788E: Failed to establish a connection with the database. See nested exception for details. com.tivoli.dms.common.DMCommonException: DYM2788E: Failed to establish a connection with the database. See nested exception for details. : DYA1006E An unknown error occurred. : COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] SQL1224N A database agent could not be started to service a request, or was terminated as a result of a database system shutdown or a force command. SQLSTATE=55032 We found a DB2 workaround to a similar problem. The abstract is not exact, but the fix works: http://www.ibm.com/support/docview.wss?rs=71&org=SW&doc=1009742 On AIX V4.3.3 or later, DB2 will issue SQL1224N and the WebSphere administration server will fail with StaleConnectionException when attempting more than ten local, concurrent DB2 connections from a single process. The Java Development Kit (JDK™) V1.1.8 allows a maximum number of ten local, concurrent DB2 connections. JDK V1.2.2 allows a maximum of four local connections. JDK V1.3.0 allows a maximum of two local connections. Resolution As the DB2 instance owner db2set DB2ENVLIST=EXTSHM Add the following lines to sqllib/userprofile (modifications to db2profile may be overwritten in fix packs): export EXTSHM=ON Search the DB2 Information Center for EXTSHM to see additional information. The DMS_AppServer should start without error. xvi System Integrators Guide: Integration into Service Provider Scenarios 3922ch03.fm Draft Document for Review November 10, 2005 2:05 pm Using the default subscription manager Device Manager requires the users of the Device Manager applications (console, Customer Care, and Self Care) to log in with a user ID and password. When Device Manager is installed, a default subscription manager implementation is created using hard-coded user IDs and passwords for each application. The default user IDs and passwords cannot be changed. The hard-coded values are: Table 1-1 Default subscription manager user IDs and passwords Application User ID Password Device Manager console dmadmin dmadmin Customer Care dmcsr dmcsr Self Care owner_name owner_name Note: For Self Care, owner_name is the name of the device owner. When the above user IDs and passwords are used, the authorization method returns a TRUE value. Also, when using the default subscription manager, the canOwnDevice and canConnectDevice methods always return a TRUE value, so an enrolled device is always authorized to run Device Manager jobs. With the default subscription manager, the membership in groups does not change. There is one group called TestGroup that contains one user called TestUser. Note: The default subscription manager should be used in test or non-production environments only. See the Information Center for information on implementing a custom subscription manager. 1.3.2 Documentation The WebSphere Everyplace Device Manager Information Center is available here: http://webserver/dms/docs/en/InfoCenter 1.3.3 Device Manager Console A ThinkPad notebook computer running Microsoft Windows 2000 was used to run the DMconsole application. DB2 Administrative Client V8.1 Fix Pack 6 (typical install) was also installed on the console laptop. Note: Choose the Typical installation when installing the DB2 Administrative Client. The typical install is recommended, a minimal install lacks needed files. Starting the Device Manager console Run DMconsole.bat to start the Microsoft Windows-based Device Manager Console GUI. Use the default username and password of dmadmin to log in. The Device Manager server can be specified by Internet Protocol (IP) address or fully qualified domain name. Chapter 1. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Subscription Manager 3922ch03.fm Draft Document for Review November 10, 2005 2:05 pm 1.3.4 Device Manager Agents The IBM Everyplace Win32® agent was installed on a NetVista desktop computer and the console laptop. The Win32 agent (see Appendix 1-2, “Win32 agent install” on page xviii) is actually IBM Everyplace Client. The Win32 agent is synonymous, in this case, with the OSGi agent. During the client install, supply the DMS Server Address when prompted. The DMS User ID and DMS User Password information is not required to complete the install. Figure 1-2 Win32 agent install Connecting to the WebSphere Everyplace Device Manager server for the first time On the Client Device, start the IBM Everyplace Client Device Agent Control Panel application or browse to: http://localhost:8080/osiagentservlet Please refer to Figure 1-3 on page xix for an example of the Win32 agent. xviii System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch03.fm Figure 1-3 The Win32 agent Interface Click Edit Account Configuration in the left-hand frame as shown in Figure 1-4 on page xx and supply the following information: Device User Name: uid=wedm1,ou=users,ou=itso,o=ibm,c=us (the LDAP user must be previously defined in WebSphere Everyplace Connection Manager) Device Password: (should match the WebSphere Application Server admin user) Server Password: (same as Device Password) Select the Default account option is checked and click Update Account. Chapter 1. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Subscription Manager xix 3922ch03.fm Draft Document for Review November 10, 2005 2:05 pm Figure 1-4 Win32 agent Edit Account Configuration Tip: Use the tail -f command on the DMS_AppServer SystemOut.log file on the Device Manager server node prior to connecting the Client Device to the Server. If the authentication information is incorrect, you will see exceptions in SystemOut.log. If the authentication information was valid, use the Device Manager console to query devices. The new device should be visible. Enroll the device (create an account): Use the Device Manager Console, query devices and right-click on the device you wish to enroll. Select properties. Fill in the SyncML Device Manager properties with the entries given to the Client Agent Device user name: uid=wedm1,ou=users,ou=itso,o=ibm,c=us Device password: (should match the WebSphere Application Server admin user) Server ID: server IP address Server Password: (same as Device Password) Click OK. Watch SystemOut.log for errors. Reconnect the mobile device to the Device Manager server. There should be no errors in SystemOut.log. xx System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch03.fm 1.4 Scenarios This section list some possible scenarios describing why you might want to integrate WebSphere Everyplace Device Manager with WebSphere Everyplace Subscription Manager. 1.4.1 Profile Based Job Management WebSphere Everyplace Device Manager supports Profile Based Job Management, which grants the customer the ability to run a subset of the jobs that are available for a device, based on some criteria. Using Profile-based job scheduling, the Device Manager server is instructed to use a particular scheduling profile for a particular class of device. A profile is a set of rules that determines what jobs can be run. For example: Don't run software distribution jobs for Palm devices on low bandwidth connections unless the job priority is greater than X. Don't run Inventory jobs on Windows CE devices unless the device is connected to a cradle. When creating a profile, consider the following factors: ConnectionType jobType jobPriority bandwidth_inBitsPerSecond roughBandwidthMetric_inMilliSeconds Note: connectionType and bandwidth_inBitsPerSecond are only useful for device agents and associated plugins that support them. The use of the profile may be disabled for all devices in a device class and/or for individual devices. 1.4.2 WebSphere Everyplace Device Manager utilization of a WebSphere Everyplace Subscription Manager interface A user’s ability to subscribe to a service requiring a software download must be restricted based on his device. For example, if a user is connecting using an OSA/SyncML device (which does not support WebSphere Everyplace Device Manager software distribution), subscriptions requiring software download should not be permitted. WebSphere Everyplace Subscription Manager might prompt a user to select from a list of devices which ones are allowed to receive subscribed content. Consider whether subscription and accounting should be per user or per device. If a subscription is allowed, logic should then create the appropriate software distribution job(s) as detailed in the next section. Chapter 1. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Subscription Manager xxi 3922ch03.fm Draft Document for Review November 10, 2005 2:05 pm 1.4.3 Targeting a WebSphere Everyplace Device Manager job to WebSphere Everyplace Subscription Manager subscribers This scenario details how to create, register, and deploy WebSphere Everyplace Device Manager packages and bundles to WebSphere Everyplace Subscription Manager subscribers. WebSphere Everyplace Device Manager software distribution WebSphere Everyplace Device Manager software distribution jobs target a single device, multiple devices in a device class or all devices in a device class. A named WebSphere Everyplace Subscription Manager user may own several WebSphere Everyplace Device Manager devices. WebSphere Everyplace Device Manager software distribution jobs are restricted by device class. Several software distribution jobs (one for each device class) must be created to push software to all devices owned by that user. WebSphere Everyplace Subscription Manager subscribers not having a supported device would not be able to receive WebSphere Everyplace Device Manager software. Note: Software distribution jobs are not applicable to OMA/SyncML devices. The number of software distribution jobs could be represented as: [(number of WebSphere Everyplace Device Manager device classes) - (number of WebSphere Everyplace Device Manager device classes that do not support software distribution )] x 2(number of WebSphere Everyplace Subscription Manager subscriptions requiring software distribution) The same software would need to be created as a package and a bundle. With that in mind, the steps involved in adding software applications to WebSphere Everyplace Device Manager are as follows: 1. Create a software package or OSGi bundle 2. Copy the package or bundle to a Web server location that is accessible by the Device Manager server. The Win32 agent is able to submit a Software List Update job upon request. All software applicable to a device class is displayed. 3. Register the software 4. Create a software distribution job Creating a software package or OSGi bundle A software distribution job sends software packages or OSGi bundles to devices depending on their device class. Software packages are applicable to Palm devices and Windows CE devices. OSGi bundles are applicable to OSGi devices and Windows 32 devices. Remember: Software distribution jobs are not applicable to OMA/SyncML devices. Software can be distributed to an individual device, several devices in the same device class, or all devices in a device class. xxii System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch03.fm Software can consist of files, images, databases, installation processes, native software, and other components. Device Manager does not maintain a library of software. Instead, the Device Manager database is used to store a list of URLs which point to software repositories on a Web server. Device Manager also stores other software-related information in its database. Information in the Device Manager database can be manipulated by the Device Manager console. Using a software package for software distribution To make a software package for a software distribution job, follow these steps: 1. Put the files to be distributed on a Web server. The Web server administrator can identify an appropriate directory, which must be accessible to the Device Manager server. 2. Prepare a package definition file for each application package or group of data files you are distributing. Place the package definition file into the same directory as the files you wish to distribute. 3. Prepare a meta package definition file for the software package. The meta package definition file references each of the package definition files that make up a software package. Place the meta package definition file into the same directory as the files you wish to distribute. Skip to Registering the software. Using an OSGi bundle for software distribution To make a software bundle for a software distribution job, follow these steps: 1. Determine the resource requirements and corresponding tuning for the OSGi bundle. 2. Determine the pre-and-post scripts to be run before and after the distribution of the OSGi bundle. 3. Determine the prerequisite bundles and services. 4. Create the OSGi bundle JAR file (Java interfaces and classes, a manifest file, and resource files). 5. Put the OSGi bundle on a Web server. The Web server administrator can identify an appropriate directory, which must be accessible to the Device Manager server. Registering the software The Device Manager console is used to register the software in the database. After the software package or OSGi bundle is prepared, it must be copied to a location on a Web server that is accessible by the Device Manager server. Record the URL for use when registering the software. Note: JAR files must be readable by the world or java.io.FileNotFoundException errors may appear in SystemOut.log. File permissions can be modified (if required) using the following command: chmod +r *.jar Device Manager uses the URL address to locate the software. The URL address must point to an existing meta package definition file or OSGi bundle. Device Manager parses the file or bundle to retrieve the software properties. Chapter 1. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Subscription Manager 3922ch03.fm Draft Document for Review November 10, 2005 2:05 pm Perform the following steps to register a new software package or bundle: 1. Start the Device Manager console application. 2. Select File →New Software from the main menu. The New Software Properties window is displayed. Click Help for a description of the fields. 3. Choose a Software type from the list of available options. 4. Type the URL for the software package or OSGi bundle. 5. Click Fetch to retrieve and display the software properties. After Fetch is clicked, the Software Type and URL fields become read-only. To prevent duplicate software, no two software packages or bundles can have identical information in all three Software name, Version, and Software type fields. At least one of these fields must be different for any two registered software packages or bundles. 6. To continue with the software registration, click Next. To exit without registering the software, click Cancel. 7. To make the software available for device class and job type combinations, highlight the corresponding table rows in the New Software Properties window. If no combinations are selected, the software is not available for any jobs. 8. Click OK to complete the software registration Additionally, we found that registering software could be done using the OSGiBundleTool.sh script. Once the bundle or package has been copied to an HTTP server, run the script. Supply the URL and the appropriate device class. For example: <DM_HOME>/bin/OSGiBundleTool.sh http://<web_server>/<location>/<file.jar> -d \ <device_class> Note: It is important to use the appropriate -d option for your device. Installing software from a device It is possible to install software from a device without creating a software distribution job. 1. Bring up the Device Agent console. For example: http://localhost:8080/osiagentservelet 2. Click Available Software 3. Refresh the list if necessary prior to selecting a software component from the list. If the software component has dependencies, those dependencies will be installed as well. 4. Click Install Software 5. Use the Device Manager console to verify that the software has been installed. Create the software distribution job Software can be distributed to an individual device, several devices in the same device class, or all devices in a device class. Remember: Software distribution jobs are not applicable to OMA/SyncML devices. To create a software distribution job, follow these steps: xxiv System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch03.fm 1. Select an individual device, several devices in the same device class, or all devices in a device class to receive the software distribution job. 2. Right-click and select Submit Job from the context menu. Click Next if shown the Target Devices window and a count of the number of target devices. 3. The Attributes window is displayed. Click Help for a description of the fields. For Job Type, choose Software Distribution from the menu of available options. The Notify target devices checkbox may or may not be available based on the notification policy and the device class. Customize any other settings if needed and click Next to continue. 4. Use the Job Parameters window to select software from the Software menu. If needed, click Add Group to bring up the Software menu. When distributing OSGi bundles, select Autostart as True to have the OSGi bundle automatically start after the software is distributed. Select Autostart as False to distribute the OSGi bundle without automatic startup. Click Next to continue. 5. Use the Submit Job Summary window to review and verify the job parameters. 6. Click OK to submit the job. If the job is submitted successfully, a message is displayed showing the Job ID and the number of eligible target devices. The Job ID can be used to do other tasks such as: View job history View upcoming jobs Exclude a device from jobs WebSphere Everyplace Device Manager has checkpoint and restart capabilities. Software distribution jobs that are interrupted will resume where they left off. Files previously copied to a device will not be resent to the device when the device reconnects. To verify that software has been distributed to the target device, you can either check to see if the Job ID has completed or right-click the device and select View Software. 1.5 Conclusion Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Subscription Manager is a complex endeavor requiring much planning. Many issues remain with respect to the integration of these two WebSphere Everyplace Service Delivery components. Is WebSphere Everyplace Subscription Manager subscription and billing per user or per device? How does WebSphere Everyplace Subscription Manager communicate to WebSphere Everyplace Device Manager that a device or devices is eligible for software distribution? How can a software package or bundle be targeted and restricted to a specific device? What are the HTTP server administrative implications, even presuming that WebSphere Everyplace Device Manager packages and bundles have been precreated? Chapter 1. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Subscription Manager 3922ch03.fm xxvi Draft Document for Review November 10, 2005 2:05 pm System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch04.fm 2 Chapter 2. Integrating WebSphere Everyplace Server for Telecom with WebSphere Everyplace Subscription Manager and WebSphere Everyplace Device Manager 2.1 Introduction This chapter describes integration scenarios related to WebSphere Everyplace Server for Telecom, WebSphere Everyplace Device Manager and WebSphere Everyplace Subscription Manager. Leverage WebSphere Everyplace Server for Telecom Parlay applications for select WebSphere Everyplace Device Manager and WebSphere Everyplace Subscription functions. © Copyright IBM Corp. 2004. All rights reserved. xxvii 3922ch04.fm Draft Document for Review November 10, 2005 2:05 pm 2.2 Scenario components WebSphere Everyplace Device Manager WebSphere Everyplace Subscription Manager WebSphere Everypace Server for Telecom This chapter will primarily discuss WebSphere Everyplace Server for Telecom. WebSphere Everyplace Server for Telecom V5.1 was not available at the time of this writing. 2.2.1 WebSphere Everyplace Server for Telecom overview The previous version: WebSphere Application Server for Telecom http://www.ibm.com/software/webservers/wast http://www.ibm.com/software/pervasive/ws_application_server_telcom WebSphere Everyplace Server for Telecom V5.1 includes: Bundled restricted versions of WebSphere Application Server and DB2 AIX, Solaris™ Operating System, and Linux platform support Parlay X V1.0 and V2.0 (partial) services Web Services infrastructure Security, statistics, message intercept, traffic management, management console Web Services front ends Location, terminal status, SMS, MMS, call control, payment, account management Telecom Web Services Toolkit WebSphere Studio Application Developer integrated toolkit Application development with Telecom Web Services access Integrated service simulation Web Services Server assembly for BCS 2.2.2 What is Parlay? Parlay is a collection of Application Programming Interfaces (APIs) that enable the integration of telecommunications networks with the Internet. Telecom applications can be made available to an Internet subscriber base. Conversely, Internet applications can be made available to a Telecom subscriber base. The keystones of this integration are WebSphere Everyplace Server for Telecom and the Parlay/OSA (Open Service Access) gateway. WebSphere Everyplace Server for Telecom Parlay applications integrate the Parlay application model with the J2EE programming model. The WebSphere Everyplace Server for Telecom Parlay X client application creation environment is based on WebSphere Studio Application Developer V5.1.2. Parlay capabilities include presence, availability and location. Presence - is a user online? Availability - the status of a user. Location - where is the user? The Parlay Gateway 1. Receives requests from the WebSphere Everyplace Server for Telecom Parlay application. 2. Performs the corresponding actions with the underlying telecommunications network. xxviii System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch04.fm 3. Notifies the WebSphere Everyplace Server for Telecom Parlay applications when significant real time events occur in the Telecommunications network. 4. Provides a set of Parlay services such as Call Control, Multiparty Call Control, and User Interaction. 5. Provides the set of Parlay Framework capabilities for security, flexibility, fault tolerance, and manageability. 6. Insulates Parlay applications from the details of the underlying voice and data network. White papers and information regarding the Parlay X specification can be found at the Parlay Group website: http://parlay.org See the Parlay X Web Services white paper for examples of how to obtain the location of a mobile device and how to send a Short Message Service (SMS) message. 2.2.3 Supported gateways & simulators Gateways – – – – – – – – – AePONA Causeway Parlay Gateway V2.1 Alcatel Parlay OSA Gateway V2.1 Ericsson SCS V2.0 Gateway Fujitsu Parlay Gateway Herit Open Service Platform Parlay Gateway jNETx PARLAY Gateway V2.1 Lucent MiLife ISG V3.0 Open API Solutions Framework V1.1 Telcordia Open Services Platform Simulators – Lucent MiLife ISG SDK V3.0 Simulator – Open API Solutions Application Test Suite V1.1 2.3 Scenarios A Service Provider might consider what it could offer based on a users presence, availability or location. 2.3.1 Presence and availability I’m in a meeting. I cannot take phone calls, but I can receive instant messages. Are my buddies online? If so, initiate a conference call with them. 2.3.2 Integrating WebSphere Everyplace Mobile Portal and WebSphere Everyplace Server for Telecom A pizza parlor sends an advertisement, coupon or thank-you to a caller’s mobile device. A salesman sends an electronic business card to the people he calls. Chapter 2. Integrating WebSphere Everyplace Server for Telecom with WebSphere Everyplace Subscription Manager and 3922ch04.fm Draft Document for Review November 10, 2005 2:05 pm 2.3.3 Location Applications can exploit location services for resource tracking, finding something, notification and actuation. I need to find: my buddies a date my shipment or package an ATM, hotel, restaurant, hospital or taxi an alternate route around a traffic jam car 54 I’m at the: shopping mall, send me an advertisement hotel or airport, check me in. toll booth, pay this toll 2.3.4 Leverage WebSphere Everyplace Server for Telecom Parlay applications for select WebSphere Everyplace Device Manager and WebSphere Everyplace Subscription functions. The power and value of WebSphere Everyplace Server for Telecom is its ability to interface WebSphere Everyplace Service Delivery e-business with the Public Switched Telephone Network (PSTN) and wireless telephony. WebSphere Everyplace Server for Telecom includes a sample Provisioning Web Console. This Provisioning Web front-end could be WebSphere Everyplace Subscription Manager. WebSphere Everyplace Server for Telecom components WebSphere Everyplace Server for Telecom Parlay applications use one or more Enterprise Java Beans (EJBs) to implement code which accesses the Parlay gateway. The Parlay Application Programming Interfaces (APIs) are provided as a Java ARchive (JAR) runtime library and conform to the Parlay 3 standard. These generated classes use the Common Object Request Broker Architecture (CORBA) to pass requests between the WebSphere Everyplace Server for Telecom Parlay application and the Parlay gateway. The WebSphere Everyplace Server for Telecom Parlay Application Mapping layer removes the need for application developers to learn CORBA before writing Parlay applications. Several WebSphere Everyplace Server for Telecom EJBs provide management and system services for Parlay applications and must be combined with Parlay Applications on deployment. – The ParlayConnector EJB™ manages contact and authentication with the Parlay gateway on behalf of the Parlay application. – The FrameworkAccess EJB allows WebSphere Everyplace Server for Telecom EJBs to access Parlay services on the gateway. – The Application Manager EJB is responsible for initializing, managing and terminating the lifecycle of managed objects within the WebSphere Everyplace Server for Telecom Parlay application environment. – The EventScheduler EJB is a WebSphere Everyplace Server for Telecom service which allows Parlay applications to create (and respond to) scheduled events., including wake-up calls or retry functions. xxx System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch04.fm – The DataPublisher EJB provides a standard interface for logging activities and events for offline processing. For example, a call forwarding application can long the result of each forwarding request it receives for a specific subscriber. Enterprise Application EJBs implement the non-Parlay aspects of applications, keeping business logic separate from Parlay functions. For example, Business Model EJBs can be used for account processing performed in response to a service provided to a subscriber by the Parlay application. A database, typically DB2, is required to manage subscriber data and other data related to the application. EJB containers access a database using Java DataBase Connectivity (JDBC™) and Structured Query Language (SQL). From a development perspective, the general sequence of events during application development are as follows 1. Creating a new Telecom EJB project also creates a WebSphere Everyplace Server for Telecom server project. The WebSphere Everyplace Server for Telecom server project must contain all EJBs required to run a Parlay application. Enterprise applications may include custom Business Logic EJBs. 2. A Utility project contains a set of libraries for performing standard tasks functions used by the Parlay application. 3. A Web Application project contains the objects which make up a provisioning interface. 4. All components of a Parlay application are combined into an Enterprise Application (EAR) project, although the Web application component may be deployed separately. 5. Java Naming and Directory Interface™ (JNDI) references must be defined so that each EJB can access JDBC connections and other bean properties. Each WebSphere Studio Application Developer project may need to configure one or more JNDI references depending on the resources it must access. 6. References to external data sources can be configured using WebSphere Studio Application Developer and are required if an application accesses a database. 7. An Enterprise ARchive (EAR) project can be deployed internally to the WebSphere Studio Application Developer WebSphere Test Environment for debugging purposes. 8. After debugging, the EAR can be deployed to a true WebSphere Application Server for final testing before being deployed to the production environment. Note: By developing separate sets of EJBs based on functional affinity, code reuse can be maximized. The Parlay Web Console is the WebSphere Everyplace Server for Telecom interface to the Parlay Server. Using the Parlay Web Console to stop the Parlay Server will properly terminate the connection to the Parlay Gateway. http://WEST_server:8080/ParlayWebConsole/ServerConsole In the case of WebSphere Everyplace Subscription Manager integration with WebSphere Everyplace Server for Telecom, Provisioning Web functions would be handled by the WebSphere Everyplace Subscription Manager front-end interface. A mobile user authenticated to WebSphere Everyplace Subscription Manager would see a web page similar to Figure 2-1 on page xxxii. Chapter 2. Integrating WebSphere Everyplace Server for Telecom with WebSphere Everyplace Subscription Manager and 3922ch04.fm Draft Document for Review November 10, 2005 2:05 pm Figure 2-1 A WebSphere Everyplace Subscription Manager example A portal to WebSphere Everyplace Server for Telecom function could be written in order to provide subscriber interface to Parlay functions. Customer Care would also benefit from a WebSphere Everyplace Server for Telecom portal that would allow a customer service representative to call an end user. WebSphere Everyplace Server for Telecom integration might be considered negligible for cell phones or other devices having native telephony function. Sample WebSphere Everyplace Server for Telecom integrations could allow WebSphere Everyplace Subscription Manager subscribers to: set an alarm or wake-up call call a customer service representative setup call forwarding make a phone call The WakeUpCall sample The WakeUpCall sample application and the provisioning database maintain a list of WakeUpCall events. The application sets up a timer. When the timer is triggered, the application sends a wake-up call to the user. Refer to Figure 2-2 on page xxxiii. xxxii System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch04.fm Figure 2-2 The Wake-up Call sample The following steps take place in the WakeUpCall sample 1. A subscriber enters information in the Provisioning Web page specifying a desired wake-up call. 2. The Wake Up Scheduler adds an entry in the Scheduler. 3. At the specified wake up time, the Scheduler fires an event back to the Wake Up Scheduler. 4. The Wake Up Scheduler tells the WakeUpCall bean to generate the call. 5. The call is sent to the Parlay Gateway which then calls the subscriber. The wake up message is delivered when the subscriber answers the telephone. 6. If there is no answer, a new event is scheduled for 1 minute after the no-answer event was received and processed. No answer processing varies slightly between the Generic Call Control (GCC) and Multi Party Call Control (MPCC) samples. In GCC, an application can request a specific no answer timeout duration for a call (WakeUpCall requests 15 seconds), however, if the gateway or simulator setting is less than this value, the shorter timeout will take precedence. In MPCC, there is no mechanism for requesting a specific timeout duration, and only the gateway timeout is in effect. The sample retries the call only once. The Call center sample The Call center sample accepts an incoming call and routes the call to an available operator as shown in Figure 2-3 on page xxxiv. Chapter 2. Integrating WebSphere Everyplace Server for Telecom with WebSphere Everyplace Subscription Manager and 3922ch04.fm Draft Document for Review November 10, 2005 2:05 pm Figure 2-3 The Call Center sample The flow of the call center sample is as follows: 1. The Call Center enables CallNotification for the provisioned numbers at the Parlay Gateway. 2. An operator logs in as an available operator through the Call Center Operator GUI. 3. When an incoming call arrives at the Gateway for the original number, notification is sent back to the Call Center. 4. The Call Center finds an available operator in the Provisioning database. 5. The call is sent to the Parlay Gateway with the available operator’s number. The telephone rings at the forwarded location. xxxiv System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch04.fm 6. If no operator is available, the call is placed on hold until an operator becomes available. The Call forwarding sample The Call forwarding sample allows a user to specify an alternate number for receiving calls. Please see Figure 2-4 on page xxxv. Figure 2-4 The Call Forwarding sample The following steps take place in the CallForwarding sample: 1. A subscriber types information in the Provisioning Web page specifying a number to which calls are to be forwarded. The Subscription tool sends a ChangeEvent to the CallForwarding EJB. 2. CallForwarding enables CallNotification for the specified numbers at the Parlay Gateway. 3. When an incoming call arrives at the Gateway for the original number, notification is sent back to CallForwarding. 4. CallForwarding gets the forwarding number from the Provisioning database. 5. The call is sent to the Parlay Gateway with the new number. The telephone rings at the forwarded location. Chapter 2. Integrating WebSphere Everyplace Server for Telecom with WebSphere Everyplace Subscription Manager and 3922ch04.fm Draft Document for Review November 10, 2005 2:05 pm The Web dial call sample The Web dial call sample (see Figure 2-5) allows a subscriber to initiate a call from the provisioning web page. The provisioning web page displays shows if the telephone was answered or not answered. Figure 2-5 The Web Dial Call sample The WebDialCall sample is not EJB-based. The following is a simplified description of the sample flow: 1. The subscriber, at the client side, enters a telephone number in the Provisioning Web page. When the subscriber clicks the Dial button, it passes the subscriber phone number and the entered phone number to the bean and toggles the calling status from Idle to Dialing. 2. The bean sets up an Hypertext Transfer Protocol (HTTP) Session, passes the subscriber phone number and the entered phone number to the Servlet and waits for a reply. 3. The servlet sets up a callback that sets a timer that expires and ends the call in 30 seconds if the call does not complete. If the gateway or simulator that WebDialCall is interfacing with has a no answer timeout less than the 30 second default timeout in WebDialCall, the shorter timeout will take precedence and the call will end in less than 30 seconds. If the call completes, it then uses the callback interface to connect both legs of the call. 4. The application initiates the call and routes to the source and the destination. 5. Responses for busy, no answer, or answer are sent back. 6. The callback interface returns the result of the call to the servlet. If both legs connect, it returns Answered. If either number is busy, it returns Busy. 7. The servlet updates the bean either with the result of the call or with No Answer, if the 15 second timer expires. 8. The result of the call is returned to the Provisioning Web which displays the result of the call. A Location sample Figure 2-6 on page xxxvii shows the Location sample application. Longitude and latitude coordinates are shown, along with the requested degree of accuracy. xxxvi System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch04.fm Figure 2-6 The Location sample Note the icons on the map. The three vehicles shown are examples of resource tracking. The mobile phone icon is a good example of how several Parlay capabilities can be integrated: presence, availability and location. 2.4 Conclusion Integrating WebSphere Everyplace Server for Telecom with WebSphere Everyplace Subscription Manager and WebSphere Everyplace Device Manager is a complex endeavor requiring much planning. Many issues remain with respect to the integration of these three WebSphere Everyplace Service Delivery components. However, the capabilities shown with respect to what WebSphere Everyplace Server for Telecom and Parlay applications can do give us a glimpse into the exciting future of pervasive computing. Chapter 2. Integrating WebSphere Everyplace Server for Telecom with WebSphere Everyplace Subscription Manager and 3922ch04.fm xxxviii Draft Document for Review November 10, 2005 2:05 pm System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch06.fm 3 Chapter 3. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Connection Manager 3.1 Introduction This Redpaper describes integration scenarios related to WebSphere Everyplace Device Manager and WebSphere Everyplace Connection Manager, specifically: Leveraging WebSphere Everyplace Connection Manager messaging for WebSphere Everyplace Device Manager notification and bootstrap of a SyncML device. SyncML is now part of the Open Mobile Alliance (OMA). See the following website for details: http://www.openmobilealliance.org/tech/affiliates/syncml © Copyright IBM Corp. 2004. All rights reserved. xxxix 3922ch06.fm Draft Document for Review November 10, 2005 2:05 pm 3.2 Scenario components Once connected to an internal network via a WebSphere Everyplace Connection Manager mobility client, a device agent is able to communicate with the WebSphere Everyplace Device Manager server. Figure 3-1 WebSphere Everyplace Connection Manager overview WebSphere Everyplace Connection Manager messaging enables a web application server (WebSphere Everyplace Device Manager) to send messages to messaging clients, such as a pager or a phone, using a variety of wireless networks. Messaging services includes support for Short Message Service (SMS). When installed with the Wireless Access Protocol (WAP) proxy, messaging services also includes support for unconfirmed WAP push delivery. Figure 3-2 Short message delivery xl System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch06.fm WebSphere Everyplace Connection Manager mobile-originated messages, although not applicable to WebSphere Everyplace Device Manager, may be useful when accessing other application servers. 3.2.1 Changes required on the WebSphere Everyplace Connection Manager gateway The following two changes are required to be performed on the WebSphere Everyplace Connection Manager gateway. PMR IY51880 is included in the WebSphere Everyplace Connection Manager 5.0.1.2 release In order to use WAP Push V1.2 to perform notification and bootstrap jobs with SyncML Device Manager devices, APAR IY51880 for WebSphere Everyplace Connection Manager V5.01 is required. This code fix has been included in the WebSphere Everyplace Connection Manager V5.0.1.2 release. Adding messaging services to the Connection Manager Part of WebSphere Everyplace Connection Manager configuration involves creating a Connection Manager resource. The GateKeeper console Add wizard will present the steps necessary to create the resource, including how to add messaging services to the Connection Manager. Ensure that messaging services have been added to the Connection manager before proceeding. Record the Listen port settings for use in configuring the WebSphere Everyplace Device Manager push-proxy-url later on in this chapter. For more information, view the WebSphere Everyplace Connection Manager Information Center: http://wedm_server/dms/docs/en/InfoCenter Note: Modifications to the WebSphere Everyplace Connection Manager server, including configuration changes and software updates, require that the DMS_AppServer be restarted. 3.2.2 Changes required on the WebSphere Everyplace Device Manager server The following change is required to be performed on the WebSphere Everyplace Device Manager server. Changing the URL for the Push Proxy Gateway To use WebSphere Everyplace Connection Manager in conjunction with Device Manager, you must modify the URL for the Push Proxy Gateway to point to the WebSphere Everyplace Connection Manager server. The URL is in the push.properties file on the Device Manager server: <DMS_AppServer>/dmserver.war/WEB-INF/classes where DMS_AppServer is the directory where the Device Manager application server is installed. In the push.properties file, change the push.proxy-url parameter to the URL of the connection manager. For example, if the connection manager is wecm.itso.ral.ibm.com and Chapter 3. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Connection Manager xli 3922ch06.fm Draft Document for Review November 10, 2005 2:05 pm the message services uses a non-secure port number 13131, the push.proxy-url parameter would have the following value: push.proxy-url=http://wecm.itso.ral.ibm.com:13131 The port used should match the Listen port settings used when configuring messaging services for the WebSphere Everyplace Connection Manager Connection Manager. The default non-secure port is 13131. After changing the value for push.proxy-url, stop and restart the Device Manager server. 3.3 Scenarios When a person obtains a new mobile device, it may or may not come preconfigured for a particular enterprise or service provider. If the device does not come preconfigured, configuration will be one of the first tasks performed after an enrolled user connects for the first time and registers the device with the provider. Our integration scenario details the steps required to submit a bootstrap job to an unprovisioned (clean) device that has just authenticated to WebSphere Everyplace Connection Manager. A discussion of additional WebSphere Everyplace Device Manager scenarios can be found in the Product overview section of the WebSphere Everyplace Device Manager Information Center. 3.3.1 Bootstrap jobs A bootstrap job is used to: Provide initial access for devices to the Device Manager server. Restore Device Manager configuration information to a device which may have inadvertently lost that information. For example, after a hard reset of the device. Bootstrap jobs are available for SyncML Device Manager devices that support the function. SyncML devices must be pre-enrolled before bootstrapping. The Device Manager console allows bootstrap jobs for the BaseSyncMLDM device class only. Bootstrap jobs cannot be submitted for Palm, OSGi Win32 or WinCE devices. The Device Manager server must know some information (such as the device address, phone number, or some other mechanism for communicating with the device) before initiating the bootstrap. The bootstrap message contains enough information for the device to be authorized and to initiate a session with the Device Manager server. It typically contains the SyncML Device Manager management object along with a minimum number of parameters needed to communicate with the Device Manager server. It is a one-time, transfer of information, not part of an ongoing session between the device and the Device Manager server. The Device Manager server does not expect any return status from the bootstrap message. An implicit acknowledgment of a successful bootstrap will have occurred when a device connects to the server for its first management session. xlii System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch06.fm A bootstrap job will only be sent to a device if its Bootstrapped parameter is set to No in the General Properties tab. Bootstrap jobs can be created for an individual device, several devices in the device class, or all devices in the device class. The job results and details are stored in the Device Manager database. Submitting a bootstrap job To make a bootstrap job, do the following steps: 1. From the Device Manager console, select the target device, a group of devices, the device class, or criteria for running the job. 2. Right-click a device or the device class, and select Submit Job from the context menu. 3. Use the Attributes window to specify the attributes for this job. The job attributes include the job type, activation date, expiration date, priority, description, and others. Select Bootstrap in the Job Type field. 4. Use the Job Parameters window to specify the account name and security type you want to set for this job. Account name Specifies the Device Manager account to create with the bootstrap job. Security type NETWPIN If the security level is NETWPIN, the shared secret is based on a network specific shared secret. USERPIN If the security level is USERPIN, the shared secret is based on a user PIN value. None No security for the bootstrap job. Click Help for information on using the Parameters window. 5. Use the Submit Job Summary window to review and verify the target devices and attributes you specified for this job. Click OK to submit the job. Remember: A bootstrap job will only be sent to a device if its Bootstrapped parameter is set to No in the General Properties tab. If the job is submitted successfully, the administrator receives a message that gives the job ID for the created job. You can use the job ID to do other tasks such as: View job history View upcoming jobs Exclude the device from jobs 3.3.2 Notification jobs A notification job is used to send a message to target devices requesting that they connect to the Device Manager server. For example, a cell phone is notified by Short Message Service (SMS) of a waiting job. We believe the Device Manager notification message may be customized using code implementing the Administration APIs discussed in the Information Center. See the Chapter 3. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Connection Manager xliii 3922ch06.fm Draft Document for Review November 10, 2005 2:05 pm Information Center for information on Application Programming Interfaces for Device Manager, specifically the DEVICE_NOTIFICATION_TYPE device attribute. Notification jobs can be created for some SyncML devices and some OSGi devices. An event notification caused a device to initiate a connection with the Device Manager server. A notification job can also be used to send a bootstrap message to a device. The Device Manager console allows notification jobs for the BaseSyncMLDM device class only. Bootstrap jobs cannot be submitted for Palm, OSGi Win32 or WinCE devices. A notification job will only be sent to a device if its Bootstrapped parameter is set to Yes in the General Properties tab. Notification jobs can be created for an individual device, several devices in the device class, or all devices in the device class. The job results and details are stored in the Device Manager database. Event notification Event notification is a job option for many job types from the Submit Job wizard on the Device Manager console, when submitting jobs with the Care applications, and using the Device Manager Administration API. When available, the administrator has the option to provide notification as part of the job being submitted. When the notification option is checked, a message is sent to the device that forces the device to connect to the Device Manager server. For example, after a job is submitted with the notification option selected, an event is issued to the plug-in and a notification is generated and sent to the device. The notification triggers the device to connect to the Device Manager server and run jobs that are waiting for the device. Notification Manager The Notification Manager uses a job notification table in the Device Manager database for processing notifications. The records in the table represent the active jobs that have the event notification checkbox set to Yes (checked) for the target devices. Once the status for a job changes from active state, the job notification record is removed from the job notification table. For example, if a job is created for 10,000 target devices and the job has the event notification selected, there would be 10,000 records added to the notification table for that job. Since these devices are not typically connected to the network, the notification for an active job is only sent to the device every few days. The notification intervals are the following: Table 3-1 Device Manager Notification Intervals xliv Job Type Notification Interval Maximum Number of Notifications Sent Bootstrap 6 hours 8 Command script 72 hours 4 Custom command 72 hours 4 Device configuration 72 hours 4 Inventory 72 hours 4 System Integrators Guide: Integration into Service Provider Scenarios 3922ch06.fm Draft Document for Review November 10, 2005 2:05 pm Job Type Notification Interval Maximum Number of Notifications Sent Node discovery 72 hours 4 Notification 1 minute 1 Note: The frequency for sending a notification to a device for an active job cannot be changed. The notification interval is set when the job type is installed and registered with Device Manager. Submitting a notification job To make a notification job, do the following steps: 1. From the Device Manager console, select the target device, a group of devices, the device class, or criteria for running the job. 2. Right-click a device or the device class, and select Submit Job from the context menu. 3. Use the Attributes window to specify the attributes for this job. The job attributes include the job type, activation date, expiration date, priority, description, and others. Select Notification in the Job Type field. 4. Use the Submit Job Summary window to review and verify the target devices and attributes you specified for this job. Click OK to submit the job. Remember: A notification job will only be sent to a device if its Bootstrapped parameter is set to Yes in the General Properties tab. If the job is submitted successfully, the administrator receives a message that gives the job ID for the created job. You can use the job ID to do other tasks such as: View job history View upcoming jobs Exclude the device from jobs 3.4 WebSphere Everyplace Device Manager job matrix The scenarios described in this chapter focused on bootstrap and notification jobs. WebSphere Everyplace Device Manager has several job types. All job types are not applicable to all device classes. Table 3-2 WebSphere Everyplace Device Manager job matrix OSGi Palm Bootstrap SyncML WinCE Win32 x Bundle Control x x Command script x x x Custom command x x x Device configuration x x x x x Chapter 3. Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Connection Manager xlv 3922ch06.fm Draft Document for Review November 10, 2005 2:05 pm OSGi Palm SyncML WinCE Win32 Inventory collection x x x x x Node discovery x x Notification x x Registry editing x Registry retrieval x Software distribution x Software distribution for ECUs x Software list update x Software removal x x x x x x x x 3.5 Conclusion Integrating WebSphere Everyplace Device Manager with WebSphere Everyplace Connection Manager is a complex endeavor requiring much planning. We were not able to obtain a SyncML device to test notification or bootstrap jobs. There are no SyncML notification or bootstrap simulators available. Many issues remain with respect to the integration of these two WebSphere Everyplace Service Delivery components. WebSphere Everyplace Service Delivery LDAP planning and sharing WebSphere Everyplace Device Manager use of advanced WebSphere Application Server security settings (non-Local OS security) How to enable Java2 security in WebSphere Application Server without breaking the WebSphere Everyplace Device Manager Care Applications with a long LDAP authentication string (current limit is 30 characters). xlvi System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922ch09.fm 4 Chapter 4. Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 4.1 Introduction The requirement for integrating mobile and voice capabilities comes spontaneously, because many mobile devices support both voice and browser channels. Traditionally, customers use an online channel to interact with an enterprise through its website with great satisfaction and experience. They expect consistent experience and better service for all available channels with their greater mobile investment. They likely won't be happy with the enterprise if one channel of the service doesn't share information with another. They would stop doing business with the enterprise if they experienced poor service from any single channel. Businesses are under increasing pressure to provide high-quality service while controlling costs. As a result, businesses are increasingly looking for ways to integrate existing systems, reduce future capital expenses, and increase operational effectiveness. Traditionally, a company's customer service center and internet center are operated separately, and they use different business models and access different backend databases. Integration of voice and mobile enables a company to provide customers with the information they need via different channels by bringing together existing telephone network, data communications network and business applications. The multi-channel support enables a company to provide more responsive service, support more programs, and deliver consistently accurate information in such areas as customer contact center service, mobile workforce service, and accessibility service. A company can integrate the Voice over IP (VoIP) technology to extend the reach of its services to provide the best possible service - anytime, anywhere while increase savings and reduce operating costs. © Copyright IBM Corp. 2005. All rights reserved. xlvii 3922ch09.fm Draft Document for Review November 10, 2005 2:05 pm 4.2 Integration components The following sections describe each of the components used for integrating WebSphere Everyplace Mobile Portal with WebSphere Voice products. 4.2.1 WebSphere voice components WebSphere voice products include WebSphere Voice Response, WebSphere Voice Server and WebSphere Voice Application Access. They can be smoothly integrated with WebSphere Everyplace Mobile Portal to enable delivery of applications over voice. WebSphere voice components provide a connection environment (voice gateway), a speech recognition engine, and an integration plugin to WebSphere Portal Server. WebSphere Voice Response WebSphere Voice Response provides a connection environment for connecting the telephone network with IP data network and transferring the voice data to a WebSphere Voice Server. The connection environment can be also a Avaya, Cisco, or Genesys Interactive Voice Response (IVR) system. WebSphere Voice Server WebSphere Voice Server is based on industry standards: VoiceXML to interact with the Web content H.323 for VoIP Voice eXtensible Markup Language (VoiceXML) is an XML-based markup language for creating distributed voice applications that users can access from any telephone. WebSphere Voice Server mainly consists of a Automatic Speech Recognition (ASR) engine, a Text to Speech (TTS) engine. The ASR engine recognizes voice input from the user and converts the input into text which can be used by a VoiceXML application. The TTS Engine converts text to synthesized speech. The text source may come from prompts within a VoiceXML application or from data that is retrieved from a data source by a VoiceXML application. The VoiceXML Browser processes the calls, fetches VoiceXML pages from a web application server, parses, and interprets the pages. The VoiceXML Browser is a Java application. It uses HTTP over a LAN or the Internet to fetch VoiceXML pages from a Web application server. A VoiceXML browser for VoiceXML is analogous to a visual web browser for HTML, except that a user interacts with a VoiceXML browser by speaking or by pressing telephone keys rather than through a graphical interface. The user selects a voice item from a voice menu by speech or using telephone keypad, which is passed by the ASR engine to a VoiceXML browser. The VoiceXML browser uses the recognition results to fill in form items or select menu options in the VoiceXML application, and then sends an HTTP request to the Web server which may access the same back-end infrastructure to return information. WebSphere Voice Application Access WebSphere Voice Application Access is an extension of WebSphere Portal Server. It adds two main features to the portal server: Voice Aggregator Numeric Alias component xlviii Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products Draft Document for Review November 10, 2005 2:05 pm 3922ch09.fm The Voice Aggregator provides support for the VoiceXML. Also, the Voice Aggregator supports user authentication. The unauthenticated user can access the portal and view the public pages; however, only authenticated users can access the personalized voice portal pages. The Voice Aggregator generates a VoiceXML log in dialog for a caller to log in by speech or pressing a button on a keypad, and then passes the user information to the WebSphere Portal to authenticate the caller. By default the system prompts the caller for a numeric user ID and password. The Voice Aggregator invokes one or more VoiceXML portlets to construct the VoiceXML page. A VoiceXML portlet is an application on a WebSphere Portal that provides functionality through a speech user interface. A voice portlet generates VoiceXML markup to implement a speech user interface. More precisely, it generates a VoiceXML fragment, which is then aggregated by the VoiceXML aggregator to construct a complete VoiceXML document. The Voice Aggregator is also responsible for organizing the content of a voice portal for each caller based on the caller's access permission. The content of the voice portal is organized into a tree structure. The top of the WebSphere Voice Application Access voice portal menu structure is called Portal Home. Under the pages are the portlets. Any page level can also include another page level and/or label level. The caller needs to traverse this menu structure to reach the target application. The Numeric Alias is the feature that enables a user to log in to the portal using a numeric user name and password. If this component is installed, each user then has two sets of id/password combinations; alphanumeric for use with visual browsers and numeric for use with the voice interface. This allows a caller to use the phone keypad to login for authentication to avoid misrecognition in a noisy environment or to protect the password from others. 4.2.2 WebSphere Everyplace Mobile Portal The two major features added by WebSphere Everyplace Mobile Portal to WebSphere Portal Server are the following: XDIME aggregator Multi-Channel Server (MCS) XML-based Device Independent Markup Extensions (XDIME) is based on the XML language. It defines a set of elements which can be used as tags in Java Servlet Page (JSP™). This is similar to the use of tags in markup Languages such as HTML and Wireless Markup Language (WML). XDIME provides hyperlink, form, menu, table, list, text, and script control elements, which are similar to their equivalents in HTML. However, they are generally more powerful in function. The XDIME aggregator is associated with the markup type XDIME, and is invoked by the portal engine to combine the markup from all the XDIME portlets together with headers and footers to generate an XDIME page. MCS manages the policies and maps resources (for example, images) to devices. The MCS policies define the presentation characteristics (layout, component and theme etc.) of a device through a visual interface. MCS uses a built-in repository to manage a large number of devices from desktop PCs to TVs, PDAs, and mobile phones. You can update the repository as a new device emerges. The device repository consists of a compressed XML file containing attributes of the devices. WebSphere Everyplace Mobile Portal requires several types of MCS policies to be defined to handle device variations before XDIME markup can be rendered correctly. Theme policy is used to manage overall look and feel as well as navigation view on devices. Aggregation policy is used to aggregate the XDIME markup generated by a set of portlets targeted for same page. Layout policy is used to specify physical positions of elements on pages in order to deal with screen size differences. Chapter 4. Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products xlix 3922ch09.fm Draft Document for Review November 10, 2005 2:05 pm Conmponent policy is used to address highly device-specific content (such as, images). MCS is installed as a portal-level filter. It takes the aggregated XDIME markup and converts it into device-dependent markup based on the requesting device, component, theme, and layout policies referenced in the XDIME markup. 4.2.3 Architecture diagram of integrated components From a high level view, the integrated system consists of four major subsystems: a network connection environment, a connection gateway, a portal server and its extensions (WebSphere Voice Application Access and WebSphere Everyplace Mobile Portal), and a back-end data and/or applications (see Figure 4-1). WebSphere Voice Response provides a connection environment for the voice access. The ASR and TTS engines in WebSphere Voice Server, as well as the VoiceXML browser in WebSphere Voice Response are voice gateway components which convert the data not only between text and speech, but also between speech network and IP data network. The mobile data conversion between wireless network and IP network is done by WebSphere Everyplace Connection Manager. Figure 4-1 illustrates a high level architecture diagram of the integrated system. Figure 4-1 Architecture diagram of integrated System A typical customer interaction with WebSphere Portal Server through the mobile device would be as follows: 1. The customer requests the access using a mobile device. l Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products Draft Document for Review November 10, 2005 2:05 pm 3922ch09.fm 2. The request sends to the WebSphere Everyplace Connection Manager (wireless gateway) which converts the request into a HTTP request and then forwards to the Portal Server. 3. The XDIME aggregator generates the XDIME page. 4. The XDIME page is sent to MCS runtime to generate the device-dependent markup page. 5. The device-dependent page is then sent back to the requesting device. A typical customer interaction with WebSphere Portal Server through voice phone would be as follows: 1. The customer places a telephone call. 2. The audio portion of the call is sent by WebSphere Voice Response to the ASR engine in WebSphere Voice Server. 3. The recognized digitized text is then passed back to the VoiceXML Browser, which then makes a HTTP request to WebSphere Portal Server. 4. The Voice Aggregator generates the VoiceXML page, and sends the resulting text page back to the VoiceXML Browser. 5. The VoiceXML Browser passes the text to TTS engine which generates the synthesize speech from the text, and routes back to the caller's phone. WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access provide administration portlets to the portal administration interface, so you can use centralized portal interface to configure, manage, and monitor the features. In addition, a portlet that supports a mobile device and a voice phone normally provides a graphical web user interface that could be used for customization of the mobile browser and speech interface and for delivering its complete functionality to visual browsers. Figure 4-2 on page lii is the Web interface for the Customer Contact Center Optimizer solution which is built based upon the integrated components. In the following sections, you will see the mobile and voice view of the same content. Chapter 4. Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products li 3922ch09.fm Draft Document for Review November 10, 2005 2:05 pm Figure 4-2 Web Interface for a Customer Contact Center 4.2.4 Runtime client device identification by the integrated system WebSphere Portal Server maintains client definitions for all supported client devices in a client registry. A client definition specifies the device properties, such as user agent, markup, markup version, manufacture and model as well as capability. The portal server uses the device properties to optimize the data that the portal sends to the client and to handle the limitations and deviations of a device. To support a new device, portal administrator must add the device's client definition through portal administrator interface. Figure 4-3 on page liii is the client definition configuration for a voice device in the portal server. lii Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products Draft Document for Review November 10, 2005 2:05 pm 3922ch09.fm Figure 4-3 Client definition configuration for a voice device in WebSphere Portal WebSphere Portal matches the user agent from the request header of a requesting device against user agent patterns configured in the list of client definitions. If a match is found, the portal uses the markup configured for the matching client definition to determine which aggregator should handle the request from the device. For instance, if the client definition uses XDIME markup, then the XDIME aggregator is invoked to construct the page for the device. Some aggregators, including the XDIME aggregator, support multiple navigation views which are also known as markup versions to further handle the device variations. WebSphere Portal Server V5.0 has three built-in aggregation modules: HTML, WML and cHTML aggregators. The HTML aggregator produces pages for desktop computers and other devices with HTML browsers. The WML aggregator component produces WML content for Wireless Access Protocol (WAP) devices, which are typically mobile phones. The cHTML aggregator produces content for mobile devices that subscribe to the i-Mode wireless Internet service. When WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access are installed onto the portal server, an XDIME and a Voice aggregator are added to the portal server, respectively. The XDIME aggregator produces XDIME markup targeted at a wide variety of devices (PDAs, WML devices, XHTML devices, etc.). The voice aggregator generates VoiceXML content to support voice devices. Chapter 4. Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products liii 3922ch09.fm Draft Document for Review November 10, 2005 2:05 pm An aggregator invokes one or more portlets to generate the markup. The access to the portlets is controlled by checking access rights during page aggregation and page customization. A portlet must support the proper markups in order for it to generate the markups that the requesting client devices support. For instance, if a mobile device supports XDIME and VoiceXML markups, the portlet which handles the device request must support both XDIME and VoiceXML markups. This is usually done by creating specific markup versions (XDIME and VoiceXML in the above example) of the portlet Java Server Pages (JSP) in the portlet, and configure the portlet.xml file for the portlet to indicate the supported markups. A proper markup version of the JSP will be automatically selected during runtime based on the device's user-agent. In addition, the page in which the portlet is deployed needs to support the target markups. Figure 4-4 illustrates the supported markups (VoiceXML, XDIME, WML, cHTML and HTML) by the integrated system (the portal server with WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access). Figure 4-4 Portal page markup support 4.2.5 Mobile access Portal uses the Multi-Channel Server runtime to convert XDIME markup into a markup language that can be used by a requesting device. Figure 4-5 on page lv illustrates how the Multi-Channel Server runtime plugs into the portal, and how device-dependent markup is generated from XDIME. liv Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products Draft Document for Review November 10, 2005 2:05 pm 3922ch09.fm Figure 4-5 Mobile access and xdime markup generation The following details the runtime interaction and XDIME markup generation process as illustrated in the Figure 4-5: 1. The user makes a page request by typing the URL of the application in the portal server, which is received by WebSphere Portal. 2. WebSphere Portal displays a login screen for the user to log in. 3. Once the login is successful, WebSphere Portal invokes the XDIME Aggregator to construct the page. 4. The XDIME aggregator calls the XDIME portlets to generate the markup. 5. The XDIME aggregator combines the markup returned from the portlets, the header and footer, and then returns the page. 6. The XDIME page is passed to the Multi-Channel Server runtime. 7. Multi-Channel Server generates the device dependent markup (e.g. WML, HTML or cHTML) based on the device, component, theme, and layout policies referenced in the XDIME markup. 8. The Multi-Channel Server runtime returns the device dependent markup to the requesting device. Figure 4-6 on page lvi shows the display screens on the mobile device. They are abstracted from the Customer Contact Center Optimizer solution as shown in Figure 4-2 on page lii: Chapter 4. Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products lv 3922ch09.fm Draft Document for Review November 10, 2005 2:05 pm Figure 4-6 Mobile device screens of the Customer Contact Center Voice access VoiceXML provides a whole new way of accessing the same Web information by providing voice access to Web data and services. A VoiceXML Browser sends an HTTP request over the Internet to fetch VoiceXML pages from the portal server. The VoiceXML portlet which handles the request may access the same back-end data with the mobile portlets which handles the mobile request. VoiceXML browser only changes the presentation of the information, not the information itself or the way it is generated by the Web server or the back-end system. Therefore, voice access process is similar to the mobile process in terms of the way the markup is generated. Only difference is the way that the information is presented to the user and the way that the request is passed to the portal server. The following details the runtime interaction and voice markup generation process as illustrated in Figure 4-7 on page lvii: 1. The voice server receives a call from a telephone. Telephone voice data is transferred to a WebSphere Voice Server through a connection environment which can be WebSphere Voice Response, Avaya, Cisco, or Genesys. 2. The audio data from the caller is received by the WebSphere Voice Server. 3. The ASR engine analyzes the audio stream and converts it to digitized text. The digitized text is then sent to the VoiceXML browser, which creates an HTTP request and sends it to the portal server over the network. 4. The Voice Aggregator processes the login request, and returns the VoiceXML login page to the VoiceXML browser. 5. The VoiceXML browser passes the VoiceXML page to the TTS engine which converts the text to speech, and then sends back to the caller. 6. The VoiceXML login page prompts the caller to say or enter the numeric user ID and password. The Voice Aggregator passes the user information to the WebSphere Portal for authentication. 7. After successful authentication, the portal server redirects the caller to the Portal Home VoiceXML selection menu page. 8. The user selects a specific page by speech or pressing on the phone keypad. 9. The VoiceXML portlet in the portal server handles the HTTP request. The back-end data source is accessed as needed to generate dynamic data. 10.The Voice Aggregator processes the request, and then returns a new VoiceXML selection menu page starting at the page selected by the user if the page contains more than one portlet. This menu page contains the selection choices for the portlets on this page. 11.The user selects a specific portlet on the current page. lvi Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products Draft Document for Review November 10, 2005 2:05 pm 3922ch09.fm Figure 4-7 Voice access and VoiceXML markup generation The following example shows the above process. This is abstracted from the Customer Contact Center Optimizer solution as shown in Figure 4-2 on page lii: System Welcome to JK Telecom customer interactive service center. To better serve you, please say or enter your ID. Caller 11111 System Please say or enter your numeric password. Caller 123456 System You are in my account service; please select one of the services: Billing Summary, Pay My Bill, Account Details, Payment History, or Available services. Caller “Pay my bill” System Your bill amount is two hundred and fifty five dollars and five cents, which is due on September 28. To make a payment, please say yes, otherwise, say no. Caller “Yes” System You have selected to make a payment of two hundred and fifty five dollars and five cents. The amount will be withdrawn from your banking account which you set up in your profile. Please select one of the following services: Billing Summary, Pay My Bill, Account Details, Payment History, or Available services. Caller “Billing summary” System Your bill amount is two hundred and fifty five dollars and five cents, which is billed on August 29th. The due date for the bill is on September 29. You made a payment of two hundred and fifty five dollars and five cents on September 25th. Please select one of the following services… Caller <silent> System At any time you can say Help, Repeat, Go Back, Start Over or Exit. To continue, please select one of the following services… Chapter 4. Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products lvii 3922ch09.fm Draft Document for Review November 10, 2005 2:05 pm 4.3 Installation and configuration The installation and configuration procedure of WebSphere Voice Response and WebSphere Voice Server are detailed in the installation documents which accompanies the product. This chapter will only focus on the installation issues of WebSphere Voice Application Access and WebSphere Everyplace Mobile Portal. 4.3.1 System requirements for the integrated components The following sections discuss the software and hardware requirements for the integrated components. Software requirements This section is to help you understand how the WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access components interact with each other and with the prerequisite software. WebSphere Portal, a prerequisite component by both WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access, installs and runs as an application server on the WebSphere Application Server platform. For each installation of WebSphere Everyplace Mobile Portal or WebSphere Voice Application Access, an installation of WebSphere Portal Server is required. WebSphere Everyplace Mobile Portal requires a database server to store user data. You can use either DB2 or Oracle database servers. The Cloudscape™ database, which is installed by default with WebSphere Portal Server, is not supported as a production database with WebSphere Everyplace Mobile Portal. During the installation, WebSphere Everyplace Mobile Portal adds an additional table to the WebSphere Portal database for tracking preload notice usage on a per user basis. The Multi-Channel Server Component of WebSphere Everyplace Mobile Portal stores client device repository in the database which can be on the same database server as the database server used for WebSphere Portal or it can be on a separate database server. WebSphere Voice Application Access requires a Lightweight Directory Access Protocol (LDAP) server to support the Numeric Alias feature. The Numeric Alias feature is an optional component in WebSphere Voice Application Access; however, it is required to authenticate the user in order for the user to access the personalized pages. During the installation, the Numeric Alias component of WebSphere Voice Application Access adds additional attributes to each user in the WebSphere Portal LDAP server. WebSphere Voice Application Access V5.0 currently only supports IBM Directory Server. Currently, WebSphere Everyplace Mobile Portal only supports IBM AIX and Solaris Operating System. It does not support Windows or Linux platforms. However, WebSphere Everyplace Mobile Portal Enable, which became available after the writing of this Redpaper, does support Linux. In summary, WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access prerequisites the following software: Either IBM AIX 5L™ V5.1 with Maintenance Level 4 or AIX 5L V5.2 with Maintenance Level 1 or Solaris Operating System V2.8 or V2.9 Either DB2 V8.1 Universal Database (UDB) Enterprise Server Edition with Fix Pack 4a or Oracle Database V9i Release 2 (V9.2.0.4). IBM Directory Server V5.1 with Fix Pack 2 WebSphere Portal for Multiplatforms V5.0.2.1 lviii Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products Draft Document for Review November 10, 2005 2:05 pm 3922ch09.fm WebSphere Application Server Enterprise V5.0.2.2 or WebSphere Application Server Network Deployment V5.0.2.3 Hardware requirements Before you decide an installation topology, you should consider the following issues: WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access are add-on components of WebSphere Portal Server. For each installation of WebSphere Everyplace Mobile Portal or WebSphere Voice Application Access, an installation of WebSphere Portal Server is required. WebSphere Everyplace Mobile Portal or WebSphere Voice Application Access installations must reside on the same computer with WebSphere Portal Server. WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access should share the same user data, such as user identities, credentials, and permissions for accessing portal resources. Therefore, they should be configured with the same LDAP server which stores the user identities and the same portal database which stores user data. This actually requires WebSphere Everyplace Mobile Portal, WebSphere Voice Application Access, and Portal Server as well as its prerequisite Application Server be installed in the same computer. Therefore, there are two topologies you may consider when you install a WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access integrated system: Single-computer topology All the WebSphere Voice Application Access and WebSphere Everyplace Mobile Portal components and their prerequisite softwares are installed on the same computer. WebSphere Application Server, WebSphere Portal, Database Server and IBM Directory Server are on the same computer as the WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access. If you decide to use this topology, you should not select embedded WebSphere Application Server Express during IBM Directory Server installation. Instead, after WebSphere Application Server is installed, you should deploy the IBM Directory Server administrator interface in the WebSphere Application Server installed in the same machine as the Directory Server. Multiple-computer topologies The database server, directory Server and rest of the components are physically located on three different computers. You may install WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access in a cluster environment. However, this chapter will not discuss this scenario. You should refer to the WebSphere Portal Information Center and WebSphere Everyplace Mobile Portal Information Center for hardware and software requirements, as well as the installation and configuration guides. 4.3.2 Installation roadmap This section describes general steps required to install the WebSphere Voice Application Access and WebSphere Everyplace Mobile Portal components. You should review the planning and installation documentation associated with WebSphere Everyplace Mobile Portal, WebSphere Voice Application Access and each of the prerequisite software products, especially the WebSphere Portal Information Center, for detail information. 1. Install a database Server and Fix Pack If you want to use an existing installation of a database server, you will need to gather information about the installed database before installing the subsequent products. Chapter 4. Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products lix 3922ch09.fm Draft Document for Review November 10, 2005 2:05 pm 2. Install IBM Directory Server and FixPack If you already have an LDAP server installed, you will need to collect information about the LDAP server before installing WebSphere Voice Application Access. 3. Install WebSphere Portal Version V5.0 4. Install WebSphere Portal for Multiplatforms V5.0.2.1 This also requires you to install WebSphere Application Server V5.0.2.3 cumulative fixes and interim fixes. 5. Configure the portal to use the database server This step sets up the portal server to use the database server (DB2 or Oracle) instead of Cloudscape. 6. Configure the portal for IBM Directory Server This step configures the portal security using IBM Directory Server. 7. Install WebSphere Everyplace Mobile Portal Refer to the topics in the "Planning" section of the WebSphere Everyplace Mobile Portal Information Center and be sure that you have performed the planning steps required for your Everyplace Mobile Portal installation. 8. Install WebSphere Voice Application Access You should select at least Voice Aggregator and Numeric Alias components. 4.3.3 Configuration and customization The following sections show you how to configure and customize WebSphere Voice Application Access and WebSphere Everyplace Mobile Portal. Voice access configuration This section describes configuration of the WebSphere Voice Application Access and WebSphere Voice Server so that they can identify each other during the runtime. WebSphere Voice Application Access system grants or denies a Voice Server system access in its property setting. The WebSphere Voice Application Access property file (WPS_HOME/shared/app/config/voiceaccess.properties) contains information related to the Voice Servers and the voice portal languages that are supported by the WebSphere Voice Application Access system. Example 4-1 shows the contents of the voiceaccess.properties file, which grants the voice requests from the voice server systems with IP addresses 192.68.10.1 and 192.68.10.2. The property file also indicates that the WebSphere Voice Application Access supports both English and Japanese. Example 4-1 voiceaccess.properties file # WebSphere Voice Application Access voice.hostCheck=true # Permitted Voice Server list host1=192.68.10.1 host2=192.68.10.2 # Available languages for Voice Access language. 1=en language 2=jp language The Voice Server system sets up the access parameter for the WebSphere Voice Application Access system in its configuration file (default.cff), and assigns a phone number to the corresponding application. Example 4-2 on page lxi shows the contents of the default.cff lx Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products Draft Document for Review November 10, 2005 2:05 pm 3922ch09.fm file, which configures an application named voiceapp and specifies that the voice server will use the URL, http://hi4c.test.austin.ibm.com/wps/portal/.scr/Login to access the WebSphere Voice Application Access system with host name hi4c.test.austin.ibm.com. A phone number for the application voiceapp will enable all the call for the number to be handled eventually by the VoiceXML application running in WebSphere Voice Application Access system. Example 4-2 default.cff file AppName=voiceapp Enabled=yes Parameter=URL, http://hi4c.test.austin.ibm.com/wps/portal/.scr/Login AppClass=com.ibm.wvr.vxml2.DTVoicelet2 The Post Limit Size update This configuration change is needed only when your audio file sizes are very large. By default, WebSphere Application Server limits the size of an HTTP post request to 10 MB in order to limit potential denial of service attacks. However, your WebSphere Voice Application Access application size with large number of audio files might exceed the limitation. For instance, the Voice Remind portlet which is shipped with WebSphere Voice Application Access V5.0 (in WPS_ROOT/install/voice/ibmva_reminder.war after WebSphere Voice Application Access installation) and installable in WebSphere Portal Server is approximately 25 MB in size. When you install an application which exceeds the size limitation, you may get an error message in the Web browser similar to Request Entity Too Large The requested resource /wps/myportal/!ut/p/… does not allow request data with POST requests, or the amount of data provided in the request exceeds the capacity limit Therefore, the Post Limit Size will prevent an administrator from installing a voice application that exceeds 10 MB in size. The configuration of the Post Size Limit is located in the WebSphere plug-in configuration file (plugin-cfg.xml). If you are seeing the above error message or similar, you need to change the limit to correct the problem. To change the limit, perform the following actions: 1. Open the WebSphere plug-in configuration file (plugin-cfg.xml) in WAS_HOME/config/cells directory with a text editor. 2. Locate the ServerCluster stanza with the name: WebSphere_Portal_<NODE_NAME>_Cluster 3. Associated with this entry, find the parameter PostSizeLimit. 4. Change to a value in bytes (changing into a value to set a new limit or changing into "-1" to disables limit). 5. Save the changes and close the file. 6. Restart the application and portal servers. Mobile portal theme and voice greeting customization As a minimum, you should configure the WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access to use your company's logo on mobile device and/or a greeting message contains your company name for a voice user. Customize mobile portal to use your company logo By default, the mobile portal shows the WebSphere Portal logo in most views of the XDIME aggregator. You can replace it by creating a new image policy and referring to the new policy Chapter 4. Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products lxi 3922ch09.fm Draft Document for Review November 10, 2005 2:05 pm in Main.jsp. To create a new image policy, you need to install and use the Toolkit for WebSphere Everyplace Mobile Portal, which is a plugin to WebSphere Studio Site Developer or WebSphere Studio Application Developer. If you don't want to create a new image policy, you can replace the images which are referred by the default image policies directly. 1. Create the company's logo image in GIF and JPG formats, and name the images as logo.gif and logo.jpg. 2. Back up the logo.gif and logo.jpg files, which are the original WebSphere Portal logo images, in: WAS_HOME/installedApps/node_name/wps.ear/wps.war/themes/xdime/images 3. Replace the log.gif and logo.jpg image files in the above directory with the images you created for your company's logo. By default, the image sizes are 100x30 (Width x Height). 4. Restart the portal server. In addition, you can modify the look and feel of your mobile portal, for instance, the location of the portlet controls and color of the portlet title, as well as the default image policies for login, logout, forgot password, add to favorites, and work with favorites. All of these image policies may be modified to use different images, or new policies may be created for these functions and the JSPs may be updated to use the new policies. You need to create your own images, create the corresponding image policies using the Toolkit for WebSphere Everyplace Mobile Portal, then replace the default ones using the ones you created. Customize voice portal to use your company name in the greeting message The language-specific TTS prompts for the caller login and authentication are in the property files in WPS_HOME/shared/app/VoiceAggregator/nls directory. You may modify the file content to customize the greeting and authentication messages, for instance, you can use your company name instead of "IBM WebSphere". Portlet title customization for mobile and voice devices When you create a page or a portlet that supports mobile or voice markup, the page or portlet's title will be displayed on mobile devices, and the users will both hear and speak these titles on voice phones. The default title for the portlet is first created during the creation of the portlet application. The title can be updated through the "Manage Portlet" in portal administration. By default, your web, voice and mobile users will see or hear the same portlet title. You may want to display a longer and more descriptive title on the web, but a short one for navigation on a mobile device or a voice phone. To configure a short title for the page or URL for mobile device, login to the portal server as administrator and use the Extended Properties portlet in the administration interface: 1. Select Manage Mobile Pages 2. Expand My Portal and the nested resources until find the page that you want to edit. 3. Select the page by clicking the title. 4. In the Extended Properties section, click Edit. 5. Click Set short title. 6. Type a short title in the Short title field. 7. Click OK, then OK again to save the modified title, or click Cancel if you want to return to Manage Mobile Pages without saving the updated settings. To configure a TTS spoken title of a page or a portlet, first record a WAV file for the title. The file should be named based on the unique Page/Portlet name extended by the file extension lxii Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products Draft Document for Review November 10, 2005 2:05 pm 3922ch09.fm “.wav”. Then, place this file in the required location. By default, the new WAV files (with the extension “.wav”) are required to be placed in the following location: WPS_HOME/installedApps/Node_Name/wps.ear/wps.war/vxml/titles/Locale After the server is restarted, the TTS output will be replaced with the new WAV file. If the specified WAV file can not be found, WebSphere Voice Application Access will play the alternative TTS text. 4.4 Development platform for the integrated components WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access each provide development toolkits. The toolkits are plugins to WebSphere Studio Application Developer or WebSphere Studio Site Developer. The toolkits add XDIME and voice support to WebSphere Studio. They work together with portlet toolkit to provide mobile and voice portlet development and test environments. These environments mainly consists of XDIME and VoiceXML markup support, MCS tools, and a call simulator. 4.4.1 XDIME and VoiceXML markup support After you have installed the mobile and voice toolkits, when you create a portlet application project in WebSphere Studio, you have a choice to select whether or not your portlet will support XDIME and/or VoiceXML markup in addition to the cHTML and WML markup, which is provided by the portlet toolkit by default (see Figure 4-8 on page lxiv). To select XDIME and VoiceXML support in a portlet application project, follow these steps: 1. Select File →New →Project. Then select Portlet Development, Portlet Application Project, and then click Next. 2. Fill each field in the Portlet Application wizard. Make sure to select Configure Advanced Options. Then click Next. 3. Fill in each filed in the Portlet Setting page, then click Next. 4. Check the event handling options in the portlet, then click Next. 5. Define the Single Sign On options for your portlet, then click Next. 6. In the miscellaneous page, check the XDIME and VoiceXML marks (see Figure 4-8 on page lxiv). Chapter 4. Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products lxiii 3922ch09.fm Draft Document for Review November 10, 2005 2:05 pm Figure 4-8 XDIME and VoiceXML markup support during portlet project creation If you select to support XDIME and VoiceXML during your portlet application project creation, an XDIME and a VoiceXML directory will be automatically added in the JSP directory of the content root (WebContent directory) in the project navigation pane. A Java Server Page file will be added to the XDIME and VoiceXML directory, respectively. The XDIME JSP file has the same file extension (“.jsp”) while the VoiceXML file has a JSV (Java Server Page with VoiceXML) as file extension (see Figure 4-9). Besides, the portlet.xml file will be updated automatically to reflect the XDIME and VoiceXML markup supports (see Figure 4-10 on page lxv). Figure 4-9 XDIME and VoiceXML markup support in JSP files lxiv Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products Draft Document for Review November 10, 2005 2:05 pm 3922ch09.fm Figure 4-10 XDIME and VoiceXML markup support in portlet deployment descriptor 4.4.2 MCS tools MCS tools are installed by the Toolkit for WebSphere Everyplace Mobile Portal, which uses the MCS policies to convert XDIME markup into a native markup that is used by a requesting device. You can create a global MCS project to use by multiple portlet application projects, or add MCS policies for a specific portlet application project. You can choose a MCS wizard to create a new project or add a new resource to an existing project. Follow these steps to create a new MCS project: 1. Select File →New →Project. Select MCS in the left pane and MCS Project in the right pane. 2. Enter a name, and then click Next. 3. In the Standard device repository file field, browse the directory where you installed the toolkit, and select Toolkit_Home\DeviceRepository\devices.mpdr. 4. In the Policy source directory, ensure the value is: WebContent\mcs-policies. 5. Click Finish. You can add a new MCS policy to an existing MCS project or a portlet project. If you want to add a MCS policy to a portlet project, you need first to create a mcs-policies directory under WebContent directory of the project, and then add a new policy to the mcs-policies directory. If you want to add a MCS policy to an existing MCS project, you can directly add the policy to Chapter 4. Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products lxv 3922ch09.fm Draft Document for Review November 10, 2005 2:05 pm the mcs-policies directory which is created when you create the MCS project. Follow these steps to add a new MCS policy: 1. Right-click on the mcs-policies directory, select New, and then Other. Select MCS in the left pane and a MCS component in the right pane. 2. Type a component name in the component filed, and make sure the parent folder (mcs-policies or a subdirectory) is correct, and then click OK. 3. Click Finish. The MCS tools can be used to develop policies visually (see Figure 4-11). Figure 4-11 MCS policy development using MCS tools in WebSphere Studio Application Developer 4.4.3 Call Simulator A call simulator is installed by the Toolkit for WebSphere Voice Server, which enables you to simulate DTMF input (for example, PIN codes or passwords) on your desktop. The DTMF Simulator takes the place of a telephone and lets you perform desktop debugging of voice applications without having to connect to telephony hardware and the Public Switched Telephone Network (PSTN). To start the simulator, follow these steps: 1. From Windows →Open Perspective →J2EE. 2. Select Run →Run. This opens the launch configuration dialog. 3. Right-click VoiceXML JavaServer™ Page. This will create a new launch configuration for a local JSP or JSV file for a Voice Portlet application. 4. In the Local JavaServer Page URL text field, enter a URL: http://hostname:portnumber/wps/portal/.scr/Login lxvi Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products Draft Document for Review November 10, 2005 2:05 pm 3922ch09.fm 5. The hostname can be a fully qualified remote host name if you have installed your voice application on a remote portal server, or localhost if you use a WebSphere Portal Test Environment in the Studio. 6. A call simulator is launched for you to test your application (see Figure 4-12). Figure 4-12 Call simulator for testing voice applications 4.5 The team that wrote this Redpaper This Redpaper was produced by a team of specialists from around the world working at the International Technical Support Organization, Raleigh Center. James Chamberlain is a Senior Software Engineer and certified Senior IT Specialist. He is a project leader at the ITSO, Raleigh Center. He has over 24 years experience in the IT industry and specializes in pervasive computing technologies. His areas of expertise include e-commerce, pervasive computing, portals, AIX, Linux, and Java programming. He also architects, designs, and develops solutions using J2EE, XML, Web Services, and IBM software products including WebSphere and DB2. Before joining the ITSO, James worked for IBM Global Services on e-commerce system development for IBM Business Partners. He majored in Computer Science at Iowa State University. Shunguo Yan is a Staff Software Engineer in the Application and Integration Middleware (AIM) division of IBM software group in Austin. He has more than 8 years of experience in object-oriented analysis and design, application integration, and software implementation of industrial specifications. He holds a master degree in Computer Science. His areas of expertise include architecture, design, and development of integrated solutions to various industries using J2EE, XML, Web Services, and software products from IBM and other companies. Chapter 4. Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products lxvii 3922ch09.fm Draft Document for Review November 10, 2005 2:05 pm Thanks to the following people for their contributions to this project: Benson Chen, technical consultant IBM Pervasive Computing Division Kim Foster, reviewer IBM Sales & Distribution WebSphere Portal Technical Sales Many thanks to the following IBM people for their assistance. Lenore Ramm Mike Seedorf Charles Le Vay Mart Nuttall Tony Wrobel Dale Chamberlain Scott Broussard Gary Craig Robert Sager Dave Heller Lei Lu Dave Pierson Don Watson And a specials thanks to our ITSO support staff at the International Technical Support Organization, Raleigh Center: Margaret Ticknor Jeanne Tucker Tamika Barrow Linda Robinson Thanks to our ITSO management: Jere Cline And a special thanks to our IBM Pervasive Computing sponsor: Mary Fisher lxviii Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 3922abrv.fm Draft Document for Review November 10, 2005 2:05 pm Abbreviations and acronyms ACL Access Control List AIX Advanced Interactive eXecutive AO HDML Handheld Device Markup Language Access Offering HTTP Hypertext Transport Protocol APAR Authorized Program Analysis Report HTTPS Secure Hypertext Transport Protocol ASP Application Service Provider IBM International Business Machines AST Active Session Table IDS IBM Directory Server B2B Business to Business IHS IBM HTTP Server B2C Business to Customer IMAP Internet Message Access Protocol CBR Content Based Routing IMC IBM Mobile Connect CDMA Content Division Multiple Access INS Intelligent Notification Services CDPD Cellular Digital Packet Data IP Internet Protocol CHTML Compact HTML ISDN Integrated Services Digital Network CORBA Common Object Request Broker Architecture ISP Internet Service Provider ISV Independent Software Vendor CSR Customer Service Representative ITSO DCE Distributed Computing Environment International Technical Support Organization JDBC Java DataBase Connectivity DIT Directory Information Tree JDK Java Development Kit DMS Device Management Server JNDI DMZ Demilitarized Zone Java Naming and Directory Interface DN Distinguish Name JPEG Joint Photographics Expert Group DNS Domain Name System JSP Java Server Pages DTD Document Type Definition JVM™ Java Virtual Machine DTMF Dual Tone Multi Frequency LBS Location Based Services EAR Enterprise ARchive LDAP ECP Everyplace Cookie Proxy Lightweight Directory Access Protocol EJB Enterprise Java Bean LOB Line of Business EO Enable Offering LTPA Lightweight Third Party Authentication ESCP Edge Server Caching Proxy MNC Mobile Network Connection ESM Everyplace Synchronization Manager MQe MQSeries® Everyplace ESS Everyplace Synchronization Server MSISDN Mobile Station ISDN EWG Everyplace Wireless Gateway NAS Network Access Server FTP File Transfer Protocol NNTP Network News Transport Protocol GIF Graphics Interchange Format ODBC Open Database Connectivity GSM Global System for Mobile Communication PC Personal Computer PDA Personal Digital Assistant GSO Global Sign-on PICS GUDA Generalized User Directory Access Platform for Internet Content Selection HACMP™ High Availability Cluster Multiprocessing (AIX) PIM Personal Information Manager PKI Public Key Infrastructure © Copyright IBM Corp. 2004. All rights reserved. lxix 3922abrv.fm Draft Document for Review November 10, 2005 2:05 pm PME Programming Model Extensions WAN Wide Area Network POP Post Office Protocol WAP Wireless Access Protocol PSTN Public Switched Telephone Network WBMP Wireless Bitmap WLP Wireless Link Protocol QBE Query By Example WML Wireless Markup Language RADIUS Remote Authentication Dial-in User Service WTE Web Traffic Express RAID Redundant Array of Independent Disks WTLS Wireless Transport Layer Security WTP WebSphere Transcoding Publisher RAM Random Access Memory XDIME RDBMS Relational Database Management System XML-based Device Independent Markup Extensions XHTML RDN™ Relative Distinguish Name Extensible Hyper Text Markup Language RPC Remote Procedure Call XML Extensible Markup Language RPSS Reverse Proxy Security Server RTSP Real Time Streaming Protocol SDK Software Development Kit SLA Service Level Agreement SMS Short Message Service SMTP Simple Mail Transport Protocol SNA System Network Architecture SPDE Service Provider Delivery Environment SPO Service Provider Offering SSL Secure Socket Layer STEP Sametime® Everyplace SQL Structured Query Language TAI Trusted Association Interceptor TAM Tivoli Access Manager TCP Transmission Control Protocol TDMA Time Division Multiple Access TLS Transport Layer Security TPSM Tivoli Personalized Services Manager TPSM Tivoli Personalized Services Manager TSHDM Tivoli Smart Handheld Device Manager UDB Universal Database UDP User Datagram Protocol UND Universal Notification Dispatcher URI Universal Resource Indicator URL Universal Resource Locator USB Universal Serial Bus VoIP Voice Over Internet Protocol VPN Virtual Private Network lxx System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:05 pm 3922bibl.fm Related publications The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this Redpaper. IBM Redbooks For information on ordering these publications, see “How to get IBM Redbooks” on page lxxiii. Note that some of the documents referenced here may be available in softcopy only. IBM WebSphere Everyplace Connection Manager V5 Handbook, SG24-7049 Tivoli Personalized Services Manager Device Manager 1.1: Pervasive Device Management, SG24-6027 Understanding LDAP Design and Implementation, SG24-4986 IBM WebSphere Portal for Multiplatforms V5 Handbook, SG24-6098 WebSphere Everyplace Mobile Portal Version 5 Development and Design, REDP-3942 Online resources These Web sites and URLs are also relevant as further information sources: An introduction to the IBM Service Provider Delivery Environment (SPDE): http://www.ibm.com/industries/wireless/doc/content/bin/TelecomCollateralSPDEIntroduction _1_1.pdf AIX V5.2 Documentation Page: http://publib16.boulder.ibm.com/pseries/en_US/infocenter/base/aix52.htm DB2 Information Center: http://publib.boulder.ibm.com/infocenter/db2help/index.jsp IBM developerWorks : IBM developer solutions : DeveloperToolbox Technical Magazine : Building a pervasive computing portal: ftp://www.software.ibm.com/software/developer/library/it-0701art13.pdf IBM Support Fix Central Home Page: http://www.ibm.com/eserver/support/fixes/fcgui.jsp IBM Tivoli Information Center for the IBM Tivoli Directory Server: http://publib.boulder.ibm.com/tividd/td/IBMDirectoryServer5.2.html IBM HTTP Server Support Page: http://www.ibm.com/software/webservers/httpservers/support Linux http://www.linux.org Location-Based Services and Intelligent Notification http://www.ibm.com/developerworks/ibm/library/i-lbsin.html © Copyright IBM Corp. 2004. All rights reserved. lxxi 3922bibl.fm Draft Document for Review November 10, 2005 2:05 pm Open Mobile Alliance (OMA) http://www.openmobilealliance.org Parlay http://www.parlay.org Tivoli Access Manager for e-business http://www.ibm.com/software/tivoli/products/access-mgr-e-bus TeleManagement Forum (TMF) http://www.tmforum.org WebSphere Application Server Support Page: http://www.ibm.com/software/webservers/appserv/was/support WebSphere Application Server Information Centers: http://www.ibm.com/software/webservers/appserv/was/library WebSphere Everyplace Service Delivery Combined information Center, which includes WebSphere Everyplace Mobile Portal Enable and WebSphere Everyplace Subscription Manager: http://publib.boulder.ibm.com/infocenter/wsphelp/index.jsp WebSphere Everyplace Mobile Portal Home Page: http://www.ibm.com/software/pervasive/ws_everyplace_mobile_portal WebSphere Everyplace Mobile Portal Support Page: http://www.ibm.com/software/pervasive/ws_everyplace_mobile_portal/support WebSphere Everyplace Connection Manager Support Page: http://www.ibm.com/software/pervasive/ws_everyplace_connection_manager/support WebSphere Everyplace Connection Manager V5.0.1 Information Center: http://publib.boulder.ibm.com/pvc/wecm/501 WebSphere Everyplace Device Manager Support Page: http://www.ibm.com/software/pervasive/ws_everyplace_device_manager/support WebSphere Everyplace Service Delivery Overview Page: http://www.ibm.com/software/pervasive/ws_everyplace_service_delivery WebSphere Everyplace Mobile Portal Enable Overview Page http://www.ibm.com/software/pervasive/ws_everyplace_mobile_portal_enable WebSphere Everyplace Subscription Manager Overview Page http://www.ibm.com/software/pervasive/ws_everyplace_subscription_manager WebSphere Everyplace Device Manager Overview Page http://www.ibm.com/software/pervasive/ws_everyplace_device_manager WebSphere Everyplace Server for Telecom Overview Page http://www.ibm.com/software/pervasive/ws_everyplace_telecom WebSphere Everyplace Connection Manager Overview Page http://www.ibm.com/software/pervasive/ws_everyplace_connection_manager WebSphere Portal for Multiplatforms Support Page: http://www.ibm.com/software/genservers/portal/support lxxii System Integrators Guide: Integration into Service Provider Scenarios 3922bibl.fm Draft Document for Review November 10, 2005 2:05 pm WebSphere Portal for Multiplatforms V5.0.2 Information Center: http://publib.boulder.ibm.com/pvc/wp/502/ent/en/InfoCenter/index.html WebSphere Transcoding Publisher Overview Page http://www.ibm.com/software/pervasive/transcoding_publisher World Wide Web Consortium (W3C) http://www.w3.org How to get IBM Redbooks You can search for, view, or download Redbooks, Redpapers, Hints and Tips, draft publications and Additional materials, as well as order hardcopy Redbooks or CD-ROMs, at this Web site: ibm.com/redbooks Help from IBM IBM Support and downloads ibm.com/support IBM Global Services ibm.com/services Related publications lxxiii 3922bibl.fm lxxiv Draft Document for Review November 10, 2005 2:05 pm System Integrators Guide: Integration into Service Provider Scenarios Draft Document for Review November 10, 2005 2:06 pm Back cover System Integrators Guide: Integration into Service Provider Scenarios Explore the offerings that implement a subset of SPDE Understand integration into service provider environments Walk through integration scenarios ® Redpaper This IBM Redpaper helps you plan, implement, and perform intra-family integration with a family of offerings that implement a subset of the IBM Service Provider Delivery Environment (SPDE), which is a reference architecture that defines a consistent delivery and management platform for services, applications, and content across multiple access networks and devices. INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION Service providers can choose to implement and integrate all or parts of SPDE with their existing platforms. The information in this redpaper contains examples and scenarios showing ways to integrate the family of offerings, which include WebSphere Everyplace Mobile Portal, WebSphere Everyplace Subscription Manager, WebSphere Everyplace Device Manager, and WebSphere Everyplace Server for Telecom. BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE This redpaper also deals with how to integrate products such as WebSphere Everyplace Connection Manager, Tivoli Access Manager, and others. A basic knowledge of wireless, networking, portal, and web technologies is assumed. 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