generative approaches for application tailoring of mobile devices
DESCRIPTION
Generative Approaches for Application Tailoring of Mobile Devices. ACM Southeast Conference 2005 Kennesaw, GA. Victoria M. Davis , Dr. Jeff Gray (UAB) and Dr. Joel Jones (UA). Department of Computer and Information Sciences University of Alabama at Birmingham. - PowerPoint PPT PresentationTRANSCRIPT
Generative Approaches for Application Tailoring of
Mobile Devices
Victoria M. Davis, Dr. Jeff Gray (UAB) and Dr. Joel Jones (UA)
Portions of this research were funded by a grant from the National Science Foundation,through the Research Experience for Undergraduates (REU) program.
Department of Computer and Information Sciences
University of Alabama at Birmingham
ACM Southeast Conference 2005Kennesaw, GA
Outline of Presentation
Model-Driven
Application Tailoring
Conclusion
Xform
XML Model Meta-model
Live Demo
Questions?
?
Motivation
Ice Cream Menu
Ice Cream Parlor Example
HTML
Palm Program
Ice Cream Parlor Menu
Ice Cream
Shakes
By applying generative programming and model-driven software engineering, it is possible to generate multiple software artifacts from a single high-level description.
ProblemPDA’s
.prc Files
Web Browsers.html Files
Blackberry.cod/.jar Files
Cellular Phones.jad/.jar Files
Java 2 Micro EditionJ2ME
Application Tailoring
Model
PDAJ2ME .jad .mf .prc
J2ME .jad .mf
.html
Cellular Phone
Computer
Translator
XML Model Overview
XML Specification Palm ApplicationsPhone Applications
HTML
Apache Tomcat ServerXalan Translator
Servlets
Input Output
Voice XMLVoice XMLProvides a consistent Provides a consistent
structure for the structure for the translationtranslation
http://www.w3.org/Voice/
Translation Process - HTML
<p> Select a flavor of Ice cream. HTML Code
<xsl:for-each select="//form/field"> <xsl:text><p></xsl:text> <xsl:value-of select="prompt[1]" />
XSL Code for HTML
Start with VoiceXML code…<field name="flavor"> <prompt> Select a flavor of Ice cream.</prompt>…
Choose a translation
Translating engine is invoked
XALAN
Translation Process - Palm
XSL Code for J2ME<xsl:for-each select="field"> <xsl:text>menu.append("</xsl:text> <xsl:value-of select="prompt[1]" />
menu.append (“Select a flavor of Ice cream.J2ME Code
Start with VoiceXML code…<field name="flavor"> <prompt> Select a flavor of Ice cream.</prompt>…
Choose a translation
Translating engine is invoked
XALAN
GME Model Overview
Palm ApplicationsPhone ApplicationsHTML
InterpreterC++
Input Output
Meta-model Model
The Generic Modeling Environment (GME) is a meta-configurable modeling tool
http://www.isis.vanderbilt.edu/Projects/gme/
Translation Process Start by creating a metamodel
Domain-specific representation
that consists of entities and relations Outputs a paradigm of that model
Create an instance of the model Build the online menu as objects
in the model Run the interpreter
Access to the objects in the model
provided by C++ C++ code written to translate the
objects to the J2ME code Result
The application tailored to the device
is created by the interpreter
Domain-Specific Metamodel
Model
XML and XSLT Approach High level of abstraction Code can be generated for
many types of devices One XML file is input to
MANY translations XSL translations are needed
for each output Have to be handled
separately by servlets Not as easy for end users
Requires knowledge of XML
Runtime Tailoring
Model-Driven Approach Higher level of abstraction than
XML model Code can be generated for many
types of devices One metamodel can be
interpreted into MANY translations Compiling and packaging are
contained within the interpretation Easier for end users
Must be instructed how to build the model
Compile time tailoring
Results
Conclusion Application tailoring of mobile devices is possible using generative and model driven programming techniques.
User with limited programming experience can create domain specific applications.
Manually rewriting code for each device is eliminated.
One model provides the input for many applications.