Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03539.jsonl.gz/1604

1. Dezember 2016 | von Sacha Catelin und Olaf Schumacher
Das Smartphone ist derzeit der einzige Bestandteil des Systems. Es erlaubt den Zugriff auf verschiedene Datenquellen – wie GPS, Internetressourcen, Adressbücher, Fotos und Kalender – sowie die Speicherung von Informationen im lokalen Datenspeicher. Die App kann unter Berücksichtigung drei verschiedener Aspekte aufgeteilt werden: die einzelnen Schichten, die einzeln funktionalen Module sowie die dynamischen Gesichtspunkte.
Präsentations-Layer
Der Präsentations-Layer folgt der Model-View-Controller-Architektur, die eine Trennung der Verantwortlichkeiten des Präsentations-Layers in Datenmodell (Model), Darstellung (View) und deren Steuerung (Controller) forciert.
Business-Layer
In diesem Layer wird die Logik der Anwendung implementiert. Bei der App in|Forming liegt der Schwerpunkt in der Interpretation und Aufbereitung der gesammelten Daten.
Data-Access-Layer
Die Architektur des Datenmanagements unserer App besteht aus mehreren Schichten:
Ein Beispiel: MongoDB verwendet die Methode find(), EntityFramework verwendet get() und Coredata hingegen fetch(), um einen Datensatz aus dem Datenspeicher zu lesen.
Durch die Implementierung von CRUD-Methoden findet eine Entkopplung von der verwendeten Datenbank und dem eingesetzten Framework statt.
Modell
Das Objekt-Modell findet schichtübergreifend Verwendung. Im Mittelpunkt des Modells steht der Benutzer:
Man kann die Systemarchitektur außerdem aus der funktionalen Sicht betrachten. Hierbei wird die Anwendung nach funktionalen Aspekten aufgeteilt.
UserDataManagement
Innerhalb des UserDataManagement gibt es die Manager-Komponenten LocationManager, PhotosManager, EventManager und ContactsManager. Die Aufgabe dieser Manager ist das Auslesen der zugeordneten Komponenten über deren Schnittstellen. Zwischen den Komponenten erfolgt der Datenaustausch über den DataInterpreter und es gibt verschiedene Abhängigkeiten zwischen diesen Komponenten – z.B. bietet der Eventmanager Informationen über Kontakte, weil diese an einer Veranstaltung teilnehmen können und der PhotosManager liest GPS-Daten von einem Foto. Diese Abhängigkeiten müssen von der DataInterpreter-Komponente verwaltet werden.
UserDataModeling
Das Subsystem UserDataModeling ist dafür zuständig, die Daten, die über das Subsystem UserDataManagement abgerufen wurden, zu verarbeiten und in eigenen Datenstrukturen abzulegen. Die hierfür verwendeten Module DataAccess und DataStorage stellen die Daten später auch wieder zur Verfügung.
UserInterface
Die Controller-Komponente liest die Daten über die Komponente Data Access. Die gelesenen Daten werden dann dem Benutzer angezeigt und über die Komponente View interagiert dieser dann mit der App. Die Verarbeitung der Eingaben findet in der Controller-Komponente statt.
in|Forming kann auch unter dynamischen Gesichtspunkten betrachtet werden. Das Sammeln der Daten aus den verschiedenen Datenquellen ist ein wiederkehrender Prozess, der mittels eines CronJobs abgearbeitet wird. Dieser Job wird bei der ersten Ausführung von in|Forming gestartet und läuft dann alle 24 Stunden. Seine Hauptaufgabe ist es, den Datenspeicher synchron zu den verfügbaren Daten des Smartphones zu halten.
Der CronJob führt die folgenden Aktivitäten aus:
Am Ende wollen wir noch einen kurzen Blick auf mögliche Erweiterungen der App werfen.
Datenaustausch über Server oder Peer-2-Peer
Eine mögliche Ausbaustufe ist der Datenaustausch von Gerät zu Gerät. Es könnten Daten von Personen übertragen werden, die in der Nähe sind. Bei der Peer-2-Peer-Kommunikation müsste der Benutzer allerdings hierfür eine Freigabe geben, diese würde hingegen bei der server-basierten Variante entfallen.
Nächste Schritte
Datensicherheit
Da die Datensicherheit ein Thema ist, das immer mehr an Bedeutung gewinnt, wollen wir in|Forming verwenden, um auch junge Menschen für das Thema zu sensibilisieren. Sie stellen eine wichtige Zielgruppe dar, da durch den selbstverständlichen Umgang mit dem Smartphone die mit mangelnder Datensicherheit verbundenen Bedrohungsszenarien nicht direkt erkannt werden.
Dieser Artikel stellt den Abschluss unserer dreiteiligen Blog-Reihe dar. Wenn ihr Fragen zum iOS-Praktikum habt, dann schreibt uns gerne. Wir freuen uns auf eure Kommentare.