Einsatz der Near Field Communication
Technologie im wissenschaftlichen Kontext
 - Konzeption und Implementierung einer
   mobilen Applikation für das Android-
              Betriebssystem




            Tim Messerschmidt,
                19.07.2011
                    1
                                            1
Gliederung
•   Android als Plattform
•   NFC als Technik
•   OAuth
•   Mendeley als Service-Provider
•   Datenaustausch via JSON
•   SETapp
    •   Design der Applikation
    •   Funktionen
•   Evaluation


                                 2
                                     2
Android als Plattform




          3
                        3
Android als Plattform




          3
                        3
Android als Plattform




          3
                        3
Android als Plattform




          3
                        3
Android als Plattform




          3
                        3
Unsere Testplattform

                  •   Googles Referenzplattform

                  •   erstes Android-Telefon mit NFC

                  •   Android 2.3.4 (Gingerbread)

                      •   für Lesen und Schreiben via NFC

                  •   Leihstellung von Samsung



Samsung Nexus S
                                                            4
Android als Plattform

• Basiert auf einem Linux-Kernel
• Bietet schnellen API-Zugriff auf Hardware
 • WLAN, NFC, Bluetooth, ...
• Wird in Java entwickelt
• Oberflächendeklaration in XML
                     5
                                              5
NFC als Technik
• Drahtloser Austausch von Daten
• Schnelle Kopplung von Geräten (< 0.02s)
• Kurze Übertragungsdistanz (< 2cm)
• Hohe Fehlerresistenz
• NFC-Tags mit bis zu 1 Mb Speicher
• Aktiver und passiver Standard
                      6
                                            6
NFC vs. QR-Codes




   Verwendeter QR-Code


                         7
NFC vs. QR-Codes
•   QR-Code benötigt
    optimale Bedingungen:

    •   gute Kamera

    •   schneller Autofokus

    •   gute Lichtverhältnisse

    •   Applikation muss erst
        gestartet werden



                                 8
NFC vs. QR-Codes
•   QR-Code benötigt              Nr     QR     NFC
    optimale Bedingungen:
                                   1    4730ms 910ms
    •   gute Kamera                2    5300ms 1920ms
                                   3    5400ms 2320ms
    •   schneller Autofokus
                                   4    7800ms 1620ms
    •   gute Lichtverhältnisse     5    4710ms 2260ms
    •   Applikation muss erst      6    5540ms 2160ms
        gestartet werden         Schnitt 5580ms 1865ms


                                                         8
NFC vs. QR-Codes
•   QR-Code benötigt              Nr     QR     NFC
    optimale Bedingungen:
                                   1    4730ms 910ms
    •   gute Kamera                2    5300ms 1920ms
                                   3    5400ms 2320ms
    •   schneller Autofokus
                                   4    7800ms 1620ms
    •   gute Lichtverhältnisse     5    4710ms 2260ms
    •   Applikation muss erst      6    5540ms 2160ms
        gestartet werden         Schnitt 5580ms 1865ms
                NFC um Faktor 3 schneller
                                                         8
OAuth
•   Leitet den Benutzer auf eine dynamisch-generierte
    Login-Seite des eigentlichen Services weiter

•   Service gibt Credentials zurück, welche der
    Applikation Zugriff via API auf Ressourcen des
    authentifizierten Benutzers gibt

•   Genutzt von vielen Social Networks




                          9
                                                        9
OAuth
•   Leitet den Benutzer auf eine dynamisch-generierte
    Login-Seite des eigentlichen Services weiter

•   Service gibt Credentials zurück, welche der
    Applikation Zugriff via API auf Ressourcen des
    authentifizierten Benutzers gibt

•   Genutzt von vielen Social Networks




                          9
                                                        9
OAuth
•   Leitet den Benutzer auf eine dynamisch-generierte
    Login-Seite des eigentlichen Services weiter

•   Service gibt Credentials zurück, welche der
    Applikation Zugriff via API auf Ressourcen des
    authentifizierten Benutzers gibt

