<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<TITLE>Web Content Delivery to Heterogeneous Mobile Platforms</TITLE>
<META NAME="Template" CONTENT="D:\appl\msoffice\Templates\sv-lncs.dot">
</HEAD>
<BODY>

<B><FONT FACE="TIMES" SIZE=4><P ALIGN="center">Web Content Delivery to Heterogeneous 
Mobile Platforms</P>
</B></FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="center">Martin Gaedke, Michael Beigl, Hans-Werner 
Gellersen, Christian Segor</P>
</FONT>
<DIV align=center><ADDRESS>Telecooperation Office (TecO), University of 
Karlsruhe <BR>
Vincenz-Prießnitz-Str. 1, 76131 
Karlsruhe, GERMANY<BR>
Ph. +49 (721) 6902-79, Fax +49 (721) 
6902-16</ADDRESS></DIV>
<FONT FACE="TIMES" SIZE=1><P ALIGN="center"><BR>
{gaedke, michael, 
hwg, segor}@teco.edu</P><DIR>
<DIR>

<B><P ALIGN="justify">Abstract.</B> It is widely acknowledged 
that information such as web content should be adapted for mobile platforms to 
account for restrictions in mobile environments. As emerging mobile platforms 
such as different kinds of Personal Digital Assistant (PDA) tend to vary largely 
in their capabilities, we suggest that adaptation should be platform-specific. 
Common approaches for content adaptation are automated conversion and explicit 
specification of adapted content, with a trade-off between quality and 
development/maintenance effort. As alternative avoiding this trade-off, we 
propose a simple object-oriented framework for content adaptation. To facilitate 
the use of this framework in the Web, we base our approach on the 
object-oriented WebComposition model and its XML-based implementation WCML. We 
apply our object-oriented approach to an example application to demonstrate 
reduction of development/maintenance effort.</P></DIR>
</DIR>

</FONT><B><FONT FACE="TIMES"><P ALIGN="justify">Information Access from Mobile 
Devices</P>
</B></FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Information access from mobile devices has 
to take a range of restrictions into account that exists in mobile computing 
environments in comparison to desktop environments. Both, properties of wireless 
networks, and mobile devices have to be considered. Regarding mobile devices, 
most notably screen real estate, computing power and power consumption is 
relevant. In this article, we refer to Personal Digital Assistants (PDA) with 
their largely varying properties to motivate the need to adapt information for 
delivery to mobile devices. The proposed solution though does not merely apply 
to PDAs but to heterogeneous mobile devices in general.</P>
<P ALIGN="justify"></P>
<P ALIGN="justify">Several restrictions influence whether and 
how information can be presented on PDA devices. Each of these restrictions has 
to be taken into account when building content that should be delivered to and 
viewed on a PDA, or other mobile device. Below are most important restrictions 
to be discussed.</P>
<P ALIGN="justify"></P>
<I><P ALIGN="justify">Power Consumption. </I>Many researchers 
have indicated that battery live and power consumption are essential constraint 
that mobile devices struggle with; special care has to be taken that 
applications save these important resource. For example, power consuming output 
methods such as audio should be avoided on mobile devices. </P>
<P ALIGN="justify"></P>
<I><P ALIGN="justify">Computing Power.  </I>Mobile devices 
usually have less computing power than stationary computers; computing power 
also varies largely among PDAs or more generally among mobile devices. 
Therefore, content using a lot of computing power, for example compressed video, 
is usually not suited for display on PDAs. </P>
<P ALIGN="justify"></P>
<I><P ALIGN="justify">Display Properties.</I> PDAs and other 
mobile devices have very little screen real estate compared to desktop 
computers. Furthermore, display properties among different PDAs vary too a large 
extent. Table 1 shows a comparison of resolution, size and colour depth 
supported by different PDAs. This table indicates clearly a quite impressive 
difference of the display possibilities of different devices: the resolution 
ranges from 160x98 to 640x480 (factor 20), the size from 3,3x2,1 cm to 13x8 cm 
(factor 15), and the colour depth from 1 bit gray scale displays to TFT with 16 
Millions of colors.</P>
</FONT><B><FONT FACE="TIMES" SIZE=1><P ALIGN="center">Table 1.</B> Display Properties</P></FONT>
<TABLE BORDER =1 CELLSPACING=1 CELLPADDING=7 WIDTH=463 align=center>
<TR><TD WIDTH="29%" VALIGN="top">
<B><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Device</B></FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<B><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Resolution</B></FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<B><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Display Size</B></FONT></P></TD>
<TD WIDTH="26%" VALIGN="top">
<B><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Capability</B></FONT></P></TD>
</TR>
<TR><TD WIDTH="29%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Franklin Rex</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">160x98</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">3,3x2,1 cm</FONT></P></TD>
<TD WIDTH="26%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">2 gray scale</FONT></P></TD>
</TR>
<TR><TD WIDTH="29%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">3Com PalmPilot</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">160x160</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">6x6 cm</FONT></P></TD>
<TD WIDTH="26%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">2 gray scale</FONT></P></TD>
</TR>
<TR><TD WIDTH="29%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Nokia Communicator</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">640x200</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">11,43x3,6 cm</FONT></P></TD>
<TD WIDTH="26%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">8 gray scale</FONT></P></TD>
</TR>
<TR><TD WIDTH="29%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Psion 5</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">640x240</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">5,1x13,5 cm</FONT></P></TD>
<TD WIDTH="26%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">16 gray scale</FONT></P></TD>
</TR>
<TR><TD WIDTH="29%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">CE PalmPC</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">240x320<SUP>+</SUP></FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Ca. 8x6 cm</FONT></P></TD>
<TD WIDTH="26%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Gray scale</FONT></P></TD>
</TR>
<TR><TD WIDTH="29%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P>CE Handheld</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">640x240</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Ca. 16x6 cm</FONT></P></TD>
<TD WIDTH="26%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Gray scale or 
    color</FONT></P></TD>
