|
|
Client-Server aus Sicht der PerformanceDas Ziel einer guten Client-Server-Architektur besteht darin, die Leistung, die im lokalen Rechner ansonsten brachläge, für Dinge zu nutzen, die nicht zentral ablaufen müssen und damit den zentralen Rechner zu entlasten. Betrachtet man eine Software, die von mehreren Anwendern gleichzeitig benutzt werden soll, ergeben sich drei Architekturmodelle. Die klassische Variante stellt jedem Teilnehmer ein Terminal zur Verfügung und der Zentralrechner führt alle Anforderungen auf seinem zentralen Prozessor und seiner Platte aus. Dazu gehört auch die Benutzerführung, beispielsweise das Aufbauen der Masken. Damit belastet auch das Navigieren im Programm auf der Suche nach der richtigen Maske die Allgemeinheit. Bei der Lösung mit einem Plattenserver wird die Prozessorlast auf die Arbeitsplätze verteilt. Da der Server keine Eigenintelligenz mitbringen muss, reicht normalerweise ein handelsüblicher PC. Man übersieht allerdings leicht, dass alle Plattenzugriffe auch das Netz belasten, das typischerweise langsamer als der Plattenzugriff ist. Soll beispielsweise nach einem bestimmten Kunden gesucht werden, erfolgt bei einem Sortierten oder indizierten Datenbestand eine binäre Suche. Das bedeutet, der erste Zugriff erfolgt auf den mittleren Datensatz. Ist der gefundene Name im Alphabet höher, so wird die untere Hälfte halbiert, ansonsten die obere Hälfte. Auf diese Weise findet man mit 10 Zugriffen den richtigen Satz in 1024 Sätzen. Für 2048 Sätze braucht man 11 Zugriffe, für 4096 12 und so weiter. Diese Zugriffe laufen aber alle über das Netz und bei einer hohen Netzbelastung wird das Gesamtverhalten in erhebliche Mitleidenschaft gezogen. Eine Client-Server Lösung kann an einer beliebigen Stelle geteilt werden. Man wird den Teilungspunkt oberhalb der binären Suche ansetzen, so dass die Plattenzugriffe lokal auf dem Server stattfinden und so das Netz nicht belasten. Auf der anderen Seite wird man die Benutzersteuerung auf dem lokalen Arbeitsplatz belassen, so dass nur schlanke Pakete mit Anfragen an den Server gerichtet werden.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|