Performance-Modellgenerierung Für Java- Enterprise-Edition . - Fortiss

Transcription

FAKULTÄT FÜR INFORMATIKDER TECHNISCHEN UNIVERSITÄT MÜNCHENMaster’s Thesis in InformatikPerformance-Modellgenerierung für JavaEnterprise-Edition-Anwendungen auf Basis vonMessdaten einer Application-PerformanceManagement-LösungBernhard Alexander Koch-Kemper

FAKULTÄT FÜR INFORMATIKDER TECHNISCHEN UNIVERSITÄT MÜNCHENMaster’s Thesis in InformatikPerformance-Modellgenerierung für JavaEnterprise-Edition-Anwendungen auf Basis vonMessdaten einer ce Model Generation for JavaEnterprise Edition Applications usingMeasurement Data of an Application PerformanceManagement datum:Bernhard Alexander Koch-KemperProf. Dr. Helmut KrcmarFelix Willnecker12. Mai 2015

ErklärungIch versichere, dass ich diese Master’s Thesis selbständig verfasst und nur dieangegebenen Quellen und Hilfsmittel verwendet habe.Garching b. München, den 12. Mai 2015Ort, DatumBernhard Koch-Kemper

ZusammenfassungDie Performance von Anwendungssystemen (ausgedrückt durch Metriken wie der Antwortzeit, dem Durchsatz oder dem Ressourcen-Verbrauch) ist ein entscheidendes Qualitätsmerkmal und beeinflusst sowohl die Akzeptanz der Endanwender als auch die für den Betrieb desSystems nötigen Hardware-, Software- oder Energiekosten. Die Durchführung und Koordination aller Aktivitäten zur Sicherstellung der Performance von Anwendungssystemen bezeichnet man als Performance Management Work (PMW). Die Werkzeuge, die hierfür zurVerfügung stehen, unterteilen sich in zwei Klassen bezüglich der Lebenszyklusphasen desAnwendungssystems: Den Systementwicklungsprozess und den IT-Betrieb. Während im Systementwicklungsprozess insbesondere Performance-Modelle weit verbreitet sind, mit denendas Anwendungssystem abstrahiert modelliert wird, um Performance-Metriken vorherzusagen, werden im IT-Betrieb sogenannte Application-Performance-Management-Lösungen ofteingesetzt. Hiermit kann das laufende Anwendungssystem vermessen werden, um Erkenntnisse über Flaschenhälse, hohe Ressourcen-Auslastungen oder mögliche Verstöße gegen Service Level Agreements zu erhalten. Da viele Performance-Modellierungsansätze mitMessdaten des laufenden Anwendungssystems angereichert werden, stellt sich die Frage nacheiner Verknüpfung der beiden Werkzeugklassen. Bisherige Modellgenerierungsansätze basieren vor allem auf spezifischen Eigenentwicklungen mit denen die Daten erhoben werden.Dies hemmt die Durchführung von PMW in der Praxis, da man dort auf Standard-Lösungensetzt. Der in dieser Arbeit entwickelte Ansatz erzeugt automatisiert Performance-Modelle aufBasis von Messdaten einer rte: Performance-Modell, Performance-Messung, Application Performance Management, Kapazitätsplanung, Palladio Component Model, Software Performance Engineering.AbstractPerformance of enterprise applications (represented by metrics like response time, throughputor resource consumption) is an important quality criterion which influences both the acceptance by end users and the cost of the software, hardware and energy. The implementationof activities and coordination to ensure that performance criteria are met is called performancemanagement work (PMW). Tools for PMW are separated in two different classes which aredefined by the life-cycle phases of the enterprise application: system development and IT operation. While in system development abstract performance models of the system are used topredict performance metrics, application performance management solutions are in widespread use for IT operations. Running applications can thereby be monitored to detect bottlenecks, high resource consumption or service level agreement breaches. Because a lot ofperformance models generation approaches are using monitoring data to enrich the parameters, a closer integration of both tool classes is desirable. Current performance model generation approaches often use custom monitoring solutions which constrain the PMW activities inpractice as standard solutions are preferred there. This thesis develops an approach to automatically generate performance models by using monitoring data of an application performance management Solution.Keywords: Performance Model, Performance Measurement, Application Performance Management, Capacity Planning, Palladio Component Model, Software Performance Engineering.III

