<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Informationsanbieterzentrierte Spezifikation und Generierung von Informationssystem-Apps</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jonas Pencke</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>David Wiesner</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hagen Höpfner und Maximilian Schirmer</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Bauhaus-Universität Weimar Bauhausstraße 11 99423 Weimar</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Schlüsselworte Mobile Informationssysteme</institution>
          ,
          <addr-line>Nutzergetriebene Programmierung, App-Erzeugung</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2011</year>
      </pub-date>
      <fpage>67</fpage>
      <lpage>71</lpage>
      <abstract>
        <p>Zusammenfassung Mobilgeräte wie z.B. Smartphones werden heutzutage nicht mehr ausschließlich zur Sprachkommunkation eingesetzt. Sie ermöglichen es, zeitnah Informationen an mobile Nutzer zu übertragen. Hierbei spielt der Aufenthaltsort der Nutzer weitestgehend keine Rolle, er/sie ist quasi jederzeit und allerorts erreichbar. Im Gegensatz zu der Einfachheit der Informationskonsumtion ist das Entwickeln von Apps nicht trivial. Hierzu ist Expertenwissen notwendig. Zahlreiche potentielle Informationsanbieter verfügen nicht über die notwendigen Kenntnisse, wenngleich ihre Informationen für zahlreiche Konsumenten interessant wären und es starke strukturelle Ähnlichkeiten zwischen mobil verfügbar gemachten Informationen gibt. Ein weiteres Problem ist, dass unterschiedliche SmartphoneHersteller dediziert unterschiedliche Programmiersprachen benutzen. In diesem Papier präsentieren wir unseren Ansatz zur anbieterzentrierten Generierung von Apps, wobei ein Hauptaugenmerk auf der Unterstützung heterogener Zielplattformen liegt. Somit ermöglichen wir es technisch nicht versierten Informationsanbietern, ihre eigenen Apps zu erzeugen.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>In diesem Papier präsentieren wir unseren Ansatz, die genannten
Probleme durch ein Framework zur Erzeugung von
Informationssystem-Apps zu beheben. Durch die Analyse verschiedener
existierender Apps haben wir herausgefunden, dass die angebotenen
Informationen klassifiziert werden können. Basierend auf dieser
Klassifikation haben wir eine modulare Struktur entwickelt, die als
Code-Skelett für verschiedene Plattformen realisiert wurde.
Mithilfe dieser Code-Skelette kann dann eine App wie folgt erzeugt
werden: Zuerst wird die App mithilfe eines domänen-spezifischen,
Web-basierten Konfigurationswerkzeugs parametrisiert. Die dabei
spezifizierten statischen Informationen werden dem Quelltext
hinzugefügt. Dynamische Informationen werden auf der Webseite des
Anbieters hinterlegt, wo sie auch gewartet werden können.
Anschließend wird die App automatisch kompiliert und zum
Download angeboten. Neben dem Vorteil, dass auf diese Weise technisch
nicht versierte Anwender wie Musiker, Politiker, etc. ohne
Kenntnis einer Programmiersprache Apps erstellen können, vermeidet
unser Verfahren die potentielle Verletzung von Urheber- und
Verwertungsrechten. Alle Informationen, die durch die App angeboten
werden, werden auch direkt vom Anbieter bereitgestellt und
befinden sich unter dessen Kontrolle1.</p>
      <p>Der Rest des Papieres ist wie folgt strukturiert: Abschnitt 2
beschreibt verwandte Arbeiten. Abschnitt 3 analysiert die
Eigenschaften der Informationen, welche üblicherweise durch
Informationssystem-Apps angeboten werden. Abschnitt 4 beinhaltet eine kurzen
Einblick in unseren Evaluationsprototyp und präsentiert die
Architektur unseres App-Erzeugungssystems. Abschnitt 5 fasst das
Papier zusammen und gibt einen Ausblick auf Folgearbeiten.</p>
    </sec>
    <sec id="sec-2">
      <title>2. VERWANDTE ARBEITEN</title>
      <p>
        Die in diesem Beitrag vorgestellten Forschungsergebnisse können