•   Genutzt von vielen Social Networks




                          9
                                                        9
OAuth
•   Leitet den Benutzer auf eine dynamisch-generierte
    Login-Seite des eigentlichen Services weiter

•   Service gibt Credentials zurück, welche der
    Applikation Zugriff via API auf Ressourcen des
    authentifizierten Benutzers gibt

•   Genutzt von vielen Social Networks




                          9
                                                        9
OAuth
•   Leitet den Benutzer auf eine dynamisch-generierte
    Login-Seite des eigentlichen Services weiter

•   Service gibt Credentials zurück, welche der
    Applikation Zugriff via API auf Ressourcen des
    authentifizierten Benutzers gibt

•   Genutzt von vielen Social Networks




                          9
                                                        9
• Großer Datenstamm (Stand: 15.07.11)
 • 1.059.449 Personen
 • 98.212.833 Papers
• Wird zur Anmeldung genutzt (via OAuth)
 • spart eigenen Account für SETapp
                   10
                                           10
• Problem:
  • API war bis Mitte Juni unbrauchbar
    • Keine banalen Details wie Name, E-Mail
       oder Arbeitgeber abrufbar
  • API selbst jetzt noch teils fehlerhaft
    • Profil-Details via JSON
    • OAuth bietet nicht vollen Zugriff
                       11
                                               11
• Profil-Details via JSON:
 • Contact im ausgefüllten Zustand:
   • { ... } Details wie E-Mail oder Skype
 • Contact im leeren Zustand:
   • [] Kennzeichnung für ein leeres Array
                   12
                                             12
JSON
• Effizientes Datenaustauschformat mit
  geringem Overhead
• Nativ bei Android unterstützt
• Auf Serverseite durch Library nachgepflegt
• Wird zur (De-)Serialisierung von Objekten
  genutzt (auch in Collections)


                     13
                                              13
Android-Applikation
Google App Engine-Backend


                            14
Design
• Verwendung von Design-Patterns
• Möglichst komprimierte Darstellung von
  Informationen
• Unaufdringliche Gestaltung & Farbwahl
• Konsistenz
• Keine versteckten Funktionen
• Maximale Wiederverwendbarkeit
                                           15
ActionBar
      Nachricht schicken
      Person folgen
      zurück zur letzten Activity


  situationsabhängige Funktionen
  an einer zentralen Position




                                    16
TabBar und Actions
        Tabs mit verschiedenen
        Inhalten / Funktionen


        Hauptfunktionen




                                 17
Funktionen
• Profiltausch
• Dokumententausch
• Check-in in Events und Talks
• Lesen einer Paper-Session
• „Folgen“ von Personen
• Nachrichten versenden & empfangen
                                      18
Profiltausch




Die Rückseiten der Telefone zusammenführen
                                             19
Profiltausch




              20
Profiltausch
  {
      MIME: application/x-setapp-share
      (
        PAYLOAD={
  	

 "type":
             "de.upb.messerschmidt.set.entity.Person",
        "name":
             "Messerschmidt",
  	

   "prename":
             "Tim"
        }
      )
  }




                                                         20
Dokumententausch




                   21
Integration




Andere Apps nutzen unsere Daten!
                                   22
Integration
• Vorteil:
 • Teilnehmer können über mehrere Kanäle
    von SETapp profitieren
 • Auch Leute ohne SETapp werden nicht
    komplett ausgeschlossen
• SETapp teilt Dokumente per NFC

                                           23
Check-in




.. oder per NFC!
                   24
Google App Engine
• Instanzenmodell führt zu hohen Latenzen
 • erster Start: 2666ms
 • nächster Aufruf: 69ms
• Datenspeicherung umständlich
 • Vater-Kind-Relationen und Vererbung nur
    mangelhaft implementierbar


                                             25
Evaluation

• 11 Teilnehmer
• Teststrecke:
 • 1 Event
 • 2 Talks
 • 2 Paper-Sessions

                        26