chnis . IVAbbildungsverzeichnis . VITabellenverzeichnis. VIIAbkürzungsverzeichnis . VIII12Einleitung . 11.1Motivation von Performance Management Work . 11.2Ziele der Arbeit. 21.3Forschungsfragen . 31.4Aufbau der Arbeit . 5Grundlagen . 72.1Allgemeine Begriffe und Definitionen . 72.1.12.1.22.2Performance-Modelle und Werkzeuge. 142.2.12.2.22.2.32.2.42.3Performance und Metriken . 9Die Java-EE-Spezifikation . 12Queueing Networks . 15Layered Queueing Networks . 16Queueing Petri Nets . 18Palladio Component Model . 19Application Performance Management und Werkzeuge . 232.3.12.3.2Dynatrace . 24Daten-Extraktion . 262.4Übersicht verwandter Ansätze: Erstellung von Performance-Modellen aufGrundlage von Messdaten . 272.4.12.4.22.4.32.4.42.4.52.4.63Integration von Dynatrace-Messdaten ins PMWT-Framework. 443.14Queuing Network Models . 28Layered Queueing Network Models . 29Queuing Petri Net Models . 31Palladio Component Model . 32Weitere verwandte Ansätze . 38Übersicht und Zusammenfassung der Ansätze . 41Erweiterung des bestehenden Datenmodells . 44Evaluation der Modellgenerierung . 494.1SPECjEnterprise2010-Benchmark . 51IV

4.1.14.2Testumgebung. 534.3Dynatrace-Overhead-Analyse . 544.3.14.3.24.4CPU-Overhead . 55Response-Time-Overhead . 56Vergleich mit den bestehenden Ergebnissen . 564.4.14.4.24.4.35Detailbetrachtung der Orders Domain . 52Konstante Anzahl an CPU-Kernen und Steigerung des Workloads . 59Erhöhung der CPU-Kerne und Steigerung des Workloads . 60Reduktion der CPU-Kerne und konstanter Workload. 62Zusammenfassung und Ausblick . 64Literaturverzeichnis . 65Anhang ADVD . 75V

AbbildungsverzeichnisAbbildung 1: Schema des PMWT-Frameworks mit Dynatrace-Schnittstelle . 4Abbildung 2: Typische Architektur eines betrieblichen Anwendungssystems . 7Abbildung 3: Service Time, Service Demand und Respone Time . 9Abbildung 4: Ressourcen-Profil . 11Abbildung 5: Java-EE-Architektur. 13Abbildung 6: Queueing Network Model . 16Abbildung 7: Layered Queuing Network Model . 17Abbildung 8: Queueing Petri Net Model . 18Abbildung 9: Palladio Component Model . 19Abbildung 10: PCM Respository Model und RDSEFF . 20Abbildung 11: PCM System Model . 21Abbildung 12: PCM Resource Environment Model . 21Abbildung 13: PCM Allocation Model . 22Abbildung 14: PCM Usage Model . 23Abbildung 15: Dynatrace PurePath . 25Abbildung 16: Klassendiagramm der bestehenden Softwarearchitektur . 45Abbildung 17: Neues auf Messdaten-Aggregation basierendes PMWT-Datenmodell . 48Abbildung 18: Klassendiagramm der neuen Softwarearchitektur . 49Abbildung 19: Architektur des SPECjEnterprise2010-Benchmarks . 51Abbildung 20: SPECjEnterprise2010 Orders Domain . 52Abbildung 21: Gemessene und simulierte Ergebnisse für Szenario 1 . 60Abbildung 22: Gemessene und simulierte Ergebnisse für Szenario 2 . 62Abbildung 23: Gemessene und simulierte Ergebnisse für Szenario 3 . 63VI