den Forschungsgebieten Code-Generierung (engl. code
generation), mobile Informationssysteme und
Mensch-Maschine-Interaktion (engl. human-computer interaction) zugeordnet werden.
Code-Generierung wird oft als Teilgebiet der modellgetriebenen
Softwareentwicklung [
        <xref ref-type="bibr" rid="ref6">5</xref>
        ] angesehen. Hierbei werden
domänen-spezifische Sprachen verwendet, um abstrakte Modelle von
SoftwareSystemen zu erzeugen. Aus diesen Modellen erzeugen dann
CodeGeneratoren den Quelltext, entweder in Teilen oder komplett.
Unser Ansatz ist es jedoch, Endbenutzern ohne technisches Wissen
die Möglichkeit zu geben, Anwendungen zu erzeugen. Von
diesen Benutzern kann nicht verlangt werden, formale
Spezifikationen zu verstehen oder zu verwenden. Zudem unterscheiden sich
die verfügbaren Smartphones verschiedener Hersteller sehr in den
unterstützten Programmiersprachen, wie bereits in Abschnitt 1
erläutert. Für unseren Ansatz hätte dies bedeutet eine sehr große
Anzahl von verschiedenen, formal spezifizierten Code-Generatoren
und domänen-spezifischen Sprachen zu erzeugen, um eine
breite Masse von Smartphones unterstützen zu können. Daher haben
wir uns dazu entschlossen, ein gerätespezifisches Code-Skelett
anzubieten, gemäß dem Paradigma der generativen Programmierung
[
        <xref ref-type="bibr" rid="ref3">2</xref>
        ]. Unser „Code-Generator“ parametrisiert und ergänzt das
CodeSkelett, welches schließlich kompiliert wird. In der Zukunft werden
wir an einer formaleren Spezifikation arbeiten.
      </p>
      <p>
        Mobile Informationssysteme machen es möglich, Informationen auf
mobilen Endgeräten anzubieten. Die größte Herausforderung
besteht dabei in der Reduktion des übertragenen Datenvolumens zum
und vom Gerät. Die drahtlose Datenübertragung ist unverzichtbar,
aber auch sehr energieintensiv [
        <xref ref-type="bibr" rid="ref2 ref4">3, 1</xref>
        ], vergleichsweise langsam [
        <xref ref-type="bibr" rid="ref14">13</xref>
        ]
und (je nach Mobilfunkvertrag) teuer. Zudem mindern
physikalische Effekte die Verfügbarkeit von drahtlosen Netzen [
        <xref ref-type="bibr" rid="ref10">9</xref>
        ]. Es gibt
bereits verschiedene Ansätze, um das anfallende Datenvolumen zu
reduzieren. Die Forschungsergebnisse reichen dabei von Caching
[
        <xref ref-type="bibr" rid="ref13 ref9">8, 12</xref>
        ] über Hoarding [
        <xref ref-type="bibr" rid="ref8">7</xref>
        ] bis hin zur Replikation [
        <xref ref-type="bibr" rid="ref5">4</xref>
        ]. In unserem
System begegnen wir dieser Herausforderung, indem so viele
Informationen wie möglich bereits in der App enthalten sind. Nur
dynamische Informationen (s. Abschnitt 3) werden an das mobile
Endgerät übertragen, wo sie zudem für den späteren Zugriff
zwischengespeichert werden.
      </p>
      <p>
        Smartphones bieten meist nur sehr kleine Bildschirme und im
Vergleich zu normalen Desktop-Computern grundverschiedene
Möglichkeiten der Benutzerinteraktion. Entsprechend gilt es, bei
Aspekten der Mensch-Maschine-Interaktion auf diese Unterschiede
ein1Wir nehmen an, dass der Anbieter die entsprechenden Rechte
besitzt bzw. entsprechende Verträge hierfür selbst abgeschlossen hat.
zugehen [
        <xref ref-type="bibr" rid="ref1 ref7">6</xref>
        ]. Die Software-Entwicklungsumgebungen der
