Das hängt von Ihren Anforderungen ab. Wenn Sie eine leistungsstarke Lösung mit geringer Latenz benötigen, die von vielen kleinen Aufgaben abhängt, verwenden Sie möglicherweise eine Struktur, die Ihrer Beschreibung ähnelt. Die gängigsten Lösungen in Java, PHP und C # verwenden dies jedoch nicht standardmäßig.
Die meisten Webanwendungen hängen sehr stark von Datenbanken ab - die meisten davon sind so stark, dass Seiten nicht ohne mindestens einen Aufruf gerendert werden können. Offensichtlich möchten Sie Ihre Datenbank aus mehreren Gründen nicht öffentlich zugänglich machen:
- Sicherheit (wie Oded erwähnt) - Sie möchten Ihr Netzwerk definitiv nicht öffentlich zugänglich machen! Idealerweise sollte die einzige Schnittstelle zu Ihren Systemen von außen https zu Ihrem Server sein.
- Einfache Entwicklung - Sie wirklich, möchten SQL wirklich , wirklich nicht in Javascript schreiben, und die für die Webpräsentation entwickelten Sprachen funktionieren nicht gut mit RDBs. Sie haben zum Beispiel keinen Staatsbegriff.
Wenn Sie also eine Datenbank benötigen, verwenden Sie Sprachen wie Java, C #, PHP usw., die sich gut damit spielen lassen. Der einfachste Weg, eine Seite zu generieren, stellt sich wie folgt heraus: JSP und ASP sind jedoch zwei weitere sehr gebräuchliche Sprachen, um die Seite zu erstellen. Die Sprache bietet Konstrukte, die andere Module ansprechen. In PHP befindet sich dies normalerweise auf der Seite oder in einer anderen PHP-Datei, wobei das MVC-Muster verwendet wird. In JSP verwenden Sie Scriptlets oder die JSP-Ausdruckssprache. Mit diesen anderen Modulen können Sie eine Verbindung zur Datenbank herstellen, Logik ausführen und Werte an die Ansichtsebene zurückgeben. Das Endergebnis ist eine generierte HTML-Seite, die auf dem Server gerendert und an den Client gesendet wird.
Befindet sich Ihre Datenbank im selben Netzwerk wie Ihr Seitenrenderer, erhalten Sie auch eine bessere Leistung. Der Client muss nur eine Anforderung ausführen und erhält eine Seite. Möglicherweise müssen Sie 10 bis 15 DB-Anforderungen ausführen, bevor Sie alle Informationen haben, die der Benutzer benötigt. Eine Latenz von Millisekunden in Ihrem Netzwerk würde Sekunden bis Minuten betragen, wenn der Client sie alle ausführen müsste.
Wenn Systeme größer werden, wird die Trennung von Anliegen und Kernkompetenzen entscheidend. HTML ist gut für die Anzeige. Javascript ist gut für dynamische Inhalte. SQL eignet sich hervorragend zum Abfragen einer Datenbank, und andere Sprachen beherrschen die Geschäftslogik. Unsere Aufgabe als Entwickler ist es, alle uns zur Verfügung stehenden Tools zu nutzen, um ein wartbares System aufzubauen. Einfache Entwicklung ist ein großer Teil eines guten Systems. In meinen Augen ist es fast so wichtig wie Leistung und Benutzerfreundlichkeit. Große Systeme entwickeln sich im Laufe der Zeit. Schlechte Systeme wurden von Anfang an schlecht geschrieben und nie verbessert.