So wählen Sie eine Datenbank für Ihre mobilen Apps aus

Die Verbraucher von heute sind in hohem Maße auf ihre mobilen Anwendungen angewiesen. Wenn Apps nicht funktionieren, werden sie von den Benutzern nicht verwendet - so einfach ist das. 

Eine Internetverbindung für mobile Anwendungen zu benötigen, bedeutet, in der Vergangenheit zu leben. Wenn Apps auf einer Verbindung basieren, ist die Wahrscheinlichkeit hoch, dass die Erfahrung träge und unvorhersehbar ist.

Um die Abhängigkeit vom Netzwerk zu vermeiden, haben Anbieter von Datenbanken und Cloud-Diensten ihren mobilen Angeboten Synchronisierungs- und Offline-Funktionen hinzugefügt. Lösungen wie Couchbase Mobile von Couchbase, Azure Mobile Services von Microsoft, Cognito von Amazon und Firebase von Google bieten die wichtige Synchronisierung, mit der Apps sowohl online als auch offline arbeiten können. 

Wie wählt ein mobiler Entwickler bei so vielen verfügbaren Angeboten die richtige Technologie für die richtige Anwendung aus? Die folgenden sechs Hauptkriterien sind für die Bewertung mobiler Lösungen am wichtigsten: Plattformunterstützung, Sicherheit, Modellierungsflexibilität, Konfliktlösung, Synchronisierungsoptimierung und Topologieunterstützung.

Unterstützen Sie die richtigen Client-Plattformen

Welche Client-Plattformen werden unterstützt? Müssen Sie über iOS und Android hinausgehen? Möchten Sie Plattformen unterstützen, die traditionell nicht als mobil gelten, z. B. eingebettete Systeme, IoT-Geräte und Wearables? Möchten Sie auch Windows- und OS X-Desktops und -Laptops unterstützen? Viele der heutigen Anwendungen werden auf Mobilgeräten gestartet und fügen dann eine native Desktop- oder Web-Begleit-App hinzu. Es ist wichtig, Datenbank- und Cloud-Optionen basierend auf der Plattformunterstützung zu bewerten, die Sie nicht nur heute, sondern auch in Zukunft benötigen.

Sichere Daten in Ruhe und in Bewegung

Wenn Sie synchronisierten und dezentralen Speicher verwenden, ist es wichtig, sicher auf Daten zuzugreifen, diese zu übertragen und zu speichern. Um dies vollständig abzudecken, müssen Sie sich mit Authentifizierung, ruhenden Daten, bewegten Daten und Lese- / Schreibzugriff befassen. 

Die Authentifizierung sollte flexibel sein und die Verwendung von Standard-, öffentlichen und benutzerdefinierten Authentifizierungsanbietern ermöglichen. Die Unterstützung des anonymen Zugriffs ist auch für viele Apps wichtig. Für ruhende Daten auf dem Server und dem Client möchten Sie sowohl die Verschlüsselung des Dateisystems als auch die Verschlüsselung auf Datenebene unterstützen. Für bewegte Daten sollte die Kommunikation über einen sicheren Kanal wie SSL oder TLS erfolgen. Für den Lese- / Schreibzugriff auf Daten sollte die Datenbank eine detaillierte Kontrolle darüber bieten, auf welche Daten Benutzer zugreifen und diese ändern können.

Verwenden Sie ein flexibles Datenmodell

Die Flexibilität der Datenmodellierung bestimmt, ob Sie die Modellanforderungen für Ihre Apps effizient und angemessen formulieren können. Noch wichtiger ist, dass Sie bestimmen, ob Sie Ihr Modell effizient weiterentwickeln können, wenn sich Ihre Anforderungen in Zukunft ändern. Modellflexibilität ist in Mobilgeräten besonders wichtig, da sich die heutigen mobilen Apps sehr schnell entwickeln.

Relationale Datenbanken sind immer noch eine gute Wahl, wenn eine App eine starke Datenkonsistenz erfordert oder ihre Daten stark relational sind. Wenn diese Anforderungen jedoch gelockert werden können, bieten NoSQL-Datenbanken eine viel größere Flexibilität.

Lösen Sie Datenkonflikte ordnungsgemäß

Bei mobilen Plattformen oder anderen Plattformen, die dezentrale Datenschreibvorgänge verwenden, können dieselben Daten gleichzeitig auf mehreren Geräten geändert werden, wodurch ein Konflikt entsteht. Das System muss einen Mechanismus zur Lösung dieser Konflikte unterstützen. Die Flexibilität des Konfliktlösungsmechanismus ist wichtig und sollte eine automatische Lösung auf dem Gerät, in der Cloud, durch ein externes System und durch einen Menschen ermöglichen. 