verschiedenen Smartphone-Plattformen bieten bereits vereinheitlichte
Interaktionsschemata, an die die Benutzer der jeweiligen Geräte und
Plattformen gewöhnt sind. Generell bevorzugen sie eine
konsistente Benutzeroberfläche über alle verwendeten Apps [
        <xref ref-type="bibr" rid="ref11">10</xref>
        ]. Deshalb
haben wir uns dazu entschlossen, bestehende
BenuteroberflächenToolkits zu verwenden.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. INFORMATIONEN IN APPS</title>
      <p>Durch die Analyse verschiedener Informationssystem-Apps haben
wir zwei Klassen von präsentierten Informationen ableiten können:
Statische Informationen sind Informationen, die explizit in den
Binärcode von Apps hinein kompiliert werden. Nahezu
alle Apps enthalten statische Informationen wie den Namen
der App, statisch verknüpfte Bilder, Informationsdialog, usw.
Aktualisierungen dieser Informationen sind nur durch
Neukompilierung der App möglich. Dafür ist es möglich,
statische Informationen auch ohne Netzverbindung zu
verwenden.</p>
      <p>Dynamische Informationen sind Informationen, die zur Laufzeit
heruntergeladen werden. Dies sind beispielsweise
Nachrichten-Streams, ortsabhängige Informationen oder
Informationen über Ereignisse. Zur Aktualisierung von dynamischen
Informationen wird eine bestehende Netzverbindung
benötigt. Durch Caching, Hoarding oder Replikation kann jedoch
auch eine Offline-Nutzung zuvor heruntergeladener
dynamischer Informationen ermöglicht werden. Es gibt zwei
Subklassen dynamischer Informationen: (1) Interne
Informationen sind Informationen, die zumeist vom Anbieter der App
bereitgestellt werden. So werden in Zeitungs-Apps zum
Beispiel aktuelle Nachrichten der zugehörigen Zeitung
heruntergeladen und präsentiert. (2) Externe Informationen sind
verknüpfte Informationen, die von Dritten bereitgestellt
werden. Dies können zum Beispiel in Ereignisinformationen
verknüpfte Videos bei Youtube sein, die nicht direkt vom
Anbieter des Ereignisses zur Verfügung gestellt werden.</p>
      <p>Bei der Konzeption einer App spielen auch Fragestellungen des
Urheberrechts eine Rolle. In unserem Ansatz gehen wir davon aus,
dass der Anbieter der App die nötigen Urheberrechte an den in
einer App verwendeten statischen und internen Informationen
besitzt. Ferner gehen wir davon aus, dass der Anbieter einer App bei
der Verwendung von externen Informationen die
Nutzungsbedingungen des jeweiligen Informationsanbieters berücksichtigt.
Generell ist davon auszugehen, dass Benutzer auf statische und
dynamische Informationen nur lesenden Zugriff besitzen. Einige
Apps unterstützen jedoch interaktive (dynamische) Informationen.
So kann zum Beispiel eine App, die Informationen über Ereignisse
bereitstellt, das Kommentieren von Ereignissen durch soziale
Netzwerke wie Facebook, Twitter oder MySpace ermöglichen.</p>
    </sec>
    <sec id="sec-4">
      <title>4. SYSTEMARCHITEKTUR UND PROOF</title>
    </sec>
    <sec id="sec-5">
      <title>OF-CONCEPT</title>
      <p>Aufgrund der besseren Verständlichkeit verzichten wir in diesem
Papier auf die Trennung zwischen der Beschreibung unseres
Ansatzes und der Implementierung des Proof-of-Concept-Systems
namens MyBand-App. Dieses System ermöglicht es Musikern, ihre
eigenen Apps für Android- und iOS-basierte Smartphones zu
erstellen. Uns ist bekannt, dass es mit FansMagnet2 bereits einen
Anbieter eines vergleichbaren Services für Musiker gibt. Jedoch
werden dabei auch die Inhalte der Apps durch FansMagnet
verwaltet. Aufgrund rechtlicher Bedenken, obliegt es in unserem
Ansatz tatsächlich dem Informationsanbieter, dem Musiker oder
dessen Beauftragten, sicherzustellen, dass alle Urheber- und
Verwertungsrechtsfragen geklärt werden.</p>
      <p>Der Proof-of-Concept stellt ein Anwendungsszenario von Bands
