International Journal of Scientific & Engineering Research Volume 2, Issue 4, April-2011 1

ISSN 2229-5518

Separation of Concerns in VoiceXML Applications

Sukhada P. Bhingarkar

Abstract— Many commercial applications provide customer services over the web like flight tracking, emergency notification, order inquiry etc. VoiceXML is an enabling technology for creating streamlined speech-based interface for such web-based information ser- vices. W hereas in computing, aspect-oriented programming (AOP) is a programming paradigm, which aims to increase modularity. AOP includes programming methods and tools that support the modularization of concerns at the level of the source code. The aim of this paper is to integrate AOP with VoiceXML. Aspect-Oriented Programming (AOP) encapsulates common low-level scattered code within reusable components called aspects. There are certain tags in VoiceXML like ‘<nomatch>’, ‘<noinput>’, ‘<error>’ which appear commonly in every VoiceXML document. These tags can be considered as the concerns and can be put inside an aspect. This elimi- nates the need to programmatically write these tags in every VoiceXML document and modularizes the crosscutting-concerns.

Index Terms— AOP, AspectJ, ASR, IVR, TTS, VoiceXML, VXML

—————————— • ——————————

1 INTRODUCTION

he WWW has become primary source of information all over the world and accounts for the major propor- tion of entire Internet traffic. The next leading edge
for the research on the web is to make it accessible via voice and audio. Considerable work has been done in this direction, which includes the design of VoiceXML and voice browsers. It allows voice applications to be devel- oped and deployed in an analogous way to HTML for visual applications.

Aspect orientation is not a completely new approach to writing software. Aspect orientation is becoming a com- monly adopted and de facto approach to practicing older ideas that can be traced to almost the beginning of soft- ware development. Development environments and tools that weave code, pragma instructions, and even debug- gers all contain some of the behavior that underlies the aspect-oriented approach. It is a more modular imple- mentation of the advantages that these technologies have brought to their own domains in the past. Aspect- oriented programming entails breaking down program logic into distinct parts called as concerns. All programming paradigms support some level of grouping and encapsulation of concerns into separate, independent entities by providing abstractions (e.g., procedures, modules, classes, methods) that can be used for implementing, abstracting and composing these concerns. But some concerns defy these forms of implementation and are called crosscutting concerns because they "cut across" multiple abstractions in a program. This paper

tries to integrate this feature of AOP with VoiceXML. VoiceXML has certain tags which appear across the scope of every VoiceXML page. These tags are crosscutting concerns that can be defined in a modular fashion with the help of aspect-oriented programming. This helps modularization and code reuse in VoiceXML based applications.

The rest of the paper is organized in following way: section II presents related work in this field. Section III and IV discusses VoiceXML and AOP respectgively. The paper, then, proposes an integration of AOP with VoiceXML in Section V. Finally, the paper finishes with conclusion in Section VI.

2 RELATED WORK

During past few years, several applications are developed to assist visually impaired, technologically uneducated and underprivileged people to acoustically access the information that was originally intended to be accessed visually via a personal computer (PC). Voice response facilities are used for various kinds of information over the phone: time, weather, horoscopes, sports, cultural events and so on. Nuance is one of the providers for speech and imaging solutions for businesses and customers around the world that is based on IVR systems. The VoiceXML along with Nuance 8.5 speech recognition software can reduce cost and effort of deploying voice-driven services. In [1], a VoiceXML- driven audio wiki application is presented that is

IJSER © 2011 http://www.ijser.org

International Journal of Scientific & Engineering Research Volume 2, Issue 4, April-2011 2

ISSN 2229-5518

