Suchen und Finden
Mehr zum Inhalt
Performancemanagement für serviceorientierte Java-Anwendungen - Werkzeug- und Methodenunterstützung im Spannungsfeld von Entwicklung und Betrieb
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
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.