bzw. Musikern dar, die Informationen an Ihre Fans über ein mobiles
Informationssystem weitergeben möchten. Dieses Beispiel dient
allerdings nur der Verdeutlichung unseres Ansatzes. Der hier
beschriebene Ansatz lässt sich auf beliebige andere Informationsanbieter
übertragen.</p>
      <p>Um diese Übertragbarkeit zu gewährleisten, muss das System
anpassbar und leicht erweiterbar sein. Aus diesem Grund ist unser
System ist als Framework aufgebaut. Für die App-Erzeugung sind
drei Komponenten verantwortlich: (1) ein Web-basiertes
Konfigurationswerkzeug (MyBandServlet), (2) die Code-Skelette für die
Apps und (3) die eigentliche App-Erzeugung. Der Arbeitsablauf
beim Erstellen einer App ist wie folgt: Zuerst wählt der Nutzer die
Zielplattform(en) und die Module, welche er/sie in die App
integrieren will (vgl. Abbildung 1). Anschließend werden die App und
die ausgewählten Module konfiguriert und der Erzeugungsprozess
angestoßen. Nach dessen Beendigung (nach dem Kompilieren der
App) kann der Nutzer seine App herunterladen.</p>
      <sec id="sec-5-1">
        <title>Abbildung 1: MyBand-App Web-basierte Konfiguration (Modulauswahl)</title>
        <p>Aus einem technischeren Blickwinkel betrachtet, funktioniert
unser Ansatz wie folgt: Wie Abbildung 1 verdeutlicht, sind
Module die kleinsten Bausteine in unserem Erzeugungsprozess. Es gibt
intern zwei Arten von Modulen: BuilderModule sind für die
Erstellung des plattformabhängigen Binärcodes zuständig.
AppModule kapseln die Funktionalität der App. Jedes AppModule umfasst
das entsprechende Code-Skelett und eine XML-Datei, mit der die</p>
      </sec>
      <sec id="sec-5-2">
        <title>Abbildung 2: MyBand-App Web-basierte Konfiguration (Modulkonfiguration)</title>
        <p>durch den Web-basierten Konfigurator festgelegte
Modulkonfiguration (bestehend aus statischen und dynamischen Informationen)
verarbeitet wird (vgl. Abbildung 2). Dies umfasst im verwendeten
Anwendungsszenario unter anderem den Namen und das Bild der
Band bzw. Musiker, sowie die Liste der Band-Mitglieder. Für die
Diskographie werden z.B. die Datei DiscographyModule.xml
und zwei AppModule IPhoneDiscographyModule.jar und
AndroidDiscographyModule.jar genutzt. Bevor der
eigentliche Erzeugungsprozess gestartet wird, analysiert das
MyBandServlet die verfügbaren XML-Dateien, erzeugt aus den
Meta-Informationen zu statischen Informationen die Formulare für den
Konfigurator und generiert aus den Meta-Informationen zu dynamischen
Informationen eine RSS-Vorlage3, die zur späteren Bereitstellung
der dynamischen Informationen dient. Nachdem das
Konfigurationsformular durch den Nutzer abgeschickt wurde, wird pro
AppModul die configure-Methode, welche jedes AppModul
implementiert, aufgerufen. Diese Methode modifiziert das Code-Skelett
des entsprechenden AppModuls entweder direkt oder, wie in
Abbildung 4 dargestellt, durch Ändern der XML-Datei basierend auf
der durch den Nutzer angegebenen Konfiguration. Anschließend
werden die konfigurierten AppModule an das BuilderModule
übergeben, welches für das Kompilieren der App verantwortlich ist.</p>
        <p>Die Abbildungen 5 und 6 zeigen eine iOS-App, welche
beispielhaft mit dem beschriebenen MyBand-App-Ansatz erzeugt wurde.</p>
        <p>Sicherlich ist die dargestellte Oberfläche noch nicht „fancy“, die
