Einzelnen Beitrag anzeigen

MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
472 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: "Single-User" -> "Multi-User" + SQLite

  Alt 22. Feb 2019, 13:38
Es hat keinen Sinn DMBS Funktionalität in einer Anwendung nachzubauen und schon gar nicht in einer Enduser Anwendung. Selbst die SAP ist froh, dass sie diese Hintegrundverbuchungsprozesse los ist und selbst die laufen in einer isolierten Serverapplikation. Viel mehr User als an deiner Anwendung angemeldet waren auf einem Host auch nicht gleichzeitig aktiv.

Solche Aufgaben erledigt an sich eine Middleware oder du baust die Fähigkeiten der DBMS auf der Business Ebene nach. Darunter leiden alle auf Nachrichten basierten Architekturen.

Was eine DB langsam macht ist der Overhead der Transaktionen und damit verbunden die Aufrechterhaltung der Konsistenz bspw... ACID.

Mal von den bereits genannten Vorschlägen abgesehen.

Du kannst einen Verbuchungsprozess machen der übermittelte Dateien einbucht. Das käme einer Nachricht nahe. Zum Zwecke der Verarbeitung kannst du einen Webserver hernehmen. Der Request an einen Webserver wird vor seiner Bearbeitung genauso in eine File geschrieben.

Mehr als eine Fire und Forget Nachricht die eine nice to have Information beinhaltet würde ich nicht direkt an solch eine Anwendung schicken.

---

SQLite ist ganz gut, wenn man Daten repliziert und viel liest oder lokal hält.

Hallo!

Ich habe ein Programm das bis dato im "Single-User" Modus läuft.
Nun soll das Programm auf Multi-User laufen - was bei mir folgendes heisst:
A) Im Hauptprogramm "X" arbeitet ein Benutzer (Windows, Android, iOS)
B) Die Companion-App "Y" läuft auf mehreren mobilen Gräten (Android, iOS, Windows)
C) Die mobilen Apps "Y" schicken Daten an das Hauptprogramm "X"
D) Alle Programme kommunizieren im lokalen Netzwerk (kein Internet oder Cloud)

Nun möchte ich nicht das Hauptprogramm "zu viel" durch die mobilen Apps blockieren und umgekehrt -> Threads.
Problem ist das ich als Datenbank SQLite einsetze (da es auf jeder Platform verfügbar).
Die Datenbankoperationen hab ich schon gekappselt.
Es gibt einige Techniken das umzusetzen, jedoch welche passt bei dem Fall am Besten? TWorker, Critical Sections, ...
Die Datenpakete, die ich von den mobilen Apps bekomme, sind nicht groß - im Prinzip einzelne Datensätze bis zu 50 an der Zahl.

Vielleicht hat ja jemand eine Idee oder ein ähnliches Projekt umgesetzt.
  Mit Zitat antworten Zitat