1. 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
2. Gliederung
• Android als Plattform
• NFC als Technik
• OAuth
• Mendeley als Service-Provider
• Datenaustausch via JSON
• SETapp
• Design der Applikation
• Funktionen
• Evaluation
2
2
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
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 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
23. 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
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
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