</TR>
<TR><TD WIDTH="29%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P>Newton 2000</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">480x320</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">12,98x8,32 cm</FONT></P></TD>
<TD WIDTH="26%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">16 gray scale</FONT></P></TD>
</TR>
<TR><TD WIDTH="29%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Toshiba Libretto</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">640x480</FONT></P></TD>
<TD WIDTH="23%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">6,1’’</FONT></P></TD>
<TD WIDTH="26%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">16,7 Mio 
    colors</FONT></P></TD>
</TR>
</TABLE>

<SUP><FONT FACE="TIMES" SIZE=2><P ALIGN="center">+ </SUP>Except Casio PA-2400 Cassiopeia 
420x240</P>
<P ALIGN="justify"></P>
<I><P ALIGN="justify">Communication. </I>Beside the 
characteristics of the mobile device itself, restrictions in the communication 
infrastructure are quite important. Table 2 gives a general overview of 
different options for wireless communication and their characteristics. 
Information to be delivered to mobile devices may have to be adapted to 
bandwidth availability and transmission cost.</P></FONT><B><FONT FACE="TIMES" SIZE=1><P ALIGN="center">Table 2.</B> Communication 
Properties</P></FONT>
<TABLE BORDER =1 CELLSPACING=1 CELLPADDING=7 WIDTH=475 align=center>
<TR><TD WIDTH="33%" VALIGN="top">
<B><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Type of 
            Communication</B></FONT></P></TD>
<TD WIDTH="33%" VALIGN="top">
<B><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Connection 
Cost</B></FONT></P></TD>
<TD WIDTH="33%" VALIGN="top">
<B><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Bandwidth</B></FONT></P></TD>
</TR>
<TR><TD WIDTH="33%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">I/R Communication</FONT></P></TD>
<TD WIDTH="33%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">-</FONT></P></TD>
<TD WIDTH="33%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">115 kbit</FONT></P></TD>
</TR>
<TR><TD WIDTH="33%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Radio 
Communication</FONT></P></TD>
<TD WIDTH="33%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">-</FONT></P></TD>
<TD WIDTH="33%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">2 Mbit</FONT></P></TD>
</TR>
<TR><TD WIDTH="33%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">GSM Modem/Phone</FONT></P></TD>
<TD WIDTH="33%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">1,20$/60sec (in 
            Germany)</FONT></P></TD>
<TD WIDTH="33%" VALIGN="top">
<FONT FACE="TIMES" SIZE=2><P ALIGN="justify">9,6 
kbit</FONT></P></TD>
</TR>
</TABLE>

