1

Ich habe ein bisschen theoretische Frage.Unterschied zwischen Web-und Desktop-Anwendungen in Datenbankzugriff

Beim Erstellen von Webanwendungen gibt es einen Unterschied zu Desktopanwendungen mit funktionierender und aktiver Verbindung zur Datenbank. Also ich bin neugierig, wenn es eine Lösung gibt, die mehr Desktop-ähnlichen Zugriff auf die Datenbank bieten kann, z.B. Transaktionen bei asynchronen Anfragen vom Client (Webbrowser)?

edit: So habe ich herausgefunden, dass es einen Transaktionsprozess von asynchroner Anforderung sein kann, vom Client. Gibt es eine Lösung, die es in Web-Apps bereitstellen kann?

z. B. habe ich assynchronou AJAX-Aufruf, die aus mehreren Operationen bestehen, und ich Wana, sie als Transaktion zu verarbeiten. Wenn alles in Ordnung ist, wird alles erledigt. Aber wenn einer von ihnen scheitert, roll ihn einfach zurück. Wie in der DB. Ist es möglich?

edit2: vielleicht bin ich falsch und das Problem ist nicht über Ajax, sondern über ganze Web-Anwendungen, aber ich glaube nicht, es gibt einen Weg, wie man eine asynchrone Anfrage von Web-Client.

+0

Sie verhalten sich genau gleich. Ich meine genau. Völlig genau. Sogar mit dem asynchronen Zeug. Ihre Controller-Methoden können eine Aufgabe und asynchrone erwarten alles zurück. – Will

+0

@Will entschuldigen, aber ich bin nicht sicher damit. Wenn Sie eine Desktop-Anwendung erstellen, haben Sie eine sehr gute Wahrscheinlichkeit, dass die Verbindung zur Datenbank in Ordnung ist. Weniger Verzögerung, keine Probleme mit Internetfehlern wie in Webanwendungen. Und auch die Qualität der Datenbanken? Ich bin nicht sicher, ob ich mysql gegen z.B. mssql? In Zuverlässigkeit? oder so etwas, wenn Sie wissen, was ich denke –

+0

Dort. Ist. Kein Unterschied. – Will

Antwort

1

Transaktion muss kontinuierliche Verbindung zur Datenbank. Um mit der Web-Anwendung arbeiten zu können, benötigen Sie eine Plattform, die es ermöglicht, die Anwendung unabhängig von der Client-Anforderung kontinuierlich auszuführen. Java Servlet ist am besten geeignet, PHP ist ein No-No. Ich nehme an, Sie werden Java-Servlet verwenden.

Im Java-Servlet können Sie eine db-Transaktion erstellen, eine ID für sie erstellen und sie dann in einer statischen Variablen oder im bereitgestellten anwendungsweiten Objektkontext speichern. Geben Sie dann die ID an den Client zurück.

Wenn der Client eine weitere Anfrage senden möchte, senden Sie ihm die ID. Die Anwendung kann dann die Transaktionsvariable basierend auf der ID lokalisieren. Solange die Anwendung zwischen den beiden Anforderungen nicht neu gestartet wird, ist die Transaktion immer noch aktiv.

Da die Webanwendung nicht weiß, wann der Benutzer die Anwendung verlässt, müssen Sie einen Mechanismus erstellen, um die Transaktionen in regelmäßigen Abständen zu überprüfen und einen Rollback auszuführen, wenn der Benutzer sie für einen bestimmten Zeitraum verlässt.

1

Die Datenbank weiß nicht, wer außerhalb der Authentifizierung verbunden ist.