TabellenverzeichnisTabelle 1: Zeitgewinn durch parallelen Datenexport . 27Tabelle 2: Testumgebung der Evaluation. 54Tabelle 3: CPU-Overhead durch Instrumentierung auf dem SUT . 55Tabelle 4: Response-Time-Overhead durch Instrumentierung auf dem SUT. 56Tabelle 5: Abkürzungen der Evaluationsrepräsentation . 58Tabelle 6: Gemessene und simulierte Ergebnisse für Szenario 1 . 59Tabelle 7: Gemessene und simulierte Ergebnisse für Szenario 2 . 61Tabelle 8: Gemessene und simulierte Ergebnisse für Szenario 3 . 62VII

CSQLUMLVMXMLApplication Programming InterfaceApplication Performance ManagementAnwendungssystemComponent Based Modeling LanguageCentral Processing Unit, ProzessorComma Separated ValueEnterprise Java BeansGraphical User InterfaceHard Disk Drive, FestplatteHypertext Transfer ProtocolHypertext Transfer Protocol SecureInput/OutputJava Database ConnectivityJava Message ServiceJava Management ExtensionJava Persistence APIJavaServer FacesJavaServer PagesJava Virtual MachineLayered Queueing NetworksManaged BeansMemory, ArbeitsspeicherMillisekundeNetwork, NetzwerkPalladio Component ModelPerformance Management WorkPerformance Management Work ToolsPlain Old Java ObjectsQueueing NetworkQueueing Petri NetService Effect SpecificationResource Demanding Service Effect SpecificationRepresentational State TransferResponse TimeSekundeService Effect SpecificationService Level AgreementsSoftware Performance EngineeringStandard Performance Evaluation CorporationStructured Query LanguageUnified Modeling LanguageVirtuelle MaschineExtensible Markup LanguageVIII

1 EinleitungDieses Kapitel dient der Einführung der in dieser Masterarbeit behandelten Thematik undmotiviert diese. Es werden aus der Motivation Ziele formuliert (Abschnitt 1.2) und drei konkrete Forschungsfragen abgeleitet (Abschnitt 1.3). Der Aufbau der weiteren Kapitel und dieverwendete Methodik wird in Abschnitt 1.4 dargelegt.1.1 Motivation von Performance Management WorkBei der Planung und Entwicklung von Anwendungssystemen (AwS) spielt die Performanceeine entscheidende Rolle. Sie wird durch Metriken wie der Antwortzeit, dem Durchsatz oderdem Ressourcenverbrauch beschrieben (Becker et al. 2013). Bereits kleinere Verschlechterungen der Performance (beispielsweise wenn die Antwortzeit von Webseitenaufrufen größerwird) können signifikante betriebswirtschaftliche Auswirkungen nach sich ziehen und Umsatzeinbußen für Verkaufsplattformen bedeuten (Gomez 2015). Performance beeinflusst somit sowohl die Akzeptanz bei Endanwendern als auch die Hardware-, Software- und EnergieKosten des AwS.Die Koordination und Durchführung aller Aktivitäten, um die Performance von AwS zu gewährleisten, subsumiert man in der Literatur unter dem Begriff Performance ManagementWork (PMW) (Brunnert et al. 2014). Unterteilt werden kann hierbei in zwei Teilbereiche bezüglich der Lebenszyklusphasen eines AwS:-Das Software Performance Engineering (SPE) nach Smith/Williams (1997);Woodside/Franks/Petriu (2007) für den Systementwicklungsprozess und dasApplication Performance Management1 (APM) nach Menascé (2002) für den (laufenden) IT-Betrieb.Problematisch ist, dass die Systementwicklung und der IT-Betrieb teilweise gegensätzlicheZiele verfolgen.Aufgaben der Systementwicklung sind beispielsweise die Implementierung neuer Funktionalitäten, die Sicherstellung einer skalierbaren und robusten Software-Architektur sowie dieeffiziente Nutzung von Ressourcen (Vögele/Danciu/Kroß 2014).Der IT-Betrieb hingegen ist daran interessiert, den Zustand einer stabil laufenden Umgebungzu erhalten. Hierzu werden Hard- und Software-Änderungen (z.B. Updates) evaluiert, Störungen und Flaschenhälse des Systems analysiert und des Weiteren überwacht, dass möglichevertraglich festgehaltene Verstöße gegen Service Level Agreements (SLA) aufgespürt odervermieden werden (Vögele/Danciu/Kroß 2014).Obwohl also die Integration beider Aktivitäten sehr sinnvoll erscheint, da die Performanceeines Anwendungssystems ein maßgebliches Qualitätsmerkmal ist, werden die Vorgehens-1Der Buchstabe M in APM steht in der Praxis teilweise nur für Monitoring und wird vom Begriff Managementsubsumiert.1