<FONT FACE="TIMES" SIZE=2><P ALIGN="justify"></P>
<P ALIGN="justify">The above consideration of constraints 
that apply to information delivery to mobile devices shows the need for 
adaptation to more than one parameter. For example, web content may have to be 
adapted regarding the choice of media, the layout of pages, and the overall 
volume of data, depending on computing power, display properties and available 
bandwidth.</P>
<P ALIGN="justify"></P>
<P ALIGN="justify">The remainder of this paper is structured 
as follows. In the next section, we will discuss two common approaches for 
adaptation of information, more specifically web content, to mobile platforms. 
In section 3, we will propose a new approach based on an object-oriented 
framework for content adaptation. Section 3 also introduces an XML-based markup 
language based on WebComposition, an object-oriented model for web applications. 
Finally, section 3 illustrates an example-application applying the 
framework</P>
</FONT><B><FONT FACE="TIMES"><P ALIGN="justify">Approaches to Web Content Adaptation for 
Mobile Platforms</P>
</B></FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">In the remainder of the paper, we discuss 
information access from mobile devices in the context of the World-Wide Web as 
primary information medium. The World-Wide Web as such has a very simple model 
for content delivery to clients and does not provide for adaptation to different 
clients or to clients on mobile platforms in particular. HTML as dominant 
document type does only support the adaptation of image resolution to 
low-resolution browsers. For further adaptation of web content, in particular 
with respect to clients on mobile platforms, two different approaches are 
common:</P>
<P ALIGN="justify"></P>

<UL>
<P ALIGN="justify"><LI>Automated conversion
    <P></P>
<P ALIGN="justify"></P><LI>Explicit specification of adapted content
    <P></P></LI></UL>

<P ALIGN="justify"></P>
<I><P ALIGN="justify">Automated Conversion</I>. This approach is 
based on the use of filters for conversion of web content to a presentation 
suited for mobile devices. <I>PocketWeb</I>, the first PDA 
browser for the WWW presented in 1994 at WWW-2 was based on this approach, for 
example to convert images to bitmap in adaptation to the capabilities of the 
first Newton MessagePad [4]. In PocketWeb, adaptation is primarily based on 
display properties. In contrast, <I>MobileWWW</I> and <I>MobileODBC</I> [1] adapt the transmitted content volume 
automatically to the available bandwidth, based on measuring the QoS of the 
available network and comparing it to the user preferences regarding 
download-time and maximal costs. According to these preferences the content was 
compressed with loss for audio, video and pictures and then transferred. </P>
<P ALIGN="justify"></P>
<P ALIGN="justify">Automated conversion and adaptation of 
content is quite advantageous for creators of applications or content, because 
in an optimal case no additional effort has to be taken to adapt content for 
mobile devices. The disadvantage of the approach is that the semantics of the 
content is not taken into account. While automated conversion may yield 
acceptable results in many cases, it is not reliable and can lead to delivery of 
content that is not useful anymore. For example, compression can lead to 
unreadable output of graphics that are indispensable for the understanding of 
displayed content. In addition, after automated conversion, content media may be 
scaled appropriately but still the content layout may prove awkward, for example 
forcing the user to scroll on the small display. </P>
<P ALIGN="justify"></P>
<I><P ALIGN="justify">Specification of Adapted Content.</I> As 
automated conversion is often unacceptable, it is quite common to explicitly 
specify adapted content for mobile devices. For example, in ESPRIT project 
MILLION, mobile information access to a web-based application was realised by 
specifying HTML documents following style guidelines for HTML delivery to a PDA 
[7]. Instead of style guidelines, specific description languages have been 
proposed for content delivery to small mobile devices. These efforts are driven 
by large consortia, for example the WAP forum proposing the <I>Wireless Markup Language</I> (WML) [9], and the W3C consortium suggesting <I>Compact HTML</I> (CHTML) [10]. 
With a language like WML or CHTML, content can be designed in a way optimised 
for mobile devices. This is a good solution for content and applications created 
exclusively for one class of mobile devices. The solution degrades though, if 
the goal is to gain access from heterogeneous platforms, for example from 
desktop browsers and different kinds of mobile browsers, because then all 
content has to be build several times (for each type of browser, and in addition 
maybe even for different communication bandwidth). </P>
<P ALIGN="justify"></P>
<P ALIGN="justify">Both proposed methods, automated 
conversion and special language, have their trade-offs regarding content 
development for heterogeneous mobile platforms. In the following section, we 
propose to use object-oriented techniques for specification of adapted content, 
aimed at reduced effort for building and maintaining content for heterogeneous 
platforms.</P>
</FONT><B><FONT FACE="TIMES"><P ALIGN="justify">Object-Oriented Development of Web 
Content</P>
</FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">An Object-Oriented Framework for Content 
Adaptation </P>
</B><P ALIGN="justify">We propose an object-oriented approach to 
provide information for heterogeneous browser platforms. The approach aims at 
provision of content adapted to specific browsers but uses object-oriented 
concepts to avoid replicated content definition. The idea is based on the 
well-known model-view concept (or <I>Observer</I> pattern 
[2]) to maintain different views of the same content. In this case, different 
views being content presentations are adapted to specific browser platforms. 
Besides model-view, the idea is to capture commonalties among different views in 
generalised views, and to apply object-oriented inheritance to derive specific 
views. </P>
<P ALIGN="justify"></P>
<P ALIGN="justify">While it is straightforward to devise an 
object-oriented model or framework for the given problem, it is unfortunately 
not easily applied to web-based information delivery. The Web implementation 
model is based on the notion of resources, which have a unique address, and 
which are delivered on request to clients, where they can be rendered in a 
browser. Resources can be static and file-based, or dynamically generated from a 
script. They are meant to capture specific rather self-contained chunks of 
information. While the simplicity of this web implementation model largely 
contributed to the phenomenal success of the Web as information medium, it is 
very limiting from a software engineering perspective. It does especially not 
provide support for basic engineering concerns such as composition, reuse, and 
modifiability. Resources are both too coarse-grained and too specific to 
facilitate the construction of frameworks like the one suggested above. The 
coarse granularity of resources makes it impossible to implement a separation of 
concerns, for instance to separate content from layout. The inherent specificity 
of resources implies that there is no support for generalisation and hence no 
support for reuse-by-inheritance.</P>
<P ALIGN="justify">&nbsp;</P></FONT><FONT FACE="TIMES" SIZE=1><P ALIGN="center"><IMG src="Image7.gif" height=103 width=385>
<B><P ALIGN="center">Fig. 1.</B> Object-oriented framework for 
content adaptation to different platforms </P>
<P></P>
</FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">In order to facilitate the use of the 
above-described framework, we build our approach on WebComposition, an 
object-oriented model for web applications. In the following subsection, the 
model is described briefly, for more detail cf. [3]. Following this, an 
XML-based implementation is introduced.</P>
<B><P ALIGN="justify">The WebComposition Model</P>
</B><P ALIGN="justify">WebComposition defines an object-oriented 
component model, which abstracts from the web implementation model. The 
Component Model is based on components as a uniform concept for modelling web 
entities at arbitrary granularity and level of abstraction. In contrast to 
resources, components are not fixed to a certain grain size but designed to 
capture design artefacts at their natural granularity. For example, in contrast 
to resources, components can capture a content unit as design artefact 
independent of a web page, which is a separate design artefact. Support of 
arbitrary grain-size means that components may model web entities as small as 
individual links or layout resource fragments. Of course, a component may also 
be associated with a complete resource, for instance an HTML document or a 
script generating a web document.</P>
<P ALIGN="justify"></P>
<P ALIGN="justify">Components can reference other components 
to model aggregation (<I>has-part</I>) or specialisation 
(<I>inherits-from</I>). For example, a component modelling 
a page can reference components modelling parts of the page; and a component 
modelling a navigation structure can reference the components that model the 
involved links and anchors. By means of a special reference type, components can 
reference so-called prototypes components from which they inherit state and 
behaviour. Any component can function as prototype, following the 
prototype-instance model as opposed to a class-based object-oriented model. In 
the prototype-instance model, there is no distinction between instances and 
classes, and hence no distinction between the <I>relationships is-instance-of</I> and <I>is-subtype-of 
 </I>[8]. We find the prototype-instance model naturally suited for web 
