Redbooks Paper James Chamberlain David Quenzler System Integrators Guide: Integrating WebSphere Everyplace Server for Telecom with WebSphere Everyplace Subscription Manager and WebSphere Everyplace Device Manager Introduction Did you know that you can leverage IBM® WebSphere® Everyplace® Server for Telecom Parlay applications for select WebSphere Everyplace Device Manager and WebSphere Everyplace Subscription functions? This IBM Redpaper describes integration scenarios related to WebSphere Everyplace Server for Telecom, WebSphere Everyplace Device Manager, and WebSphere Everyplace Subscription Manager. © Copyright IBM Corp. 2005. All rights reserved. ibm.com/redbooks 1 Scenario components This section primarily discusses WebSphere Everyplace Server for Telecom. However, the scenario components encompass: WebSphere Everyplace Device Manager WebSphere Everyplace Subscription Manager WebSphere Everypace Server for Telecom WebSphere Everyplace Server for Telecom overview WebSphere Everyplace Server for Telecom Version 5.1 includes: Bundled restricted versions of IBM WebSphere Application Server and IBM DB2® IBM AIX, Sun 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, Short Message Service (SMS), Multimedia Messaging Service (MMS), call control, payment, and account management Telecom Web Services Toolkit IBM WebSphere Studio Application Developer integrated toolkit Application development with Telecom Web Services access Integrated service simulation Web Services Server assembly for IBM Business Consulting Services Note: WebSphere Everyplace Server for Telecom V5.1 was not available at the time of this writing. The previous version can be found at: http://www.ibm.com/software/webservers/wast http://www.ibm.com/software/pervasive/ws_application_server_telcom What is Parlay? Parlay is a collection of application programming interfaces (APIs) that allow the integration of telecommunications (telecom) 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 Java™ 2 Platform Enterprise Edition (J2EE) programming model. The WebSphere Everyplace Server for Telecom Parlay environment for X client application creation is based on WebSphere Studio Application Developer V5.1.2. The capabilities of Parlay are: Presence: Is a user online? Availability: What is the status of the user? Location: Where is the user? 2 Integrating WebSphere Everyplace Server for Telecom What is the Parlay Gateway? The Parlay Gateway is an advanced services gateway that: Receives requests from the WebSphere Everyplace Server for Telecom Parlay applications Performs the corresponding actions with the underlying telecommunications network Notifies the WebSphere Everyplace Server for Telecom Parlay applications when significant real time events occur in the telecommunications network Provides a set of Parlay services such as Call Control, Multiparty Call Control, and User Interaction Provides the set of Parlay Framework capabilities for security, flexibility, fault tolerance, and manageability 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 an SMS message: http://parlay.org/en/resources/PressAnalysts.asp#WhitePapers Supported gateways and simulators The gateways that WebSphere Everyplace Server for Telecom supports are: 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 The supported simulators are: Lucent MiLife ISG SDK V3.0 Simulator Open API Solutions Application Test Suite V1.1 Scenarios A Service Provider considers what it can offer based on user presence, availability, or location. Presence and availability An example of presence and availability is a user who is in a meeting. The user has chosen not to take phone calls but had decided to receive instant messages. The user asks, “Are my buddies online?” Integrating WebSphere Everyplace Server for Telecom 3 If they are, the user can invite them to a conference call. Integrating WebSphere Everyplace Mobile Portal and WebSphere Everyplace Server for Telecom Two examples of how service providers can use the integration of WebSphere Everyplace Mobile Portal and WebSphere Everyplace Server for Telecom are: 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. Location Applications can exploit location services for resource tracking, finding something, sending notification, and performing actuation, such as 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. I’m at the hotel or airport. Check me in. I’m at the toll booth. Pay this toll. 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 solutions 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. The characteristics of the components of WebSphere Everyplace Server for Telecom are: WebSphere Everyplace Server for Telecom Parlay applications use one or more Enterprise Java Beans (EJBs) to implement code that accesses the Parlay Gateway. The Parlay 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: 4 Integrating WebSphere Everyplace Server for Telecom – 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 life cycle of managed objects in the WebSphere Everyplace Server for Telecom Parlay application environment. – The EventScheduler EJB is a WebSphere Everyplace Server for Telecom service that allows Parlay applications to create (and respond to) scheduled events, including wake up calls and retry functions. – The DataPublisher EJB provides a standard interface for logging activities and events for offline processing. For example, a call forwarding application can log the result of each forwarding request that 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 that is performed in response to a service that a Parlay application provides to a subscriber. 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 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 that are used by the Parlay application. 3. A Web application project contains the objects that make up a provisioning interface. 4. All components of a Parlay application are combined into an Enterprise Application Archive (EAR) project (the Web application component can also be deployed separately). 5. Java Naming and Directory Interface (JNDI) references must be defined so that each EJB can access Java Database Connectivity (JDBC) and other bean properties. Each WebSphere Studio Application Developer project might need the configuration of one or more JNDI references, depending on the resources that 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 EAR project can be deployed internally to the WebSphere Studio Application Developer 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 that are based on functional affinity, code reuse can be maximized. The Parlay Web Console is the interface to the Parlay server. Use the console to stop the server and terminate the connection to the Parlay Gateway properly: http://WEST_server:8080/ParlayWebConsole/ServerConsole Integrating WebSphere Everyplace Server for Telecom 5 When you integrate WebSphere Everyplace Subscription Manager with WebSphere Everyplace Server for Telecom, Provisioning Web functions are handled by the WebSphere Everyplace Subscription Manager front-end interface. A mobile user authenticated to WebSphere Everyplace Subscription Manager sees a Web page similar to Figure 1. Figure 1 Example of a WebSphere Everyplace Subscription Manager A WebSphere Everyplace Server for Telecom portal could be written to provide subscriber interface to Parlay functions. Customer Care would also benefit from a WebSphere Everyplace Server for Telecom portal because it would allow a customer service representative to call a customer. WebSphere Everyplace Server for Telecom integration can be considered negligible for cell phones or other devices with native telephony function. Sample WebSphere Everyplace Server for Telecom integrations allow WebSphere Everyplace Subscription Manager subscribers to: Set an alarm or wake up call Call a customer service representative Set up call forwarding Make a phone call Wake up call sample The sample wake up call application and the provisioning database maintain a list of wake up call events. The application sets up a timer. When the timer is triggered, the application sends a wake up call to the user. The process is illustrated in Figure 2 on page 7. 6 Integrating WebSphere Everyplace Server for Telecom Figure 2 The wake up call sample The following steps take place in the Wake Up Call sample: 1. A subscriber uses the Provisioning Web page to specify a wake up call. 2. The wake up scheduler adds an entry in the scheduler. 3. At the specified wake up time, the scheduler sends an event back to the wake up scheduler. 4. The wake up scheduler tells the wake up call 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 (wake up call requests 15 seconds); however, if the gateway or simulator setting is less than this value, the shorter timeout will take precedence. There is no MPCC mechanism for requesting a timeout duration; only the gateway timeout is in effect. The sample retries the call only once. Call center sample The Call center sample accepts an incoming call and routes the call to an available operator as shown in Figure 3 on page 8. Integrating WebSphere Everyplace Server for Telecom 7 Figure 3 The call center sample The flow of the call center sample is as follows: 1. The call center enables call notification for the provisioned numbers at the Parlay Gateway. 2. An available operator logs in with the Call Center Operator graphical user interface (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. 6. If no operator is available, the call is placed on hold until an operator becomes available. 8 Integrating WebSphere Everyplace Server for Telecom Call forwarding sample The call forwarding sample allows a user to specify an alternate number for receiving calls (Figure 4). Figure 4 The call forwarding sample The following steps take place in the call forwarding 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 change event to the call forwarding EJB. 2. Call forwarding enables call notification 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 call forwarding. 4. Call forwarding obtains 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. Integrating WebSphere Everyplace Server for Telecom 9 The Web dial call sample The Web dial call sample (see Figure 5) allows a subscriber to initiate a call from the Provisioning Web page. The Provisioning Web page display shows if the telephone was answered or not answered. Figure 5 The Web dial call sample The Web dial call sample is not EJB based. The following description of the sample flow is simplified: 1. The subscriber, on the client side, enters a telephone number in the Provisioning Web page. When the subscriber clicks the Dial button, the subscriber phone number and the entered phone number are passed to the bean and the calling status changes from Idle to Dialing. 2. The bean sets up an 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 call back that sets a timer that expires and ends the call in 30 seconds if the call does not complete. If the gateway or simulator has a no answer timeout that is less than the 30 second default timeout in the Web dial call, the shorter timeout takes precedence and the call ends in less than 30 seconds. If the call completes, it then uses the call back interface to connect both legs of the call. 4. The application initiates the call and routes it to the source and the destination. 5. Responses for busy, no answer, or answer are sent back. 6. The call back interface returns the result of the call to the servlet. If both legs connect, it returns as Answered. If either number is busy, it returns as 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 page, which shows the result of the call. Location sample Figure 6 on page 11 shows a sample location application. Longitude and latitude coordinates are shown, along with the requested degree of accuracy. 10 Integrating WebSphere Everyplace Server for Telecom Figure 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. Conclusion Integrating WebSphere Everyplace Server for Telecom with WebSphere Everyplace Subscription Manager and WebSphere Everyplace Device Manager is a complex endeavor that requires significant planning. Many issues remain with respect to the integration of these three WebSphere Everyplace Service Delivery components. However, the capabilities of WebSphere Everyplace Server for Telecom and Parlay applications that were demonstrated in this paper provide a glimpse into the exciting future of pervasive computing. Integrating WebSphere Everyplace Server for Telecom 11 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 (ITSO), 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 of 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 designs and develops solutions using J2EE, XML, Web Services, and IBM software products such as 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, working primarily with runs pertaining to High Availability, SAN, Databases, and Linux. He is now a Software Engineer at the IBM Linux Technology Center. He has a B.S. in Computer Science from the University of Central Florida. Thanks to the following people for their contributions to this project: Benson Chen, Technical Consultant IBM Pervasive Computing Division Kim Foster, Reviewer IBM Sales and 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 A specials thanks to our ITSO support staff at the ITSO, 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 12 Integrating WebSphere Everyplace Server for Telecom 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. 2005. All rights reserved. 13 This document created or updated on November 22, 2005. ® Send us your comments 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 U.S.A. Trademarks The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: Eserver® Eserver® Redbooks (logo) ™AIX® DB2® Everyplace® IBM® Redbooks™ RS/6000® 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. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. 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. 14 Integrating WebSphere Everyplace Server for Telecom