und Arbeitsweisen oft nur separat betrachtet und nicht ganzheitlich integriert (Brunnert et al.2014). Als Folge gibt es sowohl für das SPE als auch für APM eigene Klassen an SoftwareWerkzeugen und Modellierungssprachen.Beispielhafte Werkzeuge des SPE bauen oft auf sogenannten Performance-Modelltypen auf.Das Palladio Component Model (PCM) (Becker/Koziolek/Reussner 2009), SPE ED(Smith/Williams 1997) oder das Queueing Petrinet Modeling Environment (QPME)(Kounev/Dutz 2009) sind Beispiele solcher Werkzeuge, die den Nutzer bei der Modellierungauf Basis eines Modelltypens unterstützen. Anhand verschiedener Eingabe-Parameter wie derSoftwarearchitektur, Hardwareinfrastruktur oder dem Nutzerverhalten können so Modellegeneriert werden, die mittels analytischer Lösung oder Simulation eine Vorhersage bezüglichder Performance-Metriken des AwS treffen können.Im Bereich APM existieren eine Reihe von (kommerziellen) Software-Werkzeugen (Gartner2013) wie zum Beispiel Dynatrace (Compuware 2015b), SteelCentral (Riverbed2015), AppDynamics (AppDynamics 2015), New Relic APM (New Relict 2015) oder das ausdem Universitätsumfeld stammende Kieker (van Hoorn/Waller/Hasselbring 2012c, 2012a).Die APM-Werkzeuge unterstützen den IT-Betrieb dadurch, dass mithilfe eines detailliertenAwS-Monitorings während des Zugriffs durch Endnutzer die Messdatengrundlage geschaffenwird, um das Wissen über das Auftreten und die Ursachen von Performance-Problemen imAwS zu gewinnen (Gartner 2013).Obwohl die Performance ein gemeinsames Ziel des SPE und APM ist, sind Werkzeuge fürintegrierte PMW-Aktivitäten derzeit selten und bieten ein Potenzial für zukünftige Entwicklungen (Brunnert et al. 2014). Ein Ansatz findet sich in Brunnert/Vögele/Krcmar (2013), welcher unter dem Namen Performance Management Work Tools (PMWT, fortiss (2015))weiterentwickelt wird. Eine Eigenentwicklung ermöglicht hierbei das Erheben von Messdateneiner laufenden Java-EE-Applikation. Auf Basis dieser Messdaten können dann automatisiertmit einem Generator PCM-Performance-Modell der Applikation generiert werden. Jedochsetzt die Datenerhebung nicht auf ein Standard-Werkzeug im Bereich APM auf. Aufgrundihrer Verbreitung, des besseren Supports und der umfangreicheren Testbasis wäre eine Messdaten-Erzeugung über APM-Werkzeuge aus Unternehmenssicht mit Vorteilen verbundengegenüber einer Eigenentwicklung.1.2 Ziele der ArbeitDas erste Ziel der Masterarbeit ist es, die aus dem ersten Kapitel motivierte Fragestellungnach einer Verknüpfung von APM- und SPE-Werkzeugen als aktuelle Forschungslücke wissenschaftlich darzulegen. Hierfür müssen die existierenden Ansätze in der Literatur für diePerformance-Modellgenerierung auf Basis von Messdaten evaluiert werden.Aktuelle Publikationen wie Brunnert et al. (2014) geben bereits Hinweise darauf, dass umfassende Modellgenerierungsansätze mit Messdaten aus Standardsoftware selten sind. Der bestehende Modellgenerator der PMWT soll deshalb um eine APM-Schnittstelle erweitert werden,um diese Lücke zu schließen. Hiermit sollen generierte Messdaten von APM-Werkzeugenverwendet werden können, um automatisiert PCM-Performance-Modelle zu erzeugen. Bei2