Die Konfliktbehandlung ist für jedes System unterschiedlich. Couchbase Mobile verwendet beispielsweise Revisionsbäume mit der Standardauflösungsregel "Die meisten aktiven Zweiggewinne". Dies ist derselbe Ansatz, den Revisionskontrollsysteme wie Git verfolgen, und er unterscheidet sich stark von taktbasierten Systemen, die den Ansatz "Neueste Änderungen gewinnen" verfolgen. Taktbasierte Auflösungssysteme sind aufgrund der Probleme mit Taktunterschieden zwischen Geräten problematisch. Couchbase ermöglicht auch die Anpassung (über Code auf dem Client oder auf dem Server), um komplexere Konfliktlösungen wie eine Drei-Wege-Zusammenführung durchzuführen.

Zum richtigen Zeitpunkt synchronisieren

Neben der Lösung von Konflikten ist es wichtig, die Synchronisierung des Systems steuern zu können. Dies umfasst die Replikationsstrategie, die bedingte Replikation und die Replikationsfilterung. Suchen Sie für die Replikationsstrategie nach Unterstützung für Streaming, Polling, One-Time, Continuous und Push. Sie sollten auch die Möglichkeit haben, eine Kombination dieser Strategien zu verwenden. Für die bedingte Replikation müssen Sie Daten möglicherweise nur unter bestimmten Bedingungen replizieren, z. B. wenn das Gerät über WLAN verfügt oder über ausreichend Batteriestrom verfügt. Für die Replikationsfilterung sollten Sie die Möglichkeit haben, einige Daten zu replizieren, andere jedoch nicht.

Synchronisieren Sie mit den richtigen Partitionen

Konfigurierbare Unterstützung für die Synchronisierungstopologie ist erforderlich, damit Sie Ihre Partitionsanforderungen erfüllen können. Mit anderen Worten, Sie müssen das System so konfigurieren können, dass bestimmte Teile offline betrieben werden können. Die häufigste Topologie ist Stern. In einer Sterntopologie ist jedes Gerät über eine Punkt-zu-Punkt-Verbindung mit einem zentralen Hub verbunden, über die die Geräte offline betrieben werden können. Andere gängige Topologien wie Baum und Netz ermöglichen es anderen Teilen des Systems (zusätzlich zu den Geräten), offline zu arbeiten. Möglicherweise möchten Sie auch Cloud-freie Topologien unterstützen, mit denen Geräte Peer-to-Peer kommunizieren und Daten direkt untereinander synchronisieren können. 

Ein POS-System (Point of Sale) ist ein gutes Beispiel für eine Baumtopologie. POS-Systeme erfordern, dass ein stationäres Geschäft weiter betrieben wird, wenn es vom Rest des Systems getrennt wird. In dieser Konfiguration würden POS-Geräte mit einer Datenbank auf Geschäftsebene synchronisiert, die mit einem globalen System synchronisiert würde. Auf diese Weise können Geschäfte unabhängig von der Konnektivität mit dem globalen System weiterhin Daten mit ihren POS-Geräten betreiben und synchronisieren.

Ob Synchronisierung oder Kauf

Wenn Sie Ihren Apps eine Synchronisierung hinzufügen möchten, müssen Sie festlegen, ob Sie eine Lösung erstellen oder von einem Anbieter beziehen möchten. Die korrekte Erstellung der Synchronisierung ist bekanntermaßen schwierig und teuer, da sie alle Komplexitäten des verteilten Rechnens bewältigen muss. Bei den meisten Apps ist es besser, die Datensynchronisation einem speziellen Stapel zu überlassen und sich auf die Funktionen Ihrer App zu konzentrieren. Der Schlüssel ist die Wahl einer flexiblen Lösung. Wenn Sie den Erstellungspfad beschreiten, müssen Sie einen erheblichen Teil Ihrer Zeit und Ressourcen für die Erstellung der Synchronisierung und die Unterstützung aller oben aufgeführten Aufgaben aufwenden.

Bei der Auswahl eines Anbieters für mobile Synchronisierung und Speicher ist es entscheidend, die oben genannten Kriterien vollständig zu berücksichtigen, um sichere, flexible und verwaltbare mobile Apps zu erstellen, die immer funktionieren - mit oder ohne Internetverbindung. 

- -

Wayne Carter ist der Chefarchitekt von Mobile bei Couchbase, wo er für die Leitung der Vision, Strategie und Entwicklung der mobilen Lösungen des Unternehmens verantwortlich ist. Vor Couchbase war Wayne sieben Jahre bei Oracle als Architekt tätig, der für die Förderung mobiler Innovationen in den CRM- und SaaS-Produktlinien verantwortlich war. Er hat 11 Patente für seine Arbeit bei Oracle angemeldet. Vor seiner Zeit bei Oracle hatte Wayne technische Führungspositionen bei Siebel inne und arbeitete an seiner CRM-Produktlinie.

Das New Tech Forum bietet einen Ort, an dem Sie neue Unternehmenstechnologien in beispielloser Tiefe und Breite erkunden und diskutieren können. Die Auswahl ist subjektiv, basierend auf unserer Auswahl der Technologien, die wir für wichtig und für die Leser von größtem Interesse halten. akzeptiert keine Marketingmaterialien zur Veröffentlichung und behält sich das Recht vor, alle eingebrachten Inhalte zu bearbeiten. Senden Sie alle Anfragen an [email protected]