accessible via both the Public Switched Telephone Network and the Internet. Users may access wiki content via fixed or mobile phones or via a PC using web browser or a Voice over IP service. Silog is a biometric authentica- tion system that extends the conventional PC logon process using voice verification [2]. SeeCCT is a prototype of a multimodal social networking system designed for sharing geographical bookmarks [3]. In [4], VoiceXML portal is developed that allows people with a mobile or usual phone to get informed about cultural activities by dialing a phone number and by interacting with a computer via voice. Domain-specific dialogs are created in native languages viz. slavic languages using VoiceXML [5]. HearSay is a non-visual Web browser developed for visually impaired users [6].
AspectJ is one of the oldest and well-known aspect lan- guages and it helped to bring AOP to the mainstream. AspectJ is an extension of the Java language which de- fines a special syntax for declaring aspects. The first ver- sions of AspectJ featured compile-time source code weav- ing and bytecode weaving. It later merged with Aspect- Werkz which brought load-time weaving as well as As- pectWerkz’s annotation style to the language. AOP is used in a variety of fields. Aspect-oriented software de- velopment had played an important role in the design and implementation of PUMA which is a framework for the development of applications that analyze and trans- form C or C++ source code [7]. A framework for middle- ware design is invented which is based on the Concurrent Event-based Aspect-Oriented paradigm [8]. A fully dy- namic and reconfigurable monitoring system is designed based on the concept of Adaptable Aspect-Oriented Pro- gramming (AAOP) in which a set of AOP aspects is used to run an application in a manner specified by the adap- tability strategy [9]. The model can be used to implement systems that are able to monitor an application and its execution environment and perform actions such as changing the current set of resource management con- straints applied to an application if the applica- tion/environment conditions change. An aspect-oriented approach is advocated as an improvement to the object oriented approach in dealing with the issues of code tan- gling and scattering in case of multilevel security [10].

3 VOICEXML

VoiceXML is HTML of Voice Web. It is W3C’s standard XML format for specifying interactive voice dialogues between a human and a computer. VoiceXML is a mar- kup language for creating voice user interfaces. It uses

————————————————

Sukhada Bhingarkar is with the Computer Engineering Dept., MIT colle- gee of Engineering, Kothrud, Pune, India – 411038

E-mail:sukhada.bhingarkar@gmail.com
Automatic Speech Recognition (ASR) and/or touchtone (DTMF keypad) for input, and prerecorded audio and text-to-speech (TTS) synthesis for output. Numerous commercial vendors such as IBM, TellMe and BeVocal provide voice browsers that can be used to “play” Voice- XML documents. Current voice interfaces to the web are of two types: voice interface to screen display and voice- only interface. The dynamic voice interface presented in this paper is a voice-only interface that uses a telephone as an input and output device. Figure 1 shows the core architecture of VoiceXML applications.

Fig. 1. Architectural Model of VoiceXML

A document server processes requests from a client ap- plication, the VoiceXML Interpreter, through the Voice- XML interpreter context. The server produces VoiceXML documents in reply, which are processed by the Voice- XML Interpreter. The VoiceXML interpreter context may monitor user inputs in parallel with the VoiceXML inter- preter. The implementation platform is controlled by the VoiceXML interpreter context and by the VoiceXML in- terpreter.

4 ASPECT ORIENTED PROGRAMMING (AOP)

The main idea of AOP is to isolate the cross-cutting con- cerns from the application code thereby modularizing them as a different entity. A cross-cutting concern is be- havior, and often data, that is used across the scope of a piece of software. It may be a constraint that is a characte- ristic of your software or simply behavior that every class must perform. The most common example of a cross- cutting concern is that of logging. Logging is a cross- cutting concern because it affects many areas across the software system and it intrudes on the business logic. Logging is potentially applied across many classes, and it is this form of horizontal application of the logging aspect that gives cross-cutting its name. Some central AOP con- cepts are as follows:

Aspects: A modularization of a concern that cuts across multiple objects. Transaction management is a good example of a crosscutting concern in J2EE applications.

IJSER © 2011 http://www.ijser.org

International Journal of Scientific & Engineering Research Volume 2, Issue 4, April-2011 3

ISSN 2229-5518

Join Point: A point during the execution of a program, such as the execution of a method or the handling of an exception

Advice: The code that is executed when an aspect is in- voked is called advice. Advice contains its own set of rules as to when it is to be invoked in relation to the join point that has been triggered. Different types of advice include "around," "before" and "after" advice.

Pointcut: A predicate that matches join points. Advice is associated with a pointcut expression and runs at any join point matched by the pointcut (for example, the execution of a method with a certain name).

Figure 2 shows the relationships between join points, as- pects, pointcuts, advice, and your application classes.

Fig.2. Relationship of AOP concepts with application class [11]

Figure 3 shows a simple business logic class along with an aspect applied to this class.

