Vorwort | 7 |
Die Struktur des Buches | 8 |
Danksagungen | 10 |
Inhaltsverzeichnis | 13 |
1 Einführung | 18 |
1.2 Ein Performancemeeting | 18 |
1.3 Das fachliche und technische Umfeld | 21 |
1.4 Performanceaspekte | 22 |
1.5 Neue Herausforderungen | 25 |
1.6 Performance als interdisziplinäre Herausforderung | 27 |
Literatur | 28 |
2 Performance und Entwicklungsprozess | 29 |
2.1 Motivation | 29 |
2.2 Rollen und Aufgaben | 30 |
2.2.1 Der Facharchitekt | 30 |
2.2.2 Der IT-Architekt | 31 |
2.2.3 Der Entwickler | 32 |
2.2.4 Der Systemadministrator | 33 |
2.3 Aufbau eines Performanceteams | 34 |
2.3.1 Organisationsstruktur des Performanceteams | 35 |
2.3.2 Kickoff-Workshop des Performanceteams | 38 |
2.4 Performance- und Lasttests | 48 |
2.4.1 Der Testplan | 49 |
2.4.2 Testvorbereitung | 51 |
2.4.3 Testdurchführung | 56 |
2.4.4 Analyse und Testberichte | 56 |
2.5 Zusammenfassung | 57 |
Literatur | 58 |
3 Quantitative Methoden | 59 |
3.1 Motivation | 59 |
3.2 Ressourcen und Warteschlangen | 61 |
3.2.1 Begriffsfestlegungen und Definitionen | 62 |
3.2.2 Auslastung und das Utilization Law | 63 |
3.2.3 Das Forced Flow Law | 65 |
3.2.4 Die Queueing-Formel von Little | 66 |
3.2.5 Response Time Law | 67 |
3.3 Mean Value Analysis | 69 |
3.3.1 Das Arrival-Theorem | 71 |
3.3.2 Implementierung des MVA-Algorithmus | 72 |
3.3.3 Anwendungsmöglichkeiten der Mean Value Analysis | 75 |
3.4 Zusammenfassung und Ausblick | 78 |
Literatur | 80 |
4 Simulationstechniken | 81 |
4.1 Motivation | 81 |
4.1.1 Kleine Ursache – große Wirkung | 82 |
4.2 Rechnergestützte Simulationsmodelle | 83 |
4.2.1 Simulation als Alternative zu Testverfahren | 84 |
4.2.2 Simulation als Alternative zu analytischen Verfahren | 84 |
4.3 Begriffsbildung und Definitionen | 85 |
4.3.1 Der Systembegriff | 86 |
4.3.2 Der Modellbegriff | 86 |
4.3.3 Datenstrukturen | 87 |
4.4 Diskrete Ereignissimulation | 88 |
4.4.1 Entitäten, Ressourcen und Attribute | 88 |
4.4.2 Ereignisse, Aktivitäten und Prozesse | 89 |
4.4.3 Algorithmische Grundprinzipien einer Simulation | 92 |
4.5 Zusammenfassung | 96 |
Literatur | 98 |
5 Dokumentation der Performanceanforderungen | 99 |
5.1 Motivation | 99 |
5.2 Nicht-funktionale Anforderungen | 101 |
5.2.1 Die Dualität von Anforderungen | 101 |
5.2.2 Die Bedeutung der nicht-funktionalen Anforderungen | 102 |
5.2.3 Anforderungsdokumentation als Balanceakt | 102 |
5.3 Die zentralen Performanceanforderungen | 103 |
5.3.1 Mengengerüste und Volumen | 103 |
5.3.2 Antwortzeiten aus Benutzersicht | 105 |
5.3.3 Durchsatz | 111 |
5.3.4 Verfügbarkeit | 111 |
5.3.5 Skalierbarkeit | 116 |
5.4 Service Level Agreements | 118 |
5.4.1 Performancekontrollen etablieren | 119 |
5.4.2 SLA und SOA | 120 |
Literatur | 122 |
6 Werkzeugunterstützte Kapazitätsplanung | 123 |
6.1 Zielsetzung und Motivation | 123 |
6.2 Die Notwendigkeit von Modellerweiterungen | 124 |
6.2.1 High Performance On Demand Solutions | 125 |
6.3 On Demand Performance Advisor | 125 |
6.3.1 What-If-Analysen und Anwendungsmodi | 127 |
6.3.2 Verfahrensweise | 127 |
6.3.3 MVA-Erweiterungen | 132 |
6.4 Kapazitätsplanung einer Versicherungsanwendung | 133 |
6.4.1 Antragserfassung und Vertragsverwaltung | 133 |
6.4.2 Anwendungsfälle und Lastszenarien | 134 |
6.4.3 Ressourcenbedarfsermittlung im Lasttest | 135 |
6.4.4 Performanceziele | 136 |
6.4.5 Auswertung des Modells | 138 |
6.5 Zusammenfassung und Ausblick | 141 |
6.5.1 Restriktionen | 141 |
6.5.2 Ergänzende und alternative Werkzeuge | 142 |
Literatur | 144 |
7 Simulation von Geschäftsprozessen | 145 |
7.1 Motivation | 145 |
7.1.1 Modelle als Orientierungsrahmen | 145 |
7.1.2 Analogien nutzen | 146 |
7.1.3 Performanceanforderungen identifizieren | 146 |
7.2 Prozessmanagement und Simulation | 146 |
7.2.1 Analyse und Modellbildung | 147 |
7.2.2 Entwicklung und Deployment | 148 |
7.2.3 Prozessmonitoring | 148 |
7.3 WebSphere Business Modeler | 148 |
7.3.1 Aktivitäten | 149 |
7.3.2 Business Items | 149 |
7.3.3 Ressourcen und Rollen | 150 |
7.4 Fallbeispiel Schadensmanagement | 150 |
7.4.1 Automatisierte Belegverarbeitung | 151 |
7.4.2 Der fachliche Hintergrund | 152 |
7.4.3 Die fachlichen Objekte | 153 |
7.4.4 Ressourcen und Rollen | 154 |
7.4.5 Aktivitäten, Services und Entscheidungspfade | 154 |
7.5 Ziele der Prozessanalyse | 157 |
7.6 Simulationsergebnisse | 159 |
7.6.1 Ein Arbeitstag in der Schadensabteilung | 160 |
7.6.2 What-If-Analysen | 163 |
7.7 Zusammenfassung und Ausblick | 167 |
7.7.1 Planung von Simulationsprojekten | 168 |
Literatur | 169 |
8 Java Monitoring und Profiling | 170 |
8.1 Zielsetzung und Motivation | 170 |
8.2 Die Qual der Wahl | 171 |
8.2.1 Projektübergreifendes Produktmanagement | 172 |
8.2.2 Performancetests durch Werkzeugevaluierung | 174 |
8.2.3 Anwendungsspezifische Messverfahren | 175 |
8.2.4 Einschränkungen und Nachteile | 176 |
8.3 Ein Java Monitor im Eigenbau | 178 |
8.3.1 Leistungsbeschreibung des Performancemonitors | 179 |
8.3.2 Profiling versus Monitoring | 181 |
8.3.3 Werkzeugportfolio | 183 |
8.3.4 Die Unterstützung durch Java | 183 |
8.4 Java Virtual Machine Profiler Interface | 187 |
8.4.1 Klassifikation der JVMPI-Ereignisse | 188 |
8.4.2 Ein erster prototypischer Versuch | 190 |
8.4.3 Byte-Code-Instrumentierung | 194 |
8.4.4 Byte Code Engineering Library | 197 |
8.4.5 Der Monitor im ersten Einsatz | 207 |
8.5 Neuerungen in Java 5 | 210 |
8.6 Bewertungskriterien für kommerzielle Werkzeuge | 214 |
8.6.1 Schlechte Antwortzeiten bei geringer Systemlast | 215 |
8.6.2 Ressourcenbedarf der Werkzeuge | 216 |
8.6.3 Ressourcenermittlung und Auslastungsprofile | 217 |
8.6.4 End-To-End Monitoring und Transaktionstracking | 219 |
8.6.5 Weitere Anforderungen | 221 |
8.7 Zusammenfassung | 222 |
Literatur | 223 |
9 Visualisierungstechniken | 224 |
9.1 Motivation | 224 |
9.2 Grundlegende Aspekte der Visualisierung | 226 |
9.3 Streudiagramme | 226 |
9.3.1 Einsatz von Mobilfunktechnologien | 227 |
9.3.2 Laufzeiten eines Servlets | 229 |
9.3.3 Speicherverhalten einer J2EE-Applikation | 230 |
9.4 Balkendiagramme und Histogramme | 232 |
9.4.1 GPRS-Benchmarkdaten im Histogramm | 232 |
9.4.2 Klasseneinteilung über Anwendungsfälle | 234 |
9.5 Interaktive Visualisierungstechniken | 234 |
9.5.1 Eine Versicherungsanwendung im Internet | 235 |
9.5.2 Ergebnisse des Tests | 237 |
9.5.3 Die Analyse mit Treemaps | 238 |
9.5.4 Detailanalyse und Problemlösung | 241 |
9.6 Ein Chartgenerator in Perl | 242 |
9.6.1 Die Struktur der Rohdaten | 243 |
9.7 Zusammenfassung | 248 |
Literatur | 249 |
10 Beispielszenario Webservice | 250 |
10.1 Motivation | 250 |
10.2 Rahmenbedingungen und Gestaltungsmöglichkeiten | 251 |
10.3 Das Beispielszenario | 252 |
10.4 Aufbau der Testumgebung | 253 |
10.4.1 Der Webservice | 253 |
10.4.2 Applikationsserver und Lasttreiber | 255 |
10.5 Der Single-User-Test | 257 |
10.6 Der Webservice als Warteschlangenmodell | 258 |
10.6.1 Modellierung von Mehrfachressourcen | 259 |
10.6.2 Analytische Performanceprognose und Validierung | 260 |
10.7 Die Simulation eines Webservice | 262 |
10.7.1 Die Komponenten des Modells | 262 |
10.8 Das Webservice-Modell in Desmo-J | 265 |
10.8.1 Die Modellklasse | 265 |
10.8.2 Das Ereignis RequesterRequestServiceEvent | 268 |
10.8.3 Das Ereignis WorkerThreadLookUpEvent | 269 |
10.8.4 Das Ereignis WorkerThreadFinishService | 270 |
10.8.5 Ergänzende Elemente der Simulation | 271 |
10.9 Simulationsergebnisse | 273 |
10.9.1 Häufigkeitsverteilung der Antwortzeiten | 274 |
10.10 Limitierte Warteschlangen | 277 |
10.11 Zusammenfassung | 278 |
Literatur | 279 |
Sachverzeichnis | 280 |