spielhaft für diverse APM-Lösungen soll diese Erweiterung des Modellgenerators für daskonkrete Werkzeug Dynatrace technisch umgesetzt und getestet werden.Als Folge müssen anschließend die Vor- und Nachteile der APM-Erweiterung des Modellgenerators analysiert werden. Hierbei wird ein generiertes Performance-Modell mit DynatraceMessdaten den bestehenden Ansätzen gegenüber gestellt, um zu entscheiden, aus welcherArchitektur sich ein Modell mit einer höheren Genauigkeit oder Funktionalität ergibt. Diessoll anhand einer exemplarischen Java-EE-Anwendung geschehen, wie sie im betrieblichenKontext oft zu finden sind.1.3 ForschungsfragenAus den Zielen ergeben sich drei Forschungsfragen:Forschungsfrage 1: Welche automatischen und auf Messdatenbasierende PerformanceModell-Generierungsansätze existieren in Literatur und Praxis?Das Ziel bei der Beantwortung dieser Forschungsfrage ist es, themenverwandte Literatur aufzuzeigen. Die eigene Erweiterung des Modellgenerators soll somit als Forschungslücke eingeordnet werden können. Zudem soll der Literaturüberblick zeigen, in welchen Bereichen undfür welche Technologien Messdatenbasierende Modell-Generierungsansätze existieren, umweitere Anwendungsmöglichkeiten aufzuzeigen.Existierende (Teil-)Ansätze, aufbauend zum Beispiel auf dem Kieker-Framework von vanHoorn/Waller/Hasselbring (2012c), sollen für eine Anforderungsanalyse der eigenen Modellgeneratorerweiterung evaluiert werden, um hohe Flexibilität und Anpassbarkeit der zu entwickelnden Schnittstellen zu gewährleisten. Dies soll insgesamt dazu dienen, die PMWTModellgeneration unabhängig von der Datenerhebungsmethode zu konstruieren.Automatisierte Ansätze wie der von Brunnert/Vögele/Krcmar (2013) sind besonders in derPraxis den manuellen Ansätzen vorzuziehen, da der Aufwand einer manuellen Modellierungoft einem späteren Nutzen übersteigt (Koziolek 2010). Zudem lassen sich automatisierte Ansätze einfacher vergleichen und auf andere AwS übertragen, da hierbei keine zusätzliche Benutzereingabe notwendig ist. Es entsteht somit weniger Spielraum bei der Auswertung vonPerformance-Ergebnissen.Insgesamt gilt es somit folglich bei der Literaturrecherche darum, auf Folgende Fragen Antworten zu finden:-Welche Messdaten wurden in welcher Granularität erhoben?Welche Monitoring-Lösung wurde benutzt und welche Schnittstelle dabei verwendet?Welches Performance-Metamodell wurde in welchem Umfang (möglich sind auchTeilmodelle) verwendet?Wie hoch ist der Grad der Automatisierung bei der Modellgenerierung?Wie leicht sich das existierende Vorgehen zur Modellgenerierung aus der Literatur auf andereAPM-Werkzeuge und Performance-Modelle übertragen lässt, sollte ebenfalls analysiert werden. Dies dient dazu, die Flexibilität der eigenen APM-Erweiterung einzuordnen.3

