Home       Servicebereich  Projekte  Kontakt  

Performante Architektur

Bei Entwicklung der Systemarchitektur sollte eine Abwägung zwischen einem hoch performanten System und einer vielschichtigen Architektur getroffen werden. Verallgemeinert läßt sich sagen, daß ein modulares System mit vielen Abstraktionsebenen flexibler geändert und besser gewartet werden kann. Es wird aufgrund der großen Mengen an Code, die durchlaufen werden in der Regel eher weniger performant als ein monolithisches System werden.

Aufwendige Operationen wie das Parsen von XML-Files sind zu meiden, bzw. nur einmalig durchzuführen. Das Ergebnis der Operation kann dann für weitere Aufrufe gecached werden.

Rekursionen sollten nicht eingesetzt werden, wenn sich die Anzahl der Rekursionsschritte sich proportional zu äußeren, stetig wachsenden Parameter verhält.

Cachefreundliche Implementierung

Wenn erwartet werden kann, daß das System womöglich mit sehr hohen Zugriffszahlen zurechkommen muß, ist beim Entwurf ein Cache-Freundlicher Aufbau vorzusehen.

Übliche Caching-Proxy-Server wie z.B. Squid können so konfiguriert werden, daß sie als Accelerator vor einen Webserver geschaltet werden. Sie können so konfiguriert werden, daß sie reine GET Requests die keine weiteren Headerinformationen wie Cookies übermittel einschließlich der übergebenen Parameter cachen. Idealerweise sollte die Applikation für alle ausgelieferten Seiten die entsprechenden Header setzen, so daß ein Cache problemlos vorgeschaltet werden kann.

Gerade wenn eine Site viele zwar dynamisch aus einer Datenbank erzeugte, aber quasi-statische Seiten ausliefert kann die oben beschriebene Möglichkeit ein gangbarer Weg sein. Die entsprechenden Seiten können beispielsweise den gleichen Expires: Header zurückliefern. So verfallen alle Seiten zu einem bestimmten Zeitpunkt, z.B. zu jeder vollen Stunde.

Squid implementiert spezielle HTTP Methoden um im Cache gespeicherte Seiten zu verwerfen. Die Applikation kann so implementiert werden, daß eine Änderung die entsprechenden Methoden aufruft. Diese Möglichkeiten ermöglichen eine genaue Steuerung der gespeicherten Seiten, verkomplizierten die Applikation jedoch teilweise erheblich. Daher ist hier auf jeden Fall das Kosten-Nutzen Verhältnis im Auge zu behalten.


< zurück  | weiter >