application modelling, because many web entities, namely those modelling 
content, are rather unique, and because prototyping reflects the copy-and-modify 
type of reuse typically applied in web development. Components may be abstract, 
i.e. function only as prototype for specific components. Abstract components are 
one mechanism to realise code sharing among objects. Another mechanism for code 
sharing is to allow multiple references on the same component, e.g. for a 
component modelling an HTML fragment that is replicated in multiple HTML pages. 
Sharing is fundamental for reuse but also for maintainability as it helps 
keeping modifications local.</P>
<P ALIGN="justify"></P>
<P ALIGN="justify">Components have state and behaviour. The 
state is defined by a list of typed properties (name-value-pairs). For example, 
a component modelling an HTML element has properties relating to that element's 
attributes. The behaviour can be influenced by a set of services. All components 
have to provide at least a persistency service and an implementation service. 
The persistency service allows the component state to read from and to write to 
persistent storage. The implementation service is responsible for mapping the 
component state to a representation in the Web, for instance a mapping to HTML 
code or to script code.</P>
<B><P ALIGN="justify">General WebComposition Implementation 
Concepts</P>
</B><P ALIGN="justify">The WebComposition component model is an 
abstraction from the web implementation model, facilitating the object-oriented 
description of web applications or frameworks in terms of components. The 
implementation of the model is based on two concepts: a <I>component store</I> for persistent storage of the model to enable 
lifecycle-spanning maintenance of components, and automated <I>resource generation</I> from the component model. Both concepts are 
supported by the principle that each component has to provide a persistency 
service and an implementation service, as described above.</P>
<P ALIGN="justify"></P>
<I><P ALIGN="justify">Component Store.</I> The component store 
can be implemented in a standard RDBMS, as the prototype-instance model can be 
mapped in a straightforward way to tables and relationships. Access to stored 
components is implemented in a transaction-oriented protocol supporting checkin, 
checkout, lock, unlock, set and get operations. Stored components are uniquely 
identified through a UUID and a version number. Access to stored components 
would typically be through engineering tools such as property editors and GUI 
builders.</P>
<P ALIGN="justify"></P>
<I><P ALIGN="justify">Resource Generator.</I> The resource 
generator creates resources from the component model of a web application. The 
mapping is facilitated by the components’ implementation service. Starting from 
a root component, the implementation service is invoked top-down from composite 
components to atomic components. The resource generator can perform both a 
complete installation and an incremental update of a web application. For a 
complete installation, the resource generator proceeds top-down through the 
component hierarchy, top-down making directories, opening files and filling 
files with code. For incremental code generation, the resource generator makes 
use of the component store's revision control. In this process, it generates 
those resources that contain components that have been modified. As resources 
themselves are represented by components, component dependencies can be 
evaluated to identify dependent resources. </P>
<B><P ALIGN="justify"><A NAME="_Ref428531172">An XML-based Implementation of WebComposition</A></P>
</B><P ALIGN="justify">In this section, we describe an open 
implementation based on the object-oriented WebComposition approach. Our main 
goal is to provide a possibility, that enables component developer to describe 
and even exchange components whatever type of component store is in use. 
Further, by making available a system-independent description language for 
WebComposition components mobile-device companies could support a well-known set 
of layout components that ideally solve display limitations of their 
devices.</P>
<P ALIGN="justify"></P>
<P ALIGN="center"><IMG src="Image4.jpg" height=158 width=441></P>
</FONT><FONT FACE="TIMES" SIZE=1><P ALIGN="center">Fig. 2. Generating 
Components</P>
</FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">This goal is achieved by using the 
eXtended Markup Language (XML) developed by the Standard Generalized Markup 
Language (SGML) working group of the W3C [W3C]. XML allows the definition for a 
tag-based textual format for semantic mark-up of documents or data. Parsers are 
widely available for almost any important platform, like Unix and WindowsNT, 
providing the web application or the content. Beside the fact, that we prefer 
the Web as application platform, the semantic mark-up enables a resource 
generator to create content even for non HTML-enabled devices (e.g. Mobile 
Phones may receive SMS messages). </P>
<P ALIGN="justify"></P>
<P ALIGN="justify">Turning back to the WebComposition 
approach we can say that a set of components described in an XML-based language 
is equivalent to the "component store". This idea is shown in figure 
2.</P>
<P ALIGN="justify"></P>
<P ALIGN="justify">A resource generator accesses a component 
store by an URI and retrieves a description of the components that need to be 
transformed into the implementation model of the target system (the Web 
implementation model). The components and their states represented by their 
properties are described in an XML-based Language, called WebComposition Markup 
Language. This view on the WebComposition approach doesn't assume a 
client-server content delivery model, as shown in the above figure.</P>
<B><P ALIGN="justify">WebComposition Markup Language</P>
</B><P ALIGN="justify">The WebComposition Markup Language (WCML) 
describes an XML vocabulary for WebComposition that allows the definition of 
(web-) components, properties, and relationships between these components. The 
following code shows a typical structure of a WCML document with some 
components:</P>
</FONT><FONT FACE="Courier New" SIZE=2><P ALIGN="justify"></P><DIR>

