Rahul P Akolkar
Thu, 02 Sep 2004 12:27:33 -0700
Reusable Dialog Components (RDCs) JSP Support For Server-Side VoiceXML Generation
Abstract: JSP-based Reusable Dialog Components (RDCs) is a framework for creating JSP taglibs that aid in rapid development of voice and multimodal applications. I) Motivation Server-side generation of HTML has proven an effective way of generating the user interface for visual Web applications that are implemented using server-side application frameworks such as Struts. Over time, the effort involved in such HTML generation has been reduced by the availability of various JSP tag libraries that abstract away the minutiae of HTML markup. The goal of the RDC project is to achieve for voice applications what JSP tag libraries have already achieved in the world of visual Web applications. The voice application space is seeing rapid growth with the maturation of speech technologies along with the arrival of a stable and robust voice programming model as defined in the W3C VoiceXML 2.0 REC. A necessary next step in mainstreaming the development of server-side voice applications within environments like Tomcat is the availability of the appropriate tag libraries that help isolate the JSP developer from the intricacies of spoken interaction. The goal is to help package specialized speech design skills in the form of JSP tag libraries that make it possible for JSP developers to easily speech-enable Web applications. II) Overview The RDC taglib project provides the following pieces: * A small collection of speech dialog components that aid in basic user interaction. * A collection of sample applications that demonstrate the use of these components. * An extensible JSP-2.0 framework for implementing additional speech components that can collaborate in producing complex spoken interaction. * All functionality is implemented either directly as JSP2.0 tagx files, or as Java classes that implement the equivalent JSP2 tag implementation interfaces. Dialog components come with speech grammars authored as srgs files, a set of default prompts, and the associated Java beans that implement validation of the data collected by that component. The code is under active development, and we are continuing to evolve and enrich the basic framework as we exercise the presently available functionality by authoring new components and by using these components in real-world voice applications. All components in the RDC taglib produce VoiceXML 2.0 that can be served to any VoiceXML 2.0 compliant voice browser. The generated applications can be deployed to a standard Tomcat server and be accessed by a VoiceXML 2.0 compliant voice browser. III) Requirements This tag library requires JSP 2.0 support and has been developed on Tomcat 5.0. It depends on the following libraries from the Apache project: jstl.jar and standard.jar --- JSTL 1.0 servlet.jar (2.4) and jsp-api.jar (2.0) --- for building custom tags jasper-runtime.jar --- for delayed EL evaluation struts.jar, commons-beanutils.jar and commons-digester.jar --- for struts navigation used by the sample apps A majority of the tags implemented by this tag library have been created as .tag files. Tag handlers implemented in Java extend JSP-2.0's SimpleTagSupport. IV) Commitment The codebase is being worked on actively at present. Resources are available to continue the evolution of the code and to interact with the Apache community in its ongoing development. The source code for the RDC tag library is available here: http://www.apache.org/~rubys/rdc/ Let me know your views/comments. ******************************************** Rahul Akolkar Advisory Software Engineer Interaction Middleware and Standards for Portal Server IBM T.J. Watson Research Center P.O.Box 218 Yorktown Heights, N.Y. 10598 Phone: (914) 945-1105 or T/L: 862-1105 -------