3 research outputs found
Log-based middleware server recovery with transaction support
Abstract Providing enterprises with reliable and available Web-based application programs is a challenge. Applications are traditionally spread over multiple nodes, from user (client), to middle tier servers, to back end transaction systems, e.g. databases. It has proven very difficult to ensure that these applications persist across system crashes so that "exactly once" execution is produced, always important and sometimes essential, e.g., in the financial area. Our system provides a framework for exactly once execution of multitier Web applications, built on a commercially available Web infrastructure. Its capabilities include low logging overhead, recovery isolation (independence), and consistency between mid-tier and transactional back end. Good application performance is enabled via persistent shared state in the middle tier while providing for private session state as well. Our extensive experiments confirm both the desired properties and the good performance
Integrated Data, Message, and Process Recovery for Failure Masking in Web Services
Modern Web Services applications encompass multiple distributed interacting components, possibly including millions of lines of code written in different programming languages. With this complexity, some bugs often remain undetected despite extensive testing procedures, and occasionally cause transient system failures. Incorrect failure handling in applications often leads to incomplete or to unintentional request executions. A family of recovery protocols called interaction contracts provides a generic solution to this problem by means of system-integrated data, process, and message recovery for multi-tier applications. It is able to mask failures, and allows programmers to concentrate on the application logic, thus speeding up the development process. This thesis consists of two major parts. The first part formally specifies the interaction contracts using the state-and-activity chart language. Moreover, it presents a formal specification of a concrete Web Service that makes use of interaction contracts, and contains no other error-handling actions. The formal specifications undergo verification where crucial safety and liveness properties expressed in temporal logics are mathematically proved by means of model checking. In particular, it is shown that each end-user request is executed exactly once. The second part of the thesis demonstrates the viability of the interaction framework in a real world system. More specifically, a cascadable Web Service platform, EOS, is built based on widely used components, Microsoft Internet Explorer and PHP application server, with interaction contracts integrated into them.Heutige Web-Service-Anwendungen setzen sich aus mehreren verteilten interagierenden
Komponenten zusammen. Dabei werden oft mehrere Programmiersprachen eingesetzt,
und der Quellcode einer Komponente kann mehrere Millionen Programmzeilen
umfassen. In Anbetracht dieser Komplexität bleiben typischerweise einige
Programmierfehler trotz intensiver Qualitätssicherung unentdeckt und verursachen
vorübergehende Systemsausfälle zur Laufzeit. Eine ungenügende Fehlerbehandlung in
Anwendungen führt oft zur unvollständigen oder unbeabsichtigt wiederholten
Ausführung einer Operation. Eine Familie von Recovery-Protokollen, die so genannten
"Interaction Contracts", bietet eine generische Lösung dieses Problems. Diese Recovery-
Protokolle sorgen für die Fehlermaskierung und ermöglichen somit, dass Entwickler ihre
ganze Konzentration der Anwendungslogik widmen können. Dies trägt zu einer
erheblichen Beschleunigung des Entwicklungsprozesses bei.
Diese Dissertation besteht aus zwei wesentlichen Teilen. Der erste Teil widmet sich der
formalen Spezifikation der Recovery-Protokolle unter Verwendung des Formalismus der
State-and-Activity-Charts. Darüber hinaus entwickeln wir die formale Spezifikation einer
Web-Service-Anwendung, die außer den Recovery-Protokollen keine weitere
Fehlerbehandlung beinhaltet. Die formalen Spezifikationen werden in Bezug auf kritische
Sicherheits- und Lebendigkeitseigenschaften, die als temporallogische Formeln
angegeben sind, mittels "Model Checking" verifiziert. Unter anderem wird somit
mathematisch bewiesen, dass jede Operation eines Endbenutzers genau einmal ausgeführt
wird. Der zweite Teil der Dissertation beschreibt die Implementierung der Recovery-
Protokolle im Rahmen einer beliebig verteilbaren Web-Service-Plattform EOS, die auf
weit verbreiteten Web-Produkten aufbaut: dem Browser "Microsoft Internet Explorer"
und dem PHP-Anwendungsserver