|
YOUR FEEDBACK
Did you read today's front page stories & breaking news?
SYS-CON.TV |
TODAY'S TOP SOA & WEBSERVICES LINKS VoiceXML Voice Enabling Existing Applications
Voice Enabling Existing Applications
By: Hitesh Seth
Nov. 1, 2001 12:00 AM
VoiceXML and interactive voice portals can enhance self-service and mobile-enable employees, customers, and partners. Voice portals provide anytime/anywhere access to vital information through a simple, natural interface such as speech-enabled conversations. In Parts 1 and 2 of "Developing VoiceXML Applications Using Microsoft .NET" (XML-J, Vol. 2, issues 6 and 7), we reviewed the various development tools that help us build and test VoiceXML applications and looked behind the scenes at how a VoiceXML application can be built using the new Microsoft .NET framework. In an earlier article, "Building VoiceXML Applications Using J2EE" (XML-J, Vol. 2, issue 2), we reviewed how we could build VoiceXML-based applications using the J2EE platform. In numerous scenarios we're faced with the challenge of utilizing and extending existing applications using newer mediums/channels. In this article we discover design strategies that show how we can utilize and voice-enable existing applications. We've established that developing VoiceXML applications is not very different from developing Web-based applications. However, there are some crucial differences - a new format, dialog and grammar designs. We continue our exploration of the VoiceXML standard by discussing various architectures and voice-enabling existing applications.
Candidates for Voice Enablement
A number of corporations hold a large amount of transactional and analytical data in SQL-based relational databases, such as Microsoft SQL Server, Oracle8i, Informix, IBM DB2, and Sybase, or even desktop-level databases, such as Microsoft Access and Excel.
Most of us use e-mail as a basic collaboration medium, and many companies have now invested in collaboration systems such as Microsoft Exchange Server, Lotus Domino, and iPlanet Messaging Server. In addition to e-mail, collaboration/groupware systems provide access to calendar, address book, tasks, and shared documents. As a component to a VoiceXML-based corporate portal, it's now possible for employees to access their critical e-mails and calendar anytime/anywhere over a normal phone.
A number of medium-to-large businesses use the power and flexibility of ERP systems from vendors such as SAP, PeopleSoft, Oracle, Baan, J. D. Edwards, and Microsoft Great Plains Software. For instance, a company that has invested in an HRMS system such as PeopleSoft could provide tremendous flexibility to employees by providing them with a VoiceXML self-service application that allows employees to review their personnel profile, participate in benefits enrollment, review pay stubs, and even submit time/expenses. A large number of these applications have well-defined application programming interfaces (APIs) that allow other applications to interact with them. A VoiceXML-based application could use these APIs to convert the data into XML and then use XSLT for VoiceXML transformation.
Example systems that house the corporate directories of large enterprises include Novell Directory Services, Microsoft NT Directory, Microsoft Active Directory, and LDAP-based Directory Services (such as iPlanet Directory Server and IBM Secureway Directory Server). Directory services are used in a multifold manner: to house/store a user's profile and to be a central system that stores the various applications the user is entitled to (security/access control). A voice portal could provide self-service-like functionality for an employee directory and also serve as a global assistant in connecting people to people. An employee can now dial a phone number or an extension and then connect to a speech-based employee directory application and get connected to anyone in the company ("connect me with Hitesh on his cell phone'), instead of searching for an individual in a corporate directory.
Design Strategies for Building VoiceXML Applications
Server-Side Scripting In addition to the dynamic scripting capability, application servers act as the workhorse for server frameworks and provide services, such as transaction management, persistence, scalability, high availability, and security to build reliable and scalable Web applications. Application servers abstract these services by implementing them under the hood, thus allowing the developer to focus on building the business and presentation logic. Because VoiceXML builds upon the Internet and can fully leverage Internet-based technologies and platforms, Web application servers can be used to implement and deliver dynamic VoiceXML-based voice portals.
Application Integration Similarly, in J2EE we can use the Java Database Connectivity (JDBC) API to connect with relational databases and the JavaMail API to connect with both enterprise messaging applications and applications using well-defined Java APIs. The upcoming J2EE 1.3 release includes a new specification called Java Connector Architecture (JCA) that defines a common API to interact with back-end enterprise applications (such as SAP R/3 and PeopleSoft HRMS). Figure 1 shows how a server-side scripting model can be used to deliver a dynamic VoiceXML-based application that's connected to enterprise databases and applications.
XML/XSLT
Figure 2 shows how XML and XSLT can be used together to deliver VoiceXML content. A number of vendors who provide prepackaged content management systems (such as Vignette, Interwoven, and Microsoft) also provide XML/XSLT capability as part of their content management solution. So if your organization has expertise and investment in these, you can leverage them to deliver VoiceXML-based content. In the open-source world the Apache XML project (http://xml.apache.org) released a Java/XML/XSLT-based toolkit called Cocoon. Cocoon allows developers to define an XML-based, content-delivery interface that can be dynamically transformed into HTML, WML, VoiceXML, pdf, and more using an embedded XSLT processor. Listing 1 shows how we can use the Cocoon framework to deliver Hello World for Web, wireless, and voice applications. The XSLT stylesheets used in the Cocoon example are highlighted in Listings 2-4.
Generic CustomML-Based Presentation Layer
A number of third-party voice application servers follow this model by defining a generic <VendorML> and then supporting it using a runtime engine. An example of such an approach is OracleMobile Online Studio, which provides an n-hosted environment for developing and deploying mobile applications. OracleMobile defines an abstract markup language called OracleMobileXML. Oracle recently announced support for delivering VoiceXML-based content.
Web Automation
Web-based applications are based on two major standards - HTML and HTTP. HTML is the content and HTTP is a well-defined communications protocol. To be able to communicate with a Web site, a Web automation agent has to act like a Web browser (without the user interface delivery part, of course) and send/receive HTTP requests/response with the Web server. Communicating with HTTP-based Web servers can be achieved either through native socket connections or prebuilt encapsulated classes that provide higher level interfaces on top of HTTP (such as the java.net.HttpURLConnection class in Java 2 SDK, Standard Edition - JDK). A large number of Web sites have loosely written HTML-based content; to reliably interpret the encapsulated information, it's vital to convert this content into a well-defined structure. Had this content been defined in XHTML, then processing Web content would have been similar to processing XML. This is where Tidy comes to the rescue. Tidy is an open-source tool available from the W3C that converts loosely defined HTML into strict XHTML. The resulting XHTML can then be processed by any XML parser to generate appropriate VoiceXML. Listings 5 and 6 show a sample conversion. We can also process XHTML using XSLT processors. Listing 7 shows how a JSP can use the HttpURLConnection to get to a Web application, clean it up into XHTML using Tidy, then use an XSLT stylesheet to convert the content into VoiceXML.
Compaq Web Language
Conclusion
In a previous article, "Tools for Developing VoiceXML Apps" (XML-J, Vol. 2, issue 3), I reviewed a number of third-party tools that were available for developing VoiceXML-based applications. The world of VoiceXML has grown a lot since then and a new set of VoiceXML-related tools has evolved. In the next article I'll review some of the recent key development tools that are available from software vendors for developing, debugging, and testing VoiceXML applications. References
XML JOURNAL LATEST STORIES . . .
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
|
SYS-CON FEATURED WHITEPAPERS MOST READ THIS WEEK BREAKING XML NEWS
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||