Managing Complex and Dynamic Software Systems with Space-Based Computing
Total Page:16
File Type:pdf, Size:1020Kb
o DISSERTATION Managing Complex and Dynamic Software Systems with Space-Based Computing ausgeführt zum Zwecke der Erlangung des akademischen Grades eines Doktors der technischen Wissenschaften unter der Leitung von Ao. Univ.Prof. Dr. eva Kühn 185-1 Institut für Computersprachen, Programmiersprachen und Übersetzer und Ao. Univ.Prof. Dr. Stefan Biffl eingereicht an der Technischen Universität Wien Fakultät für Informatik von Dipl.-Ing. Mag.rer.soc.oec. Richard Mordinyi 9825381 Am Schloßberg 13 A-2191 Pellendorf Wien,17.05.2010 __________________ __________________ __________________ Verfasser Betreuerin Zweitbetreuer Technische Universität Wien A-1040 Wien ▪ Karlsplatz 13 ▪ Tel. +43/(0)1/58801-0 ▪ http://www.tuwien.ac.at „Wer das Ziel kennt, kann entscheiden; wer entscheidet, findet Ruhe; wer Ruhe findet, ist sicher; wer sicher ist, kann überlegen; wer überlegt, kann verbessern.” Konfuzius (551-479 v.Chr.), chin. Philosoph Danksagung Zu Beginn möchte ich mich bei meiner Betreuerin Ao. Univ. Prof. Dr. eva Kühn für die langjährige, stets positive Zusammenarbeit und die wichtigen Ideen und Perspektiven, die diese Arbeit maßgeblich vorangetrieben haben, bedanken. Außerdem möchte ich meinem Zweitbetreuer Ao. Univ. Prof. Dr. Stefan Biffl vom Institut für Softwaretechnik und interaktive Systeme für die unkomplizierte Kooperation, sowie für die neuen Impulse, die er dieser Arbeit gegeben hat, danken. Überdies möchte ich die vielen gemeinsamen Überlegungen und Arbeitsstunden mit meinem Kollegen Thomas Moser anerkennen. Darüber hinaus möchte ich mich bei meinen Kolleginnen und Kollegen am Institut für Computersprachen und am Institut für Softwaretechnik und interaktive Systeme für die konstruktive Zusammenarbeit und Unterstützung der vergangenen Jahre bedanken, vor allem bei Institutsvorstand Prof. Dr. Jens Knoop für die großzügige Unterstützung in Studienangelegenheiten; außerdem bei Amin Anjomshoaa, Marcus Mor, Martin Murth, Alexander Schatten, Fabian Schmied, Johannes Riemer, und Prof. Dr. A Min Tjoa. Im Bereich der Zusammenarbeit mit Industrie- und Forschungspartnern möchte ich mich besonders bei Alexander Mikula (Frequentis), Sandford Bessler (ftw), Slobodanka Tomic (ftw), und Thomas Frühbeck (Telekom Austria) für die praktisch relevanten Herausforderungen und Evaluierungen bedanken. Ferner möchte ich den Studierenden am Institut, v. a. Martin Barisits, Stefan Craß, Severin Ecker, Hannu-Daniel Goiss, Rene Hais, László Keszthelyi, Michael Lafite, Lukas Lechner, Mario Lang, Bernhard Löwenstein, Manuel Maly, Michael Pröstler, und Christian Schreiber für ihre wertvollen Beiträge im Rahmen von Praktika oder Diplomarbeiten der vergangenen Jahre danken, die für die Erstellung dieser Arbeit unerlässlich waren. Abschließend möchte ich auch meine Familie, allen voran meine Eltern, die mir dieses Studium erst ermöglicht haben, dankend erwähnen. Ganz besonderer Dank gebührt meiner Ehefrau, die mich in meinen Vorhaben stets geduldig unterstützt und aus deren Beisammensein ich viel Kraft schöpfe. Eidesstattliche Erklärung Dipl.-Ing. Mag.rer.soc.oec. Richard Mordinyi Am Schloßberg 13/1 2191 Pellendorf Hiermit erkläre ich, dass ich diese Arbeit selbständig verfasst habe, dass ich die verwendeten Quellen und Hilfsmittel vollständig angegeben habe und dass ich die Stellen der Arbeit – einschließlich Tabellen, Karten und Abbildungen –, die anderen Werken oder dem Internet im Wortlaut oder dem Sinn nach entnommen sind, auf jeden Fall unter Angabe der Quelle als Entlehnung kenntlich gemacht habe. Wien, 17. Mai 2010 _________________________ Abstract Software systems are usually composed of distributed and heterogeneous application components representing higher-level business goals, and a middleware part abstracting the complexity concerns related to network and distribution. In the course of developing complex software systems software developers have to deal with interacting application components and changing business requirements. The message-passing paradigm is a common concept allowing application components to interact with each other. But even asynchronous message-oriented middleware technologies are not suitable for complex coordination requirements since the processing and state of coordination have to be handled explicitly by the application component, thus increasing its complexity. Data-driven frameworks, like tuple spaces, support the coordination of application components, but have a limited number of coordination policies. Therefore, with respect to more complex coordination requirements application components still need to implement coordination functionality that is not directly supported by the coordination framework. Middleware frameworks usually represent a specific architectural style and there is a dependency between application components and architectural style. In case a new business requirement demands the implementation of other architectural styles, the combinations of those styles further introduces additional cognitive complexity. Consequently, instead of a stable set of architectural concepts for effectively managing complexity concerns, the number of concepts a software developer has to work with explicitly increases with the size and degree of evolution of the system. This thesis proposes the so called Space-Based Computing (SBC) paradigm to support software developers managing complexity issues regarding interaction requirements and agility of software architectures. The SBC paradigm defines an architectural style that flexibly combines and abstracts the properties of several architectural styles and extends them by sophisticated coordination models. In contrast to traditional coordination frameworks the approach supports exchangeable coordination models and regardless of the evolutionary degree or state of the system, it offers software developers a stable and limited number of architectural concepts to work with. The approach is evaluated in several industrial application domains: in air traffic management, production automation, and intelligent transportation regarding feasibility, effort, robustness, performance, scalability, and usability. The evaluation was carried out by means of prototype implementations, studies, benchmarks, and theoretical proofs. The results show a higher coordination efficiency, improved robustness against changing requirements, simplified realization of business requirements, and reduced complexity in applications. Zusammenfassung Software-Systeme bestehen meistens aus verteilten und heterogenen Applikationskomponenten, die Geschäftsziele repräsentieren, und aus einer Middlewareschicht, die die Komplexität von Netzwerken und Verteilung abschirmt. Im Zuge der Entwicklung von komplexen Software-Systemen müssen sich Softwareentwickler interagierenden Applikationskomponenten und sich ändernden Geschäftsanforderungen stellen. Das nachrichtenbasierte Paradigma ist ein bekanntes Konzept, um die Kommunikation zwischen Applikationskomponenten zu ermöglichen. Es sind jedoch nicht einmal asynchrone nachrichtenbasierte Middlewaretechnologien in der Lage, komplexe Koordinationsanforderungen zu erfüllen, da die Applikationskomponente die Abarbeitung und den Zustand der laufenden Koordination verwalten müssen. Dies steigert die Komplexität der Applikation. Datengesteuerte Frameworks, wie der Tuple Space, hingegen unterstützen die Koordination von Applikationskomponenten, weisen aber eine limitierte Anzahl an Koordinationsformen auf, die eine zusätzliche Komplexität einführen, sobald komplexe Koordinationsanforderungen erfüllt werden müssen. Die vorliegende Dissertation schlägt das sogenannte Space-Based Computing (SBC) Paradigma vor, um Softwareentwickler bei der Handhabung der Komplexität von Interaktions- und Agilitätsanforderungen zu unterstützen. Das SBC Paradigma ist ein Architekturstil, der flexibel die Eigenschaften von unterschiedlichen Architekturstilen kombiniert und abstrahiert, und diese um Koordinationsmodelle anreichert. Im Gegensatz zu traditionellen Koordinationsframeworks ermöglicht SBC die Austauschbarkeit von Koordinationsmodellen. Weiter ermöglicht es Softwareentwicklern unabhängig vom Zustand oder Entwicklungsgrad des Systems, mit einer gleichbleibenden Anzahl an Konzepten zu arbeiten. Der vorgestellte Ansatz wurde hinsichtlich Umsetzbarkeit, Aufwand, Robustheit, Leistung, Skalierbarkeit und Bedienbarkeit in unterschiedlichen Domänen eingesetzt und evaluiert: Luftverkehrsmanagement, Produktionsautomatisierung, und intelligente Transportsysteme. Die Evaluation basierte auf Prototypenimplementierungen, Studien, Benchmarks und theoretische Beweise. Die Resultate der Evaluation zeigen eine höhere Koordinationseffizienz, bessere Robustheit gegenüber sich ändernden Geschäftsanforderungen, einfache Umsetzung von Geschäftsanforderungen und eine Reduzierung der Komplexität in Applikationskomponenten. Table of Contents 1. Introduction ................................................................................................................... 1 1.1. The Interaction Problem ......................................................................................... 2 1.2. The Agility Problem ............................................................................................... 3 1.3. Contribution of this Thesis...................................................................................... 5 1.4. Challenges Related to this Thesis ........................................................................... 6 1.4.1. Pervasive and Trustworthy Network and Services Infrastructure