Ich entwickle eine webbasierte Anwendung, deren Hauptziel darin besteht, Daten aus der Datenbank abzurufen, auf der Benutzeroberfläche anzuzeigen, Benutzereingaben aufzunehmen und sie in die Datenbank zurückzuschreiben. Die Anwendung wird keinen Crunching-Algorithmus für die industrielle Stärke ausführen, sondern zu Spitzenzeiten (siehe unten), die sich im Laufe des Tages ändern werden, eine sehr hohe Anzahl von Treffern erhalten.
Die Ebenen sind Ihre typischen Präsentations-, Geschäfts- und Datenebenen. Die Datenschicht wird vom Datenbankserver übernommen. Die Business-Schicht enthält die DAL-Komponente für den Zugriff auf den Datenbankserver über TCP. Die Auswahlmöglichkeiten, um diese Ebenen in Ebenen zu unterteilen, sind:
- Die Präsentations- und Business-Ebene können entweder auf derselben Ebene gehalten werden.
- Die Präsentationsebene auf einer separaten Ebene für sich und die Business-Ebene auf einer separaten Ebene für sich.
Im Fall von Auswahl 2 wird die Präsentationsschicht von der Präsentationsschicht über einen WCF-Dienst entweder über http oder tcp aufgerufen.
Ich sehe keine schwere Verarbeitung auf der Business-Ebene, daher neige ich zu Option 1 oben. Aus dem gleichen Grund habe ich auch das Gefühl, dass das Hinzufügen einer neuen Schicht nur die Netzwerklatenz einführt. Was ist jedoch in Bezug auf die Skalierbarkeit für den Fall, dass ich skalieren oder verkleinern muss, ein besserer Weg? Diese Anwendung muss in der Lage sein, bis zu 6 Millionen Benutzer pro Stunde zu unterstützen. In jeder Benutzersitzung wird eine angemessene Datenmenge vorhanden sein, in der die Benutzereinstellungen und andere Details gespeichert werden. Ich werde auch Caching auf Seitenebene verwenden.