Abbildungen verdeutlichen aber, dass ein Java-basiertes Framework
genutzt werden kann, um Programme in Objective-C zu erzeugen.</p>
        <p>Abbildung 3 verdeutlicht, dass der vorgestellte Ansatz zum Ziel
hat, so generisch wie möglich zu sein. Zur Unterstützungen von
Apps abseits der Musiker-Domäne müssen lediglich andere
AppModule und XML-Dateien bereitgestellt werden.
3Im Prototyp werden die RSS-Dateien händisch editiert. Ein Editor
zum formularbasierten Eingeben der dynamischen Daten ist indes
in Vorbereitung.</p>
        <p>MyBandServlet
+settingsManager: SettingsManager = new SettingsManager()
+doPost(request:HttpServletRequest, response:HttpServletResponse): void
+doGet(request:HttpServletRequest, response:HttpServletResponse): void</p>
        <p>SettingsManager
+formatModuleSettings(settings: List&lt;ModuleSetting&gt;, formatter:SettingFormatter): String
+handleSettings(settings:List&lt;ModuleSetting&gt;, request:HttpServletRequest): boolean</p>
        <p>ModuleManager
+getInstance(): ModuleManager
+loadModules(): void
+getDefaultModuleSettings(): List&lt;ModuleSetting&gt;
+registerModule(module:Module): void
+setModuleState(module:Module, state:State): void
+getModules(): List&lt;Module&gt;</p>
        <p>ModuleLoader
+loadModules(directory:File): void
–loadModule(jarFile:File): Module</p>
        <p>Module
+getState(): State
+setState(state:State): void</p>
        <p>Builder
+createBuilder(settings:List&lt;ModuleSetting&gt;): Builder
+getBuildStatus(buildID:String): int
+getBuild(buildID:String): URL
+getBuildID(): String
+build(): void
for(File jarFile:directory.listFiles()) {</p>
        <p>Module module = this.loadModule(jarFile);</p>
        <p>ModuleManager.registerModule(module);
}</p>
        <p>AppModule
+configure(setting:ModuleSetting)
+getDepends(): List&lt;Module&gt;
+addFiles(): Map&lt;String, File&gt;
+replaceInFile(): List&lt;FileReplace&gt;</p>
        <p>BuilderModule
+preBuild(): void
+build(outDir:File,modules:List&lt;AppModule&gt;,settings:List&lt;ModuleSetting&gt;): void
+postBuild(outDir:File,outFile:File)
iPhoneCoreModule</p>
        <p>AndroidCoreModule
iPhoneBuilder</p>
        <p>AndroidBuilder
+configure(setting:ModuleSetting)
+getDepends(): List&lt;Module&gt;
+addFiles(): Map&lt;String, File&gt;
+replaceInFile(): List&lt;FileReplace&gt;
+configure(setting:ModuleSetting)
+getDepends(): List&lt;Module&gt;
+addFiles(): Map&lt;String, File&gt;
+replaceInFile(): List&lt;FileReplace&gt;
+preBuild(): void
+build(outDir:File,modules:List&lt;AppModule&gt;,</p>
        <p>settings:List&lt;ModuleSetting&gt;): void
+postBuild(outDir:File,outFile:File)
+preBuild(): void
+build(outDir:File,modules:List&lt;AppModule&gt;,</p>
        <p>settings:List&lt;ModuleSetting&gt;): void
+postBuild(outDir:File,outFile:File)
Abbildung 3: Klassendiagramm des Framework-Servlets für die MyBand-App-Konfiguration und -Erzeugung</p>
        <p>AndroidCoreModule