</FONT><FONT FACE="Courier,Courier New" SIZE=1><P>&lt;wcml&gt;<BR><BR>&lt;component 
uuid='CVersion'&gt;<BR>&nbsp; &lt;property name='content'&gt;Version 
1.122.58&lt;/property&gt;<BR>&lt;/component&gt;</P>
<P>&lt;component uuid='CVersionNice'&gt;<BR>&nbsp; 
&lt;property name='fontstyle' value='B'/&gt;<BR>&nbsp; &lt;property 
name='content'&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt; &lt;refprop name=' fontstyle 
'/&gt; &gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;refprop name='content' 
from='Cversion'/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ &lt;refprop name=' 
fontstyle '/&gt; &gt;<BR>&nbsp; 
&lt;/property&gt;<BR>&lt;/component&gt;<BR><BR><STRONG>...</STRONG><BR><BR>&lt;/wcml&gt;</P>
</FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify"></P></DIR>

<P ALIGN="justify">Each component is identified by a 
universally unique identifier (UUID); these are in our example the UUIDs <I>CVersion</I> and <I>CVersionNice</I>. 
The current state of the <I>CVersion</I> is defined by the 
value of the 'content'-property. The property is evaluated by the resource 
generator to create the presentation of the component. It is the representative 
for the presentation interface/service described in the WebComposition approach. 
The second component <I>CVersionNice</I> references the <I>CVersion</I> component (by referencing the content-property 
with the <I>refprop</I>-tag) and adds layout information to 
the content. In this code-sharing example the generation of the component <I>CVersion</I> would be "Version 1.122.58" and <I>CVersionNice </I>would result in "<B>Version 1.122.58</B>".</P>
<P ALIGN="justify"></P>
<P ALIGN="justify">Components can be derived from other 
components based on the prototype-instance model. The description of a 
prototype-instance relationship is given by the prototype-tag. A component 
referencing a prototype-component possesses all prototypes and properties of the 
prototype-component, which may be redefined by the latest declaration of a 
property. The following code-segment shows a component deriving from the <I>CVersionNice</I>-component:</P>
<P ALIGN="justify"></P><DIR>

