Throughput Improvements for BPEL Engines: Implementation Techniques and Measurements Applied to Swom
Total Page:16
File Type:pdf, Size:1020Kb
Throughput Improvements for BPEL Engines: Implementation Techniques and Measurements Applied to SWoM Von der Fakultät für Informatik, Elektrotechnik und Informationstechnik der Universität Stuttgart zur Erlangung der Würde eines Doktors der Naturwissenschaften (Dr. rer. nat.) genehmigte Abhandlung Vorgelegt von Dieter Roller aus Maichingen Hauptberichter: Prof. Dr. Frank Leymann Mitberichter: Prof. Dr. Bernhard Mitschang Prof. Dr. Cesare Pautasso Tag der mündlichen Prüfung: 26. Juli 2013 Institut für Architektur von Anwendungssystemen 2013 [1] op ti mi za tion: an act, process, or methodology of making something (as· · a design,· · system, or decision) as fully perfect, functional, or effective as possible; specifically : the mathematical procedures (as finding the maximum of a function) involved in this. Merriam-Webster Online Collegiate Dictionary [2] The three most important items in database research are: performance, performance, performance Prof. Dr. Andreas Reuter ZUSAMMENFASSUNG In den vergangenen zwei Jahrzehnten hat sich die Workflow-Technologie zu einem wesentlichen Bestandteil moderner Anwendungssysteme entwickelt, insbesondere für solche Systeme, die auf der service-orientierten Architektur (SOA) beruhen. Mit Hilfe der Workflow-Technologie können Geschäftsprozesse erstellt werden, die schnell an geänderte Umgebungen angepasst werden können. Sie bildet zudem die Basis des zweistufigen Programmierparadigmas. Workflow Management Systeme, die die Workflow-Technologie implemen- tieren, sind eine Kernkomponente der Middleware, deren Performance wesent- lich die Ausführungsgeschwindigkeit der Anwendungen bestimmt, die mit ihnen gebaut werden. Die vorgestelllte Dissertation entwickelt einen Satz von Optimierungstech- niken für ein modernes Workflow Management System, das Robustheit mit Per- formance kombiniert. Dieses Workflow Management System wird Stuttgarter Workflow Maschine (SWoM) genannt, nach dem Ort der Entwicklung. Folgende neuartige Ansätze wurden entwickelt, um das Ziel zu erreichen. Erstens, die Entwicklung des Konzeptes von Transaktionsflüssen. Transakt- ionsflüsse bestimmen die Menge der Transaktionen, die die Workflow-Engine bei der Ausführung eines Geschäftsprozesses durchführt. Ein Flussoptimierer erstellt optimierte Transaktionsflüsse, die es der Workflow-Engine ermöglichen, Geschäftsprozesse erheblich effizienter abzuarbeiten. v Zweitens wurde Cachingfunktionalität in allen Komponenten der SWoM, soweit wie möglich, implementiert. So werden alle Prozessmodelle und Prozessinstancen während der Ausführung einer Transaktion im Speicher der Workflow-Engine gehalten. Bei schnelllaufenden Geschäftsprozessen werden die Prozessdaten zwischen zwei aufeinanderfolgenden Navigationsschritten im Speicher der Workflow-Engine gehalten werden. Drittens benützt die SWoM, um die notwendige Robustheit zur erzielen, IBM WebSphere als Laufzeitumgebung und IBM DB2 zur Speicherung der Daten. Mehrere Techniken wurden entwickelt, um die Infrastruktur zur Laufzeit optimal auf die Arbeitsweise der SWoM abzustimmen. Viertens: Konfigurationsoptionen erlauben es dem Prozessmodellierer, vor- definierte Optimierungstechniken, wie Optimierung des Datenbankzugriffes oder Verbesserung von Aufrufen von Web Servicen, zu nutzen. Fünftens: Ein Flussoptimierer optimiert die Ausführung der Transaktions- flüsse bezüglich Cache-, Datenbank- und CPU-Nutzung durch den Einsatz von Datenfluss- und Transaktionsanalysetechniken. Die Optimierung basiert auf Eingaben des Prozessmodellierers sowie Statistiken, die die SWoM während der Ausführung der Geschäftsprozesse sammelt. Sechstens: Die aufgeführten Optimierungstechniken, die die erforderliche Robustheit gewährleisten, werden durch einen Satz von Optimierungstech- niken ergänzt, die Robustheitsanforderungen mit dem Ziel der Performance- Verbesserungen reduzieren. Alle Techniken wurden auf Basis eines einfachen, jedoch sehr aussage- kräftigen Benchmarks validiert. Der Benchmark fokussiert sich auf schnelle, nachrichten-basierte Interaktionen mit Web Services, synchrone Aufrufe von Web Services, Nachrichtentransformationen sowie paralleler Ausführung von parallelen Pfaden eines Geschäftsprozesses. Die Resultate des Benchmarks zeigen, dass die SWoM fast linear bezüglich CPU-Last sowie der Anzahl der gleichzeitigen Anfragen skaliert. Die SWoM ist in der Lage auf einer Vierkern-CPU mit Windows (64bit) mehr als 100 Prozessinstanzen in der Sekunde abzuarbeiten. Dies übertrifft signifikant alle Workflow Management Systeme, für die entsprechende Performance-Daten vorliegen. vi Weitere Performance-Verbesserungen können durch den Einsatz von Cluster- Technologie erzielt werden. Die Architektur der SWoM erlaubt dies mit gering- fügigen Änderungen. vii ABSTRACT Workflow Technology has become over the last two decades the cornerstone of modern application systems, in particular those built upon Service Oriented Architecture (SOA). It helps implement business processes that can be easily adapted to the changing needs of a dynamic environment and provides the base for the two-level application development paradigm. Workflow management systems (WfMS) deliver the functions of workflow technology; they have become a critical middleware component whose perfor- mance characteristics are significantly impacting the overall performance of the applications that have been built. The purpose of this thesis is to develop a set of optimization techniques for a state-of-the-art WfMS that delivers the required robustness with the best achievable performance. This WfMS has been labeled Stuttgarter Workflow Maschine (SWoM) to emphasize its birth place. Several novel approaches have been developed to achieve the desired goal. First, the concept of transaction flows has been developed as the base for a flow optimizer that significantly improves the performance of the workflow engine. A transaction flow defines the set of transactions that the workflow engine needs to carry out when processing a particular process instance. Second, the notion of caching is driven into virtually all areas of the dif- ferent components that make up the SWoM, such as the caching of process ix models, process instances, or even the caching of process information between subsequent processing steps of a particular process instance. Third, the exploitation and tie-in into the underlying infrastructure for opti- mal resource exploitation and load balancing, where the infrastructure, IBM WebSphere for the application server and IBM DB2 as the database environ- ment, provides for the necessary robustness. Fourth, the support of flow configuration options helps the process modeler to improve performance by telling the SWoM to exploit for a particular process model a set of pre-defined optimization approaches, such as the optimization of database accesses or the improvement of Web Service invocations. Fifth, a flow optimizer optimizes the execution of the transaction flows with respect to cache, database, and CPU cycle usage through the exploitation of data flow and transaction analysis techniques. Optimization is done based on user recommendations and statistical information that the SWoM collects during execution. These optimization techniques, that maintain middleware robustness, are complemented by a set of optimization techniques that improve performance by relaxing some of the stringent robustness requirements. All techniques have been validated using a simple, yet expressive bench- mark that focuses on high-speed, message-based interactions, synchronous invocation, message transformation, and parallel execution. The benchmark results show that the SWoM scales almost linearly with respect to CPU load and the parallelism of requests. The maximum number of requests that the SWoM could obtain on a quad core CPU running Windows 7 64bit was more than 100 process instances per second, outperforming by a factor those WfMSs for which performance data is available. The architecture of the SWoM provides improved performance through the transparent exploitation of cluster technology that IBM WebSphere provides; very few optimization techniques required specific adaptations to cope with cluster characteristics. x ACKNOWLEDGEMENT It has been a long journey with workflow technology; many people have helped me to understand it’s great potential. The first person with whom I worked on workflow was Prof. Dr. Frank Leymann; I was a planning manager at IBM’s PPC laboratory responsible for case processing, and Frank was developing with a small team the initial ideas behind workflow. Fifteen years of working together followed this initial encounter. And the journey continued: after retiring from IBM I fulfilled an old promise and started this thesis in Frank’s department. It gave me the chance and motivation to focus on something I always wanted to understand in detail: what needs to be done to get the most out of a WfMS. Shortly after these initial thoughts were written, IBM started development of a WfMS, called IBM FlowMark. It strictly separated the three orthogonal aspects of workflow technology: the process model describing the different tasks that need to be carried out (the what dimension), the people that need to carry out the individual tasks (the who dimension), and the computer programs that are used to carry out the assigned tasks (the which dimension). Many discussions with the head of the IBM laboratory in Böblingen, Dr. Edwin Vogt, helped us to come up with this fundamental structure of workflow technology, commonly shown as a three-dimensional space (the W3 space) with the executing business process as