NFC Geschwindigkeit
    sehr langsam          langsam             eher langsam
    eher schnell          schnell             sehr schnell
7
6
5
4
3
2
1
0
                   Empfinden der Teilnehmer


                                                             27
NFC oder manuell?
    nur manuell      lieber manuell          eher manuell
    eher NFC         lieber NFC              nur NFC
4


3


2


1


0
                  Präferenz der Teilnehmer



                                                            28
Vielen Dank!



               29
Fragen?



          30

SETapp Präsentation

  • 1.
    Einsatz der NearField Communication Technologie im wissenschaftlichen Kontext - Konzeption und Implementierung einer mobilen Applikation für das Android- Betriebssystem Tim Messerschmidt, 19.07.2011 1 1
  • 2.
    Gliederung • Android als Plattform • NFC als Technik • OAuth • Mendeley als Service-Provider • Datenaustausch via JSON • SETapp • Design der Applikation • Funktionen • Evaluation 2 2
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
    Unsere Testplattform • Googles Referenzplattform • erstes Android-Telefon mit NFC • Android 2.3.4 (Gingerbread) • für Lesen und Schreiben via NFC • Leihstellung von Samsung Samsung Nexus S 4
  • 9.
    Android als Plattform •Basiert auf einem Linux-Kernel • Bietet schnellen API-Zugriff auf Hardware • WLAN, NFC, Bluetooth, ... • Wird in Java entwickelt • Oberflächendeklaration in XML 5 5
  • 10.
    NFC als Technik •Drahtloser Austausch von Daten • Schnelle Kopplung von Geräten (< 0.02s) • Kurze Übertragungsdistanz (< 2cm) • Hohe Fehlerresistenz • NFC-Tags mit bis zu 1 Mb Speicher • Aktiver und passiver Standard 6 6
  • 11.
    NFC vs. QR-Codes Verwendeter QR-Code 7
  • 12.
    NFC vs. QR-Codes • QR-Code benötigt optimale Bedingungen: • gute Kamera • schneller Autofokus • gute Lichtverhältnisse • Applikation muss erst gestartet werden 8
  • 13.
    NFC vs. QR-Codes • QR-Code benötigt Nr QR NFC optimale Bedingungen: 1 4730ms 910ms • gute Kamera 2 5300ms 1920ms 3 5400ms 2320ms • schneller Autofokus 4 7800ms 1620ms • gute Lichtverhältnisse 5 4710ms 2260ms • Applikation muss erst 6 5540ms 2160ms gestartet werden Schnitt 5580ms 1865ms 8
  • 14.
    NFC vs. QR-Codes • QR-Code benötigt Nr QR NFC optimale Bedingungen: 1 4730ms 910ms • gute Kamera 2 5300ms 1920ms 3 5400ms 2320ms • schneller Autofokus 4 7800ms 1620ms • gute Lichtverhältnisse 5 4710ms 2260ms • Applikation muss erst 6 5540ms 2160ms gestartet werden Schnitt 5580ms 1865ms NFC um Faktor 3 schneller 8
  • 15.
    OAuth • Leitet den Benutzer auf eine dynamisch-generierte Login-Seite des eigentlichen Services weiter • Service gibt Credentials zurück, welche der Applikation Zugriff via API auf Ressourcen des authentifizierten Benutzers gibt • Genutzt von vielen Social Networks 9 9
  • 16.
    OAuth • Leitet den Benutzer auf eine dynamisch-generierte Login-Seite des eigentlichen Services weiter • Service gibt Credentials zurück, welche der Applikation Zugriff via API auf Ressourcen des authentifizierten Benutzers gibt • Genutzt von vielen Social Networks 9 9
  • 17.
    OAuth • Leitet den Benutzer auf eine dynamisch-generierte Login-Seite des eigentlichen Services weiter • Service gibt Credentials zurück, welche der Applikation Zugriff via API auf Ressourcen des authentifizierten Benutzers gibt • Genutzt von vielen Social Networks 9 9
  • 18.
    OAuth • Leitet den Benutzer auf eine dynamisch-generierte Login-Seite des eigentlichen Services weiter • Service gibt Credentials zurück, welche der Applikation Zugriff via API auf Ressourcen des authentifizierten Benutzers gibt • Genutzt von vielen Social Networks 9 9
  • 19.
    OAuth • Leitet den Benutzer auf eine dynamisch-generierte Login-Seite des eigentlichen Services weiter • Service gibt Credentials zurück, welche der Applikation Zugriff via API auf Ressourcen des authentifizierten Benutzers gibt • Genutzt von vielen Social Networks 9 9
  • 20.
    • Großer Datenstamm(Stand: 15.07.11) • 1.059.449 Personen • 98.212.833 Papers • Wird zur Anmeldung genutzt (via OAuth) • spart eigenen Account für SETapp 10 10
  • 21.
    • Problem: • API war bis Mitte Juni unbrauchbar • Keine banalen Details wie Name, E-Mail oder Arbeitgeber abrufbar • API selbst jetzt noch teils fehlerhaft • Profil-Details via JSON • OAuth bietet nicht vollen Zugriff 11 11
  • 22.
    • Profil-Details viaJSON: • Contact im ausgefüllten Zustand: • { ... } Details wie E-Mail oder Skype • Contact im leeren Zustand: • [] Kennzeichnung für ein leeres Array 12 12
  • 23.
    JSON • Effizientes Datenaustauschformatmit geringem Overhead • Nativ bei Android unterstützt • Auf Serverseite durch Library nachgepflegt • Wird zur (De-)Serialisierung von Objekten genutzt (auch in Collections) 13 13
  • 24.
  • 25.
    Design • Verwendung vonDesign-Patterns • Möglichst komprimierte Darstellung von Informationen • Unaufdringliche Gestaltung & Farbwahl • Konsistenz • Keine versteckten Funktionen • Maximale Wiederverwendbarkeit 15
  • 26.
    ActionBar Nachricht schicken Person folgen zurück zur letzten Activity situationsabhängige Funktionen an einer zentralen Position 16
  • 27.
    TabBar und Actions Tabs mit verschiedenen Inhalten / Funktionen Hauptfunktionen 17
  • 28.
    Funktionen • Profiltausch • Dokumententausch •Check-in in Events und Talks • Lesen einer Paper-Session • „Folgen“ von Personen • Nachrichten versenden & empfangen 18
  • 29.
    Profiltausch Die Rückseiten derTelefone zusammenführen 19
  • 30.
  • 31.
    Profiltausch { MIME: application/x-setapp-share ( PAYLOAD={ "type": "de.upb.messerschmidt.set.entity.Person", "name": "Messerschmidt", "prename": "Tim" } ) } 20
  • 32.
  • 33.
  • 34.
    Integration • Vorteil: •Teilnehmer können über mehrere Kanäle von SETapp profitieren • Auch Leute ohne SETapp werden nicht komplett ausgeschlossen • SETapp teilt Dokumente per NFC 23
  • 35.
  • 36.
    Google App Engine •Instanzenmodell führt zu hohen Latenzen • erster Start: 2666ms • nächster Aufruf: 69ms • Datenspeicherung umständlich • Vater-Kind-Relationen und Vererbung nur mangelhaft implementierbar 25
  • 37.
    Evaluation • 11 Teilnehmer •Teststrecke: • 1 Event • 2 Talks • 2 Paper-Sessions 26
  • 38.
    NFC Geschwindigkeit sehr langsam langsam eher langsam eher schnell schnell sehr schnell 7 6 5 4 3 2 1 0 Empfinden der Teilnehmer 27
  • 39.
    NFC oder manuell? nur manuell lieber manuell eher manuell eher NFC lieber NFC nur NFC 4 3 2 1 0 Präferenz der Teilnehmer 28
  • 40.
  • 41.