</FONT><FONT FACE="Courier,Courier New" SIZE=1><P>&lt;component uuid='CversionNice2'&gt;<BR>&nbsp;&nbsp; 
&lt;prototype is='CversionNice'/&gt;<BR>&nbsp;&nbsp; &lt;property 
name='fontstyle' value='I'/&gt;<BR>&lt;/component&gt;</P>
</FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify"></P></DIR>

<P ALIGN="justify">The <I>CversionNice2</I> derives the content and the fontstyle property. By 
declaring an own fontstyle-property, the value of the derived fontstyle-property 
is redefined. The presentation of the new component would be: "<I>Version 1.122.58</I>". This example shows the 
difference between class-based and prototype-instance inheritance. Following the 
prototype-instance model, a component may be an instance (like <I>CVersionNice</I>), but may also serve as prototype describing properties 
for an inheriting component.</P>
<P ALIGN="justify"></P>
<P ALIGN="justify">In summary it has be pointed out that an 
XML-based description language allows to exchange components between operating 
systems. XML based upon proven SGML technology is rigorous in terms of <I>well-formed</I> and <I>valid</I> 
documents and therefore it is easy to parse XML-documents, which is important 
for making good use of WCML. WCML abstracts from the concrete Component Store in 
use. This abstraction extends the WebComposition approach by making the concrete 
Component Store unnecessary, giving the WebComposition approach more 
flexibility.</P>
<P ALIGN="justify"></P>
<P ALIGN="justify">The following section shows how to use 
WCML to provide access to a web application for different PDAs.</P>
</FONT><B><FONT FACE="TIMES"><P ALIGN="justify"><A NAME="_Ref428618323">Example application</A></P>
</B></FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">In this section, we will apply the 
component model as described in section 0 to support different views to the 
content of an application. This example will show how to develop an ideally 
adapted web application for mobile devices. We also demonstrate how prototyping 
helps extending an application for additional devices.</P>
<B><P ALIGN="justify">General description for implementing the 
Login-Screens with WCML</P>
</B><P ALIGN="justify">Mobile device users suffer from display 
limitations and bandwidth restriction as shown in section 1. The example shows a 
typical Login-Screen for accessing the TravelAssistant-System, an information 
system, which supports customers with travel planning like plain-schedules etc. 
The use of WCML will only deal with the Login-Screen, but the results can easily 
be adopted for other pages.</P>
<P ALIGN="justify"></P>
<P ALIGN="justify">The following figure shows the desktop 
version of the Login-Screen displayed for a 20"-Monitor.</P>
<P ALIGN="justify"></P>
<P ALIGN="center"><IMG src="Image8.jpg" style="LEFT: 249px; TOP: 5530px" height=166 width=206 ></P>
</FONT><B><FONT FACE="TIMES" SIZE=1><P ALIGN="center">Fig. 3.</B> Login-Screen for 
20"-Monitor</P></FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">The page contains five major elements. The 
top left element shows an image of the system provider and the applications 
version number. The middle of the page presents the application name, followed 
by a form and some text explaining what the user has to do to access the 
information system. User new to system may register to get instant access. A 
copyright notice is given at the end of the page.</P>
<P ALIGN="justify"></P>
<P ALIGN="justify">Following this scenario and reusing some 
existing components by code sharing the code segment gives a component 
description for the above figure.</P>
<P ALIGN="justify"></P><DIR>