Fig.3. Business logic class along with aspect

5 INTEGRATING AOP WITH VOICEXML

VoiceXML tags such as ‘<nomatch>’, ‘<noinput>’ ‘<er- ror>’ are usually common tags in most of the VoiceXML documents. Figure 4 shows VoiceXML example that illu- strates basic capabilities of VoiceXML. This VoiceXML is logically divided into three parts: header, body and foo- ter. The header part can contain tags showing xml and vxml version. The body part contains core business logic while footer part has error handing and <naomatch>,
<noinput> tags.

Fig. 4. VoiceXML example

The commonly occurring tags in VoiceXML can be consi- dered as crosscutting concerns and are encapsulated in a special class i.e. an aspect. Figure 5 shows the Servlet that is used to construct VoiceXML.

Fig. 5. Servlet generating VoiceXML code

doGet() or doPost() methods of Servlet concentrates only on core logic code i.e. body part of VoiceXML. The header and footer parts of VoiceXML will be taken care by an aspect class shown in figure 6.

IJSER © 2011 http://www.ijser.org

International Journal of Scientific & Engineering Research Volume 2, Issue 4, April-2011 4

ISSN 2229-5518

Fig. 6. Aspect applied to Servlet

6 CONCLUSION

VoiceXML is a language to create voice-user interfaces while AOP allows us to dynamically modify our static model to include the code required to fulfill the second- ary requirements without having to modify the original static model. Integration of AOP with VoiceXML better separates the concerns of Voice based applications, there- by providing modularization. This helps developers to concentrate on core logic and promotes code reuse.

REFERENCES

[1] Constantinos Kolias et al, “Design and implementation of a VoiceXML-driven wiki application for assistive environments on the web”, Personal and Ubiquitous Computing, 2010, Volume 14, Number 6, 527-539, Springer-Verlag London Li- mited 2010

[2] Sergio Grau, Tony Allen, Nasser Sherkat, “Silog: Speech input logon”, Knowledge-Based Systems, Volume 22, Issue 7, October

2009, Pages 535-539

[3] Stan Kurkovsky et al., “Mobile Voice Access in Social Network- ing Systems”, in the Proceedings of 5th IEEE International Con- ference on Information Technology: New Generations, Las Ve- gas, USA, 7-9 Apr. 2008

[4] Evangelia Boufardea et al, “A Dynamic Voice Portal for Deli- very of Cultural Content” in the Proceedings of 3rd Internation- al Conference on Internet and Web Applications and Services (ICIW’08), Athens, 8-13 Jun. 2008

[5] Brkic M., Matetic M., “VoiceXML for Slavic Languages Applica- tion Development”, in the Proceedings of IEEE international conference on Human System Interactions, Krakow, Poland, 25-

27 May 2008

[6] Borodin Y, Mahmud J, Ramakrishman IV, Stent A (2007) The hearsay non-visual web browser. In: ACM international confe- rence proceeding series, proceedings of the 2007 international cross-disciplinary conference on web accessibility (W4A), vol

225. Banff, Canada, pp 128–129

[7] Matthias Urban, Daniel Lohmann, Olaf Spinczyk, “The Aspect- Oriented Design of the PUMA C/C++ Parser Framework”. In: AOSD '10: Proceedings of the 9th International Conference on

Aspect-Oriented Software Development, March 2010.

[8] Edgar Marques, Luís Veiga, Paulo Ferreira, “An extensible framework for middleware design based on concurrent event- based AOP”, ARM '10: Proceedings of the 9th International Workshop on Adaptive and Reflective Middleware, November

2010

[9] Arkadiusz Janik, Krzysztof Zielinski, “AAOP-based dynamical- ly reconfigurable monitoring system”, Information and Soft- ware Technology, Volume 52 Issue 4, April 2010

[10] S. Kotrappa, Prakash J. Kulkarni, “Multilevel Security Using Aspect Oriented Programming AspectJ”, ARTCOM '10: Pro- ceedings of the 2010 International Conference on Advances in Recent Technologies in Communication and Computing, Octo- ber 2010

[11] Russell Miles, “AspectJ Cookbook”, O'Reilly, 2004

IJSER © 2011 http://www.ijser.org