+configure(setting:ModuleSetting)
+getDepends(): List&lt;Module&gt;
+addFiles(): Map&lt;String, File&gt;
+replaceInFile(): List&lt;FileReplace&gt;
public void configure(ModuleSetting settings) {
...</p>
        <p>String content = Util.readFile("res/values/strings.xml");
}
util.writeFile("res/values/strings.xml";
...
&lt;resources&gt;
&lt;string name="bandname"&gt;Die Apokalyptischen Reiter&lt;/string&gt;
&lt;string name="updateurl"&gt;http://reitermania.de/feed.rss&lt;/string&gt;
&lt;/resources&gt;</p>
      </sec>
      <sec id="sec-5-3">
        <title>Abbildung 4: Beispiel für die XML-basierte Transformation eines Android-Code-Skeletts</title>
        <p>5.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>ZUSAMMENFASSUNG UND AUSBLICK</title>
      <p>In diesem Beitrag haben wir erste Ideen präsentiert, die es
Endbenutzern ohne technische Kenntnisse ermöglichen,
Informationssystem-Apps für Smartphones verschiedener Betriebssysteme zu
erstellen. Wir haben die generellen Eigenschaften von
Informationen, die in solchen Apps angeboten werden, klassifiziert und diese
Klassifikation für den Entwurf von Code-Skeletten verwendet. Mit
Hilfe eines Web-Interfaces können Benutzer ihre App
parametrisieren. Anschließend wird die App über die nativen
Entwicklungswerkzeuge kompiliert und kann heruntergeladen werden. Weitere
Vorzüge unseres Systems sind die native Benutzeroberfläche und
die Berücksichtigung des Urheberrechts der angebotenen
Informationen. Neben diesen allgemeinen Ansätzen haben wir unseren
Prototypen „MyBand-App“ vorgestellt, den wir zudem einer breiten
Öffentlichkeit auf der CeBIT-Messe im
März 2011 in Hannover
zeigen konnten.</p>
      <p>Wir stehen erst am Anfang unserer Forschung und sehen nun
verschiedene Forschungsrichtungen, die sich in Zukunft eröffnen.
Zunächst werden wir interaktive Informationen berücksichtigen.
Zudem werden wir die in unserem Evaluationssystem umgesetzten
Ideen generalisieren, um die Erstellung von sehr unterschiedlichen
mobilen Informationssystem-Apps zu unterstützen. Ferner werden
wir somit die Formalisierung unseres Ansatzes beginnen, um die
dem Ansatz bislang noch fehlende fundierte formale Basis zu
erhalten.</p>
      <sec id="sec-6-1">
        <title>Abbildung 5: Beispiel: MyBand-App für iOS</title>
      </sec>
      <sec id="sec-6-2">
        <title>Abbildung 6: Beispiel: MyBand-App für iOS (die Galerie)</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>6. LITERATURVERZEICHNIS</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>N.</given-names>
            <surname>Balasubramanian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Balasubramanian</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Venkataramani</surname>
          </string-name>
          .
          <article-title>Energy consumption in mobile phones: a measurement study and implications for network applications</article-title>
          .
          <source>In Proceedings of the 9th ACM SIGCOMM conference on Internet measurement conference</source>
          , pages
          <fpage>280</fpage>
          -
          <lpage>293</lpage>
          , New York, NY, USA, Nov.
          <year>2009</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          and
          <string-name>
            <given-names>U.</given-names>
            <surname>Eisenecker</surname>
          </string-name>
          . Generative Programming: Methods, Tools, and
          <string-name>
            <surname>Applications</surname>
          </string-name>
          .
          <string-name>
            <surname>Addison-Wesley Professional</surname>
          </string-name>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Feeney</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Nilsson</surname>
          </string-name>
          .
          <article-title>Investigating the energy consumption of a wireless network interface in an ad hoc networking environment</article-title>
          .
          <source>In Proceedings IEEE INFOCOM</source>
          <year>2001</year>
          , The Conference on Computer Communications,
          <source>Twentieth Annual Joint Conference of the IEEE Computer and Communications Societies, Twenty years into the communications odyssey, 22-26 April</source>
          <year>2001</year>
          , Anchorage, Alaska, USA, volume
          <volume>3</volume>
          , pages
          <fpage>1548</fpage>
          -
          <lpage>1557</lpage>
          , Los Alamitos, CA, USA,
          <year>2001</year>
          . IEEE. available online: http: //www.sics.se/~lmfeeney/publications/ Files/infocom01investigating.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>H.</given-names>
            <surname>Höpfner</surname>
          </string-name>
          .
          <article-title>Replication in Mobile Information Systems</article-title>
          . In Informatik bewegt, volume P-19
          <source>of Lecture Notes in Informatics (LNI)</source>
          , pages
          <fpage>590</fpage>
          -
          <lpage>593</lpage>
          , Bonn, Germany,
          <year>2002</year>
          . GI,
          <string-name>
            <surname>Köllen</surname>
            <given-names>Druck</given-names>
          </string-name>
          +Verlag GmbH.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Kent</surname>
          </string-name>
          .
          <article-title>Model driven engineering</article-title>
          . In M. Butler,
          <string-name>
            <given-names>L.</given-names>
            <surname>Petre</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          K. Sere, editors,
          <source>Integrated Formal Methods</source>
          , volume
          <volume>2335</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>286</fpage>
          -
          <lpage>298</lpage>
          . Springer Berlin / Heidelberg,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Kjeldskov</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Graham</surname>
          </string-name>
          .
          <article-title>A review of mobile hci research methods</article-title>
          .
          <source>In Human-Computer Interaction with Mobile Devices and Services</source>
          , volume
          <volume>2795</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>317</fpage>
          -
          <lpage>335</lpage>
          . Springer Berlin / Heidelberg,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>G. H.</given-names>
            <surname>Kuenning</surname>
          </string-name>
          and
          <string-name>
            <given-names>G. J.</given-names>
            <surname>Popek</surname>
          </string-name>
          .
          <source>Automated Hoarding for Mobile Computers</source>
          . In W. M. Waite, editor,
          <source>Proceedings of the 16th ACM Symposium on Operating Systems Principles</source>
          , pages
          <fpage>264</fpage>
          -
          <lpage>275</lpage>
          , New York, NY, USA,
          <year>1997</year>
          . ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [8]
          <string-name>
            <surname>K. C. K. Lee</surname>
            ,
            <given-names>H. V.</given-names>
          </string-name>
          <string-name>
            <surname>Leong</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Si</surname>
          </string-name>
          .
          <article-title>Semantic query caching in a mobile environment</article-title>
          .
          <source>ACM SIGMOBILE Mobile Computing and Communications Review</source>
          ,
          <volume>3</volume>
          (
          <issue>2</issue>
          ):
          <fpage>28</fpage>
          -
          <lpage>36</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>P.</given-names>
            <surname>Nicopolitidis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Pomportsis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. I.</given-names>
            <surname>Papadimitriou</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. S. Obaidat. Wireless</given-names>
            <surname>Networks</surname>
          </string-name>
          . John Wiley &amp; Sons, Inc., New York, NY, USA,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Nielsen</surname>
          </string-name>
          .
          <article-title>ipad usability: First findings from user testing</article-title>
          . Website, May
          <year>2010</year>
          . http://www.useit.com/alertbox/ipad.html.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>C.</given-names>
            <surname>Pettey</surname>
          </string-name>
          .
          <source>Gartner Says Worldwide Mobile Device Sales Grew</source>
          <volume>13</volume>
          .
          <article-title>8 Percent in Second Quarter of 2010, But Competition Drove Prices Down</article-title>
          . Website, Aug.
          <year>2010</year>
          . http: //www.gartner.com/it/page.jsp?id=
          <fpage>1421013</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Q.</given-names>
            <surname>Ren</surname>
          </string-name>
          and
          <string-name>
            <given-names>M. H.</given-names>
            <surname>Dunham</surname>
          </string-name>
          .
          <source>Semantic Caching and Query Processing. Transactions on Knowledge and Data Engineering</source>
          ,
          <volume>15</volume>
          (
          <issue>1</issue>
          ):
          <fpage>192</fpage>
          -
          <lpage>210</lpage>
          , Jan.
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          . Wired and
          <string-name>
            <given-names>Wireless</given-names>
            <surname>Networks</surname>
          </string-name>
          .
          <source>Vdm Verlag Dr. Müller</source>
          , Saarbrücken, Germany,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>