</FONT><FONT FACE="Courier,Courier New" SIZE=1><P>&lt;component uuid='CDesktopContent'&gt;<BR>&nbsp;&nbsp; 
&lt;property name='image' value='tecologo.gif'/&gt;<BR>&nbsp;&nbsp; &lt;property 
name='version'&gt;Version 1.122.58&lt;/property&gt;<BR>&nbsp;&nbsp; &lt;property 
name='content'&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;refprop name='content' 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from='CLogo' 
prototype='CDesktopContent'/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;refprop 
name='content' from='CApplicationName'/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;refprop name='content' from='CForm'/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;refprop name='content' from='CRegister'/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;refprop name='content' from='CCopyright'/&gt;<BR>&nbsp; 
&lt;/property&gt;<BR>&lt;/component&gt;</P></DIR>

</FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">The CDesktopContent-component references 
the Logo-component, which itself derives the image and version properties from 
the CDesktopContent-component (prototype element in refprop-tag). The next four 
tags reuse the content of the existing components by simple code sharing without 
inheritance.</P>
<P ALIGN="justify"></P>
<P ALIGN="justify">The following component is used for 
displaying the Login-page on a WindowsCE device. To avoid scrolling forced by 
the half size display resolution the important components are reordered from 
left to right. The possibility to register from a mobile device will not be 
supported. The ordering is done by adding simple HTML-code (Table-tags) to the 
existing component references. In addition, the image-property value is changed 
to a WindowsCE suitable image filename.</P>
<P ALIGN="justify"></P><DIR>

</FONT><FONT FACE="Courier,Courier New" SIZE=1><P>&lt;component uuid='CWindowsCEContent'&gt;<BR>&nbsp; 
&lt;property name='image' value='tecologo256Color.gif'/&gt;<BR>&nbsp; 
&lt;property name='version'&gt;Version 1.122.58&lt;/property&gt;<BR>&nbsp; 
&lt;property name='content'&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;table 
border="0" 
cellspacing="5"&gt;&lt;tr&gt;&lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;refprop name='content' from='CLogo' 
prototype='CDesktopContent'/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/td&gt;&lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;refprop name='content' 
from="CApplicationName"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/td&gt;&lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;refprop name='content' 
from="CForm"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;refprop 
name='content' from="CCopyright"/&gt;<BR>&nbsp; 
&lt;/property&gt;<BR>&lt;/component&gt;</P></DIR>

</FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">The result is shown in comparison to the 
Desktop page in the following figure:</P>
<P ALIGN="justify"></P>
<P ALIGN="center"><IMG src="Image9.jpg" height=200 width=208></P>
</FONT><B><FONT FACE="TIMES" SIZE=1><P ALIGN="center">Fig. 4.</B> Login-Screen for WindowsCE 
device</P></FONT><B><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">Extending for low Bandwidth 
devices</P>
</B><P ALIGN="justify">In this last example, we will show how 
easily the model can be extended using existing components as prototypes. In 
case one needs to provide the WindowsCE page for access by low bandwidth, the 
following component uses the <I>CWindowsCEContent</I>-component as prototype but redefining the 
image-filename. The generator will create the same content (ordered from left to 
right), but linking to a picture of smaller size. The second (for Psion devices) 
and third (for Pilot devices) components also reuse the code by prototyping, but 
linking to images capable by the devices. Due to the small display of the Pilot, 
the image is cut out of the page.</P>
<P ALIGN="justify"></P><DIR></FONT><FONT FACE="Courier,Courier New" SIZE=1><P>&lt;component 
uuid='CWindowsCEContentLowBandwidth'&gt;<BR>&nbsp; &lt;prototype 
is='CWindowsCEContent'/&gt;<BR>&nbsp; &lt;property name='image' 
value='tecologoCELowBandwidth.gif'/&gt;<BR>&lt;/component&gt;</P>
<P>&lt;component uuid='CPsion'&gt;<BR>&nbsp; &lt;prototype 
is='CWindowsCEContent'/&gt;<BR>&nbsp; &lt;property name='image' 
value='tecologo16Gray.gif'/&gt;<BR>&lt;/component&gt;</P>
<P>&lt;component uuid='CPilot'&gt;<BR>&nbsp; &lt;prototype 
is='CWindowsCEContent'/&gt;<BR>&nbsp; &lt;property name='image' 
value=''/&gt;<BR>&lt;/component&gt;</P>
</DIR></FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">This example shows how easily the model of 
a web application can be extended to support different platforms. The content is 
reused on basis of inheritance facilitating further maintenance 
tasks.</P>
</FONT><B><FONT FACE="TIMES"><P ALIGN="justify">Conclusion</P>
</B></FONT><FONT FACE="TIMES" SIZE=2><P ALIGN="justify">In this paper, we have proposed an 
object-oriented approach to development of web content adapted to mobile 
platforms. Our approach is based on the observation even seemingly similar 
devices such as Personal Digital Assistants, vary largely regarding constraints 
effecting content delivery. Further, it is based on the experience that 
automated conversion of web content in general does not yield satisfying 
results. The alternative to automated conversion is development of explicitly 
adapted content for each platform, which of course imposes, replicated 
development effort, not to speak of the maintenance problems. To reduce the 
development and maintenance effort we propose to use an object-oriented 
framework based on the well-known model-view concept. This framework ensures, 
that content is only specified once and then referenced by different views which 
are optimised for the different target platforms.</P>
<P ALIGN="justify"></P>
<P ALIGN="justify">While the proposed framework as such is 
straightforward, its application in the Web unfortunately is not, as the web 
implementation model does not support the required object-oriented concepts such 
as abstraction, delegation, and inheritance. To close this gap, we have applied 
the WebComposition model for which we have presented an XML-based 
implementation, the WebComposition Markup Language. This language enables 
object-oriented specification of web content that can be deployed to different 
platforms. For a small example application, we have demonstrated code reuse 
based on delegation, and extensibility based on inheritance.</P>
</FONT><B><FONT FACE="TIMES"><P ALIGN="justify">References</P><DIR>