Forschungsfrage 2: Welche Anpassungen an das bestehende Performance-ModellGenerierungs-Framework (PMWT) sind notwendig, um Standard-APM-Werkzeuge als Messdatenquelle zu nutzen?Das Ziel dieser Forschungsfrage ist es herauszufinden, wie der bestehende Modellgeneratorbasierend auf der eigenen Erhebung von Messdaten angepasst werden muss, damit auchextrahierte Messdaten aus anderen APM-Werkzeugen für die Generierung von PerformanceModelle benutzt werden können. Hierfür muss die Konzeption und Implementierung umgesetzt werden. Abbildung 1 zeigt eine solche Erweiterung schematisch.Der Generator greift für die Modellgenerierung auf Daten zu, die mittels einer PersistenceService-Schnittstelle bereitgestellt werden. Während der erste Ansatz vonBrunnert/Vögele/Krcmar (2013) die Messdaten für diese Schnittstelle über CSV-Dateien1aggregiert und in einer Datenbank bereitstellt, existiert auch eine Alternative, die Messdatenfür die Modellgenerierung direkt als MBeans überträgt (Brunnert/Neubig/Krcmar 2014;Oracle 2015c). Extrahierte Messdaten aus Dynatrace müssen also auf die Persistence-ServiceSchnittstelle transformiert werden. Die Orientierung an einem der vorhandenen Ansätze überCSV-Dateien oder MBeans muss bewertet werden.Da diese Arbeit - stellvertretend für allgemeine APM-Standardlösungen - eine Messdatenerhebung mit Dynatrace implementiert, müssen die von Dynatrace bereitgestellten Möglichkeiten einer Daten-Extraktion analysiert werden. Die von Dynatrace zur Verfügung stehendenSchnittstellen wie REST Interfaces (Fielding 2000; Compuware 2015j) müssen verglichenAbbildung 1: Schema des PMWT-Frameworks mit Dynatrace-SchnittstelleQuelle: Willnecker et al. (2015)1Comma-separated values4

werden, um an den PMWT-Modellgenerator anknüpfen zu können.Forschungsfrage 3: Welche Unterschiede in Genauigkeit und Funktionalität ergeben sichdurch den Einsatz einer Standard-APM-Lösung gegenüber selbstentwickelten Werkzeugen zurMessdatenerhebung?Die bestehende Ansätze aus Brunnert/Vögele/Krcmar (2013) mit der eigenen Methode für dieMessdatenerhebung generieren bereits Performance-Modelle mit einem Fehler von nur 1-20%in der Antwortzeit und weniger als 10% in der CPU-Auslastung bei Nutzung einer exemplarischen Java-EE-Applikation.Das Ziel dieser Forschungsfrage ist die Beantwortung, wie exakt die Performance-Modellemithilfe der Messdaten eines Standard-APM-Werkzeugs werden. Zum einen handelt es sichhierbei in der Regel um lizenzpflichtige Industrie-Lösungen, was technisch auf sehrausgereifte Produkte deuten könnte, die einen Zugewinn in der Genauigkeit der PerformanceModelle bringen könnten. Zum anderen muss jedoch auch bedacht werden, dass es sich imVergleich zu der PMWT-Messdatenerhebungsmethode um sehr viel umfangreichereWerkzeuge und keine Speziallösung zur Modellgenerierung handelt, was zu schlechtenPerformance-Vorhersagen führen könnte.1.4 Aufbau der ArbeitDie Masterarbeit ist in mehrere Kapitel eingeteilt. Eine Struktur basierend auf den definiertenForschungsfragen wird im Folgenden gegeben:Zu Beginn der Arbeit müssen alle relevanten Fachbegriffe definiert und erläutert werden.Hierzu gehören Definitionen bezüglich der zu untersuchenden Anwendungssysteme, derPerformance-Modellierung und Metriken sowie der in dieser Arbeit verwendetenTechnologien. Diese Grundlagen werden in Kapitel 2 beschrieben.Um die erste Forschungsfrage bezüglich der wissenschaftlichen Einordnung dieser Arbeitbeantworten zu können, bietet sich eine Literaturrecherche angelehnt nach Webster/Watson(2002) an. Dieser Literaturüberblick der vorhandenen Ansätze ist in Abschnitt 2.4 zu finden.Hauptbestandteile einer Klassifizierung bezüglich Messdaten-basierter PerformanceModellgenerierung leiten sich direkt aus der Forschungsfrage ab (vgl. Abschnitt 1.3).Für die Beantwortung der zweiten Forschungsfrage, bei der es um die Integration der Dynatrace-Messdaten in das PMWT-Modellgenerierungsframework geht, wird zuerst geprüft, welche für die Performance-Modellierung-relevanten Daten man wie mit Dynatrace (alsFallbeispiel für APM-Werkzeuge) extrahieren kann (Abschnitt 2.3). Danach sollten die vorhandenen Schnittstellen oder Datenstrukturen im PMWT-Framework ausgewählt bzw. adaptiert werden, damit die extrahierten Messdaten aus Dynatrace verwendet werden können(Kapitel 3).Um die dritte Frage zu beantworten und die Unterschiede in Genauigkeit und Funktionalitätzu vergleichen, sollte ein an Hevner et al. (2004) angelehntes „Controlled Experiment“durchgeführt werden. Der Test sollte zudem ein typisches betriebliches Anwendungssystemsimulieren, da APM-Werkzeuge dort primär eingesetzt werden. Als Ausgangspunkt zum5

