YOUR FEEDBACK
JavaOne 2008: Chris Keene's Prescription for Curing the Java Flu
Rob wrote: I have to agree with Chris - I have been a developer and Java a...
SOA World Conference
Virtualization Conference
$200 Savings Expire May 16, 2008... – Register Today!


2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TODAY'S TOP SOA & WEBSERVICES LINKS


Voice Enabling Existing Applications

Digg This!

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
First, let's review the various applications that would interest us from a voice-enabling perspective:

  • Corporate SQL Databases
    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.

  • Collaboration/Groupware Systems
    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.

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

  • Corporate Directories
    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
    Let's explore the various design strategies and architecture models we can use to build new VoiceXML applications and enable existing corporate applications.

    Server-Side Scripting
    Since the inception of the dynamic World Wide Web, server-side scripting technologies such as Perl, CGI, ASP, JSP, PHP, and ColdFusion have been used to deliver dynamic HTML-based Web applications. Typically these technologies have been coupled within a server-side framework called a Web application server that contains the runtime engine for developing dynamic Web-based applications. A variety of Web application servers are now available, for instance the J2EE-based application servers from vendors such as IBM, BEA, Oracle, and Sun, and Microsoft Internet Information Server 5.0 (part of Windows 2000 Operating System) and the ColdFusion Application Server (from Macromedia/Allaire).

    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
    Server-side scripting technologies solve only one part of the puzzle: delivering dynamic VoiceXML pages. Since we're talking about integrating existing applications, we need to understand how to integrate with them. Again, we can use the same application interfaces and components to integrate with enterprise applications that we use for the Web. For instance, in the Microsoft world we can use interfaces such as OLE-DB and ADO to integrate with a wide variety of relational databases, MAPI and Collaboration Data Objects to integrate with enterprise messaging and collaboration systems, and well-defined COM interfaces to integrate with a large number of COM-enabled back-end applications.

    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
    We can access applications by using a predefined XML interface or an XML toolkit, such as Microsoft XML Parser or Apache Xerces Parser, to create an XML structure based on a Java/C++/COM-based API. We can then create an XSLT-based stylesheet and process the generated XML using XSLT processors, such as the one available with Microsoft's XML Parser or Apache's Xalan XSLT Processor.

    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
    Create a customML-based (customML represents a custom XML-based markup language) generic presentation interface and then, using a predefined set of stylesheets, transform the content into appropriate formats/devices. This model is similar to that in Figure 2. The major difference is we don't have to define stylesheets for every single application, and we have to write the presentation logic in a custom-defined markup language, which the framework converts into the appropriate device-based markup (HTML, WML, or VoiceXML). Figure 3 shows a CustomML-based application design.

    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 Automation, also known as Web screen scraping, refers to using Web-based content in a data-centric integration. Similar to the way green screens were screen scraped to Web-enable legacy applications, Web content (which is defined in loose HTML) can also be screen scraped to extract useful information. Figure 4 shows a potential use of the Web automation approach.

    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
    Another useful tool in Web automation/screen-scraping scenarios is an initiative from Compaq Systems Research Center called Web Language. It's a Java-based application library that provides markup algebra, service combinators, and a simple script-driven programming language. Web Language is implemented in Java and can invoke Java-based classes within its environment. It's also available as a servlet and can be used within a context of a Web application server. Using Web Language it's possible to parse HTML-based loose content as well as strict XML content. More information about Web Language is available at www.research.compaq.com/SRC/WebL/.

    Conclusion
    VoiceXML has truly brought the best of both worlds to voice applications - it builds on the experience and expertise the industry has gained over the years in building text-to-speech engines, advanced speech recognition platforms, voice-over IP platforms, and speech dialog design; and it allows an enterprise to truly leverage the ubiquity of the Internet. Now that VoiceXML is here to stay, our next focus is to build the next generation voice interfaces to our applications and open them up to a much broader audience. In this article we focused on a number of design alternatives, discovering the various options that we can use to build integrated, interactive voice applications.

    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

    1. XML 1.0 Specification: www.w3.org/TR/REC-xml
    2. XSL Transformations: www.w3.org/TR/xslt
    3. VoiceXML Forum: www.VoiceXML.org
    4. XHTML Basic: www.w3.org/TR/xhtmlbasic/
    5. Apache Xerces Parser: http://xml.apache.org/xerces-j/index.html
    6. Apache Xalan XSLT Processor: http://xml.apache.org/xalan-j/
    7. Microsoft XML Technologies: http://msdn.microsoft.com/xml
    8. Apache Cocoon: http://xml.apache.org/cocoon
    9. WebL: www.research.compaq.com/SRC/WebL/
    10. Tidy: www.w3.org/People/Raggett/tidy/
    11. OracleMobile Online Studio: http://studio.oraclemobile.com
      About Hitesh Seth
      Hitesh Seth is chief technology officer of ikigo, Inc., a provider of XML-based web-services monitoring and management software. A freelance writer and well-known speaker, he regularly writes for technology publications on VoiceXML, Web Services, J2EE and Microsoft .NET, Wireless Computing & Enterprise/B2B Integration. He is the conference chair for VoiceXML Planet Conference & Expo.

  • XML JOURNAL LATEST STORIES . . .
    3rd International Virtualization Conference & Expo: Themes & Topics
    From Application Virtualization to Xen, a round-up of the virtualization themes & topics being discussed in NYC June 23-24, 2008 by the world-class speaker faculty at the 3rd International Virtualization Conference & Expo being held by SYS-CON Events in The Roosevelt Hotel, in midtown
    Red Hat Named "Platinum Sponsor" of Virtualization Conference & Expo
    Red Hat is a trusted open source provider. Red Hat offers enterprise customers a long-term plan for building infrastructures on the quality and innovation of open source. Combining open source operating system platform, Red Hat Enterprise Linux, together with applications, management
    JustSystems Contributes Key XBRL Rendering Technology to Financial Community
    JustSystems announced that it is contributing intellectual property rights for its invention of eXtensible Business Reporting Language (XBRL) rendering technologies to XBRL International, the standards body responsible for the oversight of the XBRL specification. The invention, known a
    JustSystems Launches Campaign for XBRL Success
    JustSystems announced its campaign to help organizations adopt XBRL (eXtensible Business Reporting Language), the XML-based standard for communicating financial and business information. In related news, JustSystems also announced that it has contributed intellectual property rights of
    Virtualization Meets DaaS - Desktop-as-a-Service
    After a $1.5 million angel round, Desktone, which was started in 2006 by Eric Pulier, who also started SOA Software, US Interactive and IVT, picked up $17 million in first-round funding about a year ago from Highland Capital Partners, SoftBank Capital, Citrix Systems and the China-base
    SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
    SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
    Click to Add our RSS Feeds to the Service of Your Choice:
    Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
    myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
    Publish Your Article! Please send it to editorial(at)sys-con.com!

    Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

    SYS-CON FEATURED WHITEPAPERS


    ADS BY GOOGLE
    BREAKING XML NEWS
    Thunderhead and IBM Leverage ACORD Standards to Improve Agent and Customer Communications for Insurance Carriers
    Thunderhead, a provider of enterprise communications solutions, today announced a new