</B></FONT><FONT FACE="TIMES" SIZE=1><P ALIGN="justify">[1] Beigl, M. MODBC - A Middleware for 
Accessing Databases from Mobile Computers. <I>Proceedings 
of 3rd Cabernet Plenary Workshop</I>, Rennes, France, 1997 </P>
<P ALIGN="justify">[2] Gamma, E., Helm, R., Johnson, R. and 
Vlissides, J. <I>Design Patterns: Elements of Reusable 
Object-Oriented Software</I>, Addison-Wesley, 1994.</P>
<P ALIGN="justify">[3] Gellersen, H.-W., Wicke, R. and M. 
Gaedke. WebComposition: an object-oriented support system for the Web 
engineering lifecycle. In <I>Computer Networks and ISDN 
Systems 29 (1997)</I>, Special Issue on the 6<SUP>th</SUP> 
Intl. World-Wide Web Conference, Santa Clara, USA, April 1997, p. 1429-1437. 
 </P>
<P ALIGN="justify">[4] Gessler, S. and Kotulla, A. PDAs as 
Mobile WWW Browsers. In <I>Computer Networks and ISDN 
Systems 28 (1995)</I>, Special Issue on the 2<SUP>nd</SUP> 
Intl. World-Wide Web Conference, Chicago, USA, Oct. 1994, p. 53-59</P>
<P ALIGN="justify">[5] Imielinski, T. and Badrinath, B. 
Mobile Wireless Computing. <I>In Communications of the 
ACM</I> No.37 (1994), p. 18-28</P>
<P ALIGN="justify">[6] Kristensen, A. Developing HTML based 
Web Applications. Workshop on Web Engineering (WebE 98), 7<SUP>th</SUP> Intl. World-Wide Web Conference, Brisbane, Australia, April 
1998</P>
<P ALIGN="justify">[7] Lauff, M. and Gellersen, H.-W. 
Multimedia Client Implementation on Personal Digital Assistants. In <I>Proceedings of Interactive Distributed Multimedia Systems 
and Telecommunication Services (IDMS’97)</I>, Darmstadt, Sept. 1997, 
Lecture Notes in Computer Science, Springer-Verlag 1997</P>
<P ALIGN="justify">[8] Ungar, D. and Smith, R.B. Self: The 
Power of Simplicity. In <I>Proceedings of OOPSLA '87</I>, 
p. 227-242, 1987.</P>
<P ALIGN="justify">[9] WAP Forum. Wireless Application 
Protocol: Wireless Markup Language Specification, WAP Forum, 1998</P>
<P ALIGN="justify">[10]World-Wide Web Consortium (W3C). 
Compact HTML for Small Information Appliances, W3C NOTE 09-Feb-1998 </P>
<P ALIGN="justify">[11]World-Wide Web Consortium. XML: 
eXtensible Markup Language. <A 
href="http://www.w3c.org/XML/">http://www.w3c.org/XML/</A></P></DIR>
</FONT></BODY>
</HTML>
