CMS-driven development of adaptive mobile web applications
126
Faculteit Ingenieurswetenschappen Vakgroep Informatietechnologie Voorzitter: Prof. Dr. Ir. D. De Zutter CMS-driven development of adaptive mobile web applications using progressive enhancement techniques door He¨ ıko Desruelle Promotor: Prof. Dr. Ir. F. Gielen Begeleider: Ir. D. Blomme Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen Academiejaar 2009–2010
CMS-driven development of adaptive mobile web applications
CMS-driven development of adaptive mobile web applications using
progressive enhancement techniquesCMS-driven development of
progressive enhancement techniques
Begeleider: Ir. D. Blomme
Masterproef ingediend tot het behalen van de academische graad
van
Master in de ingenieurswetenschappen: computerwetenschappen
Academiejaar 2009–2010
CMS-driven development of
progressive enhancement techniques
Begeleider: Ir. D. Blomme
Masterproef ingediend tot het behalen van de academische graad
van
Master in de ingenieurswetenschappen: computerwetenschappen
Academiejaar 2009–2010
“The author gives permission to make this master dissertation
available for consultation and to
copy parts of this master dissertation for personal use.
In the case of any other use, the limitations of the copyright have
to be respected, in particular
with regard to the obligation to state expressly the source when
quoting results from this master
dissertation.”
Acknowledgements
First and foremost, I would like to thank my promotor Prof. dr. ir.
Frank Gielen for the
challenging opportunities I have been given over the past year. His
expertise has been of great
value to the direction of this thesis.
I also want to express my gratitude to my advisor ir. Dieter Blomme
for the helpful input and
some excellent tips to improve this document.
Heko Desruelle, May 2010
CMS-driven development of adaptive
enhancement techniques
Master’s thesis submitted to obtain the academic degree of
master of computer science engineering
Academic year 2009–2010
Advisor: Ir. D. Blomme
Overview
The growing diversity of devices connected to the web has increased
the need for mobile applica- tions being accessible at any time and
on any device. This article proposes an architecture and the
required algorithms to support the development of adaptive
web-based applications. The suggested system addresses this
challenge by extending CMS-driven web application frameworks with
component-based development capabilities. The necessary degree of
adaptivity is provided by an algorithm derived from the Logic
Scoring of Preference (LSP) method. Specific mobile modifications
are proposed to optimize LSP for mobile usage.
Keywords:
CMS-driven development of adaptive mobile web applications using
progressive enhancement
techniques Heko Desruelle
Supervisor(s): Frank Gielen, Dieter Blomme
Abstract— The growing diversity of devices connected to the web has
in- creased the need for mobile applications being accessible at
any time and on any device. This article proposes an architecture
and the required algo- rithms to support the development of
adaptive web-based applications. The suggested system addresses
this challenge by extending CMS-driven web ap- plication frameworks
with component-based development capabilities. The necessary degree
of adaptivity is provided by an algorithm derived from the Logic
Scoring of Preference (LSP) method. Specific mobile modifications
are proposed to optimize LSP for mobile usage.
Keywords—mobile web applications, adaptivity, component-based
develop- ment, LSP
I. INTRODUCTION
Mobile has become a powerful mass medium, with a greater reach and
faster growth than any other known media type [1]. However, not
only penetration rates are starting to outnumber PCs, mobile
technology itself is also catching up fast. Today, even devices
from the low-end segment start to have internet access capabilities
and support for browsing, e-mails, etc. The growing diversity of
devices with internet connectivity has re- sulted in a boosted need
for applications being available at any time, anywhere and on any
device.
Current technologies for the creation and delivery of mobile
applications are however insufficiently prepared for this level of
change. Without the appropriate platform or tool support, the
adaptivity requirements remains the developer’s responsibility to
handle, which inevitably drives up costs and narrows the target
market. This unbalance situation has led to the general believe
that the development of platform-dependent mobile applications does
not represent the future for the mobile industry.
The evolution towards the web as an application platform is gaining
momentum. Standardized Web technologies try to over- come most of
the restrictions plaguing native applications devel- opment and
introduces browser technology as a universal client through which
all interaction with the device is handled.
This article will demonstrate the feasibility of the web as an
application platform. An architecture and the necessary algo-
rithms will be proposed in support of adaptive Web-based appli-
cation development.
II. ARCHITECTURE
The architecture aims at extending web application frameworks with
a portable library for component-based development. Com- ponents
can be requested, whilst it is the library’s responsibility to
provide the necessary degree of adaptivity and autonomously
select the optimal rendering. The decomposition shown in Fig- ure 1
is at the heart of the proposed system. Given the client- device’s
capabilities, an optimal candidate is selected by pushing all
available components through a filtering pipeline. This pro- cess
is elaborated in section III.
Fig. 1. Component Locator
III. ALGORITHM
The suggested component selection algorithm will evaluate the
suitability of the available components and autonomously select the
most appropriate candidate. It encompasses the following four
consecutive steps.
A. Resource fetching
A preliminary step collects all available components and their
metadata. The metadata specifies the component type, priority
settings and the device capabilities it requires for an optimal
ren- dering. This will be the selection process’s initial set of
candi- dates.
B. Type filtering
A coarse filtering is performed on the fetched candidates. Their
defined types are matched to the requested component type. Only the
matching candidates are passed to the following filter. This action
aims at minimizing the next filter’s execution time, as it is
computationally the most complex part of the algorithm.
C. Suitability filtering
The remaining candidates are evaluated and scored by matching their
capability requirements to the requesting device. A naive tactic
would be to apply simple Boolean logic, in which a compo- nent can
only be accepted or rejected. This is an almost infeasible
approach, as it would require the availability of perfectly match-
ing components for each possible device configuration. Instead, the
use of fuzzy logic is proposed to express a degree of simi- larity
in terms of “maybe- ness”. This enables the system to ob- jectively
evaluate all candidates and even take less-than-perfect matches
into account if no better solution is available.
The suitability filtering relies on the Logic Scoring of Prefer-
ence (LSP) method [2] with specific adaptations to fit the mobile
context. LSP is a general quantitative decision method, initially
designed for the evaluation, comparison and selection of com- plex
hardware and software systems. Using predefined fuzzy distance
functions, each of the candidate’s required device ca- pabilities
are matched to the actual device characteristics. These functions
express a percentage degree of similarity in which the device’s
capabilities match that certain requirement.
For each candidate, the individual degrees of similarity for the
required device capabilities are combined into one objec- tive
overall score. This aggregated score is used to determine the
best-matching candidate. The basic aggregator mechanisms in LSP are
based on the superposition of fundamental Gener- alized
Conjunction/Disjunctions (GCD) [3], enabling the spec- ification of
aggregations in terms of 17 graded combinations of conjunction and
disjunction. The equation below shows the GCD’s Weighted Power Mean
(WPM) implementation [4], with variables Wi representing the
relative weight for each individual score xi. The exponent r
expresses the degrees of conjunction and disjunction.
Mr W (x1, · · · , xn) = (W1x
r 1 +W2x
r 2 + · · ·+Wnx
D. Conflict resolution
Conflict resolution is the algorithm’s final step. The possibility
exists that multiple candidates are evaluated with the same de-
gree of overall similarity regarding the devices characteristics.
These conflicts are handled by upholding a priority-based selec-
tion policy. The component’s priorities are predefined in their
metadata and ensure that the final candidate selection will only
contain one component.
IV. DATA STRUCTURE
Each component consists of a metadata descriptor and a con- tainer
for its markup, styling and scripting resources. For porta- bility
considerations, XML is used to specify the component’s
descriptor. The metadata contains an overview of the name, type and
device capability requirements. No specific naming conven- tions
are imposed for the resources in the container, as the re- quired
associations are specified in the metadata descriptor.
V. PROOF OF CONCEPT
To demonstrate the feasibility of this system, a proof of concept
implementation was made for Joomla! [5]. This version mainly
focusses on the previously identified technical and algorithmic
challenges. In a second implementation phase, portability was
explicitly verified by porting the system to Drupal [6] , a techno-
logically similar framework.
VI. RESULTS
A proof of concept for the Joomla! 1.5 framework was success- fully
implemented, providing the required means to cope with mobile
platform fragmentation. It supports the creation of adap- tive
Web-based applications and offers developers the necessary
flexibility to create and instantly deploy new components.
Various types of components were implemented, targeting a wide
range of devices. Support was confirmed for low-end devices,
feature-phones and smartphones such as Android and iPhone
devices.
In terms of portability, the use of encapsulation and restricted
communication paths in the architectural design have clearly sep-
arated the framework-dependent parts from the rest of the sys- tem.
Providing a port to Drupal 6 only required the adaptation of the
resource storage, caching service and device capability de-
tection. The process of transferring actual components does not
require any modifications, as they are completely independent from
the underlying framework.
VII. CONCLUSION
The proposed architecture provides a means for developers to cope
with mobile platform fragmentation. We have developed an approach
for the creation and delivery of adaptive mobile web-based
applications. This system extends web application frameworks with
component-based development capabilities and applies a mobile
adaptation of the LSP method for performing multi-valued candidate
evaluations.
REFERENCES
[1] T. Ahonen: Mobile As 7th of the Mass Media: Cellphone,
Cameraphone, Iphone, Smartphone. Futuretext, 2008.
[2] J.J. Dujmovic, A method for evaluation and selection of complex
hardware and software systems, In: Proceedings of the International
Conference for the Resource Management and Performance Evaluation
of Enterprise Com- puting Systems (CMG96), San Diego, CA, USA, Vol.
1, pages 368-378, Dec 1996.
[3] J.J. Dujmovic, Preferential Neural Networks. Chapter 7 in
“Neural Net- works - Concepts, Applications and Implementations.”
Vol. II. Prentice - Hall Advanced Reference Series, Prentice Hall,
pages 155-206, 1991.
[4] I. Batyrshin, O. Kaynak, I. Rudas, Generalized conjunction and
disjunction operations for fuzzy control. In: Proceedings of
EUFIT98, Vol. 1, pages 7-10, Sep 1998.
[5] Anonymous, Joomla!. http://www.joomla.org [Online]. [6]
Anonymous, Drupal. http://www.drupal.org [Online].
ACKNOWLEDGEMENTS vi
Nederlandse samenvatting
Inleiding
Context
Mobiele diensten zijn het massamedium van de toekomst. Hun groei is
sterker en verstrekkender
dan enig eerder gekende type. Volgens recente bepalingen van de
Verenigde Naties bezit meer
dan de helft van de wereldbevolking over een mobiel toestel. Dit is
meer dan het dubbele van
het huidig gebruik van computers en televisies.
De huidige mobiele technologie heeft een hele evolutie achter de
rug. De eerste mobiele toestellen
ondersteunden slechts de mogelijkheid om gesprekken te voeren en
berichten te verzenden via
SMS diensten. Vandaag beschikken zelfs de toestellen uit de
goedkoopste segmenten over de
functionaliteit om op het web te surfen, e-mails te verzenden,
sociale netwerken te raadplegen,
enz. Het is eveneens mogelijk geworden om de functionaliteit van
een toestel uit te breiden door
applicaties afkomstig van derden te installeren.
Mobiele gebruikers dragen hun toestel meestal continu bij zich. Dit
maakt het een nuttig in-
strument in vaak uiteenlopende situaties, maar de divergente
gebruikscontexten creeeren echter
de nood aan specifieke toepassingen. De mogelijkheid om extra
applicaties te installeren is een
belangrijke stap geweest in de vervulling hiervan, omdat het
gebruikers de mogelijkheid geeft
om hun toestel naar wens aan te passen.
Toch blijkt het ontwikkelen en distribueren van applicaties niet zo
vanzelfsprekend. De frag-
mentatie van mobiele platformen en restricties vanuit de mobiele
industrie hebben ertoe geleid
dat de kosten voor het ontwikkelen van mobiele software onhoudbaar
zijn geworden. De vereiste
inspanning nemen toe in bijna elk aspect van de software
levenscyclus, terwijl de doelmarken
alsmaar kleiner worden. Het is deze evolutie die aan de basis ligt
van de groeiende ontevreden-
heid bij ontwikkelaars, die ervan overtuigd raken dat de toekomst
van de mobiele industrie niet
bij native oplossingen ligt.
Als we mogelijke alternatieven aanschouwen, groeit de aanhang voor
een web-gebaseerde oplossin-
gen. Het is de bedoeling om met deze aanpak de meeste restricties
waarmee ontwikkelaars
geplaagd worden bij het maken van native applicaties te omzeilen.
Dit door de browser als
universele client te aanzien waarlangs alle interactie met het
toestel afgehandeld wordt. De-
salniettemin de maturiteit van het web, bestaan er nog een aantal
technische beperkingen ten
opzichten van het ontwikkelen van krachtige web-gebaseerde
applicaties. Toch zijn specificaties
voor nieuwe standaarden in aantocht en kan men in afwachting van
deze nieuwe mogelijkheden
gebruik maken van krachtige hybride oplossingen.
Browsers worden alsmaar krachtiger en krijgen vaker toegang
specifieke toestel interfaces zoals
geolocatie en informatie over de orientatie van het scherm. Toch is
dit slechts een schimp van
de mogelijkheden die ons de komende jaren te wachten staan.
Standaardisatie inspanningen
van het W3C en BONDI initiative hebben geleid tot specificaties met
tientallen verschillende
interfaces naar functies op het toestel. Zo wordt er zelfs verwacht
dat web applicaties tegen 2013
via de browser een groot deel van de native applicatie
functionaliteit zal kunnen evenaren.
Doelstelling
In deze thesis zullen de vraag, alsook de voordelen en uitdagingen,
in beschouwing worden
genomen om een evolutie naar web applicaties mogelijk te maken. In
een tweede fase zal de
haalbaarheid van een web-gebaseerd platform voor zowel
eindgebruikers als ontwikkelaars aange-
toond worden. Er zal tenslotte een systeem gespecificeerd worden
dat in staat is om optimaal om
te gaan met mobiele platform fragmentatie door de ontwikkeling van
adaptieve web applicaties
mogelijk te maken.
De Nederlandse samenvatting van deze thesis omvat de volgende
onderdelen:
• Specificatie
In dit hoofdstuk zal het systeem dat we willen bouwen
gespecificeerd worden. Hierbij zal
een vision document gedefinieerd worden en overlopen we de
functionele- en kwaliteitsvereis-
ten waaraan het systeem zal moeten voldoen.
• Architectuur
Een volgende stap is het voorstellen van een architectuur die in
overeenstemming is met
de gestelde vereisten uit de specificatiefase. Het ontwerp van de
architectuur zal gebeuren
aan de hand van de Attribute-Driven Design (ADD) methode.
• Algoritmen en datastructuren
datastructuren in het voorgestelde systeem.
• Proof of concept
Om de haalbaarheid van het systeem aan te tonen zal in dit
hoofdstuk de generieke archi-
tectuur en algoritmen toegepast worden op een bestaand CMS
omgeving.
• Besluit
Deze thesis wordt afgesloten met een besluit. We zullen samenvatten
wat we bereikt
hebben, wat de mogelijkheden tot verbetering zijn en op welke
onderwerpen verder onder-
zoek gevoerd kan worden.
Specificatie
Een eerste belangrijke stap in de specificatie van het systeem dat
gebouwd dient te worden is
het vastleggen van het vision document. Deze beschrijft duidelijk
wat er gedaan zal worden, wat
de belangrijkste eigenschappen zijn en aan welke
kwaliteitsvereisten er dient te worden voldaan.
Na deze definities zal de specificatie-fase besloten worden met de
toelichting van de use cases.
Vision Document
Missie
Het is het doel van deze thesis om een CMS-gebaseerd web applicatie
framework dat het MVC
principe toepast uit te breiden. Deze extensie zal het mogelijk
maken om component-gebaseerde
ontwikkeling te ondersteunen dat optimalisaties bevat voor gebruik
in een mobiele context.
Het voorgestelde systeem zal de verantwoordelijkheid hebben om
componenten te beheren en
autonoom selecties te kunnen uitvoeren van optimale versies op
basis van de capaciteiten van een
gegeven toestel. Met deze aanpak willen we de vereiste inspanningen
op het vlak van applicatie
ontwikkeling minimaliseren, zonder het afleveren van
toestel-geoptimaliseerde web applicaties te
verhinderen.
Belangrijkste eigenschappen
• Slechts een versie van een web applicatie dient aangemaakt te
worden, aanpassingen naar
de eigenschappen van de verschillende toestellen gebeurt
automatisch.
• Eenvoudige ontwikkeling en distributie van nieuwe applicatie
componenten.
• De evaluatie worden automatisch geevalueerd op hun
toepasbaarheid.
• Het gebruik van progressive enhancement technieken wordt
ondersteund en zelfs aange-
moedigd in de componenten
• Geen aanpassingen aan de eigenlijke framework code nodig. Het
systeem is volledig
gemplementeerd als een CMS extensie.
• Er is geen vereiste om op het mobiele toestel enige software te
installeren.
Kwaliteitseigenschappen
• Aanpasbaarheid
Op basis van de problemen die gepaard gaan met mobiele platform
fragmentatie, is aan-
pasbaarheid een belangrijke vereiste voor ons systeem. Het systeem
dient voldoende flex-
ibiliteit te hebben om het aanmaken van nieuwe componenten door
externe ontwikkelaars
te ondersteunen. CMS beheerders dienen eveneens deze extra
componenten te kunnen in-
stalleren zonder geconfronteerd te worden met onnodige complexiteit
of het onbereikbaar
zijn van hun CMS instantie.
• Gebruiksvriendelijkheid
Het systeem dient om te kunnen gaan met een diversiteit aan
toestellen. Het is belangrijk
de optimale ervaring van de eindgebruiker te kunnen garanderen door
deze te voorzien van
een web applicatie die schijnbaar geoptimaliseerd is voor zijn
specifiek toestel.
• Overdraagbaarheid
Het systeem dient overdraagbaar te zijn naar andere CMSen met een
gelijkaardige technol-
ogische basis. Het overzetten van het systeem mag slechts een
minimum aan inspanning
vereisen. De eigenlijke componenten dienen volledig CMS
onafhankelijk te zijn en dus
onmiddellijk over te zetten naar de nieuwe basis.
• Performantie
Performantie is sowieso een algemeen probleem in CMS-gebaseerde
omgevingen. De ex-
tra verwerkingstijd die ons systeem vereist moet tot een minimum
beperkt blijven en de
standaard CMS performantie maatregelen niet tegenwerken of
onbruikbaar maken.
Use cases
Figure 5.1 geeft een overzicht van het use case diagram. Voor een
volledige uitwerking van de
belangrijkste use cases verwijzen we naar Appendix A.
Architectuur
De architectuur van dit systeem zal bepaald worden aan de hand van
de Attribute-Driven Design
(ADD) methode. Deze aanpak maakt gebruik van de kwaliteitsvereisten
van het systeem om
een software architectuur vast te leggen. In overeenstemming met de
methodologie van deze
methode begint het proces met het gehele systeem als een entiteit
en wordt het vervolgens
recursief opgedeeld in kleinere componenten.
Eerste iteratie
De eerste iteratie gebeurt op basis van de portabiliteitsvereiste
(Eenvoudige portabiliteit naar
andere CMSen met een gelijkaardige technologische basis). Om een
flexibel systeem te bouwen
dat relatief eenvoudig over te zetten is naar andere CMSen is het
belangrijk de daadwerkelijke
CMS afhankelijkheden van het systeem af te schermen van de rest van
het systeem. Dit leidt
tot de decompositie zoals weergegeven in Figuur 6.3, met de
volgende componenten:
• Dispatcher
De dispatcher behandelt inkomende aanvragen voor het aanmaken van
componenten.
In eerste instantie zal de Locator aangewend worden voor het zoeken
van de optimale
beschikbare component op basis van de capaciteiten van het mobiele
toestel. Nadat een
geschikte component gevonden is, zal de Dispatcher deze aanmaken en
de resulterende
output teruggeven.
• Locator
De Locator heeft als verantwoordelijkheid te zoeken naar de best
geschikte implementatie
van een bepaald component-type. Als geen perfecte component
gevonden wordt, zal de
Locator de best overeenstemmende kandidaat in beschouwing nemen en
deze selecteren.
De Locator handelt eveneens conflicten af in geval van meerdere
evenwaardig geevalueerde
kandidaten door regels op basis van prioriteiten toe te
passen.
• Application Component
Dit onderdeel is de eigenlijke representatie van een applicatie
component. Na geselecteerd
te zijn, zal zijn basis layer en de progressive enhancement layers
die van toepassing zijn
gegenereerd en teruggegeven worden aan de web applicatie.
• Resource Manager
De Resource Manager handelt aanvragen af om nieuwe resources toe te
voegen aan het
systeem. Deze resources kunnen nieuwe implementaties zijn van
bepaalde componen-
ten, of aangepaste similariteitsmaten die gebruikt kunnen worden
bij het zoeken naar een
geschikte component gegeven de eigenschappen van een mobiel
toestel.
• Service Aggregator
De Service Aggregator is de hoofdcomponent in deze decompositie.
Het biedt toegang tot
de verschillende services van het systeem, die vaak een aggregatie
zijn van een aantal basis
services zoals device detectie, het opslaan van resources, etc. De
Aggregator wordt zo klein
mogelijk gehouden en implementeert enkel atomaire services zoals
het delegeren van com-
municatie. De andere basis services, die vaak CMS afhankelijk zijn,
worden geabstraheerd
in de volgende vier “service” componenten.
• Device Detection Service
De Device Detection Service biedt het systeem de mogelijkheid om
gedetailleerde gegevens
te achterhalen over de capaciteiten van het toestel waarmee de web
applicatie geraadpleegd
wordt. Dit is een belangrijke service, omdat een groot deel van de
functionaliteit van het
systeem gebaseerd is op deze informatie.
• Scoring Service
Deze service biedt de basis voor het bepalen van similariteitsmaten
tussen kandidaat com-
ponenten en de eigenschappen van specifieke toestellen. We
verwijzen naar Hoofdstuk 7
voor een uitgebreide bespreking van het achterliggende
algoritme.
• Component Resource Service
Deze service behandelt aanvragen voor de opslag en het oplijsten
van de beschikbare
componenten in het systeem.
• Caching Service
Door de complexe berekeningen voor het bepalen van de optimale
componenten, kan het
systeem de performantie van het CMS in gedrang brengen. Daarom
zorgt deze service
ervoor dat resultaten voor populaire toestellen in een cache
opgeslaan worden, zodat het
volledige selectie proces niet uitgevoerd hoeft te worden.
Tweede iteratie
De tweede ADD iteratie gebeurt op basis van aanpasbaarheid (Het
flexibel toevoegen van nieuwe
systeem resources). Deze iteratie zal zich toeleggen op de Locator,
omdat het een belangrijk
onderdeel is van ons systeem. De Locator is opgedeeld in een aantal
sequentiele stappen, waarvan
de exacte decompositie weergegeven is in Figuur ??. De samenwerking
tussen deze onderdelen
wordt besproken in het hoofdstuk rond Algoritmen en
datastructuren.
Algoritmen en datastructuren
De belangrijkste algoritmen en datastructuren in ons systeem zullen
hier besproken worden.
Component selectie algoritme
Het eerste algoritme beschrijft de automatische selectie van de
meest geschikte component,
gegeven het gewenste component-type en de eigenschappen van het
mobiele toestel. Het algo-
ritme bestaat uit vier opeenvolgende stappen:
• Resource fetching
De eerste stap zal alle beschikbare componenten in het systeem
verzamelen in combinatie
met hun meta-data. Deze data beschrijft het component-type, zijn
prioriteitsinstellingen
en verzameling van optionele en vereiste toestel karakteristieken
waarvoor de component
ontworpen was.
• Type filtering
In de volgende stap wordt een eerst grove filtering toegepast op
deze set van kandidaten.
Het gevraagde component-type wordt vergeleken met het
daadwerkelijke type van elk van
de kandidaten. Enkel de overeenstemmende componenten worden
behouden.
• Suitability filtering
De overblijvende kandidaten gaan vervolgens doorheen het
selectieproces, waarbij elk een
score toegekend krijgt die de mate van overeenstemming uitdrukt met
de capaciteiten
van het mobiele toestel. In plaats van eenvoudige Booleaanse logic
die enkel toelaat om
componenten volledig te aanvaarden of af te wijzen, wordt er
gebruik gemaakt van vage
logic die toelaat om niet perfecte kandidaten toch nog in
beschouwing te houden tot een
betere kandidaat gevonden is. Deze stap wordt verder toegelicht in
de sectie over Logic
Scoring of Preferences (LSP).
• Conflict resolution
Conflict resolutie is de laatste stap in het algoritme. Deze is
nodig door de flexibiliteit die
het systeem aanbiedt om nieuwe extern ontwikkelde componenten te
installeren. Hierdoor
kan het voorkomen dat kandidaat componenten een gelijke
similariteitsmaat toegewezen
krijgen. Door het toepassen van prioriteitsregels zal het systeem
deze conflicten oplossen.
Het is vanzelfsprekend dat de CMS administrator in zijn backend de
instellingen voor
prioriteiten eveneens manueel naar wens kan aanpassen.
Logic Scoring of Preferences
De LSP methode is een algemene kwantitatieve beslissingsmethode
voor het evalueren, vergeli-
jken en selecteren van complexe hardware en software systemen. LSP
heeft als doel complexe
constructies te vergelijken en mogelijke configuraties objectief
een score toe te kennen. Deze
methode vereist de volgende vier stappen . Het is belangrijk op te
merken dat enkel stap 2 door
de kandidaat component dient gemplementeerd te worden. Stap 1, 3 en
4 maken onderdeel uit
van het systeem zelf.
1. Het bepalen van alle systeem attributen die gebruikt kunnen
worden voor het bepalen van
similariteitsmaten tussen de kandidaten.
2. Elke kandidaat dient voor de attributen die in zijn geval van
toepassing zijn te bepalen
wat de gewenste waarde hiervan is. Deze waarden worden aangeduid
als de elementaire
criteria.
3. Het bepalen van vage logic functies voor elk van de
gedentificeerde attributen. Dit heeft
als doel elementaire similariteitsmaten te bepalen voor het
vergelijken van elementaire
criteria met de toestel-specifieke waarde voor dat attribuut.
4. Het ontwikkelen van logische aggregators die elementaire
similariteitsmaten combineren
tot een objectieve algemene score voor elke kandidaat.
De logische aggregatie van scores is gebaseerd op de superpositie
van fundamentele General-
ized Conjunction/Disjunction (GCD). Deze functies laten toe
aggregaties uit te drukken met
een enkele operator in termen van partiele conjunctie, volledige
conjunctie, partiele disjunctie,
volledige disjunctie en neutraliteit.
Een vaak gebruikte implementatie voor GCD zijn Weighted Power Means
(WPM), omdat het
alle 17 vooropgestelde aggregaties van GCD ondersteunt. De WPM om n
individuele simi-
lariteitsmaten te aggregeren is berekend volgens de vergelijking
hieronder. De variabelen Wi
vertegenwoordigen de onderlinge gewichten voor elke individuele
score xi.
WPM(x1, x2, . . . , xn; W1,W2, . . . ,Wn; r) = (W1x r 1 + W2x
r 2 + · · ·+ Wnx
r n)1/r (1)
De exponent r wordt berekend volgens de gewenste maat van
conjunctie en disjunctie in de
aggregatie. Tabellen 7.3 en 7.4 geven de meest gebruikte maten
hiervoor terug.
Component datastructuur
Om de portabiliteitsvereiste van het systeem te ondersteunen, is er
gekozen voor om de descriptor
van een component in XML op te stellen. We verwijzen naar Appendix
B voor een volledig
overzicht van het voorgestelde XML Schema Definition (XSD).
Proof of Concept
Om de haalbaarheid van de voorgestelde architectuur en algoritmen
aan te tonen is een proof
of concept gemplementeerd. Omdat niet alle features even belangrijk
zijn hiervoor zal eerst
een beperkte scope opgesteld worden, waarin er voornamelijk op de
essentie toegespitst zal
worden. Op basis van deze implementatie zullen de bekomen
resultaten vergeleken worden met
de vooropgestelde architecturale drivers uit de specificatie
fase.
Scope
De proof of concept zal zich richten op de technische- en
algoritmische uitdagingen die in de
vorige hoofdstukken gedentificeerd werden. Een eerste implementatie
zal voorzien worden als
een extensie voor het Joomla! 1.5 CMS. Vervolgens, zal de
portabiliteitsvereiste van het systeem
aangetoond worden door het systeem over te zetten naar het Drupal 6
CMS. In de laatste fase,
zal het systeem gebruikt worden als een platform voor het aanbieden
van hybride web applicaties.
Dit zal bekomen worden door bijkomende componenten te implementeren
met de mogelijkheid
om een hybride client JavaScript API aan te spreken.
Resultaten
De resultaten van de proof of concept implementatie worden onder
meer gedemonstreerd met
behulp van een aantal screenshots in Appendix C. In deze sectie
worden de resultaten uit de
verschillende fase van onze scope vergeleken met de belangrijkste
architecturale drivers.
Volledig web-gebaseerde applicaties
De eerste fase van de proof of concept is het implementeren van een
Joomla! 1.5 extensie die
voldoet aan de specificatie van het voorgestelde systeem. Het
systeem werd succesvol gemple-
menteerd en gebruikt als basis voor het aanmaken van adaptieve web
applicaties. De proof of
concept werd getoetst aan de verschillende kwaliteitseigenschappen,
vooropgesteld in de speci-
ficatiefase van het systeem.
Aanpasbaarheid werd aangetoond door componenten te implementeren
voor een verscheidenheid
aan toestellen. Er werden versies gemplementeerd voor lowest common
denominator feature
phones, high-end feature phones met basis CSS en JavaScript
ondersteuning en versies voor
smartphones met uitstekende CSS en JavaScript ondersteuning en
zelfs basis AJAX onderste-
uning.
Bruikbaarheid was een andere belangrijke vereiste voor dit systeem.
De focus ligt hiervoor bij
de gebruikservaring van de mobiele eindgebruikers. Deze is
voornamelijk afhankelijk van de
prestatie van het component selectie algoritme van ons systeem.
Voor een grafische evaluatie
van deze kwaliteitseigenschap verwijzen we naar Appendix C.
Tenslotte werd de performantie van het systeem nagegaan. Dit is een
belangrijk aspect omdat
het gebruik van caching mechanismen binnen een CMS omgeving
doorgaans van doorslaggevend
belang zijn bij de acceptatie van een voorgesteld systeem. Caching
is expliciet ondersteund in de
architectuur van het voorgestelde systeem en kan gebruikt worden om
optimale resultaten voor
populaire toestellen efficient op te slaan. Zoals aangetoond in
Tabel 8.1, wordt bij het activeren
van caching de performantie van ons systeem amper te onderscheiden
van de performantie van
een traditioneel CMS-gebaseerd systeem.
Overdraagbaarheid naar een technologisch gelijkaardig CMS
De tweede fase is het overzetten van het systeem naar een extensie
voor het Drupal 6 CMS. Door
de technologische gelijkaardigheid tussen beide CMSen, vereist dit
proces enkel het aanpassen
van de CMS-specifieke onderdelen. Portabiliteit van het systeem
werd in rekening gebracht vanaf
het eerste stadium van de ontwikkeling van een architectuur. Het
gebruik van inkapseling en
beperkte onderlinge communicatie in de Service Aggregator heeft
voor een duidelijke scheiding
gezorgd tussen CMS-afhankelijke onderdelen en de rest van de
architectuur. Het overdragen van
de Joomla! implementatie naar Drupal vereiste enkel het vervangen
van de vier basis systeem
services, zoals weergegeven in Figuur 6.3.
Om ten slotte de CMS onafhankelijkheid van de eigenlijke
componenten na te gaan, is ervoor
gekozen geen specifieke componenten te ontwikkelen voor de Drupal
implementatie. Alle beschik-
bare componenten, die reeds aangemaakt waren voor Joomla!, werden
gekopieerd zonder enige
aanpassing.
Hybride web-gebaseerde applicaties
In een laatste fase is gepoogd het systeem aan te bieden als een
platform voor hybride web
applicaties. Zoals besproken in sectie 4.4.2, worden deze
applicaties ontwikkeld door gebruik te
maken van web technologie zoals HTML, CSS en JavaScript. Toch wordt
de standaard browser
van het toestel niet gebruikt om dergelijke applicaties te
benaderen. Er wordt hiervoor gesteund
op specifiek ontwikkelde native applicaties, of webgebaseerde
widget engines. Deze voorzien een
rijke JavaScript API, die toegang bieden tot toestel-specifieke
functies.
Deze fase van de proof of concept dient voornamelijk als een
demonstratie van de kracht van
opkomende standaarden van het W3C en OMTP BONDI om dergelijke API’s
aan te bieden
in standaard browsers. In eerste instantie werd een hybride client
applicatie gebouwd voor
het Android platform, gebaseerd op de API’s van het PhoneGap
project. Aan de kant van de
server waren geen aanpassingen vereist, enkel het implementeren van
bijkomstige componenten
met specifieke scripting mogelijkheden om de hybride JavaScript
API’s aan te spreken. We
verwijzen nogmaals naar naar Appendix C voor een overzicht van de
resultaten.
Besluit
Deze thesis heeft een systeem voorgesteld voor de creatie en
aflevering van adaptieve mobiele
web applicaties op een verscheidenheid aan mobiele toestellen.
Ontwikkelaars krijgen hiermee
een efficient hulpmiddel bij het omgaan met mobiele platform
fragmentatie. Het voorgestelde
systeem pakt deze uitdaging aan door CMS web applicatie frameworks
uit te breiden met com-
ponent gebaseerde ontwikkelingsmogelijkheden. De gevolgde aanpak
biedt een oplossing voor
de strikte tradeoff in multi-platform ontwikkeling tussen de
vereiste ontwikkelingskosten en de
capaciteiten van de resulterende applicaties.
Er werd een architectuur voorgesteld, samen met de nodige
algoritmes voor de toestel specifieke
selectie van componenten. De vereiste graad aan adaptiviteit wordt
voorzien door een methode
afgeleid van de Logic Scoring of Preference (LSP) techniek.
Specifieke aanpassingen werden
doorgevoerd om LSP te optimaliseren voor mobiel gebruik. Dit laat
toe het systeem objectief
componenten te laten evalueren op basis van hun toepasbaarheid,
gegeven de context van het
mobiele toestel. Voor het uitvoeren van de evaluaties wordt er
gebruik gemaakt van vage logica,
die toelaat om toch niet perfecte kandidaten in beschouwing te
nemen indien er geen betere
componenten voor handen zijn.
Om de haalbaarheid van het systeem aan te tonen werd een proof of
concept implementatie ge-
realiseerd voor het Joomla! 1.5 CMS. Hierbij werden de
vooropgestelde kwaliteitseigenschappen
voor en aanpasbaarheid, bruikbaarheid en performantie gevalideerd.
De portabiliteitsvereiste
werd expliciet nagegaan door het systeem over te zetten naar een
technologisch gelijkaardig
CMS, namelijk Drupal 6. In een laatste fase werd de toepasbaarheid
van het systeem als een
hybride web applicatie platform eveneens bevestigd.
CONTENTS xix
1.3 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 2
2.1 Trends . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 4
2.2 Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 7
2.3 Application portals . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 12
3.1 Trends . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 15
3.2.1 Mobile-specific web standards . . . . . . . . . . . . . . . .
. . . . . . . . . 18
3.2.2 Emerging web standards . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 21
3.2.3 Standardized best practices . . . . . . . . . . . . . . . . .
. . . . . . . . . 22
4 Web-based mobile applications 24
4.1 The web as a mobile platform . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 24
4.2 Introducing adaptivity . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 26
4.2.1 Modeling aspects . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 26
4.2.3 Towards adaptive web applications . . . . . . . . . . . . . .
. . . . . . . . 29
CONTENTS xx
4.4.1 User interface frameworks . . . . . . . . . . . . . . . . . .
. . . . . . . . . 41
4.4.2 Hybrid development solutions . . . . . . . . . . . . . . . .
. . . . . . . . . 42
4.4.3 Enterprise development solutions . . . . . . . . . . . . . .
. . . . . . . . . 43
5 Specification 45
5.2 Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 48
5.3.1 Modifiability . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 50
5.3.2 Usability . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 51
5.3.3 Portability . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 52
6 Architecture 53
6.3.1 Locator . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 58
7 Algorithms and data structures 65
7.1 Component selection algorithm . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 65
7.1.1 Resource fetching . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 65
7.1.2 Type filtering . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 65
7.1.3 Suitability filtering . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 66
7.1.4 Conflict resolution . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 70
7.2.1 Component descriptor . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 71
7.2.2 Resource container . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 72
8.1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 73
8.3 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 75
8.3.2 Porting the system to a technologically similar CMS . . . . .
. . . . . . . 77
CONTENTS xxi
9 Conclusion 79
9.1 Accomplishments . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 79
C Screenshots 92
MVC Model View Controller
URI Uniform Resource Identifier
URL Uniform Resource Locator
WAP Wireless Application Protocol
WPM Weighted Power Mean
XML Extensible Markup Language
XSD XML Schema Definition
vending machine.
1.1 Context
Mobile has become a powerful mass medium, with a greater reach and
faster growth than any
other known media type [19]. According to the United Nations’
latest figures, more than half
of the world’s population owns a mobile phone [26]. This almost
doubles the usage of personal
computers and TV sets. However, not only penetration rates are
starting to outnumber PCs,
mobile technology itself is also catching up fast.
Today, even devices from the low-end segment start to have internet
access capabilities and
support for browsing the web, sending e-mails, social networking,
etc. The growing diversity of
mobile devices with internet connectivity has resulted in a boosted
need for applications being
available at any time, anywhere and on any device.
Current technologies for the creation and delivery of mobile
applications are insufficiently pre-
pared for this level of change. Without the appropriate platform or
tool support, the adaptivity
requirement remains the developer’s responsibility to handle, which
inevitably drives up costs
and narrows the target market. This unbalance situation has led to
the general believe that the
development of platform-dependent mobile applications does not
represent the future for the
mobile industry.
On the other hand, the evolution towards the mobile web as an
application platform is gaining
momentum. This approach addresses the mature nature of the web in
an attempt to overcome
1
most of the restrictions plaguing native application development.
Browser technology is intro-
duced as a universal application client through which all
interaction with the device is handled.
With the industry’s current efforts in the development of new web
standards, the viability of a
web-based application platform increases by the day.
1.2 Goal of research
This thesis will investigate the needs, benefits and remaining
challenges in the evolution towards
a state of market readiness for mobile web applications. The
feasibility of the web as an applica-
tion platform will be demonstrated by proposing an architecture and
the necessary algorithms
in support of adaptive web-based development.
1.3 Outline
Chapter 2-4: State of the art analysis
As part of the state of the art analysis, these chapters cover the
research on market readiness for
web-based mobile applications. The evolution of the mobile internet
and the mobile application
market is evaluated. Existing and emerging standards on these
subjects are examined. We
conclude with an overview of today’s web mobilization techniques
and their applicability to web
applications.
Chapter 5: Specification
The specification chapter defines the system we want to build. The
Vision Document is its
starting ground. This document describes the overall plan and the
stakeholders’ view of the key
needs and features. Next, the system’s behavioral and quality
requirements are captured using
use cases and quality attribute scenarios.
Chapter 6: Architecture
This chapter proposes an architecture that complies with the
requirements from the specification
phase. Therefor, he Attribute-Driven Design (ADD) method is
applied. This recursive process
decomposes a system by applying a number of architectural patterns
and tactics that satisfy its
1.3 Outline 3
Chapter 7: Algorithms and data structures
This chapter elaborates on the main algorithms and data structures
that are used in our system.
Chapter 8: Proof of concept
In order to demonstrate the feasibility of our proposed work, this
chapter maps the generic
architecture and algorithms to an existing CMS framework. The
obtained results are then be
compared with the architectural drivers we have set up in the
specification part of this thesis.
Chapter 9: Conclusions
We conclude this thesis with a review of what has been
accomplished, what the possible im-
provements are and elucidate the further work to be done.
NATIVE MOBILE APPLICATIONS 4
Native mobile applications
Mobile applications are a rapidly growing segment of the global
mobile industry [55]. By in-
stalling additional applications, the functionality of mobile
devices can be extended. Users are
given the freedom to adapt a device an make it fit their their
specific needs. We will start our
state-of-the-art research by gathering the strengths, weaknesses
and emerging trends related to
native mobile application development.
2.1 Trends
Market insight is an important aspect for software developers and
their investors. It involves
the evaluation of market readiness regarding the targeted
application domain and technologies.
This section aims at supporting stakeholders to optimally assess
their options and take resolute
actions. Ongoing and emerging trend for the mobile application
industry will be examined.
Dataquest Insight: The Top 10 Consumer Mobile Applications in
2012
Advisory firm Gartner has published a list of the top ten mobile
applications by 2012 [22].
This near-future prediction includes mobile technologies that are
currently entering a phase
of mainstream adoption, but haven’t reached the state of widespread
deployment yet. Some
of the best known examples in this category are definitely
location-based services (LBS) and
mobile payments. With this list, Gartner aims at predicting the
omnipresent adoption of mobile
application technologies.
2.1 Trends 5
Money transfer This category refers to sending money via SMS
messages. This kind of
service has currently an exponential growth in the developing
world, where accessing banks is
more difficult. However, Gartner expects this to also become a
trend in the Western world.
Location-based services LBSs extend to more than only social
networks and include almost
any imaginable application on a mobile device with GPS
capabilities. It is even expected to be
one of the most disruptive technologies in the future, with a
growing user base from 96 million
in 2009 to 526 million in 2012.
Mobile search Mobile search is not a new category, but the way it
is perceived by users might
go through some serious changes on mobile platforms. The recently
released Google Goggles
application [44] demonstrates that mobile search is not necessary
bound to text-based querying.
Mobile browsing Mobile browsing capabilities currently exist on
roughly 60 % of the handsets
today. By 2013, this number is expected to climb up to 80 %,
indication a mass growth of web-
enabled devices over the next few years. In this category, Gartner
points out the increasing
market share of mobile web applications, placing a hold on the
required effort to build separate
applications for all mobile platforms.
Mobile health monitoring This category is still at an early stage
of maturity, as well as
implementation. It is expected to have a great impact in developing
markets. The coming
years, the healthcare industry is expected to begin the commercial
offering of mobile monitoring
products, services and solutions.
Mobile payments As with the mobile transfers, mobile payments are
more common in the
developing world. This is however quickly changing with the
emerging use of mobile commerce
(m-commerce). A number of challenges are still to be expected due
to the highly fragmented
market and the lack of standard practices.
Near Field Communications (NFC) NFC has yet to become a standard
feature on mobile
device. Gartner expects this to happen by the end of 2010.
Mobile advertising Mobile advertising is growing fast and will be
one of the most important
ways to monetize mobile content. The total spending on mobile
advertising in 2008 was $530
million and will grow to $7.5 billion in 2012. Also a better
integration of mobile advertisements
2.1 Trends 6
with campaigns on TV, radio, print and outdoors is expected.
Mobile instant messaging While SMS still seems the invincible
mobile service, Gartner
expects user to adopt mobile instant messaging within the next few
years. Especially in the
developing world, where mobile devices are often the only internet
connected device owned.
Mobile music Mobile music for a broad spectrum of devices is
expected to become a com-
petitive market, with new innovative models that combine both
device- and service bundles.
Hype Cycle for consumer mobile applications
The Gartner Hype Cycle [20] is a graphical tool that communicates
the different stages of
technological commercialization and provides time estimates for the
different product areas to
reach its stages of maturity, productivity and mainstream adoption.
For mobile application
technology in particular, the Hype Cycle reflects the importance of
new consumer services and
assesses the maturity of mobile applications and their value. This
report aims at preventing
financial burdens by warning companies for immature or hyped
applications. Gartner assessed
the maturity of 25 applications. Figure 2.1 shows their progress in
relation to each other.
The report considers applications in terms of market penetration,
the time it will take them to
enter mainstream adoption and the obstacles to widespread use. It
focuses on services, rather
than the underlying technology, though technology is considered
because of effect on the speed
of adoption.
According to Gartner, mobile messaging applications such as instant
messaging and e-mail
will gain momentum and have a good revenue potential. These
services build on the success
of desktop applications and can be integrated with other mobile
offerings. Nevertheless, the
traditional SMS and ring tones services will continue to generate
the majority of data service
revenues for mobile carriers.
On the other hand, full-track music downloads, mobile television
and gaming remain niche offer-
ings in the short term. This will remain until the associated
technologies, content and business
models become more mature. The same goes for mobile banking and
payment applications,
which need to overcome usability problems and the inhibition of
users.
2.2 Platforms 7
As shown in Figure 2.1, it is important to notice that more than
half of the evaluated services
have only just passed their peak of inflated expectations. All
these services and their supporting
technologies are estimated to need another five years before
reaching main productivity.
Figure 2.1: Hype cycle for consumer mobile applications in 2008
[20]
2.2 Platforms
Developers can target numerous platforms when creating applications
for mobile usage. How-
ever, as Table 2.2.1 shows, the often incompatible nature of these
platforms has to be kept in
mind. Platform selection has to be a carefully considered decision
in order to maximize the
application’s reach and revenue.
2.2 Platforms 8
2.2.1 Platform fragmentation
The fragmentation of platforms is an increasing issue for mobile
application developers. Plat-
form fragmentation expresses the inability to develop a single
application for multiple platforms
and achieve the intended behavior on all devices at once. Table
2.2.1 and Figure 2.2 depict
the market share of mobile platforms over the past three years
[50]. For developers to reach a
sufficiently large user base, fragmentation will soon require
applications to provide support for
multiple platforms.
2.2 Platforms 9
Blackberry Java (with RIM API) 19.9%
iPhone OS Objective-C 14.5%
PalmOS C, C++ <1%
Symbian C++ 47.0%
Table 2.1: Native mobile development
2.2.2 Fragmentation reduction tactics
Some techniques and development tactics have been stipulated for
managing the proportions
of device fragmentation [41]. As we will elaborate in the following
paragraphs, none of them
offer a silver-bullet solution. The tradeoff between the required
development effort and the
application’s power still remains. In general, the requirement of
sophisticated design techniques
for each of the discussed methods will add up to the application’s
complexity. Separate testing
of all application-versions will still be needed.
Developers must first identify the set of platform- and context
variability points that are rel-
evant to the application. For each of these variability points one
of the following methods of
fragmentation reduction can be selected.
Manual development and organization
The most primitive way of managing fragmentation is by manually
developing distinct versions
for each platform. These separate versions will be largely similar
and result in duplication of
work. Thereby the required effort of software development will
increase almost exponentially
with the number of supported platforms. The remaining two
alternatives will focus on minimiz-
ing this extra effort.
Derivation from a single base of code
In this approach, platform-specific versions are derived from a
single code base. This derivation
can be done in three ways. By selective packaging, using
meta-programming, or including
domain-specific generators. While these three approaches still
result in multiple versions of the
application, there is only one code base and therefore the effort
required may decrease compared
to the manual organization method.
In case of selective packaging, platform variations are localized
into interchangeable compo-
nents1. Build scripts are used to create one version for each
platform, by picking out only the
components required for that particular platform. An issue
associated with this method is the
localization of all variations in components. This will often
result in the use of techniques that
heavily impact the run-time performance2.
When using meta-programming, techniques for code manipulation are
addressed to specify
the derivation process of platform-specific versions. This can be
accomplished by embedding
platform-specific variations in the source code using directives or
tagging. In turn, a preproces-
sor will derive the different versions by processing these
directives. Alternatively, the platform-
specific variations can also be injected. This requires the
developer to write the specific instruc-
tions separately from the application code.
A last method in this category is the automatic generation.
Multiple versions are automatically
created by a generator. This generator possesses the necessary
intelligence to adapt code and
make it suitable for a specific platform. Instead of only following
directives that are manually
embedded by the programmer, generators use their built-in
knowledge, requiring less manual
coding. The main issue with this approach is that the generator
might not be able to auto-
matically deduced all variations. In addition, the different
versions may need to be maintained
separately once they are generated.
Single application development
Single application development will try to build a single
application that works on multiple
platforms. This approach is only possible when platforms support a
common programming
1by using classes, files, ... 2with dynamic binding as one of the
best known example.
2.2 Platforms 11
language or runtime. The developer will attempt o sidestep all
variations between platforms
and include only the features supported by all platforms. This
approach is commonly referred
to as the Lowest Common Denominator (LCD) approach.
In some cases it is also feasible to build a single application
version with the ability to adapt to
a given platform at run-time. The software will in this case
discover platform-information and
adapt itself to it at run-time.
2.2.3 Java Micro Edition
Java Micro Edition (Java ME) is a family of specifications,
defining several downsized versions
of the standard Java platform [25]. Java ME is optimized for
resource-constrained consumer
electronic devices such as smart phones, PDAs, set-top boxes, etc.
To cope with this wide range
of devices, Java ME has been given an extensible architecture.
Extensions are based on the con-
cept of configurations and profiles. The configurations contain the
virtual machine definitions
and specifies the basic run-time environment as a set of core
classes. Profiles, on the other hand,
focus on adding new domain-specific APIs.
Figure 2.3: Java ME architecture
In the desktop world, the introduction of Java in 1995 led to a
general misconception that it
would offer a solution to all cross-platform development issues.
This illusion is often shared when
it comes to solving mobile platform fragmentation problems.
However, Java ME fell short in
solving the fragmentation problem due to its extensible
architecture and the diversity of virtual
machine implementations. The optional profile APIs are not
guaranteed to be supported on all
platforms. Relying on such APIs will still require the management
of platform variation points
2.3 Application portals 12
2.3 Application portals
Mobile application portals were introduced to pass native
applications from developers to end-
users [1]. The availability of such stores has rapidly grown and
its market has become a multi-
billion dollar business. To date, Apple has the most popular
application store with nearly
150,000 applications and over 3 billion downloads. Its success came
as a shock to the industry
and every major mobile company has since then tried to replicate
it. This evolution is clearly
shown in Distimo’s research document on store characteristics [38].
Its overview is depicted in
Figures 2.4 and 2.5.
From a developer’s perspective, application stores are not an ideal
means to reach a sustainable
business. The chances for an application to be successful are very
lucrative and depend on a
number of factors that are hard to predict. Applications are first
of all competing for the top slot
in the store’s catalogue. This ranking-based system mainly focus on
newly added applications.
Later on, only the applications that are promoted using aggressive
marketing strategies will
be able keep their top rankings. The less fortunate will move to
pages, nearly unaccessed by
potential end-users.
Moreover, developers are required to adhere to the portal’s
submission policies. These define
restrictive rules of conduct regarding the application’s content,
interface and used development
techniques. Submission fees are commonly required which can be up
to $200. For the publication
of paid applications, developers will have to cede a revenue share
between 20 and 30 %.
2.3 Application portals 13
2.3 Application portals 14
THE MOBILE INTERNET 15
The mobile Internet
The mobile Internet is on the rise. This is an important evolution,
because it is the key enabler
for the mainstream acceptance of web application development. In
this chapter, we will con-
tinue our state-of-the-art research with a brief historical
overview of the mobile web, in terms
of standardization efforts. Furthermore, we will elaborate on
predictions for mobile internet
penetration and usage rates.
The Mobile Internet Report
Morgen Stanley’s prediction on the mobile internet consists of two
parts. The main report [23]
explores a number of themes related to the mobile web, whilst the
key themes report [24] drills
down on its covered thoughts. According to the report, two
overwhelming trends will affect
commercial potential of the web, namely mobile and social
networking.
The mobile internet is currently the center of a new major
technological cycle that continues the
evolution of the mainframe era of the 1950s and 60s, the
mini-computer era of the 1970s and
the desktop internet era of the 80s. In this context, Morgan
Stanley predicts that within the
next five years more users will connect to the internet using
mobile devices than desktop PCs,
as depicted in Figure 3.1.
The mobile Internet market will be at least two times the size of
desktop Internet. This growth
3.1 Trends 16
is mainly being driven by 3G adoption and the increasing popularity
of smartphones [56]. The
3G penetration ratio is expected to reach a sweet-point for mobile
service providers in 2010, as
shown in Figure 3.2. In addition, the report predicts that
smartphones will out-ship the global
notebook and netbook market in 2010E and out-ship the combined
global notebook, netbook,
as well as desktop market by 2012E.
The growth of e-commerce is predicted to be one of the largest
implications of mobile internet
usage. Mobile commerce will feature location-based services,
time-based offers, push notifica-
tions, etc. Online commerce and paid services in Japan made up 14 %
of mobile revenue in 2000
and increased to 32 % in 2008. The rest of the world is still
hovering at 14 %, but the report
suggests that much of the same trajectory could be seen over the
next 10 years.
Figure 3.1: Global mobile vs. desktop Internet user projection
[23]
3.1 Trends 17
Figure 3.2: Global 3G penetration and usage [23]
Key Predictions for IT Organizations and Users in 2010 and
Beyond
With this document [21], Gartner highlights a number of trends and
events that will change the
nature of business in 2010 and beyond. By 2013E, Gartner predicts
mobile phones to overtake
PCs as the worldwide most commonly used means to access the web.
This confirms Morgan
Stanley’s prediction. The PC installed base is forecasted to reach
1.78 billion units in 2013E.
That same year, the installed base of web-enabled mobile devices is
expected to exceed 1.82
billion units.
Although the number of websites and web applications with support
for small form factor mobile
devices is steadily growing, the majority still does not. Websites
without optimizations for
smaller screen-formats will become a market barrier for mobile
owners. This makes is important
for content providers to prepare the necessary actions and start
offering content in a mobile
context. As mobile web users are typically prepared to make fewer
clicks on a website, much
content and many sites will need to be reformatted or
rebuilt.
3.2 Evolution of the mobile web 18
3.2 Evolution of the mobile web
When internet connections were first introduced to mobile devices
in 19961, it was clear that
regular desktop HTML webpages were not suitable for such devices.
The stringent device con-
straints and variety of proprietary web technologies created the
need for a series of new standards.
In this section we will discuss the evolution of mobile web
standards, from the mobile-specific
WML to the latest XHTML-based markup languages.
3.2.1 Mobile-specific web standards
WAP and WML
As an initial effort to address the specific needs for mobile web
access, Nokia, Ericsson, Unwired
Planet and Motorola founded the WAP Forum in 19972, a standards
organization aiming at the
development of open standards for the mobile industry [27]. At that
time, each manufacturer
developed its own specialized web technology. The WAP Forum’s
standardization intent was a
first step towards the prevention of further
fragmentation[3].
The Wireless Application Protocol (WAP) and Wireless Markup
Language (WML) were pub-
lished in 1998. The first set of widely deployed standards for the
mobile web [66]. WAP is an
open standard for network communication at the application layer.
It is mainly used to enable
mobile access to the Internet. However, WAP requires pages to be
authored with a specific
WML markup. This initially cut off users from the conventional HTML
web. The set of WML
markup tags was kept to a very minimum, as it had to be rendered on
devices with very limited
resources.
i-Mode, cHTML and WAP 2.0
i-Mode is a suite of wireless internet service developed by NTT
DoCoMo in 1999. Compared to
WAP, i-Mode encompasses a wider variety of internet standards. It
includes web access, e-mail
and a packet-switched network for data delivery. i-Mode also
employs an HTML-based markup
language named cHTML. cHTML is a subset of HTML 2.0, HTML 3.2 and
HTML 4.0 with
several mobile additions [47].
1The first device was a Nokia 9000 Communicator. 2The WAP Forum was
later endorsed by the Open Mobile Alliance (OMA).
3.2 Evolution of the mobile web 19
F ig
u re
3 .3
The mobile-specific changes relate to support for access-keys,
phone number shortcuts in links,
etc. Still, this approach’s main advantage is cHTML’s compatibility
with HTML. The evolution
towards HTML-based content made it easier to develop mobile
websites and allowed mobile
pages to be accessed using a standard desktop browser.
Due to the superiority of i-Mode over WAP 1.0, an joint integration
effort has led to the devel-
opment of WAP’s successor. The final WAP 2.0 specification included
the support for TCP/IP-
based communication protocols and implemented XHTML-MP as the
primary markup language
[67].
XHTML Basic and MP
XHTML Basic is a structured XML-based markup language published as
a W3C recommen-
dation in 2000. It is the most restricted XHTML derivative. Only a
minimized set of features
is supported, as its primary use focusses on the most limited
mobile devices. XHTML Ba-
sic is suited for mobile phones, PDAs, pagers, and settop boxes. A
important advantage of
XHTML Basic over WML and cHTML is the possibility to render page
differently in desktop-
and handheld web browsers, without the need for two different
versions of the same content [28].
XHTML Mobile Profile is another XHTML derived markup language,
specified by the OMA
between 2001 and 2006. It is essentially an extension to the XHTML
Basic standard and adds
the concept of XHTML Modules [70]. Successive versions of this
standard have added new
modules, providing richer form controls and varying levels of
scripting support.
In 2008, the XTHML Basic 1.0 specification was revised to version
1.1 and presented as a W3C
recommendation [28]. As a result of defragmentation efforts from
both W3C and OMA, XHTML
Basic and XHTML-MP became almost indistinguishable standards.
Wireless CSS and CSS-MP
The Wireless Cascading Style Sheet (WCSS) standard is a subset of
CSS, published by OMA
in 2006. WCSS can be combined with any XML-based document and has
been included in
the WAP 2.0 specification3 [69]. It is a specified subset of CSS2
with a set of mobile-specific
extensions.
3.2 Evolution of the mobile web 21
Wireless CSS contains core CSS functionality. This includes
inheritance, cascading and selectors.
Property definitions are supported for the box layout model, text,
fonts, visual effects, color and
lists. WCSS can be added to a document through external resource
links, or via the insertion
of a style tag in the document’s header. Moreover, W3C and OMA have
joint their efforts for
the defragmentation of mobile styling in a standard called CSS-MP
[29].
3.2.2 Emerging web standards
HyperText Markup Language 5
The web Hypertext Application Technology Working Group (WHATWG) and
W3C HTML
Working Group are developing the intended successor for both HTML
4.01 and XHTML 1.0.
HTML5 tries to address many issues associated with prior versions
of (X)HTML. New elements
have led to the explicit support for web-based applications
[46]:
• Focus on semantic elements4. Web page fragments are automatically
provided with a
richer description. Mobile browsers can use this additional
information to optimize the
page’s rendering based on their characteristics.
• The menu-elements define a better structuring description for
menus and can be integrated
in the device’s native menu system.
• Form input-elements are given additional type specifications5.
The more detailed identifi-
cation allows the device’s browser to render a native
platform-specific UI element.
Moreover, HTML5 defines a set of rich JavaScript APIs to bridge the
functionality gap between
native and web-based applications [45]:
• Audio- and video-playback APIs.
• 2D drawing API
• Client-side persistent storage. This API provides local storage
and advanced SQL querying
interfaces.
4e.g. tags for: section, article, header, footer, etc. 5e.g.
calendar, email, url, etc.
3.2 Evolution of the mobile web 22
• Drag and drop handling API
• Network API, enabling web applications to initiate network
communication.
• Browser history API, as a solution to resolve conflicts between
JavaScript and the browser’s
history.
• Support for server-side initiated events. Push-based actions
allowing the server to dispatch
DOM events into documents.
The latest CSS specification is still under development.
Nevertheless, most desktop browsers
have already implemented parts of its definition. CSS3 has moved
towards a modular struc-
ture, providing better separation of concepts. Modules are
specified for the definition of media
features, providing pattern matching tools, etc. [30].
The concept of the web as an application platform has also had its
influence on the CSS specifi-
cation. CSS3 tries to add styling mechanisms for a number of
operations that are currently only
supported through client-side scripting. Compared to CSS-supported
implementations, script-
ing approaches are tend to be inefficient and error prone. The new
features are added with a
set of proposed CSS extensions, ensuring backward
compatibility:
• Animation: introduces animations and defines the adaptation of a
property’s value over
a given period of time.
• Transforms: allows elements to be scaled, rotated and
skewed.
• Transitions: enables implicit transitions by describing how CSS
properties can be changed
smoothly from one value to another over a given period of
time.
3.2.3 Standardized best practices
W3C Mobile web Best Practices
The W3C Mobile web Best Practices (MWBP) [31] are an effort from
the Mobile Web Best
Practces Working Group towards the standardization of best
practices for web development.
3.2 Evolution of the mobile web 23
This document is in part derived from the Web Content Accessibility
Guidelines [32]. Although,
its scope has been limited to subjects related to mobile.
The MWBP recommendations’ main objective is to provide end-users
with optimal experience
when accessing the web from a mobile device. The document refers to
delivered content, not the
processes by which it is created. It is primarily directed at
creators, maintainers and operators
of websites, with basic knowledge of creating websites and the
general technologies it involves.
However, no background in mobile-specific technologies is
required.
The best practices are divided in five groups of guidelines,
overall behavior, navigation and links,
page layout and content, page definition and user input. Due to the
size of this document, we
refer developers to the actual recommendation [31].
WEB-BASED MOBILE APPLICATIONS 24
Web-based mobile applications
In the last part of our state-of-the-art research, we will focus on
the development of mobile web-
based applications. Market readiness will be evaluated and combined
with our findings from
the previous chapters. Furthermore, standardization activities will
be examined, as well as the
existing development tools and solutions.
4.1 The web as a mobile platform
The mobile market is facing an increasing fragmentation of
platforms. The situation is not only
untenable for small and medium-sized software development
companies. Even multinational
corporations such as Google openly doubt the feasibility of
supporting native application for a
variety of mobile platforms. This unbalance situation has led to
the general believe that the
development of platform-dependent mobile applications does not
represent the future for the
mobile industry [2].
The internet is evolving towards a ubiquitous concept, connecting
numerous types of devices.
With its current standardization efforts, the web is likely to
become the ideal common platform
for the future creation and delivery of rich applications using
browser technology as a universal
client. Nevertheless, the development of web applications in their
purest form will not be possible
for most application-types. This is caused by the sandboxed nature
of browsers, which drastically
limits the available interfaces to underlying device. Various
standards are being developed to
address this issue. Web applications require the browser to support
rich and secure interaction
4.1 The web as a mobile platform 25
with the device’s native functions. Efforts from the W3C [40] and
BONDI initiative [39] have led
to an expectation that by 2013 browsers will by default have access
to much of the functionality
of native applications today.
Hybrid web applications has been introduced to provide developers
with a short-term solution.
Hybrid applications are a combination of native applications and
pure web-based applications.
This type of applications is still built with web technology, but
no longer uses the browser as the
client-side runtime environment. As shown in Figure 4.1, a
client-side web runtime framework
is used to bridge the gap between native- and web applications by
granting the application
scripting access to most of the device resources1.
The concept of hybrid applications has been explored from various
perspectives. Developers can
opt for web widget engines such as Nokia WRT [63],
device-independent frameworks such as the
PhoneGap application wrapper [58] and even web-based operating
systems such as ChromeOS
[48] and Palm webOS [62]. We will discuss some existing hybrid
solutions in section 4.4.2.
Figure 4.1: Application development platforms
1In most cases through additional JavaScript interfaces.
4.2 Introducing adaptivity 26
4.2 Introducing adaptivity
The growing diversity of mobile devices with internet connectivity
has boosted the need for
applications being available at any time, anywhere and on any
device. This emerging requirement
for adaptivity has drastically increased the complexity of mobile
applications. The concept of
customization needs to be introduced in many aspects of the
application development process.
Without the appropriate platform and tool support this becomes the
developer’s responsibility
to handle, driving up costs and eventually narrowing the target
market.
4.2.1 Modeling aspects
The modeling of traditional web systems is often scoped using three
orthogonal dimensions,
namely the development phases, the system’s views and its aspects.
In addition, the increasing
range of devices and usage contexts2 when accessing these systems
have emphasized the impor-
tance of a fourth dimension: adaptivity. As shown in Figure 4.2,
adaptivity can be considered
as a crosscutting aspect [4], influencing all other web modeling
dimensions with a much greater
impact than we would normally expect in an environment focussed on
desktop usage.
Figure 4.2: Web modeling aspects [4]
A number of web engineering methods have been developed, aiming at
early separation of
concerns when modeling mobile web-based systems. Their base
approaches vary from basic
rule-based systems [5], to aspect-orientation [6] and
reflection-driven mechanisms [7].
2e.g. the growing importance of location-awareness in mobile
applications
4.2 Introducing adaptivity 27
4.2.2 Basic mobilization approaches
Plain websites are, due their mainly content-driven structure, much
easier to mobilize than web
applications. Today, three commonly used approaches can be
identified. These approaches will
in general not be sufficient to optimize web applications for
mobile usage. However, they should
rather be considered as a starting point for the more advanced
methods.
Mobile redirection
The most basic approach is to extend the website’s server side with
simple device detection. For
each incoming request, device capabilities are detected. When a
mobile device is recognized,
its request is automatically redirected to the website’s
mobile-friendly URL. This approach can
even be extended to use multiple alternative URLs, based on a more
advanced combination of
device capabilities.
Mobile redirection is easy to set up and can be configured through
various mechanisms. Nev-
ertheless, the complexity of maintaining all website’s instances
should not be underestimated.
All modifications will need to be performed manually. This
decentralization of website-versions
should be avoided by all means. Hence, the following approaches
will focus on managing this
issue.
Template switching
Template switching tries to keep the website’s content centralized
and thus minimizes the re-
quired effort to add or modify content. This approach is often used
in CMS-driven environments,
as templating is a standard provided mechanism for the separation
of content and presentation.
Templates are used to enable organizations to brand the
look-and-feel of their website, without
having to make core modifications to the underlying
framework.
Most templates are designed to provide a rich and multi-column
presentation of the content. In
a mobile context, a completely different type of templates will be
desirable. For small-screened
devices, a single column design is often found to be the best
readable solution. Designers must
also take into account that advanced technologies, such as Flash or
AJAX are not supported by
most mobile browsers.
Building a single template that meets both desktop and mobile
requirements will lead to com-
4.2 Introducing adaptivity 28
promises for both parties. Dynamic template switching has been
introduced to cope with this
issue. It allows web administrators to define templates for
different types of devices and clients.
Instead of redirecting mobile users to an alternative website, the
CMS’s template is dynamically
switched to the mobile-friendly version.
Simple websites can certainly benefit from this approach. Provided
that the number of required
content modifications are minimal. For example, blog websites have
relatively simple content
that can be reused for desktop and mobile presentation.
Nevertheless, as we will discuss in
section 4.2.3, this approach does not suffice when mobilizing more
complex websites and web
applications.
Transcoding services
A third common approach are the transcoding services. In this case,
only the desktop ver-
sion of the website is maintained. Page requests are first sent to
an intermediate proxy server.
This transcoder will in turn request the corresponding desktop page
from the website’s original
server. Before returning the page to the end-user, the transcoding
server performs a sequence
of adaptations to optimize the output based on the requesting
device’s characteristics.
Figure 4.3: Transcoding services
There are two approaches for the composition of adaptation
sequences. The transformations
can be composed automatically by the transcoder. Without any
intervention from the website’s
administrator, the transcoding server determines a sequence of
page-transformation. The Opera
mini browser offers such automatic adaptation. Nevertheless, due to
the lacking semantical
4.2 Introducing adaptivity 29
information, the transcoder is only able to make a series of
“educated guesses”. This often leads
to results below expectations.
A more vigorous approach is to perform semi-automatic adaptations.
Administrators are given
the chance to express their wishes in terms of manually specified
transformations. These se-
quences are incorporate in the transcoding server’s mobilization
process. The use of semi-
automatic transformations results in powerful website
mobilizations. Although, most of the
projects are required to be executed ad-hoc because of the need to
specify the project-specific
transformations manually. This issue will be addressed in the next
section.
4.2.3 Towards adaptive web applications
The basic mobilization strategies render acceptable results for
basic websites3. Nevertheless,
when development relies on the desktop website as a starting
ground, a compromise between
the necessary development effort and the delivered quality will be
required.
This inherent shortcoming emerges when developing more advanced
mobile websites and web
applications for a wide range of mobile devices. Further on, we
focus on this issue, as general
concepts and techniques for the development of adaptive mobile web
applications are examined.
Progressive Enhancement
In desktop web development, coping with different browser
capabilities when creating websites
and web applications has always been a substantial part of the
development process. The
traditional design strategy4 for the desktop web has been to focus
on the most advanced browsers.
The less capable browsers are only provided of a stripped version
during the last phase of
development. This approach assumes end-users to just upgrade their
browser when the degraded
version doesn’t fit their needs. However, on most mobile devices
the option to upgrade the
browser is not supported.
Progressive enhancement (PE) has reversed this strategy and its
goal is to maximize accessibility
over browsers with different capabilities [9]. A basic markup
document is created, aiming at
an optimal experience for the lowest common denominator (LCD) of
browsers. Next, layers of
presentational- and behavioral enhancements are gradually added in
function of the browser’s
3e.g. blogs, news sites, etc. 4also known as the graceful
degradation approach
4.2 Introducing adaptivity 30
capabilities. Enhancements such as CSS, JavaScript and other
advanced technologies are always
externally linked. This prevents unusable data to be downloaded by
limited browsers.
Figure 4.4: Layers of progressive enhancement
The progressive enhancement can also be used in a mobile context.
The possible combinations of
mobile browsers with graded CSS and JavaScript support is even more
diverse than for desktops.
PE forces developers to thinks in terms of the least capable
devices from the very start of the
development process. The enhancements for devices with more
advanced capabilities are only
added afterwards. Enhancements layers are built unobtrusively on
top of that basic LCD version
or other enhancement layers.
The basic progressive enhancement philosophy is however limited to
distinguish browsers based
on their capability to support stylesheets and JavaScript5. For
mobile usage, it can be an
interesting approach to drive the layer selection and inclusion by
a server-side process that has
detailed awareness of the client-device’s capabilities. This allows
web applications to have e.g.
multiple presentation layers with platform-specific look-and-feels
and let have selection process
determine the best selection.
5and a very limited set of device properties when using CSS3
enhancement layers
4.2 Introducing adaptivity 31
Figure 4.5: Mobile PE (LCD) Figure 4.6: Mobile PE (basic CSS,
JS)
Figure 4.7: Mobile PE (CSS3, AJAX calls)
4.2 Introducing adaptivity 32
Figures 4.5, 4.6 and 4.7 depict a single m-commerce web application
accessed by three dif-
ferent types of devices. The application’s basic version is
identical for each device. It is the
device-driven selection of progressive enhancement layers that
supports the optimization of the
application based on the client-device’s characteristics.
New complexity arrises with this approach, as the server-side
selection of layers is not actually
handled by the progressive enhancement mechanism. This requires the
specific development
of device-aware selection algorithms. Such algorithms can be
included ad hoc for each web
application separately. As we mentioned before this quickly leads
to unmanageable situations
due to excessive development costs. Using PE as a standalone
mobilization approach will thus
result in an insufficiently powerful solution. Nevertheless, it can
certainly be used as a part of
more general approaches which we will discuss further on.
CMSs as mobile web application frameworks
A web Content Management System (CMS) is a web-based application,
traditionally used for
managing the content of websites. CMSs aim at assisting
non-technical content-authors and
simplify the process of creating, editing and publishing content on
the web. By using a CMS,
authors are no longer required to master any programming- or web
markup skills. Most of the
complexity is abstracted and managed by the system.
Moreover, the scope of most CMSs isn’t limited to creating
websites. In the recent years, CMSs
have evolved and are built on top of powerful web application
frameworks [10]. Such frameworks
have the goal to support the complex processes of the CMS itself,
but also to allow third-party
web developers to use the CMS as a platform for their web
applications.
Using a CMS as web application platform has multiple benefits.
Developers are given the
means to create web-based applications with a minimum of required
effort, whilst the CMSs’
administrators still have the power to manage the application’s
content- and publication settings
without having to change any internal code or parameters. This
approach has shown to be very
effective for the creation of web applications aiming at desktop
users. Numerous CMSs nowadays
offer extensions to support applications such as e-commerce,
personal information management
(PIM), social networking, etc.
However, mapping CMS-driven web applications to a mobile context
holds some challenges.
4.2 Introducing adaptivity 33
Most CMSs handle all clients the same way. Unregarded whether a
request originates from a
desktop computer or a mobile device. By default, the CMS frameworks
offer web developers
no option to retrieve any device characteristics, nor to manipulate
content in order to overcome
device limitations.
Semantically assisted transcoding services are much alike the
traditional website transcoding
services from section 4.2.2 and very popular for enterprise mobile
solutions. Instead of