Mobile App - Server-Architektur
Ich will eine mobile Anwendung, jedoch habe ich einige Fragen. Ich bin verwirrt über eine Datenbank-Verbindungs-Schicht. Sollte ich konstruiere meine Architektur 2 geschichtet: 1. Schicht ist die mobile app (die Datenbank-Verbindung in der mobilen app), 2. Ebene ist nur die Datenbank. Oder 3-Schichten; 1. ist app für mobile Geräte 2. server (mit der Verbindung zwischen Datenbank und app), 3. ist die Datenbank.
Was sind die vor-und Nachteile dieser beiden Architektur?
Vielen Dank im Voraus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einzige Vorteil den mobile app kommuniziert direkt mit der Datenbank ist, dass es vielleicht schneller zu implementieren in der kurzen Ausführung.
In der etwas längeren Ausführung, drei Schichten sind eine viel bessere Wahl aus mehreren Gründen:
Flexibilität - die Mobil-app gegen eine service-Schicht (zum Beispiel, durch einige JSON-APIs), die abstracts der Datenbank-Interna. Dadurch wird es viel einfacher, änderungen an Ihrem schema, ersetzen Sie sogar die gesamte Daten-layer, ohne die mobilen clients. Dies ist entscheidend, wenn Sie eine neue Version veröffentlicht, die die Veränderungen sowohl Ihre mobile Anwendung und Ihre Daten-layer, und habe einige apps, die in dem Gebiet, das nicht update noch. Eine service-Schicht wird Unterstützung für mehrere Versionen überschaubar. Sie arbeiten direkt mit der Datenbank wäre es sehr fast unmöglich.
Sicherheit - verwalten von Benutzer-logins, Berechtigungen etc. ist in der Regel nicht so gut unterstützt wird in der DB, wie es in einer service-Schicht.
Skalierbarkeit - sollte Ihre app erfolgreich zu sein und Sie müssen zum Maßstab der server-Seite, ein service-layer würde sich stark erhöhen Ihre Optionen (gehen Sie zurück zu Nr. 1 - Flexibilität).
Diese sollten ausreichen, um Sie davon überzeugt, aber ich bin sicher, dass andere Antworten kommen mit mehr 🙂
Bezüglich deiner anderen Fragen - zu empfehlen, ein Technologie - /Architektur für den server, es gibt viele gangbare Optionen - Ruby, Python, PHP, Node. Die "beste" hängt davon ab, was Sie bereits vertraut sind.
Im ersten Fall beschrieben, Sie reden über eine lokale Datenbank für ein mobiles Gerät. Je nach Anforderungen für Ihre mobile app-das könnte ausreichend sein. Ein einfacher Fall: ein mobile-only "TODO" - Anwendung. Alle Einträge eingegeben, die in eine solche app kann nur gelesen werden, innerhalb der gleichen app-und Sie bekommen nicht synchronisiert sind, an einen zentralen server (cloud).
Sagen wir mal "TODO" wurde über Nacht Erfolg und den Sie freigeben möchten, "TODO 2.0" die Möglichkeit, die sync 'todo' - Listen zwischen verschiedenen Medien: eine Website, eine desktop-app und einem mobilen Gerät. Sie haben, um einzuführen, ein server in diesem Bild, die würde speichern "TODO" - Datenbank und erleichtern einen Zugang dazu. Ihre mobile app erstellen können, die in-memory-Liste der "todo' Elemente, wie es Sie liest, bilden die server, ODER es könnte immer noch die lokale Datenbank als ein einfacher cache.