Sep 19
Bewährte Vorgensweise für die Optimierung der Performance bei Webservices:
- Gestallten Sie ihr Webservice Interface mit dem Ziel die Anzahl der Client-Requests zu reduzieren und den Netzwerkverkehr zu minimieren.
- Das Parsen von XML-Nachrichten auf Gateways, Proxies usw. sollten soweit wie möglich reduziert werden.
- Versuchen die Komplexität der XML Nachrichten so einfach wie möglich zu halten.
- Unabhängig von der Verarbeitung muss jede XML Nachricht erst geparst werden. Versuchen Sie daher die Größe der Nachrichten so klein wie möglich zu halten.
- Die Wiederverwendung von bestehenden Verbindungen wirkt sich insbesondere bei vielen kleinen Nachrichten außerordentlich positiv auf die Performance aus. Verwenden Sie daher „keep-alive“ bei HTTP Verbindungen und setzten Sie einen Connection Pool bei JMS- und Datenbank-Verbindungen ein.
- Die Komprimierung der Daten kann sich abhängig von der Nachrichtenart und –größe positiv aber auch negativ auf die Performance auswirken. Führen Sie entsprechende Tests durch und testen Sie verschiedene Komprimierungslevels.
- Setzen Sie moderne XML-Parser Technologien ein. StaX ist besser als SAX und SAX ist besser als DOM Parser.
- Verwenden Sie einen schnellen XML Parser. Eine schnelle Java Implementierung ist z.B. Woodstock.
- Nutzen Sie eine schnelle Databinding Implementierung. In der Regel liefern Frameworks, die optimierten Marshalling- und Unmarshaling-Code für Domain Klassen generieren, die beste Performance. Schnelle Implementierungen für Java Anwendungen sind JiBX, SXC und JAXB-RI.
- Das Einlesen von XML Nachrichten in Objekte ist sehr Ressourcen intensiv. Moderne Databinding Frameworks wie JiBX oder JAXB arbeiten mit XML-Streams. Falls möglich nutzen Sie diese Möglichkeit.
- Bei read-only Operationen bietet sich Caching als Performanceoptimierung an.
- Security kostet Performance. Setzten Sie nur die Security-Mechanismen ein, die von einem Service wirklich benötigt werden.
- End-to-End Security (wie z.B. WS-Security) hat in der Regel höhere Performancekosten als Transport-Schicht Security (wie z.B. SSL).
Haben Sie weitere Vorschläge für Performancetuning bei Webservices?
Ich freue mich auf Ihre Kommentare.



Letzte Kommentare