Plausibilisieren der Ergebnisse mit vorhandenen Messungen wird die für die Eigenentwicklung von Brunnert/Vögele/Krcmar (2013) bereits verwendete Java-EE-ApplikationSPECjEnterprise2010 verwendet. Die Evaluation der Ergebnisse findet in Kapitel 3.3 statt.Ferner wird die Arbeit in Abschnitt 5 zusammengefasst und ein Ausblick gegeben, an waszukünftig weitergeforscht werden kann.6

2 Grundlagen2.1 Allgemeine Begriffe und DefinitionenAnwendungssystem und AnwendungssoftwareDer Begriff Anwendungssystem (oder Informationssystem) bezeichnet ein System, welchesfür bestimmte Anwendungsgebiete erstellt wurde und umfasst die hierfür nötige Gesamtheitan Hard- und Software. Schwarzer/Krcmar (2010) trennen hiervon den Begriff der Anwendungssoftware, welche das eigentliche Programm beschreibt und auf der Hardware eingesetztwird, die dem Anwendungssystem zur Verfügung steht. Anwendungssoftware wird oft auchals Anwendung, Applikation oder kurz als App bezeichnet.Eine Anwendungssoftware besteht ferner wiederum aus vielen einzelnen Operationen (in derSystementwicklung oft „Methode“ genannt), die kleine Funktionalitäten implementieren undsich gegenseitig (verschachtelt) aufrufen können. Logisch oder programmatisch zusammenhängende Operationen können zu einer sogenannten (Geschäfts-) Transaktion zusammengefasst werden, welche die gesamte Abfolge an Operationsaufrufen (den Kontrollfluss) voneiner Anfrage bis zur Antwort beschreibt. Eine oder auch mehrere Transaktionen sind hierbeiimmer für die Ausführung der von der Anwendungssoftware bereitgestellten Funktionalitätnötig (Smith 2007b, S. 294).Anwendungssysteme im betrieblichen Kontext sind heutzutage oft verteilte webbasierte Anwendungen, die parallel von Endnutzer genutzt werden können und mittels Netzwerkverbindungen untereinander kommunizieren bzw. Daten austauschen können. Unterteilt werdenhierbei in der Regel drei Schichten (Leff/Rayfield 2001): Die Präsentations-, die Geschäftslogik/Business- und die Datenhaltungsschicht (vgl. Abbildung 2).Abbildung 2: Typische Architektur eines betrieblichen AnwendungssystemsQuelle: Wischer (2014)7

Das Ziel der Datenhaltungsschicht ist die (langfristige) Speicherung von Daten (Persistierung). Hierfür werden in der Praxis oft Datenbanksysteme eingesetzt. Aufbauend auf der Datenhaltungsschicht arbeitet die Businessschicht, welche sich um die Anwendungslogik unddie Prozessierung von Informationen kümmert. Die Präsentationsschicht hingegen beinhaltetkeine Geschäftslogik aber baut auf der Businessschicht auf. Die Schicht ist ausschließlich fürdie (grafische) Aufbereitung der prozessierten Daten zuständig. Sie die

FAKULTÄT FÜR INFORMATIK DER TECHNISCHEN UNIVERSITÄT MÜNCHEN Master's Thesis in Informatik Performance-Modellgenerierung für Java-Enterprise-Edition-Anwendungen auf Basis von