http://www.hs-furtwangen.de/fachbereiche/in/ http://www.hs-furtwangen.de/fachbereiche/in/ D-78120 Furtwangen Robert-Gerwig-Platz 1 Furtwangen Hochschule Fakultät Informatik

informatikJournal 2010 informatik Aktuelle Berichte aus Forschung und Lehre Aktuelle BerichteausForschung der FakultätInformatik Journal 2010

informatikJournal 2010

Aktuelle Berichte aus Forschung und Lehre der Fakultät Informatik

Herausgeber

Fakultät Informatik Hochschule Furtwangen Robert-Gerwig-Platz 1 D-78120 Furtwangen http://www.hs-furtwangen.de/fachbereiche/in/

Redaktion

Prof. Dr. Steffen Thiel

ISBN 978-3-00-032887-9

© 2010 Fakultät Informatik, Hochschule Furtwangen Alle Rechte vorbehalten

Printed in Germany

Inhaltsverzeichnis

Vorwort …………………………………………………………………………………………… 1

Cloud Computing .…………………………………………………………………………………. 3

Cloud Computing an der HFU ………………………………..……………………………………. 5 Christoph Reich

Rechtemanagement in der Cloud ………………………………………………………………… 9 Thomas Rübsamen

Sicherheitsmodul zur Datenverschlüsselung in der Cloud ……..………………………………… 13 Marc Thomas

Metascheduling und Loadbalancing in einem heterogenen Cloud- und Gridenvironment ……..... 23 Sebastian Schauer

Software-Produktlinienentwicklung ……………………...……………………………………… 33

Variabilitätsmodellierung in Software-Produktlinien: Drei Lösungsansätze im Fokus ...... ………... 35 Fabian Berner und Denis Jurkovic

Seminstrukturierter Merge in Versionsverwaltungssystemen und das Variabilitätsmodell des Kernels als Evaluationsgrundlage …...…………………………………………………. 45 Christian Fabbricatore, Sebastian Ziganki and Markus Zucker

Improving Product Derivation in Software Product Line Engineering ………….…………………. 65 Pádraig O’Leary, Ita Richardson und Steffen Thiel

Verteilte Systeme ………………………………………………………………………………… 71

Vehicle-to-Business Communication: Enabling Web Services for High-Scalable Communication Infrastructures in Mobile Bandwidth-Limited Networks ………………………………………….. 73 Manuel Lösch, Markus Miche, Friedbert Kaspar, Marc Brogle und Thomas Michael Bohnert

Hochverfügbarkeit für Datenbanken auf iSCSI Basis …………………………………………… 85 Stefan Frey und Christian Kolinski

Benchmarking Hadoop Map/Reduce & HBase …………………………………………..………. 97 Andreas Kremser und Alexander Held

Replikation auf Blockebene mit DRBD ……………………………………..……………..………. 113 Fabian Berner und Denis Jurkovic

XMPP als Kommunikationsmedium in Verteilten Systemen ……..………………………..………. 125 Philipp Böser und Sebastian Ziganki

Quality Engineering ………………………………………………………………………………. 139

Quality Properties for Service-oriented Architectures .....………………………………………… 141 Alexander Wahl und Bernhard Hollunder

Security Engineering: Prozesse und Methoden zur Entwicklung sicherer Software …...……...…. 149 Christian Fabbricatore, Sebastian Ziganki and Markus Zucker

CodeCity: Analyse und Bewertung von Sourcecode Visualisierung …………………………...…. 171 Sebastian Schauer und Jan Krause

Vorwort

Liebe Leserinnen und Leser, herzlich willkommen zur zweiten Ausgabe des informatikJournal, der Fachpublikation der Fakultät Informatik. In dieser Ausgabe haben wir wieder ausgewählte Arbeiten und Ergebnisse aus den vielfältigen Forschungsaktivitäten und interessanten Seminaren unserer Fakultät zusammengestellt.

Die Beiträge der vorliegenden Edition 2010 beschäftigen sich mit aktuellen Fragestellungen der Informatik und umfassen die Fachgebiete Cloud Computing, Software-Produktlinien, Verteilte Systeme und Quality Engineering. Diese Fachgebiete haben einen hohen Stellenwert für die Ausbildung von Informatikerinnen und Informatikern. Sie bieten schon heute interessante Lösungsansätze zur Verbesserung der industriellen Softwareentwicklung. Ferner ergeben sich aus einigen der Themen neue Herausforderungen, die im Rahmen von Forschungsprojekten näher untersucht und zielgerichtet bearbeitet werden müssen.

Wir danken unseren Doktoranden, Masterstudenten und Absolventen für das Engagement und die zahlreichen Beiträge in dieser Ausgabe. Ferner danken wir unseren Kolleginnen und Kollegen für die freundliche Unterstützung und kompetente Betreuung der Arbeiten, insbesondere Herrn Prof. Dr. Bernhard Hollunder, Herrn Prof. Dr. Friedbert Kaspar, Herrn Prof. Dr. Lothar Piepmeyer, Herrn Prof. Dr. Christoph Reich und Herrn Prof. Dr. Albrecht Swietlik.

Wir wünschen Ihnen eine interessante Lektüre und freuen uns über Ihr Feedback.

Furtwangen, Oktober 2010

Prof. Dr. Mohsen Rezagholi Prof. Dr. Steffen Thiel (Dekan) (Redaktion)

1

Cloud Computing

Betreuer

Prof. Dr. Christoph Reich Dr. Anthony Sulisto Frank Dölitzscher

3

Cloud Computing an der HFU

Christoph Reich Fakultat¨ Informatik Hochschule Furtwangen [email protected]

Zusammenfassung—Seit 2008 existiert an der Hochschule Uberwachen,¨ etc. der Infrastruktur, die der Kunde mietet, Furtwangen (HFU) der Fakultat¨ Informatik der Forschungs- wird dabei vom Benutzer selbst ubernommen.¨ schwerpunkt Cloud Computing. Seither wurden zahlreiche Ziel des Cloud Computing Forschungszentrum der HFU Arbeiten im Bereich Lastverteilung, Service Level Agreement (SLA), Monitoring, GUI-Entwicklung, neue Dienste und vor ist es Cloud Computing Technologien zu analysieren, zu allem zu Cloud Sicherheit durchgefuhrt.¨ Die dabei entstandene verbessern und gegebenenfalls in der Hochschule produktiv Forschungsplattform, CloudIA (Cloud Infrastructure and Ap- einzusetzen. plication), wurde stetig erweitert und verbessert. In Zukunft Inhalt dieses Artikels ist zunachst¨ den Begriff Cloud soll diese Plattform auch weiterhin im Fokus von Thesisar- Computing naher¨ zu erlautern¨ (Kapitel: II), um anschlie- beiten sein, um Ideen prototypisch zu implementieren und auszutesten. Geplant ist daraus ein Produktivsystemen fur¨ ßend im Kapitel “durchgefuhrte¨ Arbeiten” (Kapitel: III) eine private Cloud der Hochschule Furtwangen zu bauen, eine Ubersicht¨ uber¨ die adressierten Probleme und deren die Server-Ressourcen “on demand” den Studierenden zur Losungsans¨ atze¨ von Cloud Computing zu geben. Im Kapitel Verfugung¨ stellt. IV wird uber¨ zukunftige¨ mogliche¨ Arbeiten berichtet und ein Keywords-Cloud Computing, Cloud Sicherheit, IaaS, PaaS, mogliches¨ Einsatzszenario fur¨ ein Produktivsystems an der SaaS HFU beschrieben.

I.EINFUHRUNG¨ II.WASIST CLOUD COMPUTING? Das Wachstum der Hochschule Furtwangen fuhrt¨ zu der Es gibt keine eindeutige Definition fur¨ Cloud Computing. Notwendigkeit, dass IT-Infrastruktur stetig ausgebaut wird. Folgende, von Bitcom [3], soll beispielhaft fur¨ viel stehen. In der Regel heißt das eine Zunahme in der Anzahl der Cloud Computing ist eine Form der bedarfsge- physischen Server und Netzkomponenten. Dies wiederum rechten und flexiblen Nutzung von IT-Leistungen. fuhrt¨ zu Kostenerhohung¨ fur¨ die Netzwerk-Administration Diese werden in Echtzeit als Service uber¨ das und Verwaltung dieser Ressourcen. Auch der Bedarf an Internet bereitgestellt und nach Nutzung abge- Server-Instanzen fur¨ studentische Gruppen fur¨ ihre Projekt- rechnet. Damit ermoglicht¨ Cloud Computing den arbeiten steigt wahrend¨ des Semester stark an und nimmt Nutzern eine Umverteilung von Investitions- zu in den Semesterferien wieder ab. Um flexible auf den Betriebsaufwand. steigenden aber auch stark schwankenden Ressourcenbedarf Cloud Computing stellt alse unterschiedlichste Dienste “on zu regieren wurde verstarkt¨ die Virtualisierungs-Technologie demand” uber¨ das Internet zur Verfugung.¨ Diese werden heran gezogen. Die heutige Virtualisierungstechnologien ha- ublicherweise¨ in drei Kategorien eingeteilt, fur¨ die jeweils ben ein hohen Reifegrad und bieten eine breite Palette von Produkte in der Abbildung 1 eingetragen wurden: Losungen¨ und Produkten (z.B. VMware [1]) fur¨ nahezu • Infrastructure as a Service (IaaS): Durch IaaS werden jeden Bereich in der IT-Umgebung. An der HFU werden virtuelle Maschinen (virtual machines, VMs) auf Abruf, virtuelle Infrastrukturen “on demand” zur Verfugung¨ gestellt zur Verfugung¨ gestellt. Ein Beispiel hierfur¨ ist die und ublicherweise¨ von Administratoren der Rechenzentren Elastic Compute Cloud EC2 [2] von Amazon. Hier ist (zentral oder Fakultaten)¨ verwaltet, was das zur Verfugung¨ es moglich,¨ mit nur ein paar Mausklicks Serverinstan- stellen von Ressourcen enorm beschleunigt, aber immer zen zu verwalten. Weitere IaaS-Provider sind: Joyent, noch einen beachtenswerten Verwaltungsaufwand bedeutet. Akamai, Xcalibre, Rackspace, Nirvanix, etc. Cloud Computing, ein neuer Trend der Informatik, • Platform as a Service (PaaS): PaaS bietet Entwicklern nutzt Virtualisierungstechnologien und erganzt¨ diese mit eine Plattform, um bestimmte Anwendungen dafur¨ zu Uberwachungs-¨ und Managementwerkzeugen, was es ver- entwickeln und darin zu betreiben. Ein Beispiel hierfur¨ einfacht unterschiedlichste Geschaftsmodelle¨ zu verwirk- ware¨ Google App Engine [4], die es erlaubt Servlet- lichen. Ein typischer Vertreter einer offentlichen¨ Cloud- Anwendungen in einem Servlet-Container zu betreiben. Umgebung ist Amazon [2], die nicht genutzte Ressour- Weitere PaaS-Provider sind: Morph, Azure, etc. cen ihres Unternehmens der breiten Offentlichkeit¨ anbie- • Software as a Service (SaaS): SaaS Anwendungen ten. Das Starten, Stoppen, Installieren, Anpassen, Updaten, sind multitenant, skalierbar und oft als Web-Service

5 Journal genauer nachlesen. Alle anderen kann man unter www.wolke.hs-furtwangen.de finden. Die Arbeiten werden nachfolgend in die Bereiche IaaS, PaaS, SaaS und Sicherheit eingeteilt:

A. IaaS: Diese Arbeiten fokusieren die Forschungsplattform Clou- dIA [5] weiter zu entwickeln. CloudIA (Cloud Infrastracture and Application) basiert auf der Open Source Software, OpenNebula [6]. Neben Tests zur Robustheit und Sicher- heitsanalysen, wurden vor allem Benutzerinterfaces und Mo- dule zur Integration an der HFU erstellt. Des weiteren wurde Abbildung 1. IaaS, PaaS und SaaS Anbieter die Plattform erweitert durch Module wie, Monitoring, SLA- Uberwachung,¨ Prizing, Accounting, etc. Es entstanden z.B. spezielle Loadbalancer und Scheduler, um ein bestehendes verfugbar.¨ Sehr bekannter Anbieter ist wiederum Goo- Windows Desktop Grid Condor [7] in OpenNebula zu in- gle [4] mit Google-Mail, Google-Docs, etc. Weitere tegrieren. Besonders beim Benutzermanagement war eine SaaS-Provider sind: SalesForce, Gliffy, etc. Integration mit der HFU existenten Single-Sign-On Technik, Momentan werden Cloud Angeboten von den Unter- Shibboleth [8], unumganglich.¨ nehmen noch eher skeptisch betrachtet, da einerseits die B. PaaS: Technologie noch sehr neu ist und vielleicht noch nicht stabil genug und andererseits es an Transparenz der Cloud Ziel der Arbeiten war es zu untersuchen, welche Plattfor- Angebote mangelt. Es gibt noch eine Menge Fragen, die men als PaaS in einer Cloud zur Verfugung¨ gestellt werden es zu beantworten gilt. Wie beispielsweise: Wie konnen¨ konnten.¨ Wichtig dabei war auch immer die mogliche¨ In- Anwendungen effektiv skaliert werden? Was muss beach- tegration an der HFU. Folgende PaaS wurden prototypisch tet werden, wenn man eine Anwendung fur¨ eine PaaS verwirklicht: Umgebung schreibt? Wie kann ich IaaS Infrastrukturen in • LAMP-PaaS und OSGI-PaaS: LAMP steht fur¨ die die eigene Infrastruktur integrieren? Wie baue ich eine Komponenten: Linux, Apache, MySQL und PHP. Viele eigene Cloud Computing Plattform auf? Wie sieht es mit der studentischen Gruppen nutzen eine solche Umge- der Datensicherheit aus? etc. Ein sehr wichtiges Thema ist bung fur¨ Ihre Projektarbeiten. Eine andere sehr ver- Cloud Sicherheit. Diesbezuglich¨ ist die Zugangskontrolle breitete Komponentenarchitektur basiert auf dem Stan- eine große Herausforderung. Denn der Vorteil der Cloud, dard OSGI [9], welche in Vorlesungen und Praktika dezentral von uberall¨ aus auf Firmen-interne Ressourcen genutzt wird. Ziel der Arbeiten war herauszufinden, was zugreifen zu konnen¨ bringt mit sich, dass auch illegitimer notwendig ist, um bei solchen Plattformen Ressourcen Zugriff auf interne Daten leicht von außerhalb klassischer “on-demand” zu aktivieren, einfache zu administrieren Firmennetzwerke versucht werden kann. Außerdem nutzen und in die Hochschulinfrastruktur zu integrieren. unterschiedliche Kunden Hardware Ressourcen gleichzeitig, • Parallel-Cluster-Paas: Eine spezielle virtuelle was die Frage der Isolierung der Instanzen aufwirft. Im Cluster-Umgebung fur¨ die MPI-Programmierung nachsten¨ Kapitel werden durchgefuhrte¨ Arbeiten vorgestellt, wurde mit dem Projekt ViCuDIn (siehe die Themen im Bereich der vorherig, aufgestellten Fragen www.wolke.hs-furtwangen.de) geschaffen. behandelt. Es erlaubt “on-demand” eine beliebige Große¨ eines Clusters virtuell zu erstellen und MPI-Programme III.DURCHGEFUHRTE¨ ARBEITEN darauf zu deployen und auszufuhren.¨ Insgesamt wurden ca. 25 Arbeiten in der Fakultat¨ In- formatik an der HFU durchgefuhrt.¨ Dabei kann man 18 C. SaaS: Arbeiten zum IaaS-Bereich, 8 Arbeiten zum PaaS-Bereich Hauptproblem bei SaaS-Anwendungen ist die Un- und 5 Arbeiten zum SaaS Bereich zurechnen. Die quanti- terstutzung¨ der Skalierbarkeit der Anwendung. Eine Ar- tativen Verhaltnisse¨ spiegeln schon¨ den aktuellen Schwer- beit beispielsweise adaptierte die E-Learning Plattform punkt der Anzahl der Provider in diesen Bereichen wi- OLAT [10] fur¨ die CloudIA Plattform als auch fur¨ die der. Eine detaillierte Betrachtung der einzelnen Arbeiten Cloud Umgebung EC2 von Amazon. Eine andere Arbeit wurde¨ zu weit fuhren,¨ sonder hier soll eine Ubersicht¨ untersuchte vor allem die Leistungsfahigkeit¨ der Lastvertei- der Arbeiten und deren Problemstellungen gegeben wer- lung von J2EE-Anwendungen einer skalierbaren J2EE Cloud den. Ein paar der Arbeiten kann man auch in diesem Infrastruktur.

6 D. Sicherheit: z.B. eine LAMP-Umgebung und SaaS, wie z.B. OLAT Ein großes Spektrum umfassten Arbeiten im Bereich der aufgebaut. Zukunftig¨ soll weiter Forschungsthemen mithilfe Cloud Sicherheit. Eines der zentralen Ziel fur¨ den wirtschaft- der Plattform CloudIA bearbeitet werden und dadurch diese lichen Erfolg von Cloud Computing ist das Starken¨ des Plattform weiter zu entwickeln. Des weiteren soll eine Vertrauens der Kunden in eine Cloud Plattform. Das kann private HFU-Cloud fur¨ IaaS an der Hochschule aufgebaut nur durch eine hoher¨ Transparenz der Cloud Sicherheit und und produktiv betrieben werden. regelmaßigem¨ Audits erreicht werden. Neben Arbeiten, die DANKSAGUNG bestehende Cloud Infrastrukturen wie Amazon sicherheits- Besonderen Dank gilt all denjenigen, die im Forschungs- technisch untersuchten, wurden Arbeiten im Bereich “on- schwerpunkt Cloud Computing mitgearbeitet haben. Be- demand” Datenverschlusselung,¨ “on-demand” Virtual Priva- sonderen Dank gilt: Anthony Sulisto (wissenschaftlicher te Network Kommunikation, “on-demand” Intrustion De- Mitarbeiter der Fakultat¨ Informatik), Frank Dolitzscher¨ (pro- tection Systeme (IDS) und die dazu notwendigen Kunden- moviert im Bereich Cloud Computing Sicherheit) und den spezifische PKI Intrastruktur prototypisch umgesetzt. Ein Thesis-Studenten, David Wolf, Firat Sahin, Markus Held, umfangreicheres Projekt in dem Forschungsschwerpunkt, Martin Sobota, Martin Stamm, Patrick Straub, Alex Passfall, welches durch die Promotion von Herrn Frank Dolitzscher¨ Patrick Seeburger, Ralf Teckelmann, Sebastian Garwers, begleitet wird, hat zum Ziel eine Architektur fur¨ ein spe- Thomas Ruebsamen, Michael Steg, Tobias Hofler,¨ Bastian zielles sicherheitstechnische Cloud-Modul, dem “Security Maier, Sebastian Schauer, Jan Krause, Marc Thomas, Matt- Management and Monitoring as a Service (SMaaS)”. hias Huller,¨ die mit viel Eifer an Cloud Computing Themen IV. ZUKUNFTIGE¨ ARBEITEN mitgearbeitet haben. Zwei Hauptziele stehen im Fokus zukunftiger¨ Arbeiten im LITERATUR Forschungsschwerpunkt Cloud Computing an der HFU. [1] VMware, http://www.vmware.com/, May 2009. Zum einen sollen weitere Forschungsthemen bearbeitet werden. Dies soll auch zur Weiterentwicklung der Clou- [2] Amazon Web Services, http://aws.amazon.com, May 2009. dIA Forschungsplattform fuhren.¨ Schwerpunkt dabei liegt [Online]. Available: http://aws.amazon.com/ec2/ auf dem allgemeinen Management, dem Management von [3] T. u. n. M. e. V. BITKOM Bundesverband In- SLAs und dem Sicherheit-spezifischen Management der formationswirtschaft, “BITKOM-Leitfaden: Cloud Com- Cloud Umgebung. Speziell die prototypische Umsetzung des puting - Evolution in der Technik, Revolution im SMaaS-Modules wird einer der Schwerpunktforschungen Business,” http://www.bitkom.org/files/documents/BITKOM- werden. Leitfaden-CloudComputing Web.pdf, 2009. [Online]. Zum anderen sollen mogliche¨ Einsatzszenarien von Cloud Available: http://www.bitkom.org/files/documents/BITKOM- Leitfaden-CloudComputing Web.pdf Computing in Unternehmen untersucht werden. Ein konkre- tes Projekt ist der Aufbau einer privaten HFU Cloud und [4] Google Apps, http://www.google.com/apps/, May 2009. deren produktiven Einsatz. 2011 soll eine Cloud Umgebung [Online]. Available: http://www.google.com/a fur¨ Studierende der HFU zur Verfugung¨ stehen, die jedem [5] A. Sulistio, C. Reich, and F. Dolitzscher,¨ “Cloud Infrastruc- Studenten erlaubt maximal eine LAMP-Umgebung-Instanz ture & Applications - CloudIA,” in Proceedings of the 1st oder eine Standard VM-Instanz zu nutzen. Die Studierenden International Conference on Cloud Computing. Beijing, sollen die Instanzen in der Art und Weise der Amazon- China: CloudCom 2009, Dec. 1-4 2009. Cloud, selbst verwalten. Diese private Cloud soll in die HFU E-Learning Plattform Felix [11] integriert werden und [6] OpenNebula, http://www.opennebula.org/, May 2009. die Ressourcen auf eine maximale Anzahl von Laufenden [7] D. Thain, T. Tannenbaum, and M. Livny, “Distributed Com- Instanzen begrenzt werden, damit es nicht zu Performance- puting in Practice: The Condor Experience,” Concurrency and Engpassen¨ kommt. Computation: Practice and Experience (CCPE), vol. 17, no. 2–4, pp. 323–356, 2005. V. ZUSAMMENFASSUNG [8] Shibboleth, http://shibboleth.internet2.edu/, May 2009. Cloud Computing ist nicht nur ein Trendthema sonder eine wichtige Entwicklung um IT-Ressourcen “on-demand”, [9] “OSGI Spezifikation,” http://www.osgi.org/Specifications/ skalierbar und einfach anderen zur Verfugung¨ zu stellen. HomePage?section=2. In diesem Forschungsschwerpunkt der Fakultat¨ Informatik sind in den letzten paar Semester einige Arbeiten durch- [10] Online Learning And Training (OLAT), http://www.olat.org/, May 2009. [Online]. Available: http://www.olat.org gefuhrt¨ worden, um solch eine Plattform (CloudIA [5] zu evaluieren, zu verbessern und zu erweitern. Schwerpunkt [11] HFU, “Furtwangen E-Learning & Information eXchange dabei waren SLA-Uberwachung,¨ Prizing, Accounting, Cloud (FELIX),” https://felix2.hs-furtwangen.de, May 2009. Sicherheit, etc. Prototypisch wurden PaaS Systeme, wie [Online]. Available: https://felix2.hs-furtwangen.de

7

Rechtemanagement in der Cloud - Benutzermanagement

Thomas Rubsamen¨ Fakultat¨ Informatik HS Furtwangen Furtwangen, Deutschland [email protected]

Zusammenfassung—Bei der Entwicklung einer Cloud- PaaS/SaaS Dienste von Google Apps[4]/App Engine[5] und Infrastruktur spielt die Sicherheit eines solchen Systems eine Salesforce[6]/Force.com[7] bezuglich¨ Benutzermanagement entscheidende Rolle. Einen Teilaspekt dieses umfangreichen untersucht, bewertet und darauf aufbauend ein Benutzerma- Felds stellt das Benutzermanagement und die damit einher- gehende Zugriffskontrolle auf Cloud-gestutzte¨ Dienste dar. nagement fur¨ CloudIA[8] entwickelt. Im ersten Abschnitt Das Design der Architektur sowie dessen Implementierung im dieses Artikels wird die Architektur des entwickelten Sys- Cloud Computing System der Hochschule Furtwangen sollen tems vorgestellt. Die darauf folgenden beiden Abschnitte in diesem Artikel vorgestellt werden. stellen die Implementierung des Benutzermanagements im Keywords-Cloud Computing; Benutzermanagement; Infra- IaaS-Umfeld und im PaaS/SaaS-Umfeld genauer dar. structure as a Service; Platform as a Service; Software as a Service, Single-Sign-On (SSO) II.ARCHITEKTUR Die Architektur des entwickelten CloudIA-Moduls fur¨ Benutzermanagement und Zugriffskontrolle kann, wie in Abbildung 1 veranschaulicht, in 4 Schichten unterteilt wer- den: GWT-Frontend Der fur¨ den Service- bzw. VM-Administrator im Browser sichtbare Teil der Anwendung ist im GWT[9]-Frontend implementiert. Zusatzlich¨ wird im Browser-Kontext ein Java-Applet fur¨ die sichere Schlusselpaarerzeugung¨ auf Client-Seite verwendet. Hierbei kommt GWT Applet Integration[10] (GWTAI) zum Einsatz, um die Kommu- nikation zwischen dem von GWT erzeugten Javascript- Code und dem Applet zu vereinfachen und die Java Secure Channel[11] (JSch) Library um SSH Schlusselpaare¨ zu generieren. GWT-Server Die GWT Server-Schicht stellt die Schnittstelle zum Ba- ckend dar. Das Backend wiederum ubernimmt¨ die Kommu- nikation mit OpenNebula[12] via XML-RPC und sorgt fur¨ das entsprechende Update der MySQL-Datenbank[13] und des Proxys. Backend Die Backend-Schicht besteht aus einer zentralen Daten- bank, einem Host, der die Aufgaben des Reverse Proxy fur¨ PaaS- und SaaS-Dienste ubernimmt¨ und einer Backend- Abbildung 1. CloudIA Architektur Applikation, die mit den verschiedenen Komponenten in- teragiert und das Management des Cloud Systems bereit- stellt. Zusatzlich¨ beinhaltet das Backend die Server-Logik I.EINLEITUNG der GWT-Applikation, die die eigentliche Web-Applikation Im Rahmen der Thesis Rechtemanagement in der Cloud darstellt. ” - Benutzermanagement“ wurden vom Autor die IaaS- OpenNebula Dienste Amazon Elastic Compute Cloud[1] (EC2), Fle- Als Virtualisierungsmanager wird OpenNebula eingesetzt. xiant FlexiScale Public Cloud[2], ScaleUp[3] und die Dieser ist fur¨ die Verwaltung der virtuellen Maschinen

9 zustandig.¨ Dazu gehort¨ unter Anderem das Starten, Stoppen eigentlichen Schlussel,¨ als auch die Zuordnungen zu de- sowie das Migrieren von VMs. ren Besitzer eindeutig hinterlegt. Zusatzlich¨ sind in die- ser Datenbank auch die Verknupfungen¨ zwischen einem III.IAASBENUTZERMANAGEMENT offentlichen¨ Schlussel¨ und virtuellen Maschinen, auf die mit Der Zugriff auf Linux-basierte VM-Instanzen in einem dem entsprechende privaten Schlussel¨ zugegriffen werden IaaS Szenario geschieht ausschließlich uber¨ OpenSSH[16]. konnen¨ soll, hinterlegt. Dabei wird in den Grundeinstellungen lediglich der Zugang Erstellt ein VM-Administrator ein neues Schlusselpaar,¨ so als Root“- Benutzer vom System verwaltet, da jede weitere wird automatisch der offentliche¨ Schlussel¨ zum Backend ” Konfiguration von virtuellen Maschinen bei IaaS-Diensten ubertragen¨ und dort wie oben beschrieben gespeichert. Aufgabe des VM-Administrators ist. Die Authentifizierung Sobald zu diesem Schlussel¨ eine Verknupfung¨ mit einer via Passwort an einer VM ist in den Standardeinstellungen virtuellen Maschine hergestellt wird, erzeugt das Backend aus Sicherheitsgrunden¨ nicht vorgesehen. entsprechend aktualisierte Konfigurationsdateien (z.B. aut- ” Wie in Abbildung 2 verdeutlicht wird, konnen¨ Schlusselpaar¨ horized keys“ fur¨ den Root-User der VM), mit denen die von dem VM-Administrator im GWT Management Interface VM aktualisiert werden kann. Ruft der Benutzer nun ein automatisch erzeugt werden. Eine Besonderheit hierbei ist, entsprechendes Shell-Skript in der betroffenen VM auf, wird dass beide Schlussel,¨ sowohl der offentliche¨ als auch der die Konfiguration der autorisierten Schlussel¨ automatisch private, auf Client-Seite (d.h. im Browser-Kontext uber¨ aktualisiert. Ein Neustart der VM, wie dies bei den meisten ein Java-Applet) erzeugt werden. Dies hat zur Folge, dass anderen Anbietern gefordert wird, entfallt.¨ lediglich der offentliche¨ Schlussel¨ an CloudIA ubertragen¨ Frontend-Implementierung IaaS: werden muss und der private Schlussel¨ immer beim Benutzer Die Management-Applikation fur¨ CloudIA wird mithilfe verbleibt. Durch dieses Vorgehen lasst¨ sich die Sicherheit von Google’s GWT entwickelt. Der komplexe Prozess der des Systems deutlich erhohen,¨ da nur unkritische Daten SSH Schlusselpaarerzeugung¨ auf Client-Seite ist mit den ubertragen¨ werden mussen.¨ Bordmitteln von GWT jedoch nicht umsetzbar. Hauptgrund dafur¨ ist, dass der Client-Code von GWT aus Java in Javascript ubersetzt¨ wird. Dabei ist der Zugriff auf das java.security“ Paket nicht moglich,¨ da dieses von Google ” geblacklistet ist und somit nicht in Javascript-Code ubersetzt¨ werden kann. Um dieses Problem zu Losen¨ wird an dieser Stelle auf ein Java-Applet zuruckgegriffen¨ mit dem die GWT Anwendung im Browser des Clients kommuniziert. Das Applet besitzt keinerlei graphische Komponenten und wird ausschließlich zur sicheren Erzeugung von Schlusselpaaren¨ benutzt. Die eigentliche Erzeugung ubernimmt¨ dabei die Java Secure ” Channel“-Library von JCraft, die zusammen mit dem Applet ausgeliefert wird. Wurde ein Schlusselpaar¨ erzeugt, wird dieses an die GWT Applikation ubergeben.¨ Der offentliche¨ Schlussel¨ wird in das Backend ubertragen.¨ Der private Schlussel¨ verbleibt im Browser-Kontext des Benutzers und muss von diesem lokal gespeichert werden.

Abbildung 2. SSH-Schlusselpaarverwaltung¨ fur¨ Linux-VMs IV. PAAS/SAASBENUTZERMANAGEMENTMIT SSO

Uber¨ das Web-Frontend kann der VM-Administrator PaaS bzw. SaaS Szenarien, wie zum Beispiel das Mieten offentliche¨ Schlussel¨ mit existierenden virtuellen Maschinen von vorkonfigurierten LAMP (Linux, Apache, MySQL, verknupfen.¨ Dies fuhrt¨ dazu, dass der Zugriff auf virtuelle PHP) VMs stellen vollig¨ andere Anforderungen an CloudIA. Maschinen leicht uber¨ die Vergabe der zugehorigen¨ privaten Im Vergleich zum IaaS-Szenario ist es weder erforderlich Schlussel¨ an Personen, die Zugriff auf die entsprechenden noch wunschenswert,¨ dass der Benutzer einer solchen VM virtuellen Maschinen erhalten sollen, gesteuert werden kann. Zugriff via SSH auf die virtuelle Maschine bekommt, Backend-Implementierung IaaS: da diese unter der Kontrolle des Cloud-Providers (also Fur¨ die Speicherung der generierten offentlichen¨ Schlussel¨ typischerweise des CloudIA-Teams der HS Furtwangen) im CloudIA Backend wird die in Abbildung 1 erwahnte¨ steht. Ein Benutzermanagement, was den Zugriff auf MySQL-Datenbank verwendet. In dieser sind sowohl die Bertriebssystemebene erlaubt, ist in diesem Fall also nicht

10 notig.¨ jeweiligen Anforderungen des Dienstes angepasst werden. So hat der Service-Administrator jederzeit die Moglichkeit¨ Die Hochschule Furtwangen setzt fur¨ das Benutzerma- bestimmte Attribute beim Zugriff auf den Dienst zu fordern, nagement LDAP und Shibboleth[14] als Single-Sign-On- sodass der Zugriff gestattet wird. Losung¨ ein. Um PaaS- bzw. auch SaaS-Diensten die Vorteile V. FAZIT dieser bereits bestehenden Losung¨ anzubieten und dem Cloud Service-Administrator eine Moglichkeit¨ zu schaffen, Benutzermanagement in Cloud Umgebungen hat sehr den Zugriff auf die durch ihn angebotenen Dienste zu komplexe Anforderungen. Vor allem die Bereiche IaaS und steuern, wurde das CloudIA Managementinterface in der Art PaaS/SaaS unterscheiden sich dabei erheblich. Die in diesem erweitert, dass die Konfiguration der Dienste fur¨ die Zu- Artikel beschriebenen Ansatze¨ zur Implementierung eines sammenarbeit mit Shibboleth einfach, effizient und flexibel Benutzermanagements fur¨ das Cloud-System der Hochschu- durchgefuhrt¨ werden kann. le Furtwangen (CloudIA) beschreiben Wege um diese An- Backend-Implementierung PaaS/SaaS: forderungen zu erfullen.¨ Im IaaS Szenario spielen SSH und Wie in Abbildung 3 zu sehen ist, spielt der Apache[15] die sichere Schlusselgenerierung¨ die Hauptrolle, wahrend¨ im Reverse Proxy eine zentrale Rolle bei der Integration von PaaS/SaaS Szenario auf die Integration von Single-Sign-On Shibboleth in die CloudIA Plattform. Der Proxy ubernimmt¨ besonders Wert gelegt wird. stellvertretend fur¨ alle Dienste, die auf den dahinter lie- LITERATUR genden VMs betrieben werden, die Rolle des Shibboleth Service Providers. Demzufolge muss die gesamte Kommu- [1] Amazon Elastic Compute Cloud (Amazon EC2): nikation mit den SaaS/PaaS Diensten uber¨ diesen Proxy http://aws.amazon.com/ec2/ geschehen. Ob ein Dienst die Authentifizierung via Shib- [2] Flexiant FlexiScale: http://www.flexiant.com/products/flexiscale/ boleth durchfuhren¨ soll oder nicht, ist abhangig¨ von der Konfiguration des Proxys. Die entsprechenden Parameter fur¨ [3] ScaleUp Technologies - Cloud Computing & VPDC Germany: die Shibboleth Konfiguration werden durch den Service- http://www.scaleup.it/ Administrator im Frontend festgelegt und vom Backend [4] Google Apps: http://www.google.com/apps/ in entsprechende Apache Konfigurationsblocke¨ umgesetzt. Selbstverstandlich¨ ist es keine Pflicht, Shibboleth fur¨ die Au- [5] Google App Engine: http://code.google.com/appengine/ thentifizierung und Autorisierung beim Zugriff auf die Web- Applikation zu verwenden. Wenn dies nicht gewunscht¨ wird, [6] Salesforce: http://http://www.salesforce.com/ verhalt¨ sich der Proxy beim Zugriff auf die entsprechende [7] Salesforce Force.com: http://www.salesforce.com/platform/ Ressource wie ein klassischer Reverse Proxy. [8] Cloud Research Lab @ HFU: http://www.wolke.hs- furtwangen.de/

[9] Google Web Toolkit (GWT): http://code.google.com/webtoolkit/

[10] GWT Applet Integration (GWTAI): http://code.google.com/p/gwtai/

[11] Java Secure Channel (JSch): http://www.jcraft.com/jsch/

[12] OpenNebula: http://www.opennebula.org/

[13] MySQL: http://www.mysql.com/

[14] Shibboleth SSO: http://shibboleth.internet2.edu/ Abbildung 3. SSO in CloudIA [15] The Apache HTTP Server Project: http://httpd.apache.org

Frontend-Implementierung PaaS/SaaS: [16] OpenSSH: http://www.openssh.org/ Fur¨ die Konfiguration von PaaS und SaaS Diensten stehen dem Service-Administrator verschiedene Einstel- lungsmoglichkeiten¨ im GWT-Frontend zur Verfugung.¨ Es kann fur¨ jeden Dienst gewahlt¨ werden, ob fur¨ diesen Shibboleth-SSO aktiviert werden soll oder nicht. Daruber¨ hinaus kann die Shibboleth-Konfiguration detailliert den

11

Sicherheitsmodul zur Datenverschlusselung¨ in der Cloud

Marc Thomas Fakultat¨ Informatik Hochschule Furtwangen University Furtwangen, Robert-Gerwig-Platz 1 Email: [email protected]

Abstract—Datensicherheit ist ein großes Problem in Cloud In der folgenden Abbildung 1 werden Risiken von Computing. Daher beschaftigt¨ sich dieses Paper mit der Identi- Cloud Computing auf Grund ihrer Auswirkungen und Ein- fizierung von Komponenten um die Datensicherheit zu steigern. trittswahrscheinlichkeit eingeordnent. Die farbigen Bereiche Es werden dabei nicht nur rein technische Komponenten und Technologien angesprochen. Der Autor geht auch auf die stellen den Schaden dar der im Eintrittsfall entsteht. Es ist zu rechtlichen Aspekte ein. Die Beziehungen zwischen den technis- erkennen dass alle Risiken einen mittleren oder sogar hohen chen Komponenten werden dabei am Ende dieser Arbeit in einem Schaden verursachen. Einige Risiken sind die folgenden: Sequenzdiagramm verdeutlicht. • R.4 Loss of business reputation due to co-tenant activities • R.12 Intercepting data in transit I.RELATED WORK • R.14 Insecure or ineffective deletion of data In der folgenden Arbeit werden die benotigten¨ Kompo- nenten beschrieben um die Nachteile, insbesondere die der Datensicherheit in Cloud Computing, zu minimieren bzw. zu beseitigen. Das Buch “Cloud Security and Privacy” [1] beschreibt dazu bereits viele Komponenten. Einige dieser Komponenten werden in dieser Arbeit nochmals betrachtet. Ebenfalls werden zusatzliche¨ Komponenten in der Arbeit beschrieben, allerdings auch einige Komponenten, welche in dem Buch beschrieben sind nicht betrachtet, weil sie fur¨ das Problem der Datensicherheit keine oder nur eine untergeord- nete Rollen spielen. Zusatzlich¨ wird in der Arbeit ein Ablauf fur¨ die Datenverschlusselung¨ beschrieben. Dieser Ablauf wird bereits grundlegend in dem Paper “Cryptography as a Service” [2] von Jeff Stapleton beschrieben. In dieser Arbeit wird dieser Ablauf um wichtige Komponenten erweitert. February 12, 2010

II.EINFUHRUNG¨ Cloud Computing ist ein sehr aktuelles Hype-Thema und es zeigt sich dass vor allem die Sicherheit [3] eines des Fig. 1. Risiken Verteilung. Quelle:[4] großen Probleme darstellt. Insbesondere die Sicherheit der Daten, wobei es egal ist ob es Kundendaten oder Firmendaten sind. Die Regelwerke des IT-Complaince und IT-Governance III.COMPLAINCE verscharfen¨ diese Situation nochmals. Diese Vorschriften sind Es ist ersichtlich dass Complaince-Richtlinien bereits viele nicht fur¨ die Merkmale von Cloud Computing konzipiert. Anforderungen und Komponenten an das Sicherheitsmodul Merkmale wie die Ortstransparents von Daten, sowie die vorgeben. Weitere Komponenten und Anforderungen werden Konzentration der Daten von mehreren Kunden und Kun- durch das IT-Governance definiert. Hier ist insbesondere ITIL deninstanzen auf den selben Systemen hebeln sehr oft die fur¨ das IT-Service Managment, sowie ISO/IEC 27001 fur¨ die Vorschriften aus. Firmen mussen¨ aber dafur¨ sorgen dass sie Informationssicherheit zu nennen. die Vorschriften einhalten, da ihnen anderenfalls hohe Strafen, sowie hohere¨ Kreditzinsen drohen konnen.¨ Die Haupttechnolo- A. PCI- Data Security Standard gie um die Problematik der ausgelagerten Daten zu losen¨ ist Das Payment Card Industry (PCI) Security Standard Coun- Kryptografie. cil bestehent aus mehreren großen Firmen aus dem Bereich

13 der Kreditkarten Industrie. Ebenfalls sind viele Firmen aus Auftragebers und der Europaischen¨ Union zu gewahrleisten.¨ dem Bereich der Netzwerk- und IT-Sicherheit beteiligt. Das PCI hat die Aufgabe Sicherheitstandards fur¨ die Verarbeitung IV. LOGGING und Speicherung von Kreditkartendaten und -transaktionen zu definieren. Die Regelungen fur¨ den Bereich der Sicherheit Logging ist eine der entscheidenden Maßnahmen, mit de- in Rechnernetzen wird im PCI-Data Security Standard (DSS) nen Cloud-Services die Vorgaben der Richtlinien und Stan- geregelt. Diese Regelungen, welche als Industriestandard gel- dards erfullen¨ konnen.¨ Diese Richtlinen gibt es mittler- ten, sind bereits seit mehreren Jahren, fur¨ Firmen welche weile, wie bereits im vorherigen Kapitel beschrieben, fur¨ alle mit Kreditkartendaten arbeiten, verpflichtend. Die Anforderun- Geschaftsfelder¨ und Betatigungsbereiche.¨ gen in diesem Standard umfassen weite Bereiche der Net- Damit Logging zur Einhaltung der Richtlinien verwendet zwerkstrukturierung und -absicherung. Ebenfalls sind darin werden kann, mussen¨ zuerst die Integritat¨ und Authentiztat¨ der Anforderungen bzgl. der Umsetzung von Prozessen und der Logdaten sichergestellt werden. Dies muss nicht nur wahrend¨ Umfang, die Haufigkeit¨ und die Art der Audits beschrieben. dem Erstellen und Erfassen der Logdaten sichergestellt wer- So ist z.B. eine Anforderung die “Verschlusselung¨ bei der den, sondern auch wahrend¨ der gesamten Zeit bis zur Ver- Ubertragung¨ von Karteninhaberdaten uber¨ offene, offentliche¨ nichtung der Logdaten. Dies ist kein leichtes Unterfangen Netze” [5, S. 28]. In dieser Anforderung wird z.B. die Verwen- da es viele mogliche¨ Probleme gibt welche die Intregritat¨ dung von SLL/TLS oder IPSEC in allen offentlichen¨ Netzen der Logdaten verletzen konnen.¨ Hierzu zahlen¨ z.B. Fehler im gefordert. Filesystem, Hacker-Angriffe und Hardware-Fehler [9]. PCI-DSS definiert fur¨ den Cloud Sevice Provider (CSP) Im Umfeld von Cloud Computing wird dieses Problem also eine Reihe an strukturellen und prozess Anforderungen ungleich großer,¨ da hier die Logdaten von vielen unter- welche er umsetzen muss. Nur durch Umsetzung dieser An- schiedlichen Anbietern stammen konnen.¨ So ist es einem forderungen konnen¨ seine Kunden die in den CSP gesetzen Infrastructure as a Service (IAAS)-Provider moglich¨ alle I/O Erwartungen im Sicherheitsbereich erfullen.¨ Zugriffe zu erfassen und von welcher Instanz sie ausgefuhrt¨ wurden. Es ist ihm allerdings nicht moglich¨ zu loggen welcher B. Bundesdatenschutzgesetz User bzw. welche Person den Zugriff initiert hat. Diese Infor- Das Bundesdatenschutzgesetz regelt die Speicherung, Verar- mation kann aber ein Software as a Service (SAAS)-Provider beitung und Erfassung personenbezogener Daten in Deutsch- loggen. Hierdurch wird deutlich, dass es eine zentrale Instanz land. Der Datenschutz stellt bei der Verwendung von Cloud geben muss, welche alle Logdaten aggregiert und auswerten Computing ein großes Problem [6] dar, weil es fur¨ den Kunden kann. Eine mogliche¨ Umsetzung stellt ein Cloud Provider dar und die Nutzer nicht moglich¨ ist zu sagen in welchem Land die welcher alle Service-Aspekte anbietet. Der Trusted Cloud- Daten gespeichert oder verarbeitet werden. Die Verarbeitung Provider kann sich dabei als Dienstleister um ein revision- personenbezogener Daten ist nach §4b Abs. 2 und 3 BDSG ssicheres Logging der Logdaten von IAAS, Platform as a [7] nur in Landern¨ mit einem adaquaten¨ Datenschutzniveau Service (PAAS) und SAAS kummern.¨ zulassig.¨ Dies ist in europaischen¨ Landern¨ in der Regel kein Neben dem eigentlichen Event, welcher in den Logdaten Problem, ganz im Gegensatz zu z.B. den USA. Die Lander¨ gespeichert wird, muss zusatzlich¨ die Uhrzeit des Events welche ein entsprechendes Datenschutzniveau bieten regelt erfasst werden und es muss sichergestellt sein, dass die die Europaische¨ Gemeinschaft (EG). Ebenfalls definiert die Uhrzeit genauso wie die gesamte Lognachricht unverandert¨ EG Moglichkeiten¨ auch in Landern¨ mit niedrigem Daten- bleibt bzw. die Anderungen¨ nachgewiessen werden konnen.¨ schutzniveau Daten verarbeiten oder speichern zu lassen. Dies Hierzu sind zwei Maßnahmen erforderlich: Zum einen die ist in der EG-Richtlinie 2002/58/EG [8] geregelt, die Ausnah- identische Uhrzeit auf allem Instanzen eines Kunden. Zum meregelung ist als “Safe-Habor Abkommen” bekannt. Ein Un- zweiten wird eine absolut zuverlassige¨ Zeitquelle benotigt¨ ternehmen verpflichtet sich, wenn es am Safe-Habor Abkom- welche von den behordlichen¨ Messinstituten der einzelnen men teilnehmen mochte,¨ ein Datenschutzniveau, welches der Lander¨ zur Verfugung¨ gestellt wird. In Deutschland ubernimmt¨ der EG enspricht, in dem eigenen Unternehmen umzusetzen. dies die Physikalisch technische Bundesanstalt (PTB). Diese Ein weiteres Problem das durch den Datenschutz entsteht Uhrzeit von der zuverlassigen¨ Zeitquelle kann nun von einer ist dass nach §11 Abs.1 BDSG[7] der Auftraggeber, also Time-Stamp Authority genutzt werden, um zusammen mit der Cloud Computing Kunde, fur¨ die Einhaltung der einem Zertifikat jede Lognachricht zu signieren und mit einem Dateschutzrichtlinie wahrend¨ der Verabeitung zustandig.¨ Dies Zeitstempel zu versehen. gilt auch wenn die Daten durch dritte, also den Cloud Ser- vice Provider, gespeichert werden. Desweiteren wurde¨ sich V. PUBLIC KEY INFRASTRUKTUR der Kunde fahrlassig¨ verhalten wenn er die Eignung zum Einhalten des Datenschutzes (§4b Abs.3 BDSG[7]) bei dem Eine Public-Key Infrastructure (PKI) [10, S. 441] ist ein Cloud Service Provider nicht vor der Nutzung der Cloud Com- System bzw. Infrastruktur welche fur¨ das Ausstellen, Verteilen puting Dienste uberpr¨ uft.¨ Der Cloud Service Provider muss und Prufen¨ von Zertifikaten zustandig¨ ist. Es wird hierbei also Komponenten, Mechanismen und Techniken etablieren ausschließlich asymetrische Kryptographie verwendet. Durch um ein adaquates¨ Datenschutzniveau nach den Regeln des diese asymetrische Verteilung von Schlusseln¨ ist es ebenfalls

14 moglich¨ symetrische Schlussel¨ sicher zu verteilen (sogenan- hat die CA eine Registration Authorithy (RA). Diese sichert nte Hybride Verschlusselung).¨ Dies ist z.B. bei Kommunika- mit entsprechenden Maßnahmen, dass die Identitat¨ zweifelsfrei tionsverschusselungen¨ wie IPSEC wichtig. festgestellt werden kann. Diese Zertifikate konnen¨ weiterhin fur¨ die Identifizierung Fur¨ unterschiedliche Zertifikate und unterschiedliche CA- und Absicherung von Personen und Systemen genutzt werden. Klassen gelten verschiedene Level of Assurance (LOA) [12]. Eine große Schwachstelle bei einer PKI besteht im So gelten fur¨ sogenannte Extended Validation Zertifikate Verlust oder der Veroffentlichung¨ (Data-Leakage) des pri- hohere¨ Anforderungen an die Identitatsfeststellung¨ als fur¨ vate Schlussel¨ des Root-Zertifikates. In den folgenden Un- normale E-Mail Zertifikate. terkapiteln werden die einzelnen Unterkomponenten, welche 3) Verschlusselung:¨ Bei der asymetrischen Verschlusselung¨ direkt mit der PKI zu tun haben, naher¨ erklart,¨ wie z.B. werden die Daten mit dem offentlichem¨ Schlussel¨ ver- Zertifikate, CA. schlusselt¨ und konnen¨ anschließend nur noch durch den Be- sitzer des privaten Schlussels¨ entschlusselt¨ werden. Dies ist A. Zertifikate moglich¨ da der private und offentliche¨ Schlussel¨ voneinander Als Zertifikat wird der public Anteil eines asymetrischen abhangen.¨ Es ist aber ebenfalls moglich¨ die Daten mit dem Schlusselpaars¨ angesehen, welcher verschiedene definierte privaten Schlussel¨ zu verschlusseln¨ und dem dazugehorigen¨ Zusatzinformationen enthalt.¨ Die Struktur des Zertifikats wird offentlichem¨ Schlussel¨ zu entschlusseln.¨ Dieses Prinzip wird, im ITU-Standard X.509v3 [11] definiert. In dieser Struktur wie bereits beschrieben, bei dem Signieren von Daten verwen- wird z.B. festgelegt, von wann und bis wann das Zertifikat det. gultig¨ ist. Weiterhin sind Informationen uber¨ Aussteller bzw. Bei der hybriden Verschlusselung¨ wird ein symetrischer Gegenstand des Zertifikats in X.500-Schreibweise , sowie die Sitzungsschlussel¨ durch die asymetrische Verschlusselung¨ Ausstellersignatur des Zertifikats enthalten. Ebenfalls enthalt¨ ubertragen,¨ wodurch das Hauptproblem der symetrischen Ver- das Zertifkat den offentlichen¨ Schlussel¨ des Schlusselpaars.¨ schlusselung¨ gelost¨ wird. Es gibt heute viele Erweiterungen zum X.509v3 Stan- B. Certifikation Authorithy dard. Als wichtigste ist die Erweiterung der von der IETF beschaftigen¨ Public-Key Infrastrucuture X.509 (PKIX) Work- Die Certifikation Authorithy (CA) generiert und signiert die ing Group 1 zu nennen. Die PKIX hat z.B. Erweiterungen fur¨ Zertifikate. Sie ist ebenfalls fur¨ das Generieren der Widerruf- Widerrufslisten (Certification Revocation List (CRL), Online slisten zustandig.¨ Eine CA kann selbst mehrere Intermediate- Certification Status Protocol (OCSP)) etabliert. Es werden in CA’s bzw Sub-CA’s besitzen. Dies sind untergeordnete CA’s, diesen Erweiterungen die Adressen zum CRL-File bzw. dem welche entsprechend dem hierarischen Trust-Modell[10, S. OCSP-Responder der CA gespeichert. Ein Browser kann so 452] der Root-CA vertrauen. Eine Intermediate-CA kann selbststandig¨ uberpr¨ ufen¨ ob das verwendete Zertifikat noch sinnvoll sein wenn diese ausschließlich fur¨ eine Organisation gultig¨ ist und nicht widerrufen wurde. Zertifikate konnen¨ in zustandig¨ ist. Dies ist sehr einfach zu losen¨ da alle Zertifikats- den drei folgenden grundlegenden Methoden benutzt werden: Subjects einen X.500 Eintrag enthalten. So ist z.B. DFN- 1) Signaturen: Durch Signaturen [10, S. 175] kann die PKI eine Intermediate-CA der Deutsche Telekom Root CA2 Integritat¨ von Daten und die Identitat¨ des Zeritifkatsinhab- (TeleSec). ers sichergestellt werden. Hierzu werden mittels eines Hash- Die meisten CA’s unterstutzen¨ aussschließlich das hierarische Alghorithmus [10, S. 199] die Daten komprimiert. Dieser Trust-Modell. Ein entscheidender Grund hierfur¨ ist die Vor- Hash wird mittels des privaten Schlussels¨ des Zertifikats gabe des hierarchischen Modells bei X.500 und die Nutzung verschlusselt.¨ Die Intergritat¨ und Identitat¨ der Daten kann an- von X.500 bei X.509. Bei diesem Trust-Modell wird davon schließend durch eine andere Person, welche den offentlichen¨ ausgegangen, dass alle dem Root-Zertifikat vertrauen. Daher Schlussel¨ besitzt, uberpr¨ uft¨ werden. Dies passiert indem kann auch allen von der CA uberpr¨ uften¨ und generierten der verschlusselte¨ Hash mittels des offentlichen¨ Schlussels¨ Zertifikaten vertraut werden. entschlusselt¨ wird. Dadurch ist der ursprungliche¨ Hash wieder In Deutschland besitzen alle akkreditierten Zertifizierungsdien- ¨ ¨ ¨ ¨ ¨ steanbienter eine Intermediate-CA. Die Root-CA in Deutsch- verfugbar. Zum uberprufen mussen zusatzlich noch die Ro- 2 hdaten gehasht werden. Wenn dieser neu generierte Hash land wird von der Bundesnetzagentur betrieben. Sie generiert und der entschlusselte¨ Hash ubereinstimmen¨ sind die Daten die Root-Zertifikate fur¨ die Zertifizierungsdiensteanbieter und unverandert,¨ die Integritat¨ wurde nicht verletzt und die uberwacht¨ diese ebenfalls. Daten wurden durch den Zertifikatsinhaber signiert. Zertifikate Online-CA Bei einer Online-CA ist die CA uber¨ ein Netzwerk konnen¨ wie im folgenden Abschnitte beschrieben noch auf erreichbar und es konnen¨ neue Zertifikate sofort signiert wer- anderen, Art fur¨ die Identifizierung genutzt werden. den. Der CA-Rechner muss hierbei mittels eines ausgereiften 2) Identifizierung: Um die Identitat¨ von Personen oder Sicherheitskonzept geschutzt¨ werden. Dieses Konzept ist in Systemen, welche in Zertifikaten erfasst sind, sicher fur¨ die privaten CA’s ublich.¨ Authentifizierung nutzen zu konnen,¨ muss vor Ausstellung des Offline-CA Dieser CA-Typ ist der gebrauchlichste¨ bei großen Zertifikats die Identitat¨ zweifelsfrei festgestellt werden. Hierzu 2URL: http://www.bundesnetzagentur.de/enid/ 4f4510ced6d51bd1e5744368b9794d07,0/Sachgebiete/Qualifizierte 1URL: http://www.ietf.org/dyn/wg/charter/pkix-charter.html elektronische Signatur gz.html

15 Zertifikate-Anbietern. Hier befindet sich die CA in einem wenn der private Key des Zertifikats kompromiert wurde, aber besonders abgesichertem Raum. Dieser Raum ist in der Regel auch wenn sich heraustellen sollte, dass die Identitat¨ trotz aller sehr gut gegen außere¨ Einflusse¨ und physikalische Zugriffe Uberpr¨ ufungen¨ nicht stimmt. Ebenso ist dies notig,¨ wenn ein gesichert. Der CA-Rechner ist ebenfalls besonders gehartet¨ Zertifikat erneuert oder nicht mehr benotigt¨ wird [10, S.502- und verfugt¨ uber¨ keinerlei Netzwerkverbindungen. Die Zer- 505] [13, 4.9]. tifikatsanfragen mussen¨ z.B. uber¨ ein USB-Stick auf den Die widerrufenen Zertifikate werden in Widerrufslisten Rechner kopiert werden. (CRL) von der CA veroffentlicht.¨ In den meisten Zertifikaten wird in den Extensions die URL zu den CRL’s gespeichert. Ein Problem mit den CRL’s ist die Verteilung der CRL’s. Sie mussen¨ regelmaßig¨ von den Clients bezogen werden. Der Client kann nur die Zertifikate als widerrufen erkennen welche in der aktuellen CRL auf dem Client widerrufen wurden. Es ist daher sehr wahrscheinlich, dass erst vor kurzem widerrufene Zertifikate noch einige Zeit von den Clients als valide erkannt werden, bis der Client seine CRL aktualisiert. Eine weitere Moglichkeit¨ der Uberpr¨ ufung¨ der Zertifikate auf Widerruf ist das Online Certification Status Protocol (OCSP) [14]. Bei OCSP muss die CRL nur dem OCSP- Responder bekannt sein. Die Clients bei jeder Benutzung eines Zertifikats eine Anfrage an den OCSP-Responder. Dieser antwortet dem Client, ob das Zertifikat widerrufen wurde oder es noch gultig¨ ist. Die URL zu dem zustandigen¨ OCSP- Responder kann ebenfalls in der Zertifikats-Exentsion gespe- ichert werden. Da bei OCSP nur ein Server aktualisiert werden muss kann sich der Widerruf eines Zertifikats schnell verbre- Fig. 2. mogliches¨ PKI-Konzept fur¨ Trusted Cloud Computing. Quelle: eigene iten. Ein Problem bei OSCP kann entstehen wenn der OCSP- Darstellung Responder als Single Point of Failure (SPOF) ausfallt.¨ In einer Cloud Computing Umgebung sollte bervorzugt ein Fur¨ trusted Cloud Computing ware¨ ein mogliches¨ Konzept OCSP-Responder genutzt werden, da Cloud Computing ein eine Mischung aus online und offline-CA. Die offline-CA sehr schnelllebiges Konzept ist. In solch einem Konzept ist es wurde¨ dabei vom Cloud Service Provider betrieben. Mit ihr unabdingbar, dass die Ruckruflisten¨ moglichst¨ schnell aktual- wurden¨ ausschließlich Zertifikate fur¨ Dienste des Service isiert werden. Dies lasst¨ sich am einfachsten mittels OCSP Providers erstellt, sowie Intermediate-CA’s fur¨ die Kunden. realisieren. Unabhangig¨ von der Benutzung eines OCSP- Die Intermediate-CA’s der Kunden wurden¨ als online-CA Responders ist ein Bereitstellen von CRL’s unabdingbar, da betrieben, wobei die Intermediate-CA’s jeweils eine Ein- nicht alle Anwendungen mit OCSP umgehen konnen.¨ Es schrankung¨ auf den Namesbereich des Kunden haben. Es kann ebenfalls in großen Infrastrukturen vorkommen, dass ist also dem Kunden mit seiner Intermediate-CA moglich,¨ die Zeitspanne zwischen zwei Ruckrufen¨ sehr kurz ist. Dies nur Zertitifakte fur¨ seine Instanzen und Benutzer zu er- steigert das Problem der zeitnahen Verteilung nochmals [10, stellen (siehe Abbildung 2). Ein Nachteil an diesem Konzept S. 506]. ist, dass neue Kunden nur nach einer intensiven Identi- fizierung und anschließender Einrichtung einer kundenspez- D. Time Stamp Services ifischen Intermediate-CA den Cloud Service nutzen konnen.¨ Darunter wurde¨ die Schnelllebigkeit von Cloud Computing Um sicher qualifizierte Zeitstempel generieren zu konnen¨ leiden. Der Kunde und der Cloud Service Provider benotigen¨ brauchen die Time Stamp Authorities (TSA) eine zuverlassige¨ so mindestens mehrere Stunden bis der Kunde die Cloud Zeitquelle. Diese TSA’s generieren sogenannte Time Stamp Services nutzen kann. Sofern der Cloud Service Provider fur¨ Token (TST). Diese reprasentieren¨ eine Struktur welche den sein trusted Cloud Computing anfanglich¨ eine erweiterte Iden- Zeitstempel sowie die Signatur, welche vom Hash + Zeitstem- titatspr¨ ufung¨ verlangt, ahnlich¨ wie bei EV-Zertifikaten, kann pel erstellt wurde, beinhaltet. es sogar mehrere Tage bzw. Wochen dauern. Eine erweiterte Die International Time Authority ist bei dem Bureau Inter- Identitatspr¨ ufung¨ sollte auf alle Falle¨ durchgefuhrt¨ werden, national des Poids et Mesures (BIPM) angesiedelt. Sie stellt damit die Nutzung der Cloud Computing Services eindeutig ihre Zeitbasis den nationalen Messinstituten zur Verfugung.¨ und rechtssicher einem Kunden zugeordnet werden konnen.¨ Diese Aufgabe ubernimmt¨ in Deutschland die Physikalisch Technische Bundesanstalt (PTB). Sie betreib selbst mehrere C. Zertifikats Ruckrufe¨ Atomuhren und stellt ihre Zeitbasis sowohl uber¨ das Network Das Widerrufen bzw. Sperren von Zertifikaten ist eine Time Protocol (NTP) als auch uber¨ das in Funkuhren verwen- wichtige Aufgabe einer CA. Dies kann notwendig werden dete DCF-77 Funksignal zur Verfugung.¨

16 Ein qualifizierter Zeitstempel ist sehr wichtig um z.B. innerhalb kurzer Zeit sehr viele Zufallszahlen. Ebenso sind die Integritat¨ einer Datei zu einem definierten Zeitpunkt diese Karten echte Random Number Generatoren (RNG) und sicherzustellt. Zeitstempel werden auch fur¨ das Logging nicht wie meistens in Betriebssystem nur Pseudo Random benotigt.¨ Es ist sehr wichtig, dass die Log-Daten einen qual- Number Generator (PRNG). ifizierten Zeitstempel besitzen um die Log-Ereignisse in eine Als letzte große Aufgabe fur¨ ein Key Distribution Cen- Reihenfolge zu bringen. Nur dadurch lassen sich die Log- ter ist das Vernichten der Schlussel¨ zu nennen. Dazu muss Daten rechtssicher speichern und auswerten. Das Speichern sichergestellt sein das die Daten, welche durch dem Schlussel¨ von Logdaten mit Zeitstempel ist eine Vorgabe in vielen verschlusselt¨ wurden, geloscht¨ sind. Dies kann nur in Zusam- Vorschriften und Standards wie z.B. Payment Card Institut menarbeit mit anderen Komponenten sichergestellt werden. - Data Secure Standard (PCI-DSS) oder Grundsatze¨ ord- Anschließend muss das KDC sicherstellen dass der Schlussel¨ nungsmaßiger¨ DV-gestuzter¨ Buchfuhrungsysteme¨ (GoBS). In auf allen Komponenten welche ihn jeweils verwendet haben dem folgenden Kapitel wird auf die Komponenen fur¨ die geloscht¨ wurde. Nachdem dies alles sichergestellt ist muss symetrische Kryptographie eingegangen. der Key und alle Verweise auf diesen auf dem KDC geloscht¨ werden [15]. VI.KEY DISTRIBUTION CENTER VII.DATENVERSCHLUSSELUNG¨ Das Verwalten von symetrischen Schlusseln,¨ in Key Dis- tribution Centern (KDC), ist ein sehr viel großeres¨ Prob- Wie bereits in den vorhergehenden Kapitenl erklart¨ ist lem als das Verwalten von asymetrischen Schlusseln,¨ da ein Kryptografie eine der Kernmaßnahmen fur¨ die Security und symetrischer Key zur Verschlusselung¨ und Entschlusselung¨ Privacy. Ohne Verschlusselung¨ kann der Kunde nicht dem verwendet wird. Der Schaden ist also sehr viel großer¨ wenn CSP vertrauen, da dieser nicht weiß was mit den Daten ein solcher Key in die Hande¨ von dritten Personen gelangt. Ein passiert und wer die Daten liest bzw. verarbeitet. Da die Daten Key Distribution Center oder auch ein Enterprise Key Manager sowohl wahrend¨ der Ubertragung¨ (Data-in-transit) als auch auf muss also besonders abgesichert sein und darf die Keys nur dem Speichermedium (Data-at-rest) verschlusselt¨ sind, kann an berechtigte Personen und Komponenten aushandigen.¨ Die der CSP allerdings die Kundendaten nicht lesen oder fur¨ Keys werden an vielen Stellen in Cloud Computing benotigt,¨ anderweitige Zwecke missbrauchen. z.B. dem persistenten Storage, den Instanzen oder auch dem Bei Cloud Computing entstehen durch das Speichern von Backup-System. Das Problem ist, dass jedes dieser Systeme permanenten Daten ein Reihe von Problemen: einen eigenen Weg zut Kommunikation mit dem Key Manag- • sie werden meist in speziellen Diensten und Datenstruk- ment System nutzt. turen gespeichert Eine ganige¨ Infrastruktur sieht ein Key Managment Sys- • sie mussen¨ einen großen Datendurchsatz bieten und in- tem fur¨ nur wenige Systeme vor. Dies bringt allerdings den dexierbar sein Nachteil dass eine große Anzahl an Key Managment Sys- • sichere Schlusselverwaltung¨ (siehe Kapitel VI) temen benotigt¨ wird. Wenn dies auf eine Cloud Computing • Verarbeitung von Daten nur im entschlusselten¨ Zustand Umgebung ubertr¨ agt¨ wurde¨ die Anzahl der benotigten¨ Key moglich¨ Managment System uberproportional¨ ansteigen. Dies steht • Minderung der nutzbaren Rechenleistung und des Daten- einer effektiven Nutzung und Administration im Wege. Um durchsatzs durch Verschlusselung¨ dieses Problem zu beseitigen hat die “Organization for the Dies alles bedeutet Probleme bei dem Einhalten von Advancement of Structured Information Standards” (OASIS) Richtlinien und bei Audits. ein “Key Managment Interoperability Protocol” (KMIP) ent- Ein weiteres Problem sind die kryptografischen Algorith- worfen. Es stellt eine einheitliche Kommunikationschnittstelle men. Es gibt viele Algorithmen, sowohl properitare¨ als auch bereit sowie eine einheitliche Verwaltung von Schlusseln.¨ veroffentlichte.¨ Bei der Auswahl des zu benutzenden Al- Hierdurch kann die Anzahl der benotigten¨ Key Manage- ghorithmus sollten bevorzugt die veroffentlichten¨ genutzt wer- ment Systeme massiv reduziert werden. Ein zentrales Key den. Diese wurden wie z.B. AES von einer nationalen Stan- Managment System ist nicht empfehlenswert, da dieses das dardisierungsorganisation ausgiebig uberpr¨ uft.¨ Ebenfalls sind Problem der Verfugbarkeit¨ hat sowie das Schadensausmaß im die veroffentlichten¨ Algorithmen meist durch die Kryptografie- Kompromitierungsfall riesig ist. Ein Key Managment System Gemeinschaft auf Fehler und Schwachstellen untersucht wor- pro Kunde konnte¨ daher eine gute Alternative sein. Dies wurde¨ den. Diese ganzen Uberpr¨ ufungen¨ konnen¨ properitate¨ Algo- das Schadensausmaß auf einen Kunden beschranken.¨ Auch im rithmen i.d.R. nicht aufweisen, da der eigentliche Algorithmus Falle eines Defektes an einem solchen System wurde¨ sich der als Firmengeheimnis nicht einsehbar ist. Es kann also nicht Ausfall auf einen Kunden beschranken.¨ uberpr¨ uft¨ werden, ob der Algorithmus fehlerfrei und sicher Ein Key Distribution Center muss neben dem Verwalten von ist. symetrischen Schlusseln¨ auch die Moglichkeit¨ einer sicheren Ebenso wie bei allen anderen Teilen mussen¨ auch bei der Generierung von Schlusseln¨ ermoglichen.¨ Zur Generierung Datenverschlusselung¨ alle Transaktionen geloggt werden. Dass von sehr vielen Schlusseln¨ in kurzer Zeit, wie es in Cloud heißt, nicht nur bei einem Zugriff auf die Daten, sondern Computing vorkommen kann, werden am besten Hardware auch beim Erstellen und Loschen,¨ sowie ebenfalls bei un- Random Number Generator Karten verwendent. Sie generieren berechtigten Anfragen auf Zugriff. So kann der IAAS-Provider

17 z.B. folgenden Daten erfassen: Zugriffszeitpunkt, Zugriff- B. Layer 3 ¨ squellen, Erstellungszeitpunkt, Anderungszeitpunkt, Daten- Auf Layer 3 (Network Layer) ist das am haufigsten¨ herkunft. Zusatzlich¨ dazu konnte¨ ein SAAS-Provider noch genutze Protocol das Internet Protocol (IP) angesiedelt. IP den User, welcher auf Daten zugreift sowie die Anwendung, sah ursprunglich¨ keine Verschlusselung¨ vor. Dies anderte¨ welche auf Daten Zugreift, erfassen. sich allerdings mit dem Sicherheitbewusstsein im Inter- Ein Problem bei der Verschlusselung¨ ist, dass die net. Deshalb wurde das IPSEC Protocol entwickelt und Daten zum Bearbeiten entschlusselt¨ werden mussen,¨ ebenso in RFC4301[21] definiert. Es funktioniert neben der Ver- bei Anderungen.¨ Dies schwacht¨ die komplette Datenver- schlusselung¨ auch zum Aufbau von Virtual Privat Network schlusselung,¨ da Angriffe auf Daten durchgefuhrt¨ werden (VPN) Verbindungen. IPSEC alleine ist ein zustandloses Pro- konnen¨ wahrend¨ sie unverschlusselt¨ sind. Eine Losung¨ fur¨ tokoll weshalb es das ebenfalls zustandlose UDP-Protokoll dieses Problem ist die homomorphic Encryption [16]. Bei nutzt. Der Schlusselaustausch¨ kann nicht selbst durch IPSEC dieser ist es moglich,¨ Operationen mit dem verschlusselten¨ stattfinden daher, wird dieser normalerweise mittels des IKE Text durchzufuhren.¨ Das Ergebnis dieser Operation ist das Protokoll durchgefuhrt.¨ Durch IPSEC ist nicht nur die Ver- selbe wie bei einer Entschlusselung,¨ Bearbeitung und erneuten traulichkeit sichergestellt, sondern durch die Verwendung von Verschlusselung¨ des Textes. Die Daten mussen¨ dabei jedoch zu schlusselabh¨ angigen¨ Hashalgorithmen die Integritat¨ der Daten. keinem Zeitpunkt entschlusselt¨ werden. Es waren bis Juni 09 Das Protokoll ist in zwei Komponenten unterteilt: das Enca- nur eingeschrankte¨ homomorphic Encryption System bekannt, puslated Security Payload (ESP)[22] und den Authentication z.b. ElGamal und unpadded RSA. Bei diesen konnten¨ aber Header (AH)[23]. nur sehr wenige Operationen durchgefuhrt¨ werden. Ein fully ESP ermoglicht¨ die Verschluselung¨ der Nutzdaten (Payload) homomorphic Encryption System wurde im Juni von IBM und sowie die Nutzung von schlusselabh¨ angigen¨ Hashalgorith- Craig Gentry[17] von der Stanford University entwickelt. Es men um die Integritat¨ zu sichern. ESP verschlusselt¨ dabei wird allerdings noch einige Jahre dauern bis dieses System nur wenige Teile des IP-Headers, wodurch eine Nutzung allgemein benutzbar ist. in Routern weiterhin gegeben ist. ESP benotigt¨ allerdings eigene Header welche in den Option-Header des IP-Paketes VIII.KOMMUNIKATIONSVERSCHLUSSELUNG¨ geschrieben werden. Die ESP Definition legt nicht fest welche Kommunikationsverschlusselung¨ ist neben der Datenver- Verschlusselungsalgorithmen¨ oder Hashalgorithmen eingesetzt schlusselung¨ eine sehr wichtige Komponente, da sie die werden konnen.¨ Mogliche¨ Verschlusselungsalgorithmen¨ sind Datensicherheit von “Data-in-Transit” sichert. Dies muss nicht DES im CBC-Modus, Triple-DES, RC5, CAST, IDEA, Blow- nur vom Cloud Service Provider zum Kunden bzw. Inter- fish sowie AES. Als Hashalghorithmen konnen¨ MD5, SHA-1 net geschehen, sondern auch innerhalb des Netzwerks des und RIPEMD-160 verwendet werden. Cloud Service Providers. Wenn der Cloud Service Provider AH sichert den großten¨ Teil des IP-Headers, sowie die Payload keinen solchen Schutz etabliert ist es eventuell durch Kun- vor Veranderungen.¨ Es dient dabei nicht der Verschlusselung¨ deninstanzen moglich¨ Datenverkehr von fremden Kunden des Payload. Es konnen¨ nur die unveranderlichen¨ Teile des mitzuhoren.¨ IP-Headers bei AH berucksichtigt¨ werden, da anderenfalls Datenverschlusselung¨ kann auf den Ebenen 2-4 des ISO- die Prufsummen¨ nicht mehr stimmen wurden.¨ Dies schliesst OSI Referenzsystems stattfinden. Im folgenden werden die z.B. die TTL aus. AH erweitert den IP-Header um eigene moglichen¨ Protokolle anhand ihrer Ebenen beschrieben: Header. Mittels diesen Headern werden die Zuordnungen zum Kontext sowie der Hash ubermittelt.¨ Ebenfalls wie bei ESP A. Layer 2 sieht die RFC-Definition keine konkreten Hash-Algorithmen vor, es konnen¨ allerdings die selben Algorithmen wie bei ESP Layer 2 ist laut OSI-Referenzsystem der Data-Link Layer, verwendet werden. auf ihm wird das Ethernet Protokoll verwendet. Fur¨ diesen Layer ist ein Protokoll verbreitet, das Encryption Control C. Layer 4 Protocol (ECP). Secure Socket Layer (SSL) und Transport Layer Security ECP wurde fur¨ die Verschlusselung¨ von Daten auf Layer (TLS) sind Protokolle welche auf Layer 4 angesiedelt 2 konzipiert und in RFC1968[18] definiert. Es dient der sind. Es sind wahrscheinlich die am weitest verbreiteten Verschlusselung¨ von Daten die mittels Point-to-Point Protocol Verschlusselungsprotokolle.¨ (PPP) ubertragen¨ werden. ECP benotigt¨ zur Kommunika- SSL ist ein kryptografisches Protokoll welches tionsverschlusselung¨ einen vorher ausgetauschten Schlussel.¨ Verschlusselung,¨ Authentifizierung und Integritat¨ ermoglicht.¨ In RFC1968 wird allgemein beschrieben dass in ECP zu- Entgegen der meisten anderen Protokolle wurde SSL nicht von mindest der DES Alghorithmus zur Verschlusselung¨ imple- einer Standardisierungsorganisation entwickelt sondern von mentiert sein muss. Es ist aber auch moglich¨ propiertare¨ der Firma Netscape. Fur¨ SSL ist aussschliesslich die Nutzung Verschlusselungsalgorithmen¨ zu verwenden. RFC2419[19] mit TCP und IP vorgesehen, da SSL ein zustandbehaftetes beschreibt genauere Details wie der DES Alghoritmus in ECP Protkoll ist. SSL verandert¨ wahrend¨ der Kommunikation verwendet wird. RFC2420[20] definiert diese Details fur¨ den nicht die Pakete sondern aggiert als Crypto-Layer zwischen Triple-DES Alghorithmus. dem Layer 5 und dem eigenen Layer 4. Es arbeitet also

18 eigentlich auf einem Sublayer oberhalb von TCP. Ahnlich¨ einheitlicher Zeitpunkt sichergestellt. Es zeigt ebenfalls dass wie die anderen Protokolle auch wird bei SSL nicht ein beide Hosta mindestens eine einfache Authentifizierung fester Algorithmus spezifiert, stattdessen werden die zu mit Zertifikaten benotigen.¨ Mit Ausnahme des eigentlichen verwendenden Algorithmen bei dem Verbindungsaufbau Downloadens des Cryptokey: hier wird eine Multi-Faktor ausgehandelt. Die Spezifikation erlaubt fast die selben Authentifizierung vorrausgesetzt. Diese setzt sich aus einem Algorithmen wie bei IPSEC/ESP. Allerdings unterscheidet Authentifizierungstoken und eine One-Time Password sich SSL zum IPSEC-Protokoll im Schlusselaustausch:¨ hier zusammen. Es ist ebenfalls zu sehen dass der Storage denn kann RSA oder Diffie-Hellmann verwendet werden. SSL Key vor dem verschlusselten¨ Speichern von dem KDC nutzt x.509 Zertifikate wodurch durch Authentifizierung der anfordern muss. Kommunikationspartner sichergestellt wird. TLS wurde durch die IETF in RFC4346[24] standardisiert, X.ZUSAMMENFASSUNG es entspricht im dem SSL-Protokoll. SSL wird zukunfigt¨ nur In dieser Arbeit werden alle Hauptkomponenten und Tech- noch als TLS weiterentwickelt, unter der Fuhrung¨ der IETF. nologien erfasst welche fur¨ die Datenverschlusselung¨ in Cloud Computing benotigt¨ werden. Einige Komponenten ergaben Allgemein ist zu sagen dass auf eine Kommunikationsver- sich bereits aus dem Buch “Cloud Security and Privacy” schlusselung¨ in Cloud Computing nicht zu verzichten ist. sowie dem Paper “Cryptography as as Service”. Daruber¨ So konnte¨ SSL/TLS verwendet werden um SAAS-Dienste hinaus wurden weitere Komponenten identifiziert welche sich anzubieten, oder zur Sicherung der Kommunikation des aus gegebenen Sicherheitskonzepten sowie den Richtlinien Kunden mit der Service-API des Cloud Service Providers. ergeben haben. Es wurde ebenfalls der Ablauf, welcher in Daruber¨ hinaus ist eine Kommunikationsverschlusselung¨ dem Paper von Jeff Stapleton beschrieben ist, um die neu innerhalb der Cloud sowie auch zum Datenaustausch ermittelten Komponenten erweitert. zwischen einer public Cloud und der Kundeninfrastruktur XI.AUSBLICK anzudenken. Hierzu wurde¨ sich IPSEC oder SSL/TLS eigenen, wobei beide im VPN-Tunnel Modus arbeiten In zukunftigen¨ Arbeiten konnen¨ die benotigten¨ Komponen- wurden.¨ ten nochmals uberpr¨ uft,¨ und sofern benotigt,¨ erweitert werden. Hier ist z.B. an Identiy und Access Managment zu denken. IX.ABLAUF Ebenfalls bedarf es einer weiteren Verfeinerung der Ablaufe¨ Der Ablauf orientiert sich an dem in “Cryptography bevor eine Implementierung umsetzbar ist. Inbesondere muss as a Service” [2] (CAAS) Paper veroffentlichen¨ Beispiel eine genauere Identitifizerung von Anforderungen, welche sich der “Content distribution”. Dies beschreibt eine der am aus den Richtlinien ergeben, stattfinden. Hierzu bedarf es einer meisten verwendenten Situationen im Cloud Computing, das Uberpr¨ ufung¨ in Zusammenarbeit mit einem Fachjuristen um Speichern von Daten eines Clients mittels eines Services, alle Anforderungen identifizieren zu konnen¨ und in technische sowie das anschließende Abrufen der Daten von einem und organisatorische Massnahmen umzusetzen. anderen Client. REFERENCES Das Beispiel geht dabei nur auf die Komponenten CA und KDC ein. Diese entsprechen allerdings nicht allen [1] T. Mather, S. Kumaraswamy, and S. Latif, Cloud Security and Privacy An Enterprise Perspective on Risks an Compliance, 1st ed. O’Reilly benotigten¨ Komponenten um das Vertrauen des Kunden Media, Sep. 2009. bzgl. Datensicherheit und Einhaltung von Complaince und [2] J. Stapleton. Cryptography as a service. [On- Governance Regeln zu sichern. Insbesonder sind hierbei nicht line]. Available: http://www.infoassurance.org/Public%20Docs/ISSA Cryptography%20as%20a%20Service.pdf die Komponenten, wie Logging und Time Stamp Authority, [3] P. Mell. Effectively and securely using the cloud computing paradigm. die fur¨ Complaince wichtig sind berucksichtigt.¨ Die CA wurde [Online]. Available: http://csrc.nist.gov/groups/SNS/cloud-computing/ bei dem erweiterten Ablauf nicht weiter beachtet, wobei das in cloud-computing-v26.ppt [4] D. Catteddu, G. Hogben et al. (2009, Nov.) Cloud Computing: Kapitel V-B beschriebene Konstrukt aus kundenspezifischen Benefits, risks and recommendations for informations security. Intermediate-CA’s angenommen wird. Das Austellen von European Network and Information Security Agency. [On- Zertifikaten ubernimmt¨ die CA im vorhinein. Daruber¨ hinaus line]. Available: http://www.enisa.europa.eu/act/rm/files/deliverables/ cloud-computing-risk-assessment/at download/fullReport stellt die CA auch wahrend¨ des Ablauf ihrer Wiederrufslisten [5] (2008, Oct.) PCI Datensicherheitsstandard. PCI Security Standards zu Verfugung¨ um den Status der Zertifikate zu prufen.¨ Council. [Online]. Available: https://www.pcisecuritystandards.org/pdfs/ Der Ablauf aus dem CAAS-Paper und die beschriebenen pci dss german.pdf [6] T. Feil. (2009, Jul.) Datenschutzrechtliche aspekte des “cloud- Erweiterungen sind in dem Sequenzdiagramm (Abbildung 3) computing”. [Online]. Available: http://it-vergabe-blog.de/vergaberecht/ zusammengeflossen. datenschutz-cloud-computing [7] Bundesdatenschutzgesetz. [Online]. Available: http://bundesrecht.juris. de/bundesrecht/bdsg 1990/gesamt.pdf Der Ablauf zeigt dass sehr viele Schritte von dem [8] Richtlinie 2002/58/eg des europaischen¨ parlaments und des rates vom Gesamtablauf geloggt werden. Doch bevor sie in der 12. juli 2002 uber¨ die verarbeitung personenbezogener daten und Loggingkomponenten gespeichert und eventuell ausgewertet den schutz der privatsphare¨ in der elektronischen kommunikation (datenschutzrichtlinie fur¨ elektronische kommunikation). [Online]. werden mussen¨ sie mit einem Time Stamp Token versehen Available: http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ: werden. Dadurch wird die Integritat¨ der Daten sowie ein L:2002:201:0037:0047:DE:PDF

19 [9] C. Lammers, “Revisionssicheres Logging von Systemen und Anwendun- gen und deren Auswertung,” Bachelor’s Thesis, Hochschule Furtwangen, Dec. 2008. [10] K. Schmeh, Kryptografie Verfahren, Protokolle, Infrastrukturen, 3rd ed. dpunkt-Verl. Heidelberg, 2007. [11] D. Cooper, S. Santesson, S. Farrell, S. Boeyen, R. Housley, and W. Polk, “Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile,” RFC 5280 (Proposed Standard), Internet Engineering Task Force, May 2008. [Online]. Available: http://www.ietf.org/rfc/rfc5280.txt [12] W. E. Burr, D. F. Dodson, and W. T. Polk. Nist special publication 800-63. [Online]. Available: http://csrc.nist.gov/publications/nistpubs/ 800-63/SP800-63V1 0 2.pdf [13] (2009, Apr.) Zertifizierungsrichtlinie der dfn-pki v2.2. [Online]. Available: http://www.pki.dfn.de/fileadmin/PKI/DFN-PKI CP v22.pdf [14] M. Myers, R. Ankney, A. Malpani, S. Galperin, and C. Adams, “X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP,” RFC 2560 (Proposed Standard), Internet Engineering Task Force, Jun. 1999. [Online]. Available: http://www.ietf.org/rfc/rfc2560.txt [15] (2007, Mar.) Recommendation for key management – part 1: General (revised). [Online]. Available: http://csrc.nist.gov/publications/nistpubs/ 800-57/sp800-57-Part1-revised2 Mar08-2007.pdf [16] C. Gentry, “Fully homomorphic encryption using ideal lattices,” in STOC ’09: Proceedings of the 41st annual ACM symposium on Theory of computing. New York, NY, USA: ACM, 2009, pp. 169–178. [17] ——. (2009, Sep.) A fully homomorphic encryption scheme. [Online]. Available: http://crypto.stanford.edu/craig/craig-thesis.pdf [18] G. Meyer, “The PPP Encryption Control Protocol (ECP),” RFC 1968 (Proposed Standard), Internet Engineering Task Force, Jun. 1996. [Online]. Available: http://www.ietf.org/rfc/rfc1968.txt [19] K. Sklower and G. Meyer, “The PPP DES Encryption Protocol, Version 2 (DESE-bis),” RFC 2419 (Proposed Standard), Internet Engineering Task Force, Sep. 1998. [Online]. Available: http: //www.ietf.org/rfc/rfc2419.txt [20] H. Kummert, “The PPP Triple-DES Encryption Protocol (3DESE),” RFC 2420 (Proposed Standard), Internet Engineering Task Force, Sep. 1998. [Online]. Available: http://www.ietf.org/rfc/rfc2420.txt [21] S. Kent and K. Seo, “Security Architecture for the Internet Protocol,” RFC 4301 (Proposed Standard), Internet Engineering Task Force, Dec. 2005. [Online]. Available: http://www.ietf.org/rfc/rfc4301.txt [22] S. Kent, “IP Encapsulating Security Payload (ESP),” RFC 4303 (Proposed Standard), Internet Engineering Task Force, Dec. 2005. [Online]. Available: http://www.ietf.org/rfc/rfc4303.txt [23] ——, “IP Authentication Header,” RFC 4302 (Proposed Standard), Internet Engineering Task Force, Dec. 2005. [Online]. Available: http://www.ietf.org/rfc/rfc4302.txt [24] T. Dierks and E. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.1,” RFC 4346 (Proposed Standard), Internet Engineering Task Force, Apr. 2006, obsoleted by RFC 5246, updated by RFCs 4366, 4680, 4681. [Online]. Available: http://www.ietf.org/rfc/rfc4346.txt [25] D. Davis. (1996, Jul.) Compliance Defects in Public-Key Cryptography. USENIX Association. [Online]. Available: https://www.usenix.org/ publications/library/proceedings/sec96/full papers/davis/davis.ps [26] (2009, Apr.) Security Guidance for Critical Areas of Focus in Cloud Computing. [Online]. Available: http://www.cloudsecurityalliance.org/ guidance/csaguide.pdf [27] C. Adams, P. Cain, D. Pinkas, and R. Zuccherato, “Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP),” RFC 3161 (Proposed Standard), Internet Engineering Task Force, Aug. 2001. [Online]. Available: http://www.ietf.org/rfc/rfc3161.txt [28] K. Lauter and S. Kamara. (2009) Cryptographic Cloud Storage. [Online]. Available: http://research.microsoft.com/en-us/people/klauter/ cryptostoragerlcps.pdf [29] S. Altendorfer and B. Wagner, “Cloud computing rechtliche aspekte,” Universitat¨ Salzburg, Tech. Rep., Jan. 2009. [Online]. Available: http://embeddedcmmi.at/fileadmin/src/docs/teaching/WS08/ SaI/Altendorfer Wagner paper.pdf [30] C. Baun, M. Kunze, J. Nimis, and S. Tai, Cloud Computing Web-basierte dynamische IT-Services, ser. Informatik im Fokus Informatik im Fokus, P. D. O. Gunther,¨ P. D. W. Karl, P. D. R. Lienhart, and P. D. K. Zeppenfeld, Eds. Springer-Verlag, 2010. [31] (2006, Sep.) Guidelines for media sanitization. [Online]. Available: http: //csrc.nist.gov/publications/nistpubs/800-88/NISTSP800-88 rev1.pdf

20 Host 1 Service 1 KDC Storage TSA Logging

Zertifikatsauthentifizierung

loggen der Authentifizierung Logdaten signieren

loggen

registriert eines one-Time Data Key

Zertifikateaustausch

Transport Key austausch

upload Message

loggen des Datenuploads Logdaten signieren loggen

Data-Key downloaden

loggen des Key downloads Logdaten signieren loggen

Daten verschlüsselt speichen

loggen des Data speichen Logdaten signieren loggen Host 2

Zertifikatsauthentifizierung

loggen der Authentifizierung Logdaten signieren Zertifikatsaustausch loggen

download enc. Data Generierung Auth.-Token loggen des Datendownloads Logdaten signieren Registieren des Auth.-Token + OTP loggen

loggen der Authentifizierung und OTP registierung Logdaten signieren loggen

downloaden OTP Zertifikatsauthentifizierung + Auth. mittels OTP

loggen der Two-Faktor Authentifizierung Logdaten signieren loggen

senden des one-Time Data Key

loggen das senden eine one-Time Data Keys Logdaten signieren loggen

Entschlüssen der Daten,

Fig. 3. Sequenzablaufdiagramm des Szenarios “Content distribution” Quelle: eigene Darstellung

21

Metascheduling und Loadbalancing in einem heterogenen Cloud- und Gridenvironment

Sebastian Schauer Fakultät für Informatik Hochschule Furtwangen 78120 Furtwangen, Deutschland Email: [email protected]

Abstract—Für die Berechnung von rechenintensiven Anwen- Load Balancing Systems ist eine Reduzierung des Benötigten dungen werden immer mehr Auslagerungsmöglichkeiten geschaf- Stromverbrauchs fen. Neben der Möglichkeit solche Aufgaben in einem lokalen der Bearbeitung von rechenintensiven Aufgaben kann es Netzwerk unter zu Zuhilfenahme anderer Rechner zu lösen, teilweise notwendig sein, diese in kürzerer Zeit abzuschließen, besteht die Möglichkeit Aufgaben von einem externen Dienstleis- ter berechnen zu lassen. als dies auf dem aktuellen Rechner allein möglich ist. Um In diesem Dokument wird die Fragestellung behandelt, ob dieses Problem zu lösen, ist der Einsatz eines Desktop-Grids es sinnvoll und effizient ist, ein bestehendes lokales Desktop- möglich. Doch auch ein lokales Desktop-Grid stößt irgend- Grid System, hier Condor, um Knoten in einem Amazon EC2 wann an seine Grenzen. Um also die Spitzenlast eines solchen System zu erweitern. Um diese Frage zu beantworten müssen Systems zu decken, wäre eine zweite Option denkbar: Die Überlegungen gemacht werden, welche entscheidenden Faktoren eine Rolle spielen, ab wann also Condor-Knoten in Amazon EC2 Erweiterung durch ein kommerzielles System wie Amazon sinnvoll sind. EC2. Im Zuge der Überlegungen entstand die Konzeptidee für das B. Abgrenzung System um ein Grid dynamische Verwalten zu können. Dieses System soll bei Bedarf das Desktop-Grid um weitere Knoten in Es werden in dieser Arbeit ausschließlich die Eigenschaften Amazon EC2 für die Berechnung erweitern. Weiterhin soll es Scheduling und Load Balancing in Grid- und Cloudenviron- die Verwaltung von Jobs, den dafür notwendigen Nutzdaten und ments behandelt. den Ergebnissen der Jobs ermöglichen. Für das Metasystem wird ausschließlich auf das Meta- Index Terms—Cloud-Computing, Grid-Computing, Condor, OpenNebula, Metascheduler, Load Balancer konzept für ein Schedulingssystem eingegangen. Dieses Sys- tem Arbeitet auf einer weiteren Abstraktionsschicht. Es wer- den für das Scheduling keine neuen Algorithmen entwickelt I. EINLEITUNG sonder nur eine Kombination der vorhandenen Algorithmen A. Problembeschreibung mit einander kombiniert um ein adaptives Schedulingkonzept entwickeln zu können. Das Scheduling baut auf den bisher Im Anschluss an das Modul der Master Vorlesung Ad- entwickelten Algorithmen. vanced Middleware hat sich ergebenen das weiterer For- schungsaufwand betrieben werden muss um das Thema des C. Zielsetzung Hybriden Grids und einer dynamischen Erweiterung eines Im Rahmen der zwei Master Thesen soll ermittelt werden herkömmlichen Gridsystems auf eine Cloud weiter verfeinern wie sich ein Rechenintensives Problem effektiv zu geordnet zu können. Für die weitere Forschung wurde das Problem auf und verteilt werden kann. Für die Lösung der Aufgabe müs- zwei Thesis Themen aufgeteilt die in einer engen Beziehung sen vorhandene Ansätze analysiert werden und ein Konzept zu einander stehen aber unabhängig von einander bearbeitet erstellt werden für das verteilte Rechen in einem heterogenen werden können. Diese beiden Themen befassen sich mit dem Ressourcen Umfeld aus Cloud und Grid Ressourcen. Scheduling auf Applikationsebene und dem Load Balancing Für das Scheduling in einem heterogenen Ressourcen Um- auf Hardware naher Ebene. feld soll ein Metascheduler erstellt werden um das Scheduling Es ist notwendig für die Verarbeitung von Rechenintensi- über diese Ressourcen zu ermöglichen der Metascheduler ven Jobs ein System zu entwerfen, welches ein heterogenes muss verschiedene Schedulingalgorithmen unterstützen und Ressourcensystem unterstützt. Es muss das Scheduling auf diese dynamische auswählen können während des laufenden einer Anwendung näheren Ebene vorgenommen werden und Schedulingbetriebs. auf der direkten Hardwareebene das Load Balancing zwischen Ressourcen lassen sich allerdings nicht direkt in ein sol- einzelnen Computerknoten. Für die Berechnung der Jobs muss ches Metasystem einbinden. In einer Cloud Ressource muss das Condor Gridsystem verwendet werden. Die anzubindenden ein Load Balancer und Metamonitoring Funktionen integriert Ressourcen setzen sich aus vorhandenen Private Clouds und werden. Diese Komponenten übernehmen die Steuerung aller Public Cloud Anbietern zusammen. Des Weiteren muss das Funktionen wie starten von Instanzen und der Lastausgleich System Condor als Gridsystem einsetzen. Die Zielsetzung des zwischen den Instanzen.

23 II. GRUNDLAGEN D. Cloud-Computing Innerhalb dieses Dokumentes werden unterschiedliche Cloud Computing bezeichnet ein Teilgebiet der Informatik Technologien erwähnt. Um einen einheitlichen Stand des Ver- und beschreibt ein IaaS System. Eine Cloud bietet die Mög- ständnisses zu erreichen werden diese im Folgenden genauer lichkeit unterschiedliche Ressourcen zu verwenden. allerdings erklärt. lassen sich in der Cloud neben einfachen Instanzen für die direkte Verwendung weitere Ressourcen betreiben wie ein A. Condor komplettes Computing Grid mit Condor Worker Knoten. Condor[13] iist ein Workload-Management-System für re- Cloud Computings ist vereinfacht gesagt das betreiben chenintensive Aufgaben. Wie andere Batch-Systeme, bie- eines Gridsystems innerhalb einer Cloud und diese wird dann tet Condor einen Job-Queueing Mechanismus, eine Sche- als Gridressource für die Ausführung von Rechenintensiven duling Policy, Prioritätsnutzung, Ressourcen-Monitoring und Aufgaben verwendet. Ressourcen-Management. E. OpenNebula Benutzer schicken ihre seriellen oder parallelen Jobs an OpenNebula ist ein Opensource Cloud Environment. Es Condor, Condor platziert diese in einer Queue, entscheidet bietet volle Funktionalität für das verwalten von Ressourcen, anhand von Policies wann und wo die Jobs ausgeführt werden, welche unterschiedliche Computer sein können auf denen überwacht deren Fortschritt und informiert schließlich den Virtuallesierungsdienste laufen müssen, verwenden kann. Die Benutzer nach der Beendigung. Ein beispielhaftes Condor- Instanzenverwaltung kann des Weiteren mittels Web-Service Grid ist in Abbildung 1zu sehen. Schnittstelle erfolgen. Das Schedulingkonzept welches in OpenNebula zum Ein- satz kommt ist allerdings nicht sehr ausgereicht. F. Hybrides Grid Ein Hybrid-Grid ist ein Verbund aus unterschiedlichen Gridsystemen. Die Ausführung der komplexen Aufgaben wird hierbei nicht auf einem homogenen Grid ausgeführt, wie z.B. einem reinen lokalen Condor-Grid, sondern im Rahmen dieser Arbeit aus einer Mischung aus einem lokalen und einem externen Grid in der Amazon EC2 Cloud. G. Infrastructure as a Service (IaaS) Infrastructure as a Service (IaaS) ist ein Geschäftsmodell welches hauptsächlich im Bereich von Clouddienstanbietern anzutreffen ist. Diese Dienstanbieter bieten die Möglichkeit Abbildung 1. Lokales Condor-Grid mit einem separaten Condor-Master einen Server zu starten und diesen zu verwenden. Die Vorteile eines solchen Systems sind es lassen sich un- B. Amazon EC2 terschiedliche Systeme in der Cloud verwenden. Somit müssen für exotische Systeme keine kostenintensiven Infrastrukturen Amazon Elastic Compute Cloud (Amazon EC2)[?] ist ein in Betrieb gehalten werden. Web Service, der von Amazon angeboten wird und Rechen- Bei der Verwendung von IaaS Diensten werden nur die leistung in der Amazon Cloud zur Verfügung stellt. Ziel bei Ressourcen Bezahlt, welche tatsächlich verwendet werden. Es der Entwicklung von Amazon EC2 war es, Web basiertes ist möglich das System bei plötzlich auftretenden Mehrbedarf skalierbares Rechnen für Entwickler einfacher anzubieten. dynamisch zu erweitern. Amazon EC2 stellt eine virtuelle Rechenumgebung dar, über die verschiedene OS-Instanzen gestartet werden können. H. Meta-System In diese können dann Applikationsumgebungen geladen und Ein Metasystem ist ein System mit weiteren Metaeigen- nötige Netzwerkberechtigungen vergeben werden. schaften. Das Metasystem beschreibt eine weitere Abstrak- tionsebene zwischen den Benutzer und der Ressource als C. Grid-Computing solches. Grid-Computing ist eine Art des verteilten Rechnens. Es Im Folgenden wird ein Konzept für eine Metasystem Dar- beschreibt eine Form des Supercomputings mit einem hetero- gestellt um die in Kapitel IV auf der nächsten Seite gegebenen genen Netzwerk aus vielen einzelnen Computern. Für diese Anforderungen an ein solches System umsetzen kann. Das Form des verteilten Rechnens muss auf jedem Computer, Meta-System, welches hier beschrieben wird ist eine Speziali- welcher in das Grid eingebunden ist eine Komponente einer sierung. Es handelt sich um ein Metascheduler. Dieses System Gridsoftware laufen ein Agent oder Worker Knoten. Dieser beschreibt im Grund ein Ressourcen Distributionssystem für übernimmt alle Aufgaben die ihm von dem Gridverwalter die Zuordnung von Aufträgen zu den einzelnen Metaressour- übergeben wurden. cen.

24 I. Load Balancing einmal zu geordnet werden, dies ist ein Rescheduling Load Balancing beschreibt die Verteilung von Lasten zwi- Vorgang. schen mit einander verbundenen Ressourcen. 5) Rechtemanagement: Ein System zur komplexen Res- Es gibt viele unterschiedliche Arten von Load Balancing. sourcen und Job Verwaltung muss des weiteren ein Das Load Balancing verfolgt ähnliche Ziele wie das Schedu- Rechtesystem für die Benutzersteuerung zur Verfügung ling von Jobs. stellen. Es lässt sich nach Siegell wie folgt definieren. Load Ba- B. Design lancing ist eine Methode um eine Applikation währende der Laufzeit, zur Verbesserung der Laufzeit zu reduzieren [10]. 1) Gridsystem: Für die Gridkomponente des Systems muss das Condor-Gridsystem verwendet werden. Es liegt in III. ANALYSE der Apache Lizenz Version 2.0[29] vor. Es kann mit Das geschilderte Problem beschreibt eine Situation in der vielen alternativen Gridsystemen kooperieren. Es un- unterschiedliche Ressourcen zu einem verteilten System zu- terstützt eine große Zahl von Betriebssystemen und sammengefasst werden. Wie geschildert ist die Zusammenset- lässt sich effektiv auf Cloudinstanzen betreiben. Condor zung heterogen es können Ressourcen aus Grid und Cloud befindet sich in permanenter Weiterentwicklung der Uni- Systemen bestehen. Es muss allerdings kein unterschied der versity of Wisconsin-Madison, WI. Ein umfangreicher Technologien vorliegen bereits eine Divergenz in der Konfigu- Test von Condor im Vergleich mit anderen Dokumenten ration von zwei Condorsystemen kann zu einer Inkompatibi- wurde bereits in der Hochschulsschrift[14]. lität zwischen den beiden Systemen führen. Zu dem muss die 2) Komponentenarchitektur: Alle Systemkomponenten Frage geklärt werden wie sich eine Cloudressource integrieren müssen als eigenständige Komponenten gekapselt lässt. Bei Cloudressourcen sind weitere Schritte notwendig, werden. wie das verwalten der unterschiedlichen Instanzen. 3) Kommunikation: Zwischen den Komponenten muss die Dieses Problem erfordert ein System zur Verwaltung, wel- Kommunikation so gering wie möglich ausfallen um das ches nicht direkt in einer Ressource integriert ist es muss Netzwerk nicht zu überlasten. Für alle wichtigen Er- in einer anderen Form vorliegen, um das eine Verwalten eignisse innerhalb des Systems müssen genau definierte sicherzustellen. Diese Form lässt sich als weitere Abstraktions- Nachrichten verwendet werden. schicht zwischen dem Benutzer und der Ressourcensammlung 4) Nachrichten: Es müssen genau definierte Nachrichten sehen. Für ein solches System müssen Anforderungen definiert festgelegt werden für den Nachrichtenaustausch zwi- werden um festlegen zu können welche Funktionen, dass schen den Komponenten, Benutzter und den Ressourcen. System anbieten muss. 5) Events: Für alle Fehler oder Warnungen müssen Events übermittelt werden. Bei einem Fehler in der Ressource A. Funktional muss die Ressource dieses als Event dem System mit- 1) Jobmanagement: Das Jobmanagement verwaltet alle not- teilen. wendigen Funktionen die sich mit der Jobspeicherung 6) Ressourcen Unabhängigkeit: Das System muss mit al- und Verwaltung befassen. Um einen Job genauer ein- len Ressourcen funktionieren. Die Ressourcen müssen ordnen zu können muss eine Komplexitätsbewertung des gekapselt werden um eine Integration in das System Jobs vor seiner Ausführung erfolgen. Diese Informatio- möglich zu machen. nen sind für das Scheduling notwendig. 2) Ressourcenmanagement: Es muss ein Verwaltungssys- C. nicht Funktional tem vorhanden sein um Ressourcen, welche von dem 1) Zuverlässigkeit: Das Metasystem muss immer die vor- System genutzt werden sollen verwalten zu können. handenen Aufgaben bearbeiten und darf keinen Job nicht Weitere Aufgaben des Ressourcenmanagements sind die ausführen. Es muss immer möglich sein ein Ergebnis zu Überprüfung und Kontrolle von Jobs. erhalten von diesem System. Die Ausfallquote darf nicht 3) Vertragsmanagement: Um dem Benutzer eine weitrei- 95% der Gesamten Betriebszeit unterschreiten. chende Kontrolle über die Ausführung seiner Jobs oder 2) Verfügbarkeit: Das System muss über den geplanten eines konkreten Jobs möglich zu machen, muss ein Zeitraum 98% der zeit Verfügbar sein. Vertagsmanagementsystem vorhanden sein um Verträge zu einem Benutzer und zu einzelnen Jobs festlegen und IV. METASYSTEM modifizieren zu können. 4) Scheduling: Wenn Jobs in das System übertragen wer- A. Idee den müssen die Jobs auch zu vorhandenen Ressourcen Das Problem der Ressourcenanbindung und der Nutzung zugeordnet werden können. Das Scheduling muss eine von unterschiedlichen Technologien innerhalb des gesamten dynamische Anpassung an vorhandene Ressourcen und Gridsystems lässt nur einen Schluss zu. Dieses Problem lässt das Jobgefüge ermöglichen. Wenn ein Job auf einer Res- sich nur mit einer weiteren Abstraktionsebene lösen. Diese source nicht ausgeführt werden kann oder die vorgaben Metaebene sollte zwischen dem Benutzer und den Ressourcen nicht eingehalten werden können muss der Job noch untergebracht werden.

25 ,--*./$#.01

2"1)#3"+.1#"+4$&" !"#$%&'"()*"+

:"%%0)+&"1 6"+#+$7% :"&'#" ;0<=$1$7"+ !$1$7"+ !$1$7"+ !$1$7"+

:"%%0)+&"1 6"+#+$7% 5&'"()*"+

89&'#"+ 89&'#"+ !"#$%&'"()*"+

:"%%0)+&"1

>0==)1./$#.01% >0==)1./$#.01% >0==)1./$#.01% ?1#"+4$&" ?1#"+4$&" ?1#"+4$&"

@0$( !"#$ @0$( !"#$ @0$( !"#$ 2$*$1&"+ !01.#0+ 2$*$1&"+ !01.#0+ 2$*$1&"+ !01.#0+

:"%%0)+&"1 :"%%0)+&"1 :"%%0)+&"1 A011"�+ A011"�+ A011"�+

E+.G$#"BA*0)( @0/$*"%BA01(0+ ,=$301BCAD H-"1I"<)*$ F+.( E)<*.&BA*0)(

?1%#$1&" ?1%#$1&" ?1%#$1&" ?1%#$1&" ?1%#$1&" ?1%#$1&" 80+/"+ !$%#"+ 80+/"+ 80+/"+ 80+/"+ !$%#"+

?1%#$1&" ?1%#$1&" ?1%#$1&" ?1%#$1&" ?1%#$1&" ?1%#$1&" 80+/"+ 80+/"+ 80+/"+ 80+/"+ 80+/"+ 80+/"+

?1%#$1&" ?1%#$1&" ?1%#$1&" ?1%#$1&" ?1%#$1&" ?1%#$1&" 80+/"+ 80+/"+ 80+/"+ 80+/"+ 80+/"+ 80+/"+

!"#$+"%%0)+&" !"#$+"%%0)+&" !"#$+"%%0)+&"

Abbildung 2. Komplettes Meta-System mit detailansicht der Komponenten.

Diese Abstraktionsebene wird im weiteren Metasystem ge- der Literatur wurden bisher einige verfahren zur Verwaltung nannt. Mit einem weiteren Meta-System und lösung dieses Problems erörtert. Einige der Metasysteme Die Idee des Metasystems ist allerdings kein neuer Ansatz befassen sich mit der Verwaltung und dem Scheduling in zur Lösung von ähnlichen Problemen mit der Verwendung einem Grid Umfeld.[[5], [32], [15], [17], [21], [31]. von unterschiedlichen Ressourcen unter einem Dach als ver- teiltes System. Das auf der Abbildung 2 zu sehende System beschreibt das komplette Metasystem mit allen Komponenten, Diese Arbeiten bieten eine Idee für die Umsetzung eines welche wichtig sind um das Metasystem effektiv gestalten zu Metasystems für die ausschließliche Nutzung mit Gridsys- können. temen allerdings wird in keinem der Systeme ein verteiltes Für die Verwaltung einer heterogenen Ressourcengruppe System beschrieben, dass es erlaubt Ressourcen aus dem wurden bereits einige Ansätze geschaffen. Da dieses Problem Cloud wie aus dem Grid Umfeld anbindet und vollständig nicht nur im Bereich des Gridcomputings anzutreffen ist. In unabhängig voneinander verwenden zu können.

26 B. Metascheduler n m dx rx dy ry + +(tla + tlw) < (tea + tew)+ + Ein Metasystem ist allerdings eine Beschreibung eines elu gld ieu jed x=1 ￿ ￿ y=1￿ ￿ generischen Konzeptes, welches Funktionen und Ressourcen ￿ ￿ Nutzung Abstrahiert. Gegenüberstellung der Zeiten. Der Metascheduler ist eine konkrete Form des Metasystem Wenn Gesamtzeit kleiner als Gesamtzeit • LOKAL EC2 es werden mit einem Metascheduler Scheduling Vorgänge –> Benutze lokale Knoten ausgeführt die notwendig sind um Metajobs entgegen zu neh- Wenn Gesamtzeit kleiner als Gesamtzeit • EC2 LOKAL men und diese in einem weiteren Schritt den untergeordneten –> Benutze EC2 Knoten Ressourcen zu zuordnen zur Ausführung. Eine Frage die noch zu klären ist, wie lässt sich eine Wie in der Formel zu sehen ist beschreibt die linke Seite Bedingung einhalten die einen genauen Endtermin vorgibt der Formel den lokalen Teil und der Rechte Teil den Remote wenn nicht ausreichend Ressourcen zur Verfügung stehen. teil um eine Entscheidung finden zu können. Die Formel Wenn die vorhandenen Ressourcen nicht mehr ausreichend wird in dem Dokument von S.Schauer und J.Krause genauer sind um die Jobs in der Warteschlange in ausreichender Zeit beschrieben[24]. abzuarbeiten muss das Metasystem erweitert werden. Diese Anhand dieser Formel kann über den Zeitfaktor ermittelt Erweiterung ist mit der Unterstützung eines Public Cloud werden, ob und wann sich eine Auslagerung von Jobs nach Anbieters wie Amazon EC2 möglich. Amazon EC2 lohnt. Für eine lokale Ausführung muss die 1) virtuelle Ressourcen: Bei einer virtuellen Ressource Gesamtzeit auf der lokalen Seite kleiner sein, als auf der stellt sich immer die Frage ob eine Auslagerung auf einen externen Seite. Mit den Zetifaktoren, welche als Ergebnis der externen kostenpflichtigen Service notwendig ist. beiden Seiten entstehen lässt sich eine Aussage Treffen wann Die Auslagerung ist stark abhängig vom Szenario. Handelt eine Auslagerung in eine Public Cloud wie Amazon EC2 es sich um sicherheitskritische Jobs ist es vielleicht wün- sinnvoll ist. schenswert, diese nur lokal zu bearbeiten. Spielt die Zeit eine große Rolle und ist das lokale Grid bereits am Maximum D. Metaressource sollte nach EC2 ausgelagert werden. Wobei der Kostenfaktor natürlich nicht außer Acht gelassen werden darf, da Amazon Eine Metaressource ist in dem hier verwendeten Kontext EC2 Instanzen stundenweise abgerechnet werden. nicht nur eine einfache Ressource. Es werden weitere Funk- tionen dieser Ressource hinzugefügt. Bei der Auslagerung von Condor-Knoten auf virtuelle Ma- Jede Metaressource abstrahiert die darunter liegenden Res- schinen in Amazon EC2 ist der Zeitfaktor aber wohl einer source und fügt ein einheitliches Kommunikationsinterface der ausschlaggebenden bei der Entscheidung: Auslagern ja hinzu und ermöglicht die Überwachungsfunktionen aller Funk- oder nein. Ob eine Auslagerung notwendig ist lässt sich mit tionen und Ereignisse der Ressource. Diese Ressourcen kön- einer Formel ermitteln. Diese Formel wird in Abschnitt IV-C nen in Kategorien unterteilt werden. Diese Kategorien werden beschrieben. im Folgenden beschrieben. Die statischen Ressourcen sind • Statische Ressourcen: alle fest installierten Ressourcen wie z.B. ein lokales C. Formel Condor Grid aus fünf Knoten mit einem Condor Master Knoten für die Verwaltung des Gridsystems. Eine Stati- Wie bereits erwähnt, werden die lokale und die externe sche Ressource beschreibt ein herkömmliches Gridsystem Bearbeitungszeit für einen Job verglichen und anhand derer wie es ein dediziertes Condor Computing Grid ist. die Entscheidung für oder gegen eine Auslagerung getroffen. Dynamische Ressourcen ver- • Dynamische Ressourcen: Lokale Seite: Die lokale Seite links beschreibt ein lokales1 wenden immer dynamisch festzulegende Komponenten Condor Grid System. Dieses Grid ist mit einem LAN ver- und Ressourcenfragmente. In einer Private Cloud mit bunden und es befinden sich alle Condor-Knoten auf einem OpenNebula wird solange diese Private Cloud mit dem eigenen dedizierten Rechner. Meta-System verbunden ist eine feste Anzahl von In- Externe Seite: Die externe Seite rechts beschreibt ein stanzen in Betrieb gehalten um dem System eine fest Condor-Grid, das in einer externen2 Umgebung installiert ist, Anzahl an Ressourcen zur Verfügung zu stellen. In jeder hier Amazon EC2. Instanz wird ein Condor Worker Knoten betrieben. Die Verwaltung des gestarteten Gridsystems wird ein eigener Condor Master betrieben. Allerdings lassen sich weitere 1Mit einem lokalen Grid ist ein Grid gemeint, das sich in demselben Instanzen mit Condor Worker Knoten starten um die Gebäudekomplex befindet. gesamt Leistung der Knoten zu erhöhen. 2Ein externes System ist ein System, welches sich nicht innerhalb der Diese virtuelle Ressource setzt sich lokalen Umgebung befindet, also über eine gewisse Entfernung zu dem lokalen • Virtuelle Ressource: System steht. hauptsächlich aus Komponenten zusammen wie sie in

27 bei den anderen beiden Ressourcenkategorien zum Ein- Bearbeitung und Ausführungen eines Metajobs innerhalb eines satz kommen. Bei der virtuellen Ressource werden als Jobs gespeichert. Besonderheit allerdings keine Instanzen einer Cloud vor- gehalten oder Rechner im ständigen bereitschaftsbetrieb V. A DAPTIVER SCHEDULER gehalten. Bei Verwendung einer Public Cloud wie z.B. A. adaptiver Metascheduler Amazon EC2[4] ist es des Weiteren wenig sinnvoll stän- Ein adaptiver Metascheduler ist ein Scheduler, welcher sich dig Instanzen in betrieb zu halten und somit permanent an veränderte Rahmenbedingungen dynamisch während des Kosten zu verursachen. Eine solche Public Cloud wird Betriebs anpassen kann. Dies bedeutet das für das Scheduling nur verwendet wenn die vorhandenen Ressourcen der von allen in ein Scheduling Vorgang involvierten Kompo- Kategorien statische und dynamischen nicht ausreichen nenten Informationen beschafft werden müssen. Ein adapti- um die an das Meta-System gesendeten Aufgaben zu ves Scheduling Verfahren wurde bereits für das Scheduling erfüllen. von dynamischen Jobs auf dynamische Ausfürhungsknoten 1) Load Balancer: Der Load Balancer übernimmt auf der beschrieben[3]. Metaressourcen Ebene die Funktionen eines typischen Load An Hand dieser Statusinformationen muss der Scheduler Balancers wie in der Arbeit von B. Yagoubi und Y. Slimani entscheiden wie das Scheduling in Zukunft vorgenommen in ihrer Arbeit beschrieben[7]. werden muss. a) statisches Load Balancing: Statisches Load Balancing Um das Scheduling effektiv vornehmen zu müssen sind beschreibt das direkte zuweisen von Last auf Ressourcen einige Parameter notwendig um das Scheduling zu verbessern. mit vorher definierten Kriterien. Diese Kriterien sind vorher Ressourcen Kapazität: Ist in der Ressource genügend definiert und hängen nicht von Informationen, welche während • der Laufzeit nicht aktualisiert werden oder von Informationen Kapazität verfügbar, wie Festplattenspeicherplatz, CPU aus den Ressourcen abhängen[26]. und Hauptspeicher, um den Metajob Vertragssicher aus- Das bekannteste statische Verfahren ist das einfache Round zuführen. Wartezeit: Hiermit wird die Zeit repräsentiert die ein Robin Verfahren. Die statischen Algorithmen setzen allerdings • voraus das die Last von den Applikation sich in einem engen Metajob in der Metaressource in der Warteschlange auf Rahmen bewegt und immer ähnlich ist. seine Ausführung warten muss. Netzwerk: Wie viel Bandbreite ist für die Metajobüber- b) dynamisches Loadbalancing: Mit dynamischen Load • Balancing werden Algorithmen beschrieben die während der tragung verfügbar und die vorherrschende Latenz in dem Laufzeit des Systems Informationen sammeln und anhand Netzwerk. minimaler Ressourcenaufenthalt:Wie lange haben sich dieser Informationen die Last auf die Ressourcen verteilen[27]. • Mit den dynamischen Algorithmen können Applikationen vorhergehende Metajobs in dieser Ressource aufgehalten. Robustheit: Wie häufig wurde ein Metajob von dieser verteilt werden die unterschiedliche Ausführzeiten haben. Die • dynamischen Algorithmen erlauben eine direkte Anpassung Ressource abgelehnt und wie häufig trat bei der konkreten des Algorithmus an die aktuelle Situation auf der Ressource Ausführung ein Fehler auf und ein Rescheduling Vorgang und der Applikationen. für den Job war notwendig. Load Balancer übernimmt in einer Metaressource die auf- B. Schedulingalgorithmus Anpassung gaben der direkten Hardwareüberwachung und Last Verteilung auf die Hardwarekomponenten in einer Metaressource. Es Ein Metaschedulingsystem unterscheidet wie ein Load Ba- werden bei Cloud Ressourcen Instanzen gestartet oder bei lancing System zwischen dynamischen und statischen Schedu- dedizierten Computern mittels „Wake on Lan“ die Computer lingalgorithmen. Welcher Algorithmus eingesetzt werden soll Herunter- oder Hochgefahren bei Bedarf. ist von der Situation abhängig. Schedulingalgorithmen wurden 2) GreenIT: Unter dem Begriff GreenIT lässt sich zu- schon sehr häufig erklärt[2], [1], [9], [18], [28], [20], [6], [12], sammenfassend sagen, dass alle Aktionen um die Effizienz [16], [25], [11], [8], [30]. zu steigern und Energie einzusparen im Bereich der IT die a) statische Algorithmen: Die Statischen Algorithmen Reduktion von Umweltschäden möglich macht. Allerdings ist lassen sich mit Einschränkungen immer einsetzen. Sie verar- eine Reduktion von beiten die eingehenden Daten immer auf die gleiche Weise und entscheiden immer auf die gleiche Weise. Dies hat allerdings E. Metajob zur Folge das nicht immer ein optimales Scheduling Ergebnis Ein Metajob ist ein Job oder Auftrag mit zusätzlichen erzielt werden kann. Für das statische Scheduling werden Informationen. In einem Metasystem muss der Job weitere vorher festgelegte Parameter der Ressourcen und Systemum- Informationen transportieren muss. gebung verwendet um eine Entscheidung herbei zu führen. Ein Metajob hat die Informationen, welche für die direk- b) dynamische Algorithmen: Bei einem dynamischen te Ausführung eines Jobs notwendig sind zu transportieren. Algorithmus werden Anpassung des Schedulings Verfahrens Diese Informationen setzen sich zusammen aus den Jobfile zur Laufzeit vorgenommen. Zu diesem Änderungen zählen des verwendeten Gridsystems und den zusätzlichen Daten eine Planung der Ausführung zur Einhaltung von Vertrags- zu einem Job. Statusinformationen werden im verlauf der bedingungen und Kosten Minimierung.

28 Dynamische Algorithmen werden in einer Komplexeren e) Jobmanagement: Es müssen Jobs verwaltet werden Form gebildet und hängen stark von der relativ3 genau- können mit dem Proof of Concept. Diese Verwaltung be- en Vorhersagbarkeit der Ausführungszeit eines Metajobs ab. schränkt sich ausschließlich auf das Speichern und verwalten Wenn ein dynamischer Algorithmus im Einsatz ist muss von Jobs. Eine Komplexitätsbewertung der Jobs wird erst in permanent überprüft werden wie groß die Abweichung der einem späteren Evolutionsschritt umgesetzt. vorhergesagten Ausführungszeit im Vergleich zur wirklichen f) Ressourcenmanagement: Ressourcen für die Ausfüh- Ausführungszeit. rung müssen hinzugefügt werden können. Des Weiteren muss c) Anpassungs Verfahren: Zu klären bleibt allerdings die eine Ressource überprüft werden ob sie verfügbar ist. Frage wann wird eine Anpassung des Algorithmus vorge- g) Simulator: Für einen umfangreichen Metascheduler- nommen. Dies ist ein komplexer Prozess. Eine Lösung kann test muss ein Ressourcensimulator erstellt werden. Dieser ein Schwellenwert sein. Dieser Schwellenwert beschreibt den Simulator übernimmt die Funktion die Jobausführung nur zu Punkt ab wann eine gewisse Anzahl von Metajobs in das simulieren. System eingespielt werden, wo sich keine Vorhersagbarkeit h) Scheduling: Das Scheduling muss mit einem Resche- der Ausführungsdauer machen lässt. Ab diesem Schwellenwert duling implementiert werden. Es werden drei Algorithmen für muss das System umgestellt werden. dieses Konzept in den ersten Evolutionsschritten Umgesetzt. Es muss für eine gewisse Zeit sichergestellt werden das i) Load Balancing: Eine Ressource hat unterschiedliche die bisher in Ausführung befindlichen Metajobs korrekt und Hardwarekomponenten hier muss eine last Verteilung zwi- Fristgerecht ausgeführt werden. Der Umstellungsprozess darf schen den Computern sichergestellt werden. Das Loadbalan- keine Auswirkungen auf bisher in Ausführung befindliche cing muss unter dem Aspekt der GreenIT ausgeführt werden. Metajobs haben. j) Meta-Monitoring: In einer Metaressource werden ei- d) dynamische Ressourcenerweiterung: Das Metasche- nige Funktionen überwacht wie Jobausführung usw. Es werden dulingsystem muss sicherstellen das Aufgaben immer unter des weiteren Daten über alle Statusinformationen der Ressour- Einhaltung der Vertragsbedingungen der Systembenutzer aus- ce gesammelt wie die Informationen von einzelnen Knoten in geführt werden. Der zweite Punkt, welcher beachtet werden dem System. muss bei der Ausführung ist die Minimierung der Kosten. Es k) Condoranbindung: Um Jobs in einer Ressource auf- dürfen nicht unnötige Kosten verursacht werden. teilen und ausführen zu können muss ein Gridsystem ein- Aus den eben genannten lässt sich ableiten, dass nicht gesetzt werden. Zu diesem System muss des Weiteren eine permanent Instanzen in einer Public Cloud in betrieb sein Verbindung hergestellt werden zwischen dem Gridsystem und können. Dies würde der Anforderung der Kosten Minimierung den Metakomponenten. wieder sprechen. Allerdings in einem Fall von erhöhter Last in B. Konzept den restlichen Ressourcen kann auf ein Public Cloud Anbieter Das Proof of Concept wird in einem Evolutionären verfah- erweitert werden um den Metajob in den Vertraglich festge- ren Entwickelt. Die Umsetzung erfolgte in Form einer Kom- legten Rahmen auszuführen. Für die Auslagerungs Ermittlung ponenten Architektur. Somit wird erreicht das alle Funktionen wird die unter Abschnitt IV-C auf Seite 5 beschriebene Formel unabhängig von einander Funktionieren. verwendet. Diese Komponenten sind: Mit der dynamischen Ressourcenerweiterung auf Public l) Jobmanagement : Diese Komponente verwaltet alles Cloud Dienste lassen sich effektiv Lastspitzen ausgleichen, Anfragen zu den Jobs wie Jobs speichern und die dazugehöri- welche von einem Rechenintensiven Metajob aufkommen ver- gen Ergebnisse. Es werden die Jobs so lange vorgehalten wie ursacht wird. die Ausführung des Jobs erforderlich macht. Jeder Job wird VI. PROOF OF CONCEPT bis zur endgültigen Erstellung des Ergebnisses vorgehalten. m) Ressourcenmanagement: Es werden Ressourcen hin- Für den Beweis das ein Metaschedulerkonzept funktioniert zugefügt und gelöscht so wie überprüft ob die Ressource muss es an Hand eines Prototypen bewiesen werden. Die- verfügbar ist. Die Ressourcen werden von dieser Komponenten ser Prototyp wird nicht alle Funktionen des Meta-Systems in dem gesamten System verfügbar gemacht. umsetzen. Es werden die wichtigen Eigenschaften wie das n) Schedulingwächter: Der Schedulingwächter ist die ei- Scheduling mit Metaressourcen und das Loadbalancing und gentliche Schedulingkomponente es überwacht permanent auf direkte Anbinden von Condor mit OpenNebula auf der Me- den Eingang von neuen Jobs zur Ausführung. Es können unter- taressourcenebene Umgesetzt. schiedliche Schedulingalgorithmen verwendet werden. Wenn A. Umgesetzte Anforderungen ein Job nicht ausgeführt werden konnte und ein Rescheduling notwendig ist wird ein Eintrag in dem Eventhandler hinterlegt. Für das Proof of Concept wurden nur einige der weiter oben Der Scheduler informiert sich bei diesem Eventhandler über aufgeführten Anforderungen umgesetzt. Diese Anforderungen neue Events für Jobs die sich in Ausführung befinden. beschränken sich auf die Anforderungen, welche essentiell für o) Ressourcensimulator: Um das Scheduling effektiv das Funktionieren des Programms sind. Testen zu können wird ein Ressourcensimulator erstellt. dieser 3Unter relativ ist hier zu verstehen das die Tatsächliche Vorhergesagte Ressourcensimulator führt den Job nicht aus sondern simuliert Ausführungszeit nicht von der tatsächlichen Ausführungszeit abweichen darf. eine Ausführungszeit mit einer Warteschleife.

29 p) Eventhandler: Der Eventhandler bietet eine Möglich- D. Ergebnisse keit Fehler bei der Jobausführung und andere Problemverursa- Das Proof of Concept soll behilflich sein bei der Ermittlung chende Ereignisse aus einer Metaressource dem Metascheduler ob das Metakonzept als solches funktioniert. Des Weiteren mitzuteilen. Das Eventsystem verwaltet ebenso Events wie wird in dem Proof of Concept ermittelt welche Algorithmen Jobausführung abgeschlossen. verwendet werden sollten für das Scheduling. Innerhalb der Test Phase für das Scheduling auf einer Me- C. Umsetzung taebene ergab sich die Schlussfolgerung das möglichst einfach Algorithmen eingesetzt werden müssen für das Scheduling sie Das Proof of Concept wurde wie bereits erwähnt in einem vermindern die Fehleranfälligkeit des Schedulings im Bezug Evolutionären Verfahren vorgenommen. Es wurden in jedem auf das gesamte Konzept. Evolutionären Schritt einige Anforderungen Umgesetzt und Allerdings ist das Scheduling noch nicht abschließend anschließend einem Test unterzogen um die Funktionsweise getestet. Es erfordert weiteren Forschungsaufwand um dies sicherzustellen. präzisieren zu können. q) Evolutionsschritt 1: Die Tests lassen sich in drei Kategorien unterteilen in Unit-Tests, Integrationstests und ab- VII. ZUSAMMENFASSUNG schließend der Regressionstest, also die Wiederholung aller A. Zusammenfassung bisher erstellten Tests. Es wurde in dieser Arbeit beschrieben wie ein heterogenes Bisher wurden drei Evolutionsschritte erstellt. In dem Ersten Ressourcengefüge unter einem System vereint werden kann. Schritt wurden die Komponenten Entworfen und rudimentäre Mit einem solchen System ist es notwendig das die Ressour- Funktionen der Komponenten umgesetzt. Es wurden erste cen weitere Funktionen mit einer Wrapper Schicht integriert Version der Schnittstellen zwischen dem Benutzer und dem bekommen. Die Funktionen, welche von der Metaressource System erstellt sowie die Schnittstellen, welche eine Kommu- stammen, können ebenso sich auf anderen Systemen befinden. nikation zwischen dem Metascheduler und den Metaressour- Die einzige Voraussetzung ist eine Örtliche nähe auf Grund cen sicherstellen. der Netzwerkkomplikationen, welche Auftreten können bei zu r) Evolutionsschritt 2: Der in dem zweiten Schritt erfol- großen Distanzen über das Netz. Ein Metascheduler ist in der ge die Umsetzung der Funktionen um einen vollständigen Test Lage die im zur Verfügung stehenden Ressourcen Effektiv zu des Metaschedulers ermöglichen zu können. Innerhalb dieses nutzen. Er kann dynamische mit Hilfe des adaptiven Sche- Schrittes wurde des Weiteren eine Ressourcensimulation als dulingsystems zwischen den gegebenen Schedulingverfahren erster Entwurf erstellt. Diese ist notwendig um das Scheduling umschalten. des Metasystems effektiv Testen zu können. Abschließend wurde das Metaschedulingsystem, die Me- s) Evolutionsschritt 3: In diesem Evolutionsschritt wurde taressourcen und eine Simmulationskompoenten für Ressour- die gesamte bisherige Struktur des Metasystems überprüft cen in Form eines „Proof of Concepts“ erstellt. Mit dem Proof und komplett überarbeitet um das integrieren von weiteren of Concept wurde unter dessen bewiesen das die eingesetzten Funktionen und Anforderungen zu erleichtern. Die Simulati- Schedulingverfahren abhängig sind von Parametern, welche onskomponente für die Ressourcen wurde um weiter Funktio- sich aus der Ressourcenanalyse ergeben und von dem Benutzer nen erweitert. Es ist möglich eine Ressourcensimulation mit selbst vorgegeben werden. diversen Parametern zu starten. Die Parameteresierungswerte Das Load Balancing in einer Ressource muss unter dem werden zufällig ermittelt die Angegebenen Parameter beschrei- Aspekt der GreenIT nach Möglichkeit Energie sparen und so- ben den Wertebereich in welchen die zufälligen Werte liegen mit die Kostenreduktion des gesamten Systems unterstützten. sollen. Der Load Balancer hat zudem die Funktion des Masters für Diese zufälligen Werte befassen ich mit veränderlicher die Verwaltung von Ressourcen und den eingesetzten System. Ausführzeit, dies bedeutet das die Ausführzeit länger werden Bei einer Cloud werden Instanzen gestartet zum Beispiel. kann oder sich verkürzt. Es kann die Ausfallwahrscheinlichkeit Der Ressourcensimulator ist notwendig damit der Meta- Festgelegt werden, dass ein Job nicht ausgeführt werden kann. scheduler effektiv und mit nachvollziehbaren Bedingungen zu Um ein Ergebniswert nach der Simulierten Ausführung zu testen ist. In dem „Proof of Concept“ wurden des Weiteren nur erhalten ist es notwendig das ein Dummyergebnis erzeugt drei Schedulingstrategien realisiert. Für genauere Informatio- wird. nen stehen die beiden Masterthesen von Sebastian Schauer[22] In dem letzten Schritt wurden drei unterschiedliche Algo- und Jan Krause[19] voraussichtlich Ende August 2010 zu rithmen für das Scheduling auf einer Metaebene getestet. Verfügung. t) Schlussfolgerung: Im Anschluss an die Evolutions- phasen um alle geforderten Anforderungen umzusetzen ist B. Ausblick es notwendig in jedem Evolutionsschritt nur eine begrenzte Für dieses Thema werden zwei Master Thesen erstellt eine Anzahlt der Funktionen zu realisieren. Der Scheduler muss behandelt das Thema Loadbalancing und die Andere Schedu- weiter angepasst werden um den adaptiven Ansatz gerecht zu ling in OpenNebula. Das Metaressourcen und Metajobkonzept werden. muss weiter ausgebaut werden um mit den im Praktischen

30 Einsatz befindlichen Grid und Cloudtechnologien einsetzbar [21] École Normale, Supérieure Lyon, Eddy Caron, Vincent Garonne, Andreï ist. Tsaregorodtsev, École Normale, Supérieure Lyon, Eddy Caron, Vincent Garonne, and Andreï Tsaregorodtsev. Evaluation of Meta-scheduler Die dynamische Erweiterung wie in der Arbeit von J.Krause Architectures and Task Assignment Policies for High Throughput Com- und S.Schauer[23] beschrieben muss hier weiter verfeinert und puting, 2005. angepasst werden um für das Metaschedulerkonzept passend [22] Sebastian Schauer. Metascheduling in einem heterogenen Cloud und Grid Environment. PhD thesis, Hochschule Furtwangen, Furtwangen, zu sein. 08.2010. [23] Sebastian Schauer and Jan Krause. Hybrid Grid: Condor und Amazon EC2. Furtwangen, 12.07.2010. LITERATUR [24] Sebastian Schauer and Jan Krause. Hybrid Grid: Condor und Amazon EC2, 2010. [1] Haizea - An Open Source VM-based Lease Manager, 17.12.2009. [25] Uwe Schwiegelshohn and Ramin Yahyapour. Analysis of first-come- [2] JSSPP’06: Proceedings of the 12th international conference on Job first-serve parallel job scheduling. In SODA ’98: Proceedings of the scheduling strategies for parallel processing, Berlin, Heidelberg, 2007. ninth annual ACM-SIAM symposium on Discrete algorithms, pages 629– Springer-Verlag. 638. Society for Industrial and Applied Mathematics, 1998. [3] Akshai K. Aggarwal and Robert D. Kent. An Adaptive Generalized [26] Bruce S. Siegell. Automatic generation of parallel programs with Scheduler for Grid Applications. In HPCS ’05: Proceedings of the 19th dynamic load balancing for a network of workstations. PhD thesis, International Symposium on High Performance Computing Systems and Pittsburgh, PA, USA, 1995. Applications, pages 188–194. IEEE Computer Society, 2005. [27] Sivarama P. Dandamudi. Sensitivity Evaluation of Dynamic Load [4] Amazon Developer Team. Amazon Elastic Compute Cloud (Amazon Sharing in Distributed Systems, 1997. EC2). [28] Sudha Srinivasan, Savitha Krishnamoorthy, and P. Sadayappan. Robust [5] Andrew S. Grimshaw, Jon B. Weissman, Emily A. West, C. Loyot, scheduling of moldable parallel jobs. Int. J. High Perform. Comput. and Andrew Grimshaw. Metasystems: an approach combining parallel Netw., 2(2-4):120–132, 2004. processing and heterogeneous distributed computing systems. J. Parallel [29] The Apache Software Foundation. Apache License, Version 2.0 - The & Distributed Comput, pages 257–270. Apache Software Foundation, 28.06.2010. [6] Artin Avanes and Johann-Christoph Freytag. Adaptive workflow schedu- [30] Tracy D. Braun, Howard Jay Siegel, Noah Beck, Ladislau L. Boloni, ling under resource allocation constraints and network dynamics. Proc. Muthucumaru Maheswaran, Albert I. Reuther, James P. Robertson, VLDB Endow., 1(2):1631–1637, 2008. Mitchell D. Theys, Bin Yao, Debra Hensgen, and Richard F. Freund. [7] B. Yagoubi and Y. Slimani. Task Load Balancing Strategy for Grid A Comparison of Eleven Static Heuristics for Mapping a Class of Computing. Independent Tasks onto Heterogeneous Distributed Computing Systems, [8] Soumya Banerjee, Indrajit Mukherjee, and P. K. Mahanti. Cloud 2001. Computing Initiative using Modified Ant Colony Framework. In World [31] Sathish S. Vadhiyar and Jack J. Dongarra. A Metascheduler For The Academy of Science, editor, Engineering and Technology, pages 221– Grid. In HPDC ’02: Proceedings of the 11th IEEE International 224. 2009. Symposium on High Performance Distributed Computing, page 343. [9] Jim Blythe, Sonal Jain, Ewa Deelman, Yolanda Gil, Karan Vahi, Anirban IEEE Computer Society, 2002. Mandal, and Ken Kennedy. Task scheduling strategies for workflow- [32] Ph Wieder, O. Wäldrich, O. Wäldrich, W. Ziegler, and W. Ziegler. A based applications in grids. In CCGRID ’05: Proceedings of the Fifth meta-scheduling service for co-allocating arbitrary types of resources. IEEE International Symposium on Cluster Computing and the Grid In Parallel Processing and Applied Mathematics, LNCS 3911, pages (CCGrid’05) - Volume 2, pages 759–767. IEEE Computer Society, 2005. 782–791. Springer, 2005. [10] Bruce S. Siegell and Peter Steenkiste. Automatic Generation of Parallel Programs with Dynamic Load Balancing. In In Proceedings of the Third International Symposium on High-Performance Distributed Computing, pages 166–175, 1995. [11] Qi Cao, Zhi-Bo Wei, and Wen-Mao Gong. An Optimized Algorithm for Task Scheduling Based on Activity Based Costing in Cloud Computing. In 2009 3rd International Conference on Bioinformatics and Biomedical Engineering. IEEE, 2009. [12] Wei-Neng Chen and Jun Zhang. An ant colony optimization approach to a grid workflow scheduling problem with various QoS requirements. Trans. Sys. Man Cyber Part C, 39(1):29–43, 2009. [13] Condor Project Team. Condor Project Homepage: High Throughput Computing (HTC). [14] Michael Eckhardt, Sebastian Garwers, Thomas Rübsamen, Tobias Stöf- felmaier, and Jochen Zehnder. Windows Desktop Grid. PhD thesis, HS-Furtwangen, Furtwangen, 12.01.2009. [15] GridWay Team. Metascheduling Technologies for the Grid, 24.08.2006. [16] Yuxiong He, Wen-Jing Hsu, and Charles E. Leiserson. Provably efficient two-level adaptive scheduling. In JSSPP’06: Proceedings of the 12th international conference on Job scheduling strategies for parallel processing, pages 1–32. Springer-Verlag, 2007. [17] Ian Foster and Carl Kesselman. Globus: A Metacomputing Infrastructure Toolkit. INTERNATIONAL JOURNAL OF SUPERCOMPUTER APPLI- CATIONS, 11:115–128, 1996. [18] Rajkumar Kettimuthu, Vijay Subramani, Srividya Srinivasan, Thiagaraja Gopalsamy, D. K. Panda, and P. Sadayappan. Selective preemption strategies for parallel job scheduling. Int. J. High Perform. Comput. Netw., 3(2/3):122–152, 2005. [19] Jan Krause. Load Balancing in OpenNebula. PhD thesis, Hochschule Furtwangen, Furtwangen, 08.2010. [20] Steven Lucco. A dynamic scheduling method for irregular parallel programs. In PLDI ’92: Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation, pages 200–211. ACM, 1992.

31

Software-Produktlinienentwicklung

Betreuer

Prof. Dr. Steffen Thiel

33

Variabilitatsmodellierung¨ in Software Produktlinien Drei Losungsans¨ atze¨ im Fokus

Fabian Berner Denis Jurkovic Hochschule Furtwangen Hochschule Furtwangen Fakultat¨ Informatik Fakultat¨ Informatik [email protected] [email protected]

Zusammenfassung—Eine adaquate¨ Variabilitats-¨ einen formalen Beweis, in eine semantische Domane¨ ein- modellierung ist die Grundvorrausetzung fur¨ erfolgreiches ordnen. Software-Produktlinien Engineering. So haben sich in der jungsten¨ Vergangenheit viele verschiedene Techniken etabliert, II.GRUNDLAGEN um eine moglichst¨ gunstige,¨ aussagekraftige¨ Modellierung zu ermoglichen.¨ In dieser Ausarbeitung betrachten wir Als Basis fur¨ unsere Arbeit dienen uns zwei bereits zwei Arbeiten, die sich mit eben diesem Thema befassen. veroffentlichte¨ Paper, der alljahrlichen¨ VaMoS Konferenz. Wir beschreiben zunachst¨ deren Inhalt und legen deren A Preliminary Comparison of Formal Properties on Or- ” Grundaussagen dar. Darauf aufbauend vergleichen wir die thogonal Variability Model and Feature Models“ wurde im in der ersten Arbeit betrachteten Ansatze¨ OVM und FM, mit dem in der zweiten Arbeit, vorgeschlagenen ∆-Modell. Jahr 2009 durch seine Verfasserin Fabricia Roos-Frantz, Diesem ordnen wird abschließend formal einer semantischen Ph.D. Student der Universitat¨ Sevilla, vorgestellt. Die zweite Domane¨ zu. Hauptquelle Variability Modelling for Model-Driven De- ” Keywords-∆-Model, Feature Model, FM, Orthogonal Varia- velopment of Software Productlines“ wurde im darauf fol- bility Model, Semantische Domane,¨ SPL, Software Produktli- genden Jahr 2010 von Ina Schaefer Mitglied der Chalmers nien, OVM, Variabilitatsmodellierung¨ University of Technology eingereicht und vorgestellt. Die Inhalte mochten¨ wir im Folgenden kurz wiedergeben, um I.EINLEITUNG eine allgemeine Grundlage fur¨ unsere weitere Arbeit zu schaffen. Schon seit Beginn des Industriezeitalters haben Unterneh- mer erkannt, dass sich Produkte in verschiedenen Varianten A. A Preliminary Comparison of Formal Properties on effizienter Verkaufen lassen. So kommentierte Henry Ford Orthogonal Variability Model and Feature Models[2] Produktvielfalt einst mit: Any customer can have a car ” Die Autorin beginnt mit der Feststellung, dass die painted any colour he wants so long as it is black“ [1]. Schlusseleigenschaften¨ von Software-Produktlinien Engi- Produktlinien gibt es heute in beinahe jedem Bereich der neering die Verwaltung und Dokumentation von Variabilitat¨ Industrie und so macht dieses Konzept auch vor der Softwa- sei und dass in der Vergangenheit viele Techniken definiert reentwicklung nicht halt. Variabilitatsmodellierung¨ ist eines und beschrieben wurden. In ihrer Arbeit mochte¨ F. Roos- der Schlusselelemente¨ bei der Konzeption und Verwaltung Frantz sich die Ansatze¨ des Feature Model (FM) und Or- von Software-Produktlinien (SPL). So liegt es nahe, sich thogonal Variability Model (OVM) herausnehmen und die im Zuge dieser Arbeit mit diesem essentiellen Bereich der Unterschiede in deren Spracheigenschaften klaren.¨ Dabei Softwaretechnik etwas weiterfuhrend¨ zu befassen. soll sowohl auf die Syntax, also auch auf die semanti- sche Domane,¨ eingegangen werden. Bei der formalen FM A. Motivation Beschreibung stutzt¨ die Autorin sich auf den Formalisie- Unser Interesse zielt hierbei auf den Vergleich von dem rungsvorschlag von Don Batory[4]. Die OVM wird in zwei bereits bekannten OVM, mit weiteren Ansatzen,¨ ab. Aus die- unterschiedliche Versionen aufgeteilt. OVM-KP bezeichnet sem Grund fiel die Auswahl der betrachteten Arbeiten auf [2] dabei die von Klaus Pohl in [5] beschrieben Syntax. OVM- und [3], da sich diese Veroffentlichungen¨ mit dem Vergleich M bezieht sich auf die in von Andreas Metzger in [6] von OVM und dem Feature Model-Ansatz, sowie der Unter- vorgeschlagene Verbesserung. In der Tabelle I werden die breitung eines zusatzlichen¨ Konzepts, der ∆-Modellierung, von der Autorin verglichenen Punkte aufgefuhrt.¨ beschaftigen.¨ Im Folgenden werden wir die beiden Arbeiten kurz vorstellen und versuchen sie konstruktiv zu bewerten. Darauf aufbauend werden wir die Ansatze¨ weiterfuhrend¨ • Zur Klarung¨ der Kriterien schreibt die Autorin, dass vergleichen und abschießend die ∆-Modellierung, durch sich Nodes auf die in den Graphen abgebildeten Knoten

35 Nodes Hierarchical structure Multiple inheritance Variation Points Complex constraints FM (Batory[4]) Features yes no not explicit yes OVM-KP (Pohl et al.[5]) VPs and Vs no yes Mandatory no OVM-M (Metzger et al.[6]) VPs and Vs no no Mandatory / Optional no Tabelle I: Vergleich der Ansatze¨ nach Ross-Frantz

bezieht und was diese in den Technologien bedeuten. Modell) in ein Element der semantischen Domane¨ (hier: • Herarchical Structure geht der Frage nach, ob die Produktlinie) beschrieben. Im weiteren werden Beispiele Modelle als Baumstruktur definiert werden genannt, wie die Abbildung mit den jeweiligen zur Be- • Mit Mehrfachvererbung soll auf die Moglichkeit¨ mehr- trachtung gestellten Tools zu verstehen und umzusetzen facher Elternknoten gepruft¨ werden ist. Hierbei wird OVM einmal unter Einbezug und einmal • Variationspunkte untersucht die explizite Darstellung unter Vernachlassigung¨ der Variationspunkte betrachtet. Sie von Variationspunkten im Modell erkennt, dass die resultierenden Ergebnismengen von un- • Komplexe Bedingungen bezieht sich auf die Abbildung terschiedlicher Machtigkeit¨ sein konnen,¨ wenn es optionale von vom Standard abweichenden Bedingungen. Als Variationspunkte in einem Modell gibt. Das abschließende Beispiel wird angefuhrt,¨ dass FM Bedingungen wie F Fazit der Autorin stellt als Hauptbeitrag der Arbeit den requires A, B, C, D, was bedeuten soll F benotigt¨ A, Fortschritt in der Diskussion, um existierende Vorschlage¨ B, C oder D oder eine mogliche¨ Kombination, abbilden in der Literatur, in den Mittelpunkt. Sie sieht die Haupt- kann. OVM kann dies, ihrer Meinung nach, nicht. unterschiede zwischen FM und OVM in der Syntax. Sie fuhrt¨ Unterschiede bei Knoten, der Graphenstruktur und der Weiter ordnet die Autorin die Modelle in eine semantische Art der eingefangenen Information, sowie den moglichen,¨ Domane¨ ein, um die Ansatze¨ auch auf der formalen Ebene spezifizierbaren Bedingungen, an. Abschließend gibt Roos- vergleichen zu konnen¨ bzw. deren Unterschiede offen zu Frantz sowohl eine Einschatzung¨ als auch einen Ausblick legen. Es wird erklart,¨ dass laut Harel und Rumpe[7] eine auf ihr weiteres Vorgehen. Sie halt¨ es fur¨ essentiell heraus Sprachsemantik eine Bedeutung zu jedem Ausdruck anbie- zu finden, welcher adaquaten¨ semantischen Domane¨ OVM ten muss und dass diese Bedeutung aus einem wohl defi- zugewiesen werden muss, um ein logisch folgerndes Tool nierten und bekannten Umfeld bzw. einer Domane¨ (Semantic entwerfen zu konnen.¨ Eine gut zu verstehende formale Domain) stammen muss. OVM Modelle wurden¨ in der Lite- Sprache sieht sie als Startpunkt ihrer zukunftigen¨ Arbeit, ratur gleich gehandelt wie FM, namlich¨ als Reprasentant¨ der der Entwicklung eines Tools zur automatischen Analyse von gleichen Domane¨ (SPL). Die Antwort auf die Frage, ob dies OVM Modellen. Als ersten weiteren Schritt definiert sie die tatsachlich¨ so ist, wird im folgenden beantwortet. Zunachst¨ Spezifikation und Formalisierung aller Analyseoperationen, betrachtet sie die Domanen¨ der beiden Konzepte. Erneut be- die auf OVM angewandt werden konnen.¨ zieht sich die Autorin auf die in Batory[4] bereits definierte Formalisierung des Feature Modells. So legt die Autorin fest, B. Variability Modelling for Model-Driven Development of dass die semantische Domane¨ eines Feature Models als eine Software Productlines[3] Produktlinie gesehen wird, also als eine Menge einer Menge Zu Beginn der Arbeit werden einige kurze Definitionen von Kombinationen von Merkmalen. Formal betrachtet als gegeben, die den Rahmen der Untersuchung umreißen. PP(f). Die semantische Domane¨ OVM wird, so schreibt sie, Die Autorin Ina Schaefer beginnt mit der Feststellung, in Metzger[6] ebenfalls als Produktlinie gesehen. In Folge dass modellgetriebene Entwicklung von softwareintensiven dessen sei eine Produktlinie eine Menge von Produkten Systemen stets auf die Reduzierung der Designkomplexitat¨ und jedes Produkt eine Kombination von Variationspunkten abzielt. Weiterfuhrend¨ ist ein Modell als Abstraktion des ent- und Varianten. Demzufolge sei die formale semantische sprechenden Systems zu sehen, die einen bestimmten Aspekt Domane¨ eine Menge von Mengen von Kombinationen von des Systems hervorhebt. Die Entwicklung, schreibt sie, be- Variationspunkten und Varianten. Formalisiert betrachtet als ginnt mit einem initialen Modell, welches im Entwicklungs- PP(VP v V). Die Schlussfolgerung aus dieser Betrachtung prozess fortschreitend verfeinert wird. Durch die Einfuhrung¨ ist, dass OVMs unter Vernachlassigung¨ der Variationspunkte neuer Details in den entsprechenden Entwicklungsphasen. in den Mengen als Reprasentant¨ der gleichen Domane¨ wie Die zweite Definition stellt klar wie Produktlinien im fol- das Feature Modell gesehen werden kann. In Kapitel 4 genden zu verstehen sind. Schaefer schreibt, dass eine Pro- der Arbeit beschreibt die Autorin das Prinzip der seman- duktlinie eine Menge von wohl definierten Gemeinsamkeiten tischen Funktion vorgeschlagen von Harel und Rumpe[7]. und Variabilitaten¨ seien. Sie weist daraufhin, dass wenn mo- Die Menge aller Datenelemente der gegebenen Syntax eines dellgetriebene Entwicklung in Software-Produktlinien Engi- Modells wird dabei als syntaktische Domane¨ referenziert. neering betrieben werden soll, Variabilitaten¨ und verschie- Eine semantische Funktion wird als die Transformation dener Produkte in den dafur¨ verwendeten Modellkonzepten eines Elements der syntaktischen Domane¨ (hier: graphisches reprasentiert¨ und trotz Modell-Refinement gewahrt werden

36 mussen.¨ Die Variabilitat¨ von Produkten wurde¨ heute zumeist durch Feature Models (FM) eingefangen. Heute existieren- de Ansatze¨ versuchen diese featurebasierte Variabilitat¨ in Modellierungssprachen zu integrieren. Dennoch wurden¨ die meisten Herangehensweisen nur Modellierungskonzepte fur¨ eine einzige Ebene des Modellierungsprozesses fokussieren und so den Verfeinerungsprozess nicht berucksichtigen.¨ Auf- grund dieser Tatsache beschreibt die Autorin einen eigenen Ansatz zur Vaiabilitatsmodellierung,¨ der die Modellverfei- nerung einbezieht. Das ∆-Modell wird als ein aus drei Komponenten bestehendes Konzept beschrieben, die die Variabilitat¨ auf jeder Ebene der Modellierung beschrieben konnen.¨ Das Core-Modell reprasentiert¨ dabei ein gultiges¨ Produkt der entsprechenden Produktline. Die Menge von entwickelten ∆-Modellen spezifizieren Abweichungen bzw. Abbildung 1: Schematischer Prozess der ∆-Modellierung Anderungen¨ des Core-Modells, wie zum Beispiel hinzu- gekommene oder entfernte Modellfragmente, um weitere Produkte der Produktlinie abzubilden. Als letzte Kompo- um das Modell eines gultigen¨ Produkts zu erhalten. Die nente werden die Anwendungsbedingungen genannt. diese Kompositionsansatze¨ wiederum bilden positive Variabilitat¨ werden den entsprechenden ∆-Modellen angehangt.¨ Die ab. Hierbei werden Modellfragmente mit Merkmalen ver- Konditionen bestimmen auf welche Featurekonfiguration das bunden und zu einer bestimmten Featurekonfiguration kom- entsprechende ∆-Modell anwendbar ist. Laut Schaefer weist biniert. Schaefer stellt nochmals klar, dass die hier vorge- das ∆-Modellierungskonzept funf¨ Hauptcharakteristika auf: stellten Konzepte sich allein auf eine Ebene der Model- • ∆-Modellierung ist von jeglicher Konkretisierung lierung beschranken.¨ Zur Klarung,¨ wie diese Ebenen zu durch Modellierungssprache oder Programmiersprache verstehen sind, verweist sie auf [8], die in ihrer Arbeit ∆ Component-Based Product Line Development“ naher¨ auf unabhangig,¨ kann aber durch die Definition der - ” Anwendungssemantik, auf konkrete Modell- und Im- diese Ebenen eingehen. Bei den Betrachtung der zuvor kurz plementierungssprachen instantiiert werden. erwahnten¨ Arbeiten basierten die Variabilitatsaufl¨ osung¨ auf • Kombinationen von Merkmalen (Features) sollen textuellen Entscheidungsmodellen, die vom Systemmodell durch flexible Anwendungsbedingungen, welche an ∆- separiert sind. Anders sahe¨ es beim vorgeschlagenen ∆- Modelle angeknupft¨ werden, explizit dargestellt werden Modell aus, dass die nahtlose Reprasentation¨ von Variabilitat¨ konnen¨ . in den verschiedenen Modellierungsschichten unterstutzt.¨ • Modulare und evolutionare¨ Systementwicklung wird durch das Hinzufugen¨ von ∆-Modellen an existierende Modelle unterstutzt.¨ Interface1 • Die Modellverfeinerung ist zur Variabi- litatsmodellierung¨ orthogonal. Das bedeutet, Core- und ∆-Modelle werden unabhangig¨ voneinander verfeinert, Komponente1 Komponente2 so dass die Variabilitat¨ durch das gleiche strukturelle Konzept in allen Modellierungsebenen ausgedruckt¨ Abbildung 2: Core-Modell: UML Komponentenmodells wird. • Die Umstellbarkeit (Kommutativitat¨ ) von Modellkon- 1) Das ∆-Modell: Im Folgenden dritten Kapitel gibt figurationen durch ∆-Anwendung und Modellverfeine- die Autorin ein umfangreiches Anwendungsbeispiel, an- rung bietet die Basis fur¨ einen inkrementellen Entwick- hand welchem sie die Modellierung mit dem ∆-Modell lungsprozess durch schrittweise Verfeinerung. in verschiedenen Ebenen aufzeigt. Zunachst¨ geht sie auf Eine Beschreibung von ahnlichen¨ Arbeiten erfolgt, wobei die grundsatzliche¨ Herangehensweise ein. Zu Beginn soll sie darauf verweist, dass die bisher existierenden Konzept zunachst¨ ein initiales Modell abgebildet werden, dass die in zwei große Bereiche unterteilt werden konnen.¨ Anno- Variabilitat¨ in z.B. einem Featuremodell abbildet. Auf der tative Konzepte spezifizieren negative Variabilitat.¨ Was die Basis dieses Modell sollen durch hohere¨ Abstraktion, ver- Betrachtung eines Modells, welches die gesamten Produkte feinerte Modelle erzeugt werden, die detailliertere Aspekte der Produktlinie zusammenfasst, als Grundlage nutzt. Varibi- des betrachteten Produkts beschreiben. Jede Ebene fangt¨ litatsannotationen¨ wie zum Beispiel in UML-Stereotypen be- ihrer Variabilitatsinformationen¨ in einem Core-Modell und stimmen, welche Teile des Modells entfernt werden mussen,¨ einer Menge von ∆-Modellen ein. Diese bilden durch die

37 Interface1 Interface2

Komponente1 Komponente2 Komponente3

Abbildung 3: Produktmodellbeispiel auf Komponentenebene

Anwendungsbedingungen die Menge gultiger¨ Produkte ab. dann alle entsprechenden Anderungen.¨ Schaefer weist Zur Ableitung des Produktmodells aus dem Featuremodell, explizit darauf hin, dass die beiden Modellierungsebenen mussen¨ die in den entsprechenden ∆-Modellen definierten kausal in Zusammenhang stehen. Eine Anderung¨ im Anderungen,¨ am Core-Modell durchgefuhrt¨ werden. An- Komponenten ∆-Modell hat unwiderruflich Anderungen¨ im wendungsbedingungen bilden die Verbindungen zwischen detaillierteren Klassenmodell zur Folge. den einzelnen Features und deren eventuelle Abhangigkeiten¨ untereinander ab, so Schaefer. 2) Formalisierung des ∆-Modells: Schaefer hebt zu Be- ginn des vierten Teils ihrer Arbeit die Unabhangigkeit¨ Feature des ∆-Modellansatzes hervor. Das Modell sei auf jegliche + konkrete Modellierungssprache anwendbar und wurde¨ in * seinem Umfang nur durch die gewahlte¨ Modellform be- schrankt¨ werden. Als Nachweis fuhrt¨ sie im Folgenden Interface2 die vollstandige¨ Formalisierung des Modells auf. Neben + der Definition ihres Verstandnisses¨ aller notigen¨ Elemente, Komponente2 Komponente3 beschreibt sie auch die zusammenhange¨ und Funktionen zur Modellverfeinerung und Anpassung zur Ableitung von Produktvarianten. Abschließen fasst Schaefer nochmals den Abbildung 4: ∆-Modell eines UML Komponentenmodells groben Umriss des Modells zusammen. Sie verweist als Fazit darauf, dass dieses Modell auf alle bekannten Modellierun- gen anwendbar ist und der Automation durch beispielsweise Die Abbildung 1 enthalt¨ einen konzeptionellen Blick aspektorientierte Ansatze¨ einfach moglich¨ ist. Sie verweist auf die Modellierung von Variabilitat¨ in verschiedenen auf eine Implementierung des ∆-Modells in [3] und be- Modellebenen. Hierzu merkt die Autorin an, dass der ginnt damit ihr weiteres Vorgehen zu beschreiben. Dieses Schritt von der Feature Modellierung zum initialen Core- wird sich hauptsachlich¨ mit Richtlinien und Toolsupport zur Modell und dessen ∆-Modellmenge als kreativer Prozess Entwicklung von initialen Core-Modellen aus gegebenen zu sehen ist, da Produktlinien Variabilitat¨ im Allgemeinen Feature Models beschaftigen.¨ Dies soll durch Fortschritte auf verschiedene Weise dargestellt werden kann. Das auf dem Gebiet der Konfliktfreiheit und der eindeutigen initial gewahlte¨ Modell lege im Modellierungsprozess Modellierung von Core- und ∆-Modellen durch existierende die Struktur der tieferen Verfeinerungsstufen fest. Technologien, die zur Variabilitatsanalyse¨ auf Coinfluence- Beispielhaft stellt sie die Modellierungssyntax anhand Analyse basieren, vervollstandigt¨ werden. von Abbildung 4 und 6 vor. Das Modell besteht darin, durch drei grundlegende Zusatzelemente UML 2.0 zu erweitern. Die in den Abbildungen 2 bis 7 dargestellten Beispielmodelle bilden, auf zwei verschiedenen Ebenen, Klasse 1 Klasse 2 den durchgangigen¨ Einsatz ab. Hierbei dient die Standard UML zur Modellierung des Core-Modells. Die Anderungen,¨ -Att1 also die ∆-Modelle, verwenden bei jedem Zusatz die +“- +Meth1() ” Annotation. Anderungen¨ eines bereits bestehenden Elements +Meth2() werden mit der *“-Annotation gekennzeichnet. ∆-Modelle ” Klasse 3 werden stets in einem umgrenzenden Rahmen dargestellt. Dieser wird mit dem entsprechenden Featurenamen benannt. -Att1 Die Semantik hinter dieser Notation sagt aus, dass wenn +Meth1() dieses Feature implementiert werden soll, mussen¨ alle +meth2() Modifikationsanweisungen des ∆-Modells am Core-Modell durchgefuhrt¨ werden. Das endgultige¨ Produktmodell enthalt¨ Abbildung 5: Core-Model eines UML Klassenmodells

38 FM & OVM ∆-Modell Konzept Konkrete Modelle generisches Modell Semantische FM+OVM: SPL PP(V) ∆: SPL P(M,P(V)) Domane¨ Abstrakte Syn- tax • konkret fur¨ ein Modell • eine Syntax fur¨ alle Modelle • evtl. neues erlernen • intuitiv zu verstehen • Erweiterung anderer Modelle

Ebenen • FM nur eine Ebene Ebenenubergreifende¨ Modellierung • OVM: Mapping auf mehrere Ebenen

Ubersicht¨ • FM: viele Features bedeutet riesige Hierarchie Erweiterung der Modelle durch zusatzliche¨ Modellversionen • OVM: separates Modell Verbindung durch Assoziationen

Tabelle II: Vergleichstabelle

Feature zwischen FM und OVM gibt. Sie zahlt¨ im Folgenden Be- reiche auf, in denen sie Unterschiede lokalisiert hat, wie * zum Beispiel die abstrakte Syntax, nennt aber weder ein Klasse 1 konkretes Beispiel noch tatigt¨ sie eine Aussage daruber,¨ was denn nun den einen oder den anderen Ansatz auszeichnet. -Att2 + Weiter stellt sie fest, dass OVM der gleichen Domane¨ wie +() + FM zugewiesen werden kann. Bizarrer Weise schatzt¨ sie +Meth3() + + es im nachsten¨ Satz fur¨ hochst¨ wichtig ein, die adaquate¨ +Meth4() Klasse 4 Domane¨ fur¨ OVM zu finden, im Hinblick auf den Entwurf +() eines Schussfolgerungswerkzeugs. Das Fazit passt, unserer * -Att1 +Meth1() Meinung nach, weder zur Motivation noch zur zuvor ge- +Meth1() leisteten Arbeit. Es wird kaum ein Wort uber¨ literarisch definierte Semantik- und Syntax-Beschreibungen verloren, Abbildung 6: ∆-Modell eines UML Klassenmodells noch kommen die angepriesenen Unterschiede klar heraus. Das zum Schluss erwahnte¨ eigentlich Ziel und somit die tatsachliche¨ Motivation, ein automatisiertes Modellanalyse- tool fur¨ OVM Modell zu entwickeln, wird in der gesamten III.EVALUIERUNG Arbeit verschwiegen. Im Folgenden mochten¨ wir die beiden Arbeiten, sowohl Wiederholungen: Uber¨ die gesamte Arbeit verteilt wird inhaltlich als auch strukturell betrachten. Dabei wird ver- haufig¨ bereits gesagtes wiederholt. Beispielsweise wird in sucht die einzelnen Starken¨ und Schwachen¨ konstruktiv der Einfuhrung¨ mehrfach wiederholt, dass die Arbeit die aufzuarbeiten. Unterschiede zwischen FM und OVM deutlich machen will. Ebenso wird dies im Abschnitt abstrakte Syntax extra A. A Preliminary Comparison of Formal Properties on nochmal dargelegt, dass man diesen Vergleich vor hat. Wie Orthogonal Variability Model and Feature Models bereits erwahnt¨ kommt eine weitere Vergleichserklarung¨ im Motivation & Fazit: In ihrer Einleitung beschreibt Fazit vor. Ebenso wird bereits in der Einleitung ein kurzer Roos-Frantz, dass die Ziele der Arbeit zunachst¨ ein Review Abriss uber¨ die Modellierungstechniken FM und OVM ge- der Literaturvorschlage¨ der OVMs Syntax und Semantik sei, geben. Diese Beschreibungen unterscheiden sich kaum mit deren Unterschiede zu Feature Modells im Anschluss disku- den in den folgenden Kapiteln gegebenen Abhandlungen und tiert werden sollen. Die festgelegten Punkte finden sich nur kochen bereits gesagtes dort weitgehend neu auf. Wiederho- Teilweise explizit in den Kapitel der Arbeit wieder. So wird lungen ziehen sich durch die gesamte Arbeit so referenziert sehr kurz nochmal auf die beiden Konzepte FM und OVM sie innerhalb von drei aufeinander folgenden Satzen¨ dreimal eingegangen, deren Syntax an funf¨ Punkten verglichen und darauf, dass sie FMs aus [4] entnommen hat und im Weiteren eine Uberpr¨ ufung¨ der semantischen Domane¨ durchgefuhrt.¨ so verstehen mochte.¨ Das Fazit der Arbeit ist anhand dieser Grundlage mehr als Unklarheiten: In der Arbeit bleiben viele, der von uberraschend¨ ausformuliert. Sie beschreibt in ihrem Fazit ein der Autorin getatigten,¨ Aussagen unbegrundet.¨ So behauptet weiteres mal, welche Absicht diese Arbeit verfolgen mochte¨ sie beispielsweise, dass FM der wohl meist genutzte Va- und dass sie klarstellen will welche Hauptunterschiede es riabilitatsansatz¨ uberhaupt¨ sei. Wie sie zu dieser Schluss-

39 folgerung kommt, lasst¨ sie im Unklaren. Ebenso wie die die Arbeit mit einer pseudo Formalisierung, die dann aber Erklarung,¨ warum es bei einer Diskussion uber¨ eine Sprache, nicht weiter in Schlussfolgerungen umgesetzt werden. Alles hochst¨ wichtig ist, diese zu Formalisieren. Sie hebt an in Allem uberzeugt¨ die Arbeit, durch eine eher maßige¨ gleich mehreren Stellen hervor, wie deutlich sie die Unter- Eigenleistung, nicht besonders. schiede der beiden Ansatze¨ unterstreichen und voneinander abgrenzen will. Leider geht sie nur, die in einer Tabelle B. Variability Modelling for Model-Driven Development of zusammengefassten funf¨ Kriterien zur Syntaxabgrenzung Software Productlines durch. Sie beschreibt kurz und oberflachlich¨ in nur ein bis Im Allgemeinen macht die Arbeit von Schaefer einen zwei Satzen,¨ was die einzelnen Techniken zu den gewahlten¨ runden Eindruck. Sie fuhrt¨ zielgerichtet zum eigentlichen Kriterien zu bieten haben. Daruber¨ hinaus geht sie nicht Thema hin, beschreibt ihre Absichten und fuhrt¨ diese, weiter auf die Gegenuberstellung¨ ein, was dem Vergleich anhand von anschaulichen Beispielen, aus. Die Formali- die notige¨ und versprochene Tiefe nimmt. Es ist so nicht sierung des vorgeschlagenen Ansatzes im letzten Teil der moglich¨ eine Charakteristik der beiden Ansatze¨ zu bilden. Arbeit, wirkt zunachst¨ etwas abschreckend. Sie ist aber, Missverstandlich¨ begrundet¨ sie hier an einem Beispiel, dass bei naherer¨ Betrachtung, eine sehr gute Erganzung¨ zur OVM keine komplexen Bedingungen abbilden kann. Sie reinen Erklarungstext¨ und tragt,¨ wie beabsichtigt, stark zum behauptet, dass OVM nicht in der Lage sei, A requires B, tieferen Verstandnis¨ des ∆-Modells bei. Trotz des sehr guten C oder D, oder irgendeine mogliche¨ Kombination aus B, C, Gesamteindrucks haben wir ein paar wenige Anmerkungen D, abzubilden. Hier hatte¨ eine ausfuhrlichere¨ Betrachtung zur vorliegenden Arbeit. sicherlich sehr gut hinein gepasst und dem Leser etwas Anwendungsbedingungen: Schaefer spricht an mehre- mehr Klarheit geschaffen. Nicht nachzuvollziehen ist der ren Stellen von gewissen Regeln oder Bedingungen, die die plotzliche¨ Umschwung auf die semantische Domane¨ und die Featurekonfigurationen bestimmen und Abhangigkeiten¨ zwi- damit verbundene Einordnung von OVM. Ihre Argumenta- schen den Features darlegen sollen. Die Menge an gultigen¨ tion ist zwar klar nachzuvollziehen, sie lasst¨ aber offen was Featurekombinationen soll anhand dieser Definitionen be- sie nun damit anfangen oder schlussfolgern mochte,¨ bzw. stimmbar sein, wobei die einzelnen Bedingungen direkt an was der eigentliche Mehrwert dieser Einordnung ist. die jeweiligen Deltamodelle anzuhangen¨ sind. Leider bleibt Kurzzusammenfassung: Es ist teilweise sehr schwer offen, wie genau dies auszusehen hat. Ein Anschauungs- der Argumentation von Roos-Frantz zu folgen, da es man- beispiel bleibt aus. Die einzige Information zusatzlich¨ zur chen Stellen an schlussigen¨ Begrundungen¨ und erklarenden¨ Existenz ist, dass die Bedingungen als bool’sche Ausdrucke¨ Beispielen fehlt. Sie beschaftigt¨ sich mit zu vielen Dingen Wahrheitswerte abbilden und so verschiedene Features mit- gleichzeitig und verliert das versprochene Ziel aus dem einander in Beziehung setzen konnen.¨ Blick. So schmalert¨ sich der eigentliche Beitrag auf wenige Remove“-Notation: Die Notation der ∆-Modellierung ” Erkenntnisse. Die Hervorhebung der Unterschiede, arbeitet wird, wie bereits erwahnt¨ vollstandig¨ erklart¨ und formal sie eher durftig¨ anhand des Syntaxvergleichs heraus. Die eingeordnet. Die Anderungsanweisungen¨ Add“, Modify“ ” ” erarbeiteten Ergebnisse der semantischen Domane¨ fullen¨ werden als Anderungsfunktionen¨ eingefuhrt¨ und Beispielhaft dargestellt. Leider lasst¨ das gewahlte¨ Anschauungsmaterial die konkrete Notation der Remove“-Funktionalitat¨ außen ” Klasse 1 Klasse 2 vor. Weder im Fließtext noch in einer Abbildung wird be- schrieben, wie die zu entfernenden Modellelemente annotiert -Att1 werden mussen,¨ um in einem ∆-Modell diese Anderung¨ -Att2 festzulegen. Allgemein hatten¨ wir uns eine etwas expliziter +Meth1() gestellte Beschreibung der genauen Syntax gewunscht,¨ die +Meth2() Klasse 3 tatsachlich¨ alle Elemente zumindest einmal abbildet und +Meth3() kurz die jeweilige Funktion erklart.¨ +meth4() -Att1 +Meth1() IV. VERGLEICHDER ANSATZE¨ +meth2() Die beiden vorgestellten Arbeiten beschaftigen¨ sich vorwiegend mit unterschiedlichen Ansatzen¨ zur Variabi- litatsmodellierung.¨ Daher liegt es nahe, die behandelten Klasse 4 Konzepte beider Papers einmal gegenuber¨ zu stellen. Hier- bei reicht uns der in [2] vorgeschlagene Syntaxvergleich -Att1 nicht aus, da die Notation nicht allein die Eigenschaften +Meth1() eines Konzepts umreißen konnen.¨ Daher haben wir weitere Kriterien definiert, um so eine umfassendere Abgrenzung Abbildung 7: Produktmodellbeispiel auf Klassenebene der Modellierungen zu zeigen. In Tabelle II werden die

40 hier vorgestellten Kriterien nochmals in einer Ubersicht¨ bilden zu konnen,¨ zunachst¨ neu erlernt und verstanden zusammengefasst. sein. Ebenso begrenzen die definierten Sprachelemente zum Konzept: Das Konzept der FM und OVM unterscheidet Teil die Moglichkeiten¨ der Abbildung. Laut [2] ist bei- sich stark vom Konzept des vorgestellten ∆-Modells. FM spielsweise in OVM eine Abbildung von Variationspunkt und OVM legen eine konkrete Implementierungssprache A requires Variationspunkt B oder Variationspunkt C oder zugrunde. Das heißt, es ist allein durch Einsatz ihrer defi- Variationspunkt D oder irgendeine Kombination von A, nierten Syntax und entsprechenden syntaktischen Semantik B, C, nicht moglich.¨ Durch die zu erlernenden Konzepte moglich,¨ die Variabilitat¨ einer Software-Produktlinie abzu- ist ein erhohter¨ Lernaufwand notig.¨ Im Gegensatz dazu, bilden. Das ∆-Modell hingegen muss zusatzlich¨ zur eigens bietet das ∆-Modell eine Syntax, die auf alle gewunschten¨ angebotenen Syntax und auf die zusatzliche¨ Syntax eines Modelle anwendbar ist. Das bedeutet, die Syntax erweitert Wirt-Modells zuruck¨ greifen. Das bedeutet, es nutzt bereits eine Basis“-Modellierungssyntax um die drei vorgestellten ” etablierte Ansatze¨ zur Modellierung aus und erweitert diese Elemente (Add [+], Remove [-] und Modify [*]). Die um das ∆-Konzept. Laut [3] konnen¨ Variabilitatsmodelle¨ in Wiederverwertung von bekanntem Wissens, durch Einsatz annotative und kompositionelle Ansatze¨ eingeteilt werden. bekannter Modellierungsformen, lasst¨ es zu, mit minimalem FM bildet die gesamte SPL in einem Diagramm ab und Lernaufwand den ∆-Ansatz umzusetzen und ist somit als fordert zur Produktderivation die Abwahl der unerwunschten¨ einer der Hauptvorteile des Konzepts zu sehen. Features aus dem Modell. Demnach gehort¨ es zu den anno- Ebenen: Die Vereinheitlichung der Variabi- tativen Ansatzen.¨ OVM modelliert die Variabilitat¨ ebenfalls litatsmodellierung¨ und die Aufteilung in Variabi- vollstandig¨ in einem einzigen großen Modell ab. Auch hier litatsdiagramm¨ und Implementierungsdiagramm ermoglicht¨ werden zur Produktableitung, die nicht erwahlten¨ Features den ∆-Modelleinsatz auf allen Modellierungsebenen und aus dem entsprechenden Produktmodell weg gelassen. Es bietet somit die Grundlage fur¨ eine einheitliche, nahtlose kann also ebenfalls den annotativen Modellen zugewiesen und modellbasierte Modellierung. Besonders die getrennte werden. Das ∆-Modell hingegen modelliert zunachst¨ ein Verfeinerung von Core- und ∆-Modell ermoglicht¨ die Grundmodell (Core-Modell). Dieses kann als initiales Mo- Konzentration auf benotigte¨ Aspekte der verschiedenen dell, als Basis aller abgeleiteter Produkte oder auch als Core- Varianten in unterschiedlichen Ebenen. Mit Feature Models Asset-Modell gesehen werden. Die ∆-Modelle definieren ist es zwar grundsatzlich¨ moglich,¨ Featureszusammenhange¨ jeweils Features die zur Produktderivation mit dem Core- zu modellieren, dies geschieht hierbei aber in einer einzigen Modell komponiert“ werden. Das Modell gehort¨ also in Modellierungsebene, ahnlich¨ dem USE-Case Modell. ” zur Gruppe der kompositionellen Ansatze.¨ Erweiterungen durch Mapping auf verschiedene andere Semantische Domane:¨ Die semantischen Domanen¨ von Diagramme bzw. Schichten wurde in weiteren Arbeiten, OVM und FM wurde bereits durch [2] geklart.¨ Sie be- wie beispielsweise [6] beschrieben. Diese sind aber nicht schreibt sie als die Potenzmenge einer Potenzmenge von Teil des Grundkonzepts von FM. OVM bietet bereits in Varianten (formal PP(V)). Was sie laut [4] als Produktlinie der Definition durch [5] die Moglichkeit¨ die Variabilitat¨ bezeichnen kann. Der von [3] vorgeschlagene Ansatz mochte¨ auf alle Ebenen der Modellierung zu assoziieren. Dies ebenfalls Variabilitat¨ und damit Produktlinien abbilden. So geschieht durch einfache Assoziationsverbindungen vom galt es in unserer Arbeit zu prufen¨ ob auch hier die gleiche OVM Diagrammelement zum entsprechenden Teilelement Domane¨ formal bewiesen werden kann. Das Ergebnis dieser des Implementierungsmodells auf der gewunschten¨ Ebene. Untersuchung, P(M,P(V)), wird im Abschnitt semanti- Ubersichtlichkeit:¨ Zur Ubersichtlichkeit¨ ist zu sagen, ” schen Domane“¨ des ∆-Modells geliefert. Die Domane¨ kann dass anhand hier gegebener Beispiele kein signifikanter also als Potenzmenge von Modellen zusammen mit der Unterschied zur erkennen ist. Erst bei großerem¨ Umfang Potenzmenge von Varianten gesehen werden. Das bedeutet machen sich die Vor- und Nachteile bemerkbar. Das Fea- die Semantik des Modells ist zusatzlich¨ abhangig¨ von dem ture Modelling bildet alle moglichen¨ Komponenten in einer gewahlten¨ Modellunterbau. Im konkreten Fall kann die Mo- hierarchischen Baumstruktur ab. Dadurch bietet das Mo- dellabhangigkeit¨ vernachlassigt¨ werden und es ergibt sich dell eine gute Ubersicht¨ uber¨ die Gesamtvariabilitat¨ der die gleiche semantische Domane¨ wie bei FM und OVM. Produktlinie. Allerdings verliert sich der Uberblicksvorteil¨ Syntax: Der Vergleich der abstrakten Syntax wurde sobald eine großere¨ Zahl an Features abgebildet werden soll. durch [2] bereits an einigen Kriterien durchgefuhrt.¨ Wir Die Hierarchie wird sehr schnell sehr breit und komplexe mochten¨ diesen Vergleich mit eigenen Punkten bereichern Assoziationsbedingungen konnen¨ nicht mehr auf einen Blick und betrachten die Syntax Eigenschaften allgemein und erkannt werden. Es ist naturlich¨ moglich¨ zu große Diagram- stellen sie dann dem ∆-Modell gegenuber.¨ OVMs und me in mehrere kleinere aufzuteilen. Der Gesamtuberblick¨ Feature Modells sind zwei konkrete Modellierungssprachen geht dann aber weitgehend verloren. OVM bildet die Va- oder Ansatze.¨ Sie umfassen eine speziell fur¨ ihre Abbil- riabilitat¨ in einem separaten Modell ab und assoziiert die dung geschaffene Menge an Elementen. Die Anwendung einzelnen Elemente in ein bestehendes z.B. UML Diagramm dieser Elemente muss um gewunschte¨ Gegebenheiten ab- hinein. Diese Entkopplung kommt der Ubersichtlichkeit¨ und

41 Aufteilbarkeit der einzelnen Variabilitatselemente¨ zu Gu- Proof: Semantische Domane¨ te. Die Modellierung komplexer Variationsabhangigkeiten¨ SPL = PP(V ) kann jedoch schon bei wenigen Variationspunkten zu sehr undurchsichtigen Modellen fuhren.¨ Das ∆-Modell lost¨ das ˆ=SPL = P(P rodukte) Ubersichtlichkeitsproblem¨ durch die nahtlose Darstellung C = {M,F } der Variabilitat¨ auf einer ubergeordneten¨ Ebenen. Ebenso F ⊆ P(V ) wird durch die Aufteilung von Core- und ∆-Modell die V = {f1, . . . , fn} gezielte Darstellung einzelner Aspekte explizit unterstutzt.¨ Dies fuhrt¨ zu einem geordneten und ubersichtlichen¨ Umgang C = {M, P(V )} auch mit einer Vielzahl an Varianten und Features. Verwenden wir diese Definitionen in der Produktlinien Fest- V. SEMANTISCHE EINORDNUNG legung, so entspricht C der Menge der Produkte. SPL = P(C) Laut [9] ist, die beste Art Zweideutigkeiten im Hinblick auf die Modelldeutung zu vermeiden, die Beschreibung einer Um die Korrelation von Produktlinie und Features auf ver- formalen Semantik. Roos-Frantz hat in ihrer Arbeit einen gleichbare Weise darzustellen wie Roos-Frantz setzen wir Vorschlag zur formalen Beschreibung von OVM bereitge- die Beschreibung von C ein. stellt. Schaefer bietet uns eine formale Beschreibung des ∆- SPL = P(M, P(V )) Modells an, geht aber nicht im Detail auf die semantische Domane¨ des Modells ein. Sie geht davon aus, dass das ∆- ˆ=SPL = P(M ∪ P(V )) Modell Variabilitat¨ eines Produkts ergo eine Produktlinie Das Deltamodell bildet also ein Produkt zusammen mit abbildet. Im Folgenden wollen wir einen eigen Vorschlag einer Menge von Modellen ab. geht man nun davon aus, zum formalen Nachweis dieser Domane¨ erarbeiten. dass ein Modell pro Modellebene betrachtet wird, so ist M zu vernachlassigen.¨ Die Formel lautet demnach: A. FM & OVM SPL = P(P(V)) Wir erinnern uns, dass [4] FM als Abbildung einer Produktlinie durch die Potenzmenge der Potenzmenge von Features bzw. Varianten, formal PP(V), beschrieben hat. Wie zu Beginn angenommen, kann das ∆-Modell ebenso [2] fuhrt¨ in ihrer Betrachtung OVM als Potenzmenge der in die SPL Domane¨ eingeordnet werden, wie die beiden Potenzmenge von Variationspunkten und Varianten aus. Un- anderen Ansatze.¨ Als kleiner Unterschied ist die Modellun- ter Vernachlassigung¨ der hierbei zur expliziten Benennung abhangigkeit¨ zu nennen. Das Modell schrankt¨ sich selbst genutzten Variationspunkten kommt sie zu dem Schluss, nicht durch die Festlegung auf eine einzige Modellform dass auch OVM in die gleiche Domane¨ PP(V) wie FM ein und ermoglicht¨ so die detailliertere Modellierung einer ein zu ordnen ist. Produktlinie, durch die Wahl verschiedener Basismodelle. VI.ZUSAMMENFASSUNG B. ∆-Modell Abschließend mochten¨ wir ein wenig auf Moglichkeiten¨ zur Fortfuhrung¨ unserer Arbeit hinweisen. Gezielt wollen Die im weiteren verwendeten Formeln sind im Original wir hierbei Ansatzpunkte empfehlen und zum Anschluss ein aus [3] entnommen. kurzes Pladoyer¨ zu erarbeiteten Ergebnisse geben. Die Definition einer SPL wurde formal als PP(V) durch [4] und [2] verwendet. Auch wir wollen dies als Grundlage un- A. Empfehlung seres Nachweises benutzen. Die Formel ist als Potenzmenge Unser Vorschlag zum Vergleich der Variabi- einer Potenzmenge von Varianten zu verstehen wobei die litatsmodellierungsans¨ atze¨ ist bisher noch von sehr Potenzmenge der Varianten als Produkt verstanden werden. uberschaubarem¨ Charakter. Daher ist es zu empfehlen, Eine Produktlinie ist demnach auch als die Potenzmen- dass in eventuell folgenden Arbeiten, weitere oder ge einer Menge von Produkten definiert [2], P(Produkte). detailliertere Kriterien zum Vergleich der Konzepte Schaefer beschreibt, dass ein Produktmodell C, was einem angefuhrt¨ werden, die beispielsweise einen bestimmten aus der ∆-Modellierung abgeleiteten Produkt entspricht, Teilaspekt der Variabilitatsmodellierung¨ fokussieren und so durch die Elemente M, der Menge an Modellvarianten und einen anwendungsspezifischeren Einblick in die Differenzen F, der Menge aller Featurekombinationen (P(V)) besteht. V der einzelnen Techniken, ermoglichen.¨ Ebenso liegt es nahe, stellt hierbei die Menge aller moglicher¨ Features dar. weitere Variabilitatsmodellierungskonzepte¨ mit den bereits

42 betrachteten zu vergleichen, um so das Spektrum der [7] David Harel and Bernhard Rumpe, “Meaningful Modeling: What’s teh Semantics of Semantics“?,” IEEE Computer verschiedenen Moglichkeiten¨ zu erweitern. Dies konnte¨ ” in einer zukunftigen¨ Arbeit als eine Entscheidungshilfe Society, 2004. weiter ausgearbeitet werden. Weitere Fortfuhrungen¨ der [8] Colin Atkinson, Joachim Bayer, and Dirk Muthing, vorgestellten Arbeiten werden von den Autorinnen bereits “Component-Based Product Line Development: The KobrA benannt. So schlagt¨ Schaefer vor sich um Richtlinien zur Approch,” SPLC, 2000. Erzeugung des initialen Core-Modells, in weiteren Arbeiten zu kummern.¨ Beide Arbeiten dienen, mehr oder weniger [9] P.-Y. Schobbens, P. Heymans, J.-C. Trigaux, and Y. Bontemps, “Generic semantics of feature diagrams,” Computer Networks, explizit erkennbar, dem großeren¨ Zweck des Entwurf eines 2007. automatisierten Modellierungstools. Eine Weiterfuhrung¨ dieser Idee enthalt¨ Potential zur aktiven Beihilfe an diesen Projekten. B. Fazit Unsere Ausarbeitung zeigt, inspiriert von der Vergleichs- idee aus [2], weiterfuhrende¨ Unterschiede und Gemein- samkeiten zwischen FM und OVM, sowie zusatzlich¨ dem in [3] beschriebenen ∆-Modell auf. Hierbei stellte sich der konzeptionelle Unterschied zwischen OVM / FM, als konkrete Modellierungssprache und dem ∆-Ansatz, der als Erweiterung aller denkbaren Modelle gesehen werden kann, heraus. Trotzdem haben wir durch die Einordnung des ∆-Modells in die gleiche semantische Domane¨ bewiesen, dass alle betrachteten Ansatze¨ das semantisch gleiche Ziel der Produktlinienabbildung verfolgen. Weiter kommen wir zu dem Schluss, dass die beiden betrachteten Arbeiten in ihrer Qualitat¨ und Aussagekraft stark variieren. So ist durch den Vergleich der Syntax und dem zusammengetra- gen der Fakten kaum ein erkennbares Ziel auszumachen. Die Beschreibung der ∆-Modellierung hingegen ist, durch die zugrunde gelegte Modellentkopplung und der intuitiven und leicht Handhabe durch die Wiederverwendung bereits bekannten Wissens, eine starke Alternative zu bisherigen Modellansatzen.¨

LITERATUR [1] Henry Ford, Henry Ford - My life and work, 1922.

[2] Fabricia Roos-Frantz, “A Preliminary Comparison of Formal Properties on Orthogonal Variability Model and Feature Mo- dels,” VaMOS, 2009.

[3] Ina Schaefer, “Variability Modelling for Model-Driven Deve- lopment of Software Productlines,” VaMOS, 2010.

[4] Don Batory, “Feature Models, Grammars, and Propositional Formulas,” Software Product Line Conference, 2005.

[5] Klaus Pohl, Gunter¨ Bockle,¨ and Frank J. Linden, Software Product Line Engineering: Foundations, Principles and Tech- niques, Springer Verlag, 1 edition, 9 2005.

[6] Andreas Metzger, Patrick Heymans, Klaus Pohl, Pierre-Yves Schobbens, and Germain Saval, “Disambiguating the Docu- mentation of Variability in Software Product Lines: A Sepa- ration of Concerns, Formalization and Automated Analysis,” 15th IEEE International Requirements Engineering Confe- rence, 2007.

43

Semistrukturierter Merge in Versionsverwaltungssystemen und das Variabilitatsmodell¨ des Linux Kernels als Evaluierungsgrundlage

Christian Fabbricatore, Sebastian Ziganki and Markus Zucker Department of Computer Science Furtwangen University of Applied Sciences Robert–Gerwig–Platz 1, D–78120 Furtwangen {c.fabbricatore, s.ziganki, m.zucker}@hs-furtwangen.de

Zusammenfassung—Diese Arbeit behandelt sowohl den Weiterhin wird durch eine Einordnung der Themen in das Ansatz des semitstrukturierten Merge in Source–Code– Software–Produktlinien–Framework (siehe Abb. 5) kurz und Management (SCM)–Systemen als auch den Ansatz der Va- bundig¨ ein Bezug zur Entwicklung in SPL hergestellt. riabilitatsmodellierung¨ des Linux Kernels als Grundlage fur¨ die Evaluierung von Analyse- und Modellierungswerkzeugen Der erste Teil der Arbeit gilt als Ausgangspunkt fur¨ den im Kontext der Softwareproduktlinienentwicklung. Weiterhin folgenden, zweiten Teil. Dieser beinhaltet einige von den werden die dazugehorigen¨ Referenzarbeiten vorgestellt und Verfassern erarbeitete Verbesserungsmoglichkeiten,¨ welche folglich als Grundlage fur¨ einen Vergleich und eine Ein- neben einer Beschreibung auch teilweise Veranschaulichun- ordnung in das Softwareproduktlinienframework verwendet. gen durch kleine Beispiele, Visualisierungen und Implemen- Daruberhinaus¨ werden neben der Erlauterung¨ von Problemen, Kernaussagen und Losungsans¨ atzen,¨ Moglichkeiten¨ abgeleitet tierungsprototypen verdeutlicht werden. Zu den umgesetzten und ausgearbeitet, die sowohl das Variablitatsmodell¨ als auch Zielen gehoren¨ u.a. die Erstellung einer Grammatik mit dazu- den Prozess des semitstrukturierten Merge verbessern und gehorigem¨ Parser fur¨ das in [2] beschriebene Feature–Modell effektiver gestalten. oder auch die Integration des semistrukturierten Merge in das Keywords-Modellbasierte Entwicklung; Softwareproduktlini- SCM–System Git (siehe Abschn. VII-A und VIII-D). Zudem en; Variabilitatsmodell;¨ ; KConfig; Featuremo- konnten einige weitere Verbesserungsvorschlage¨ erfolgreich dell; Semistructured; Merge; Revision Control System; erarbeitet und beschrieben werden, wodurch die im Folgenden vorgestellten Ansatze¨ nicht nur erweitert, sondern auch I.EINLEITUNG deutlich effektiver gestaltet und optimieret werden konnen.¨ A. Problemstellung und Ziele Abschließend rundet ein kurzes Resumee¨ sowie eine kurze Dieses Paper befasst sich hauptsachlich¨ mit der Problem- Darstellung von zukunftigen¨ Arbeiten und Aussichten die stellung einer klaren Darstellung der Themen des semistruk- Ausarbeitung ab. turierten Mergeprozesses in SCM–Anwendungen und der Variabilitatsmodellierung¨ des Linux Kernels. Hinzu kommt C. Begriffsabgrenzung das Problem des schwierigen Auffindens von umfangreichen, In dieser Arbeit werden haufig¨ Abkurzungen¨ fur¨ Begriffe groß–skalierten Feature–Modellen als Grundlage fur¨ das verwendet, die uberladen¨ sind und aufgrund einer beste- Evaluieren von Analyse- und Modellierungswerkzeugen in henden Mehrdeutigkeit im Folgenden abgegrenzt werden. Software–Produktlinien (SPLs). Um beispielsweise eine Verwechslung mit dem bekannten Ziel ist es, den Kontext dieser Probleme zu erlautern,¨ Versionsverwaltungssystem GNU RCS [3] zu vermeiden, diese in einen Zusammenhang zu bringen sowie eine darauf wird in der vorliegenden Arbeit anstatt des Terminus RCS aufbauende Bewertung und Zuordnung zu dem Fachgebiet der die Bezeichnung SCM verwendet. Daher ist sowohl die SPL-Entwicklung durchzufuhren.¨ Weiterhin gilt es, Optimie- Bezeichnung SCM von dem Begriff Software Configuration rungsmaßnahmen zu erarbeiten, diese pragnant¨ darzustellen Management als auch die Bezeichnung RCS von dem und eine Auswahl davon sowohl in Form von Prototypen System GNU RCS zu differenzieren. Die Bezeichnung umzusetzen als auch in detaillierter Form zu beschreiben. SCM bezieht sich ausschließlich auf allgemeine Systeme B. Aufbau und Inhalt der Arbeit zur Versionsverwaltung von Softwareartefakten, insbesondere Quellcode. Im ersten Teil der Arbeit wird einerseits auf den Inhalt (Pro- bleme, Kernaussagen, Resultate) der in den vorausgehenden D. Variabilitatsmodellierung¨ in Software–Produktlinien Arbeiten [1] und [2] vorgestellten Ansatze¨ des semistrutktu- rierten Merge und des Linux Kernels als Variabilitatsmodell¨ Folgender Abschnitt beschreibt kurz und pragnant¨ die Va- sowie deren Kontext eingegangen und andererseits auf Basis riabilitatsmodellierung¨ in der SPL–Entwicklung im Kontext dessen eine Bewertung und ein Vergleich durchgefuhrt.¨ dieser Arbeit. Dies ist fur¨ die folgenden Abschnitte, insbe-

45 sondere IV und II, voraussetzend fur¨ ein gutes inhaltiches veroffentlichter¨ Feature–Modelle. Diese Art der Modellge- Verstandnis¨ des Bezugs zur SPL–Entwicklung. winnung stellte sich in empirischen Tests als unbrauchbar Die Darstellung und Modellierung von Variabilitat,¨ fur¨ das Benchmarking von Feature–Modellierungssoftware primar¨ in Form von Feature–Modellen, spielt in der SPL– heraus [2]. Entwicklung eine sehr bedeutende Rolle. Dies gilt in ers- Die Verfasser des Papers The Variability Model of The ter Linie bei der Erfassung von Domanenanforderungen,¨ Linux Kernel nahmen den Missstand zum Anlass, aus (Architektur-)Design, Komponenten, Tests und fur¨ die Wie- einem praxisrelevanten System ein Feature–Modell abzu- derverwendung von Entwicklungsartefakten allgemein. Die leiten, dass ein großes Softwaresystem reprasentiert¨ und Variabliltat¨ als auch Gemeinsamkeiten, spezifische Unter- zugleich auf einer Software beruht, die weitestgehend als schiede und Abhangigkeiten¨ von Komponenten konnen¨ mit erfolgreich angesehen wird. Von dem Ergebnis versprechen dieser Art der Modellierung sehr deutlich grafisch veran- sich die Autoren zum einen, dass Anbietern von Feature– schaulicht und beschrieben werden. Fur¨ eine standardisierte Modellierungswerkzeugen realistische Eingabemodelle fur¨ Feature–Modellierung sorgen klar definierte Metamodelle und initiale Tests und Benchmarks zur Verfugung¨ stehen. Zum damit zusammenhangende¨ Notationen. Dazu gehoren¨ z.B. Anderen liegt der Fokus der Verfasser auf der Analyse des die originale FODA Notation [4], die Czarnecki-Eisenecker Variabilitatsmodells¨ des Linux Kernels. und die erweiterte Czarnecki-Eisenecker Notation [5] und Der Linux Kernel wird nicht in einer SPL entwickelt und schließlich die UML–basierten FeatuRESB [6] und Gurp- auch wenn fur¨ verschiedene Plattformen unterschiedliche Bosch-Svahnberg [7] Notationen. Konfigurationen existieren, besitzt der Linux Kernel keine Derivate neben sich. In der Variabilitat¨ schneiden sich jedoch II.THE VARIABILITY MODELOFTHE LINUX KERNEL die Bereiche von SPLs und dem Linux Kernel. In diesem ¨ A. Ubersicht Punkt weisen diese Themenfelder große Gemeinsamkeiten Linux entwickelte sich vom einem Terminalemulations- auf. Ahnlich¨ einer Variabilitat¨ in SPLs ist der Linux Kernel programm zu einem weit verbreiteten und stabilen Betriebs- ebenfalls stark anpassbar. Diese Anpassbarkeit wurde im system. Diese Entwicklung basiert auf zwei prinzipiellen Kontext des Kernels jedoch nicht dazu verwendet, um Tatsachen: Zum einen spielt die GNU General Public License Software zu entwickeln, sondern basiert auf der evolutionaren¨ (GPL) und die damit verbundenen Gedanken der Open– Entwicklung von Linux als Kern eines Betriebssystems. Source Bewegung eine maßgebliche Rolle. Zum Anderen Im Gegensatz dazu wird die Variabilitatsmodellierung¨ und beruht der Erfolg auf der Anpassbarkeit des Linux Kernels. das Erstellen von Feature–Modellen in SPLs primar¨ dazu Diese beiden Fakten verhalfen Linux zum Einsatz in diversen verwendet, eine Architektur und ein Design fur¨ eine Reihe Marktfeldern. Allen voran ist Linux im Serversegment eine von ahnlichen¨ Produkten zu erstellen. Im Verlauf des Papers feste Große,¨ die heutzutage nicht mehr wegzudenken ist. wurden grundlegende Unterschiede zwischen den Ansatzen¨ Auch wenn das Betriebssystem bis Dato keine nennenswerte zur Entwicklung von SPLs und der evolutionaren¨ Variabi- Rolle im Desktopmarkt spielt, setzten immer mehr Bereiche litatsentwicklung¨ aufgedeckt, wobei der evolutionare¨ Ansatz auf das offene Betriebssystem. Als Beispiel ist der gesamte als der ehrlichere“ bewertet wird. Grund fur¨ diese Aussage ” Embedded Sektor zu nennen, der Linux immer mehr fur¨ ist, dass Software in der Regel kein statisch ausgeliefertes sich entdeckt. Somit findet sich Linux, durch die Variabilitat,¨ Programm ist, sondern dass weitere Features im Verlauf mittlerweile in Fernsehern (Samsung A650) [8] und Handys des Lebenszyklus hinzu kommen. Der Linux Kernel ist (z.B. Android) [9] wieder. Linux wird von den Autoren in diesem Punkt sicher ein Extrembeispiel1, allerdings ist als quelloffenes, stabiles und praxisnahes Softwaresystem dieser Umstand auch in vielen anderen Softwareprojekten zu angesehen, dass eine Software aus der Praxis angemessen beobachten. reprasentiert.¨ Um Vergleichswerte zu anderen Projekten zu schaffen, weckt der Linux Kernel auch von Linux fremden B. Kconfig Bereichen Begehrlichkeiten. Die Verfasser standen einem, auf der evolutionaren¨ Ent- Hersteller von Feature–Modellierungswerkzeugen und An- wicklung des Linux Kernels basierendem, Problem gegenuber.¨ wender von Software Produktlinien beklagten den Umstand, Der Linux Kernel besitzt zwar Variabilitat,¨ allerdings gibt dass keine freien Feature–Modelle fur¨ Testzwecke und es weder eine Dokumentation, die die Variabilitatspunkte¨ Benchmarks zur Verfugung¨ stehen. Bisherige, veroffentliche¨ beschreibt, noch ein Feature–Modell auf dessen Grundlage Feature–Modelle stammen aus Forschungspublikationen, sind Auswertungen gemacht werden konnen.¨ Die Variabilitat¨ das Ergebnis aus Fallstudien oder sind Machbarkeitsnachwei- beruht wie in Abschnitt II-A bereits erlautert¨ auf der se aus Abschlussarbeiten. Die wenigsten Feature–Modelle stetigen Entwicklung zu einem Betriebssystemkern. Um die besitzen einen Praxisbezug und diejenigen Modelle, die Variabilitat¨ des Linux Kernels zu untersuchen, musste diese einen solchen besitzen, reprasentieren¨ jedoch in keiner Weise zunachst¨ aus dem Linux Kernel extrahiert werden. ein großeres¨ Softwaresystem aus der Praxis. Zufallig¨ gene- rierte Feature–Modelle erzeugen Modelle auf Basis bisher 1Anm. d. Ver. Bei jedem Release wird neue Funktionalitat¨ hinzugefugt¨

46 1 menu ”Power management and ACPI options” Kconfig als Beschreibungssprache fur¨ Variabilitat¨ und den 2 depends on !X86 VOYAGER Konzepten der Feature–Modellierung. Als Ergebnis stellten 3 4 c o n f i g PM die Verfasser den gesamten Linux Kernel in einem Feature– 5 bool ”Power Management support” Modell vor. Bis auf die Cross-tree Abhangigkeiten¨ wurden 6 depends on ! IA64 HP SIM alle Konzepte der Kconfig auf Konzepte der Czarnecki– 7 −−−help−−− 8 ”Power Management” Eisenecker Notation ubertragen.¨ Abhangigkeiten,¨ die uber¨ 9 means that ... eine hierarchische Zuordnung hinaus gehen, wurden unter 10 Verwendung von booleschen Ausdrucken¨ textlich separat 11 c o n f i g PM DEBUG 12 bool ”Power Management Debug umgesetzt. Dieses Feature–Modell wurde veroffentlicht¨ und 13 Supp ort ” steht jetzt Anbietern von Feature–Modellierungswerkzeugen 14 depends on PM und Anwendern von Software Produktlinien zur Verfugung¨ 15 16 c o n f i g CPU IDLE [2]. 17 bool ”CPU idle PM support” 18 d e f a u l t ACPI C. Einordnung des Feature–Modells 19 20 c o n f i g PM SLEEP Aufgrund der fehlenden Referenzmodelle ist die Einord- 21 bool nung des neuen Feature–Modells des Linux Kernels ein 22 depends on SUSPEND | | HIBARNATION 23 | | XEN SAVE RESTORE schwieriges Unterfangen. Die Autoren des Papers verglichen 24 d e f a u l t y aus diesem Grund das Linux Feature–Modell mit allen 25 ... verfugbaren¨ Modellen. Die bisherigen Referenzmodelle, die 26 endmenu zu Vergleichszwecken herangezogen wurden, stammen von der Sammlung der Software Product Lines Online Tools Abbildung 1. Ausschnitt aus dem Kconfig Modell (SPLOT). Die Hauptreferenz ist das bisher großte¨ Modell: ein Electronic Shopping System mit 287 Features. Im Vergleich dazu besitzt der Linux Kernel 5426 Features. Die Variabilitat¨ des Linux Kernels stand den Verfassern Sowohl das Linux Feature–Modell als auch die bisherigen jedoch nur auf Implementationsebene zur Verfugung.¨ Linux Modellen wurden umfangreichen statistischen Analysen unter- verwendet fur¨ die Abbildung der Variabilitat¨ eine eigene zogen. Der Grund fur¨ diesen Aufwand begrunden¨ die Autoren Beschreibungssprache: Kconfig. Diese Sprache wird vom mit der Annahme, dass bisherige Modelle essenzielle Mangel¨ Linux–internen Werkzeug Linux Kernel Configurator (LKC) gegenuber¨ praktischen Modellen besitzen. Die Auswertung verwendet. Der LKC ist ein Parser fur¨ Kconfig, der zusatzlich¨ der Ergebnisse zeigt sehr deutlich auf, dass bisherige Modelle die Fahigkeit¨ besitzt, die Abhangigkeiten¨ zwischen den zum Teil vollig¨ falsche Annahmen gemacht haben. Im Modulen zu uberpr¨ ufen.¨ Großteil der Messungen divergieren die Ergebnisse des Linux Die Konfigurationssprache des Kernels ist komplett auf den Kernels sehr stark mit den Referenzmodellen. Als Beispiel Linux Kernel zugeschnitten und beinhaltet alle Methoden um sind hier die gruppierten Features, die einen Durchschnitt Features zu verwalten. Zwar ist die Kconfig eine eigene Be- uber¨ die bisherigen Modelle von 44% ausmachten. Der Linux schreibungssprache, jedoch hat diese einige Gemeinsamkeiten Kernel im Gegenteil besitzt nur 2.69% gruppierende Features. mit Feature–Modellen aus SPLs. Die Kconfig uberschreitet¨ Ebenso liegt die cross–tree constraint ratio3 mit 19% bei den jedoch die Moglichkeiten¨ der Czarnecki–Eisenecker Notation Modellen der SPLOT vergleichsweise niedrig, den mit 82% mit Kernel–spezifischen Einstellmoglichkeiten.¨ Der Linux scheinen Cross–tree Abhangigkeiten¨ den Hauptbestandteil Kernel setzt bei der Konfiguration auf eine Struktur aus der Abhangigkeiten¨ ausmachen. Der Grund fur¨ diese doch • (Un–)Conditional Menus sehr stark abweichenden Werte ist der bereits erwahnte,¨ • User selectable features unterschiedliche Ansatz der Entwicklung. Beim Entwurf • Switch configs eines Feature–Modells werden Cross–tree Abhangigkeiten¨ • Entry fields als unasthetisch“¨ empfunden und hierarchische Beziehungen ” • Choices werden als Gruppierung fur¨ Features verwendet. Dadurch und anderen Konzepten um die Variabilitat¨ angemessen wird das Feature–Diagramm zu einem Baum, dessen Blatter¨ 4 abzubilden. Fur¨ die Beziehungen zwischen Features kennt auf tiefen Ebenen sitzen. Das Feature–Modell des Linux Kconfig das Prinzip der hierarchischen Abhangigkeiten¨ Kernels verwendet die Cross–tree Abhangigkeiten¨ in einem (menu ↔ sub-menu) und der Cross–tree Abhangigkeiten.¨ großen Umfang. Diese Art der Abhangigkeiten¨ werden Letzteres stellte die Czarnecki–Eisenecker Notation vor hauptsachlich¨ dafur¨ verwendet, um technische Verpflichtun- Ubersichtlichkeitsprobleme.¨ 2 gen oder Ausschlusse¨ umzusetzen. Das Feature–Diagramm Die Autoren des Papers erstellten ein Mapping zwischen 3Anm. d. Ver. Maß fur¨ Cross–tree Abhangigkeiten¨ 2siehe Abschnitt VII-C 4Anm. d. Ver. vom Benutzer auswahlbare¨ Features

47 des Linux Kernels unterscheidet sich maßgeblich von den Jedoch ist es nach Meinung der Autoren erforderlich, weitere, bisherigen Referenzmodellen. Der Linux Kernel bildet einen realitatsnahe¨ und groß–skalierte Modelle zu entwickeln, die breiten Baum, der seine Blatter¨ hauptsachlich¨ auf den als weitere Referenzen fur¨ Evaluierungen herangezogen mittleren Knoten tragt.¨ Auch hier ist die Entwicklung aus werden sollten. einem evolutionaren¨ Ansatz zu erkennen [2]. III.SOURCE–CODE–MANAGEMENT D. Kernaussagen SCM-Werkzeuge spielen eine sehr große Rolle in der Soft- Die Verfasser des Papers haben es sich zur Aufga- wareentwicklung. Sie ermoglichen¨ neben der Erstellung und be gemacht ein praxisnahes Referenzmodell fur¨ Feature– lokalen Verwaltung von Quellcode mittels sog. Branching“ Modellierungswerkzeuge zu generieren. Der Linux Kernel ” auch eine dezentrale Kontrolle uber¨ die zu verwaltenden wurde fur¨ diese Aufgabe als Basis evaluiert. Die statistischen Projekte und die darin enthaltenen Anderungen¨ [11]. Eine Messungen zeigten sehr deutlich, dass sich die Annahme besonders wichtige Eigenschaft dieser Systeme ist das auto- bestatigte,¨ dass bisherige Modelle zum Teil sehr stark von matische Durchfuhren¨ der Zusammenfuhrung¨ unterschiedlich praxisorientierten Softwaresystemen abweichen. Daruber¨ versionierter Dateien, das sogenannte Mergen“ [12]. hinaus stellten die Autoren fest, das bisherige Annahmen, ” vor allem die Bedeutung von Cross–tree Abhangigkeiten,¨ A. Merge in SCM–Systemen falsch waren. Um Feature–Modellierungswerkzeuge auch in Zukunft besser evaluieren zu konnen¨ und um Entwicklern Das Mergen“ (dt.: Vereinigen, Zusammenfugen)¨ von ” von SPLs bessere Strategien beim Entwerfen zuganglich¨ zu Softwareartefakten, speziell im Fall von Dateien bzw. Quell- machen, pladieren¨ die Verfasser an weitere, praxisbezogene code, stellt die Grundlage bei der verteilten und parallelen Projekte ihre Feature–Modelle zu veroffentlichen¨ [2]. Entwicklung von Software dar, was besonders bei groß– skalierten, komplexen Projekten notwendig ist. Die Grundlage E. Kritik & Bewertung jedes Merge–Vorgangs ist das Vorliegen von Dateien in Die Autoren Steven She et. al. bringen das Variabilitats-¨ unterschiedlichen Versionen. Diese entstehen wenn mehrere bzw. Feature–Modell des Linux Kernels in starken Zu- Entwickler parallel auf einem sog. lokalen Branch“ arbeiten. ” sammenhang mit der Feature–Modellierung aus der SPL– Ein lokaler Branch bezeichnet hierbei eine Kopie bzw. Entwicklung. Dieser Zusammenhang minimiert sich jedoch Abweichung von der ursprunglichen¨ Entwicklungslinie, auf bei kritischer Betrachtung, da dieses Modell kein echtes“ welcher Anderungen¨ lokal (auf einem Rechner), z.B. zu ” Feature–Modell reprasentiert,¨ wie sie bei industriellen SPLs Testzwecken oder zum Beheben von Bugs, vorgenommen zu finden sind [10]. Bei der domanenspizifierten¨ Anlyse in werden. Diese Modifikationen konnen¨ dann zu einem spateren¨ einer Produktlinie werden meist die sog. Core Assets und Zeitpunkt wieder auf ein zentrales Repository bzw. auf daraufhin die variablen Assets festgelegt und mit verschiede- den Remote Branch, welcher die ursprungliche¨ Entwick- nen Entwicklungsartefakten ausfuhrlich¨ dokumentiert. Diese lungslinie enthalt,¨ zusammengefugt¨ bzw. reintegriert werden werden zu einem spateren¨ Zeitpunkt nach vorgeschriebener, [13]. Dabei konnen¨ wiederum Uberlappungen¨ und daraus klar definierter Art und Weise zu einer Produktkonfiguration resultierende Konflikte entstehen, die mittels automatisierter zusammengestellt, wahrend¨ beim Linux Kernel fortlaufend Merge–Verfahren großtenteils,¨ jedoch meist nicht vollstandig,¨ neue Core Assets und Variabilitatspunkte¨ bzw. Features gelost¨ werden konnen.¨ Grundsatzlich¨ wird bei diesem Merge– hinzugefugt¨ und kaum dokumentiert werden. Diese spiegelt Vorgang zwischen unterschiedlichen Verfahren differenziert. einen deutlichen Unterschied zu einer Produktlinie wider, Hierzu gehoren¨ u.a. das unstrukturierte textuelle, semantische da somit kein einheitlicher Domain–Engineering–Prozess syntaktische und das strukturierte Mergen [12]. zustande kommt. Ein weiterer Kritikpunkt ist die bei der In dem praxisnahen Umfeld wird in erster Linie der Ansatz realen“ Minimalkonfiguration des Kernels, welche in den des unstrukturierten, textuellen und zeilenorientierten Zusam- ” Statistiken nicht ausreichend berucksichtigt¨ wurde. Zudem menfugens¨ in Form von Plain–Text“ verwendet. Aus diesem ” wurden in der Arbeit [2] weder ein Parser noch eine Grund funktioniert diese Technik mit jedem Softwareartefakt, genaue Spezifikation der Grammatik erstellt bzw. offentlich¨ das sich in Textform darstellen lasst.¨ Zudem bietet dieser verfugbar¨ gemacht, so dass das Kconfig–Modell bisher nicht Vorgang einen hohen Grad an Automatisierung und lost¨ weiter verarbeitbar ist. Weiterhin wurden keine Beispiele fur¨ einen Großteil der dabei entstehenden Konflikte, wie z.B. konkrete anwendungsspezifische Benchmarks durchgefuhrt¨ die Handhabung von parallelen Anderungen¨ innerhalb einer oder erlautert.¨ Methode. Weiterhin konnen¨ die damit zusammenhangenden¨ Trotz aller Kritik ermoglicht¨ das Modell des Linux Operationen leicht implementiert und in Tools integriert Kernels im positiven Sinne eine effektive Grundlage zum werden. Dies sind Grunde¨ dafur,¨ weshalb dieses Charakteris- Benchmarken. Die hohe Anzahl von Features und Cross–Tree– tikum in vielen bekannten SCM-Werkzeugen, wie z.B. Git5, Dependencies stellt eine bisher einzigartige und praxisnahe Herausforderung an die Analyse– und Modellierungstools dar. 5http://git-scm.com/

48 using System; using System; 6 7 Mercurial oder auch Subversion , implementiert ist. Jedoch namespace Metalyzer.Plugins.Common namespace Metalyzer.Plugins.Common { { hat jedes der Verfahren auch Nachteile. Dazu gehort¨ u.a. public interface IMetalyzerPlugin public interface IMetalyzerPlugin { { das Managen von Refactorings, die Beibehaltung der Code– String PluginName String PluginName { { get; get; Formatierung bzw. -Syntax oder zeitgleiche Modifikationen } } von Bezeichnern an ein und derselben Stelle im Quellcode. String PluginAuthor String PluginDescription { { Der im Folgenden behandelte, optimierte Ansatz des get; get; } } semistrukturierten Merge basiert ausschließlich auf den String PluginVersion String PluginVersion { { textuellen und strukturierten Verfahren, weshalb sich die get; get; } } Verfasser in vorliegender Arbeit auf diese Strategien und dem } } } } damit verbundenen Auftreten von Konflikten fokussieren. Abbildung 2. Beispiel eines Konflikts beim unstrukturierten Merge B. Unstrukturierter Merge Der unstrukturierte Merge bezeichnet das Plain–Text“– ” basierende Zusammenfugen¨ von versionierten Quellcode– semantischer und syntaktischer Anderungen¨ auch strukturelle Dateien. Im Gegensatz zu den meisten anderen Vorgehens- Anderungen¨ an den jeweiligen Artefakten bzw. Quellcode– weisen ist diese absolut sprachenunabhangig.¨ Dies ermoglicht¨ Dateien [12]. die Anwendung auf moglichst¨ viele verschiedene Softwarear- tefakte, was in diesem Kontext auch als generisch bezeichnet D. Probleme wird [1]. Zu den popularsten¨ unstrukturierten Methodiken gehoren¨ Die hier vorgestellten Verfahren bringen jedoch weiterhin der sog. Two–Way“- und der Three–Way“-Merge [12]. große Probleme mit sich, wenn in lokalen Branches Co- ” ” 1) Two–Way–Merge: Beim Two–Way–Merge werden le- deanderungen¨ durchgefuhrt¨ werden, wie z.B. das parallele ¨ diglich die zwei differenziert vorliegenden Versionen einer Hinzufugen¨ oder Andern eines Attributs oder einer neu- Datei verglichen. Dies geschieht ohne weiteren Zusatz von en Methode an der selben Stelle bzw. Zeile (siehe Abb. Informationen wie z.B. einer Basisversion der Datei [12]. 2). Hierbei ist aus Sicht des SCM keinerlei Struktur in 2) Three–Way–Merge: Die Strategie des Three–Way– der Software vorhanden, wodurch Konflikte entstehen, die Merge unterscheidet sich zu dem eben vorgestellten Two– eigentlich gar keine sind und weder mittels Two–Way– Way–Merge hinsichtlich einer zusatzlich¨ in Betracht gezoge- noch mittels Three–Way–Merge gelost¨ werden konnen.¨ Ein nen, dritten Komponente. Diese reprasentiert¨ die ursprunglich¨ weiteres, nicht zu vernachlassigendes¨ Problem stellen sog. vorhandene Basisversion, welche dazu genutzt wird, zwei Refactorings dar. Die damit entstehenden Probleme konnen¨ darauf basierende, neu entstandene Versionen anhand eines weder mittels unstrukturiertem noch via strukturiertem Merge Vergleichs zur gemeinsamen Basis zusammenzufugen¨ [12]. automatisiert und korrekt gehandhabt werden. In dem Beispiel aus Abbildung 2 entsteht beispielsweise ein semantischer C. Strukturierter Merge Konflikt, bei welchem nicht unterschieden werden kann ob das Attribut PluginDescription“ hinzugefugt¨ wurde oder Der in der Praxis weniger verbreitete, strukturierte Merge ” ob es aus der Umbenennung des Attributs PluginAuthor“ wird haufig¨ im akademischen Umfeld verwendet und hat das ” Ziel vor Augen, eine große Anzahl auftretender Konflikte, entstanden ist. Um derartige Probleme dennoch losen¨ zu durch das Einbeziehen von Struktur und Semantik einer konnen¨ werden zusatzliche¨ Informationen und Strategien Programmiersprache vollautomatisch zu losen¨ und somit benotigt,¨ was die Ausgangssituation fur¨ die Erstellung der eine starke Ausdruckskraft zu erreichen. Der Begriff einer Arbeit von Sven Apel et. al., die in ihrer Arbeit einen neuen hohen Ausdruckskraft beschreibt, dass eine Vielzahl von Ansatz [1] entwickelt haben, der im Folgenden Abschnitt IV Konflikten automatisch gelost¨ werden kann [1]. Diese positive erlautert¨ und bewertet wird. Eigenschaft fuhrt¨ jedoch zur Entstehung der nachteiligen Charakteristik einer nicht mehr vorhandenen Sprachenun- IV. SEMISTRUCTURED MERGEIN REVISION CONTROL abhangigkeit.¨ SYSTEMS Die beim strukturierter Merge zusatzlichen¨ Informationen Die Idee des in dem Paper [1] vorgestellten Verfahrens liegt bezuglich¨ der Semantik und Strukturierung der angewendeten darin, sowohl die positiven Eigenschaften des unstrukturier- Sprache ermoglichen¨ das Parsen von Quellcode und die ten, textuellen und des strukturierten Merge zu verbinden, zu Erstellung von sog. Parse Trees“ oder abstrakten Syn- ” optimieren und wahrend¨ dessen gleichzeitig deren Nachteile taxbaumen¨ (AST). Diese konnen¨ als Grundlage verwendet zu vermindern. werden um weitaus mehr Konflikte zu losen¨ als der un- Dabei wurde neben dem Verfahren ein System (Fea- strukturierte Merge. Dazu gehoren¨ neben der Handhabung tureHouse) entwickelt, welches die Idee der Autoren Sven 6http://mercurial.selenic.com/ Apel et. al. nach Meinung der Verfasser gut umsetzt. Das 7http://subversion.apache.org/ System besteht aus drei grundlegenden Hauptkomponenten.

49 using System; Language-dependent Grammar & namespace Metalyzer.Plugins.Common Production Rules FSTGenerator { (FeatureBNF) public interface IMetalyzerPlugin { Text to (Feature Superimposed String PluginName Structure) Model (Feature Structure) { Transformation Model to Text Transformation get; } Base Revision SEMISTRUCTURED MERGE Merged Revision String PluginAuthor Revision 1..n (FSTMerge) { get; Parser Merger Printer }

String PluginVersion { Abbildung 4. FeatureHouse–Funktionsweise (in Anlehnung an [1], S. 18, get; } Abb. 12) } }

Abbildung 3. Beispiel eines Feature bzw. Program Structure Trees (C#) der Ubereinanderlagerung¨ der FSTs gemergt werden konnen¨ und somit als Plain–Text vorliegen mussen,¨ werden unter Verwendung des unstrukturierten Merge zusammengefugt.¨ Einer Grammatik in Form einer sog. FeatureBNF, einem (FST- Nach diesem Vorgang erfolgt abschließend die Ausgabe der )Generator und der (FST-)Merge Kernkomponente (siehe Abb. gemergten Revision des Artefakts uber¨ den Printer [1]. 4). C. FeatureHouse (Implementierung) A. SSM–Ubersicht¨ FeatureHouse8 stellt die aus dem Paper [1] resultierende Das wichtigste Charakteristikum des semistrukturierten Implementierung des darin beschriebenen Systems (vgl. Merge stellt die optimale Abwagung¨ zwischen Allgemeinheit Abb. 4) dar und wird offentlich¨ und als frei verfugbare¨ (Generizitat)¨ und Ausdruckskraft dar. Die Allgemeinheit Java–Applikation angeboten. Die Anwendung und ein dazu- bzw. die Unterstutzung¨ moglichst¨ vieler Entwicklungsar- gehoriges¨ Beispielpaket, welches sich auf deren Webprasenz¨ 8 tefakte wurde mittels der Einfuhrung¨ einer Grammatik– befindet, sollen den Lesern als Demonstration des Verfahrens Komponente umgesetzt. Diese ermoglicht¨ das Einbinden dienen [1]. Das Problem dabei ist, dass die Anwendung auf beliebiger Sprachen, die sich in Form einer FeatureBNF– nur sehr wenigen Systemen lauft,¨ welche zufalligerweise¨ so Grammatik darstellen lassen, in die Merge–Komponenten. konfiguriert und eingerichtet sind wie die Umgebungen der Die Integration der Sprachen erfolgt weiterhin uber¨ die von Entwickler dieser Applikation, so dass in den meisten Fallen¨ der Generator–Komponenente erzeugte Grammtik, welche beim Aufstarten eine Exception geworfen wird. Daher sind die Erzeugung sog. FSTs ermoglicht.¨ Ein Feature Structure Verbesserungsmaßnahmen durchzufuhren,¨ um eine lauffahige¨ Tree (FST) stellt die Grundlage des Semistrukturierter Merge Anwendung zu erhalten (siehe VIII-A). (SSM) dar und enthalt¨ neben dem Modell des Artefakts zusatzliche¨ Plain–Text–Informationen uber¨ darin enthaltene D. Kritik & Bewertung Daten, die sich nicht in Form des SSM mergen lassen. Die Sven Apel et. al. erlautern¨ in ihrer Arbeit [1] den Zusam- Grundvoraussetzung fur¨ die Erstellung dieser Modelle ist das menhang zur Variabilitatsmodellierung¨ als Grundlage fur¨ den Vorliegen der Eingabeartefakte in syntaktisch korrekter Form. Prozess des SSM nur in einem sehr geringen Maß. Nach Ist dies nicht der Fall so kann das SSM–Verfahren nicht Meinung der Verfasser kann dies jedoch in erster Linie nur angewendet werden und ist somit uberfl¨ ussig.¨ Abbildung auf die Verwendung von Feature Structure bzw. Program 3 visualisiert ein Beispiel fur¨ einen FST, der aus dem Structure Trees zuruckgef¨ uhrt¨ werden und spiegelt daher die dazugehorigen¨ Code generiert wurde. Die Sichtbarkeit der Gemeinsamkeiten zur Variabilitatsmodellierung¨ in SPLs nur Plain–Text–Informationen bleibt dabei jedoch verborgen. Der sehr geringfugig¨ wieder. Ein weiterer Kritikpunkt ist der nicht Merge–Engine selbst besteht aus einem Parser fur¨ das Parsen besonders gut implementierte Prototyp bzw. die Beispielan- des Quellcodes und das Erstellen der FSTs, der Merge– wendung (siehe IV-C) und viele nicht berucksichtigte¨ Punkte, Komponente selbst und einem Printer (sog. Pretty Printer) wie z.B. die Integration in kommerzielle, praxisrelevante zur Ausgabe der zusammengefugten¨ Revisionen [1]. Werkzeuge, die Unterstutzung¨ von Unicode, die Handha- B. Vorgehensweise bung von Codeformatierung oder auch die Unterstutzung¨ von Refactoring–Konflikten. Ein weiteres Manko stellt die Die Vorgehensweise, wie in Abb. 4 grob dargestellt, ist in Verwendung des veralteten GNU RCS (The Revision Control unterschiedliche Schritte aufgeteilt. Zuerst wird eine formale System)9 dar, welches heutzutage nicht mehr State–of–the– Spezifikation der Sprache in Form der FeatureBNF erstellt Art [12] ist. Weiterhin ist die Praxisrelevanz des Ansatzes oder, falls bereits vorhanden, eingebunden. Daraufhin konnen¨ sehr fragwurdig,¨ da bis dato nicht feststeht, inwiefern Unter- die respektiven Revisionen der zu mergenden Artefakte nehmen und Entwickler diese Art der Zusammenfuhrung¨ von als Eingabewert fur¨ das Merge–Tool festgelegt werden. SW–Artefakten benotigen¨ bzw. wie haufig¨ in diesem Kontext In Folge dessen erzeugt das Werkzeug intern die FSTs, welche dann mittels Ubereinanderlagerung¨ (Superimposition) 8http://www.fosd.de/fh zusammengefugt¨ werden. Die Teile, welche nicht mittels 9http://www.gnu.org/software/rcs/rcs.html

50 relevante Konflikte entstehen. Nach Meinung der Verfasser Product Management Domain vorliegender Arbeit ist der Ansatz zusammenfassend gut Domain Domain Domain Requirements Design Realisation Testing umgesetzt und ermoglicht¨ eine Behandlung zusatzlicher¨ Engineering Merge–Konflikte unter der Beibehaltung einer moglichst¨ umfangreichen Sprachenunterstutzung,¨ jedoch bedarf es auch Common assets Domain Engineering

einiger Verbesserungsmaßnahmen (siehe Abschn. VIII). Requirements Architecture Components Tests

¨ feedback V. VERGLEICHDERVORGESTELLTEN ANSATZE (assets) Application Application Application Application Requirements Design Realisation Testing Die beiden Ansatze,¨ die in den ausgewahlten¨ Papers Engineering vorgestellt wurden haben das Ziel, die Softwareentwicklung Application N - Artefacts zu verbessern. In beiden Fallen¨ wird als Ausgangslage ein Application 1 - Artefacts

Problem identifiziert und die Autoren versuchen eine Losung,¨ Application Engineering Requirements Architecture Components Tests teils mit Erfolg, zu erarbeiten. Der Ansatz des semistruc- tured Merge versucht die beim Sourcecode Management Abbildung 5. SPL Engineering Framework (vgl. [14], Abb. 4.1) auftretenden Probleme so zu losen,¨ dass der Entwickler durch Automatismen entlastet werden kann. Auf der anderen Seite versuchen die Verfasser des Linux Kernel Papers eine Umwandlung der Kconfig Beschreibungssprache zu einem Grundlage zu schaffen, um Feature–Modellierungswerkzeuge Feature–Modell ( Text2Model“ Transformation) verwendet. ” angemessen testen zu konnen¨ und daruber¨ hinaus fur¨ Anwen- Ungeachtet dessen setzen beide Papers an verschiede- der von SPLs ein praxisnahes Referenzmodell bereitzustellen. nen Stellen der Softwareentwicklung an. Nach Meinung Auch wenn beide Paper das gleiche Ziel verfolgen, unter- der Verfasser existiert nur eine geringe Schnittmenge an scheiden sich die Ansatze¨ doch grundlegend. Die Ebenen Ubereinstimmungen,¨ jedoch konnen¨ die Ansatze¨ isoliert konnten¨ nicht unterschiedlicher sein. Revisionskontrolle betrachtet, einen nachhaltigen Gewinn sowohl fur¨ Software– und Sourcecode Management sind zentralen Rollen der Produktlinien als auch fur¨ die Softwareentwicklung als Softwareentwicklung, ohne die eine Softwareentwicklung solches bringen. in groß–skalierten Projekten nicht denkbar ware.¨ Dem gegenuber¨ stehen die Konzepte von SPLs und dem zusam- VI.EINORDNUNGINDAS SPL–FRAMEWORK menhangendem¨ Ansatz der Variabilitatsmodellierung¨ bzw. Dieser Abschnitt beschreibt die Zu- bzw. Einordnung der in diesem konkreten Fall die Verbesserung der eingesetzten bisher vorgestellten Ansatze¨ und Verfahren in das SPL– Werkzeuge. Der Vergleich dieser beiden Betrachtungsweisen Framework, welches in Abb. 5 dargestellt ist und alle muss deshalb auf einer anderen Ebene erfolgen. wesentlichen Phasen und Aktivitaten¨ der SPL–Entwicklung Der Ansatz des semistrukturierten Merge soll mit der widerspiegelt. themenubergreifenden¨ Verbindung zwischen Produktlinien und Versionsverwaltungssystemen Vorteile fur¨ beide The- A. Variabilitatsmodell¨ des Linux Kernel in der SPL– menbereiche bringen. Die Autoren des semistructured Merge Entwicklung Paper motivierten sich zusatzlich¨ mit jungsten¨ Arbeiten Da das groß–skalierte Feature–Modell fur¨ das Bench- aus dem Umfeld der Software Produktlinien. Der Bezug marken von Analyse– und Modellierungstools entwickelt zu SPL ist eine der wenigen Gemeinsamkeiten zwischen wurde, ist es naheliegend, derartige, in der SPL–Entwicklung den beiden vorgestellten Ansatzen,¨ wobei sich die Variabi- verwendete Tools mittels des Modells zu Testen und zu litatsmodellierung¨ des Linux Kernels doch signifikanter auf Bewerten. Dies stellt jedoch keinen direkten Bezug zum Produktlinien bezieht. Der Linux Kernel ist im Grunde ge- SPL–Framework dar, sondern dient ausschließlich der Be- nommen keine Produktlinie, doch die Ergebnisse unterstutzen¨ wertung der darin eingesetzten Werkzeuge zur Analyse und die Verbesserung der in der SPL–Entwicklung eingesetzten Modellierung von Feature–Modellen. Ein weiterer Bezug zur Werkzeuge. SPL–Vorgehensweise stellt die Konfiguration des Kernels Beide Ansatze¨ verwenden eine gemeinsame Technolo- dar, die genau wie bei einer SPL eine Spezifikation erzeugt, gie, die Modelltransformation. Beim semistructured Merge welche beschreibt, wie das Endprodukt zu erzeugen ist. Daher werden die verschiedenen Revisionen eines Textes unter bestehen auch große Gemeinsamkeiten zwischen Kconfig– Verwendung einer Text2Model“ Transformation zu einer Benutzeroberflachen¨ und Benutzeroberflachen¨ zur Auswahl ” Feature Structure“ gewandelt. Auf diesem Modell werden von Features in SPLs (vgl. [10], Abb. 1). Daher stellen Fea- ” dann die Revisionen zusammengefugt,¨ bevor sie mit einer tures des Linux Kernels, wie in SPLs, ein abstraktes Konzept Model2Text“ Transformation zu einer fertig gemergten fur¨ die Beschreibung von Gemeinsamkeiten (Commonalities) ” Datei transformiert werden. Im Gegensatz dazu wird die und Variabilitatspunkten¨ (Variabilites) dar. Nach Meinung der Modelltranformation, im Kontext des Linux Kernel Papers zur Autoren existieren somit zwar einige Gemeinsamkeiten mit

51 der Entwicklung in einer SPL, jedoch lasst¨ sich das Modell 1 NAMESPACES? 2 [ des Linux Kernels nicht direkt dem Framework in Abb. 5 3 ((NAMESPACES => EMBEDDED) || (!EMBEDDED => (NAMESPACES <=> ! EMBEDDED))) zuordnen. 4 ] 5 { 6 UTS_NS? 7 IPC_NS? [ (IPC_NS => SYSVIPC) ] B. Semistrukturierter Merge in der SPL–Entwicklung 8 USER_NS? [ (USER_NS => EXPERIMENTAL) ] 9 PID_NS? [ (PID_NS => EXPERIMENTAL) ] Der in IV beschriebene Ansatz kann nur sehr begrenzt in 10 } das SPL–Framework eingeordnet werden, da er nur sehr we- nige Gemeinsamkeiten mit dem damit verbundenen Entwick- Abbildung 6. Optionale Sub–Features in LFM Notation lungsprozess aufweist. Jedoch lassen sich die Verfahren des semistrukturierten Merge als auch weitere Merge–Strategien 1 "Basis for grouping tasks" 2 [ bei Realisierungs- bzw. Implementierungsaktivitaten¨ ein- 3 ("Basis for grouping tasks" => GROUP_SCHED) 4 ] bringen. Hierzu gehoren¨ beispielsweise die Domanen-¨ und 5 { 6 ( Applikationsrealisierung (Domain-/ Application Realisation) 7 USER_SCHED? 8 CGROUP_SCHED? [ (CGROUP_SCHED => CGROUPS) ] als auch die Implementierung von damit zusammenhangenden¨ 9 ) Tests. Ein weiterer, geringfugiger¨ Zusammenhang zur modell- 10 } basierten SPL–Vorgehensweise besteht in der Verwendung von Modelltransformationen (siehe Abb. 4), die einerseits Abbildung 7. XOR–Gruppe in LFM Notation das Quellartefakt in einen FST und andererseits das erstellte FST–Modell wieder zuruck¨ in die Sprache des Artefakts transformiert. Zusammenfassend lasst¨ sich jedoch sagen, dass eine Baumstruktur besitzt. Dadurch gehen charakteristische sich das Merge–Verfahren sowohl beim Domain Engineering Eigenschaften wie Validierbarkeit (etwa durch XML–Schema) als auch beim Application Engineering einsetzen lasst,¨ wenn und Interoperabilitat¨ (Durch SAX und DOM) verloren. Der auch nur in sehr begrenztem Maße. Ein letzter, deutlicherer einzige Vorteil von SXFM besteht darin, dass sich Feature– Bezug zur SPL–Entwicklung stellt die Verwendung von Baume¨ mit einem Texteditor einfacher und schneller erstellen FeatureHouse als Werkzeug zur Zusammenstellung von lassen als dies bei der durchgehenden Verwendung von Features, z.B. in dem feature–orientierten Softwareentwick- XML der Fall ware.¨ Auf die Problematik eines sinnvollen lungswerkzeug FeatureIDE10 dar [15]. Austauschformats fur¨ Feature–Modelle wird in Abschnitt VII-B noch naher¨ eingegangen. VII.VERBESSERUNGENZUM ANSATZ DES LINUX Um das LFM nutzen zu konnen,¨ musste¨ es in ein anderes KERNELSALS VARIABILITATSMODELL¨ Dateiformat konvertiert werden. Dies erfordert zunachst¨ das A. LFM Grammatik & Parser Parsen des LFM. Wie in [16] nachzulesen ist, hat einer der Eines der Hauptgrunde¨ fur¨ die Extraktion eines Feature– Autoren von [2] angekundigt,¨ eine Grammatik und einen Modells aus dem Linux Kernel war der Umstand, dass die Parser fur¨ das Dateiformat des LFM bereitzustellen. Da meisten frei zuganglichen¨ Feature–Modelle nicht echten Ent- dies in einem Zeitraum von nunmehr sechs Monaten nicht wicklungsprozessen entstammen, sondern zufallig¨ generiert geschehen ist, haben sich die Verfasser dazu entschlossen, oder im Rahmen von Forschungsarbeiten erstellt wurden [2]. selbst eine passende Grammatik nebst Parser zu entwerfen. Es ist daher fraglich, ob Evaluationen von Werkzeugen zur In [17] finden sich erste Ansatze¨ einer Grammatik allerdings Feature–Modellierung mit synthetischen Testdaten korrekte ist diese noch weit davon entfernt als Grundlage fur¨ einen Ergebnisse liefern. Das aus dem Linux Kernel extrahierte Parser dienen zu konnen.¨ Variabilitatsmodell¨ sollte diese Frage beantworten. Generell lasst¨ sich zwar anhand eines Beispiels eine Gram- Die Autoren von [2] bieten ihr Variabilitatsmodell¨ unter matik fur¨ die entsprechende Sprache erzeugen, allerdings http://fm.gsdlab.org/index.php?title=Model:LinuxX86 zum gibt es keine Garantie dafur,¨ dass diese Grammatik zu Download an. Leider lasst¨ sich dieses Modell nicht unmittel- jender identisch ist mit der das Beispiel generiert wurde. Die bar mit gangigen¨ Werkzeugen wie SPLOT oder FeatureIDE Autoren sind allerdings zuversichtlich, an genugend¨ Even- verwenden, da das Linux Feature–Model (LFM) ein eigenes tualitaten¨ gedacht zu haben, so dass sich auch Variationen Dateiformat verwendet. Zwar existiert mit dem Simple XML des LFM mit dem erstellten Parser verarbeiten lassen. Eine Feature Model (SXFM) ein Ansatz zur Entwicklung eines genau Beschreibung der Grammatik als EBNF findet sich auf der Extensible Markup Language (XML) basierendes in Abschnitt X-A, die notwendigen Dateien zur Erstellung Dateiformats zur Beschreibung von Feature–Modellen, al- eines Parsers mit den Werkzeugen Flex und Bison sind unter lerdings besitzt dieses Format in den Augen der Verfasser http://webuser.fh-furtwangen.de/∼zuckerma/ zu finden. einen groben Designfehler: SXFM definiert eine eigene Bei der Erstellung der Grammatik mussten die Autoren Syntax fur¨ Feature–Baume¨ obwohl XML selbst bereits feststellen, dass das LFM Dateiformat verbesserungsfahig¨ ist. Am besten lasst¨ sich dies durch einen Vergleich der 10http://wwwiti.cs.uni-magdeburg.de/iti db/research/featureide/ Syntax von Features und XOR–Gruppen veranschaulichen.

52 Abbildung 6 zeigt den Aufbau eines Features im LFM. fuhren.¨ Um Entwicklern das Arbeiten mit verschiedenen Dem Namen des Features (hier: NAMESPACES“) wird Feature–Modellierungswerkzeugen zu vereinfachen, schlagen ” ein ?“ als Indikator fur¨ ein optionales Feature angehangt.¨ die Autoren die Einfuhrung¨ einer standardisierten Beschrei- ” Wurde¨ es sich bei dem Feature um einen Untermenu¨ in der bungsstruktur fur¨ Feature–Modelle vor. Kernelkonfiguation handeln, durfte¨ der Name auch aus einem Bei der bereits erwahnten¨ Evaluation von Modellierungs- Stringliteral bestehen. Anschließend folgt in eckigen Klam- werkzeugen stießen die Autoren auf drei untereinander in- mern die Spezifiation der Cross–Tree Constraints. Danach kompatible Dateistrukturen fur¨ die Archivierung von Feature– werden in geschweiften Klammern etwaige Sub–Features Modellen. Die FeatureIDE exportiert und importiert zwei aufgezahlt,¨ die ihrerseits wieder Cross–Tree Constraints und Dateiformate: das Waterloo–Format und ein XML–Format. weitere Sub–Features besitzen konnen.¨ Waterloo verwendet zur Verwaltung der Metadaten zwar Ganz ahnlich¨ sind auch XOR–Gruppen (siehe Abbildung XML, der eigentliche Feature–Tree wird aber in einem 7) aufgebaut, aus denen jeweils immer nur genau eine Option eigenen Syntax verwaltet. Das XML–Format der FeatureIDE gewahlt¨ werden kann. Eine XOR–Gruppe kann ein beliebiges setzt den gesamten Feature–Tree in XML um. Nach Ansicht Stringliteral als Namen besitzen, dem diesmal allerdings kein der Verfasser ist das die bisher beste Losung.¨ Pure::variants ?“ folgen darf. Wie schon bei der Spezifikation von normalen bietet das Character Separated Values (CSV) oder ein ” Features werden auch wieder die Cross–Tree Constraints weiteres XML–Format an. Das XML–Format ist nicht mit in eckigen Klammern angegeben. Daraufhin folgen die dem der FeatureIDE kompatibel, es speichert durchaus in der XOR–Gruppe enthaltenen Features in einem Paar mehr Informationen zu den jeweiligen Features und Benutzt geschweifter und runder Klammern. daruber¨ hinaus XML–Namespaces und generierte IDs mit Es ist deutlich zu erkennen, dass sich Features und denen andere Applikationen nichts anfangen konnen.¨ XOR–Gruppen prinzipiell nur durch die runden Klammern Die Bindung eines Kunden an ein Produkt ist durchaus innerhalb der XOR–Grupper unterschieden lassen. Bevor die beabsichtigt und ist aus wirtschaftlicher Sicht nachvollzieh- offnende,¨ runde Klammer als Token gelesen wird, ist die bar. Doch wurde¨ ein gemeinsamer Standard den ganzen Grammatik nicht eindeutig. Beim Parsen ware¨ einerseits die Wirtschaftszweig weiter bringen. Die Entwicklung eines Reduktion zu einem Feature oder das lesen eines weiteren To- standardisierten Dateiformates wurde¨ weit uber¨ den Umfang kens (in diesem Fall der runden Klammer) mit anschließender dieser Arbeit hinaus gehen. Deshalb sollen die folgenden Reduktion zu einer XOR–Gruppe erlaubt. Dieses Problem Ansatze¨ als Anstoß fur¨ ambitionierte Entwickler dienen. ist in der Literatur als Shift/Reduce–Konflikt bekannt [18]. Die Definition einer eigenen Syntax ist fur¨ eine standar- Der Konflikt lasst¨ sich zwar durch eine Umformung der disierte Sprache kontraproduktiv, die Anlehnung an bereits Grammatik auflosen,¨ allerdings werden die Produktionsregeln bestehende syntaktische Formate ist hier der bessere Weg. dadurch schnell unubersichtlich¨ (vgl. choice–or–option– Wie schon teilweise umgesetzt halten die Verfasser die ” begin“ und choice–or–option–end“ in Abschnitt X-A). Umsetzung auf Basis von XML fur¨ den richtigen Weg. ” Dieses und noch einige weitere, an dieser Stelle nicht naher¨ Diese Syntax ist weit verbreitet und hat sich in vielen Fallen¨ diskutierten, Probleme wurden¨ sich durch den konsequenten als praktikabel erweisen. Zudem sind ausgereifte Parser fur¨ Einsatz von XML weitestgehend vermeiden lassen. nahezu jeder relevante Programmiersprache vorhanden. Die Verfasser initiieren den Vorschlag einer Extensible B. Standardisierte Beschreibungssprache fur¨ Feature– Feature Model Language (XFML). Modellierungswerkzeuge Modelle werden immer unterschiedliche Funktionen anbieten, so dass Wahrend¨ der Entwicklung der Grammatik und des Parsers die Festlegung auf ein statisches Dateiformat zu Problemen12 fur¨ das im Paper veroffentlichte¨ Feature–Modell–Format fuhren¨ kann. Das Dateiformat muss neue Funktionen aufneh- diskutierten die Verfasser dieses Artikels uber¨ eine sinnvolle men konnen,¨ ohne die Kompatibilitat¨ zu gefahrden.¨ Deshalb Darstellung von Feature–Modellen. Dem selben Problem sollte auf die Erweiterbarkeit von XML aufgebaut werden. standen auch die Autoren bei der Evaluation des Feature– Ein weiterer wichtiger Schritt ist der Zusammenschluss Modellierungswerkzeuges: FeatureIDE11 und dem Variabi- fuhrender¨ Anbieter von Modellierungswerkzeugen und deren litatsmodellierungswerkzeug:¨ pure::variants gegenuber.¨ verpflichtender Einsatz des standardisierten Formates. Dieser Die jeweiligen Beschreibungsstrukturen sind naturlich¨ im- Zusammenschluss kann daruber¨ hinaus die Entwicklung des mer auf einzelnen Applikationen zugeschnitten und versuchen Formates uberwachen¨ und unterstutzen.¨ die angebotenen Funktionen bestmoglich¨ auf ein Dateiformat abzubilden. Kommen im Laufe eines Entwicklungszyklus C. Grafische Darstellung von Feature–Modellen mehrere verschiedene Werkzeuge zum Einsatz, mussen¨ die Feature–Diagramme sind die visualisierte Darstellung von Formate untereinander umgewandelt werden. Diese Kon- Feature–Modellen. Die visuelle Manipulation von Feature– vertierung kann in einigen Fallen¨ zu Informationsverlusten Modellen bietet dem Entwickler eine einfache Moglichkeit¨

11Anm. d. Ver. siehe Abschnitt IV-C 12Anm. d. Ver. neue Funktionen passen nicht in die vorhandene Struktur

53 ubersichtlich¨ zu arbeiten. Abhangigkeiten,¨ Alternativen oder D. Minimalkonfiguration OR-Gruppen sind grafisch schneller einzuordnen als auf Die Verfasser des Artikels uber¨ die Variabilitat¨ des Linux textell abgelegten Feature–Modellen. Weitestgehend hat sich Kernel benutzten verschiedene statistische Auswertungen. fur¨ die grafische Aufbereitung die Czarnecki–Eisenecker No- Unter anderem haben die Autoren sowohl eine minimale, tation durchgesetzt. Die Vielzahl der aktuell verfugbaren¨ Mo- als auch eine maximale Konfiguration des Linux Kernels dellierungswerkzeuge verwendet die Czarnecki–Eisenecker erstellt. Es wurden die vordefinierten Konfigurationen allno Notation oder eine davon abgeleitete Notation. Die Darstel- fur¨ die minimale und allyes fur¨ die maximale Konfiguration lung in dieser Notation hat einen entscheidenden Nachteil, verwendet. Im Falle von allyes wird versucht so viele Features fur¨ den bis dato keine befriedigende Losung¨ gefunden wurde. wie moglich¨ zu aktivieren. Im Gegensatz versucht die Kon- Sollen Cross–tree Abhangigkeiten¨ dargestellt werden, wird figuration allno alle uberfl¨ ussigen¨ Features zu deaktivieren. das Diagramm sehr schnell unubersichtlich.¨ Diesem Problem Diese beiden Konfigurationsmoglichkeiten¨ zielen auf die standen die Autoren des Linux Kernel Paper ebenfalls minimale bzw. maximale Anzahl an Features ab [2]. Die gegenuber.¨ Die Verfasser handhabten dieses Problem, indem Verfasser dieses Artikels sind der Ansicht, dass fur¨ eine sie alle Cross–tree Abhangigkeiten¨ textuell mit booleschen minimale und maximale Konfiguration auch der Kontext Ausdrucken¨ den jeweiligen Features hinzufugten.¨ Der Vorteil bestimmter Features miteinbezogen werden sollen. einer grafischen Darstellung von Abhangigkeiten¨ wurde zu Die Konfiguration des Linux Kernels erlaubt es bei der Gunsten der Ubersicht¨ aufgegeben [2]. Aktivierung bestimmter Features, dass mehrere andere dafur¨ Die mangelnde Visualisierung von Cross–tree deaktiviert werden konnen.¨ Diese Moglichkeit¨ wurde, soweit Abhangigkeiten¨ wurde bisher als nicht problematisch erkennbar, in dem genannten Artikel nicht berucksichtigt.¨ eingestuft. Grund fur¨ diese Einschatzung¨ war die Als Beispiel, ist die Konfiguration fur¨ kleine Systeme zu Annahme, dass Cross–tree Abhangigkeiten¨ fur¨ die Feature– nennen. Diese Einstellung erlaubt die Konfiguration fur¨ Modellierung lediglich eine untergeordnete Rolle spielen. nicht standardkonforme Kernel. Diese Kernel finden in Mit der eindrucksvollen Wiederlegung dieser Annahme der Regel Einsatz im Ebeddedbereich. Die Konfiguration haben die Verfasser des Linux Kernel Artikels eine CONFIG EMBEDDED Configure standard kernel features ” Schwachstelle identifiziert, die aufgrund mangelnder, (for small systems)“ erlaubt es Basisfeatures zu deaktivieren. realistischer Feature–Modelle nicht aufgedeckt werden Die Auswirkungen dieser Verbesserung konnen¨ vorerst konnte. nur abgeschatzt¨ werden. Die Durchfuhrung¨ von Messungen Diese Problematik stellt Hersteller von Visualisierungs- und erneute Bewertung der Ergebnisse wurde¨ den Umfang werkzeugen vor eine große Herausforderung. Das Ziel muss dieser Ausarbeitung deutlich uberschreiten.¨ Die Verfasser ein Diagramm sein, dass sowohl dem Entwickler eine gute dieses Artikels schatzen¨ die Abweichungen jedoch als nicht Ubersicht¨ uber¨ ein gesamtes Projekt bieten kann als auch ausschlaggebend ein. Ohne detaillierte Messungen bleibt funktional alle Abhangigkeiten¨ (hierarchisch als auch Cross– diese Annahme allerdings unbelegt. tree) visualisieren kann. Im vorliegenden Fall wurden die Abweichungen als gering Als ersten Ansatz schlagen die Autoren dieses Artikels vor, eingeschatzt,¨ jedoch konnen¨ die Abweichungen in anderen vorhandene Feature–Modellierungswerkzeuge um die Ein– Projekten deutlich großer¨ ausfallen. Wenn aus statistischen Ausblendung von Cross–tree Abhangigkeiten¨ zu erweitern. Berechnungen Schlusse¨ gezogen werden, sind die zugrun- Dies erlaubt dem Entwickler Feature–Modelle ubersichtlich¨ de liegenden Zahlen mit großer Sorgfalt zu ermittel. Im zu entwerfen und dennoch die Abhanigkeiten¨ kontrollieren schlimmsten Fall furt¨ dies zu einem falschen Ergebnis. zu konnen.¨ Dieser Ansatz kann zu zwei getrennte Sichten Auch wenn die Autoren des Linux Kernel Artikels diese auf das selbe Feature–Modell verfeinert werden, sodass Moglichkeit¨ nicht in Betracht zogen, sehen die Autoren ein Feature–Modell nur fur¨ hierarchische Abhangigkeiten¨ dieses Papers, die Einbeziehung von Metainformationen zu konzipiert wird und eine weitere Sicht existiert, die alle Cross- bestimmten Features, um extreme Konfigurationen zu Test- tree Abhangigkeiten¨ visualisiert. Die getrennte Darstellung zwecken zu erstellen, als interessanten Ansatz fur¨ kommende eines einzigen Feature–Modells kann jedoch auch nachteilige Untersuchungen an. Auswirkungen haben. E. Portage als Feature–Modell Daruber¨ hinaus, werden Cross–tree Abhangigkeiten¨ mit Hilfe von booleschen Beschrankungen¨ (Constraints) beschrie- Der Linux Kernel als solches ist fur¨ ein vollstandiges¨ Be- ben. Die Auswirkung ist, dass Features schnell von mehreren triebssystem nicht ausreichend. Um ein funktionales System anderen Features abhangig¨ werden. Das Extrembeispiel bereitzustellen, fehlen daruber¨ hinaus diverse Softwaremodu- aus dem Linux Kernel Paper sind 22 Abhangigkeiten¨ in le, die den Linux Kernel zu einem gesamtem Betriebssystem einer einzigen Beschrankung.¨ Die Visualisierung dieser komplettieren. Die zusatzlichen¨ Module bestehen in der Beschrankungen¨ ware¨ ein weiterer Ausblick um Feature– Regel aus weiteren GNU–Paketen. Diese Softwarepakete Modellierungswerkzeuge zu erweitern. in Verbindung mit spezifischen Einstellungen werden zu

54 Distributionen zusammengefasst. Distributionen werden so zu definieren. Ein Paket kann eine Gruppe definieren aus fur¨ bestimmte Einsatzzwecke entworfen. der mindestens ein Paket als Abhangigkeit¨ installiert werden Ein fester Bestandteil aktueller Distributionen sind Paket- muss. Diese werden, der Czarnecki–Eisenecker Notation verwaltungssysteme. Diese Systeme stellen eine große Anzahl nach als OR–Gruppe interpretiert. In vielen Fallen¨ wird an Bibliotheken, Applikationen und andere Softwarearten mit dieser Methode eine Abhangigkeit¨ zu einem Paket dem Anwender zur Verfugung.¨ Je nach Distribution werden in verschiedenen Versionen definiert. Wenn das Use–Flag die Pakete als Source–Code oder als Binarpakete¨ verteilt. Da- python fur¨ das Paket app-emulation/libvirt gesetzt wird, bei sind Pakete nicht auf Open–Source Software beschrankt,¨ sind die Alternativen um Python Unterstutzung¨ zu erreichen auch proprietare¨ Pakete konnen¨ so verteilt werden. Diese die Versionen 2.4 bis 2.7. Neben der Unterstutzung¨ fur¨ Verwaltungssysteme verwalten die Pakete in einer ahnlichen¨ verschiedene Versionen werden Alternativen fur¨ ahnliche¨ Struktur wie Feature–Modelle. Pakete verwendet. Um die Unterstutzung¨ fur¨ VirtualBox fur¨ Aufgrund der Erfahrung der Autoren mit der Gentoo das Paket app-emulation/libvirt zu befriedigen, kann sowohl Distribution wurde fur¨ diesen Artikel das Paketverwaltungs- das Paket app-emulation/virtualbox-ose oder die Alternative system portage auf die Eigenschaften von Feature–Modellen app-emulation/virtualbox-bin verwendet werden. untersucht. Bis zu diesem Zeitpunk wurden im Kontext von Porta- Portage fallt¨ aus der Reihe der Linux Paketverwaltungssys- ge als Feature–Modell keine hierarchische Abhangigkeiten¨ teme heraus. Obwohl auch Binarpakete¨ mit Portage verteilt diskutiert. Der Grund dafur¨ ist, dass Portage dafur¨ kei- werden konnen,¨ ist das Paketverwaltungssystem von Gentoo ne verbindlichen Strukturen vorsieht. Die Verfasser dieses dafur¨ ausgelegt Pakete als Source–Code zu verwalten. Die Artikels interpretierten deshalb die Kategorisierung auf Starke¨ von Gentoo ist, dass samtliche¨ Pakete individuell Paketnamensebene fur¨ eine hierarchische Abhangigkeit.¨ Die kompiliert werden konnen.¨ Dabei werden die Pakete fur¨ des Namensgebung der Pakete basiert auf zwei Eigenschaften: jeweilige System optimiert ubersetzt¨ [19]. Vorangestellt wird der Name der Kategorie, in die das Paket Die Optimierung basiert auf einer Technik, die sich Use– grob fallt.¨ Mit einem einfachen Slash getrennt folgt der Flags nennt. Jedes Paket kann definieren ob Funktionen eigentliche Paketname. Fugt¨ man eine virtuelle Wurzel allen wahrend¨ des Kompiliervorgangs miteinbezogen werden sollen Kategorien, die als Feature interpretiert werden, hinzu konnen¨ oder nicht. Das Use–Flag ipv6 aktiviert bzw. deaktiviert an diese Knoten die Pakete angehangt¨ werden. Diese Struktur beispielsweise den Support fur¨ das neue Internet Protokoll besitzt eine Tiefe von zwei und alle Blatter¨ (Pakete) befinden fur¨ bestimmte Pakete. Dieses Use–Flag ist generell fur¨ Server sich auf Ebene drei. Die technische Umsetzung von Portage oder Netzwerkpakete interessant, aber es verdeutlicht die pragt¨ die Struktur des Feature Diagramm maßgeblich, somit Funktionsweise der Optimierung. Diese Use–Flags konnen¨ sind die hierarchischen Abhangigkeiten¨ fur¨ Vergleiche mit global fur¨ alle Pakete definiert werden oder fur¨ jedes Paket anderen Modellen nicht zu gebrauchen. lokal. Neben dem hier vorgestellten Flag ipv6 existieren noch Die Autoren stellten, mit dem in Abschnitt VII-F beschrie- etwa 400 weitere Use–Flags um ein Gentoosystem zu optimie- benen Pythonscript, einfache Messungen auf dem erzeug- ren. Die Optimierung uber¨ die genannten Use–Flags werden ten Feature–Modell an. Die Ergebnisse basieren auf 8341 von den Autoren dieses Artikels als Variabilitatspunkte¨ aktiven Paketen die mit insgesamt 34643 Abhangigkeiten,¨ interpretiert. Daruber¨ hinaus werden die einzelnen Pakete als entweder zwingend Erforderliche, oder bedingungsbasie- Feature ausgelegt [19]. rende Abhangigkeiten¨ verbunden sind. Dazu kommen 802 Zu einem vollstandigen¨ Feature–Modell mussen¨ zusatzlich¨ mogliche¨ Alternativen. Ein Paket hat im Durchschnitt 4.15 die Verbindungen zwischen den Paketen analysiert und Abhangigkeiten¨ zu anderen Paketen. Deutlich geringer sind eingeschatzt¨ werden. Portage ist in der Lage Abhangigkeiten¨ die Moglichkeiten¨ verschiedene Pakete auszuwahlen.¨ Pro zwischen Paketen zu berucksichtigen.¨ Die Abhangigkeiten¨ Paket gibt es durchsnittlich 0.096 Moglichkeiten¨ Alternativen zwischen Paketen werden als Cross–tree Abhangigkeiten¨ auszuwahlen.¨ Daraus folgern die Autoren, dass OR– bzw. interpretiert. Das Paket net-misc/openssh braucht, um korrekt XOR–Gruppen geringer auftreten, als direkte oder bedin- zu arbeiten unter allen Umstanden¨ das Bibliothekspaket gungsbasierende Abhangigkeiten.¨ Den Maximalwert mit 161 dev-libs/openssl. Diese Abhangigkeit¨ ist bedingungslos. Im Abhangigkeiten¨ zu anderen Paketen bildet das Paket app- Gegensatz dazu konnen¨ uber¨ Use–Flags Abhangigkeiten¨ an doc/linux-gazette-all. Die maximale Anzahl an moglichen¨ Bedingungen geknupft¨ werden. Fur¨ das vorangegangene Alternativauswahlen liegt bei vier und wird vom Paket app- Beispiel des Paketes net-misc/openssh ist bei der Kom- office/lyx angeboten. 13 pilierung mit dem X Use–Flag das weitere Paket x11- Diese Auswertungen sind im Vergleich zu den detaillierten apps/xauth zu installieren. Die Abhangigkeiten¨ sind uber¨ Auswertungen des Linux Kernel Papers nicht ausgereift. Das den gesamten Portagebaum verstreut und folgen keinen Ziel der Verfasser ist es jedoch kein vergleichbares Kon- festgelegten Strukturen. kurrenzmodell aufzustellen, sondern aufzuzeigen, dass groß Portage unterstutzt¨ neben den zwingenden und bedingungs- gebundenen Abhangigkeiten¨ eine weitere Art Abhangigkeiten¨ 13Anm. d. Ver. Eigene Messungen

55 skalierte Feature–Modelle aus bestehenden GNU–Projekten 1 IUSE="bzip2 clamdtop iconv milter selinux ipv6" 2 gewonnen werden konnen.¨ Je nachdem was fur¨ ein Projekt 3 COMMON_DEPEND="bzip2? ( app-arch/bzip2 ) 4 milter? ( || ( mail-filter/libmilter mail-mta/sendmail ) ) fur¨ Auswertungen herangezogen wird, ist ein Mapping vom 5 iconv? ( virtual/libiconv ) 6 clamdtop? ( sys-libs/ncurses ) Projektvariabilitaten¨ zu Features und Abhangigkeiten¨ notig.¨ 7 >=sys-libs/zlib-1.2.1-r3 8 >=sys-apps/sed-4" 9 10 DEPEND="${COMMON_DEPEND} F. Werkzeug zur Analyse von Portage 11 >=dev-util/pkgconfig-0.20" 12 1) Format der Ebuilds: Das Paketverwaltungssystem 13 RDEPEND="${COMMON_DEPEND} 14 selinux? ( sec-policy/selinux-clamav ) Portage verwaltet die Informationen uber¨ die verfugbaren¨ 15 sys-apps/grep" Pakete und deren Abhangigkeiten¨ in sog. Ebuild–Dateien. Die Ebuilds finden sich auf einem normalen Gentoo–System Abbildung 8. Variabilitat¨ des ClamAV Ebuilds im Portage–Tree unter /usr/portage. Dort existieren zunachst¨ Unterordner fur¨ verschiedene Software–Kategorien. Jedes installierbare Pakete ist genau einer Kategorie zugeord- und virtual/jre“, die einen Texteditor und ein Java Runtime ” net. So gehoren¨ etwa alle Softwarepakete fur¨ die Verwaltung Environment bereitstellen. Dabei ist es vollkommen irrelevant von Dateisystemen zur Kategorie sys-fs“. In den Kategorie– ob es sich bei dem Editor um Vi oder Emacs oder im Falle ” Verzeichnissen sind die Ordner fur¨ die einzelnen Pakete des JRE um die Implementierung von Oracle oder IBM abgelegt, die letztendlich die Ebuilds enthalten. handelt. Zu jedem Paket ist fur¨ gewohnlich¨ mehr als nur ein Ebuild Durch die freie Wahl von Programmversionen (unter den vorhanden, da unter Gentoo, im Gegensatz zu anderen Linux– o.g. Einschrankungen),¨ dem Slot–Mechanismus und dem Distributionen, zwischen verschiedenen Versionen einer Konzept der virtuellen Pakete zeigt der Portage–Tree ein Software gewahlt¨ werden kann. Im Fall des beliebten Web– Maß an Variabilitat,¨ das weit uber¨ das bloße Vorhandensein Browsers Firefox kann ein Gentoo–Benutzer frei entscheiden, von bestimmten Features hinausgeht. Jedes Feature (→ Paket) ob er Version 2.0.0.19, 3.5.8, 3.6.3, 3.6.4 oder 3.6.6 nutzen kann in mehreren Versionen vorliegen, die unter Umstanden¨ mochte¨ [20]. Diese Entscheidungsfreiheit kann allerdings gar keine funktionalen Unterschiede aufweisen. Genau aus durch Abhangigkeiten¨ und das Konzept der Maskierung diesem Umstand sind sich die Verfasser derzeit noch unsicher, eingeschrankt¨ werden. wie sich Versionen und Slots am besten in ein Variabi- Angenommen ein beliebiges, installiertes Paket besaße¨ eine litatsmodell¨ integrieren lassen. Ein naiver Ansatz bestunde¨ Abhangigkeit¨ die fordert, dass das Paket www-client/mozilla- darin, jedes Paket als Variabilitatspunkt¨ und die konkreten firefox mindestens in Version 3 vorliegen muss, so ware¨ Versionen des Pakets als Varianten zu interpretieren. Im Version 2.0.0.19 des Browsers nicht wahlbar.¨ Pakete, die neu weiteren Verlauf werden daher samtliche¨ Pakete auch aus in den Portage–Tree aufgenommen werden sind maskiert. Grunden¨ der Ubersichtlichkeit¨ ohne Versionen und Slots So soll verhindert werden, das instabile Software (→ Beta– betrachtet. Version einer Datenbank?) auf Produktivsystemen Schaden Abbildung 8 zeigt exemplarisch den fur¨ die Variabilitat¨ anrichten kann. Maskierte Pakete mussen¨ vom Benutzer erst verantwortlichen Teil eines Ebuilds am Beispiel des Virens- explizit freigeschaltet werden, bevor Portage die Installation canners ClamAV. Die erste Zeile definiert die sog. Use– zulasst.¨ Erst wenn ein Paket mindestens 30 Tage lang Flags. Ein Use–Flag ist ein boolescher Wert, der angibt, getestet wurde und in den vergangenen 30 Tagen keine neuen ob ein Paket mit einer bestimmten Funktionalitat¨ ubersetzt¨ Probleme aufgetreten sind wird das Paket von den Gentoo– werden soll oder nicht. Das setzen des Use–Flags milter“ ” Entwicklern selbst demaskiert [21]. hatte¨ beispielsweise zur Folge, dass sich ClamAV als Milter Zusatzlich¨ zu den Versionsnummern bietet Gentoo fur¨ [22] in Sendmail integrieren lasst.¨ In den Use–Flags liegt einige Pakete noch sog. Slots an. Ein Paket, welches mehrere zugleich die großte¨ Starke¨ von Gentoo Linux: Features, die Slots besitzt erlaub die parallele Installation von mehreren nicht benotigt¨ werden mussen¨ nicht installiert werden, was Programmversionen. Die GNU Compiller Collection (GCC) zu einem schlanken und sicheren System fuhrt.¨ ist ein Paradebeispiel fur¨ die Verwendung von Slots. Fur¨ Anschließend folgt die Spezifikation der Abhangigkeiten.¨ jeden Entwicklungszweig der GCC, wie etwa die Versionen Portage unterscheidet zwischen Build-, Runtime- und 3.4.* oder 4.5.*, wird ein eigener Slot definiert, der mehrere Post–Merge Abhangigkeiten¨ (siehe [23], Abschnitt De- ” Versionen des Pakets anbietet. Aus jedem Slot kann genau pendencies“). Build–Abhangigkeiten¨ sind in der Varia- eine Version installiert werden. blen DEPEND“ in Zeile 10–11 aufgezahlt¨ und werden ” Neben den herkommlichen¨ Paketen, die je eine bestimmte beim Ubersetzen¨ der Software benotigt.¨ Typische Build– Software reprasentieren,¨ bietet Portage auch Unterstutzung¨ Abhangigkeiten¨ sind Bibliotheken wie etwa zlib“ zur Daten- ” fur¨ virtuelle Pakete. Durch virtuelle Pakete wird nicht ein kompression. Abhangigkeiten,¨ die erst zur Laufzeit benotigt¨ bestimmtes Programm, sondern eine bestimmte Funktionalitat¨ werden sind im Ebuild in der Variablen RDEPEND“ (Zeile ” bereitgestellt, die von verschiedenen Programmen angeboten 13–15) zu finden. Elemente die in RDEPEND aber nicht in werden kann. Beispiele hierfur¨ sind die Pakete virtual/editor“ DEPEND aufgezahlt¨ sind konnen¨ theoretisch auch erst nach ”

56 Gentoo/Portage Feature–Modell der Installation bereitgestellt werden. Schließlich existieren Modelliertes System noch Post–Merge Abhangigkeiten.¨ Ber Begriff merge“ ist Paket Optionales Feature ” Use–Flag an dieser Stelle eine Gentoo–spezifische Terminologie und ⇒ Optional Optionales Sub–Feature bezeichnet die Installation eines Softwarepakets. Dies spiegelt Erzungen Obligatorisches Sub–Feature sich auch bei der Verwendung von Portage wieder, da das Virtuelle Pakete Optionales Feature & Oder–Gruppe primare¨ Kommandozeilenwerkzeug den Namen emerge“ Abhangigkeiten¨ ” ⇒ Cross–tree constraints besitzt. Eine Post–Merge Abhangigkeit¨ darf demnach erst Blocker nach der Installation des entsprechenden Pakets gemergt Tabelle I werden. Es ist durchaus ublich,¨ Pakete, die in mehreren ABBILDUNGVON EBUILDS AUF FEATURE–MODELLE Abhangigkeitsklasssen¨ vorkommen, in eine eigene Variable namens COMMON DEPEND“ auszulagern, um die Les- ” barkeit und die Wartbarkeit des Ebuilds zu verbessen. Neben vorherigen Abschnitt wurden bereits einige Einschrankungen¨ den explizit aufgezahlten¨ Abhangigkeiten¨ besitzt jedes Ebuild dieser Transformation erlautert.¨ Der Vollstandigkeit¨ halber eine implizite Abhangigkeit¨ auf das system“–Set in dem ” werden im Folgenden nochmals alle Einschrankungen¨ auf- wichtige Entwicklerwerkzeuge wie die glibc, flex, libtool gezahlt:¨ und die GCC enthalten sind. Abhangigkeiten¨ lassen sich des Weiteren in optionale und • Versionen und Slots werden ignoriert zwingend erforderliche Abhangigkeiten¨ unterteilen. Optio- • Instabile Pakete (˜arch) werden ignoriert nale Abhangigkeiten¨ sind durch die Notation Use–Flag? ( • Build–Abhangigkeiten¨ werden ignoriert ” • Die implizite Abhangigkeit¨ von system“ wird ignoriert Paketnamen )“ zu erkennen. Ist das entsprechende Use–Flag ” gesetzt, so sind die in runden Klammern angegebenen Pakete Die ersten beiden Punkte, Versionen und Slots, durften¨ eine Abhangigkeit.¨ Zwingend erforderliche Abhangigkeiten¨ streng genommen nicht ignoriert werden um ein akkurates mussen¨ unabhangig¨ von den Use–Flags immer erfullt¨ werden. Abbild des Portage–Tree in Form eines Feature–Modells Besteht die Liste der Paketnamen aus mehr als einem Element, zu erstellen. Viele Pakete spezifizieren explizit bestimmte so kann sie mittels des Operators ||“ als Alternativauswahl Versionen oder Slots in denen ihre Abhangigkeiten¨ vorliegen ” kenntlich gemacht werden. In diesem Fall wird nur ein mussen.¨ Da aber noch zu klaren¨ ist, wie sich verschiedene einziges Paket aus der Liste benotigt¨ um der Abhangigkeit¨ Versionen des selben Features am besten in ein Feature– zu genugen.¨ Modell integrieren lassen, haben sich die Autoren vorerst Fur¨ jede Abhangigkeit¨ lassen sich zusatzlich¨ noch die dazu entschlossen auf die Abbildung des Versionierungskon- Version und die Use–Flags einschranken.¨ Durch die Angabe zepts zu verzichten. Trotz dem Fehlen dieser Informationen einer Versionsnummer und eines Vergleichsoperators kann lassen sich aus dem generierten Modell einige interessante festgelegt werden, welche Versionen der Abhangigkeit¨ erlaubt Fakten ablesen (siehe Abschnitt VII-E). sind. In Zeile 7 wird somit erzwungen, dass das Paket Weniger Anlass zu kontroversen Diskussionen geben zlib mindestens in Version 1.2.1-r3 vorliegen muss. Der die beiden letzten Punkte auf der Liste. Abhangigkeiten¨ Versionsnummer konnte¨ daruber¨ hinaus noch eine Use–Flag– auf Programme im system–Set und auf Pakete, die nur Spezifikation in eckigen Klammern folgen. Diese Use–Flags beim Ubersetzen¨ der Software benotigt¨ werden ergeben mussten¨ dann auch in der Abhangigkeit¨ aktiv sein. sich aufgrund der Tatsache, dass es sich bei Gentoo um Eine besondere Art von Abhangigkeit¨ sind die sog. Blocker. eine Meta–Distribution handelt. Bei nicht–quellbasierten Wird einer normalen Abhangigkeit¨ ein !“ vorangestellt, Distributionen sind diese Abhangigkeiten¨ dementsprechend ” so wird die Installation eines Pakets verhindert, falls die gar nicht vorhanden. Auch Gentoo bietet als Alternative die Abhangigkeit¨ erfullt¨ ist. Dies erlaubt es zu verhindern, dass Verwendung von Binarpaketen¨ an, wodurch das system–Set zueinander inkompatible Pakete auf einem System installiert und die in DEPEND enthaltenen Pakete nicht langer¨ als werden. Abhangigkeit¨ zu betrachten sind. Aus genau diesem Grund Erwahnenswert¨ ist an dieser Stelle auch das ipv6“ Use– wurden diese Pakete und die von ihnen erzeugen Cross–tree ” Flag. Dieses Flag steuert, ob die Software mit Unterstutzung¨ Constraints auch nicht in das Feature–Modell aufgenommen. fur¨ das IPv6–Protokoll ubersetzt¨ wird. Interessanterweise Ahnlich¨ wie in [2] lassen sich die meisten Merkmale hat der Zustand dieses Flags keinerlei Auswirkungen auf von Portage gemaߨ der Zuordnung in Tabelle I auf ein die Abhangigkeiten¨ von ClamAV. Dennoch handelt es sich Feature–Modell ubertragen.¨ Wahrend¨ ein Feature–Modell bei IPv6 um ein Feature, dass bei der folgenden Modell- fur¨ gewohnlich¨ die Variabilitat¨ innerhalb einer Produktlinie transformation nicht ignoriert werden darf, da das Modell beinhaltet, zeigt das im Folgenden vorgestellte Modell die Va- anderenfalls unvollstandig¨ ware.¨ riabilitat¨ einer Linux–Distribution auf. Die einzelnen Features 2) Modelltransformation des Portage-Trees: Die in den der Linux–Distribution stellen dabei die installierbaren Pakete einzelnen Ebuilds enthaltenen Informationen erlauben es nun, dar. Der Begriff Paket“ ist an dieser Stelle wohlgemerkt nicht ” den Portage–Tree in ein Feature–Modell zu uberf¨ uhren.¨ Im auf Software eingeschrankt.¨ Gentoo bietet beispielsweise in

57 der Kategorie app-doc“ auch eine Vielzahl von Dokumenten 1 ” 2 wie etwa die Single Unix Specification (SUS) zur Installation 3 4 an. Ebenfalls zu beachten ist, dass es sich bei allen Paketen 5 6 um optionale Features handelt. Auch wenn ein Linux–System 7 8 mitunter durch die Deinstallation von wichtigen Paketen wie 9 10 etwa den coreutils“ nahezu unbrauchbar gemacht werden 11 ” 12 kann, ist ein derart fataler Einsatz des Paketmanagements 13 14 dennoch moglich.¨ 15 16 Auch die Use–Flags der einzelnen Pakete werden auf 17 18 Features abgebildet. Ein Use–Flag ist dabei stets mit einem 19 bestimmten Paket verkupft,¨ denn nur in Verbindung mit einem Paket besitzt ein Use–Flag eine Bedeutung. Dies Abbildung 9. Transformierte Version der ClamAV Variabilitat¨ hat zur Folge, dass Use–Flags stets ein Sub–Feature eines Pakets sind. Anders als normale Pakete konnen¨ Use–Flags auch obligatorisch sein. Jede Gentoo–Installation besitzt ein zen lassen und um interessierten Lesern die Moglichkeit¨ globales Profil, das vom Anwender festgelegt wird und zu geben selbst weitere Untersuchungen am Portage–Tree Standadwerte fur¨ einige Use–Flags anbietet. Dies soll dem durchzufuhren,¨ haben die Verfasser ein Werkzeug namens Anwender helfen, sein System moglichst¨ einfach fur¨ einen portvar“ entwickelt, das unter http://webuser.fh-furtwangen. ” bestimmten Einsatzzweck (etwa Desktop oder Server) zu de/∼zuckerma/ zum Download bereit steht. Portvar erlaubt optimieren. Neben einfachen Standardwerten kann durch es, den gesamten Portage–Tree nach den fur¨ ein Feature– Profile auch der Zustand von Use–Flags erzwungen werden. Modell relevanten Informationen zu durchsuchen und diese Wahlt¨ ein Anwender ein multilib“–Profil aus, so wird das in einer einzelnen Datei zu aggregieren. Der Aufruf von ” multilib“ Use–Flag global gesetzt und kann nicht deaktiviert portvar erzeugt im aktuellen Verzeichnis eine Datei namens ” werden. portage.xml“, was je nach Geschwindigkeit des Systems ” Virtuelle Pakete werden auf optionale Features und Oder– mehrere Minuten dauern kann. Gruppen abgebildet. Die Grunde¨ hierfur¨ liegen auf der Hand: Zur Einsparung von Entwicklungsaufwand und kunftigen¨ genau wie bei normalen Paketen existiert kein Mechanismus, Wartungsarbeiten greift portvar direkt auf die bestehende der ein virtuelles Paket obligatorisch macht. Nur wenn andere Infrastruktur von Portage und den Hilsprogrammen im Paket Pakete ein virtuelles Paket als Abhangigkeit¨ besitzen mussen¨ app-portage/gentoolkit“ zuruck.¨ Dies beschrankt¨ zwar den ” diese Installiert werden. Da die gewunschte¨ Funktionalitat¨ des Einsatz von portvar auf Gentoo–Systeme, erlaubt es aber virtuellen Pakets von ein oder mehreren normalen Paketen auch, uber¨ das API von Portage [24] bequem auf Ebuilds bereitgestellt werden kann, bietet sich die Verwendung einer zuzugreifen ohne die Dateien manuell zu parsen oder auf Oder–Gruppe an. Hierbei ist nicht ausgeschlossen, dass erweitere Portage–Features wie eclasses“ Rucksicht¨ zu ” mehrere Pakete der Oder–Gruppe parallel auf einem System nehmen. installiert werden. Abbildung 9 zeigt den Teil der von portvar erzeugten Alle ubrigen¨ Elemente eines Ebuilds (abgesehen von XML–Datei, der aus dem ClamAV–Ebuild aus Abbildung 8 Blockern) stellen Cross–tree Constraints dar. Generelle erzeugt wurde. Das Paket selbst wird durch den Package“– ” Abhangigkeiten¨ von Paketen, Anforderungen an bestimmte Knoten reprasentiert¨ (Zeile 1 & 19). Als Kindelemente des Paketversionen und Use–Flags lassen sich vollstandig¨ durch Pakets folgen anschließend die einzelnen Use–Flags und Require–Constraints darstellen. deren Standardeinstellungen seitens des Pakets (Zeile 2–7). Fur¨ XOR–Gruppen haben die Verfasser noch kein direktes Use–Flags, deren Einstellung durch ein Profil erzwungen Aquivalent¨ im Portage–Tree gefunden. Em ehesten lassen wird, sind momentan noch nicht besonders gekennzeichnet. sich die Blocker mit XOR–Gruppen aus Feature–Modellen In einer zukunftigen¨ Version von portvar konnten¨ die Use– vergleichen. Blockiert sich eine Menge von Paketen ge- Flag–Knoten um das Attribut forced = yes/no“ erweitert ” genseitig, so kann immer nur ein Paket aus dieser Menge werden um erzwungene Werte darzustellen. installiert sein. Es gilt noch zu untersuchen, inwiefern sich Abhangigkeiten¨ werden durch Dependency“–Knoten dar- ” Blocker tatsachlich¨ auf XOR–Gruppen abbilden lassen, oder gestellt (Zeile 8–18). Das Attribut condition“ ist gesetzt, ” ob Exclude–Constraints noch doch besser hierfur¨ geeignet falls die Abhangigkeit¨ nur greift wenn ein bestimmes Use– waren.¨ Um Blocker nicht in dem erzeugten Feature–Modell Flag gesetzt ist. Im Attribut name“ ist der Name des ” zu ignorieren, gehen die Verfasser davon aus, dass sich diese abhangigen¨ Pakets hinterlegt. Sobald das Versionierungs– am besten durch die zuletzt genannten Exclude–Constraints und Slotproblem gelost¨ wurde, werden sich hier auch ausdrucken¨ lassen. Angaben zum bentotigten¨ Slot und zur benotigten¨ Version der Um zu sehen, wie gut sich die theoretischen Uberlegungen¨ Abhangigkeit¨ finden. Handelt es sich bei der Abhangigkeit¨ um aus den vorhergehenden Abschnitten in die Praxis umset- einen Blocker, so besitzt der Dependency–Knoten zusatzlich¨

58 93 String mergeCmd = ""; und die Anwendung somit lauffahig¨ zu machen. Dabei muss 94 if(System.getProperty("os.name").contains("Windows")) 95 mergeCmd = "C:\\Programme\\cygwin\\bin\\merge.exe -q -p " + "\"" + im Paket Merger“ in der Datei LineBasedMerger.java“ die fileVar1.getPath() + "\"" + "" + "\"" + fileBase.getPath() + ” ” "\"" + "" + "\"" + fileVar2.getPath() + "\"";// + " > " + Zuweisung des in Zeile 93 definierten mergeCmd“ in Zeile fileVar1.getName() + "_output"; ” 96 else 95 (Windows) bzw. 97 (Linux) so angepasst werden, dass das 97 mergeCmd = "merge -q -p " + fileVar1.getPath() + "" + fileBase. getPath() + "" + fileVar2.getPath();// + " > " + fileVar1. gewunschte¨ Merge–Programm vom System gefunden wird getName() + "_output"; (siehe Abb. 10). Dies kann einerseits durch das Entfernen des absoluten Pfades und das Hinzufugen¨ der merge.exe in die Abbildung 10. Ausschnitt des FeatureHouse Quellcode (Stand vom 27.04.2010) globale PATH–Variable des Betriebssystem oder andererseits durch das Setzen des korrekten, absoluten Pfades zur Datei erfolgen. Eine weitere Moglichkeit¨ wurde¨ darin bestehen, das Attribut type“ mit dem Wert blocker“ um ein Exclude– den Pfad zu der gewunschten¨ Datei per Kommandozeile ” ” Constraint zu signalisieren. Dependency–Knoten konnen¨ auch zu ubergeben,¨ worauf in vorliegender Arbeit jedoch nicht ein oder mehrere Use–Flag–Knoten als Kindelemente besit- detaillierter eingegangen wird. zen. Diese Use–Flag–Knoten zeigen dann an, welche Use– Eine weiterer, erwahnenswerter¨ Aspekt zur Verbesserung Flags die Abhangigkeit¨ umsetzen muss. Eine Besonderheit von FeatureHouse ware¨ das Ersetzen des veralteten GNU stellen an dieser noch alternative Abhangigkeiten¨ dar. Treten RCS Mergetools durch die Verwendung eines aktuellen Tools zwei oder mehr Dependency–Knoten als Kindelemente eines wie z.B. Git Merge, welches neben dem Three–Way–Merge Alternative“–Knoten auf (Zeile 9–12), so genugt¨ es, wenn auch die Besonderheit bietet, eine fur¨ die zu mergenden ” eine dieser Abhangigkeiten¨ erfullt¨ ist. Dies sollte nicht mit Versionen best geeignete Basis zu finden [13]. Die Integration alternativen Features und Oder–Gruppen verwechselt werden. des Git Merges kann relativ einfach durch das Ersetzen des Kommandos (siehe Abb. 10) merge.exe“ durch den An dieser Stelle geht es ausschließlich um Abhangigkeiten,¨ ” Aufruf git merge-file“ durchgefuhrt¨ werden. Dies fuhrt¨ nicht um Features. ” Eine weitere Einschrankung¨ von portvar besteht darin, einen einfachen File–Merge mittels der Git Merge–Engine dass das erzeugte Modell stark von den Einstellungen in durch anstatt das GNU RCS Merge–Werkzeug zu verwenden. /etc/portage/ abhangig¨ ist. Dort finden sich verschie- Hierbei ist jedoch zu beachten, dass eine Git–Installation dene Konfigurationsdateien, die es unter anderem erlauben, vorhanden sein muss und der Pfad im Quellcode (wie oben Pakete zu demaskieren. Um ein moglichst¨ unverfalschtes¨ beschrieben) wiederum korrekt gesetzt sein muss. Modell zu erhalten, empfehlen die Autoren, diesen Ordner B. Codestrukturierung temporar¨ an einen anderen Ort zu verschieben oder ihm einen anderen Namen zu geben. Auch hier ware¨ es nutzlich¨ zu Ein Problem, was durch den SSM–Ansatz gelost¨ wird, untersuchen, ob das Portage–API es erlaubt, alle Benutzer- ist das Auftreten von Ordering–Konflikten beim Mergen einstellungen zu ignorieren um derarte Hacks in Zukungt von Entwicklungsartefakten. Jedoch entsteht durch den uberfl¨ ussig¨ zu machen. SSM ein weiteres verbesserungswurdiges¨ Problem, wenn u.a. Programmiersprachen wie C oder C++ zum Einsatz VIII.VERBESSERUNGENZUM ANSATZ DES kommen. Bei Quellcode–Dateien dieser Sprachen kann es von SEMISTRUKTURIERTEN MERGE notwendiger Relevanz sein, die Reihenfolge von Codekon- strukten (z.B. Template- oder Funktion–Deklarationen oder A. FeatureHouse -Definitionen) beizubehalten. Ein weiterer Aspekt, welcher Die in Abschnitt IV-C und IV-D erwahnten¨ Probleme fur¨ die Beibehaltung der Quellcode–Struktur spricht, ist und die dazugehorige¨ Kritik bezuglich¨ FeatureHouse wurde die Erhaltung von Ubersichtlichkeit¨ und damit verbundener von den Autoren als Ausgangspunkt fur¨ eine maßgebliche Code–Wartbarkeit. Daher konnte¨ dies als Ausgangspunkt Analyse von Verbesserungsmaßnahmen verwendet. Durch fur¨ weitere Forschungsarbeiten genutzt werden, welche sich eine von den Verfassern durchgefuhrte¨ genauere Inspektion mit dieser Thematik auseinandersetzen. Nach Meinung der konnten die genannten Konflikte, speziell im Fall der schlech- Verfasser konnten¨ z.B. Produktionsregeln fur¨ den Prozess der ten Interoperabilitat,¨ schnell lokalisiert werden. Verfugt¨ der FST–Ubereinanderlagerung¨ oder fur¨ die Ausgabe des Pretty Anwender nicht eins–zu–eins uber¨ dieselbe Systemumgebung Printers definiert werden, welche den Code nach bestimmten wie die Entwickler von FeatureHouse, so ist die Anwendung Regeln zusammenfugt¨ bzw. ausgibt. nicht lauffahig.¨ Der Grund hierfur¨ ist auf nicht korrekt Bestandteile im original Source–Code zuruckzuf¨ uhren.¨ Darin C. Minimieren von Refactoring–Konflikten werden sog. hart–codierte Strings verwendet (siehe Abb. 10), Ein wichtiger und nach Meinung der Verfasser sehr pra- welche zur Konfiguration der Anwendung dienen. Das fuhrt¨ xisrelevanter Aspekt von Verbesserungsmoglichkeiten¨ liegt dazu, dass der Quellcode zuerst einer entsprechenden Modifi- in der Minimierung von Merge–Konflikten, welche durch kation bedarf, um ein problemloses Auffinden der benotigten¨ sog. Refactorings verursacht werden. Das automatisierte Bibliothek bzw. referenzierten Anwendung zu garantieren Handhaben von Refactoring gestaltet sich SCM–Systemen

59 sehr schwierig, da nicht nur die Refactoring–Operationen Feedback von Entwicklern zu sammeln und zu untersuchen, selbst als Zusatzinformation mit einbezogen werden mussen,¨ inwiefern sich durch eine Anpassung des Programmierstils sondern auch die damit entstehenden Abhangigkeiten¨ und semistrukturierte Verfahren zur Konfliktlosung¨ unterstutzen¨ Modifikationen berucksichtigt¨ werden mussen,¨ welche u.U. lassen. zeitgleich mit den Coderefactorings erfolgt sind [25]. Somit Fur¨ beide Ansatze¨ wurden¨ sich vor allem Open–Source reichen die Informationen, welche beim SSM vorhanden Projekte anbieten, die in C# oder Java mithilfe eines verteilten sind nicht aus, um Refactoring–Konflikte aufzulosen.¨ Die Versionskontrollsystems wie etwa Bazar, Git oder Mercurial fehlenden Angaben mussen¨ daher mit einem erganzenden¨ entwickelt werden. Der Quellcode solcher Projekte ware¨ Mechanismus hinzugefugt¨ und gehandhabt werden. frei verfugbar,¨ die vorgeschlagenen Programmiersprachen Den bis dato ersten Ansatz hierfur¨ stellt das MolhadoRef– werden bereits von FeatureHouse unterstutzt¨ und der Einsatz ” Project“14 zur Verfugung,¨ welches den Ansatz des Operation– eines verteilten Versionskontrollsystems erhoht¨ die Chance, ” Based“ Merge [26] erweitert und einen Merge–Algorithmus dass bei der Entwicklung eine hohe Anzahl an Branch- und definiert [25]. Dabei werden sowohl durchgefuhrte¨ Refacto- Merge–Operationen durchgefuhrt¨ wird. rings als auch weitere Codeanderungen¨ aufgezeichnet, so dass Die Autoren haben sich aus den oben genannten Grunden¨ sie zu einem spateren¨ Zeitpunkt (beim Merge) wieder abge- fur¨ den zweiten Ansatz entschieden und eine Moglichkeit¨ erar- spielt werden konnen¨ und zusatzlich¨ eine Ruckverfolgbarkeit¨ beitet. mit der sich FeatureHouse in das Versionsverwaltungs- herstellen. Fur¨ die Implementierung des Ansatzes wurde system Git integrieren lasst.¨ Alle dafur¨ benotigten¨ Dateien die Eclipse–IDE15 als Front–End verwendet, womit sowohl finden sich unter http://webuser.fh-furtwangen.de/∼zuckerma/. die darin enthalte Vergleichskomponente (Compare Engine) Der ausschlaggebende Grund fur¨ die Wahl von Git war als auch die Refactoring Engine als Basis fur¨ die Auf- die Tatsache, dass die Verfasser selbst viel Erfahrung im zeichnung genutzt werden konnen.¨ Als Back–End wurde Umgang mit diesem System besitzen. Prinzipiell sollte sich das Molhado–SCM–Framework16 eingesetzt und erweitert. das hier dargestelle Vorgehen aber auch auf viele andere Das Resultat dieser Arbeit ist uberzeugend.¨ In einem Fall- SCM–Systeme ubertragen¨ lassen. beispiel des MolhadoRef–Codes entstand im Vergleich zu Git erlaubt es, in seiner Konfiguration eigene Merge– ” Concurrent Versions System (CVS)17, welches 36 Konflikte Treiber“ fur¨ bestimmte Dateitypen zu definieren [27]. Genau erzeugte, lediglich ein einziger Konflikt [25]. Das Problem diesen Mechanismus machen sich die Autoren zur Integration dieses Systems spiegelt sich jedoch in einer bisher nicht von FeatureHouse in Git zunutze. Standardmaßig¨ verwendet veroffentlichten¨ Version der Anwedung und in Form von Git zum Zusammenfuhren¨ von Textdateien das Werkzeug git– ” fehlender Dokumentation wider. Weiterhin problematisch ist merge–file“, das zum klassichen merge“ aus dem Revision ” die Abhangigkeit¨ zu der Eclipse–IDE. Somit war es fur¨ die Control System (RCS)–Paket kompatibel ist[28]. Fur¨ den Autoren nicht moglich,¨ die Anwendung auf deren Integration Aufruf von git–merge–file sind drei Parameter erforderlich: in den SSM zu untersuchen oder die Verwendbarkeit in current–file“ fur¨ die eigene Version der Datei, base–file“ fur¨ ” ” z.B. Git oder Subversion zu analysieren um eine eventuelle den gemeinsamen Vorganger¨ und other–file“ fur¨ die Version ” Implementierung umzusetzen. einer dritten Partei. Aus diesen drei Versionen erzeugt git– merge–file eine neue Revision, die sowohl die Anderungen¨ D. Integration von FeatureHouse in Git aus current–file“ als auch aus other–file“ beinhaltet. Treten ” ” Die Autoren von [1] fuhren¨ mehrfach an, dass noch zu dabei Konflikte auf, die sich nicht automatisch losen¨ lassen, untersuchen ist, wie sich der semistrukturierte Merge in der signalisiert git–merge–file uber¨ den Ruckgabewert¨ einen Praxis verhalt.¨ Diese Frage lasst¨ sich nur durch das Sammeln Fehler und Git fordert den Anwender auf, die Konflikte von Erfahrung an echten Softwareprojekten beantworten. selbst zu losen.¨ Auch Sicht der Verfasser existieren hierzu zwei mogliche¨ Im Gegensatz zu git–merge–file, das immer nur eine Ansatze.¨ Zum einen ware¨ es moglich,¨ die Versionsgeschichte einzelne Datei betrachtet, ist FeatureHouse in der Lage, mit von verschiedenen Projekten automatisiert nach Konflikten einem Aufruf mehrere Dateien zusammenzufuhren.¨ Hierfur¨ zu durchsuchen. Fur¨ jeden gefundenen Konflikt konnte¨ dann benotigt¨ FeatureHouse als Parameter den Pfad zu einer gestestet werden, ob dieser durch einen semistrukturierten .features–Datei. In dieser Datei werden die Namen von Merge zu verhindern gewesen ware.¨ drei Ordnern aufgezahlt,¨ in denen sich zwei Varianten und Eine andere Moglichkeit¨ bestunde¨ darin, ein bestehendes die gemeinsame Basisversion des Quellcodes befinden. Das SCM–Werkzeug so zu erweitern, dass es selbst direkt in der Ergebnis der Merge–Operation wird von FeatureHouse in Lage ist, Konflikte mit FeatureHouse zu losen.¨ Im Gegensatz einem separaten, vierten Ordner gespeichert. zur Codeanalyse bote¨ sich hier gleichzeitig die Chance, Um FeatureHouse nun in Verbindung mit Git nutzen zu konnen,¨ haben die Autoren ein Shell–Skript namens 14https://netfiles.uiuc.edu/dig/MolhadoRef/molhadoref.html featurehouse–driver.sh“ entworfen. Dieses Skript wird von 15http://eclipse.org/ ” 16http://home.eng.iastate.edu/∼tien/molhado/index.html Git anstelle von git–merge–file aufgerufen. Es erstellt in ei- 17http://www.cvshome.org/ nem temporaren¨ Verzeichnis die von FeatureHouse benotigte¨

60 1 # .git/config: FeatureHouse in ein SCM die Moglichkeit,¨ die Praxistaug- 2 [merge "featurehouse"] 3 name = FeatureHouse Semistructured merge lichkeit des semistrukturierten Merge anhand von echten 4 driver = /path/to/featurehouse-driver.sh %O %A %B Projekten zu untersuchen und gibt damit neue Impulse fur¨ die Weiterentwicklung von Merge–Strategien. Abbildung 11. Git–Konfiguration zur Nutzung von FeatureHouse (1) IX.AUSSICHTEN &FUTURE WORK 1 # .gitattributes: 2 *.cs merge=featurehouse A. Probleme 1) Kritik am Feature–Modell des Linux Kernels: Das Abbildung 12. Git–Konfiguration zur Nutzung von FeatureHouse (2) Paper uber¨ die Variabilitat¨ des Linux Kernels besitzt eine Schwachstelle, die bis hier hin weder angesprochen, noch Ordnerstruktur, kopiert die von Git als Parameter ubergebenen¨ untersucht wurde. Die Autoren nahmen den Linux Kernel Dateien in die entsprechenden Ordner und erzeugt eine detailliert auseinander, kategorisierten seine Features, stellten .features–Datei. Anschliessend wird die Merge–Operation mit Messungen an und zogen daraus Erkenntnisse, wie groß FeatureHouse durchgefuhrt,¨ das Ergebnis zuruck¨ in das Git– skalierte Softwaresysteme, als Feature–Modell aufgebaut Repository kopiert und das temporare¨ Verzeichnis entfernt. seien. Diese Arbeit, mit dem Ziel ein Referenzmodell fur¨ Um das Skript zu nutzen, muss dieses zunachst¨ modifi- Benchmarking zu erreichen, ist ein lobenswerter Ansatz und ziert werden, indem der korrekte Pfad zur .jar–Datei von ein initiales Zeichen fur¨ Modellierungswerkzeuganbieter und FeatureHouse eingetragen wird. Danach muss Git konfigu- Anwender von Software Produktlinien. Jedoch verfugt¨ dieser riert werden, um den neuen Merge–Treiber zu verwenden. Ansatz uber¨ eine Schwache,¨ die die meisten neuen Theorien Abbildung 11 zeigt die hierfur¨ notwendigen Einstellungen. besitzen: Die Beweisbarkeit der Ergebnisse. Diese konnen¨ entweder in der Konfigurationsdatei eines Die Verfasser des Linux Kernel Artikels stellen ihre bestimmten Projekts (.git/config) oder in die globale Ergebnisse als Umbruch im Denken um Feature–Modelle Konfigurationsdatei (˜/.gitconfig) eingetragen werden. dar. Diese Aussagen basieren auf der Untersuchen eines Daruber¨ hinaus muss noch festgelegt werden, welche Dateity- einzigen großeren¨ Softwaresystems. Daruber¨ hinaus beruhen pen der neue Merge–Treiber behandeln soll. Hierfur¨ mussen¨ die Erkenntnisse auf Vergleiche zu Feature–Modellen, die hauptsachlich¨ auf Proof–of–Concept“ Arbeiten, auf zufallig¨ die in Abbildung 12 gezeigten Einstellungen in die Datei ” .gitattributes eingetragen werden. Generierten Modellen oder auf zu kleinen Modellen basierten. Ein bisher noch ungelostes¨ Problem ist die Unterscheidung Dieser Kritikpunkt soll als generelle Kritik verstanden werden zwischen verschiedenen Programmiersprachen. Git generiert und ist kein Angriff auf die Verfasser des Linux Kernel Papers. fur¨ current-, other- und base–file je temporare¨ Dateien ohne Die Schlussfolgerungen aus der Arbeit mit dem Linux Kernel Dateiendung. Da FeatureHouse anhand der Dateiendung mussen¨ mit weiteren Messungen an groß skalierten Projekten allerdings entscheidet, welche Grammatik zum Parsen des belegt werden. Dieses Paper versuchte mit den Ansatzen¨ aus Quellcodes verwendet wird, ist der Verlust der Dateiendung Abschnitt VII-E, Anstoße¨ fur¨ weitere Untersuchungen an fatal. Da die Anzahl der von FeatureHouse unterstutzen¨ Open–Source Projekten zu geben. Spachen zum gegenwartigen¨ Zeitpunkt noch ubersichtlich¨ Nach Ansicht der Verfasser dieses Artikels, sind die ist, besteht die Losung¨ fur¨ dieses Problem darin, einen teilweise großen Unterschiede nicht nur auf falsche Annah- Merge–Treiber pro Programmiersprache einzusetzen, der men im Bereich der Feature–Modellierung zuruckzuf¨ uhren.¨ anhand der Eintrage¨ in .gitattributes ausgewahlt¨ wird. Die Verfasser des Linux Kernel Papers verglichen, aus Langfristig sollte allerdings ein Mechanismus erarbeitet Mangel an Vergleichsmodellen, das extrahierte Modell des werden, der es dem Merge–Treiber oder FeatureHouse erlaubt, Linux Kernels mit Modellen, auf deren Basis Software den korrekten Dateityp anhand des Dateiinhalts zu erkennen. entwickelt werden soll. Wird die Feature–Modellierung fur¨ Auch Konflikte, die FeatureHouse noch nicht selbstandig¨ die Entwicklung einer Architektur oder eines Entwurfs losen¨ kann stellen ein Problem dar. Ahnlich¨ wie bei merge“ benutzt, werden die Features in der Regel an Anforderungen ” aus dem RCS und git–merge–file werden die verbleibenden bzw. Geschaftsprozesse¨ ausgerichtet. Im Gegensatz dazu, Konflikte direkt in der fraglichen Datei mit speziellen Tokens entsteht ein anderes Modell, wenn aus einer evolutionaren¨ markiert. FeatureHouse verwendet hier allerdings eine eigene Software nachtraglich¨ ein Feature–Modell extrahiert wird. Notation, die von gangien¨ Werkzeugen wie KDiff3 nicht unterstutzt¨ wird. Die verbleibenden Konflikte mussen¨ bei der B. SCM–Tool Integration Verwendung von FeatureHouse also manuell per Texteditor Nachdem eine erfolgreiche Integration in Git umgesetzt aufgelost¨ werden — ein Unterfangen, das nach Auffassung werden konnte, ware¨ ein sinnvoller zukunftiger¨ Ansatz, die der Autoren nicht nur zeitraubend sondern auch fehleranfallig¨ Integration des SSM in die zu Anfang erwahnten,¨ verbreiteten ist. SCM–Systeme zu untersuchen, wie beispielsweise Subversi- Trotz der genannten Probleme bietet die Integration von on oder Mercurial.

61 C. Praxisnahes Variablitatsmodell¨ feature-name ::= feature | string-literal; Ein weiterer, sinnvoller Ansatz fur¨ die Verbesserung von feature-selectable ::= [ “?” feature-typespec ]; Feature–Modellierungswerkzeugen ware¨ der Entwurf und feature-typespec ::= [ “:” feature-type-symbol ]; die Entwicklung von groß–skalierten, umfangreichen und feature-type-symbol ::= “int” realitatsbezogenen¨ Feature–Modellen oder die Umsetzung | “bmode” einer komplexen SPL. Dies konnte¨ beispielsweise in Form | “hex” eines iterativen Semesterprojektes oder im Zusammenhang | “string”; mit einer Abschlussarbeit erfolgen. Dies Ansatz¨ konnte¨ z.- options ::= [ “[” complex-expression B. an der Hochschule Furtwagen durchgefuhrt¨ werden. Ein “]” ]; weiterer, dabei positiv zu erwahnender¨ Gesichtspunkt ware¨ feature-list ::= [ “{” feature-list-elements eine damit resultierende Verbesserung des Lernprozesses, “}” ]; insbesondere in der modellgetriebenen SPL–Entwicklung. choice-list-element ::= { feature-specification } X.RESUMEE¨ feature-specification; feature-list-elements ::= { feature-list-element } Die Autoren haben in der vorliegenden Arbeit die prakti- feature-list-element; sche Relevanz von zwei aktuellen Entwicklungen im Bereich feature-list-element ::= option-group-element; der Variabilitatsmodellierung¨ und der Versionsverwaltung complex-expression ::= expression-list; untersucht, Gemeinsamkeiten zwischen den Ansatzen¨ her- expression-list ::= assignment-expression { “,” vorgehoben und daruber¨ hinaus konkrete Vorschlage¨ zur assignment-expression }; Verbesserung erarbeitet. Das Variabliltatsmodell¨ des Linux assignment-expression ::= or-expression Kernels eroffnet¨ Entwicklern die einzigartige Moglichkeit¨ | feature “=” etablierte Werkzeuge im Bereich der Feature–Modellierung assignment-expression; mit einem umfangreichen, nicht–synthetischen Datensatz or-expression ::= { and-expression “||” } zu testen. Mit Hilfe des entwickelten portvar–Skripts lasst¨ and-expression; sich aus dem Portage–Tree von Gentoo–Linux, ein Feature– and-expression ::= { relational-expression Modell extrahieren, das einen ahnlichen¨ Umfang wie das “&&” } des Linux Kernels besitzt. Der Ansatz des semistrukturierten relational-expression; Merge stellt eine sinnvolle Erweiterung zum bisherigen de– relational-expression ::= { default-expression facto Standard — dem Three–Way–Merge — dar und besitzt relational-operator } das Potential, in naher Zukunft Einzug in Versionsverwal- default-expression; default-expression ::= { dependency-expression tungssystem fur¨ Endanwender zu halten. Dank des wahrend¨ “<=>” } dieser Arbeit entwickelten Merge–Treibers fur¨ Git lasst¨ sich dependency-expression; das Verhalten des semistrukturierten Merge bereits heute im dependency- ::= { negation-expression “=>” verteilten Versionsverwaltungssystem Git anwenden. expression } negation-expression; A. Anhang: LFM Grammatik negation-expression ::= expression option-group ::= string-literal “{” | “!” negation-expression; option-group-elements “}”; relational-operator ::= “<=” option-group-elements ::= { option-group-element }; | “>=”; option-group-element ::= choice-or-option-begin expression ::= feature | feature-specification; | constant choices ::= “{”“(” feature-list-elements | string-literal “)”“}”; | “(” complex-expression “)”; choice-or-option-begin ::= string-literal ( “[” feature ::= alphanum-character { complex-expression “]” alphanum-character }; choices | “{” constant ::= “0x” hex-character { choice-or-option-end “}” ); hex-character }; choice-or-option-end ::= “(” choice-list-element “)” | option-group-elements; feature-specification ::= feature-name feature-selectable options feature-list;

62 string-literal ::= second-quote-symbol { ( 2007. [Online]. Available: http://fame-dbms.org/publications/ alphanum-character | “”) SPLC-OSSPL2007-Sincero.pdf } second-quote-symbol; [11] A. Myatt, Managing Version Control, 1st ed. Apress, 3 2007, hex-character ::= digit-symbol | “A” | “B” | pp. 333–352. “C” | “D” | “E” | “F”; [12] T. Mens, “A state-of-the-art survey on software merging,” IEEE alphanum-character ::= hex-character | “ ” | “G” | Trans. Softw. Eng., vol. 28, no. 5, pp. 449–462, 2002. [13] S. Chacon, Git Branching, new. ed. Apress, 9 2009, ch. 3, “H” | “I” | “J” | “K” | “L” pp. 47–52. | “M” | “N” | “O” | “P” | [14] F. J. van der Linden, E. Rommes, and K. Schmid, The Software “Q” | “R” | “S” | “T” | “U” Product Line Engineering Framework, 1st ed. Springer, Berlin, | “V” | “W” | “X” | “Y” | 9 2007, ch. 4, p. 48. “Z” | “a” | “b” | “c” | “d” | [15] C. Kastner, T. Thum, G. Saake, J. Feigenspan, T. Leich, F. Wielgorz, and S. Apel, “Featureide: A tool framework “e” | “f” | “g” | “h” | “i” | for feature-oriented software development,” in ICSE ’09: “j” | “k” | “l” | “m” | “n” | Proceedings of the 31st International Conference on Software “o” | “p” | “q” | “r” | “s” | Engineering. Washington, DC, USA: IEEE Computer Society, “t” | “u” | “v” | “w” | “x” | 2009, pp. 611–614. “y” | “z”; [16] S. She, “Model: LinuxX86 - Feature Model Repository - digit-symbol ::= “0” | “1” | “2” | “3” | “4” | Generative Software Development Research Group,” http:// fm.gsdlab.org/index.php?title=Model:LinuxX86, 2010, letzter “5” | “6” | “7” | “8” | “9”; Zugriff am 12. Juli 2010. [17] S. She, “Format: FMGrammar - Feature Model Repository - LITERATUR Generative Software Development Research Group,” http://fm. gsdlab.org/index.php?title=Format:FMGrammar, 2009, letzter [1] S. Apel, J. Liebig, C. Lengauer, C. Kastner,¨ and W. R. Cook, Zugriff am 12. Juli 2010. “Semistructured merge in revision control systems,” in VaMoS, [18] S. D. Pezaris, “Shift-reduce conflicts in lr parsers,” SIGPLAN ser. ICB-Research Report, D. Benavides, D. S. Batory, and Not., vol. 24, no. 11, pp. 94–95, 1989. P. Grunbacher,¨ Eds., vol. 37. Universitat¨ Duisburg-Essen, [19] Gentoo, “A Portage Introduction,” http://www.gentoo.org/doc/ 2010, pp. 13–19. en/handbook/handbook-x86.xml?part=2&chap=1, 2010, letzter [2] S. She, R. Lotufo, T. Berger, A. Wasowski, and K. Czarnecki, Zugriff am 6. Juli 2010. “The variability model of the linux kernel,” in VaMoS, ser. [20] M. Valstar, “Gentoo Portage - www-client/mozilla-firefox,” ICB-Research Report, D. Benavides, D. S. Batory, and http://gentoo-portage.com/www-client/mozilla-firefox, 2010, P. Grunbacher,¨ Eds., vol. 37. Universitat¨ Duisburg-Essen, letzter Zugriff am 12. Juli 2010. 2010, pp. 45–51. [21] Gentoo Foundation, “Gentoo Linux Documentation - Arch Tes- [3] W. F. Tichy, “Rcs—a system for version control,” Software— ting Procedures,” http://www.gentoo.org/proj/en/base/amd64/ Practice and Experience, vol. 15, no. 7, pp. 637–654, 1985. tests/index.xml?part=1&chap=2, 2010, letzter Zugriff am 12. [4] K. C. Kang, S. G. Cohen, J. A. Hess, W. E. Novak, and A. S. Juli 2010. Peterson, “Feature-oriented domain analysis (foda) feasibility [22] Sendmail Inc., “milter.org - An interactive catalog of sendmail study,” Carnegie-Mellon University Software Engineering mail filters,” https://www.milter.org/, 2010, letzter Zugriff am Institute, Tech. Rep., November 1990. 12. Juli 2010. [5] K. Czarnecki, S. Helsen, and U. Eisenecker, “Staged confi- [23] Gentoo Foundation, “Gentoo Development Guide,” http:// guration using feature models,” in Software Product Lines: devmanual.gentoo.org/, 2010, letzter Zugriff am 12. Juli 2010. Third International Conference, SPLC 2004. Springer-Verlag, [24] Gentoo Foundation, “Gentoo Portage API Documentation,” 2004, pp. 266–283. http://dev.gentoo.org/∼zmedico/portage/doc/api/, 2010, letzter [6] M. L. Griss, J. Favaro, and M. d. Alessandro, “Integrating Zugriff am 12. Juli 2010. feature modeling with the rseb,” in ICSR ’98: Proceedings [25] D. Dig, K. Manzoor, R. Johnson, and T. N. Nguyen, of the 5th International Conference on Software Reuse. “Refactoring-aware configuration management for object- Washington, DC, USA: IEEE Computer Society, 1998, p. 76. oriented programs,” in ICSE ’07: Proceedings of the 29th [7] J. V. Gurp, B. Jan, and M. Svahnberg, “On the notion international conference on Software Engineering. Washing- of variability in software product lines,” in WICSA ’01: ton, DC, USA: IEEE Computer Society, 2007, pp. 427–436. Proceedings of the Working IEEE/IFIP Conference on Software [26] E. Lippe and N. van Oosterom, “Operation-based merging,” Architecture. Washington, DC, USA: IEEE Computer Society, SIGSOFT Softw. Eng. Notes, vol. 17, no. 5, pp. 78–87, 1992. 2001, p. 45. [27] Kernel.org, “gitattributes(5) Manual Page,” http://www.kernel. [8] Samsung, “Support for LN52A650,” http://www. org/pub/software/scm/git/docs/gitattributes.html, 2010, letzter samsung.com/ca/support/detail/supportPrdDetail.do?menu= Zugriff am 12. Juli 2010. SP01&prd ia cd=02010100&prd mdl cd=&prd mdl [28] Kernel.org, “git–merge–file(1) Manual Page,” http://www. name=LN52A650A1F, 2010, letzter Zugriff am 6. Juli 2010. kernel.org/pub/software/scm/git/docs/git-merge-file.html, [9] , “Android Overview,” http://www. 2010, letzter Zugriff am 12. Juli 2010. openhandsetalliance.com/android overview.html, 2010, letzter [29] D. Benavides, D. S. Batory, and P. Grunbacher,¨ Eds., Fourth Zugriff am 6. Juli 2010. International Workshop on Variability Modelling of Software- [10] J. Sincero, H. Schirmeier, W. Schroder-Preikschat,¨ and Intensive Systems, Linz, Austria, January 27-29, 2010. Pro- O. Spinczyk, “Is The Linux Kernel a Software Product ceedings, ser. ICB-Research Report, vol. 37. Universitat¨ Line?” in Proceedings of the International Workshop on Duisburg-Essen, 2010. Open Source Software and Product Lines (SPLC-OSSPL 2007), F. van der Linden and B. Lundell, Eds., Kyoto, Japan,

63

Improving Product Derivation in Software Product Line Engineering

Pádraig O’Leary, Ita Richardson Steffen Thiel Lero – the Irish Software Engineering Department of Computer Science Research Centre Furtwangen University of Applied Sciences University of Limerick, Ireland Germany { padraig.oleary | ita.richardson}@lero.ie [email protected]

Abstract—The derivation of individual products from a Product Derivation is the process of constructing a software product line is still seen as a time-consuming and product from a Software Product Line’s (SPL) core assets expensive activity in many organisations. Despite recognition [3]. An effective product derivation process can help to that an effective derivation process could alleviate many of the ensure that the benefits delivered through using these shared difficulties associated with product development, little work artefacts across the products within a product line is greater has been dedicated to this area. Existing approaches have very than the effort required to develop the shared assets. In fact, different scope and emphasize various aspects of the derivation the underlying assumption in SPL that “the investments process. Furthermore, they are frequently too specialised to a required for building the reusable assets during domain particular development technique to serve as a general engineering are outweighed by the benefits of rapid solution. This leaves organisations with no centralized starting point for defining an approach to product derivation. derivation of individual products” [4] might not hold if Accordingly there is a strong need for a structured inefficient derivation practices diminishes the expected approach to product derivation which defines activities, tasks, gains. roles, inputs and outputs of each step in a systematic way. II. PROBLEM STATEMENT Through a series of research phases using sources in industry and academia, this research has developed a process reference In the context of inefficient product derivation, a number model for product derivation (Pro-PD) which is briefly of publications speak of the difficulties associated with the sketched in this paper. Pro-PD focuses on the essential tasks, process. Hotz et al. [2] describe it as “slow and error prone, roles and work artefacts used to derive products from a even if no new development is involved”. Griss [5] identifies software product line. The model is also adaptable and can be the inherent complexity and the coordination required in the tailored to suit different requirements. derivation process by stating that “…as a product is defined by selecting a group of features, a carefully coordinated and Keywords—product derivation; process model; software complicated mixture of parts of different components are product line engineering; activities; artefacts; stakeholders involved”. Therefore, the derivation of individual products from shared software assets is still a time-consuming and I. INTRODUCTION expensive activity in many organisations [3]. A Software Product Line (SPL) is a set of software- Despite this, there has been little work dedicated to the intensive systems that share a common, managed set of overall product derivation process. Rabiser et al. [6], for features satisfying the specific needs of a particular market example, claim that “guidance and support are needed to segment or mission and that are developed from a common increase efficiency and to deal with complexity of product set of core assets in a prescribed way [1]. The SPL approach derivation”. Deelstra et al. [3] state that there “is a lack of makes a distinction between domain engineering, where a methodological support for application engineering and, common platform for a number of products is designed and consequently, organizations fail to exploit the full benefits of implemented, and application engineering, where a product software product families.” As a result current approaches is derived based on the platform components [2]. The fail to provide a holistic view of product derivation leaving separation into domain engineering and application organizations with no centralized starting point for defining engineering allows the development of software artefacts an approach to product derivation. This results in ad-hoc which are shared among the products within that domain. solutions. These shared artefacts become separate entities in their own Due to this need for a structured approach to product right, subscribing to providing shared functionality across derivation, the authors identified the following research multiple products. objective: It is during application engineering that the individual To define a systematic process, which will provide a products within a product line are constructed. The products structured approach to the derivation of products from a are built using a number of shared software artefacts created software product line, based on a set of tasks, roles and work during domain engineering. The process of creating these products, and to demonstrate its adaptability to different individual products using the platform artefacts is known as process models. product derivation.

65 To meet this objective, we developed Pro-PD: Process is adapted to fit the characteristics of an iterative process Model for Product Derivation. Pro-PD was iteratively model. developed and evaluated through four research phases involving academic and industrial sources. IV. RESEARCH DESIGN III. APPROACH The objective of our research is to provide an evidence In order to achieve the objective defined above, this based process approach for product derivation. With this in research has developed the Pro-PD process for product mind, our research design was influenced by Ahlemann et al. derivation. Pro-PD is a process reference model for product [8] which focused on empirically grounded and valid process derivation that is minimal, complete, and adaptable: model construction. Phase 1 and 2 are the primary  Minimal – only content that is seen as essential for construction steps. Phase 3 is both a development and an product derivation is included evaluation step. Phase 4 is purely an evaluation step. An overview of the research design is presented in Figure 1.  Complete – it can be manifested as an entire process to Pro-PD was developed using development – evaluation build a system phases (see Figure 1). Version one of Pro-PD was developed  Adaptable – it can be adapted to different process types through sources in the literature and captured expert opinion, and evaluated during an industrial case study with Robert Pro-PD is a minimally complete process reference model Bosch GmbH. Version two was developed based on a study for product derivation. This means that only fundamental of derivation practices at Robert Bosch GmbH and evaluated product derivation process content is included. Domain and during a research collaboration with the DOPLER discipline specific content is not included in Pro-PD and Pro- laboratory. Version three was developed based on the PD is independent of the methods and techniques used to findings of the research collaboration with DOPLER. This derive a product. Pro-PD focuses instead on the essential version was evaluated through an inter-model evaluation and tasks, roles and artefacts used to derive products from a an adapted SPL evaluation framework. Finally, with the software product line. results of this closing evaluation integrated, version four of Pro-PD is adaptable; it can be used as a foundation from Pro-PD was developed. which company specific product derivation process content can be developed. The process structure is based on the waterfall model [7]; however, to demonstrate its flexibility, it

Figure 1. Research Design

66  Test the Product - validates the current product build. V. PRO-PD OVERVIEW  Management and Assessment - provides feedback to the Pro-PD focuses on the roles, artifacts, tasks and activities platform team and monitor progress of derivation used to derive products from a software product line. These project. elements represent the process building blocks of Pro-PD. Roles represent a set of related skills and responsibilities. Table 1 lists the tasks performed for each of these activities. Artifacts are produced, modified or used by tasks. Tasks are assignable units of work that usually consume or produce one or more products. Activities are grouping of related tasks that share a specific development goal. TABLE I. PRO-PD ACTIVITIES AND TASKS

A. Units of Work: Tasks and Activities Activity Tasks performed in this activity Tasks are assignable units of work that consume or Initiate Project Translate Customer Requirements; produce one or more products. To make process building and Coverage Analysis; Customer understanding easier, Pro-PD groups related tasks into Negotiation; Create the Product Activities. Activities have specific development goals. Pro- Requirements PD uses activities as the building blocks from which different development phases (i.e. Preparing for Derivation, Identify and Find and Outline Requirements; Create Product Configuration, Product Development and Testing) Refine the Product Test Cases; Allocate can be constructed during process instantiation. Figure 2 Requirements Requirements; Create Guidance for gives on overview of these Pro-PD activities and the iterative Decision Makers nature of the Pro-PD process. Derive the Select Closest Matching Configuration; These activities can be described as: Product Derive New Configuration; Evaluate  Initiate Project - the preparatory tasks required to Product Architecture; Select Platform establish a product derivation project. Components; Product Integration; Integration Testing; Identify Required  Identify and Refine Requirements – the preparatory Product Development tasks required to commence a new iteration of the product derivation project. Develop the Component Development; Component Product Testing; Product Integration; Integration  Derive the Product - creates an integrated product Testing configuration that makes maximum use of the platform and minimises the amount of product specific Test the Product Run Acceptance Tests development required. Management and Provide Feedback to Platform Team,  Develop the Product - facilitates requirements that Assessment Monitor Project could not be satisfied by a configuration of the existing assets through component development or adaptation.

Figure 2. Overview of Prod-PD Activities

67 TABLE II. PRO-PD ROLES AND RESPONSIBILITIES (CONT’D) B. Roles Despite attempts to automate product derivation, it Role Responsibility remains a human activity in which tasks are performed Product Responsible for Component Development through collaboration and the exchange of work. In Pro-PD Developer and Component Testing. The Product there are several roles that represent the different Developer needs to be able to understand responsibilities, which occur during product derivation. and conform to the product architecture. These roles are: Customer, Platform Manager, Product Architect, Product Developer, Product Manager and Product Product Manager Responsible for customer relationship Tester. These roles are assigned to specific tasks, which management, negotiation of product create and modify the different work products. features with the customer and project Table 2 lists specific roles and responsibilities of Pro-PD. planning. Product Tester Responsible for the main testing effort C. Artefacts within the project. The Product Tester In Pro-PD, an artefact is produced, modified or used by a should co-ordinate with the platform task within the derivation process. Table 3 shows examples testing team to reuse Platform Test of particular artefact types and respective artefacts. Artefacts.

VI. CONCLUSION

This research has resulted in a number of contributions. An extensive literature review is presented that highlights TABLE III. PRO-PD ARTEFACTS issues within current approaches to product derivation. Observations on product derivation practice from both Artefact Type Artefacts academia and industry are described. An adaptable process Software Artefact Platform Test Artefacts, Product Build, model for product derivation is developed and evaluated. Product Test Cases, New Platform The process can be seen as a systematic way to perform Release, Platform Architecture, Platform product derivation through a well-defined sequence of Components, Developed or Adapted activities, tasks, roles and artifacts. The research also Components, Existing Platform contributes to the research area through the publication of the Configurations, Base Product knowledge gathered during the research and the presentation Configuration, Integrated Product of the research to SPL groups, both academic and industrial, Configuration. in Luxembourg, Germany, Ireland, and Brazil. Documentation Required Product Development, Even it being an important contribution to the field, this Translated Customer Requirements, work into a comprehensive process for product derivation is Product Specific Platform Requirements, not complete. Further work is required for the establishment Product Requirements, Platform of process support for product derivation. The researchers Feedback, Platform Requirements, believe this work is a first step in this long and complex Customer Requirements, Customer road. Specific Product Requirements, Negotiated Customer Requirements, ACKNOWLEDGMENTS Glossary. This research has been funded by Science Foundation Ireland through IRCSET under grant no. RS/06/167. REFERENCES [1] Clements, P. and L. Northrop, Software Product Lines: Practices and Patterns. 2001, Boston, MA, USA: Addison-Wesley Longman TABLE II. PRO-PD ROLES AND RESPONSIBILITIES Publishing Co., Inc. [2] Hotz, L., A. Gunter, and T. Krebs, A Knowledge-based Product Role Responsibility Derivation Process and some Ideas how to Integrate Product Development, in Proc. of Software Variability Management Platform Manager Represents the interests of the platform Workshop. 2003: Groningen, The Netherlands. during the derivation project. The role [3] Deelstra, S., M. Sinnema, and J. Bosch, Product Derivation in should have a degree of understanding on Software Product Families: A Case Study. Journal of Systems and the demands of the product team. Software, 2005. 74(2): p. 173-194. Product Architect Responsible for the major technical [4] Deelstra, S., M. Sinnema, and J. Bosch, Experiences in Software Product Families: Problems and Issues During Product Derivation, in decision making within the derivation Software Product Lines, Third International Conference. 2004, project. The role requires a good Springer: Boston, MA, USA. knowledge of the platform and an [5] Griss, M.L., Implementing Product-Line Features with Component understanding of the demands on the Reuse. ICSR-6: Proceedings of the 6th International Conference on platform team. Software Reuse. 2000, London, UK: Springer-Verlag. 137--152.

68 [6] Rabiser, R., P. Grünbacher, and D. Dhungana, Supporting Product [8] Ahlemann, F. and H. Gastl, Process Model for an Empirically Derivation by Adapting and Augmenting Variability Models, in 11th Grounded Reference Model Construction, in Reference Modeling for International Software Product Line Conference. 2007: Kyoto, Japan. Business Systems Analysis, P. Fettke and P. Loos, Editors. 2006, IGI [7] Royce, W.W., Managing the Development of Large Software Publishing. Systems: Concepts and Techniques, in Western Electronic Show and Convention. 1970, WESCON Technical Papers: Los Angeles.

69

Verteilte Systeme

Betreuer

Prof. Dr. Friedbert Kaspar Prof. Dr. Lothar Piepmeyer Prof. Dr. Albrecht Swietlik

71

Vehicle-to-Business Communication: Enabling Web Services for High-Scalable Communication Infrastructures in Mobile Bandwidth-Limited Networks

Manuel Loesch1,2, Markus Miche1, Friedbert Kaspar2, Marc Brogle1, Thomas Michael Bohnert1 {manuel.loesch; markus.miche; marc.brogle; thomas.michael.bohnert}@sap.com {manuel.loesch; friedbert.kaspar}@hs-furtwangen.de

1 SAP Research Switzerland 2 Hochschule Furtwangen University SAP Research Center Zurich Department of Computer Science Zurich, Switzerland Furtwangen, Germany

Abstract—This paper shows how we realized a prototypical the Internet and hence with a broad range of business platform for interconnecting vehicles and business systems applications which is referred to as vehicle-to-business based on mobile cellular networks and Web service standards. (V2B) communication. This supports novel application However, Web services have been originally designed for scenarios and promising business models such as location- broadband networks like the conventional, non-mobile based advertisement or usage-based automobile insurance Internet. Because of the incomplete coverage of 3G cellular policies [1]. networks, especially the bandwidth limitation of 2G cellular We present a communication platform that addresses the networks has to be seen as bottleneck. Thus, we surveyed requirements of V2B application scenarios. Since this different approaches for improving the SOAP layer in order to platform has to couple various systems that may be operated achieve efficient and scalable Web service communication. The by different companies, Web services are used to offer high impact of compression and usage of binary XML on the message size, transmission time, and scalability is evaluated interoperability. However, they have been originally based on realistic application scenarios and various bandwidth designed for broadband networks like the conventional, non- classes. We come to the conclusion that existing technologies mobile Internet. Thus, transferred to the application domain can be used to achieve significant improvements in bandwidth- of V2B communication, different optimization points for limited networks. However, we further show that such a SOAP Web service communication are raised. Used within current layer optimization does not come along with noticeable benefits cellular networks, especially the bandwidth limitation can be in broadband networks. seen as bottleneck. Despite of the introduction of fast third generation cellular networks (UMTS) and several Vehicle-to-Business Communication; Mobile Web Services; improvements like HSPA, UMTS in Germany is still Bandwidth Limitation; SOAP; Compression; Binary XML characterized by limited network coverage focused on areas 4 with high population density. This often results in falling back to the slower second generation network GSM with I. INTRODUCTION GPRS and EDGE for data transmission [2, p. 22]. Thus, the use of Web services within such mobile environments needs Research projects in Europe, the US, and Japan are further investigations. currently developing communication architectures and proof- of-concept prototypes for vehicular communication. A. Sturcture of the Document Thereby, most activities focus on the communication among Section II describes our V2B platform covering both, the vehicles (vehicle-to-vehicle communication, V2V) and the architectural design and the prototypical realization. communication between vehicles and their surrounding Furthermore, the introduction of concrete V2B scenarios roadside infrastructure such as traffic lights (vehicle-to- clarifies concerns on the performance and overall scalability infrastructure communication, V2I). With the aim to enhance with an increasing number of participants. Thereafter, road safety and traffic efficiency, current projects such as 1 2 3 Section III provides an overview about related work in the PRE-DRIVE C2X , CVIS , and simTD target the evaluation area of adopting Web services for a use within mobile of such communication concepts in large-scale field environments. Since the SOAP layer optimization is operational tests. considered to be the most promising opportunity, respective The commercial introduction of the mobile Internet via approaches with compression and usage of binary XML are mobile communication technologies such as UMTS addressed more detailed in Section IV. Based on this, facilitates a third application domain of intelligent Section V investigates how the identified opportunities can transportation systems. It enables connecting vehicles with be addressed in practical Web service communication. This

1 cp. http://www.pre-drive-c2x.eu/ 2 cp. http://www.cvisproject.org/ 4 cp. http://www.t-mobile.de/funkversorgung/inland/ and 3 cp. http://www.simtd.de/ http://www.o2online.de/nw/support/mobilfunk/netz/

73 Application-specific mapping Communication via Web services + standard interface (e.g. Web services, CORBA)

1 3G: UMTS/ AppApp A HSDPA+HSUPA Core Core 2 Down: max. 14.4 Mbit/s Network Network B Up: max. 5.76 Mbit/s Down+Up: Down+Up: AppApp 2G: GSM/EDGE C 3 Down: max. 270 kbit/s > 1 Gbit/s > 1 Gbit/s Up: max. 110 kbit/s Vehicle AppApp Mobile Integration Platform Base Station Business Smart Systems Vehicles Figure 1. Communication and network characteristics between Smart Vehicles and Business Systems facilitates an evaluation of the most promising opportunities applications. Thereby, it encapsulates vehicle applications in Section VI. Thereby, the focus is on message size, and provides additional Quality of Service functionality such transmission time, and scalability based on different as message caching, message prioritization, and rescheduling bandwidth classes and typical V2B scenarios. The paper of message delivery [3]. concludes in Section VII with a summary and an outlook on future work. B. Prototypical Implementation The prototypical implementation is based on the II. V2B COMMUNICATION platform-independent programming language Java. For the A. Architecture deployment in vehicles, the Java Standard Version is used, while the realization of the Vehicle Integration Platform is The uncertain connectivity of vehicles due to their based on the Java Enterprise Edition. Using the OSGi 5 mobility as well as their bandwidth-limited connection due standard realizes the paradigm of component-based software to incomplete coverage of third generation cellular networks development and enables standardized modularization and can be seen as main challenges for efficient V2B dynamic management of services. communication. In order to address these challenges, a The communication between smart vehicles and the VIP service-based integration architecture was developed, which is based on Web services using HTTP as underlying employs state-of-the-art technology to realize flexible, application protocol and TCP as transport protocol. Hence, scalable, and secure V2B interaction. It enables covering a information exchanged between vehicles and the VIP is multitude of vehicles and diverse (legacy) business delivered in the form of XML-based SOAP messages. The applications [1]. publish/subscribe pattern is based on the OASIS standard As depicted in Fig. 1, the Vehicle Integration Platform WS-Notification 6 . Thus, the above mentioned mapping (VIP) acts as mediator between smart vehicles and business between data from the in-vehicle message broker BIM and systems. Thereby, communication is based on the the interfaces of business systems is based on the generic architecture patterns Service-Oriented Architecture (SOA) notify interface specified by WS-Notification. and Event-Driven Architecture (EDA). The VIP includes The use of well-established standards such as OSGi and multiple components to realize an efficient information Web services facilitates alternative third-party exchange between vehicles and business applications. It implementations of single components like, e.g., the in- comprises of a message broker that enables an asynchronous, vehicle message broker BIM. This standard compliance topic-based publish/subscribe interaction style, thus enables high interoperability, which is very important since enhancing decoupling vehicles and business applications. V2B communication connects various systems that may be Moreover, this message broker supports the invocation of operated by different companies. vehicle applications and provides a buffering mechanism to account for their intermittent accessibility. Further, the VIP C. Application Scenarios embodies several components to discover, organize (e.g., The presented V2B platform provides the basis for a identity management), and search for services offered by wide range of application scenarios and business models. vehicles. Eventually, it includes adapter components that Following, three realistic application scenarios are described. facilitate application-specific mapping to the interfaces of As shown later, they can be seen as representative arbitrary business systems. These adapter components can application scenarios that are transmitting small (V2B App address different middleware technologies such as Web 1), medium (V2B App 2) or large (V2B App 3) messages. services or CORBA. The in-vehicle communication component Backend Integration Manager (BIM) complements the VIP and represents the vehicle’s external interface. It is designed to 5 connect a vehicle with the VIP and hence with business cp. http://www.osgi.org/ 6 cp. http://www.oasis-open.org/committees/wsn/

74 1) V2B App 1: Pay As You Drive can get location-based information of interest about nearby The insurance model “Pay As You Drive” (PAYD) is a parking decks. Even further, a coupling with the navigation current topic of research and addresses the usage-based device is possible. Compared to the previously mentioned calculation of insurance rates. In [4], it is described as PAYD-application that is continuously running in the follows: “The aim is to monitor vehicle usage (how much, background, this application will only run if the driver is when, where and how) and, based on this information, assess interested in finding a parking lot. Thus, the driver has full the associated risk and set an appropriate insurance control over the application and can end it himself. premium.” Thus, in contrast to conventional insurance In our test cases, the concrete example message delivered policies, this insurance model does not only take into account from the VIP to the vehicle contains a list with parking decks static parameters such as vehicle type or driver’s age and meeting the request criteria. For each parking garage, a experience. Rather, information about the individual driving name, the number of available parking lots, its longitude and behavior is considered. latitude, the distance and costs per hour have been included. In practice, until today, only some single concepts could Again, values have been separated by semicolon. Assuming achieve acceptance. In Great Britain, e.g., the insurance that there are five parking garages that meet the request company protectagroup 7 offers a usage-based insurance criteria, our example payload for this V2B scenario contains model combined with an in-vehicle box called “I-Kube”.8 235 bytes. This example can be considered as a Having installed this box, young drivers between 17 and 25 representative of scenarios with medium-sized messages. years can save up to 40% of the insurance rate if they do not Since vehicles are moving continuously, the selection of the drive between the, according to empirical knowledge, risky relevant parking decks will change frequently. For that hours 11 p.m. and 5 a.m. reason, we assume that messages are delivered in the interval In [4], the authors also take a closer look at data that can of 5 seconds. be used for calculating a PAYD insurance rate. They for 3) V2B App 3: Automatic Claims Assistance instance suggest to consider aggressive driving based on the Claims assistance after car accidents represents another acceleration or to take into account the number of vehicle typical V2B application scenario. In [6], benefits through the passengers. Thus, in our test cases, the message delivered use of mobile phones in order to assist people in the from the vehicle to the VIP contained the speed, the aftermath of an accident are outlined. The authors show how acceleration/deceleration, the number of passengers, the the direct integration into the claims management system longitude and latitude. Separating the different values by facilitates an optimization of the insurance process after an semicolons for transferring the values via the generic notify accident. Using mobile phones, drivers can be assisted in interface, our example payload for this V2B scenario such stressful situations and electronic loss reports can be contains 28 bytes. This example can be seen as a directly sent to the claims management system. Moreover, representative of V2B scenarios with small messages. Since vehicle drivers have the opportunity to enrich loss reports this use case is based on fast-changing data, messages are with additional information about, e.g., the opponent. transmitted in the interval of 1 second. In combination with the presented V2B platform, the 2) V2B App 2: Parking Guidance System direct interconnection of vehicles and claims management Another scenario that can be realized by using the systems further enables integrating additional information introduced V2B platform is a V2B-based parking guidance from vehicle sensors as well. This allows the insurance system. Already today, city areas with high traffic density company to improve the estimation of the damage extent. are equipped with parking guidance systems using variable Even further, the insurance company has the opportunity to message signs placed on connotative intersections. They influence follow-up costs through an optimized B2B route vehicle drivers to nearby parking decks and provide communication enabling to prefer business partners with information about the number of currently available parking frame contracts. Moreover, drivers can be assisted with lots. This number of available parking lots is determined by value-added services. For instance, suggestions for repair counting vehicles driving in and out. Then, the number is shops, car rentals, towing services or further third party transmitted to a system that controls the corresponding services can be offered and tailored to individual cases. display signs. This enables dynamic and fast adoption of Recommendations for repair shops, e.g., can consider the traffic concepts which is especially interesting when we have stock of damaged parts. to cope with high traffic load. The German inter-trade In our test cases, the example message delivered from the organization BITKOM recently published a representative vehicle to the VIP after an accident contains the number of survey among 1002 German citizens that shows a high the insurance policy, the license plate, longitude and latitude acceptance for such systems. Among others, the results show of the accident location, a snapshot of several vehicle that 62% of them support the introduction of parking sensors, and additional data about the opponent. For this guidance systems [5]. V2B scenario, our semicolon-divided example payload with By coupling such existing systems with the VIP and the named data contains 1,185 bytes, of which the sensor equipping vehicles with an according application, the driver data contributes the largest part. Thus, this V2B scenario can be seen as a representative of scenarios with large messages. Compared to the two other presented scenarios, the message 7 cp. http://protectagroup.co.uk/ 8 cp. http://www.i-kube.co.uk/

75 transmission in this scenario is not interval time but rather needed size. In addition, the minimization of SOAP-specific event triggered. overhead emerges as a promising optimization point. Summarizing, Table I shows an overview of the defined V2B scenarios. It includes the actual payload size as well as III. RELATED WORK the complete SOAP message size that is finally transmitted. In the area of Web services, a huge number of specifications exist. Even further, diverse publications TABLE I. CHARACTERISTICS OF THE DEFINED V2B SCENARIOS describing new concepts have been published in recent years. Payload Size / Frequency of Most of them, however, could not prove their suitability in SOAP Message Size Message Transmission practice. Existing work in the area of adjusting Web services small medium large rarely occasional often for mobile use can be classified into the following three categories: SOAP data volume minimization, resource V2B 28/ 964 1/s limitation, and protocol stack optimization. App 1 byte

V2B 235/ A. SOAP Data Volume Minimization 1171 0,2/s App 2 byte Existing work such as [9], [10], and [11] shows that SOAP messages can be minimized effectively through the V2B 1185/ not 2121 time- App 3 use of existing compression mechanisms like gzip. However, byte triggered these papers can be seen as obsolete since new binary XML formats have not been considered. Furthermore, they are D. Perfomance and Scalability motivated differently by referring to other application domains with differing priorities. In [12], e.g., the authors As shown, the presented V2B platform facilitates a wide take a look at SOAP compression with respect to the battery range of applications and novel business models. Exemplary, life of mobile phones. During the creation of this paper, [13] scenarios have been demonstrated in which message delivery was published. The authors also investigated opportunities is triggered only once in exceptional cases as well as for optimizing the SOAP layer. Their results support ours scenarios where messages are delivered continuously using presented in this paper however based on a different various intervals. Furthermore, we have presented that there application domain and the OASIS standard Devices Profile are scenarios that need to transfer only a small amount of For Web Service (DPWS). In their evaluation suited to data as well as scenarios that need to transfer a large amount requirements within sensor networks, the binary XML of data. Thus, the expected huge target market requires good formats Fast Infoset and Efficient XML have been identified scalability in terms of good performance with an increasing as the most suitable technologies. number of sending and receiving vehicles. Thereby, the use Since this paper focuses on SOAP layer optimization, of a mediator system for decoupling vehicles and business respective approaches and existing work in the areas of systems results in a small number of point-to-point compression and binary XML are addressed separately and connections. This is essential and provides the basis for a more detailed in Section IV. good scalability [7, p. 333]. Furthermore, the use of a topic-based publish/subscribe B. Resource Limitation mechanism facilitates minimization of the number of Using Web services in mobile environments often comes delivered messages. In cases where multiple V2B vehicle along with the use of resource-constrained devices. In this applications are interested in information specified by a area, the OASIS standard DPWS can be seen as most certain topic, the message has only to be transferred once via important result. The aim of the specification is to define a the bandwidth-restricted cellular network. Then, the in- minimal set of implementation constraints to enable secure vehicle message broker BIM can locally distribute the Web service messaging, discovery, description, and received message to the respective applications. This eventing. 9 Therefore, DPWS extends existing WS positively affects the scalability of the V2B communication specifications with new ones to form a new profile. platform as a whole as it reduces the number of messages However, DPWS only addresses hardware limitations and exchanged between vehicles and business applications. does not address bandwidth limitations, which are the focus Since the bandwidth-limitation of cellular networks can of this paper. be seen as bottleneck (see Fig. 1), the actual amount of data that has to be transmitted has also an impact on the C. Protocol Stack Optimization performance. Further, based on the concrete network The concept of encapsulating different functionalities in technology, message size minimization can also influence layers enables each layer to do its work independently. the overall scalability. If, e.g., UMTS is used, the bandwidth Therefore, layers use services of underlying ones that can be is dynamically shared by the number of network participants reached via well-defined interfaces. Thus, not only the which can result in negative effects on data throughput [8, p. application layer protocol SOAP, but also the choice and 187 ff.]. Thus, the integration of business system specific combination of underlying protocols can have an impact on parameters within the VIP mapping component results in limiting the message content from vehicles to the actually 9 cp. http://docs.oasis-open.org/ws-dd/dpws/wsdd-dpws-1.1- spec.pdf

76 the performance. Summing up, alternative bindings to the information about document structure and is solely based on classical SOAP-over-HTTP do not come along with the redundancy of the given data. Its generic nature can be significant advantages in practice [14]. Only if no reliable seen as the main fact for its wide distribution. In the area of message exchange is required, the use of SOAP-over-UDP transferring data over the Internet, current web servers can bring advantages. Then, heavy-weight TCP mechanisms support gzip compression based on a HTTP metadata like reliable transmission, flow control, and congestion mechanisms (cf. Section IV). Moreover, gzip has open and avoidance can be avoided. Especially in bandwidth-limited free implementations for a huge number of programming networks, this results in better performance [15]. languages10. In [9] and [10], good compression ratios are presented when applied to XML documents. Thus, gzip is IV. APPROACHES FOR OPTIMIZING THE SOAP LAYER considered in our practical evaluation. Tracking the aim of high interoperability, Web services 2) XMill are based on XML. Although this markup language reached the status of a de-facto-standard for data exchange in many XMill was the first compressor that used knowledge application domains, XML text representations have the about the XML structure in order to achieve better disadvantage of a very high redundancy. Main reason for the compression rates [17]. Similar data is divided into groups low information density is the redundant tagging concept, as with high redundancy among themselves (e.g., tags or same well as the text-based representation instead of a binary one. data types). For many types of XML documents, the use of Thus, the use of the human-readable XML format for redundancy-based gzip compression then enables better machine-to-machine communication results in a distinct compression rates within these groups. higher data volume than actually needed. The authors that have introduced XMill in [17] limit their evaluation to XML documents with sizes in the megabyte A. Compression area. So, they state that XMill can reduce the size of XML Due to XML’s high redundancy, compression of SOAP documents between 0% and 50%. In no case, their results are messages is very effective [10]. Consequently, compression worse than gzip. The authors of [18] compare gzip and results in a smaller transmission time. However, since XMill and come to the conclusion that XMill achieves better algorithms used for data compression are very computation- compression rates than gzip when applied to files with intensive, additional CPU overhead arises [16]. several thousands of kilobytes. However, when having a Equation 1 shows the trade-off between minimized smaller document size, then they come to the conclusion that transmission time and additional time needed for XMill is worse than gzip in both, compression ratio and compression and decompression according to the SOAP needed CPU time. This bad behavior up to a message size of message exchange pattern request/response. It can be seen about 10 KB is confirmed in [19]. Thus, XMill can be seen that the effect of using compression for minimizing the as inappropriate for minimizing relatively small SOAP round trip time is highly depending on the given CPU messages. Therefore, further investigations are not performance and data transmission rate. conducted. 3) Differential Encoding 푇푟푒푞 /푟푒푠푝 = 2 ∙ 푡푠푒푟푖푎푙푖푧푒 + 풕풄풐풎풑풓풆풔풔 + 푡푡푟푎푛푠푚푖푡 Differential encoding offers a very effective way to + 풕풅풆풄풐풎풑풓풆풔풔 + 푡푑푒푠푒푟푖푎푙푖푧푒 + 푡푝푟표푐푐푒푒푑  minimize the size of transmitted data volume. The WSDL service description of a Web service can be used to create a skeleton with a static SOAP frame. If this skeleton is known Equation 1: Trade-off between compression and transmission time at the server and the client side, it is possible to only send the difference between the static skeletons and the original Compression rates are depending on the exact data SOAP message. The original SOAP message can then be structure and the containing data set. Especially, the depth of reconstructed by using the static skeleton on the receiver’s XML trees and their structure with occurring repetitions can side. be perceived as determining criteria [10]. Depending on The authors of [20] took a closer look at the principle of these factors, the achievable compression ratios of different differential encoding for the use in the area of Web services compression mechanisms can differ significantly and are and approved a very effective minimization of the data hardly predictable. volume. However, the use of a static skeleton that is created Due to the large number of applications, existing work once comes along with the restriction for the structure of about XML compression is not necessarily relevant, if not SOAP messages. This can result in losing the compatibility considering the given characteristics. Thus, the selection of to well-established WS-standards. WS-Security, for compression mechanisms has to be adjusted to the SOAP example, is based on the specifications XML-Signature und characteristic within our V2B platform. Subsequent, XML-Encryption and describes procedures for signing and 11 compression mechanisms are examined with respect to the encrypting data as well as the integration into SOAP . Since application in the field of Web services and SOAP.

10 1) gzip cp. http://www.gzip.org/ Gzip is a compression mechanism that does not need any 11 cp. http://www.oasis-open.org/committees/download.php/16790/ wss-v1.1-spec-os-SOAPMessageSecurity.pdf

77 the area of V2B requires complex security policies, this has XML API XML API to be considered as a very important aspect. WS- DOMDOM Tree Tree DOM Tree SecurityPolicy, e.g., enables only signing single parts of a SAXSAX Event Event StreamStream Binary Binary Binary SAX Event Stream XML XML XML SOAP message, if needed even with different keys. This fine StAXStAX Event Event Stream Encoder Stream Decoder StAX Event Stream granularity facilitates creation of very dynamic XML- XMLXML Character Character Stream XML Character Stream documents with varying structures. The use of a once-created ...... skeleton as previously explained does not address this Figure 2. Binary XML is based on common XML APIs problem. Hence, the authors of [21] consider this problem and describe an architecture that enables the implementation compress included data by using conventional compression of the WS-Security standard by using differential encoding. mechanisms. But, there is no practical implementation available. There are already several binary XML specifications. For Summing up, since V2B communication couples instance, Oracle, IBM, and Microsoft are using their own, different companies and interception of wireless transmitted proprietary binary XML formats within their database data is much easier compared to wired networks, established products [11]. But until today, no single one has been able to security standards play a significant role. The use of state-of- establish itself as accepted standard, neither for XML in the-art technologies does not only avoid costly, proprietary general nor for single application domains such as Web developments, but also increases customer’s acceptance. services. For this reason, binary XML formats are examined Thus differential encoding can be deemed as inappropriate. with respect to their applicability in the field of Web services B. Binary XML and SOAP. The previously presented approaches for data 1) WAP Binary XML compression address the problem of low information density WAP Binary XML (WBXML) was standardized by the by adding an additional layer for compressing and W3C in the year 1999. The aim is a compact representation decompressing data. In practice, the introduction of of WML documents, which is the XML-based markup additional layers for solving problems of underlying layers language intended for devices that implement the Wireless will always be disadvantageous in the long run [7, p. 150]. Application Protocol (WAP). It can be apprehended as field- Hence, the implication is the use of mechanisms that address tested and works very efficiently. The involved compressor the problem of XML’s small entropy at the root. uses static optimized rules for expected tag and attribute The term “binary XML” describes specifications that names, though this efficiency comes along with a limitation avoid the use of conventional, text-based representations and of accepted input data [22]. Since SOAP messages are very serialize XML data directly in a binary format with a higher 12 dynamic and allow arbitrary application-specific XML information density . Therefore, binary XML formats use structures, WBXML is not qualified for SOAP messages. the XML Information Set that describes data covered by XML documents in an abstract, representation-independent 2) Fast Infoset way: “This specification [XML Information Set] defines an Fast Infoset is often perceived as the most popular abstract data set called the XML Information Set (Infoset). representation of instances of the XML Information Set. It is Its purpose is to provide a consistent set of definitions for use standardized by ITU-T (May 2005) and ISO (May 2007). in other specifications that need to refer to the information in For a more compact representation, Fast Infoset falls back to a well-formed XML document.” 13 All together, eleven existing standards: as part of the generation process, the different types of so called Information Items are specified information contained by the XML Information Set is like, e.g., elements, attributes, comments or namespace transformed to the alternative markup language Abstract information. Since the XML Information Set enables direct Syntax Notation One (ASN.1) instead of the well-known integration into the existing XML stack, numerous XML text representation. The use of encoding rules for specifications and standards around XML are kept applicable ASN.1 (namely PER, Packed Encoding Rules) results in a (see Fig. 2)14. much more compact representation 15 . Since Fast Infoset In comparison to the aforementioned compression reached a high support in practice and enables good mechanisms, binary XML technologies do not need compression rates [9], it is considered in our following additional layers based on resource intensive algorithms. evaluation. However, binary XML only addresses the problems of XML 3) Fast WebServices (i.e., overhead through the tagging concept and textual representations instead of binary ones) without eliminating Fast Web Services were introduced in August 2003 by Sun with the aim to eliminate performance problems of Web redundancy of the actual payload. For this reason, some 16 binary XML formats offer the option to additionally services . This specification is based on Fast Infoset. Core of the specification are concepts that describe how the

12 cp. http://www.w3.org/TR/xbc-characterization/#N100A0 15 cp. http://java.sun.com/developer/technicalArticles/xml/ 13 cp. http://www.w3.org/TR/xml-infoset/ fastinfoset/ 14 cp. http://www.w3.org/TR/xbc-properties/#integratable-into-xml- 16 cp. http://java.sun.com/developer/technicalArticles/Web stack Services/fastWS/

78 WSDL service interface can be used for better message 6) Protocol Buffers minimization. It was published together with a prototypical In the year 2008, Google introduced the serialization implementation. format Protocol Buffers22. This can be perceived as a further From a practical point of view, Fast Web Services seem possibility for minimizing XML-based SOAP messages. irrelevant since there is no current implementation and no Like JSON, it is an independent format that rather has to be further development took place. The small number of seen as XML competitor than as extension to XML. publications available about Fast Web Services confirms According to Google, the required disk space is 3-10 times this. Thus, it is not considered in our subsequent smaller than using XML23. examinations. Protocol Buffers is using an intermediate step via a 4) Efficient XML human-readable format. Only the use of an additional In the year 2004, the W3C XML Binary Characterization encoder transforms data in a much more compact format. In Working Group was founded to investigate the need for the theory, an XML-mapping from and to Protocol Buffers is standardization of a binary XML format 17. In 2005, they feasible. Research for the combination within the area of reported that there is demand and that further work towards Web services seems promising but is not within the scope of this direction will be done18. Based on this, the W3C Efficient this paper. XML Interchange (EXI) Working Group was founded with V. PRACTICAL REALIZATION the aim to standardize such a format. Compatibility with the XML Information Set, compact representation, and fast A. Support by Web Service Frameworks processing speed have been the main objectives. Beginning Based on annotations, the Java API for XML Web in 2006, existing formats were determined in a “Call for Services (JAX-WS) defines the standard API for using Web Distributions”. The submitted implementations have been services in Java. Introduced with Java EE 5, the reference analyzed for their aptitude. Thereby, Efficient XML, which implementation (JAX-WS RI) is now also included in Java 19 was submitted by the company AgileDelta was evaluated SE 624. While the reference implementation provides basic as the best mechanism for a wide field of applications. Thus, functionality for working with Web services, several Web it reached the status of a W3C Recommendation Candidate service frameworks are offering an alternative in December 2009. This is the direct pre-stage for a final implementation of the JAX-WS specification. W3C Recommendation. The algorithm behind Efficient XML is based on entropy TABLE II. JAX-WS RI AND ALTERNATIVE WEB SERVICE encoding. A grammar is used for representing data with the FRAMEWORKS IN COMPARISON least bits that appear most likely on a certain location. For JAX-WS Apache Apache Criteria improving the forecast, an XML schema file can additionally RI Axis2 CXF be consulted. Further, Efficient XML enables compressing Standards 20 the contained data based on the deflate algorithm . Since JAX-WS x x x Efficient XML currently is objective to future W3C SOAP 1.1 / 1.2 x / x x / x x / x standardization, it is considered in our evaluation. WSDL 1.1 / 1.2 x / x x / x x / x 5) JSON Protocols of the Application and Transport Layer HTTP (default) x x x The Java Script Syntax Notation (JSON) is an older, SMTP / POP3 x x (3) alternative format for data exchange which is not specially JMS x x (3) created to be used as a more compact XML representation. Jabber x (3) As the name already suggests, there is a connection to Java TCP x x x (3) Script, where data in the JSON format can be processed UDP x x (3) natively. Hence, it offers many advantages if used together Alternative Encodings with Binary XML Formats with Java Script (e.g., direct integration of search queries SOAP (default) x x x into websites 21 ). JSON reached a wide distribution and Fast Infoset x x x current Web service frameworks support JSON encoding. Efficient XML x (2) Therefore, they make use of the idea behind binary XML and JSON x (1) x x convert between JSON and the XML Information Set. Compression Beside the native Java Script support, however, JSON does gzip x x x 25 not come along with significant improvements in minimizing (1) requires a manual upgraded jar file (2) offered as proprietary product by AgileDelta26 the data volume. Thus, it is not considered in our further 27 (3) requires additional transport component investigations.

22 cp. http://code.google.com/p/protobuf/ 17 cp. http://www.w3.org/XML/Binary/ 23 cp. http://code.google.com/intl/de-DE/apis/protocolbuffers/ 18 cp. http://www.w3.org/TR/xbc-characterization/ docs/overview.html#whynotxml 19 cp. http://www.agiledelta.com/ 24 https://jax-ws.dev.java.net/ 20 cp. http://www.w3.org/TR/exi/#compression 25 https://jax-ws-commons.dev.java.net/json/ 21 cp. http://developer.yahoo.com/javascript/ 26 http://www.agiledelta.com/product_wsiks.html

79 Table II compares the JAX-WS reference to the receiver’s real endpoint 30. In two-way communication implementation with the most common Java Web service according to the request-response message exchange pattern, frameworks Apache Axis228 and Apache CXF29. It can be the way back will follow the same pattern. Thus, despite the seen that these alternative frameworks have a wider range of adoption of the Web service endpoints to the local ones of an additional features than the official reference appropriate proxy, no further code changes are needed. implementation. Furthermore, they offer concepts that make Since SOAP message needs to be fully available for it easier to adopt SOAP processing to individual needs. For compressing/decompressing, the interconnected proxy instance, the concept of handler chains implemented both by modules introduce additional delay. However, since this Axis2 and CXF facilitates interfering in almost every single communication is only local, it can be seen as irrelevant. step of the SOAP process [23, p. 286 ff.]. In combination with the use of declarative configuration files, these C. Practical Use of Binary XML frameworks enable addressing individual needs in a There are open source implementations for both of the comfortable way. selected binary XML formats, Fast Infoset and Efficient XML. There is a Fast Infoset implementation existing as part B. Practical Use of Compression of the open source Java EE server Glassfish31. Further, an The JDK (Java Development Kit) by default contains implementation of Efficient XML that was originally classes for reading and writing gzip-compressed data initiated by Siemens is now available as Sourceforge project (GZIPInputStream and GZIPOutputStream). Subsequently, called “EXIficient” 32 . The supplied classes implement two possible mechanisms for dealing compression within generic Java interfaces that are needed for handling XML Web services communication are described. documents via well known and established interfaces. For 1) HTTP Content Encoding example, the interfaces XMLStreamReader and XMLStreamWriter are implemented for using the SAX API Using HTTP as underlying application layer protocol, in a common way. RFC 2616 describes two flags for handling meta information about the payload’s encoding: “Accept-Encoding” and VI. EVALUATION “Content-Encoding”. Within a HTTP request, the first A. Focus and Used Implementations enables specifying supported encodings. Based on this information, an encoding for the HTTP response’s payload As outlined in Section IV, the evaluation focuses on can be chosen and specified by the second flag. Thus, the conventional gzip compression and the two binary XML receiver knows how to interpret the contained data. In the formats Fast Infoset and Efficient XML. We investigated the Internet, these HTTP content encoding tags are widely used impact on message size based on the V2B application in combination with gzip compression. Current web scenarios defined in Section II. Furthermore, the browsers such as Firefox 3.6 or Internet Explorer 8.0 state in transmission time as well as the scalability with an their HTTP requests that they are able to decompress increasing number of vehicles is examined. Gzip received data with gzip. Receiving such a request, severs compression is based on the Java Development Kit (v 1.6.0), have the choice to answer with the original or gzip- Fast Infoset encoding is based on the open Fast Infoset compressed data. implementation within the Glassfish project (v 1.2.8), and Theoretically, the “Content-Encoding” flag can also be Efficient XML encoding is based on the Sourceforge project used for one-way messaging, where data is only sent and no EXIfficient (v 0.4). answer is returned. Then, however, it has to be ensured that B. Message Size the receiver side is configured correctly and the specified encoding can be interpreted. Web service frameworks Based on the V2B scenarios defined in Section II, Table supporting gzip are based on this meta information III shows the impact of compression and the use of binary mechanism. XML applied to the whole SOAP message. The results in Table III clearly show a difference between conventional 2) Proxy for Compression and Decompression compression by gzip and the use of binary XML formats Another way to practically realize Web service without an additional compression of embedded data. When communication with SOAP compression is the use of used without the option to additionally compress embedded interconnected proxies for handling compression and data, the latter only remove XML overhead and do not decompression. Therefore, on the sender side, the receiver’s achieve as good results as conventional gzip does. In these endpoint has to be replaced by a local one offered by the cases, gzip always performs between 10 and 28 percentage additional compression module. Then, the compression points better than the binary XML formats, even without any module is forwarding compressed SOAP messages to the knowledge about XML characteristics. However, these good endpoint of the receiver’s decompression module, which in results are only achieved through the use of resource- turn is decompressing the received data before forwarding it 30 The TCP monitor tcpmon (https://tcpmon.dev.java.net/) is based on a similar idea. It interconnects itself between sender and 27 http://camel.apache.org/camel-transport-for-cxf.html receiver to log all traffic that is flowing through. 28 http://ws.apache.org/axis2/ 31 cp. https://fi.dev.java.net/ 29 http://cxf.apache.org/ 32 cp. http://exificient.sourceforge.net/

80 intensive compression algorithms, which remove redundancy the different bandwidth classes, the bandwidth shaper in the aftermath. NetLimiter 2 Pro33 (version 2.0.11) was used. Furthermore, it can be observed that the binary XML Then, based on these different bandwidth classes, the formats can reduce the message size down to 56% (Efficient SOAP messages with their according HTTP header have XML, small message) or 67% (Fast Infoset, small message) been transmitted over sockets via the local TCP/IP stack. In without adding additional compression and decompression the sending thread, the time was taken directly before layers. In these cases, the significant message size sending the first byte and in the receiving thread, the time minimization is reached without any supplementary was taken directly after receiving the last byte. Building the computational effort like in the case of redundancy-based difference of these two time values, results in the needed gzip compression. transmission time. The Fast Infoset and Efficient XML values are based on TABLE III. IMPACT OF GZIP AND BINARY XML ON MESSAGE SIZE the use with additional compression of the contained data; Data Volume in Relation to binary XML values without compression are not listed.

Original SOAP Message TABLE IV. TRANSMISSION TIME FOR SMALL MESSAGE (APP 1) small medium large

(App 1) (App 2) (App 3) Fast Efficient SOAP gzip 956 bytes 1165 bytes 2113 bytes Infoset XML SOAP 100 % 100 % 100 % 100 MBit/s 0 ms 0 ms 0 ms 0 ms 426 bytes 527 bytes 1222 bytes 10 MBit/s 1 ms 1 ms 1 ms 1 ms gzip 44,56 % 45,24 % 57,83 % 250 kbit/s 38 ms 23 ms 22 ms 18 ms 464 bytes 567 bytes 1267 bytes 100 kbit/s 91 ms 46 ms 52 ms 42 ms with compression Fast 48,54% 48,67 % 59,96 % 50 kbit/s 181 ms 93 ms 100 ms 83 ms Infoset without 644 bytes 853 bytes 1804 bytes compression 67.36 % 73,22 % 85,38 % TABLE V. TRANSMISSION TIME FOR MEDIUM MESSAGE (APP 2) 365 bytes 470 bytes 1164 bytes with compression Fast Efficient Efficient 38,18 % 40,34 % 55,09 % SOAP gzip Infoset XML XML without 531 bytes 741 bytes 1689 bytes compression 55,54 % 63,61 % 79,93 % 100 MBit/s 0 ms 0 ms 0 ms 0 ms 10 MBit/s 3 ms 2 ms 3 ms 2 ms

250 kbit/s 56 ms 24 ms 25 ms 23 ms When the binary XML formats are used with the option to additional compress contained data, they perform about 100 kbit/s 101 ms 67 ms 62 ms 54 ms the same as gzip does. Then, the message size using Fast 50 kbit/s 214 ms 112 ms 119 ms 111 ms Infoset representation is between 2 and 4 percentage points higher and the message size in Efficient XML representation TABLE VI. TRANSMISSION TIME FOR LARGE MESSAGE (APP 3) even is between 2 and 6 percentage points lower. Fast Efficient SOAP gzip Moreover, it can be observed that the compression ratio Infoset XML always gets worse, the larger the amount of user specific data 100 MBit/s 0 ms 0 ms 0 ms 0 ms is. This is reasoned by the fact that the XML frame of the 10 MBit/s 2 ms 2 ms 3 ms 3 ms SOAP message remains constant and only application- 250 kbit/s 69 ms 39 ms 46 ms 43 ms specific data within the SOAP message’s notify element is 100 kbit/s 184 ms 114 ms 121 ms 109 ms changed. Since this application-specific data is not XML- 50 kbit/s 367 ms 222 ms 231 ms 214 ms based, the use of binary XML as well as redundancy-based compression is less effective. As emphasized, it can be clearly recognized that It further has to be noted that the minimization of a minimization of SOAP messages only has a recognizable SOAP message can also have an impact on the TCP and IP impact on transmission time in the lower bandwidth classes. overhead. If SOAP data minimization results in going below While the absolute difference between the original SOAP the values for the Maximum Transmission Unit (MTU) or message and the minimized ones in the high bandwidth the Maximum Segment Size (MSS), fragmentation is classes is very small and only in the one-digit millisecond avoided. This in turn results in fewer overhead through TCP area, the absolute time difference in the classes with more headers (20 bytes) and IP headers (20-60 bytes for IPv4, 40 restricted bandwidth is getting substantial. In the 50 kbit/s bytes for IPv6). class, e.g., the difference between original SOAP and C. Transmission Time Efficient XML is between 98 and 153 ms, depending on the Based on different bandwidth classes, Tables IV to VI concrete V2B scenario. outline the impact of minimizing the different SOAP messages on transmission time. The numbers show the transmission time needed for transmitting the SOAP message with the according HTTP header (122 bytes). For simulating 33 cp. http://www.netlimiter.com/

81 D. Scalability same as used for obtaining the transmission times. To Minimizing SOAP layer data can further have an impact provide statements about the scalability, i.e., the behavior on overall network scalability. For simplicity, the following with an increasing number of sending clients, the number of observations are assuming that available bandwidth is parallel running threads was varied and the arithmetic distributed evenly among all parallel sending average of their transmission times was built. Thereby, the clients/vehicles. This is a simplifying assumption. Using, time costs for threading are minimal and not measurable. e.g., the state-of-the-art third generation mobile The significant impact of SOAP message size telecommunication technology UMTS, the distribution of minimization on overall scalability can clearly be recognized available bandwidth is different and more dynamic. Effects by comparing Figures 3 and 4. They show, how an like dynamic cell breathing result in adapting the cell size increasing number of sending clients linearly affects the depending on the number of concurrent participants within a average transmission time, whereas the slope depends on the cell [8, p. 187 ff.]. Cells are reducing their coverage range concrete bandwidth and message size. with increasing numbers of participants. This results in VII. CONCLUSION AND FUTURE WORK shifting the affiliation of some participants to adjacent cells. Otherwise, a decreasing number of participants results in We showed how we realized a scalable prototypical raising cell coverage ranges. This is not considered by our platform for interconnecting mobile vehicles and business measurements as well as frequent handovers due to systems based on established standards. Furthermore, we permanent movement of vehicles and specific error rates due explained that the use of a mediator system with a topic- to the use of wireless communication using air as transport based publish/subscribe mechanism already addresses medium. For a more accurate network simulation, we refer to performance and scalability problems at a high architectural [24]. The authors explain how to couple a network simulator level. Given the introduced V2B platform, we investigated (ns-2) with a simulator for vehicular movements (VISSIM). on how the use of Web services can be optimized within Thus, a behavior closer to reality is achieved. mobile, bandwidth-limited networks. Thereby, the focus was on low information density of the XML-based SOAP layer. 30 As shown, this is a good optimization point for networks where high bandwidth limitation creates a bottleneck. 25 Various compression mechanisms as well as binary XML 50 kbit/s 20 formats have been presented and examined for their 100 kbit/s 15 applicability in the area of SOAP. Differences have been 250 kbit/s outlined and we explained how binary XML can be used to 10 per per client (s) address the problem of XML’s low information density at 10 Mbit/s 5 the root. Further, the big impact on message size of the most 100 Mbit/s average average transmission time 0 promising mechanisms (gzip, Fast Infoset, Efficient XML) 1 100 200 300 400 500 was presented using a practical evaluation based on realistic V2B scenarios. Moreover, it was outlined how Web service number sending clients communication in practice could be combined with Figure 3. Scalability of original SOAP compression and binary XML. Thereby, we showed that (medium message size, App 2) common Java Web service frameworks support the use of alternative encodings and protocols. 30 Based on minimization of the SOAP messages, we 25 further outlined the significant impact on transmission time 20 50 kbit/s and scalability with a raising number of participants sharing 100 kbit/s given bandwidth. Thereby, we elaborated that the reduction 15 250 kbit/s of SOAP overhead only is interesting if a high bandwidth 10

per per client (s) limitation is given. As shown, this comes along with big 10 Mbit/s 5 benefits for such kind of networks, while it has no 100 Mbit/s average average transmission time 0 measureable effect in broadband networks. After addressing the number of transmitted messages as 1 100 200 300 400 500 well as their size, future work now can address the number sending clients prevention of peaks in network demand. For instance, it is Figure 4. Scalability of Efficient XML, with compression possible to send data only in time slots where clients have a (medium message size, App 2) currently high data transmission rate. However, much more important for a market introduction of the presented V2B Based on the assumptions previously explained, Figures platform is a detailed handling of questions regarding data 3 and 4 show the average transmission time for the defined privacy. Thereby, the use of Web services enables a medium-sized SOAP message depending on the number of realization based on established standards such as WS- parallel sending clients. Fig. 3 is based on the original SOAP Security, WS-Trust or WS-SecureConversation. Further, message and Fig. 4 is based on the Efficient XML encoded realization and evaluation of new V2B use cases is planned equivalent used with compression. The test set-up was the in the context of the upcoming DRIVE C2X project, which is

82 the follow up project of PRE-DRIVE C2X. New V2B use 2007 Workshop on Experimental Computer Science, ACM, 2007, p. cases that produce a constantly high volume data stream will 7. be investigated. This includes Dealer Business Management [12] I. Ivanovski, S. Gramatikov, and D. Trajanov, "Enhancing where the state of the car is continuously transmitted to the Performance of Web Services in Mobile Applications by SOAP Compression," 16th Telecommunications Forum TELFOR 2008, car manufacturer in order to prevent severe car breakdowns. 2008. Furthermore, additional pay-as-you-drive examples such as [13] G. Moritz, D. Timmermann, R. Stoll, and F. Golatowski, "Encoding car rental taking into account driving behavior and matching and Compression for the Devices Profile for Web Services," IEEE of previously defined driving aspect boundaries will be 24th International Conference on Advanced Information Networking examined. and Applications Workshops, 2010, pp. 514-519. [14] C. Werner, C. Cuschmann, T. Jacker, and S. Fischer, "Bandwidth and latency considerations for efficient SOAP messaging," REFERENCES International Journal of Web Services Research, vol. 3, 2006, p. 49– [1] M. Miche and T.M. Bohnert, "The Internet of Vehicles or the 67. Second Generation of Telematic Services," ERCIM News, vol. 77, [15] T. Phan and Z. Tari, "Efficient SOAP Binding for Mobile Web 2009. Services," IEEE Conference on Local Computer Networks, 2005, pp. [2] T. Alby, Das mobile Web, Hanser Verlag, 2008. 218-225. [3] M. Miche, T. Bauer, M. Brogle, and T. Bohnert, "An In-Vehicle [16] D. Salomon, Data compression: the complete reference, Volume 10, シュプリンガー・ジャパン株式会社 Quality of Service Message Broker for Vehicle-to-Business , 2007. Communication," FOURTH ERCIM WORKSHOP, 2010, p. 27. [17] H. Liefke and D. Suciu, "XMill: an efficient compressor for XML [4] L. Boquete, J.M. Rodríguez-Ascariz, R. Barea, J. Cantos, J.M. data," Proceedings of the 2000 ACM SIGMOD International Miguel-Jiménez, and S. Ortega, "Data Acquisition, Analysis and Conference on Management of Data, ACM, 2000, p. 164. Transmission Platform for a Pay-As-You-Drive System," Sensors, [18] M. Cai, S. Ghandeharizadeh, R. Schmidt, and S. Song, "A vol. 10, 2010, pp. 5395-5408. comparison of alternative encoding mechanisms for web services," [5] "Studie Elektromobilität," Bundesverband Informationswirtschaft, Database and Expert Systems Applications, Springer, 2002, p. 89– Telekommunikation und neue Medien e.V., 2010, p. 12. 97. [6] O. Baecker, T. Ippisch, F. Michahelles, S. Roth, and E. Fleisch, [19] S. Sakr, "XML compression techniques: A survey and comparison," "Mobile claims assistance," Proceedings of the 8th International Journal of Computer and System Sciences, vol. 75, 2009, pp. 303- Conference on Mobile and Ubiquitous Multimedia, 2009, pp. 1-9. 322. [7] G. Starke, Effektive Softwarearchitekturen: Ein praktischer [20] C. Werner, "Effiziente Codierungen für SOAP-Nachrichten," Leitfaden, Hanser Verlag, 2009. subs.emis.de. [8] B. Walke, P. Seidenberg, and M.P. Althoff, UMTS: the [21] A. Dan and W. Lamersdorf, "Optimized Web Service Security fundamentals, John Wiley and Sons, 2003. Performance with Differential Parsing," 4th International Conference on Service-oriented Computing, Springer, 2006, pp. 277- [9] J. Kangasharju, "Binary Serialization of XML for Small Devices," 291. Rutgers University Ph.D. Student Workshop on Spontaneous Networking, 2006. [22] U. Hansmann, Pervasive computing: the mobile world, Springer, 2003. [10] A. Ng, P. Greenfield, and S. Chen, "A study of the impact of compression and binary encoding on SOAP performance," [23] T. Frotscher, M. Teufel, and D. Wang, Java Web Services mit Proceedings of the Sixth Australasian Workshop on Software and Apache Axis2, entwickler.press, 2007. System Architectures, Citeseer, 2005, pp. 46-56. [24] C. Lochert, A. Barthels, A. Cervantes, M. Mauve, and M. Caliskan, [11] C. Augeri, D. Bulutoglu, B. Mullins, R. Baldwin, and L. Baird III, "Multiple simulator interlinking environment for IVC," Proceedings "An analysis of XML compression efficiency," Proceedings of the of the 2nd ACM International Workshop on Vehicular Ad Hoc Networks (VANET), 2005, pp. 87-88.

83

Hochverfugbarkeit¨ fur¨ Datenbanken auf iSCSI Basis

Stefan Frey Christian Kolinski Department of Computer Science Department of Computer Science Furtwangen University of Applied Sciences Furtwangen University of Applied Sciences Furtwangen, Germany Furtwangen, Germany Email: [email protected] Email: [email protected]

Abstract—In unserer immer starker¨ vernetzten Welt gibt einer hochverfugbaren¨ Datenbank, sowie deren Konfigura- es ein stark wachsendes Bedurfnis¨ nach hochverfugbaren¨ tion vorgestellt und eine Hardwareempfehlung gegeben. Das Systemen. Leider sind viele der handelsublichen¨ Losungen¨ Abschliessende Kapitel 7 beschreibt dann das Fazit der zur Erreichung von Hochverfugbarkeit¨ teuer und verlangen viele Vorkenntnisse. Dieses Paper beschreibt gesammelten Erkenntnisse und deren Bewertung als auch das Konzept und die Umsetzung einer preiswerten einen Ausblick auf mogliche¨ zukunftige¨ Arbeiten. hochverfugbaren¨ Datenbank auf iSCSI Basis, welche Wie bereits beschrieben wurde ist das Bedurfnis¨ nach ohne teure Spezialhardware auskommt. Zusammen mit der Verfugbarkeit¨ in den letzten Jahren standig¨ gestiegen. Diskussion uber¨ Hochverfugbarkeitskonzepte¨ wird der iSCSI Verfugbar¨ bezieht sich dabei auf die Eigenschaft eines Standard erlautert¨ und die Machbarkeit durch ein Testsystem veranschaulicht. Dieses Testsystem dient auch als Basis fur¨ die Computer Systems oder Services Aufgaben zu erfullen¨ fur¨ Leistungsabschatzungen¨ und Messungen die in diesem Paper die es vorgesehen ist. Als Verfugbarkeit¨ in diesem Kontext vorgestellt werden. versteht man die Wahrscheinlichkeit das ein System Keywords-Hochverfugbarkeit;¨ iSCSI; Oracle10g Express; innerhalb eines spezifizierten Zeitraums funktionstuchtig¨ (verfugbar)¨ ist. Die Verfugbarkeit¨ wird als das Verhaltnis¨ der Produktivzeit und der Ausfallzeit eines Systems bemessen: I.EINFUHRUNG¨ P roduktivzeit Mit der zunehmenden Vernetzung der Markte¨ und der V erfugbarkeit¨ = P roduktivzeit+Ausfallzeit Gesellschaft im Zuge der Globalisierung in den vergangenen Jahren stieg auch stetig das Maß an Verfugbarkeit¨ von Um die Verfugbarkeit¨ in der gangigen¨ prozentualen Computer-Systemen und Services. War es vor 15 Jahren Schreibweise zu erhalten gibt es folgende Formel: noch einigen wenigen vorbehalten standig¨ erreichbar zu sein, Ausfallzeit so ist dies mittlerweile selbstverstandlich¨ geworden. Diese V erfugbarkeit¨ % = (1− P roduktivzeit+Ausfallzeit )∗100 neue Art de Umgangs mit Technologien stellt auch neue Anforderungen an die Verfugbarkeit.¨ Große Unternehmen Die Definition von Hochverfugbarkeit¨ bezeichnet hier- konnen¨ es sich inzwischen nicht mehr leisten auf Tech- bei, auf ein System welches auch im Fehlerfall weiterhin niken wie die Hochverfugbarkeit¨ zu verzichten. Das Ziel verfugbar¨ ist und ohne unmittelbaren menschlichen Eingriff von Hochverfugbarkeit¨ besteht dabei darin, eine moglichst¨ weiter genutzt werden kann. In der Konsequenz bedeutet hohe Ausfallfreiheit von wichtigen Geschaftsabl¨ aufen¨ und dies, dass der Anwender keine oder nur eine kurze Un- Services zu gewahrleisten.¨ Dieses Ziel ist jedoch in den terbrechung wahrnimmt. Hochverfugbarkeit¨ (abgekurzt¨ auch meisten Fallen¨ sehr kostenintensiv und komplex. Dieses HA, abgeleitet von engl. High Availability) bezeichnet also Paper wird im folgenden Verlauf Techniken und Grundlagen die Fahigkeit¨ eines Systems, bei Ausfall einer seiner Kom- der Hochverfugbarkeit¨ erlautern,¨ sowie eine kosten gunstige¨ ponenten einen uneingeschrankten¨ Betrieb zu gewahrleisten.¨ Losung¨ fur¨ eine hochverfugbare¨ Datenbank auf Basis von vgl [1]. iSCSI und Oracle 10g Express vorstellen und erlautern.¨ Die Harvard Research Group (HRG) [2] bezieht sich Dazu gliedert sich das Paper in folgende Abschnitte: bei dem Begriff der Hochverfugbarkeit¨ auf die prozentuale Im Rest dieses Kapitels werden alle wichtigen Grundlagen Form der Verfugbarkeit.¨ Dabei wird eine Unterteilung in und Hintergrundinformationen zum Thema Verfugbarkeit¨ sog. Verfugbarkeitsklassen¨ vorgenommen. Danach gilt ein beschrieben. In Kapitel 2 werden Basis Konzepte der System erst als hochverfugbar¨ wenn es eine Verfugbarkeit¨ Hochverfugbarkeit¨ und deren Umsetzung erlautert.¨ Kapitel 3 von mindestens 99,99 Prozent erreicht. Die vollstandige¨ gibt eine Einfuhrung¨ in das Thema Oracle 10g Express. Ab- Einteilung der Verfugbarkeitsklassen¨ kann in Tabelle I schnitt 4 dieses Paper zeigt dann die wesentlichen Konzepte eingesehen werden. Hierbei zeigt sich das ein vermeintlich von iSCSI. In Kapitel 5 und 6 wird dann das Konzept hochverfugbares¨ System mit einer Verfugbarkeit¨ von 99,99 sowie die Umsetzung einer beispielhaften Implementierung Prozent immer noch eine jahrliche¨ Ausfallzeit von 52,2

85 Geschaftsfeld¨ Kosten je Stunde Ausfallzeit Minuten hat.Diese Ausfallzeit ist jedoch mehr als un- Pay-per-View TV 67.000 - 112.000 $ genugend¨ fur¨ kritischen Systemen. Ticket Verkaufe¨ 56.000 - 82.000 $ Bankautomaten 12.000 - 17.000 $ Klasse Bezeichnung Verfugbarkeit¨ in Ausfallzeit Bestellservice (Katalog) 60.000 - 120.000 $ % pro Jahr Kreditkarten 2.200.000 - 3.100.000 $ 2 Stabil 99,0 3,7 Tage Borsenhandel¨ 5.600.000 - 7.300.000 $ 3 Verfugbar¨ 99,9 8,8 Std. Table II 4 Hochverfugbar¨ 99,99 52,2 Min. KOSTENJE STUNDE AUSFALLZEIT (QUELLE:CONTINGENCY 5 Fehlerunempfindlich 99,999 5,3 Min. PLANNING RESEARCH, 2001) 6 Fehlertolerant 99,9999 32 Sek. 7 Fehlerresistent 99,99999 3 Sek. Table I VERFUGBARKEITSKLASSENNACH¨ HRG aktiv gefordert¨ werden.

II.HOCHVERUGBARKEIT¨ Als kritische Systeme werden solche bezeichnet von denen Menschenleben direkt oder indirekt abhangen¨ wie Nachdem wir die Grundlagen von Hochverfugbarkeit¨ zum Beispiel Krankenhauser¨ oder Flughafen-Systeme. Fur¨ eingefuhrt¨ haben wollen wir nun einige Hochverfugbarkeits-¨ diese kritischen Systeme sind viel hohere¨ Verfugbarkeiten¨ Cluster-Konzepte betrachten. Ein Hochverfugbarkeits-¨ erforderlich. Die Erhohung¨ der Verfugbarkeit¨ wird dabei Clustersystem stellt dabei durch Redundanz der Knoten durch die Verringerung der Ausfallzeit erreicht. Hierfur¨ eines Systems die Verfugbarkeit¨ des Gesamtsystems sicher. wird zwischen zwei Arten der Ausfallzeit unterschieden. Fallt¨ ein Knoten eines Systems aus ubernimmt¨ ein anderer Zum einen die geplanten Ausfallzeiten wie beispielsweise gleichwertiger Knoten dessen Aufgaben. Dabei spricht Wartungen, Upgrades und Updates und zum anderen die man von dem sog. Failover & Fallback Prinzip. Failover ¨ ungeplanten Ausfallzeiten die durch Fehler in Software bezeichnet die Ubernahme der Aufgaben im Fehlerfall. und Hardware, sowie Menschliche-Fehler oder Katastrophen Fallback bezeichnet das zurucksetzen¨ in den ursprunglichen¨ verursacht werden. Diese ungeplanten Ausfallzeiten lassen Zustand. Das Redundanz Konzept in diesen Systemen sich durch fehlertolerante Software und den Einsatz von ermoglicht¨ es die Verfugbarkeit¨ des Gesamtsystems Redundanz auffangen. Hierbei spielt die Vermeidung von stark zu verbessern. Eine praktische Berechnung sog. Single Point of Failures (SPoFs) eine große Rolle. der Ausfallwahrscheinlichkeit eines beispielhaften SPoFs bezeichnen Punkte in einem System bei denen ein Systems soll dies verdeutlichen. Angenommen sei ein auftretender Fehler einen Gesamtausfall des Systems zur Zweikomponentensystem dessen Komponente A eine Folge hat. So stellt beispielsweise eine einfach ausgelegte Verfugbarkeit¨ von 99,99% besitzt und dessen Komponente Stromversorgung in einem sonst redundant ausgelegten Sys- B eine Verfugbarkeit¨ von 99,9% besitzt. So ergibt sich tem ein SPoF dar. folgende Rechnung: Einen interessanten Punkt in diesem Zusammenhang stellt die statistische Erfassung der Ausfallursachen dar. So wer- den laut einer Erhebung[1] fast 40% der der Ausfalle¨ durch Figure 1. System mit 2 Komponenten Fehler in der Software verursacht wahrend¨ die Hardware nur etwa fur¨ knapp 10% der Ausfalle¨ verantwortlich ist. Die Infrastruktur hat 5% und das Netzwerk etwa 1% zu verschulden. Auf Menschliche-Fehler sind knapp 15% der Ausfalle¨ zuruckzuf¨ uhren.¨ Einen weiteren Hauptgrund fur¨ den Einsatz von Hochverfugbarkeit¨ stellen die enormen V erfugbarkeit¨ A = 0, 9999 Kosten fur¨ die Ausfallzeiten von Computer-Systemen dar. V erfugbarkeit¨ B = 0, 999 Dabei spielen Produktionsverluste, Einnahmeverlusten sowie VGesamt = VA ∗ VB mogliche¨ Rechtskosten und Regressanspruche¨ ein große Rolle. Eine exemplarische Aufstellung der Ausfallkosten fur¨ VGesamt = 0, 9999 ∗ 0, 999 ausgewahlte¨ Geschaftsbereich¨ von 2001 kann in Tabelle II VGesamt = 0, 9989001 betrachtet werden. = Ausfallzeit von ∼ 9,7 Std. / Jahr Hierbei zeigt sich deutlich welches finanzielle Ausmaß ein Ausfall erreichen kann. Durch den stark ansteigenden Hierbei zeigt sich deutlich dass sich die Verfugbarkeit¨ Trend zum e-bussiness konnen¨ aktuelle Abschatzungen¨ die eines Gesamtsystems mit zunehmender Anzahl an hier beschriebenen Betrage¨ noch deutlich ubersteigen.¨ Der Komponenten verschlechtert. Wendet man auf dieses unterbrechungsfreie Geschaftsablauf¨ ist damit ein entschei- beispielhafte Zweikomponentensystem Redundanz in einer dender Faktor fur¨ den Erfolg eines Unternehmens und muss Parallelschaltung an ergibt sich folgende Berechnung:

86 Figure 2. System mit paralleler Redundanz

V erfugbarkeit¨ A1 & A2 = 0, 9999 V erfugbarkeit¨ B1 & B2 = 0, 999 VGesamt = 1 − (1 − VA1 ∗ VB1) ∗ (1 − VA2 ∗ VB2)

VGesamt = 1 − (1 − V0,9999 ∗ V0,999) ∗ (1 − V0,9999 ∗ V0,999) VGesamt = 0, 99999879 = Ausfallzeit von ∼ 38 Sek. / Jahr

Somit lasst¨ sich bereits mit einem geringen Aufwand ein Figure 3. Cold-Standby Konzept beachtlicher Effekt erzielen. Fur¨ die redundante Ausfuhrung¨ der Knoten innerhalb eines Hochverfugbarkeits-Cluster¨ gibt es mehrere Konzepte. Die Unterscheidung die hier zu mehrere Minuten dauern. Weiterhin besteht die Gefahr vorgenommen wird basiert auf der Art der Verwendung einer sog. Split-Brain-Situation. Diese tritt auf wenn der der Knoten im System. Dabei werden dabei drei Arten Heartbeat unterbrochen wird ohne das ein Ausfall des von Szenarios unterschieden. Erstens das Cold-Standby Knotens vorliegt. Dabei ergibt sich das Problem dass nun Szenario, zweitens das Warm-Standby Szenario und drittens zwei Systeme gleichzeitig auf eine einzelne Ressource zu- das Hot-Standby Szenario. greifen und diese korrumpieren konnen.¨ Um dieses Problem zu beseitigen gibt es das sog. ”Shoot the other Node in the Head” (StoNitH) Prinzip. Dabei wird im Falle des A. Cold-Standby verstummen des Heartbeats der bisherige aktive Knoten Das Cold-Standby Szenario besteht in der Regel aus vom passiven Knoten gezielt ausgeschaltet. Was durch das zwei gleichwertigen Konten welche mit einer gemeinsamen Blockieren des Netzwerkes, das sperren der Ressource oder Ressource verbunden sind. Zusatzlich¨ zu ihrer normalen physikalisches Abschalten des Knoten erreicht werden kann. Verbindung zum Netzwerk und der Ressource, sind die Ein weiterer Punkt den es zu beachten gilt ist dass beiden Konten direkt miteinander verbunden. Diese sog. der zweite Knoten standig¨ passiv auf einen Ausfall wartet Heartbeat Verbindung dient zur Ubermittlung¨ eines Leben- und keinerlei eigene Aufgaben ausfuhrt.¨ Dieses Konzept ist szeichens der einzelnen Knoten zueinander. Eine schematis- vergleichsweise gunstig¨ umzusetzen, jedoch nutzt es nicht che Ubersicht¨ davon kann in Figure 3 gesehen werden. die zusatzliche¨ Leistung des zweiten Knoten aus, da dieser Fallt¨ der Knoten A aus so findet dies Knoten B durch einfach bis zum Failover im Standyby Betrieb verbleibt. das verstummen des Heatbeats heraus und kann darauf reagieren. In diesem Failover Fall ubernimmt¨ Knoten B B. Warm-Standby die Aufgaben von Knoten A. Um dies zu bewerkstelligen Eine Abwandlung von diesem Prinzip stellt das Warm- ubernimmt¨ B dessen IP Adresse, kann also von den Clients Standby Szenario dar. Dabei sind ahnlich¨ wie beim Cold- weiterhin wie gewohnt angesprochen werden, und verbindet Standby zwei Knoten in einem Netzwerk verbunden. Je- sich auf die gemeinsame Ressource. Alle Anfrage die bisher doch verfugen¨ diese Knoten jeweils uber¨ eine eigenstandige¨ zu A geleitet wurden erreichen jetzt B und werden von Instanz einer Ressource. Des Weiteren wird hierbei auf diesem Knoten bearbeitet. Dieses Konzept reicht bereits eine eigenstandige¨ Heratbeat Leitung verzichtet. Der Heart- aus um Hochverfugbarkeit¨ zu erreichen da im Fehlerfall beat wird hierbei uber¨ die normale Netzwerkinfrastruktur das System weiterhin erreichbar ist und wie in der Defi- ubertragen.¨ Dies grundet¨ auf der Tatsache dass der zweite nition gefordert die Ubernahme¨ ohne menschlichen Eingriff Knoten keine passive Funktion ausubt,¨ sondern aktiv die ablauft.¨ Replikation der Ressource des aktiven Knotens durchfuhrt.¨ Dieses Konzept besitzt jedoch auch einige Nachteile. So Dabei werden die Datenbestande¨ und Anderungen¨ vom pro- kann die Ubernahme¨ der Aufgaben sowie die IP Adresse bis duktiven Knoten an den Standby Knoten ubertragen,¨ welcher

87 Figure 4. Warm-Standby Konzept

Figure 5. Hot-Standby Konzept dann seine lokale Ressource anpasst. Eine schematische Darstellung des Warm Standby Konzeptes kann in Figure C. Hot-Standby 4 betrachtet werden. Das Hot-Standby Konzept umfasst die Moglichkeit¨ mehr Dieses Konzept zeichnet sich durch die Moglichkeit¨ der als nur einen produktiven Knoten zu betreiben. Dabei wird Nutzung des nicht produktiven Systems aus. So ist es die Gesamtlast uber¨ alle Knoten verteilt. Der Aufbau besteht beispielsweise moglich¨ den zweiten Knoten fur¨ Reporting dabei aus mehreren Knoten auf die mittels eines Load Zwecke einzusetzen um so die Last des aktiven Knotens zu Balancers die Anfragen der Clients verteilt werden. Alle mindern. Ein weiterer Vorteil besteht darin dass durch die Knoten greifen auf eine gemeinsam genutzte Ressource zu. Verwendung von normaler Netzwerkinfrastruktur die Knoten Wahrend¨ des Normalbetriebs ergibt sich ein Performance raumlich¨ getrennt voneinander betrieben werden konnen.¨ Vorteil da alle zur Verfugung¨ stehenden Ressourcen aktiv in gebrauch sind. Im Falle eines Failovers werden die Anfragen Dies ist besonders nutzlich¨ um die Verfugbarkeit¨ von durch den Load Balancer umgeleitet und auf die anderen Systemen im Falle von Naturkatastrophen zu gewahrleisten.¨ Knoten des Systems verteilt. Dieses System zeichnet sich vor Dafu¨ werden die Knoten in verschiedenen Rechenzentren allem durch seine starke Flexibilitat¨ aus, so ist es beispiel- aufgestellt. Bei einem Ausfall bemerkt auch hier der Standby sweise moglich¨ wahrend¨ des Betriebs Knoten hizuzufugen¨ Knoten dies durch das verstummen des Heartbeat Signals. oder auszutauschen. Jedoch erfordert dies eine Reglemen- Tritt dieser Fall ein ubernimmt¨ der Knoten die IP des pro- tierung der gemeinsam genutzten Ressource im Bezug auf duktiven Knotens und bearbeitet dessen Aufgaben basierend Zugriffsbeschrankungen¨ und gegenseitigen Ausschluss. Eine auf seiner lokalen Ressource. Hierbei besteht keine Split Darstellung dieses Konzeptes kann in Figure 5 gesehen Brain Gefahr da jeder Knoten den ausschliesslichen Zugriff werden. auf seine Ressource besitzt. Hierbei wird eine beispielhafte Darstellung mit nur zwei Die Ubernahme¨ im Failover Fall geschieht dabei binnen Knoten gezeigt. Dadurch dass die Arbeit im Failover Fall einiger Sekunden, was eine Verbesserung gegenuber¨ dem nicht vom aktiven auf den passiven Knoten ubertragen¨ Cold-Standby Konzept darstellt. Jedoch gibt es auch hier werden muss, wie es bei den anderen Konzepten der Fall wiederum Nachteile die nicht ausser acht gelassen werden ist, sondern vom Load Balancer neu verteilt wird sind sollten. So bestehen je nach Dauer der Replikation Inkonsis- sehr schnelle direkte Ubernahmen¨ moglich.¨ So wird die tenzen zwischen den beiden Ressourcen. Des Weiteren steigt Ubernahmezeit¨ mit maximal einigen Sekunden angegeben. die Netzlast durch die Replikation und das Heartbeat Signal Als weiterer Vorteil dieses Konzepts gilt seine Lastverteil- welche uber¨ die normale Infrastruktur gesendet werden stark lung und Parallelisierung. Hierdurch werden die zusatzlichen¨ an. Ressourcen, welche zur Verfugbarkeitssicherung¨ notwendig

88 sind auch im Normalfall genutzt. Jedoch ist dieses Verfahren IV. ISCSI auch das kostenintensiveste und komplexeste wodurch es nur A. Klassisches SCSI in sehr großen Umgebungen eingesetzt wird. Alle der drei hier vorgestellten Konzepte besitzen ihre Der SCSI-Standard wurde 1979 von Shugart Technology jeweilige Vor- und Nachteile und mussen¨ daher auf die entwickelt. 1986 wurde er als ANSI-Standard aufgenommen. spezifischen Anwendungsgebiete angepasst werden. Bei der Die ursprungliche¨ SCSI-Definition beinhaltete Spezifikatio- Auswahl einer geeigneten Methode zur Erreichung von nen sowohl fur¨ Hardware als auch das daruber¨ liegende Hochverfugbarkeit¨ lassen sich auch Kombinationen der Protokoll. einzelnen Konzepte umsetzen. 1993 loste¨ der SCSI-3 Standard das logischen Protokoll von der eingesetzten Hardware und nahm eine Spezi- fikation zur Ubertragung¨ von SCSI-Befehlen uber¨ andere III.ORACLE 10G EXPRESS Ubertragungsmedien¨ auf. Softwareseitig besteht SCSI aus einem Satz von ca. 60 Be- Um auch solche Nutzer, die auf der Suche nach fehlen, uber¨ welche die angeschlossenen Gerate¨ angesteuert einem kleinen, preisgunstigen¨ und dennoch leistungsfahigen¨ werden konnen.¨ Hiervon sind jedoch nur ein geringer Teil RDBMS (Relational Database Management Systems) sind, verpflichtend, diese regeln insbesondere die Initialisierung fur¨ Oracle zu gewinnen steht mit der Oracle 10g Express des Busses. Die Implementierung der restlichen Befehle Edition (XE) eine kostenlose Version zur Verfugung.¨ ist abhangig¨ von der Art des Gerates.¨ Dieser Befehlssatz Dies ist wohl vor allem dem Erfolg von Open- hat sich in den vergangenen 30 Jahren als sehr robust Source Datenbanksystemen wie MySQL oder PostgreeSQL und zuverlassig¨ erwiesen, und wird gerne als Abstraktion- geschuldet. sebene zur Ansteuerung von Hardware wie Festplatten, CD- ROM- und Bandlaufwerken verwendet - unabhangig¨ davon, Oracle 10g Express unterliegt hierbei folgenden uber¨ welche Schnittstelle diese physikalisch angeschlossen Beschrankungen:¨ sind. Prominentestes Beispiel hierfur¨ ist der Linux-Kernel, • Nutzung eines einzelnen CPU-Kerns welcher unter anderem auch USB-Massenspeicher als SCSI- • Maximal 1GB RAM Gerate¨ abbildet sowie Fibre-Channel, welches SCSI-Befehle • Großenlimit¨ der Datenbank: 4GB exkl. Logfiles. uber¨ einen optischen Datenkanal benutzt. • Lediglich als 32-Bit-Version fur¨ Linux und Windows B. Internet-SCSI Des Weiteren lasst¨ sie jeglichen Support fur¨ Hochverfugbarkeitsl¨ osungen¨ vermissen, so dass nicht Bei iSCSI werden die SCSI-Befehle in ein TCP-Paket auf die in den Standard- und Enterpriseversionen ublichen¨ gekapselt (siehe Fig. 6) und via IP ubertragen.¨ Inner- Losungen¨ zuruck¨ gegriffen werden kann. halb eines LAN dient hierzu zumeist Ethernet, jedoch ist iSCSI im Gegensatz zu konkurrierenden Technologien wie Keine Einschrankung¨ besteht jedoch hinsichtlich der ATAoverEthernet oder FibreChannel nicht an ein bestimmtes Nutzerzahl oder des Einsatzgebietes. Oracle 10g XE darf Ubertragungsmedium¨ gebunden. Ebenso sind iSCSI-Pakte, somit auch fur¨ kommerzielle Zwecke eingesetzt werden. wie die Pakete jedes TCP/IP-Protokolls - routbar. Auch darf sie unbegrenzt weitergegeben werden, so dass Oracle 10 XE zusammen mit selbst entwickelter Software ausgeliefert werden kann. Anwendungen und Datenbanken, die zur Verwendung mit Oracle 10g XE entwickelt wurden lassen sich ohne Anderungen¨ auf Oracle 11g Standard oder Enterprise mi- grieren. Dies ermoglicht¨ es bei Bedarf ohne Anderungen¨ Figure 6. Kapselung iSCSI-Pakete am Datenbestand auf eine der kostenpflichtigen Versionen zu wechseln, sollte Oracle 10g XE den Anspruchen¨ nicht Der Server, welcher Speicherplatz zur Verfugung¨ stellt mehr genugen.¨ wird hierbei als Target, ein Client als Initiator bezeichnet. Oracle 10g XE kann nach Registrierung auf der Web- Die per iSCSI angebundenen Gerate¨ verhalten sich site von Oracle heruntergeladen werden[4]. Hierbei stehen gegenuber¨ dem Betriebssystem aquivalent¨ zu einem an sowohl rpm fur¨ Fedora/Red-Hat, deb fur¨ /Ubuntu als den lokalen SCSI-Bus angeschlossenem. Daher konnen¨ alle auch eine exe fur¨ 32Bit Windows zur Verfugung.¨ Werkzeuge, welche auf lokalen Devices eingesetzt werden Ebenso findet sich fur¨ diese Plattformen ein Client, konnen,¨ auch mit iSCSI-Targets verwendet werden. welcher es erlaubt von anderen Rechnern aus per Netzwerk Die Performance von iSCSI wird in erster Linie von auf die Datenbank zuzugreifen, sowie eine ausfuhrliche¨ der Bandbreite des zu Grunde liegenden Transportmediums Onlinehilfe[5] bestimmt. Bei Ethernet ist dies im Enterpriseumfeld heute

89 Produkt Maximale CPU RAM Preis pro Mindestanzahl Preis pro Anzahl & HDD Nutzer Nutzerlizenzen CPU Oracle 11g Standard One 2 CPU unbeg. $180 5 $5800 Oracle 11g Standard 4 CPU unbeg. $350 5 $17500 Oracle 11g Enterprise Lizenzabh. unbeg. Individuell - Individuell Oracle 10g Express 1 Core 1 GB RAM frei frei frei 4GB DB Table III ORACLEVERSIONEN

zumeist 1GB/s, wobei hier bereits Komponenten fur¨ den Nachdem diese Fehlerquelle behoben wurde verbesserten 10GB/s-Betrieb auf dem Markt erhaltlich¨ sind. sich die Ubertragungsraten¨ merklich, die Durchfuhrung¨ 1) Messungen: Zur Abschatzung¨ der Performance der weiterer Benchmarks war bis zur Drucklegung jedoch leider iSCSI-Verbindung wurden einige Schreib/Lesebenchmarks nicht mehr moglich.¨ durchgefuhrt.¨ Hierbei wurden mehre Werte bestimmt: 2) Schlussfolgerungen: Die in der Kombination von • Durchsatz nur iSCSI iSCSI und Gigabit-Ethernet moglichen¨ Ubertragungsraten¨ • Durchsatz der Platte im lokalen Betrieb sind denen aktueller Consumer-Festplatten nahezu • Durchsatz der Platte uber¨ iSCSI ebenburtig.¨ Zwar konnen¨ aktuelle SATA-Festplatten Um die maximal mogliche¨ Durchsatzrate uber¨ iSCSI Dauertransferraten von bis zu 120 MB/Sekunde erreichen[7], zu ermitteln bietet der iSCSI-Enterprise-Target-Daemon die diese Leistung wird jedoch nur beim Transfer großer, Moglichkeit¨ ein Nulldevice als Target zu definieren. Alle zusammenhangender¨ Datenblocke¨ realisiert und ist zudem hierauf geschriebenen Daten werden verworfen, Anfragen abhangig¨ von der Position der Datei auf der Platte. Im mit Zufallszahlen beantwortet. wahlfreien Zugriff auf mehrere kleine Datenblocke¨ ist hier Zum Test des Duschsatzes der Platte kam das Tool nur eine deutlich geringere Datenrate erreichbar welche von ”Bonnie++”[6] zum Einsatz. Bonnie++ pruft¨ hierbei den iSCSI voll abgedeckt werden kann. Durchsatz der Platte in verschiedenen Szenarien, ebenso die Beim Betrieb der Oracle-Datenbank von einem iSCSI- Zugriffszeit sowie die resultierende CPU-Belastung. Hierzu Device ist somit nicht mit großeren¨ Leistungseinbußen ver- ist jedoch ein funktionierendes Dateisystem notwendig, da glichen dem Betrieb auf einem einzelnen Low-Cost-Server Bonnie++ zur Messung auf den normalen fileio zuruckgreift.¨ zu rechnen. Aus diesem Grund konnten die Messungen auf das 3) Besonderheiten: Da iSCSI uber¨ keinerlei Lock- iSCSI-Nulldevice nicht mit Bonnie++ durchgefuhrt¨ wer- ingverfahren verfugt,¨ mussen¨ konkurrierende Zugriffe auf den, ersatzweise wurden hier Einzelmessungen mittels ”dd” Dateisystemebene gemanagt werden. Das eingesetzte ext3- durchgefuhrt.¨ Filesystem ist hierzu jedoch nicht in der Lage. Es ist daher Die Vergleichswerte sind Tabelle IV zu entnehmen. wichtig sicher zu stellen, dass es nicht zu einer uberlappung¨ der Schreibzugriffe auf das Dateisystem kommt. Hierfur¨ Messung Durchsatz lesend Durchsatz schreibend MB/s MB/s ist in diesem Falle durch den Linux-HA-Heartbeat gesorgt, Nur iSCSI 91,3 89,7 welcher dafur¨ Sorge tragt,¨ dass niemals zwei Oracle- Platte lokal 60,2 46,6 Instanzen zeitgleich ausgefuhrt¨ werden. Platte iSCSI 32,7 42,1 Table IV V. KONZEPTUND IMPLEMENTIERUNG DURCHSATZMESSUNGEN.DURCHSCHNITTVON 5 MESSUNGEN. Um Abhilfe fur¨ die fehlende Unterstutzung¨ von Hochverfugbarkeitskonzepten¨ in der Oracle 10g XE zu Auffallig¨ war hierbei, dass der Durchsatz beim schreiben schaffen wurde ein Failoversystem entworfen, welches die via iSCSI nahezu dem des lokalen Zugriffes entsprach, Funktionalitat¨ des Oracle Failover Clusters und damit das die Datenrate bei Lesezugriffen jedoch stark einbrach. Dies Cold-Standby Konzept abbildet. stellte sich als ein bekannter Schmutzeffekt heraus, welcher Dieses Besteht, wie in Figur 7 abgebildet, aus zwei auftritt wenn die Geometrie der physikalischen Platte zu identischen Hosts – Oracle I(2) und Oracle II(3) –, welche sehr von der der ”virtuellen” iSCSI-Platte abweicht. Dies Zugriff auf ein gemeinsames iSCSI-Target(5) haben. Hier- fuhrt¨ dazu dass ein Lesezugriff auf das virtuelle Laufwerk von ist jedoch nur einer ein aktiver Oracle-Server, auf dem auf mehrere Lesezugriffe auf der echten Platte abgebildet zweiten ist lediglich das Betriebssystem aktiv. Die Dateien werden muss, was zu einem massiven Verlust an Durchsatz der Oracleinstallation sind auf das iSCSI-Device ausge- fuhrt.¨ lagert. Die beiden Oracle-Hosts uberwachen¨ sich gegenseitig

90 ner und des vom Failover betroffenen Dienstes. So konnen¨ Knoten aushandeln, welcher nun der aktive Dienstanbieter ist. Auch konnen¨ Split-Brain-Situationen - wenn auch nur nachtraglich¨ - erkannt werden. Zur Uberwachung¨ konnen¨ wahlweise Broadcast, Multicast oder Singlecast (direkt addresierte Nachrichten) verwendet werden. Da der Heartbeat uber¨ das Netzwerk auf Nutzerseite betrieben wird, ist es sinnvoll die Belastung anderer Netzw- erkteilnehmer durch die Wahl von Multi- oder Singlecast- Nachrichten zu minimieren. Sollte binnen der definierten Zeit keine Heartbeat- Nachricht erhalten worden sein, so ist davon auszugehen dass sich kein weitere aktiver Knoten im Netz befindet und somit der Dienst gestartet werden kann. Die Identifikation der Rechner geschieht hierbei anhand des Hostnamens sowie einer gemeinsamen Nutzer/Passwort- Kombination. Da Start und Stopp des Oracle-XE-Dienstes von Heartbeat gesteuert werden, muss der automatische Start von Oracle beim Booten unterbunden werden. 2) Ubernahme¨ der IP-Adresse: Zusatzlich¨ zu den IP- Adresse der Rechner selbst wird eine weitere IP-Adresse benotigt,¨ welche jeweils dem aktiven Host zugeordnet wird. Dies ist auch die Adresse, uber¨ welchen der Dienst von außen zu erreichen ist. Somit bleiben die einzelnen Hosts weiterhin unter seiner individuellen IP-Adresse erreichbar. Dies ist gleich in mehrerlei Hinsicht vorteilhaft: • Uberwachungssysteme¨ wie z.B. Nagios[8] sind in der Lage den Gesundheitszustandes sowohl der Einzelrech- ner, als auch den der gesamten Failoverlosung¨ selbst zu Figure 7. Grundaufbau Failovercluster testen. • Administrative eingriffe uber¨ das IP-Netzwerk sind mittels eines Heartbeats, um einen eventuellen Ausfall zu eindeutig koordinierbar. erkennen. Kommt es zu einem Ausfall des aktiven Oracle- • Skripte, Zertifikate, SSH-Keys etc. bleiben gultig.¨ Hosts, so erkennt dies der passive Knoten durch ausbleiben • Nodes konnen¨ einfacher ausgetauscht werden. des Hearbeats und startet Oracle. Da die Rechner hierbei B. Oracleinstallation auf den selben Datenbestand des iSCSI-Devices zugreifen, erscheint dies fur¨ die Oracle-DB wie ein Absturz des Rechn- Da Oracle die Datenbank als fertige Installationspakete ers mit anschließendem Neustart, der Wechsel des Rechners fur¨ gangige¨ Linux-Distributionen liefert, gestaltet sich die ist hierbei transparent. Der Ausfall des passiven Rechners Installation relativ komfortabel. hat keine Auswirkungen. Zusatzlich¨ muss das Paket libio1 installiert werden, dies geschieht abhangig¨ des verwendeten Installationstools je- A. Heartbeat doch automatisch. Zur Uberwachung¨ der Server und Koordination des Es tritt jedoch eine, von Oracle in den Distribution- Failovers kommt ”Heartbeat” aus dem Linux-High- spaketen nicht vermerkte, Abhangigkeit¨ mit dem Paket ”bc” Availability(HA)-Projekt zum Einsatz. auf, da der darin enthaltene Rechner fur¨ die Kommandozeile 1) Funktionsweise: Hierbei werden zwischen den Rech- im Verlauf des Installationsskriptes zur Berechnung ver- nern regelmaßig¨ Nachrichten ausgetauscht. Bleiben diese wendet wird. Konnen¨ diese nicht vorgenommen werden, Nachrichten eine vordefinierte Zeit aus, so wird angenom- ist die Konfiguration der Oracle 10g Instanz korrupt und men das der betroffene Rechner nicht mehr Funktionsfahig¨ verhindert einen erfolgreichen Start der Datenbank sowie ist. Bei Linux-HA-Heartbeat kommen den Nachrichten nicht der zugehorigen¨ Dienste. nur die Funktion einer ”Ich lebe noch”-Nachricht zu, sie en- Teile der Installation sind vom Hostnamen des Rechners thalten zudem weite Informationen zum Zustand der Rech- abhangig,¨ dies trifft insbesondere den Netzwerkdienst zur

91 Bereitstellung von Weboberflache¨ und SQL-Verbindungen. Anderen Seite gilt es, fehlerhaftes Erkennen moglichst¨ zu Als die einfachste Losung¨ fur¨ dieses Problem erschien, vermeiden, da ein falschlicher¨ Failover zu unnotiger¨ Down- die lokalen Hostnamen der Rechner identisch zu halten. time sowie dem Verlust der aktuellen SQL-Verbindungen Dies erzeugt jedoch einen Konflikt mit der Funktionsweise samt derer nicht mit einem committ bestatigten¨ Daten fuhrt¨ des Linux-HA-Heartbeats, da dieser den lokalen Hostnamen (Siehe Abschnitt V-C). zur Identifikation der Rechner heranzieht, und somit die Um einen falschlichen¨ Failover zu vermeiden, sollte die lokalen Hostnamen unter den Heartbeatrechnern unique sein Erreichbarkeit des Routers zum Clientnetz ebenfalls gepruft¨ mussen.¨ werden. Wenn dieser nicht erreichbar ist, so ist auf ein Nach einer Untersuchung der Konfiguration der Oracle- Failover zu verzichten, da moglicherweise:¨ installation konnte festgestellt werden, dass der Hostname • Der aktive Host moglicherweise¨ nicht ausgefallen ist, lediglich in einer geringen Anzahl der Konfigurationsdateien sondern nur die Verbindung des passiven Hosts zum hinterlegt wurde. Dies ermoglichte¨ es ohne großere¨ Komp- Router ausgefallen ist. Hierbei wurde¨ ein Failover via likationen diese Hostdateien lokal vorzuhalten. StoNitH einen funktionierenden Host abschalten ohne Die betroffenen Dateien wurden in /etc/oracle hinterlegt, Ersatz bieten zu konnen.¨ und die Originaldateien innerhalb des auf das iSCSI-Devices • Der Router ausgefallen ist, und somit beide Hosts von ausgelagerten Dateisystem einen symbolischen Link auf den Clients nicht erreicht erreichbar sind. Ein Failover diese lokalen Kopien ersetzt. ist somit unnotig,¨ da er keinen Gewinn an Verfugbarkeit¨ C. Folgen eines Absturzes erreicht. Da zudem der nun neu startende Rechner keine Heartbeat-Informationen empfangt,¨ kame¨ es zu einer Grundsatzlich¨ ist hierbei anzumerken, dass die Folgen fur¨ Split-Brain-Situation da dieser - ausgehend von der die Datenbank hier immer diejenigen sind, welche auch bei Annahme der einzige aktive Datenbankhost zu sein, einem Absturz eines Einzelrechners auftreten konnen.¨ Dies seine lokale Oracleinstanz starten wurde.¨ hat insbesondere folgende Auswirkungen. 2) Zeiten: Die Dauer eines Ausfalles (Mean Time to Verlust der SQL-Verbindung Repair) ist eine wichtige Große¨ zur Bestimmung der Bei einem Failover werden die bestehenden TCP- Verfugbarkeit¨ eines Gesamtsystems. Diese setzt sich in Verbindungen beendet, da es sich bei dem nun diesem Fall aus mehreren Großen¨ zusammen, welche leider aktiven System um einen eigenstandigen¨ Rechner nicht alle eindeutig bestimmbar sind. mit eigenem Netzwerkstack handelt. Die mit dem Ausgefallenen Rechner ausgehandelten Verbindun- Aktivitat¨ Dauer ca. Gesamtzeit ca. gen sind daher ungultig.¨ Hierdurch wird die Ausfall des aktiven Hosts 0s 0s Verbindung des SQL-Clients zum RDBMS unter- Karenzzeit Heartbeat 10s 10s brochen und muss erneut aufgebaut werden. Einleiten des Failovers 5s 15s und ubernahme¨ IP-Nummer Verlust von nicht abgeschlossenen Transaktionen Neustart Oracle 10s 25s Transaktionen, welche noch nicht mit einem ”com- Rollback der Datenbank unbk. unbk. mit” abgeschlossen wurden, werden bei Neustart Table V des RDBMS zuruckgerollt¨ und gehen damit DAUER FAILOVER verloren. Grund hierfur¨ ist die Wahrung der Datenbankkonsistenz, welche nur außerhalb einer Transaktion gewahrleistet¨ ist. Dieser Vorgang kann Unbekannt ist hierbei vor allem die Zeitspanne, welche je nach Umfang der zuruckzurollenden¨ Aktionen die Oracle-Datenbak zum Rollback nicht bestatigter¨ einige Zeit in Anspruch nehmen. Transaktionen benotigt.¨ Dies ist von der Anzahl und dem Umfang der betroffenen Transaktionen abhangig¨ und kann D. Failover von wenigen Sekunden bis in den Minutenbereich andauern. 1) Ablauf Failover: Der Ausfall eines Rechners oder Aus den in Tabelle V gelisteten Zeiten ergibt sich somit eine Storung¨ der Netzwerkinfrastruktur, die Kommunikation eine Mindestausfallsdauer von ca. 25 Sekunden, eine obere zwischen den beiden Oracle-Servern unterbricht, verhindert Grenze ist jedoch nicht bestimmbar. die erfolgreiche Auslieferung der Heartbeatpakete an die 3) Reaktion des Netzwerkes: Durch den Failover andert¨ Gegenseite. sich die Zuordnung der IP-Adresse zu der dazugehorigen¨ Treffen die Heartbeat-Pakete nicht erwartungsgemaߨ ein, MAC-Adresse des Ethernets. so gilt die Gegenseite als ausgefallen. Die Wahl der Zeit, Dies stellt direkt nach dem Failover ein Problem dar, da nach Ablauf welcher ein Host als ausgefallen erkannt wird die Pakete somit weiterhin an den ausgefallenen Rechner bewegt sich hierbei in einem Spannungsfeld. Einerseits ist ausgeliefert werden bis der ARP-Cache der Clientrechner es wunschenswert¨ einen Ausfall moglichst¨ Zeitnah erkennen erneuert wird. Hierzu sehen RFC826[9] sowie RFC1027[10] zu konnen,¨ und dadurch den Failover einzuleiten. Auf der eine Moglichkeit¨ zur Zwangsanderung¨ der ARP-Tabellen

92 aller im Netzwerk befindlichen Rechner. Diese Funktion kann mit einer kleinen Hardwarelosung¨ [12] ein Drucken¨ wurde in der Vergangenheit jedoch mehrfach fur¨ Angriffe des Einschaltknopfes simuliert werden. auf Netzwerkkomponenten benutzt und daher bei vielen 3) Relaiskarte: Betriebssystemen deaktiviert. Um den Failover dennoch in Im Angebot diverser Elektronikfachmarkte¨ und –versender einer moglichst¨ kurzen Zeit fur¨ das gesamte Netz wirksam finden sich Relaiskarten welche z.B. uber¨ den Parallelport werden zu lassen wird die Installation eines Routers zwis- des Rechners angesteuert werden konnen.¨ Diese bieten eine chen der Oracle-Failoverlosung¨ und den Datenbankclients einfache und preisgunstige¨ Moglichkeit¨ ein StoNitH-Device vorgeschlagen. Hier muss dann nur noch eine einzige ARP- zu implementieren. Hierbei werden die beteiligten Rechner Tabelle – die des Routers – geandert¨ werden. Dies kann mit jeweils einer der Karten ausgerustet,¨ und ein Relais der entweder explizit durch einen im Failover integrierten Be- Karte mit den ”Reset”-Kontakten auf den Mainboards der fehl (Beispielsweise per ssh) oder durch Deaktivierung der anderen Rechner verbunden. diesbezuglichen¨ Sicherheitsfunktionen an diesem Interface Als einfache Software kann hier z.B. das Programm des Routers geschehen. ”parashell” [13] zum Einsatz kommen, welches eine direkte 4) Fallback: Auf einen Fallback des Oracleservers auf Ansteuerung der einzelnen Pins der Parallel Schnittstelle das ursprungliche¨ System nach dessen Wiederanlaufen ermoglicht.¨ Zur Ansteuerung von Relaiskarten mit RS- wurde verzichtet. Da die beiden Oracleserver identisch aus- 232 bzw. USB-Anschluss sind vergleichbare Programme gelegt sind, wurde¨ ein Failback lediglich einen zusatzlichen,¨ erhaltlich¨ bzw. als freie Software verfugbar.¨ unnotigen¨ Ausfall – verbunden mit den einhergehenden Die Anbindung der Steuersoftware an den StoNitH- Problemen – verursachen. Bei einem erneuten Start des Daemon muss hierbei jedoch individuell erfolgen und er- ausgefallenen Rechners erkennt der dortige lokale Haertbeat- fordert gegebenenfalls Kenntnisse zur Programmierung oder Daemon die Existenz eines aktiven Servers im Netz und ver- im Shell-Scripting. hindert den Start des Datenbankdienstes. Der Rechner geht Ist die Relaiskarte fur¨ den Betrieb an 230V Netzspan- nun als passiver Standby-Knoten in Betrieb und ist bereit nung geeignet, so kann sie auch zum harten Ausschalten fur¨ einen Failover, sollte der nun aktive Server ausfallen. des Rechners verwendet werden, aquivalent¨ der ”Netzw- erksteckdose”. Hierbei ist jedoch auf eine Ausreichende E. Stonith-Device Dimensionierung der Relais (230V, 16A) sowie den VDE- Zur Vermeidung von Split-Brain-Situationen muss gerechten Aufbau der Gesamtschaltung zu achten bzw. sichergestellt werden, dass bei der Ubernahme¨ des Dienstes geeignete Schutz- und Isolierungsmaßnahmen zu treffen. durch einen anderen Host der ursprungliche¨ Dienstanbieter Die Installation ist durch elektrotechnisches Fachpersonal nicht mehr aktiv ist. Dies wird durch die ”Shoot the other vornehmen zu lassen. Node in the Head” - StoNitH - Methode realisiert: Im Falle einer Failover-Situation wird der Ursprungsrechner hart F. Aufbaualternativen ausgeschaltet oder komplett neu gestartet. Da hierzu Zugriff Der Grundgedanke des hier vorgestellten Ansatzes erlaubt auf die Stromversorgung oder die Serverhardware selbst eine Reihe von Modifikationen, welche eine Anpassung notig¨ ist, muss ein geeignetes Peripheriegerat¨ eingesetzt des Systems an an die Erfordernisse vor Ort und das zur werden. Hierbei ergeben sich im Low-Cost-Bereich mehre Verfugung¨ stehende Budget moglich¨ machen. Im Folgenden Moglichkeiten:¨ sollen hierbei einige mogliche¨ Varianten vorgestellt werden. 1) USV: 1) Alternative: Diskless Oracle-Hosts: Da die Festplatte Da zur Sicherstellung einer ausreichenden Verfugbarkeit¨ der Oracle-Hosts lediglich das Betriebssystem enthalt,¨ ist der Einsatz einer unterbrechungsfreien Stromversorgung es durchaus denkbar, in diesen Rechnern komplett auf eine vonnoten¨ ist, bietet sich diese auch fur¨ den Einsatz als konventionelle Festplatte zu verzichten. Dies wurde¨ eine StoNitH-Device an. Der bei Linux-HA inkludierte StoNitH- haufige¨ Storungsquelle¨ beseitigen, da die Funktion diese Daemon besitzt bereits Ansteuerungsroutinen fur¨ einige Rechner nicht mehr von einem anfalligen¨ mechanischen USV-Modelle des Herstellers APC[11]. Bauteil abhangen¨ wurde.¨ Um die Festplatte zu ersetzen 2) Zwischensteckdosen mit IP-Fernsteuerung: bieten sich hierbei verschiedene Varianten an. Am Markt sind hierbei diverse unterschiedliche 2) Booten von DOM: Bereits seit langerer¨ Zeit sind Ausfuhrungen¨ erhaltlich,¨ die sich insbesondere in der in kleineren Servern und Embedded-Computern Disk-on- Art der Ansteuerung, der Belastbarkeit sowie der Anzahl Module-Speicher sehr beliebt. Es handelt sich hierbei um der schaltbaren Gerate¨ unterscheidet. Soll uber¨ diese eine kleine SolidState-Disk in Modulform, welche direkt in Hardware lediglich ein Reset der angeschlossenen den Festplattenanschluss des Mainboards verbaut wird. Als Maschinen eingeleitet werden, so ist sicher zu stellen, Speichertechnologie kommt hierbei Flash zum Einsatz. dass diese nach wieder einschalten der Stromversorgung Im Gegensatz zu den aktuell aufkommenden SSDs großer wieder in Betrieb gehen. Bei den meisten PC-Mainboards Hersteller sind DOMs nicht auf Performance ausgelegt, ist dies uber¨ eine BIOS Einstellung moglich,¨ alternativ sondern auf einen langen, storungsfreien¨ betrieb, geringen

93 Stromverbrauch und gunstigen¨ Preis. Sie dienen zumeist Funktion Produkt Betriebssystem Ubuntu 10.04 Server 32 Bit als Startmedium fur¨ ein Live-System, welches nach Start iSCSI-Initiator OpenISCSI v. 2.0.87 komplett aus dem Arbeitsspeicher ausgefuhrt¨ wird, und Heartbeat Linux-HA Heartbeat keine Schreibzugriffe auf den DOM ausfuhrt.¨ Oracle Oracle 10g XE, Hierdurch wird sichergestellt dass, weder zufallig¨ noch Debian Installationspaket mutwillig, Anderungen¨ am Betriebssystem vorgenommen Table VII werden konnen.¨ Nach einem Neustart ist jeweils wieder die SOFTWARE ORACLESERVER im DOM hinterlegt Konfiguration aktiv. 3) Booten vom Netz: Da mit dem iSCSI-Device bereits ein Netzwerkspeicher zur Verfugung¨ steht, bietet es sich an, als Serverbetriebssystem die 32-Bit-Version von Ubuntu auch den Startvorgang der Rechner hieruber¨ abwickeln zu 10.04 Server gewahlt.¨ Es ist zwar technisch moglich,¨ 32Bit- konnen.¨ Hierzu ist auf dem iSCSI-Device zusatzlich¨ ein PXE Anwendungen auch unter einem x64-Linux auszufuhren,¨ sowie ein DHCP-Server zu installieren, um ein booten aus dies ist jedoch nicht immer frei von Komplikationen und dem Netz zu ermoglichen.¨ Seiteneffekten, die hier um jeden Preis vermieden werden Hierbei ist jedoch zu beachten, dass es durch die mussten. zusatzliche¨ Last bei Start eines Systems zu Performanceein- bußen kommen kann, sollte ein Systemstart und ein IO- I. iSCSI-Target Intensiver Datenbankzugriff gleichzeitig auftreten. 4) Live-System: Grundvoraussetzung fur¨ die beiden vor- Hardwaretyp Verwendetes Bauteil genannten Ansatze¨ bildet ein Live-System einer Linux- CPU Intel Celeron D 3,0GHz Distribution, welches von einem read-only-Datentrager¨ RAM 2GB DDR800 Festplatte 40GB fur¨ iSCSI geladen werden kann. Einige Distributionen, wie die Seagate 7200.12 Systemplatte Desktop-Version von Ubuntu 10.04 bringen ein solches bere- Netzwerk Broadcom NetExtreme 1Gbit its mit. Dieses kann mit Hilfe eines komfortablen grafischen Table VIII Werkzeugs auf einen beliebigen Datentrager¨ transferiert wer- HARDWARE ISCSI-TARGET den. 5) Netzwerktopologie iSCSI-Netz: Der in Abbildung 7 als Bauteil 4 eingezeichnete Switch kann entfallen, wenn das Funktion Produkt iSCSI-Device exklusiv fur¨ die Oracle-DB benutzt und mit Betriebssystem Ubuntu 10.04 Desktop einer zweiten Netzwerkkarte ausgestattet wird. Dies senkt iSCSI-Target iSCSI-Enterprise-Target v. 1.4.19 nicht nur die Gesamtkosten des Systems, es eliminiert zudem Table IX einen kritischen SPoF und erhoht¨ somit die Verfugbarkeit.¨ SOFTWARE ISCSI-TARGET

G. Proof of Concept/Testsystem Die ursprunglich¨ aufgrund ihres hohen Datendurchsatzes Um den Beweis anzutreten, dass eine Failoverlosung¨ gewahlte¨ Seagate 7200.12 kommt augenblicklich nur als mit Oracle-XE moglich¨ ist, und um die Leistung des Systemplatte zum Einsatz. Da es bei der Nutzung von Systems einschatzen¨ zu konnen,¨ wurde der vorgestellte logischen Partitionen als iSCSI-Laufwerke zu diversen Per- Losungsansatz¨ implementiert. Die im Folgenden formanceproblemen kam, wurde die Festplatte um eine aufgefuhrten¨ technischen Daten sollen bei der Einordnung zusatzliche¨ 40GB Platte erganzt.¨ Diese wird ausschließlich und Bewertung der genannten Benchmarkergebnisse helfen. fur¨ das iSCSI-Target verwendet.

H. Oracleserver VI.HARDWAREAUSWAHL UND EMPFEHLUNGEN

Hardwaretyp Verwendetes Bauteil A. Oracleserver CPU AMD Athlon 64X2 4600 1) CPU: Beim Betrieb des Oracleservers treten im RAM 4GB DDR2 Wesentlichen zwei Prozesse mit hoher CPU-Last zu Tage. Festplatte 250GB Netzwerk Broadcom NetExtreme 1Gbit Dies ist einerseits die Oracle-DB, diese ist jedoch auf einen Realtec Semiconductor RTL8111 einzelnen CPU-Kern beschrankt.¨ Des weiteren sind Zugriffe Table VI auf das iSCSI-Target bisweilen sehr rechenintensiv. Da diese HARDWARE ORACLESERVER beiden Komponenten beim Einsatz der Datenbank zumeist zusammen auftreten, ist die Auststattung der Server mit einem hochgetakteten Dualcoreprozessor zu empfehlen. Der Da Oracle die kostenlose Version ihrer Datenbank Einsatz von Quad- oder Hexacoreprozessoren bietet hierbei lediglich in 32-Bit-Versionen zur Verfugung¨ stellt, wurde keine Geschwindigkeitsvorteile.

94 2) RAM: Auch hier geben die Beschrankungen¨ der Ora- 2) HDD: Die Festplatte des iSCSI-Targets tragt¨ im cle 10g Express eine maximal sinnvolle Große¨ vor. Durch Betrieb die Hauptlast des Systems. Da aufgrund der den erzwungenen Einsatz eines 32 Bit Betriebssystems ist Beschrankungen¨ von Oracle XE auf eine Datenbankgroße¨ der Einsatz von mehr als 3,2GB RAM nicht moglich,¨ zudem von 4GB die Große¨ der Platte kaum noch Relevanz hat, ist Oracle XE 10g auf eine maximale Nutzung von 1GB kann hier unbesorgt zu Platten gegriffen werden, welche Arbeitsspeicher beschrankt.¨ Zusammen mit Reserven fur¨ eine kleinere Kapazitat¨ haben. Das so eingesparte Budget Betriebssystem und iSCSI sind hier 2GB als eine sinnvolle sollte hierbei dazu Verwendung finden, Platten mit einer Große¨ zu betrachten. moglichst¨ geringen Zugriffszeit zu erstehen. Dies findet 3) HDD: Die Festplatte der beiden Oracle-Server bein- sich insbesondere in den ”Server”-Versionen der Plattenher- haltet lediglich die zum Start des Betriebssystems notwendi- stellern. Diesen sind zumeist auch von Hersteller fur¨ 24/7- gen Komponenten, die Oracle-Installation selbst befindet Betrieb freigegeben und mit entsprechenden Garantieleistun- sich – abgesehen von einigen hostspezifischen Konfigu- gen versehen. Um die Zuverlassigkeit¨ des iSCSI-Targets und rationsdateien – auf dem iSCSI-Device. Die Große¨ und damit des gesamten Systems zu verbessern bietet sich der Geschwindigkeit der Festplatte des Hostsystems ist daher Einbau einer zweiten Festplatte in RAID-1 Konfiguration von untergeordneter Bedeutung und kann daher rein nach an. Dieses kann hinreichend effizient in Software gebildet fiskalischen Gesichtspunkten erfolgen. werden, wodurch der Kauf teurer Zusatzcontroller entfallt.¨ 4) Betriebssystem: Die Auswahl des Betriebssystems 3) Netzwerk: Auch hier ist die Anbindung per Gigabit- ist durch die verfugbaren¨ Installationspakete fur¨ Oracle- Ethernet Mindestvoraussetzung, es gilt hierbei das unter XE eingeschrankt.¨ Hier kommen nur 32-Bit-Linux- Abschnitt VI-A5 bereits erlauterte.¨ Distributionen in Frage, welche die Installation von rpm oder deb Pakete erlauben. Dies sind insbesondere Fedora, C. Datensicherung RedHat, Debian und Ubuntu. So verfugbar¨ sollte auf eine Auch die beste Hochverfugbarkeitsl¨ osung¨ kann eine Server-Distribution zuruckgegriffen¨ werden, da diese schon regelmaßige¨ Datensicherung nicht ersetzen. Auch RAID- ”out of the box” Fernwartungsmechanismen enthalten und Systeme dienen lediglich der erhohten¨ Verfugbarkeit¨ des auf CPU-intensive grafische Oberflachen¨ verzichten. Systems, und nicht der Datensicherung fur¨ lange Zeitraume.¨ 5) Netzwerk: Wie unter IV-B2 belegt, sind 1GB/s aktuell Sie schutzen¨ ebenso wenig vor Vandalismus, Bedienerfehler als ausreichend anzusehen. oder einem großeren¨ Vorfall wie einem Brand des Rechen- Kommen Steckkarten zum Einsatz, so ist nach zentrums. Moglichkeit¨ darauf zu achten dies mittels des PCIe Daher ist eine regelmaßige¨ Datensicherung unabdingbar, oder PCI-X Busses anzubinden, da die Bandbreite des die dabei anfallenden Medien sollten hierbei auch raumlich¨ klassischen 32-Bit-PCI-Bus nicht in der Lage ist die getrennt aufbewahrt werden. gesamten Gigabitverkehr zu transportieren. Die limitierte Große¨ der Datenbank vereinfacht hier je- Karten mit einer TCP-Offload-Engine ubernehmen¨ große doch das erstellen von Backups ungemein. Aufgrund der Teile der TCP-Kommunikation und konnen¨ somit die CPU Beschrankung¨ auf eine Datenbankgroße¨ von 4GB und einem entlasten. Sollte die CPU jedoch ausreichend Dimensioniert maximalen Speicherverbrauch von 5,2GB im Dateisystem sein ist der Performancegewinn vernachlassigbar.¨ konnen¨ Backups auf verbreiteten und preisgunstigen¨ Medien wie Dual-Layer DVDs (Speicherkapazitat¨ 8,5GB), BluRay- B. iSCSI-Device Disks (25GB) oder mehreren externen Festplatten erstellt Hier ist es moglich¨ auf fertige NAS-Gerate¨ mit iSCSI- werden. Funktionalitat¨ zuruckzugreifen,¨ was die Administration des VII.FAZIT Gerates¨ deutlich vereinfacht. Eine Marktubersicht¨ sowie Tests der einzelnen Gerate¨ finden sich z.B. in den Mit der hier vorgestellten Losung¨ wurde gezeigt, Zeitschriften c’t [14] [15] sowie iX [16]. Soll aus diversen dass eine Oracle-Hochverfugbarkeitsl¨ osung¨ im Low-Cost- Grunden¨ dennoch ein herkommlicher¨ Server als iSCSI- Bereich moglich¨ ist. Bei sorgfaltiger¨ Auswahl der Kom- Target Verwendung finden, so ist auf die Auswahl einer ponenten ist eine Verfugbarkeit¨ von 99,99% ohne weitere geeigneten Hardwareplattform zu achten. Probleme realistisch, ein sicheres Erreichen der 99,999% 1) CPU: Bei der getesteten Konfiguration mit einem scheitert hier an der unbekannten Wiederherstellungszeit der Intel Celeron D mit einer Taktfrequenz von 3GHz konnten Datenbank. Durch den Ruckgriff¨ auf freie Softwarekompo- bei intensiven Schreib-/Lesezugriffen auf das iSCSI-Device nenten ist der vorgestellte Losungsansatz¨ schnell zu Im- CPU-Belastungen bis zu 70% beobachtet werden. Somit plementieren und auch in hohem Grade Zukunftssicher, kann diese Konfiguration als ein unteres Limit betrachtet da die notigen¨ Pakete wie iSCSI und Linux-HA ak- werden, da ansonsten die CPU zum Flaschenhals bei der tuell weiterentwickelt und den aktuellen Anforderungen Datenubertragung¨ per iSCSI wird. laufend angepasst werden. Bei Beachtung weniger Hinweise

95 ist die Installation des Systeme schnell und ohne weit- ere Komplikationen zu erledigen. Die in diesem Kontext vorgestellte Verwendung des Hearbeats bietet noch weitere Ausbaumoglichkeiten.¨ So ist beispielsweise eine Kombi- nation mit Notification Services denkbar. Auch eine Um- setzung mit anderen Datenbankmanagement System bietet weitere Optionen fur¨ zukunftige¨ Arbeiten.

REFERENCES [1] Held, Andrea, Oracle 10g Hochverfugbarkeit¨ , Addison- Wesley, 2004.

[2] Harvard research Group [HRG], http://www.hrgresearch.com/ha

[3] Contingency Planning Research, Cost of downtime Survey Results (2001) - www.contingencyplanningresearch.com/2001%20Survey.pdf

[4] http://www.oracle.com/technology/products/database/xe/index.html

[5] http://www.oracle.com/pls/xe102/homepage

[6] http://www.coker.com.au/bonnie++/

[7] Boi Feddern Platten-Karussell – Hybrid-Festplatten, Notebook-Platten bis 1 TByte und schnelle Laufwerke fur¨ Desktop-PCs und Server c’t Magazin fur¨ Computertechnik 15/2010 , p. 140-144, heise-Verlag, Hannover 2010

[8] http://nagios.org

[9] David C. Plummer Request For Comments: 826 An Ethernet Address Resolution Protocol http://www.ietf.org/rfc/rfc826.txt

[10] Smoot Carl-Mitchell,John S. Quarterman Request For Com- ments: 1027 Using ARP to Implement Transparent Subnet Gateways http://www.ietf.org/rfc/rfc1027.txt

[11] http://www.linux-ha.org/doc/index.html

[12] http://www.heise.de/ct/hotline/ATX-PCs-von-aussen- einschalten-303966.html

[13] http://parashell.sourceforge.net/

[14] Boi Feddern Schnelles NAS – Gigabit-NAS-Gehause¨ mit Pineview-Atom D510 c’t Magazin fur¨ Computertechnik 3/2010, p. 63, heise-Verlag, Hannover 2010

[15] Boi Feddern Zwischen den Welten – Schnelle Gigabit-NAS fur¨ zu Hause und das Buro¨ c’t Magazin fur¨ Computertechnik 5/2010, p. 110-115 heise-Verlag, Hannover 2010

[16] Michael Riepe Fastalleskonner¨ – NAS-Server-Barebones von Promise, QNAP, Synology und Thecus iX Magazin 7/2010, p. 86-73, heise-Verlag, Hannover 2010

96 Benchmarking Hadoop Map/Reduce & HBase

Andreas Kremser Alexander Held Advanced Computer Science Hochschule Furtwangen 78120 Furtwangen [email protected] [email protected]

Abstract Einsatz kommt. Ein im großen Maßstab [Yahoo2008], [Dean2010] eingesetzter Cluster-Computing Ansatz, In dieser Arbeit wird in die Konzepte von Hadoop Map/Reduce, verursachte reges Aufsehen einerseits Map/Reduce, Hadoop Distributed File System durch das Brechen mehrerer Sortier-Bench- (HDFS) und HBase eingeführt. Es wird erläutert, mark-Rekorde in den Jahren 2008 und 2009 weshalb ein Vergleich zwischen, auf Map/Reduce [Nyberg2010], andererseits durch die, in den Jahren basierenden Datenbanken, wie HBase und 2008 bis 2010, aufgekommene Kontroverse um den relationalen Datenbanken zweckmäßiger ist, als ein Vergleich zwischen Map/Reduce und Datenbanken direkter Vergleich von Datenbanken mit Map/Reduce. [DeWitt2008a], [DeWitt2008b], [Chu-Carrol2008] Da die Performance von Softwarekomponenten [Pavlo2009], [Stonebraker2010], [Dean2010]. erheblich von ihrer Konfiguration abhängen kann, In dieser Arbeit wird in die Technologien Hadoop muss diese, für die bei einem Vergleich herangezogen Map/Reduce, HBase und HDFS eingeführt. Hierbei Technologien, im gleichen Maße optimiert werden. werden grundlegende Designentscheidungen und Hierzu wird ein Ansatz vorgeschlagen, mit dem sich Einsatzgebiete erläutert. Diese Arbeit leistet vor allem optimierte Konfigurationen für Softwarekomponenten zwei Beiträge: automatisch ermitteln lassen. Es wird erläutert, weshalb ein direkter Vergleich zwischen Hadoop Map/Reduce und Datenbanken 1. Einleitung unangemessen ist. Als wesentliche Erkenntnis stellt sich hierbei heraus, dass bei bisher veröffentlichten Die Menge vorhandener Daten, deren Verarbeitung Benchmarks [Pavlo2009], [Stonebraker2010] trotz wertvolle Informationen zutage bringen könnte, schlechterer Performance keine grundlegenden Nach- nimmt mit rasanter Geschwindigkeit zu. Beispiels- teile von Map/Reduce gegenüber Datenbanken fest- weise verarbeitet Google täglich rund 20 Petabyte an gestellt werden können. Dies liegt darin begründet, Daten [Dean2008]. Um den Umgang mit solchen dass zahlreiche, der in Datenbanken bereits ent- Datenmengen zu bewerkstelligen, reicht ein einzelner haltenen Optimierungen, die zu einem Performance- Rechner mit Standardhardware nicht aus. Als Alter- vorteil führen, auch für Map/Reduce basierende nativen sind einerseits Spezialhardware mit Hunderten Lösungen implementiert werden können. Zweck- Prozessoren und Tausenden Festplatten denkbar, oder mäßiger wäre demnach ein Vergleich zwischen einer die Verwirklichung als verteiltes System. Da zu Map/Reduce basierenden – und einer relationalen erwarten ist, dass Datenbestände und Rechen- Datenbank, da in diesen vergleichbare Optimierungen anforderungen auch weiterhin zunehmen, ist die bereits zum Einsatz kommen. Skalierung durch zusätzliche Standardrechner Da das Ergebnis eines Benchmarks erheblich von kosteneffizienter, als die Aufrüstung eines Super- der verwendeten Konfiguration abhängen kann, wird computers. Durch die mittlerweile recht hohe Ver- eine Methode zur automatischen Ermittlung breitung von Cloud-Computing lassen sich zudem die geeigneter Konfigurationen beschrieben, mithilfe Fixkosten dadurch senken, dass Rechner nur bei derer die Performance von Software optimiert werden Bedarf gemietet werden. Um ein verteiltes System zu kann. Als Proof of Concept werden die unter HBase, realisieren, gibt es wiederum, abhängig vom zu mit verschiedenen Konfigurationen, erreichbaren lösenden Problem, eine Reihe von praxiserprobten Laufzeiten verglichen. Berücksichtigt werden hierbei Möglichkeiten. die in der Literatur vorgeschlagenen Konfigurationen So etwa das Cluster-Computing, welches vor allem [Pavlo2009], [Anty2009], [Lea2009], [Cloudera2009] bei der Bearbeitung datenintensiver Probleme zum

97 und eine durch, dass vorgestellte Verfahren optimierte Alternative hierzu ist Hive, welche eine an SQL Konfiguration. angelehnte Abfragesprache bereitstellt. Abfragen in Der Aufbau dieser Arbeit gliedert sich wie folgt: In Pig oder Hive werden von einer Laufzeitumgebung in Kapitel zwei wird in die Technologien Hadoop Map/Reduce-Jobs übersetzt. Map/Reduce und HDFS eingeführt und auf • HBase kontroverse Vergleiche zwischen Map/Reduce und HBase ist eine verteilte, spaltenorientierte (engl. Datenbanken eingegangen. Diese Diskussion dient als column-oriented) Datenbank. Diese setzt auf HDFS Entscheidungsgrundlage für die anschließend vor- auf und kann von Map/Reduce-Jobs genutzt werden. gestellte, auf Map/Reduce basierende Datenbank • ZooKeeper HBase. Anschließend werden in Kapitel drei Bei ZooKeeper handelt es sich um einen verteilten, Standardverfahren zur Bestimmung und Optimierung hochverfügbaren Koordinationsdienst, der von Funktionen auf die Konfiguration von HBase Funktionalität zum Auffinden und Sperren von ver- Installationen angewandt, um eine Grundlage für teilten Ressourcen bereitstellt. Benchmarks gegen Datenbanken zu schaffen. Abschließend wird in Kapitel vier diese Arbeit Im Rahmen dieser Ausarbeitung sind vor allem zusammengefasst und ein Ausblick auf noch offene Hadoop Map/Reduce, HDFS und HBase von Punkte gegeben. besonderer Bedeutung und werden im Folgenden näher betrachtet. 2. Apache Hadoop 2.1 Map/Reduce Hadoop ist ein Überbegriff für eine Menge von Open Source Projekten, die in den Bereich verteilter Viele Programme, die auf großen Datenmengen Systeme fallen. Diese befinden sich unter dem Dach arbeiten, sind vom Prinzip her relativ simpel. Hierzu der Apache Software Foundation. Das wohl zählt beispielsweise das Abzählen, wie oft eine URL bekannteste Teilprojekt hiervon ist Hadoop aufgerufen wurde oder das Durchsuchen von Web- Map/Reduce mit dem verteilten Dateisystem HDFS. Dokumenten. Da jedoch die Eingabedaten sehr groß Zahlreiche Hadoop Teilprojekte basieren auf, in sind, müssen Berechnungen häufig auf eine große Arbeiten von Google vorgestellten Konzepten, siehe Anzahl von Rechnern verteilt werden, um die Tabelle 1. Verarbeitung in einem vertretbaren Zeitraum durchführen zu können. Hierbei fallen Aufgaben, wie Parallelisierung, Loadbalancing, Verteilung von Daten Tabelle 1: Gegenüberstellung von Google- und Hadoop und Fehlerbehandlung an, die vom Prinzip her Projekten einfache Programme wesentlich verkomplizieren. In Google Hadoop [Dean2004] wurde vorgeschlagen, diese immer wieder anfallenden Aufgaben in Map/Reduce auszulagern. MapReduce [Dean2004] Hadoop Map/Reduce Map/Reduce ist ein Framework und [Apache2007a] Programmiermodell, welches dem Zwecke dient, die GFS [Ghemawat2003] HDFS [Apache2007b] Verarbeitung großer Datenbestände, unter Nutzung Sawzall [Pike2005] Hive, Pig [Apache2008a] großer Cluster, zu vereinfachen. So verarbeitete [Apache2007c] Google beispielsweise im Januar 2008 täglich rund 20 Petabyte an Daten mit Hilfe von Map/Reduce-Jobs Bigtable [Chang2006] HBase [Apache2009] [Dean2008]. Chubby [Burrows2006] ZooKeeper [Apache2008b] Map/Reduce lehnt sich an die, aus funktionalen Programmiersprachen wie Lisp bekannten, • Hadoop Map/Reduce Funktionen map und reduce an. Bei Map/Reduce handelt es sich um ein Framework Map-Funktionen werden unabhängig voneinander zur verteilten Verarbeitung großer Datenmengen auf auf die Elemente einer Menge von Schlüssel/Wert- Clustern. Paaren angewandt. Hierbei können bei der Ver- • HDFS arbeitung eines Schlüssel/Wert-Paares jeweils 0-n HDFS ist ein fehlertolerantes und verteiltes Datei- Schlüssel/Wert Paare erzeugt werden. In vielen Fällen system, welches für die Nutzung unter Map/Reduce wird die Map-Funktion zum Aufbereiten der Daten ausgelegt ist. verwendet und liefert lediglich Zwischenergebnisse, • Pig und Hive die von Reduce-Funktionen weiterverarbeitet werden. Pig ist eine von YAHOO! entwickelte, Daten- Bei der Reduce-Funktion handelt es sich um eine fluss-orientierte Sprache, die in Map/Reduce Clustern Aggregation, in der die, während der Map Phase ent- zum Einsatz kommt. Eine von Facebook entwickelte standenen, Schlüssel/Wert-Paare zusammengefasst werden.

98 Der Grundgedanke hinter Map/Reduce ist es, Ein- Da die Aufteilung der Datei in Blöcke an gabedaten in Blöcke zu zerteilen, die auf einem ver- willkürlichen Stellen erfolgt (Standardeinstellung: teilten Dateisystem abgelegt werden. Diese Blöcke 64MB), muss der Mapper durch Angeben einer können durch, von Programmierern an das InputFormat Klasse dafür Sorge tragen, vollständige Framework übergebene, Map- und Reduce-Funktionen Schlüssel/Wert-Paare zu erzeugen. Beispielsweise auf einer Vielzahl von Rechnern unabhängig von- ignoriert die Klasse TextInputFormat die Einträge bis einander, also auch parallel, verarbeitet werden. Um zu einem neuen Zeilenanfang. Ist ein Zeilenende im dies zu gewährleisten, müssen jedoch die von Map- verarbeiteten Block nicht aufzufinden, liest es über die und Reduce- Funktionen erzeugten Nebenwirkungen Blockgröße hinaus Daten aus dem HDFS (engl. side effects) sowohl atomar als auch idempotent [Apache2010]. sein [Dean2004]. Dies ermöglicht zudem als Die im Map-Vorgang entstandenen Mechanismus zur Gewährleistung von Fehlertoleranz, Schlüssel/Wert-Paare werden anschließend im einfach die erneute Ausführung einzelner Tasks. Hauptspeicher gepuffert. Bei Volllaufen des Puffers und am Ende des Mapping Vorgangs werden diese auf • Funktionsweise von Map/Reduce eine lokale Festplatte geschrieben. Um diese Hadoop Map/Reduce setzt, wie in Abbildung 1 zu Zwischenergebnisse den Reducern zuzuordnen, wird sehen, die Verwendung eines Masters voraus. Dieser der Wertebereich der Schlüssel, durch eine vom wird im Falle von Hadoop als Jobtracker bezeichnet Nutzer angegebene Partitionierungs-Funktion in R und kommt innerhalb eines Clusters nur einmal zur (Anzahl Reducer) Dateien zerlegt. Jede hierbei Ausführung. Der Jobtracker nimmt Job-Aufträge an, anfallende Datei ordnet die in ihr enthaltenen bietet Funktionalität zum Steuern und Überwachen Schlüssel/Wert-Paare eindeutig einem Reducer zu. von Jobs und weist Workern auf verschiedenen Auf diese Weise wird jeweils der gleiche Schlüssel Knoten Aufgaben zu. Auf jedem Hadoop Knoten läuft immer derselben Reducer-Instanz zugeordnet. Der zudem mindestens ein Tasktracker, der die Aus- Pfad, unter dem die jeweilige Datei gespeichert ist, führung der jeweiligen Worker in Form von Map- und wird an den Master übertragen, der diese Information Reduce-Tasks auf einem Knoten steuert. an den entsprechenden Reduce-Worker übergibt. Erhält ein Reduce-Worker eine Benachrichtigung, dass neue Daten vorliegen, lädt dieser die Daten von Abbildung 1: Ablauf von Map/Reduce-Jobs den entsprechenden Map-Workern herunter. Da jeweils eine Vielzahl von Schlüsseln einem Reducer zugeordnet werden kann, werden die eintreffenden Schlüssel/Wert-Paare vor der Verarbeitung ihrem Schlüssel nach sortiert, sodass alle Vorkommen des gleichen Schlüssels gruppiert sind. Anschließend wird die Reduce-Funktion für jeden Schlüssel jeweils nur einmal ausgeführt. Hierbei erhält die Reduce-Funktion einen Iterator auf die Menge der Werte, die den gleichen Schlüssel besitzen. Die Nutzung eines Iterators ermöglicht insbesondere auch die Verarbeitung von Datenmengen, die zu groß sind, um in den Hauptspeicher zu passen. Das Ergebnis der anschließend durchgeführten Verarbeitung wird an die endgültige Ausgabedatei angehängt. Quelle: Angelehnt an [Dean2004] Wird von einem Job keine Reduce-Funktionalität benötigt, so führt das Fehlen der Angabe eines Reducers dazu, dass die Ergebnisse der Mapping- Im ersten Schritt werden die Eingabedaten in Phase direkt in das verteilte Dateisystem geschrieben Blöcke zerlegt und diese auf Rechnern verteilt. Dies werden. erfolgt mithilfe eines verteilten Dateisystems, wie Nach erfolgreichem Abschluss eines Map/Reduce- beispielsweise HDFS, siehe Abschnitt 2.2. Jobs liegen R Ausgabedateien (eine Datei je Reduce- Die einzelnen Blöcke können anschließend in der Task) auf einem verteilten Dateisystem vor. Laut Map-Phase von mehreren Instanzen desselben Map- [Dean2010] müssen diese Ausgabedateien für eine Tasks auf verschiedenen Rechnern parallel verarbeitet weitere Verarbeitung in der Regel nicht zu einer Datei werden. Hierbei werden die Eingabedaten in zusammengeführt werden, da Map/Reduce-Jobs Schlüssel/Wert-Paare geparst und zu neuen imstande sind Eingabedaten zu verarbeiten, die auf Schlüssel/Wert-Paaren verarbeitet. mehrere Dateien verteilt sind.

99 Da die Performance eines verteilten Systems stark übernommen. Dies geschieht auch, wenn ein Map- von der für die Kommunikation verfügbaren Task erfolgreich abgeschlossen ist, jedoch noch nicht Bandbreite abhängen kann, ist es häufig sinnvoll die alle Reducer die Daten vollständig erhalten haben, da Netzlast auf Kosten zusätzlicher Verarbeitungsschritte diese Daten nur lokal abgelegt werden. Reducer, zu senken. Beispielsweise wurden in [Dean2004] welche bereits die Daten eines fehlgeschlagenen Map- Combiner vorgeschlagen, welche die zu übertragenden Workers erhalten haben, lesen die Informationen nicht Datenmengen zwischen Mappern und Reducern erneut ein. Dies verringert zwar die Netzlast, erfordert reduzieren, und hierdurch neben dem Netzwerk auch jedoch, dass die Ergebnisse eines Map-Tasks die Reducer entlasten sollen. Wird ein Combiner deterministisch sind. Würden beispielsweise bei einer verwendet, so werden die Schlüssel/Wert-Paare eines Addition die Schlüssel zufällig bestimmt, so würden Mappers nicht direkt auf eine Festplatte geschrieben, bei Fehlschlag eines Map-Workers, Reducer Daten sondern vorher, bei Bedarf, von dem angegebenen erhalten, die bei der ersten Ausführung für andere Combiner auf dem gleichen Rechner verarbeitet. Die bestimmt waren und so das Ergebnis verfälschen. Combiner-Funktion reduziert die Datenmenge, muss Da Ergebnisse von Reduce-Tasks repliziert auf jedoch für den endgültigen Reducer zu dem Output einem verteilten Dateisystem vorliegen, ist eine des Map-Tasks gleichwertige Informationen liefern. erneute Ausführung eines Reducers nur notwendig, Hierzu muss eine Combiner-Funktion laut [Dean2004] wenn die von ihm durchgeführte Verarbeitung noch sowohl kommutativ als auch assoziativ sein. nicht abgeschlossen wurde. Insbesondere ist dies von Bedeutung, da unter Hadoop Darüber hinaus können, wenn einzelne Tasks zu keine Garantie dafür besteht, wie oft und ob viel Zeit bei ihrer Ausführung beanspruchen oder überhaupt, ein Combiner zur Ausführung kommt einen vergleichsweise langsamen Fortschritt [White2009]. In vielen Fällen, etwa der Addition und aufweisen, im Rahmen der „Speculative Execution“ Multiplikation von Zahlen oder bei der Erstellung von parallel weitere Instanzen des gleichen Map-Tasks Worthistogrammen, kann die gleiche Funktion sowohl gestartet werden. Ziel der spekulativen Ausführung ist für Combiner als auch Reducer verwendet werden. In es Tasks, die aus Gründen, wie beispielsweise der diesen Fällen ist der Unterschied zwischen Combiner Überlastung eines einzelnen Rechners, übermäßig und Reducer, dass das Ergebnis eines Combiners langsam ablaufen, zusätzlich auf anderen Rechnern temporär lokal abgelegt wird, während das Ergebnis auszuführen, damit das System von diesen nicht von Reducern im verteilten Dateisystem gespeichert ausgebremst wird. wird. Neben dem Ausfall von Mappern und Reducern gibt es noch eine weitere Fehlerart, der Ausfall des • Fehlertoleranz Masters. In einem verteilten System mit einer großen Anzahl Gegenüber Mapper und Reducer handelt es sich bei von Komponenten ist das Auftreten von Fehlern keine dem Master um einen Single Point of Failure. Bricht Seltenheit. So wird in [Czajkowski2008] berichtet, also der Jobtracker seine Ausführung ab, beendet dies dass bei einem Sortierlauf von einem Petabyte alle im System ausgeführten Aktivitäten. Laut mindestens eine Festplatte versagte. Hierbei ver- [Dean2004] und [White2009] ist dies jedoch kein arbeitete ein Map/Reduce-Job die Daten innerhalb von wesentliches Problem, da der Ausfall eines sechs Stunden und zwei Minuten unter Nutzung von bestimmten Knotens relativ unwahrscheinlich ist. 4000 Rechnern und 48000 Festplatten. Hervorgehoben Dieses Problem könnte laut [Dean2004] durch wird in [Czaikowski2008], dass es keineswegs Anweisen des Masters, in bestimmten Intervallen ungewöhnlich sei, dass in Anbetracht der großen Checkpoints in ein verteiltes Dateisystem zu Anzahl eingesetzter Festplatten, der Ausfall einer schreiben, behoben werden. So könnte bei einem Festplatte in einer so kurzen Zeitspanne auftritt. Dies Fehler des Masters das System von diesem Punkt verdeutlicht, dass die Lösung bestimmter Aufgaben ab fortgesetzt werden. Jedoch wird dies weder von der in einem gewissen Maßstab nur dann möglich ist, wenn [Dean2004] beschriebenen Lösung, noch im Hadoop das System hinreichend fehlertolerant ist. So bietet Map/Reduce-Framework [White2009] realisiert. auch das Map/Reduce-Framework verschiedene Mechanismen, um eine fehlertolerante Ausführung zu 2.2 HDFS gewährleisten. Tasktracker senden dem Master in regelmäßigen Das Hadoop Distributed File System (HDFS) ist an Abständen einen Heartbeat, um diesem Auskunft über das, von Google in [Ghemawat2003] beschriebene, ihre Verfügbarkeit zu geben. Erhält der Master Google File System angelehnt. HDFS wurde für innerhalb einer gewissen Zeitspanne keine Map/Reduce-Jobs entwickelt, die Daten in Rückmeldung, so wird der Worker als fehlgeschlagen Größenordnungen von mehreren Gigabyte bis Petabyte markiert. Schlägt ein Map-Task fehl, so wird seine nach dem „Streaming Data Access“ Zugriffsmuster erneute Bearbeitung von einem anderen Worker [White2009] verarbeiten. Hierbei werden Daten

100 einmal geschrieben und ein oder mehrmals wieder Verzögerung durch Festplattenzugriffe von geringerer sequentiell gelesen. Zudem wird angenommen, dass Bedeutung. ein Map/Reduce-Job in der Regel entweder die Die Zerteilung einer Datei in Blöcke erleichtert kompletten Daten verarbeitet oder einen Großteil darüber hinaus die Sicherstellung von davon. Folglich wurde der Latenz beim wahlfreien Ausfallsicherheit. Hierzu werden vom HDFS zu jedem Zugriff auf eine Datei wenig Beachtung geschenkt, wo Block Replikate auf zufällig gewählten Rechnern hingegen an den Gesamtdurchsatz bei sequentiellem angelegt. Die Anzahl der je Block zu erzeugenden Zugriff hohe Anforderungen gestellt werden. Replikate, auch Replikationsfaktor genannt, ist in der Standardeinstellung auf drei festgelegt. Unterschreitet • Funktionsweise von HDFS die Anzahl der verfügbaren Replikate eines Blocks Der Grundgedanke hinter HDFS ist es, Dateien in diesen Faktor, beispielsweise durch den Ausfall eines Blöcke von einstellbarer Größe zu unterteilen und Rechners, so wird der Block erneut repliziert. Die diese zufällig auf einer großen Anzahl von Rechnern Replikation von Blöcken erfolgt, um die Netzlast der zu verstreuen. Hierdurch können die Blöcke einer einzelnen Knoten zu senken, durch „Replication Datei auf vielen Rechnern gleichzeitig durch Pipelining“ [Apache2010b]. Hierbei werden die zu Map/Reduce-Jobs verarbeitet werden. Darüber hinaus replizierenden Daten in vier Kilobyte großen Blöcken ermöglicht dies die Verwendung von Dateien, die versandt, bei Empfang gespeichert und an den größer sind als jede verwendete Festplatte des nächsten Rechner in der Liste künftiger Replikathalter Clusters. weitergeleitet. Zudem bietet HDFS die Möglichkeit, die Position Neben der Replikation wird, um die Integrität der der einzelnen Datenblöcke ausfindig zu machen, einzelnen Blöcke sicherzustellen, zu jedem Block eine damit der Jobtracker diese bei der Zuteilung der Prüfsumme berechnet. Bei Erhalt von Daten wird Map/Reduce-Tasks nutzen kann. So wird versucht, diese mit jener verglichen, die bei der Erstellung des auftretende Zugriffszeiten und Netzlast, dadurch zu Blocks erzeugt wurde. Unterscheiden sich diese, so senken, dass Map-Tasks auf dem Rechner gestartet wird der Block von einem anderen Rechner werden, auf dem der zu verarbeitende Datenblock angefordert. bereits vorliegt (engl. data-local). Schlägt dies fehl, so wird ein Rechner gewählt, der in der • HDFS Architektur Netzwerktopologie am nächsten ist, beispielsweise am Wie aus Abbildung 2 deutlich wird, arbeitet wie gleichen Switch, und so schneller auf die Daten Hadoop Map/Reduce auch, HDFS nach dem Master- zugreifen kann. Im Hadoop Kontext wird dies auch Worker Prinzip. mit “Rack Awareness” bezeichnet [Apache2010b]. Abbildung 2: HDFS-Architektur Durch die Zerteilung der Daten in Blöcke wird, abhängig von der Blockgröße, ein Kompromiss zwischen dem Grad erreichbarer Parallelisierbarkeit und dem, durch Festplattenzugriffszeiten auftretenden, Effektivitätsverlust eingegangen. Wird eine Datei in viele kleine Blöcke zerteilt, so ist es möglich, viele Map-Tasks parallel auf diesen Blöcken arbeiten zu lassen. Jedoch muss beim initialen Zugriff auf einen Datenblock jedes Mal ein Seek-Vorgang erfolgen. Bei gängigen Festplatten kann man derzeit von durchschnittlichen Zugriffszeiten im Bereich von 10ms ausgehen. Wird beispielsweise eine ein Terabyte große Datei in jeweils ein Megabyte große Blöcke unterteilt, so würde die Summe der einzelnen Zugriffszeiten rund drei Stunden betragen. Bei einer Quelle: Angelehnt an [Apache2010b] Unterteilung in 64 Megabyte Blöcke, der Default- Einstellung von HDFS Installationen, nur rund drei Der Namenode übernimmt hierbei die Rolle des Minuten, jedoch könnten in diesem Fall 64-mal Masters und existiert einmal je Cluster. Dieser ist weniger Map-Tasks die Daten parallel verarbeiten. zuständig für Operationen im Namensraum des Hierbei handelt es sich nicht um eine tatsächlich Dateisystems (Metadata ops, vgl. Abbildung 2), wie anfallende Wartezeit, da sich diese, auf die Anzahl dem Öffnen, Schließen und Umbenennen von Dateien vorhandener Rechner und ausgeführter Mapper oder Verzeichnissen. Zudem ermittelt er die verteilt. Erfolgt die Verarbeitung durch Mapper Zuordnung von Datenblöcken zu den jeweiligen zudem langsamer, als Daten vom HDFS gelesen Datanodes, auf denen diese sich befinden. Wird der werden können, so sind die Auswirkungen der Replikationsfaktor für einen Block unterschritten, so

101 ordnet der Master weiteres Replizieren dieses Jedoch wird in [Dean2010] darauf hingewiesen, Datenblockes an. Der Ausfall des Namenodes hat die dass UDFs derzeit von vielen verteilten Datenbanken, Deaktivierung des Dateisystems zur Folge, da dieser unter anderem auch von den in [Pavlo2009] zum für die Zuordnung der im HDFS vorliegenden Blöcke Benchmark herangezogenen, entweder nicht zu den jeweiligen Dateien verantwortlich ist. Somit unterstützt werden (Vertica) oder fehlerhaft umgesetzt handelt es sich beim HDFS-Master um einen Single wurden (DBMS-X). Zudem werden Beispiele Point of Failure. Damit diese Informationen nicht aufgeführt, die sich für eine Beschreibung durch SQL verloren gehen, werden die Metadaten des als ungeeignet erweisen, und sich folglich durch Dateisystems vom Namenode in Dateien auf einem Datenbanken ohne UDF Unterstützung schlecht oder oder mehreren Dateisystemen gespeichert. Diese nicht realisieren lassen. Hierzu werden unter anderem Speichervorgänge sind synchron und atomar. Laut das Zusammensetzen von Satellitenbildern und das [Venner2009] wird häufig neben lokalen Erstellen komprimierter invertierter Indizes genannt. Dateisystemen auch auf entfernten Dateisystemen, Allerdings wird in [Dewitt2008b] und [Pavlo2009] beispielsweise NFS, ein Replikat dieser Metadaten darauf hingewiesen, dass Map/Reduce-Programme in angelegt. Wird ein Namenode gestartet, so entnimmt vielen Fällen aufwendiger zu implementieren seien als er die Dateisystem-Metadaten aus den gespeicherten vergleichbare SQL-Ausdrücke. Demnach sind Dateien und ermöglicht eine weitere Nutzung des deklarative SQL-Ausdrücke leichter zu modifizieren HDFS. Da jedoch die Metadaten nicht bei jeder und zu verstehen, als imperative Algorithmen, die im Änderung sofort auf Dateisystemen gespeichert Falle von Map/Reduce-Tasks angegeben werden werden, kommt es laut [White2009] bei Ausfällen des müssen. Jedoch wird in diesem Zusammenhang auf Masters in der Regel dennoch zu die Zusatztechnologien Pig, Hive und Sawzall Informationsverlusten. verwiesen, welche die genannten Kritikpunkte Datanodes übernehmen die Rolle des Workers und beheben können. werden auf jedem Knoten des Clusters ausgeführt. In [Pavlo2009] und [Stonebraker2010] wurden Datanodes sind verantwortlich für Operationen auf Benchmarks beschrieben, welche die Performance der den einzelnen Datenblöcken (Block ops, vgl. Map/Reduce-Implementation von Apache Hadoop, mit Abbildung 2), wie beispielsweise dem Erzeugen, zwei verteilten Datenbanken DBMS-X, einer Löschen, Lesen und Schreiben. Diese Operationen anonymisierten relationalen Datenbank und Vertica, werden, um den Master zu entlasten, auf direktem einer spaltenorientierten Datenbank, verglichen. Wege von Clients aufgerufen. Zudem teilt jeder Das initiale Laden der Daten erfolgte in den in Datanode dem Namenode mit, welche Datenblöcke [Pavlo2009] durchgeführten Benchmarks, rund fünf sich bei ihm befinden. bis 50 Mal schneller als mit den verglichenen Datenbanken, wodurch Map/Reduce für Daten, welche 2.3 Kontroverser Vergleich mit Datenbanken nur wenige Male verarbeitet werden, in diesem Punkt überlegen ist. Dies liegt an der, von Datenbanken In [DeWitt2008a], [Dewitt2008b], [Pavlo2009] und automatisch durchgeführten Vorverarbeitung, wie [Stonebraker2010] wurde Map/Reduce mit verteilten Indexierung und die Reorganisation in Spalten. Datenbanken verglichen. Hierbei vertraten die Hierdurch können Datenbanken bei häufigen Autoren die Ansicht, dass Map/Reduce verteilten Lesezugriffen auf Teilmengen der Daten, die für die Datenbanken in vielen praktischen Anwendungsfällen Vorverarbeitung notwendige Rechenzeit mehr als unterlegen sei: “As a data processing paradigm, ausgleichen. So wiesen Datenbanken für einen „Join MapReduce represents a giant step backwards” Task" eine um einen Faktor von 21 bis 36 kürzere [DeWitt2008a]. Laufzeit gegenüber Hadoop Map/Reduce auf. Selbst Demnach eignen sich sowohl verteilte bei Aufgaben, die einen sequentiellen Durchlauf Datenbanken als auch Map/Reduce dazu, große erforderten und die Nutzung von Indizes nicht Datenmengen zu verarbeiten, wobei Datenbanken in möglich oder nicht gewinnbringend war, waren einigen veröffentlichten Benchmarks eine bessere Datenbanken Hadoop um einen Faktor von 1.5 bis 4.3 Performance aufweisen [Pavlo2009] überlegen. [Stonebraker2010]. Zudem können Datenbanken nach Nach [Stonebraker2010] und [Dean2010] ergeben [Pavlo2009] nahezu und [Stonebraker2010] sich diese Ergebnisse nicht etwa durch fundamentale vollständig die Funktionsweise von Map/Reduce- Unterschiede zwischen Datenbanken und Frameworks mit Hilfe von User Defined Functions Map/Reduce, sondern durch folgende (UDF), stored Procedures und User Defined Implementationsdetails: Aggregates imitieren, womit sich auch Aufgaben bearbeiten lassen, für deren Beschreibung SQL wenig geeignet ist.

102 • Fehlen von Schemata werden. Vorgeschlagen wurde in [Goffinet2009] der In [DeWitt2008a] und [DeWitt2008b] wird die Einsatz der deutlich schnelleren „Parallel LZO Nutzung von Schemata als wesentlicher Vorteil von Compression“, die zudem gesplittet werden kann. In Datenbanken gegenüber Map/Reduce aufgeführt. So [Oskarsson2009] wurde durch den Einsatz von LZO vereinfachen Schemata den Austausch von Daten eine rund 30-prozentige Performancesteigerung zwischen Programmen. Datenbanken ermöglichen es gegenüber der Arbeit auf unkomprimierten Daten Daten automatisch auf Schema-Konformität zu erreicht. prüfen, und mit Hilfe von Constraints die Integrität Jedoch wurde in den von [Pavlo2009] und der Daten sicherzustellen. Zudem lässt sich mit Hilfe [Stonebraker2010] durchgeführten Benchmarks, von Views die logische Unabhängigkeit des Daten- aufgrund der schlechten Erfahrungen mit GZIP und formats vom Programm sichern, was vor allem BZIP, vollständig auf den Einsatz von Änderungen am verwendeten Datenformat erleichtert. Kompressionsalgorithmen unter Hadoop verzichtet. Neben dem einfacheren Umgang mit Datenformaten ermöglichen Schemata auch den • Zugriff auf Teilmengen von Daten effizienteren Zugriff auf die enthaltenen In [Pavlo2009] wird als Nachteil von Map/Reduce Informationen. So kann unter Nutzung von Schemata aufgeführt, dass es von sich aus keine Funktionalität der Parsingvorgang von Textdateien vermieden bereitstellt, die Menge der zu verarbeitenden Daten werden. Werden Daten zudem spaltenorientiert einzuschränken, weshalb jedes Mal sämtliche Ein- abgelegt, so kann auf einzelne Zellen zugegriffen gabedateien von einem Map/Reduce-Job verarbeitet werden, ohne eine komplette Zeile laden zu müssen. werden müssten. Aus diesem Grund seien Nach [Pavlo2009] muss das Parsen der Operationen, die nur auf Teilmengen der vorhandenen Eingabedaten in Map/Reduce-Jobs bei jedem Daten arbeiten unnötig ineffizient. Durchlauf erfolgen, was eine zusätzliche Nach [Dean2010] ist dies eine falsche Annahme, Beanspruchung der CPU zur Folge hat. da die Datenquelle eines Map/Reduce-Jobs dafür Im Gegensatz zu dem einfachen Textformat, verantwortlich ist, die zu verarbeitende Datenmenge welches in den in [Pavlo2009] beschriebenen einzuschränken. So könnten unter Nutzung effizienter Benchmarks verwendet wurde, könnte laut Filter oder Indizes die Laufzeiten deutlich verringert [Dean2010] Map/Reduce durchaus auch Daten werden. Nach [Dean2010] macht dies die vorverarbeitet in schematisierten Datenformaten, wie Schlussfolgerungen aus drei der fünf in [Pavlo2009] beispielsweise ProtocolBuffer ablegen, die erneutes beschriebenen Benchmarks ungültig. Parsen von Textfiles ersparen. So wurde in [Stonebraker2010] anstelle von HDFS In [Dean2010] weisen ProtocolBuffer einen rund als mögliche Datenquelle die Nutzung relationaler 80 fachen Geschwindigkeitsvorteil beim Einlesen von Datenbanken vorgeschlagen. Womit Map/Reduce-Jobs Records gegenüber dem, in [Pavlo2009] verwendeten auch für query–intensive Aufgaben sinnvoll genutzt Textformat auf. Mit Verweis auf diesen Punkt wird in werden könnten. Hierzu werden Datenbanken [Dean2010] die Gültigkeit der in [Pavlo2009] aufgeführt, die bereits über eine Map/Reduce- getroffenen Schlussfolgerungen angezweifelt, da das Anbindung verfügen, wie etwa HadoopDB, Hive, hierbei verwendete Textformat unnötig hohe Aster, Greenplum und Vertica. In [Dean2010] wird Laufzeiten zur Folge hatte. Bigtable als weiteres Beispiel für eine Datenbank, die als Datenquelle dienen kann, aufgeführt. Mit Hilfe • Verwendung von Kompressionsalgorithmen von Datenbanken nutzen Map/Reduce-Jobs implizit Bei den in [Pavlo2009] und [Stonebraker2010] die in den Datenbanken verwendeten Indizes. Somit durchgeführten Benchmarks wurde durch Einsatz von lässt sich in vielen Fällen ein sequentieller Scan über Kompressionsalgorithmen in Hadoop keine Per- die kompletten Eingabedaten vermeiden. Darüber formancesteigerung erreicht. Im Gegensatz hierzu hinaus liest Bigtable wie andere spaltenorientierten profitierten sowohl Vertica als auch DMBS-X durch Datenbanken auch, nur die bei einer Abfrage den Einsatz von Kompression. benötigten Spalten. So sei laut [Dean2010] der in In [Pavlo2009] wurde im Falle von Hadoop GZIP [Pavlo2009] durchgeführte Join-Benchmark, der Kompression für Datenblöcke und einzelne Records gewaltige Laufzeitunterschiede zwischen Map/Reduce angewandt, während über das bei Datenbanken und Datenbanken festgestellt hat, verfälscht, da in verwendete Kompressionsverfahren keine Angaben diesem, Datenbanken durch nutzen von Indizes nicht, gemacht wurden. In [White2009] und wie Hadoop 155 Millionen Einträge verarbeiten [Oskarsson2009] wurde jedoch angemerkt, dass GZIP müssten, sondern lediglich die benötigten 134 für Map/Reduce- Jobs wenig geeignet ist, da es sich Tausend Einträge. hierbei um ein von Hadoop nicht gesplittet verarbeitbares Format handelt und Daten weder besonders schnell komprimiert noch dekomprimiert

103 • Fehlertoleranz • Queries und Ausführungsreihenfolge Nach [Dean2010] und [Stonebraker2010] sind die Hadoop setzt auf zur Laufzeit ermittelte Schedules bei Fehlertoleranzmechanismen von Map/Reduce der Lastverteilung, gegenüber Datenbanken, die dies während der Ausführung von Jobs aufgrund von bereits bei der Query-Planung erledigen. feinerer Granularität, denen von Datenbanken über- In Datenbanken muss laut [Pavlo2009] aufgrund legen. Diesen Mechanismen wird insbesondere bei der des vorher errechneten Query-Plans kaum Verarbeitung großer Datenmengen auf einer Vielzahl Synchronisation und Kommunikation stattfinden. Dies von Komponenten eine hohe Bedeutung beigemessen. sei in Hadoop Map/Reduce nicht der Fall und die Die höhere Fehlertoleranz liegt unter anderem erforderliche Kommunikation und Synchronisation, darin begründet, dass Map/Reduce auf Pull setzt und würde zu Performance-Einbußen führen, kann jedoch sowohl Mapper als auch Reducer ihre Ergebnisse Daten- und Rechenungleichverteilung dynamisch zwischenspeichern. Fällt ein Reducer aus, so müssen ausgleichen. Mapper nicht erneut ausgeführt werden, da deren Darüber hinaus muss bei Map/Reduce-Jobs der Ergebnisse bereits lokal auf Festplatten hinterlegt Reihenfolge, in der Daten verarbeitet werden, sind. Datenbanken setzen hingegen auf Push und gesondert Beachtung geschenkt werden. So muss die übertragen errechnete Daten direkt an Konsumenten. Reihenfolge im Falle mehrerer Map/Reduce- So müssen Datenbanken bei Ausfall einer Durchläufe vom Programmierer sinnvoll bestimmt Komponente die durchgeführte Transaktion von werden. Als Beispiel wird in [DeWitt2008b] eine Neuem ausführen, während Map/Reduce-Jobs in der Berechnung von Statistiken auf Daten genannt, die ein Lage sind einzelne Mapper und Reducer neuzustarten. bestimmtes Kriterium erfüllen müssen. Ein Query- In [Stonebraker2010] wird jedoch ein Optimizer ist in der Lage den Filtervorgang vor der Datenbankmechanismus mit der Bezeichnung „restart Berechnung der Statistiken durchzuführen, und kann Operators“ aufgeführt, der es SQL Ausdrücken so automatisch eine nicht unerhebliche Anzahl von ermöglicht, wie Map-Tasks auch, Daten durchzuführenden Berechnungen, IO und zwischenzuspeichern und feingranular neu gestartet Networktraffic einsparen. zu werden. Der Query-Optimizer von Datenbanken ist darüber hinaus in der Lage Netzwerkübertragungen • Pull – oder Push basierende Kommunikation einzusparen, indem er automatisch In [Dean2010] wird angemerkt, dass die in Aggregatfunktionen den Knoten zuweist, auf denen [Pavlo2009] getroffene Feststellung korrekt ist, eine die Daten vorliegen, während dies für Map/Reduce- Pull basierende Kommunikation könnte in einfachen Jobs manuell durch die Entwicklung Implementierungen, bei Nutzung einer großen Anzahl anwendungsspezifischer Combiner bewerkstelligt von Reducern, zu vielen kleinen Dateien und zahl- werden muss. reichen Festplatten-Seeks führen. Durch das per Push erfolgende Verteilen der Daten weisen nach • Schlüsselverteilung [Pavlo2009] Datenbanken, aufgrund der seltener Dadurch, dass Daten mit dem gleichen Schlüssel erfolgenden Festplatten-Seeks, eine bessere Per- einem Reducer zugeordnet werden, kann es nach formance auf. [DeWitt2008a] zu einer ungleichmäßigen Lastver- In [Stonebraker2010] wird, um die Performance teilung kommen. Dies ist insbesondere dann der Fall, von Map/Reduce zu erhöhen, vorgeschlagen, Daten, wenn auftretende Schlüssel eine ungleichmäßige Ver- wie in Datenbanken auch, per Push von den Mappern teilung (engl. skew) aufweisen. So weisen beispiels- an die Reducer zu streamen um Overhead durch weise die Schlüssel der in [Pavlo2009] verwendeten Festplattenzugriffe wie Seeks zu vermeiden. Jedoch Daten eine Zipf-Verteilung auf. Dies hat zur Folge, wird angemerkt, dass Hadoop hierdurch keine höhere dass einige Reducer unverhältnismäßig viele Daten Fehlertoleranz gegenüber Datenbanken mehr verarbeiten und so einen Flaschenhals darstellen aufweisen würde. können, was sich auf die Gesamtlaufzeit negativ aus- Einen anderen Lösungsvorschlag bietet wirkt. [Dean2010]. So wird in Googles eigener Map/Reduce- Implementation aufgrund der hohen Fehlertoleranz • Startuptime weiterhin auf Pull gesetzt, jedoch werden Map/Reduce-Jobs in Hadoop benötigen zwischen 25 Festplattenzugriffe durch Scheduling von und 60 Sekunden, bevor diese mit voller Leistung Lesevorgängen, Batching, Sortieren und Gruppierung Daten verarbeiten [Pavlo2009]. Die Startuptime von Zwischenergebnissen verringert. erhöht sich zudem mit der Größe des Clusters. Hingegen fällt die Startuptime bei einer verteilten Datenbank sehr gering aus, da die Instanzen häufig bereits beim Start des Betriebssystems erzeugt werden [Pavlo2009].

104 Aufgrund der langen Startuptime ist die derzeitige lassen sich diese Kritikpunkte weitgehend beheben. Hadoop Implementation speziell für kleinere Daten- Aus diesem Grund wird im Folgenden näher auf mengen oder bei nicht hinreichend zeitaufwendigen HBase eingegangen. Aufgaben, verteilten Datenbanken unterlegen. Was sich auch in den „Grep-Task“- und „Selection-Task“- 2.4 HBase Benchmark aus [Pavlo2009] widerspiegelt. In Googles Map/Reduce-Implementation wurde die Startuptime HBase ist eine verteilte spaltenorientierte (engl. durch Bereithalten von Worker-Instanzen reduziert column-oriented) Datenbank, basierend auf dem von [Dean2010]. Google entwickelten und in [Chang2006] vorgestelltem Speichersystem Bigtable. Analog zu • Data Loading und Merging Bigtable setzt auch HBase auf einem verteilten In [Pavlo2009] wird gezeigt, dass die Zeit die beim Dateisystem, HDFS, auf und bietet eine Schnittstelle Laden der Daten in eine Datenbank aufgewendet für Map/Reduce-Jobs, denen sie als Quelle und Senke werden muss, nicht unerheblich ist. So wird in dienen kann. [Dean2010] angemerkt, dass in einigen der in HBase wurde mit dem Ziel entwickelt, automatisch [Pavlo2009] veröffentlichten Benchmarks, alleine die mit der Anzahl verfügbarer Rechner zu skalieren und Zeit die Daten in die Datenbank zu laden, die für eine den parallelen Zugriff auf große Tabellen mit dünn vollständige Verarbeitung der Daten mittels Hadoop besetzten Spalten (engl. sparse tables) innerhalb eines benötigte Zeit, um einen Faktor von fünf bis 50 über- Clusters effizient zu ermöglichen. steigt. So wird weiter ausgeführt, dass viele von Wie HDFS und Map/Reduce basiert HBase Map/Reduce-Tasks erzeugte Daten bei Google selten ebenfalls auf einem Master/Slave Prinzip. Hierbei mehr als ein – oder zweimal weiterverarbeitet werden, trägt der Master die Bezeichnung HBase-Master, womit sich in diesen Fällen keine Möglichkeit für eine während Slaves mit Regionserver bezeichnet werden. potenzielle Amortisierung mehr ergibt. Der HBase-Master erledigt eine Reihe Weiterhin wird in den von [Pavlo2009] administrativer Aufgaben. Er ist für die Initialisierung veröffentlichten Benchmark-Ergebnissen zu der reinen des Clusters zuständig und für das Überwachen der Verarbeitungszeit, zusätzlich die Zeit gezählt, die Regionserver. Er weist den Regionservern, unter benötigt wird, um die Ergebnisse wieder in eine anderem bei Ausfällen und zum Zwecke des einzelne Datei zu speichern, mit der Begründung die Loadbalancing, Teilbereiche von Tabellen, sogenannte Daten würden von nicht-Map/Reduce-Programmen Regions, zu. Zudem ist er für das Durchführen von weiterverarbeitet werden. Laut [Dean2010] handelt es Schemaänderungen an Tabellen zuständig. sich hierbei um eine ungerechtfertigte Annahme, da Regionserver verarbeiten Lese- und Schreib-Anfragen ein Großteil der Map/Reduce-Ergebnisse wieder von auf den, von ihnen bereitgestellten, Regions. Map/Reduce-Jobs verarbeitet würde. In HBase werden Daten in Tabellen, Ein weiterer Punkt, der gegen ein Merging der Spaltenfamilien (engl. column-families), Spalten und Ergebnisse spricht, ist, dass die Ergebnisse ohnehin Zeilen organisiert. Einzelne Elemente einer Tabelle auf einem verteilten Dateisystem, HDFS vorliegen. werden nach Änderungszeitpunkt versioniert. Der Dieses bietet eine Posix Schnittstelle und lässt sich mit Zugriff auf eine Zelle erfolgt über die Angabe der Hilfe von File System in User Space (FUSE-) Mounts, Tabelle, Spaltenfamile und Spalte, Zeile, sowie in eine lokale Verzeichnisstruktur einbinden. Dies optional der gewünschten Version, in der die jeweilige ermöglicht eine Nutzung der Daten von Programmen Zelle vorliegt. aus, die nicht auf das Map/Reduce-Framework Sowohl der Schlüssel als auch der Inhalt von aufsetzen. Zudem kann die Größe der Ergebnisse die Zellen wird in HBase als nicht interpretierte Folge von Speicherkapazität jeder verwendeten Festplatte Bytes abgelegt. Weshalb beliebige serialisierte überschreiten, womit ein Mergingvorgang in vielen Datenstrukturen auf gleiche Weise verwaltet werden Fällen ohnehin nicht möglich wäre. können. Um dennoch Optimierungen basierend auf Weiterhin wird in [Dean2010] angemerkt, das dem Inhalt zu ermöglichen, werden typischerweise selbst wenn der Konsument der erzeugten Daten kein Daten mit ähnlicher Größe, Inhalt und Map/Reduce-Job ist, Reducer dennoch beliebige Zugriffsmustern in Column-Families abgelegt. Datenhaltungsmechanismen zur Ausgabe heranziehen Verschiedene performancekritische Einstellungen wie und so die Ergebnisse direkt beim nächsten etwa der zu verwendende Kompressionsalgorithmus, Verbraucher, beispielsweise einer Datenbank, ablegen gelten auf Column-Family-Ebene und somit für alle könnten. darin enthaltenen Spalten [Chang2006]. Das Anlegen neuer Column-Family Einträge wird Durch den kombinierten Einsatz eines durch zeitaufwändige administrative Operationen auf Map/Reduce-Frameworks (Hadoop Map/Reduce) mit der Tabelle realisiert, und muss vor deren einer spaltenorientierten verteilten Datenbank (HBase) Verwendung erfolgen. Hingegen können, ähnlich

105 einer Hash-Map, neue Mitglieder einer Column- Da HDFS Dateien an festen Stellen trennt, ist es Family in jedem Schreibvorgang nach belieben sinnvoll die Größe einer Region auf die HDFS- verwendet werden. Blockgröße zu stellen. So kann ein Regionserver Da es sich bei HBase um eine spaltenorientierte Zeilen, unter Vermeidung von Netzwerkzugriffen, aus Datenbank handelt, werden für nicht besetzte Spalten lokal vorhandenen Daten laden. Operationen werden einer Zeile keine Informationen abgelegt, wodurch der grundsätzlich auf bereits angelegten Regions Umgang mit dünn besetzten Spalten effizient durchgeführt, was bedeutet, das die Möglichkeit gehandhabt werden kann. Dies wird dadurch parallel auf Tabellen zu arbeiten, stark von der Anzahl realisiert, dass jeweils zu einer Column-Family vorhandener Regions und somit von der Größe einer gehörende Zellen physikalisch zusammenhängend, vorhandenen Tabelle abhängt. Dies verlangsamt nach Schlüssel sortiert, in einer Mapfile abgelegt allerdings das initiale Auffüllen einer Tabelle, da werden. Ist für eine gegebene Zeile eine Spalte nicht hierbei die Regions erst nach und nach angelegt besetzt, so wird hierfür kein Eintrag angelegt. Diese werden. Form der Datenhaltung ermöglicht einerseits eine schnelle Suche nach Einträgen, andererseits erlaubt • Lesender und schreibender Zugriff eine geeignete Schlüsselwahl es, Elemente, auf die HBase ermöglicht es im Gegensatz zu HDFS, zeitnah sequentiell zugegriffen werden soll, für eine effiziente auf beliebige Elemente großer Datenbestände Verarbeitung zu gruppieren. schreibend und lesend zuzugreifen. Dies bedeutet Ein typischer Anwendungsfall für HBase ist der insbesondere auch einen vergleichsweise performanten Einsatz als Datenquelle für Map/Reduce-Jobs bei einer Zugriff auf einzelne Elemente im Kilobyte-Bereich. batch-basierenden Datenverarbeitung. Durch die Um die Region zu ermitteln, in der sich die Zuhilfenahme von HBase erhalten Map/Reduce-Jobs gewünschte Zeile befindet, sind für einen Client nicht eine vergleichsweise einfache Nutzung von Indizes, mehr als drei Lookups notwendig. Hierbei werden womit einer, der in [Pavlo2009] aufgeführten zwei spezielle Regions genutzt: „.META.“ und Nachteile von Map/Reduce gegenüber traditionellen „-ROOT-“. Mit diesen wird ein Verfahren Datenbanken aufgehoben wird. implementiert, dass einem B+ Baum ähnelt, dessen Im Gegensatz zu Datenbanken werden keine Höhe auf drei Ebenen begrenzt ist. Hierbei entspricht sekundären Indizes direkt unterstützt, da lediglich „-ROOT-“ der ersten Ebene, wird jedoch gegenüber nach einem Schlüssel sortiert wird. Dies erleichtert anderen Regions nicht weiter zerteilt, die „.META.“ jedoch das performante Einfügen von Daten auf Regions entsprechen der zweiten Ebene und die verteilten Regionservern. Da die Änderungen jeweils Regions in denen die tatsächlichen Nutzdaten lokal, auf Regions von beschränkter Größe, erfolgt, vorliegen, befinden sich in der dritten Ebene. nimmt die Performance hierbei auch nicht wesentlich Will ein Client auf ein Element zugreifen, so fragt mit zunehmender Tabellengröße ab. Darüber hinaus er im ersten Schritt beim ZooKeeper-Cluster die existiert mit [Apache2010c] eine Erweiterung, die es Position von „-ROOT-“ an. Die „-ROOT-“ Region HBase ermöglicht auch sekundäre Indizes zu wird genutzt um die Position jener „.META.“ Region verwenden. zu ermitteln, welche den Aufenthaltsort der Region Tabellen werden von HBase automatisch in preisgibt, in welcher der gewünschte Schlüssel sogenannte Regions unterteilt. Für einen HBase- enthalten sein könnte. Anschließend wird geprüft ob Cluster sind Regions die Elemente, die zum Verteilen und an welcher Stelle das gesuchte Element in der einer Tabelle dienen. Analog zu HDFS-Blöcken nach Schlüsseln sortierten Region vorhanden ist. bestimmt die Größe von HBase-Regions, die Dies kann beispielsweise durch Laden der Region Granularität paralleler Verarbeitung. Da einzelne mit anschließender binärer Suche erfolgen. Um jedoch Regions weitgehend separat voneinander verarbeitet unnötige Zugriffe auf die Festplatte zu vermeiden, ist werden können, skaliert ein HBase-Cluster einfach der Einsatz von Bloomfiltern möglich. Diese können durch das Hinzufügen neuer Knoten. Hierbei werden den abschließenden Suchvorgang für Anfragen mit die vorhanden Regions vom Master automatisch negativem Ausgang in vielen Fällen vermeiden. gleichmäßig auf den Knoten verteilt. Hierzu speichern Bloomfilter die Hashes, der in einer Jede Region enthält eine Teilmenge der Zeilen Region enthaltenen Schlüssel, in einer Hashtable. Ist einer Tabelle. Überschreitet die Größe einer Region ein Hashwert eines gesuchten Schlüssels in einem einen einstellbaren Grenzwert, so wird diese in einem Bloomfilter nicht auffindbar, so existiert er in der als Regionsplit bezeichneten Vorgang, vom Region definitiv nicht. Bei Übereinstimmung mit Regionserver in zwei Regions gleicher Größe einem bereits enthaltenen Hashwert kann aufgrund unterteilt. Anschließend wird der HBase-Master über möglicher Hash-Kollisionen jedoch keine eindeutige die hierbei entstandenen Regions informiert und kann Aussage darüber getroffen werden, ob das gesuchte dementsprechend Loadbalancing Vorgänge einleiten. Element tatsächlich enthalten ist. In vielen Fällen ist es so möglich die Abwesenheit eines Elements in einer

106 Region festzustellen, ohne diese selbst durchsuchen zu der Daten in neuen Regions vor, weshalb die älteren müssen. Regions mit redundanter Information automatisch Um die Anzahl der vom Client durchzuführenden gelöscht werden können. Lookups zu verringern, cachen Clients Informationen, Um die Wahrung der Konsistenz einer Region bei die sie beim Durchsuchen von „-ROOT-“ und parallelen schreibenden Zugriffen zu vereinfachen, ist „.META.“ erhalten haben. So wird neben dem der Zugriff auf eine Region jeweils von nur einem Aufenthaltsort einer Region, auch die erste und letzte Regionserver zur gleichen Zeit möglich. Weiterhin Zeile der jeweiligen Region festgehalten. Zudem sind Updates von Zeilen atomar, unabhängig von der werden bei einem Lookup nach einer bestimmten Anzahl der enthaltenen Spalten. So kann die Region auch Informationen über die benachbarten Konsistenz einer Zeile durch eine Sperre gewahrt Regions mitgeliefert. Clients sind so oftmals in der werden, um mehrere aufeinanderfolgende, Schreib- Lage die möglichen Aufenthaltsorte von Zeilen zu und Lese-Operationen durchführen zu können. Laut ermitteln, ohne „-ROOT-“ oder „.META.“ zu [Apache2009b] sind durch eine Erweiterung auch konsultieren. Ist die gecachte Information nicht mehr Sperren auf mehrere Zeilen zur gleichen Zeit möglich. aktuell und ein Fehler tritt auf, so kontaktiert der Client „.META.“ erneut, um den neuen Aufenthaltsort • Fehlertoleranz der benötigten Region zu ermitteln. Enthält die Im Gegensatz zu den benötigten HDFS- und ursprüngliche „.META.“-Region diese Information Map/Reduce-Mastern handelt es sich beim HBase- nicht mehr, so dient „-ROOT-" dem Auffinden einer Master nicht um einen Single Point of Failure. geeigneten „.META.“-Region. So ist es möglich mehrere HBase-Master als Da unter HDFS wahlfreier Zugriff auf Dateien Backup im „hot ready“ Zustand zu halten. Fällt der nicht vorgesehen und daher überaus ineffizient ist, derzeit aktive HBase-Master aus, so kann mit Hilfe werden einmal angelegte Regions als Read-Only von ZooKeeper, einem verteilten Koordinationsdienst gehandhabt. [Apache2008b], in einer Leader Election Phase Um in HBase dennoch Änderungen an den automatisch ein neuer Master bestimmt werden. Tabellen durchführen zu können, werden diese zuerst ZooKeeper selbst ist hierbei ebenfalls kein Single in eine separate Commit-Log (Write Ahead Log, Point of Failure, da dieser gleichzeitig auf mehreren WAL) geschrieben und anschließend in einem sich im Knoten verteilt synchron gehaltene Instanzen pflegt. Hauptspeicher befindenden Cache, dem Memcache, Um bei Ausfall eines Regionservers Datenverlusten übernommen. Überschreitet die Befüllung des vorzubeugen, werden die Commit-Logs, im HDFS Memcache einen definierten Grenzwert, so wird abgelegt und liegen somit global repliziert vor. dessen Inhalt ins Dateisystem geschrieben. Erkennt der HBase-Master den Ausfall eines So muss auch bei Lesevorgängen der Memcache Regionservers, so weist dieser andere Regionserver an, konsultiert werden, da sich nur in diesem die aktuelle welche ein Replikat der Regions des ausfallenden Version der Tabelle befindet. Enthält dieser nicht Knotens enthalten, ihren Datenbestand anhand der bereits die gewünschten Informationen, so werden Commit-Logs zu aktualisieren. diese aus bereits gespeicherten Regions und den für sie Bei langwierigen Anfragen haben HBase durchgeführten Änderungen in den Commit-Logs basierende Map/Reduce-Jobs zudem, gegenüber rekonstruiert. klassischen Datenbanken, den Vorteil feingranularerer Damit Regions mit nicht mehr aktuellen Mechanismen zur Fehlertoleranz. Fällt ein Informationen nicht unnötig viel Speicherplatz Regionserver oder ein Map-Task aus, so wird dessen verbrauchen und um Performanceeinbußen durch den Aufgabe von einem anderen Knoten übernommen, Wiederherstellungsvorgang mittels Commit-Logs ohne der Notwendigkeit den kompletten Map/Reduce- entgegenzuwirken, gibt es einen als „Compaction“ Task neuzustarten, so wie dies beispielsweise bei einer [Apache2009b] bezeichneten Hintergrundprozess. Datenbank der Fall wäre [Pavlo2009]. Dieser wird tätig, sobald die Anzahl von Änderungen einen Grenzwert überschreitet. Hierbei werden nicht 3. Automatische Konfiguration mehr benötigte Daten, wie überflüssige Versionen, veraltete oder gelöschte Zellen in den neu angelegten In [Stonebraker2010] wurde erläutert, dass sowohl Regions weggelassen. Die Anzahl zu haltender Datenbanken als auch Hadoop Map/Reduce einen Versionen, sowie das maximale Alter sind hierbei erheblichen Konfigurationsaufwand erfordern, bevor einstellbare Parameter und sind vor allem hilfreich, ein sinnvoller Vergleich zwischen diesen durchgeführt um automatisch Daten zu beseitigen, die nach einer werden kann. Im Fall von HBase wirken sich sowohl bestimmten Dauer ihre Gültigkeit verlieren. Auch Konfigurationsparameter aus HBase selbst, sowie den werden sämtliche, in den Commit-Logs enthaltenen, verwendeten Technologien Map/Reduce und HDFS Änderungen an den Daten mit eingepflegt. Nach erheblich auf die Performance aus. Abschluss dieses Vorgangs liegt ein aktueller Stand

107 In den verwendeten Hadoop 0.20.1 und HBase Laufzeit, weit weniger zeitaufwendig ist, als die 0.20.3 Versionen liegen als Dokumentation für Ermittlung mithilfe eines tatsächlich durchgeführten einstellbare Parameter die Dateien HBase-default.xml, Benchmarks. core-default.xml, HDFS-default.xml, mapred- default.xml vor. In diesen befinden sich insgesamt Tabelle 2: Parameter und deren Wertebereiche rund 250 einstellbare Parameter, von denen zahlreiche einen potentiellen Einfluss auf die erreichbare Parameter Min. Max. Performance haben. Parameter, die einen wesentlichen Einfluss auf die Verarbeitungsgeschwindigkeit von hadoopHeapSize 512 1912 Hadoop und HBase haben, wurden bereits in mapredTasktrackerMapTasksMaximum 1 8 [Pavlo2009], [Lea2009], [Anty2009], [Rawson2010] mapredChildJavaOpts 128 1536 und [Cloudera2009] identifiziert. In diesen wurden zudem Erfahrungswerte für konkrete Konfigurationen HBaseHeapSize 512 1912 gegeben. Jedoch unterscheiden sich die HBaseClientScannerCaching 1 200 vorgeschlagenen Parameter, deren Werte und die Gegebenheiten unter denen diese ermittelt wurden. Als Modell der Laufzeiten wurde eine Funktion mit Als zu optimierende Parameter wurden in dieser den Konfigurationsparametern von Hadoop, HBase Ausarbeitung die Anzahl von Map Tasks und HDFS als Parameter und den, zu den jeweiligen (mapred.Tasktracker.map.tasks.maximum1), die Konfigurationen, ermittelten Laufzeiten als Ergebnis HeapSize von Hadoop (HADOOP_HEAPSIZE2 und gewählt. Da die bei den Messungen ermittelten Werte mapred.child.java.opts3) und HBase starken Schwankungen unterworfen waren, musste (HBase_HEAPSIZE4), sowie die Anzahl zu cachender eine fehlertolerante Methode zur Bestimmung der Zeilen (HBase.client.scanner.caching5) gewählt. Approximationsfunktion herangezogen werden. Parameter, die einen Formatierungsvorgang Hierzu wurde die Methode der kleinsten Quadrate voraussetzen, wie beispielsweise die HDFS BlockSize, (engl. least squares) genutzt, um trotz der, bei den wurden bei dieser Betrachtung außen vor gelassen, da Messungen auftretenden Schwankungen, eine diese den zeitlichen Aufwand bei der Durchführung geeignete Approximationsfunktion zu ermitteln. der Benchmarks erheblich erhöht hätten. Als Wertebereich für die einzelnen Parameter wurde • Methode der kleinsten Quadrate jeweils die Hälfte des kleinsten und das Doppelte des Als Approximationsfunktion A wird ein Polynom von größten, in der Literatur vorgeschlagenen Wertes, für v Variablen x und n+1 Monomen f0...fn gewählt. den jeweiligen Parameter gewählt, siehe Tabelle 2. Hiermit ergibt sich ein Suchraum von rund 4,4*1012 A x=a f xa f x ⋯a f  x möglichen Konfigurationen6, welcher mithilfe eines 0 0 1 1 n n Trial-and-Error Ansatzes nur unbefriedigend Hierbei beträgt die maximale Anzahl von durchsucht werden könnte. Folglich ist eine systematischere Vorgehensweise angemessen. Monomen fn, die in einem Polynom k-ten Grades auftreten können: Dies kann beispielsweise durch Betrachtung der Performancemetriken von Benchmarks in Anzahl Monome x x ⋯x 1k= vk 1 2 v  k  Abhängigkeit der verwendeten Konfiguration als Optimierungsproblem, vgl. [Goos1998], erfolgen. Hierbei gilt es die Konfigurationsparameter zu Polynome mit maximalen Totalgrad nähern eine ermitteln, für welche die erbrachte Leistung bei Funktion genauer an, als Polynome niedrigeren Benchmarks ihr Optimum erreicht. Als Grades, benötigen jedoch eine entsprechend hohe Performancemetrik wurde die Laufzeit des Scan- Anzahl von unterschiedlichen Messwerten. Bei Benchmarks gewählt, welcher bereits in Hadoop Bestimmung einer Approximationsfunktion mithilfe Installationen enthalten ist. Weiterhin wurde auf ein der Methode der kleinsten Quadrate, muss die Anzahl modellbehaftetes Verfahren gesetzt, da die der Messwerte m deutlich höher Ausfallen als die Berechnung einer durch ein Modell vorhergesagten Anzahl der Monome, damit sich das zu ermittelnde Polynom für eine Interpolation zwischen Punkten, für die noch keine Messung durchgeführt wurde, eignet 1 Siehe mapred-site.xml [Carter2000]. 2 Siehe hadoop-env.sh Da die Approximationsfunktion A sich nicht für 3 Siehe mapred-site.xml eine mögliche Extrapolation eignet, muss der 4 Siehe HBase-env.sh Wertebereich gültiger Konfigurationsparameter 5 Siehe HBase-site.xml eingeschränkt werden. Werden für die einzelnen 6 Anzahl möglicher Konfigurationen: (1912- Parameter, unabhängig von den anderen, jeweils ein 511)*(8)*(1536-127)*(1912-511)*(200) = 4,4*1012

108 kleinstmöglicher und größtmöglicher Wert festgelegt, m m m ∑ a0 f 0 xi  f 0 xi −⋯−∑ a n f nxi f 0 xi =∑ f 0 xi ⋅yi so spannen die Wertebereiche der Parameter ein v- i =1 i=1 i=1 dimensonales Rechteck auf, den Definitionsbereich m m m der Approximationsfunktion. Die Eckpunkte E des v- ∑ a0 f 0 xi  f 1xi −⋯−∑ a n f n xi  f 1 xi =∑ f 1xi ⋅yi dimensionalen Rechtecks ergeben sich aus den i =1 i=1 i=1 ⋯ Elementen des kartesischen Produkts der Grenzwerte m m m der einzelnen Variablen xi. Da es für jede Variable je ∑ a0 f 0 xi  f n xi −⋯−∑ a n f nxi f n xi =∑ f n xi ⋅yi zwei Grenzwerte gibt, beträgt die Anzahl von Ecken i =1 i=1 i=1 eines v-dimensionalen Rechtecks 2n. Die Kanten ergeben sich aus jeweils zwei Eckpunkten, deren Aus der sich durch die Lösung ergebenden Matrix Koordinaten sich nur an einer Stelle unterscheiden, lassen sich die Werte der einzelnen Koeffizienten womit sich eine Anzahl n*2(n-1) Kanten ergibt. direkt aus der Hauptdiagonalen ermitteln. Als Versuchsplan zur Ermittlung der Stützstellen Das sich hieraus ergebende Polynom A beschreibt für die Approximationsfunktion wurde auf eine die Laufzeiten in Abhängigkeit von der verwendeten Kombination aus Fractional 3-Level Full Factorial und Konfiguration. Random Design gesetzt [Schumacher2005]. Hierbei Um nun eine Konfiguration zu finden, die zu werden beim Fractional 3-Level Full Factorial einem guten Laufzeitverhalten führt, kann ein Verfahren als Stützstellen eine Teilmenge der Ecken Optimierungsverfahren herangezogen werden. Ein und Kanten des v-dimensionalen Rechtecks Beispiel hierfür ist das Gradientenverfahren (engl. ausgewählt, welches den gültigen Wertebereich der steepest descent/ascent) [Goos1998]. Konfigurationsparameter definiert. Mit Random Design werden Stützpunkte innerhalb des • Gradientenverfahren Definitionsbereichs (engl. space filling) zufällig Das Gradientenverfahren dient dem Auffinden von ausgewählt, um Polynome höheren Grades annähern Extremwerten von Funktionen von mehreren zu können. Variablen. Es handelt sich um ein Verfahren ersten Um die Koeffizienten ai der Grades (engl. first order), da für die Bestimmung des Approximationsfunktion A zu bestimmen, wird die Gradienten die partiellen Ableitungen ersten Grades Fehlerfunktion F, welche die Abweichung von A zu existieren müssen. den tatsächlichen Messwerten yi in Abhängigkeit der An der Stelle eines zufällig gewählten Startpunkt verwendeten Koeffizienten beschreibt, minimiert. s0=(x1,...,xn), wird der Gradient grad(A(s0)) ermittelt. m ∂ A ∂ A 2 grad A s = ,,    =  −   n F a ∑ yi A xi ∂ x1 ∂ xv i =0 m Mithilfe des Gradienten lässt sich die Richtung des 2 ⇔ F a =∑  yi−a0 f 0 xi −a1 f 1xi −⋯−a n f n xi  steilsten Anstiegs und des steilsten Abstiegs ermitteln. i =0 So kann das Ergebnis des Gradienten als Richtungsvektor im ℝv betrachtet werden, der in die F wird minimal, wenn sämtliche partielle Richtung des steilsten Anstiegs zeigt. Wird das Ableitungen ersten Grades den Wert 0 annehmen. Ergebnis negiert, so erhält man einen Vektor, der in die Richtung des steilsten Abstiegs zeigt. ∂ F m =∑ 2⋅ y −a f x −⋯−a f x ⋅− f x =0 Anschließend wird der nachfolgende Punkt sn+1 ∂ a i 0 0 i n n i 0 i 0 i=1 durch Addition (Methode des steilsten Anstiegs, ∂ F m Suche von Maxima) bzw. Subtraktion (steilster =∑ 2⋅ yi−a 0 f 0 xi −⋯−a n f nxi ⋅− f 1xi=0 ∂ a1 i=1 Abstieg, Suche von Minima) eines Vektors δ ⋯ bestimmt. δ ergibt sich hierbei aus der Multiplikation ∂ F m einer Schrittweite h mit dem normierten Gradienten = 2⋅ y −a f x −⋯−a f x ⋅− f x =0 ∑ i 0 0 i n n i n i an der Stelle s0. ∂ an i=1

=  = ±  ±  Dies lässt sich in ein System von Gleichungen sn1 sn n1 x1 n1,1 , , xv n1, v 0 überführen, welche sich durch das Gauss-Jordan-  n1, i=hn1⋅grad A sni , h0, i=1, ,v Eliminationsverfahren lösen lassen. Die Schrittweite hn wird im Falle des Gradientenverfahrens mit adaptiver Schrittweite, ausgehend von einem zu definierenden Startwert h 0 verdoppelt, wenn für drei aufeinanderfolgende Schritte die Funktionswerte kontinuierlich steigen oder fallen. Wurde ein Extremwert übersprungen oder der Betrag

109 des Gradienten entspricht null, so wird die • Proof of Concept Schrittweite halbiert. Durchgeführt wurde der in HBase Installationen bereits enthaltene Scan-Benchmark7. Dieser führt einen sequenziellen Lesevorgang über einen Daten- 2∗hn , falls AS n−2  A S n−1 AS n  bestand von rund einem Gigabyte je Knoten durch. ∨ A Sn −2 AS n−1 AS n  hn1= Die Daten selbst wurden mit dem sequentialWrite h n ,sonst Benchmark erstellt. Die Schlüssel und Werte sind { 2 zufällig bestimmt, wodurch eine Kompression der Werte zu keinen Platz- oder Performancevorteilen Das Verfahren endet, wenn der Unterschied zweier führen würde [Chang2006]. Zum Einsatz kam Hadoop aufeinanderfolgender Funktionswerte eine 0.20.1, HBase 0.20.3 unter der Sun JVM 1.6.0_16 vorgegebene Genauigkeit ε unterschreitet, und zudem dem Linux Kernel 2.6.18 und Centos 5.4 auf vier, die Schrittweite hn unter einer gegebenen Schrittweite durch ein Gigabit Netzwerk verbundenen, Rechnern η liegt. Wird ein Extremwert exakt getroffen, so ergibt mit je einem AMD Athlon 64 X2 Dual Core Prozessor sich als Gradient ein Nullvektor, womit die darauf 4600+ und vier Gigabyte RAM. Insgesamt wurden folgenden Schritte das gefundene Optimum nicht 9100 Messungen durchgeführt, um eine auf Grundlage verlassen. der genannten Parameter optimale Konfiguration, zu Im hier vorliegenden Fall wird nach einer ermitteln. Abschließend wurde die Laufzeit aus je 15 Konfiguration gesucht, für die A ein Minimum Durchläufen der in der Literatur aufgeführten erreicht, weshalb die Methode des steilsten Abstiegs Konfigurationen, mit der optimierten Konfiguration zum Einsatz kommt. verglichen. Die Ergebnisse können aus Abbildung 3 Das Gradientenverfahren findet in der Regel, entnommen werden. abhängig vom Startwert nur lokale Extremwerte, weshalb es typischerweise mit einer großen Anzahl Abbildung 3: Vergleich der Konfigurationen von Startwerten wiederholt wird. Häufig wird vorgeschlagen, das Gradientenverfahren für Funktionen von n Unbekannten, mit dem Newtonverfahren zu kombinieren [Schumacher2005] mit dem Ziel die Konvergenzgeschwindigkeit zu erhöhen. Hierbei wird die zu optimierende Funktion in Richtung des Gradienten parametrisiert, und auf die sich hierbei ergebende Funktion das Newtonverfahren für Funktionen einer Variablen angewandt. Allerdings lassen sich auf diese Weise lediglich Minima und Maxima ermitteln, an denen die partiellen Ableitungen den Wert null annehmen. Jedoch können in einer Funktion mit begrenztem Definitionsbereich, Extremwerte auch auf Ecken und Kanten vorkommen, an denen die partiellen Ableitungen nicht den Wert null aufweisen. Somit müssten die Werte der Ecken separat ermittelt und zusätzlich das Newtonverfahren auf die Kanten angewendet werden. Zudem führt das Die optimierte Konfiguration HFU2010 erzielte Newtonverfahren im Falle ungeeigneter Startwerte zu eine durchschnittliche Laufzeit von 85.7 Sekunden. inakzeptablen Ergebnissen oder terminiert nicht. In Die in der Literatur angegebenen Konfigurationen [Goos1998] wird jedoch angemerkt, dass die ergaben bestenfalls eine durchschnittliche Laufzeit Konvergenzgeschwindigkeit des Gradientenverfahrens von 96.6 [Pavlo2009] und im schlechtesten Fall 120.4 mit adaptiver Schrittweite der des Newton-Verfahrens Sekunden [Cloudera2009], womit sich eine entspricht. Aus diesen Gründen wurde in dieser Verbesserung von 11% bis 29% ergibt. Die mittleren Ausarbeitung auf eine Kombination zwischen Laufzeiten der anderen verglichenen Konfigurationen Newton- und Gradientenverfahren verzichtet. betrugen jeweils 106.6 [Anty2009], 107.2 [Lea2009] Um die Qualität der Approximationsfunktion im und 111.7 Sekunden, in der von HBase Bereich der von ihr beschriebenen Minima weiter zu voreingestellten Konfiguration. verbessern, wurden in mehreren Iterationen die Laufzeiten der durch das Gradientenverfahren 7 HBase ermittelten Konfigurationen, dem Versuchsplan org.apache.hadoop.HBase.PerformanceEvaluation hinzugefügt. scan 4

110 4. Fazit und Ausblick [Apache2007c] Welcome to Pig! , The Apache Software Foundation, In dieser Arbeit wurde in die Technologien HDFS, URL:http://hadoop.apache.org/pig/, letzter Zugriff am Hadoop Map/Reduce und HBase eingeführt und die 02.03.2010 Ergebnisse aus [Pavlo2009], [Stonebraker2010] und [Dean2010] zusammengefasst. Wie die Kontroverse [Apache2008a] Welcome to Hive!, The Apache um Map/Reduce und Datenbanken zeigt, ist ein Software Foundation, direkter Vergleich beider Technologien URL:http://hadoop.apache.org/hive/, letzter Zugriff unangemessen. Aus diesem Grund wird am 02.03.2010 vorgeschlagen, HBase als auf Hadoop Map/Reduce aufsetzende Vergleichstechnologie heranzuziehen. Da [Apache2008b] Welcome to Apache ZooKeeper! , The die Ergebnisse erheblich von der verwendeten Apache Software Foundation, Konfiguration abhängen, wurde eine Möglichkeit URL:http://hadoop.apache.org/zookeeper/, letzter beschrieben, die Konfigurationsparameter automatisch Zugriff am 02.03.2010 zu optimieren. In dem im, Rahmen dieser Arbeit durchgeführten [Apache2009] Welcome to HBase!, The Apache Proof of Concept, wurden lediglich fünf der rund 250 Software Foundation, Parameter betrachtet. Es ist zu erwarten, dass die URL:http://hadoop.apache.org/HBase/, letzter Zugriff Berücksichtigung zusätzlicher Parameter zu weiteren am 02.03.2010 Performancesteigerungen führt. Auch hat sich der Scan-Benchmark als ungeeignet erwiesen, da die [Apache2009b] HBase/HBaseArchitecture, Laufzeiten nur geringfügig über der Startupzeit von URL:http://wiki.apache.org/hadoop/HBase/HBaseArch Hadoop und HBase liegen. Darüber hinaus ist itecture, letzter Zugriff am 04.03.2010 aufgrund der Beschaffenheit der Daten eine Kompression nicht gewinnbringend einsetzbar. [Apache2010] TextInputFormat (Hadoop 0.20.2 API) Sinnvollerweise sollten realistischere Daten verwendet URL:http://hadoop.apache.org/common/docs/current/a werden und die Laufzeit eines Benchmarks deutlich pi/org/apache/hadoop/mapreduce/lib/input/TextInputF über den, für den Startvorgang benötigten 25-60 ormat.html, letzter Zugriff 09.03.2010 Sekunden liegen. Zudem war die Clustergröße auf vier Rechner beschränkt, womit sich keine sinnvollen [Apache2010b] HDFS Architecture, The Apache Aussagen über die Skalierbarkeit von HBase treffen Software Foundation, 2008, lassen. Durch Berücksichtigung von Hardwaredetails, URL:http://hadoop.apache.org/common/docs/current/ wie beispielsweise der Anzahl verwendeter Rechner, HDFS_design.html, letzter Zugriff am 09.03.2010 der verfügbaren Netzbandbreite, Anzahl und Leistungsfähigkeit der verwendeten Prozessoren, [Apache2010c]tableindexed, könnten die Ergebnisse auch auf andere Cluster URL:http://hbase.apache.org/docs/r0.20.3/api/org/apac übertragen werden. he/hadoop/hbase/client/tableindexed/package- summary.html, letzter Zugriff am 01.06.2010

5. Quellen [Burrows2006] Burrows, M. The Chubby lock service for loosely-coupled distributed systems. In Proceedings [Anty2009] Anty Rao, Schubert Zhang, HBase‐ 0.20.0 of the 7th USENIX Symposium on Operating Systems Performance Evaluation , 2009, Design and Implementation, pp. 335-350 (OSDI URL: http://cloudepr.blogspot.com/, letzter Zugriff am 2006) 02.03.2010 [Carter2000] Tamara Anthony Carter, Linear Algebra, [Apache2007a] Welcome to Hadoop MapReduce! , An Introduction to Linear Algebra for Pre-Calculus The Apache Software Foundation, Students, URL:http://hadoop.apache.org/mapreduce/, letzter URL:http://ceee.rice.edu/Books/LA/index.html, letzter Zugriff am 02.03.2010 Zugriff am 23.03.2010

[Apache2007b] Welcome to Hadoop Distributed File [Chang2006] F. Chang, J. Dean, S. Ghemawat, W. System!, The Apache Software Foundation, Hsieh, D. Wallach, M. Burrows, T. Chandra, A. Fikes, URL:http://hadoop.apache.org/HDFS/, letzter Zugriff and R. Gruber. Bigtable: A Distributed Storage am 02.03.2010 System for Structured Data. In Proc. of the 7th Symposium on Operating SystemDesign and Implementation, (OSDI 2006).

111 [Chu-Carrol2008] Mark C. Chu-Carrol, Databases are [Goos1998] Goos, G.: Vorlesungen über Informatik. hammers; MapReduce is a screwdriver., Bd. 4 (Paralleles Rechnen und nicht-analytische URL:http://scienceblogs.com/goodmath/2008/01/datab Lösungsverfahren). Springer, 1998 ases_are_hammers_mapreduc.php, letzter Zugriff am 21.04.2010 [Lea2009] William Lea, Optimizing Hadoop* Deployments, 2009, [Cloudera2009] Configure Cloudera`s Distribution for URL:http://communities.intel.com/docs/DOC-4218 Hadoop, URL: https://my.cloudera.com/, letzter Zugriff 30.09.2009 [Nyberg2010] Chris Nyberg, Mehul Shah , Naga Govindaraju , Sort Benchmark Home Page, [Czajkowski2008] Grzegorz Czajkowski, Sorting 1TB URL: http://sortbenchmark.org/, letzter Zugriff am with MapReduce, 21.04.2010 URL: http://googleblog.blogspot.com/2008/11/sorting- 1pb-with-mapreduce.html , letzter Zugriff 02.03.2010 [Oskarsson2009] Johan Oskarsson, Hadoop feat. Lzo - save disk space and speed up your programs, [Dean2004] J. Dean, and S. Ghemawat., ”MapReduce: URL:http://blog.oskarsson.nu/2009/03/hadoop-feat- Simplified Data Processing on Large Clusters.”, in lzo-save-disk-space-and.html, letzter Zugriff am Proc. of 6th Symposium on Operating Systems Design 11.03.2010 and Implementation (OSDI), San Francisco, 2004. [Pavlo2009] A. Pavlo, E. Paulson, A. Rasin, D. J. [Dean2008] Dean, J. and Ghemawat, S. 2008. Abadi, D. J. Dewitt, S. Madden, and M. Stonebraker, MapReduce: simplified data processing on large "A Comparison of Approaches to Large-Scale Data clusters. Commun. ACM 51, 1 (Jan. 2008), 107-113. Analysis," in SIGMOD ‘09: Proceedings of the 2009 DOI= http://doi.acm.org/10.1145/1327452.1327492 ACM SIGMOD International Conference, 2009.

[Dean2010] Dean, J. and Ghemawat, S. 2010. [Pike2005] R. Pike, S. Dorward, R. Griesemer, and S. MapReduce: a flexible data processing tool. Commun. Quinlan. Interpreting the data: Parallel analysis with ACM 53, 1 (Jan. 2010), 72-77. DOI= Sawzall. Scientific Programming Journal, 13(4), 2005. http://doi.acm.org/10.1145/1629175.1629198 [Rawson2010] Ryan Rawson, Performance Tuning, [DeWitt2008a]David J. DeWitt, Michael Stonebraker, URL:http://wiki.apache.org/hadoop/PerformanceTuni MapReduce: A major step backwards, ng, letzter Zugriff am 10.03.2010 URL:http://databasecolumn.vertica.com/database- innovation/mapreduce-a-major-step-backwards/, [Schumacher2005] Schumacher, A.: Optimierung letzter Zugriff am 10.03.2010 mechanischer Strukturen – Grundlagen und industrielle. Anwendungen, Springer, Berlin [DeWitt2008b] David J. DeWitt, Michael Stonebraker, Heidelberg, 2005 MapReduce II, URL:http://databasecolumn.vertica.com/database- [Stonebraker2010] M. Stonebraker, D. Abadi, D. J. innovation/mapreduce-ii/, letzter Zugriff am DeWitt, S. Madden, E. Paulson, A. Pavlo, and A. 10.03.2010 Rasin, "MapReduce and Parallel DBMSs: Friends or Foes?," Communications of the ACM, vol. 53, iss. 1, [Ghemawat2003] Ghemawat, S., Gobioff, H., and pp. 64-71, 2010. Leung, S. 2003. The Google file system. In Proceedings of the Nineteenth ACM Symposium on [Venner2009] Jason Venner. Pro HADOOP. Apress L. Operating Systems Principles (Bolton Landing, NY, P., Berkeley, California, first edition, 2009. USA, October 19 - 22, 2003). SOSP '03. ACM Press, New York, NY, 29-43. [White2009] White, T. Hadoop: The definitive guide. O’Reilly, 2009. [Goffinet2009] Chris Goffinet, Parallel LZO splittable on Hadoop using Cloudera, [Yahoo2008] Yahoo! Launches World's Largest URL:http://blog.chrisgoffinet.com/2009/06/parallel- Hadoop Production Application, 2008, lzo-splittable-on-hadoop-using-cloudera/, letzter URL:http://developer.yahoo.net/blogs/hadoop/2008/02 Zugriff am 11.03.2010 /yahoo-worlds-largest-production-hadoop.html, letzter Zugriff am 21.04.2010

112 Replikation auf Blockebene mit DRBD

Fabian Berner Denis Jurkovic Hochschule Furtwangen Hochschule Furtwangen Fakultat¨ Informatik Fakultat¨ Informatik [email protected] [email protected]

Zusammenfassung—Eine hohe Verfugbarkeit¨ und Zu- hensweisen vergleichen und im Anschluss Performance- verlassigkeit¨ von Daten und Diensten sind gerade im Tests durchfuhren.¨ Dabei wird insbesondere auf den Leis- geschaftlichen¨ Umfeld essenziell. Dabei sind kommerzielle tungsvergleich der DRBD-Protokolle eingegangen. Hochverfugbarkeitscluster-L¨ osungen¨ sehr teuer und rechnen sich deswegen, fur¨ viele kleine und mittlere Unternehmen, II.GRUNDLAGEN nicht. Mit DRBD hat die Firma Linbit einen Ansatz entwickelt, der dieses Problem lost.¨ So konnen,¨ mit Hilfe des DRBD- Im Folgenden wird DRBD vorgestellt und dessen Grund- Kernelmoduls und anderen Open Source-Programmen, vergle- lagen beschreiben, die fur¨ das Verstandnis¨ der Inhalte ichsweise gunstige¨ Hochverfugbarkeitscluster¨ auf Linux-Basis aufgesetzt werden. Dazu kann komplett auf spezielle oder teure spaterer¨ Kapitel notwendig sind. Hardwarekomponenten verzichtet werden. In dieser Arbeit wird DRBD genauer untersucht und mit A. Was ist DRBD? verschiedenen, grundlegenden Konzepten von verteilten Syste- Die grundlegende Idee zu DRBD (Distributed Replicated men abgeglichen. Block Device) wurde von Philipp Reisner in seiner Diplo- Keywords-Distributed Replicated Block Device, DRBD, High marbeit [1] erarbeitet. Er schlagt¨ eine Replikation auf Availability, Replikation, Shared Nothing Cluster Blockebene vor. Das bedeutet, durch den Einsatz von DRBD wird die Replikationsarbeit von der eigentlichen Applika- ¨ I.EINFUHRUNG tion entkoppelt und von einem, in den normalen I/O- In der heutigen Zeit sind Server Cluster ein Muss fur¨ jede Stack eingefuhrten,¨ virtuellen Blockgerat¨ ubernommen.¨ Dies großere¨ Anwendung. Die standige¨ Verfugbarkeit¨ und Aus- ermoglicht¨ eine Replikation die RAID1 gleicht, mit dem fallsicherheit sind Grundvoraussetzungen zum Erfolg eines entscheidenden Unterschied, dass hier die Rechnergrenzen Produkts und somit eines der hochsten¨ Gutekennzeichen¨ uberwunden¨ werden konnen¨ und somit die einzelne Mas- uberhaupt.¨ Durch das Problem der Fehleranfalligkeit¨ von chine keinen Single Point of Failure mehr darstellt. Auf Hardware und Software, ist es notig,¨ in geeigneter Form, der Basis dieser konzeptionellen Uberlegungen¨ wurde die Redundanzen zu schaffen, die bei Ausfallen¨ ausreichend Firma Linbit1 gegrundet.¨ Das 2001 gegrundete¨ Unternehmen schnell Fehler erkennen und kompensieren. Stand der Tech- ubernimmt¨ neben der Vermarktung auch die Weiterentwick- nik ist heute die Redundanzhaltung der Hardware sowie aller lung von DRBD. Einfach zu installierende Binar-Pakete¨ Daten, um einem System, bei einem Ausfall, das nahtlose werden mittlerweile von allen großen Linux-Distributionen Weiterarbeiten zu ermoglichen.¨ Die Datenreplikation ist hi- bereitgestellt. Durch die konsequente Open Source-Strategie erbei fur¨ die Konsistenzhaltung des gesamten Datenvolu- von Linbit, wurde das DRBD-Kernelmodul mit der Ver- mens der Anwendung zustandig.¨ Namhafte Anbieter wie Or- sion 2.6.33 offiziell in den Vanilla-Kernel aufgenom- acle stellen Replikationslosungen¨ fur¨ ihre Datenbanksysteme men und somit zum offiziellen Linux-Kernelbestandteil. bereit, die sie sich allerdings teuer bezahlen lassen und so Der Vanilla-Kernel ist der Referenzkernel, wie er auf fur¨ kleinere Unternehmen nicht in Frage kommen. So haben http://www.kernel.org heruntergeladen werden kann, auf Open Source Entwickler in den letzte Jahren, eine gunstige¨ dem die spezifischen Distributionskernel aufbauen. Losung¨ entworfen, diese Lucke¨ zu schließen. So beschrieb 1) DRBD als verteiltes System: Tannenbaum und van Philipp Reisner den DRBD-Ansatz, der die Datenreplikation Steen zufolge ist ein Verteiltes System [. . . ] eine Ansamm- ” auf Blockebene vornimmt. lung unabhangiger¨ Computer, die den Benutzern wie ein einzelnes koharentes¨ System erscheinen“ [2]. A. Motivation Bei einfacher Verwendung, ist fur¨ den Benutzer Diesem Ansatz mochten¨ wir uns, auf Grund des ho- die DRBD-Datenreplikation transparent. Weswegen in hen Bedarfs an einer kostengunstigen¨ Losung¨ im Bereich diesem Zusammenhang auch von Replikationstransparenz Hochverfugbarkeit,¨ befassen und DRBD einmal genauer gesprochen wird. DRBD erfullt¨ also die von Tannenbaum untersuchen. Dabei werden wir zunachst¨ den Ansatz be- trachten, DRBD mit ahnlichen¨ Losungen¨ und Herange- 1http://www.linbit.com

113 Klasse Verfugbarkeit¨ Bezeichnung 0 95% keine Anforderung an die Verfugbarkeit¨ Technologie DRBD bezieht. Es wird keine Aussage uber¨ 1 99,0% normale Verfugbarkeit¨ die zu verwendende Hardware gemacht. Prinzipiell kann ein 2 99,9% hohe Verfugbarkeit¨ DRBD-Cluster, wie auch in unserem Versuchsaufbau, mit 3 99,99% sehr hohe Verfugbarkeit¨ 4 99,999% hochste¨ Verfugbarkeit¨ normalen COTS-Komponenten beschreibt Standard Comput- 5 100% disastertolerant erkomponenten aufgebaut werden. Allerdings kann es so zu einer geringeren Verfugbarkeit¨ kommen. Daraus folgt, dass Tabelle I: Verfugbarkeitsklassen¨ nach BSI [5] es fur¨ kritische Anwendungen trotz DRBD sinnvoll sein kann, hochverfugbare¨ Hardware-Komponenten zu verwen- den. und van Steen definierten Anforderungen an ein verteiltes Durch die hohe Verfugbarkeit,¨ ist DRBD bestens fur¨ High System. Allerdings muss hier festgestellt werden, dass mit Availability-Cluster auf Basis von Linux geeignet. Dabei DRBD, wie bei jedem verteilten System, ein erhohter¨ Ad- lasst¨ sich DRBD gut durch Werkzeuge aus dem High Avail- ministrationsaufwand verknupft¨ ist. ability Linux-Projekt3 erganzen,¨ allen voran Heartbeat4. 2) Motivation von DRBD: Der DRBD-Ansatz zeigt, wie Mit Heartbeat kann die Erreichbarkeit der jeweils anderen Hochverfugbarkeitscluster¨ mit COTS2-Komponenten aufge- Cluster-Knoten getestet werden. So kann schnell festgestellt baut werden konnen.¨ Gerade fur¨ kleine und mittlere Un- werden, ob es zwischen den Knoten Verbindungsprobleme ternehmen sind klassische Hochverfugbarkeitscluster¨ nur be- gibt. So kann es zu Problemen kommen, wenn beispiel- dingt geeignet, da sie oft teuer in der Anschaffung sind. Ein sweise nur die Verbindung zwischen den Cluster-Partnern, weiteres Problem ist der Single Point of Failure der durch die durch eine Netzwerkfragmentierung, unterbrochen ist, aber gemeinsame Verwendung von Ressourcen auftreten kann. die Dienste noch normal weiterlaufen. Genaueres zu dem Aus diesem Grund werden Shared Device-Cluster auch Verhalten im Fehlerfall, wird weiter unten besprochen. Die scherzhaft als very expensive single points of failure“ [3] ” Auswirkung von Netzwerkproblemen kann durch eine re- bezeichnet. dundante Netzwerkverbindung reduziert werden. DRBD ist hier eine interessante Alternative. Durch die Verwendung von Standard-Computerkomponenten kann In Linux High Availability-Cluster konnen¨ ebenso Server- so ein vergleichsweise gunstiges¨ Hochverfugbarkeitscluster¨ Applikationen wie Webserver (z.B. Apache) oder Daten- aufgebaut werden. Außerdem kann, durch den Verzicht banken (z.B MySQL oder PostgreSQL) installiert werden. auf gemeinsam genutzte Ressourcen, die Funktionalitat¨ des Somit konnen,¨ neben der Datenreplikation durch DRBD, Clusters auch beim Ausfall einer Hardwarekomponente auch die Serverdienste redundant gehalten werden, die auf aufrecht gehalten werden. Dadurch lasst¨ sich das Risiko, die replizierten Daten aufbauen konnen.¨ dass durch den Ausfall des Clusters entstehen wurde,¨ deut- Ein so aufgebautes System wir als Shared Nothing Cluster lich reduzieren. bezeichnet [2]. Kurz gefasst ist das Ziel von DRBD der einfache Auf- 1) Shared Nothing Cluster: Ein Shared Nothing Cluster bau eines Hochverfugbarkeitsclusters¨ auf Linux-Basis, mit stellt das Gegenkonzept zu einem Shared Device Cluster replizierter Datenhaltung. dar. Wie der Name schon vermuten lasst,¨ gibt es hier keine gemeinsam verwendeten Ressourcen. Dadurch gibt es B. Hochverfugbarkeit¨ auch keinen Single Point of Failure, der bei Shared Device Mit Hilfe von DRBD konnen¨ Linux- Clustern auftreten kann. Hochverfugbarkeitscluster¨ aufgebaut werden. Die 2) Failover: Beim Ausfall eines Knotens kann ein an- Verfugbarkeit¨ der Technologie wird von Linbit, der derer Cluster-Partner ubernehmen.¨ Dieser Vorgang wird als Firma hinter DRBD, mit 99,999% angegeben [4]. Das Failover bezeichnet. Abbildung 15 veranschaulicht diesen entspricht einer Ausfallzeit von circa 5 Minuten pro Jahr. Vorgang. Dabei wird die Dopplung der Systeme ausgenutzt, somit Durch das, oft in Verbindung mit DRBD verwendete, kann auch bei dieser hohen Verfugbarkeit¨ theoretisch immer Werkzeug Heartbeat kann der Ausfall eines Knotens durch ein System ausgefallen oder durch Wartungsarbeiten nicht einen anderen Cluster-Partner festgestellt werden. In der verfugbar¨ sein. oberen Halfte¨ der Abbildung wird ein korrekt funktionieren- In der Tabelle I werden die vom BSI vorgestellten des Cluster gezeigt. Der Primarknoten¨ (Node1) repliziert Verfugbarkeitsklassen¨ aufgezahlt.¨ Den Zahlen von Lin- dabei seine Daten in Echtzeit auf den Sekundarknoten¨ bit zufolge, erreicht DRBD mit seiner Verfugbarkeit¨ von (Node2). Wird der Ausfall des Primarknotens¨ vom 99,999% die Verfugbarkeitsklasse¨ 4 und wird somit als Sekundarknoten¨ festgestellt, ubernimmt¨ dieser die Rolle hochst¨ Verfugbar¨ eingestuft. des Primarknotens¨ (Failover). Ab dem Zeitpunkt, an dem Im Kontext von Verfugbarkeiten¨ muss allerdings beachtet werden, dass sich die angegebene Verfugbarkeit¨ auf die 3http://linux-ha.org 4http://linux-ha.org/wiki/Heartbeat 2 commercial-of-the-shelf “ 5Darstellung angelehnt an [1] ”

114 D. Blockorientierte Gerate¨ In Unix-basierten Betriebssysteme werden zwei Arten von E/A-Geraten¨ 6 unterschieden[6]. Zum einen gibt es Ze- ichenorientierte Gerate¨ die Daten byteweise als Datenstrom ubertragen.¨ Dazu gehoren¨ beispielsweise Drucker, Terminals und Computer-Mause.¨ Zum Anderen gibt es Blockorientierte Gerate¨ die Daten als sogenannte Blocke¨ ubertragen¨ und speichern. Das typische Beispiel fur¨ ein solches Gerat¨ ist die Festplatte. Das DRBD-Kernelmodul stellt ein virtuelles Block- Device (Festplattentreiber) zur Verfugung¨ [1], der die eigentliche Festplatte bzw. Partition kapselt. Die Kommu- Abbildung 1: Knotenausfall bei DRBD nikation mit der Festplatte lauft¨ also ausschließlich uber¨ das DRBD-Device.

E. Ahnliche¨ Ansatze¨ Node1 wieder zur Verfugung¨ steht und wiederhergestellt Fur¨ andere Unix-basierte Betriebssysteme stehen vergle- ist, kann er wieder ubernehmen.¨ Dieser Vorgang wird als ichbare Technologien bereit. Das FreeBSD-Projekt verfolgt Failback bezeichnet. Wenn beide Systeme gleich performant mit HAST7 (Highly Available STorage) das gleiche Ziel wie sind, ist der Failback optional, bei verschieden performanten DRBD. Durch die stark symbiotische Beziehung zwischen Systemen ist das zuruckfallen¨ sinnvoll. den *BSD-Projekten, ist davon auszugehen, dass sich diese Technologie auch bei anderen BSD-Distributionen durchset- zen wird. C. Replikation Auch das von Oracle/Sun Microsystems entwickelte, Unter (Daten-) Replikation wird die mehrfache und quelloffene Betriebsystem OpenSolaris bietet seit Herb- 8 dadurch redundante, Speicherung von Daten verstanden. st 2009 mit AVS (AVailability Suite) ebenfalls eine entsprechende Technologie an. Mit der Replikation konnen¨ vier Ziele verfolgt werden: Ob die Firma Linbit selbst uber¨ eine Portierung von • Lokalitat:¨ Die Daten werden repliziert, um sie naher¨ DRBD auf andere Betriebssysteme nachdenkt, ist nicht beim Verbraucher zu halten. So kann die Latenzzeit bekannt. der Ubertragung¨ und die Abhangigkeit¨ von der Netzw- Die Ankundigung¨ It’s coming: DRBD for Windows“[7] ” erkinfrastruktur verringert werden. stellte sich im Nachhinein als April-Scherz heraus. Trotzdem • Skalierbarkeit: Eine Datenreplikation kann dazu einge- ist die Umsetzung des DRBD-Konzepts prinzipiell auch auf setzt werden, ein System an wachsende Anforderun- Windows denkbar. Da, wie spater¨ genauer beschrieben, dazu gen anzupassen. Solche Systeme sind in der Regel nur eine Festplatte oder Partition von einem virtuellen Gerat¨ nicht unendlich hoch skalierbar, da die Replikation gekapselt wird. Ein entsprechender Geratetreiber¨ ware¨ auch als solche naturlich¨ auch durchgefuhrt¨ und verwaltet fur¨ die Windows-Betriebssysteme moglich.¨ werden muss. • Verfugbarkeit:¨ Verbesserung der standigen¨ Erreich- III.REPLIKATION MIT DRBD barkeit eines Service. DRBD bietet die Moglichkeit,¨ Daten wahrend¨ der • Zuverlassigkeit:¨ Die Eigenschaft Zuverlassigkeit¨ Schreibvorgange¨ des Betriebssystems zu replizieren. Ab dem beschreibt die durchgangige¨ Funktionalitat¨ eines Kapitel III-A wird der konzeptionelle Aufbau, sowie die Service. Schichten des I/O-Stacks genauer beschrieben. In diesem Der Einsatz von Replikation zur Verbesserung der Zu- Kapitel werden die Grundlagen und Eigenschaften der verlassigkeit¨ und Verfugbarkeit¨ gilt als einer der Haupt- Datenreplikation mit DRBD erortert.¨ grunde¨ fur¨ die Datenreplikation [2]. So ist es moglich¨ bei Bei dem DRBD-Ansatz handelt es sich um ein synchrones einem Systemausfall mit dem Replikat weiter zu arbeiten. Replikationsverfahren. Das bedeutet, dass alle Knoten gle- ichzeitig synchronisiert werden. Eine Inkonsistenz zwis- Durch die mehrfache Speicherung der zu replizierenden chen den Kopien tritt also nur wahrend¨ der Schreibzu- Daten, konnen¨ Konsistenz-Probleme entstehen, weswegen griffe auf, die aber atomar abgehandelt werden. Durch gerade bei der Aktualisierung der Daten ein erheblicher ¨ Aufwand betrieben werden muss. Bei jeder Anderung muss 6Eingabe/Ausgabe-Gerate¨ gewahrleistet¨ werden, dass alle Kopien entsprechend auf den 7http://wiki.freebsd.org/HAST neusten Stand gebracht werden. 8http://hub.opensolaris.org/bin/view/Project+avs/

115 diese starke Konsistenz ist DRBD gut geeignet um beispiel- A. Aufbau eines DRBD-Clusters sweise Datenbanken zu replizieren. Dabei wurden¨ sogar DRBD-Cluster konnten,¨ grundsatzlich,¨ aus beliebig vielen schon Anforderungen an eine verteilte Datenbank erfullt,¨ Cluster-Partnern bestehen, allerdings sollte beachtet werden, da die Replikation der Datenbank aus Benutzersicht trans- dass jede zusatzliche¨ Replikation mit Performanceeinbußen parent ablauft.¨ In diesem Zusammenhang wir oft von Rep- bezahlt werden muss. Dies gilt insbesondere, wenn das likationstransparenz gesprochen. Diese Eigenschaft bietet Protokoll C (siehe: III-B2) verwendet wird. den Vorteil, dass sich der Benutzer keine Gedanken uber¨ Um die Erklarung¨ des DRBD-Aufbaus nicht unnotig¨ zu das Verhalten der Replikationstechnologie machen muss, erschweren, gehen wir von einem Standard DRBD-Cluster, wenn er beispielsweise DB-Spaces oder eine Datenbank- bestehend aus zwei Computern, aus. Fragmentierung einrichten und verwenden mochte.¨ Zum Erreichen dieser Eigenschaften wird das ROWA- Zur Zeit werden in DBRD zwei verschiedene Kon- single-primary-mode Verfahren (read one, write all)[2] von DRBD umgeset- figurationen angeboten, und dual-primary-mode single-primary-mode zt. Das bedeutet, dass bei Schreibzugriffen alle Replikate . Der geandert¨ werden mussen.¨ Dafur¨ reicht es aber aus, bei erlaubt nur einen einzigen primaren¨ Knoten im Cluster, dual-primary-mode einem Lesezugriff nur auf der lokalen Festplatte zu lesen. wobei der hingegen bis zu zwei Der Overhead beim Lesen ist also wesentlich geringer als Primarknoten¨ zulasst.¨ Der Einfachheit halber, gehen wir single-primary-mode bei Schreibzugriffen. Wodurch sich die DRBD-Replikation von einer -Konfiguration aus. So besonders gut fur¨ Systeme eignet, bei denen hauptsachlich¨ ubernimmt¨ einer die Rolle des Primarknotens¨ (Knoten1), Lesezugriffe stattfinden. in der Regel der leistungsfahigere,¨ der Andere wird als Es wurde bereits beschrieben, dass es vier Hauptgrunde¨ Sekundarknoten¨ (Knoten2) eingerichtet. Abbildung 2 zeigt fur¨ Replikation gibt. Im Folgenden werden wir beschreiben, den Aufbau in einer vereinfachten Darstellung. welche dieser Replikationsziele von DRBD umgesetzt wer- den bzw. fur¨ welche es geeignet ist. Lokalitat:¨ Die Knoten konnten¨ grundsatzlich¨ weit voneinander entfernt betrieben werden. Eine Verbindung uber¨ das Internet ist vollkommen ausreichend. Allerdings wurde¨ daraus eine erhebliche Verlangsamung, bedingt durch die Latenzzeit der Netzwerkverbindung, bei Schreibzugriff- en auf das DRBD-Device entstehen. Bei der initialen Syn- chronisation fallt¨ dieses Phanomen¨ ganz besonders stark ins Gewicht, da bei diesem Vorgang das komplette DRBD- Device repliziert wird. Skalierbarkeit: Das DRBD-System selbst skaliert nicht, da jeder weitere DRBD-Partner mit zusatzlichem¨ Replika- Abbildung 2: DRBD Aufbau, vereinfachte Darstellung [3] tionsoverhead verbunden ist. Dadurch geht die Performance sehr schnell in die Knie. Die Abbildung verdeutlicht, wie die DRBD- Zuverlassigkeit¨ und Verfugbarkeit:¨ Bei der Zu- Gerateschichten¨ uber¨ das Netzwerk (Ethernet) miteinander verlassigkeit¨ und Verfugbarkeit,¨ zeigt sich die Starke¨ verbunden sind. Abhangig¨ von dem gewahlten¨ von DRBD. So ist es relativ einfach moglich,¨ die Ubertragungsprotokoll¨ (siehe: III-B2), werden die Daten Daten auf einem anderen Computer zu replizieren um synchron oder asynchron auf die replizierten Festplatten somit beim Ausfall des Primarknotens¨ einfach mit dem oder Partitionen geschrieben. Vor dem Aufbau eines DRBD- Sekundarknoten¨ weiter zu machen. Im Vergleich zu einem Clusters sollte uberlegt¨ werden, ob fur¨ die Replikation Hochverfugbarkeitscluster¨ mit einer Shared Device-Losung¨ eine spezielle Netzwerkverbindung verwendet werden existiert hier in der Datenhaltung kein Single Point of soll. Dazu benotigt¨ jeder der Cluster-Partner eine zweite Failure. Netzwerkkarte. Die Verbindung konnte¨ dann mit einem Ein DRBD-Cluster kann aus mehr als zwei Partnern einfachen Crossoverkabel hergestellt werden. Durch die bestehen. Allerdings sollte beachtet werden, dass sich das direkte Verbindung soll die Replikation nicht durch ein Gesamtsystem durch mehr als eine Replikation weiter ver- erhohtes¨ Traffic-Aufkommen im Netzwerk ausgebremst langsamt, da sich die Latenz beim Schreiben der Kopien auf werden. Eine solche, direkte Verbindung ist nur dann die maximale Antwortzeit bezieht. sinnvoll, wenn die DRBD-Partner in unmittelbarer Nahe¨ Des weiteren werden Metadaten von DRBD angelegt, die stehen. Die anderen Schichten des I/O-Stacks werden weiter zur Verwaltung der Replikate und der Wiederherstellung unten betrachtet. nach einem Fehlerfall dienen. Der resultierende Speicher- Einer der großen Vorteile von DRBD besteht darin, dass platzverbrauch ist allerdings vernachlassigbar.¨ das System aus heterogenen Bestandteilen aufgebaut sein

116 kann. Das bezieht sich nicht nur auf die Hardware, sondern Ein weiterer interessanter Aspekt von DRBD besteht beispielsweise auch auf die Linux-Distribution. darin, dass die Schichten, auf die der Benutzer normaler- 1) Konfiguration und Administration: Zur weise Einfluss nimmt, uber¨ dem DRBD-Geratetreiber¨ liegen. Einrichtung wird nur eine einzige Konfigurationsdatei Dadurch kann das Dateisystem frei gewahlt¨ werden. Im (/erc/dbrd.conf) benotigt.¨ Diese Konfiguration Abschnitt III-B1 werden die Auswirkungen der Dateisys- ist verhaltnism¨ aßig¨ einfach und intuitiv aufgebaut. Die temauswahl, anhand von zwei Beispielen beschrieben. common{...}-Sektion enthalt¨ allgemeingultige¨ Angaben. Des weiteren ist DRBD vollkommen unabhangig¨ von Zum Beispiel kann hier das Ubertragungsprotokoll¨ oder den Programmen (bzw. Service) die die replizierten Daten die I/O-Error-Strategie fur¨ alle Ressourcen einheitlich verwenden. In der FAQ von Linbit [9] wird sogar von festgelegt werden. Des weiteren muss noch eine applikationsagnostisch“ gesprochen. Was noch einmal un- ” resource{...}-Sektion angegeben werden, die die terstreicht, dass ein Programm nichts von der Replikation Replikationspartner definiert. Im Anhang ist die von uns im Hintergrund merkt und somit unabhangig¨ ist. verwendete Konfiguration angefugt.¨ 1) Dateisysteme: Bei DRBD konnen¨ eigentlich alle vom Fur¨ die Administration werden drei Werkzeuge zur Linux-Kernel bereitgestellten Dateisysteme verwendet wer- Verfugung¨ gestellt, wovon eigentlich nur drbdadm den. Allerdings sollte das Dateisystem zumindest Jour- regelmaßig¨ verwendet wird. Das Programm liest die Konfig- naling unterstutzen.¨ Diese Funktionalitat¨ sorgt dafur,¨ dass urationsdatei aus und verarbeitet die darin enthaltenen Be- das Dateisystem nach einem Systemabsturz wieder ko- fehle, indem es die anderen beiden Werkzeuge drbdsetup rrekt hergestellt werden kann. Dadurch kann auf lang- und drbdmeta mit entsprechenden Ubergabeparametern¨ wierige Konsistenz-Checks verzichtet werden und das Sys- aufruft. Prinzipiell kann das Werkzeug drbdsetup auch tem schneller wieder im DRBD-Cluster bereitgestellt wer- direkt verwendet werden. Dies war aber beispielsweise in den. Am Anfang der DRBD-Entwicklung9 war das noch unserem Versuchsaufbau nicht notig.¨ Das letzte Werkzeug, eine großere¨ Problematik. Heute sind fast alle verfugbaren¨ sollte eigentlich nicht manuell aufgerufen werden [8]. Dateisysteme Journaling-fahig.¨ Es versteht sich von selbst, Selbstverstandlich¨ konnen¨ per cat /proc/drbd jed- dass auf beiden DRBD-Partnern das gleiche Dateisystem erzeit Informationen uber¨ den Zustand des DRBD-Gerates¨ vorliegt, da die Replikation in einer I/O-Stack-Schicht un- aus dem Kernel abgefragt werden. terhalb des Dateisystems vorgenommen wird. B. DRBD I/O-Stack Im Folgenden werden drei verschiedene, beispielhafte Dateisysteme vorgestellt und die Auswirkungen auf DRBD Der I/O-Stack beschreibt die verschiedenen Schichten aufgezeigt. die bei einer Eingabe- oder Ausgabe-Operation eines E/A- Beispiel 1: ext3: ext3 third extended Gerates¨ durchlaufen werden mussen.¨ In Abbildung 3 werden Das Dateisystem ( filesystem das die Schichten des DRBD I/O-Stacks dargestellt [1]. ) ist Standard-Dateidateisystem von Linux. Ext3 ist ein sehr ausgereiftes Journaling-Dateisystem und eignet sich daher fur¨ den Einsatz mit DRBD. Es ist auch moglich,¨ dass das Dateisystem sowohl auf dem Primarknoten,¨ als auch auf dem Sekundarknoten¨ einge- bunden wird. Dazu muss die Einstellung dual-primary mode verwendet werden. Wie zu vermuten ist, werden so beide Knoten zu Primarknoten.¨ Allerdings sollte von dieser Moglichkeit¨ abgesehen werden, da ext3 keinerlei Sperr-Mechanismen unterstutzt.¨ Das bedeutet, dass der letzte Schreibvorgang alle anderen Anderungen,¨ seit die Datei geoffnet¨ wurde, uberschreibt.¨ Gerade beim Beispiel einer Datenbank, die ihre Daten auf dem DRBD-Device ablegt, ist ein solches Verhalten in inakzeptabel. Seit der Kernel-Version 2.6.28 steht der Nachfolger ext4 bereit. Allerdings wird die neue Version noch von wenigen Distributionen empfohlen. Abbildung 3: DRBD: I/O-Stack Beispiel 2: GFS: Bei GFS (Global File System) han- delt es sich um ein sogenanntes Cluster-Dateisystem. Diese Die unterste Schicht bildet dabei die konkrete Festplatte bieten den Vorteil, dass mehrere Cluster-Partner gleichzeitig und ist die einzige Hardwareschicht. Der daruber¨ liegende, auf das Dateisystem zugreifen konnen.¨ graue Kasten zeigt welche Schichten sich im Kernel Space Um DRBD in Verbindung mit GFS zu benutzen muss befinden. Die Schichtendarstellung zeigt, dass der DRBD- Geratetreiber¨ die konkrete Festplatte kapselt. 9Die Diplomarbeit von Philipp Reisner stammt aus dem Jahr 2000.

117 die Konfiguration auf dual-primary mode umgestellt en korrekt geschrieben wurden, wurde¨ die Datenbank die werden [8]. Im Gegensatz zu ext3 besteht bei GFS nicht Transaktion erfolgreich abschließen. das Risiko, dass Daten ungewollt uberschrieben¨ werden. Der Protokoll A: Ein Schreibvorgang ist abgeschlossen, Distributed Lock Manager verwaltet dabei die Zugriffe der wenn die Daten auf der lokalen Festplatte des Primarknotens¨ Cluster-Partner [8]. geschrieben wurden und die Daten an den Sekundarknoten¨ Beispiel 3: NFS: Wenn die Rede von Dateisystemen, verschickt wurden. Dieses Protokoll kann zu Inkonsisten- ” die von mehreren Knoten gemountet werden sollen“ ist, liegt zen zwischen den DRBD-Partner fuhren,¨ wenn die Dat- die Idee von verteilten Dateisystemen nahe. Allerdings sollte enubertragung¨ zwischen den Knoten gestort¨ wurde. Ger- hier beachtet werden, dass das verteilte Dateisystem NFS ade bei transaktionsorientierten Systemen ist dieses Pro- (Network File System) beispielsweise nur ein Dienst ist, tokoll deswegen nicht zu gebrauchen. In unserem Beispiel der ein lokales (normales) Dateisystem uber¨ ein Netzw- kann das Protokoll gegen die ACID-Regel verstoßen. In erk bereitstellt [2]. Dabei ist die Verwaltung von Sperren diesem Fehlerszenario wurden¨ die Daten durch einen Net- Aufgabe des bereitstellenden Betriebssystems. Bei einem zwerkfehler nicht korrekt ubertragen,¨ wenn beispielsweise Failover mussten¨ die Sperren also alle aufgehoben und bei der Primarknoten¨ noch vor einem erneuten Sendeversuch10 dem Ersatzknoten neu angefordert werden. ausfallt.¨ So stehen die Transaktionsanderungen¨ nicht mehr Die Verwendung von NFS in Verbindung mit DRBD ist bereit. Wir haben also einen Verstoß gegen die Durability- aber prinzipiell moglich.¨ Eigenschaft. Wurden die Daten nur zum Teil ubertragen,¨ ist 2) Kommunikation: Fur¨ die Netzwerkkommunikation es fast noch schlimmer, da gegen die Consistency- sowie die stellt DRBD drei verschiedene Protokolle zur Verfugung.¨ Atomic-Eigenschaft (all-or-nothing-Regel) verstoßen wurde. Diese Protokolle unterscheiden sich dabei durch unter- Dieses Protokoll hat trotz den eben beschriebenen schiedliche [. . . ] Abstufungen des Durchsatz-Konsistenz- Nachteilen seine Existenzberechtigung, da die Replikation ” Kompromisses [. . . ]“ [1]. Bei der Verwendung von DRBD so grundsatzlich¨ besonders performant ist. muss man sich also entweder fur¨ einen hoheren¨ Durch- Protokoll B: Dieses Protokoll bietet mehr Konsistenz satz (Performance) oder eine hohe physikalische Konsistenz als Protokoll A. Dies geht allerdings auf Kosten der Per- entschieden. Abbildung 4 visualisiert die Unterschiede zwis- formance. Der Schreibvorgang ist erst nach dem Schreiben chen den Protokollen. auf die lokale Festplatte des Primarknoten¨ und nach einer Empfangsbestatigung¨ des Sekundarknotens¨ abgeschlossen. Ein Ubertragungsproblem¨ kann also ausgeschlossen wer- den. Fallt¨ nur einer der DRBD-Partner aus, bleibt die Transaktionssemantik erhalten. Trotzdem kann es zu Inkon- sistenzen kommen. Wenn beide Knoten ausfallen und der Sekundarknoten¨ die Daten zwar empfangen, aber noch nicht auf das DRBD-Device geschrieben hatte. Wenn der Sekundarknoten¨ die Daten durch den Ausfall verloren hat und der primare¨ Knoten nicht bereitsteht, tauschen sich die Rollen und der Sekundar-¨ wird zum Primarenknoten.¨ Die durch die Transaktion geanderten¨ Daten stehen nicht zur Verfugung.¨ Es kann also in einem worst case Szenario, zu den gleichen Fehlern wie bei Protokoll A kommen. Protokoll C: Das letzte Protokoll bietet eine starke Konsistenz, das bedeutet, dass die Daten auf allen Knoten immer gleich (synchron) sind. Auch diese Konsistenz- Verbesserung muss mit Performance-Einbußen bezahlt wer- Abbildung 4: Vergleich der Protokolle A, B, C den. Bei diesem Protokoll ist der Schreibvorgang nach dem Schreiben auf die lokale Festplatte des Primarknotens¨ und Die folgende Beschreibung der drei Protokolle zeigt der Bestatigung¨ des erfolgreichen Schreibvorgangs auf dem wie die beiden Eigenschaften miteinander korrelieren. Die Sekundarknoten¨ abgeschlossen. Ubertragungsarten¨ wurden bereits in der Diplomarbeit [1] C. DRBD im Vergleich von Philipp Reisner vorgestellt und beschrieben. Laut Aussage von Linbit ist DRBD heute der [. . . ] de- In den Protokollbeschreibungen wird anhand eines ein- ” fachen Beispiels die Eigenschaften Durchsatz und Konsis- facto-Standard in Sachen Datenreplikation“ [4]. Zur Daten- tenz beschrieben. Angenommen auf dem DRBD-Device legt replikation konnen¨ aber auch verschiedene andere Technolo- eine Datenbank ihre Daten ab. Wenn jetzt eine Transaktion 10Protokolle bauen auf TCP auf. Diese Protokollschicht sorgt fur¨ ein durchgefuhrt¨ wird und DRBD zuruckmeldet,¨ dass alle Dat- erneutes senden, falls keine Empfangsbestatigung¨ zuruckgesendet¨ wird.

118 gien eingesetzt werden. Eine Auswahl wird im folgenden 3) DRBD vs. Log Shipping: Im Kontext von verteilten vorgestellt und mit DRBD verglichen. Dazu werden Unter- Datenbanken gibt es einen Replikationskonzept, dass als Log schiede zwischen den Konzepten dargestellt, um die Tech- Shipping bezeichnet wird. Das Verfahren gibt es sowohl syn- nologien voneinander abzugrenzen. Dabei werden allerd- chron als auch asynchron. Von etwas Entfernung betrachtet, ings nur Ansatze¨ vorgestellt, die unabhangig¨ von konkreten haben die Ansatze¨ DRBD und Log Shipping oberflachliche¨ Applikationen verwendet werden konnen.¨ Programme wie Ahnlichkeiten.¨ Bei beiden werden beispielsweise, die zu beispielsweise Oracle Dataguard werden in dieser Ausar- replizierenden Daten, auf einem zweiten Knoten gespiegelt. beitung also nicht behandelt. Der Unterschied liegt darin, dass Log Shipping, wie der 1) DRBD vs. RAID: Der Begriff RAID11 beschreibt die Name vermuten lasst,¨ den Transaction Log verschickt und logische Kopplung von Festplatten. Dabei geht es entweder auf der Datenbank des zweiten Knotens ausfuhrt.¨ DRBD darum mehrere Festplatten zu einer großeren¨ zusammen operiert hingegen weiter unten im I/O-Stack und ist somit zu schließen (RAID0) oder eine Spiegelung12 von Daten auch nicht von einem konkreten Programm abhangig.¨ Außer- (RAID1). Eine Spiegelung entspricht also einer Art Replika- dem werden die Daten der Schreibzugriffe, anstatt der tion innerhalb der Rechnergrenzen. Weitere RAID-Formen Transaktionslogs repliziert. werden hier nicht betrachtet. 4) DRBD vs. NBD: Bei der Recherche zu DRBD oft Ein RAID kann zwar teilweise Datensicherheit bei einem auf das sogenannte NBD (Network Block Device), dass Festplattencrash gewahrleisten,¨ allerdings bleibt der Com- angeblich ein ahnliches¨ Konzept verfolgt. Allerdings geht puter selbst, indem das RAID installiert ist ein Single Point es hierbei nicht um Datenreplikation sondern um Netzlaufw- of Failure. Diese Datenredundanz kann also bei einem erke, die von einem NBD-Server bereitgestellt werden. Das Systemausfall, beispielsweise durch einen Hardwaredefekt, Konzept der virtuellen Festplatte ist die einzige Ahnlichkeit¨ keine Sicherheit bieten. mit DRBD und wird deswegen der Vollstandigkeit¨ halber Gewissermaßen kann man sich DRBD als ein, uber¨ ein erwahnt.¨ Ein naherer¨ Vergleich erubrigt¨ sich. Netzwerk verteiltes, RAID1 vorstellen. 5) DRBD vs. ZFS: Das von Oracle bzw. Sun Microsys- 2) DRBD vs. Shared Storage Cluster: Neben DRBD tems entwickelte Dateisystem ZFS (ursprunglich:¨ Zettabyte gibt es noch weitere Ansatze¨ um Hochverfugbarkeitscluster¨ File System) ermoglicht¨ ebenfalls eine Datenreplikation. aufzubauen. Ein Beispiel waren¨ sogenannte Shared Storage Im Unterschied zu DRBD handelt es sich nicht um eine ” Cluster“, die sich Speicherressourcen teilen. Abbildung 5 unabhangige¨ Replikation auf Blockebene, da die Replikation zeigt den grundlegenden Aufbau. durch das ZFS Storage Pool Layer, vorgenommen wird. ZFS ist ein, zwar vergleichsweise einfach zu verwen- dendes, aber im inneren ein hoch komplexes, Dateisystem. Eine detaillierterer Vergleich zwischen DRBD und dem Dateisystem wurde¨ an dieser Stelle zu weit fuhren.¨

IV. PROBLEMBEHANDLUNG

Abbildung 5: HA-Ansatz mit einem Shared Device Replikation soll die Verfugbarkeit¨ des gesamten Sys- tems bei Ausfallen¨ einzelner Knoten erhalten, so werden bei DRBD verschiedene Mechanismen beschrieben, die die Beim Ausfall eines Knotens ubernimmt¨ ein anderer mit einem Ausfall einhergehenden Probleme kompensieren Cluster-Partner. Dabei operieren aber alle Knoten auf den konnen.¨ Ebenso ergeben sich durch den Versand aller Daten gleichen Daten, die von dem Shared Device bereitgestellt uber¨ die Netzinfrastruktur, im Bereich Datensicherheit und werden. Allerdings hat dieser Ansatz eine fast schon fa- Datenkonsistenz Risiken, die bei einem produktiven Ein- tale Schwache,¨ da durch die Verwendung einer gemeinsam satz von DRBD bedacht werden mussen.¨ Die moglichen¨ genutzten Ressource ebenfalls eine Singe Point of Failure- Probleme und Losungsans¨ atze,¨ die durch das DRBD-Paket Situation entsteht. geboten werden, wollen wir im Folgenden kurz behandeln. Ein großer Performancevorteil, gegenuber¨ DRBD, ist nicht zu erwarten, da auch hier ein Mehraufwand bei A. Risiken den Schreib- und Lesezugriffen entsteht. Der Grund dafur¨ ist, dass Zugriffe von mehreren Cluster-Partnern auf das Bei der Datenreplikation uber¨ ein Netzwerk, kann es Shared Device koordiniert werden mussen,¨ damit nicht zu Fehler und Risiken kommen. Zum einen kann es zu versehentlich Daten uberschrieben¨ werden. Ubertragungsfehlern¨ kommen, zum anderen konnen¨ die Dat- en leicht abgehorcht werden. Bei einer Replikation von 11Redundant Array of Independent Disks sensiblen Daten darf aber weder die Zuverlassigkeit¨ noch 12engl. Mirroring“ die Sicherheit beeintrachtigt¨ werden. ”

119 1) Datenverifikation: Bei jeder Netzwerkkommunikation Call-local-io-error: Diese Einstellung ermoglicht¨ den kann es zu Ubertragungsfehlern¨ kommen. Dieser Umstand Aufruf eines eigenen I/O-Errorhandlers. Dieser muss in der ist aber bei der Datenreplikation nicht tolerierbar. Fehler Sektion handler{...} aufgefuhrt¨ werden, um eine selbst wurden¨ moglicherweise¨ nicht erkannt und direkt auf die definierte Abhandlungstrategie zu verfolgen. Festplatte geschrieben. Dadurch wurde¨ eine Inkonsistenz 2) Ausfall eines Sekundarknotens:¨ Fallt¨ der sekundare¨ zwischen den Kopien bestehen. Um hier eine hohere¨ Zu- Knoten des Systems aus, schaltet der verbliebene verlassigkeit¨ zu gewahrleisten,¨ konnen¨ verschiedene Ver- Primarknoten¨ in den sogenannten disconnected ifikationsalgorithmen verwendet werden. Dabei kann im mode um. Ab dem Eintritt in diesen Modus werden alle Normalfall zwischen sha1, md5 und crc32c gewahlt¨ werden. ubermittelten¨ Schreibzugriffe lokal auf das Backend- Diese Algorithmen sind zwar geeignet um Fehler zu finden, Device, also die assoziierte Partition, und in ein aber sollten nicht mehr aus Sicherheitsgrunden¨ eingesetzt spezielles Log, der Quick Sync Bitmap, geschrieben. werden, da sie zumindest teilweise als unsicher gelten. Diese bildet den gesamten Blockbereich des DRBD-Gerats¨ 2) Datensicherheit: Gerade bei Firmen werden oft hoch in einer Bitmap ab, in dem es Anderungen,¨ also neu zu sensible Daten gespeichert, aber auch andere Grunde¨ konnen¨ synchronisierende Blocke,¨ durch ein auf 1“ gesetztes Bit ” dafur¨ sprechen, die Datenubertragung¨ absichern zu wollen. reprasentiert.¨ Durch diesen Mitschnitt der, zur Downtime Am naheliegensten ist die Verwendung eines SSH-Tunnels des Sekundarknotens¨ modifizierten Blocke,¨ ermoglicht¨ die (Secure Shell) (normalerweise verwendet DRBD den Port schnelle Resynchronisierung durch die gezielte Ubertragung¨ 7788) oder eines VPN (Virtual Private Network). Ein weit- der geanderten¨ Blocke.¨ Die Resynchronisation verlauft¨ erer Ansatz ist die Verschlusselung¨ des Dateisystems, da die vollstandig¨ im Hintergrund. Das bedeutet, dass System ist Verschlusselung¨ so in einer Schicht uber¨ dem DRBD-Device weiterhin voll einsatzfahig.¨ ubernommen¨ wird, sind die Daten bereits verschlusselt,¨ 3) Ausfall des Primarknotens:¨ Eine der großten¨ Gefahren wenn sie repliziert werden. bildet der Ausfall des primaren¨ Knotens. Da uber¨ ihn die Replikation durchgefuhrt¨ werden soll, ist er der B. Verhalten im Fehlerfall eigentliche Akteur, der in Interaktion mit der Clientan- Wir erkennen bei einem DRBD Systemaufbau drei wendung steht. Ein Ausfall wird zunachst¨ vom Replika- Hauptszenarien zum Thema Ausfall in einem DRBD- tionsaufbau selbst bemerkt, so stellt der Sekundarknoten¨ Clustersystem. Einerseits der tatsachliche¨ Ausfall einer der fest, dass der Primarknoten¨ offline ist und betritt den jeweiligen Replikationspartner, andererseits der, durch Kom- disconnected mode. Durch einen geeigneten Cluster- munikationsfehler zwischen Primar-¨ und Sekundarknoten¨ manager, wie beispielsweise Heartbeat, ist es moglich¨ bei auftretende, scheinbare Ausfall des jeweiligen Partners (Split einem Ausfall den Primarknoten¨ durch den Sekundarknoten¨ Brain). DRBD stellt dem Anwender verschiedene Mecha- zu ersetzen und so die Verfugbarkeit¨ des Systems wieder- nismen zur Verfugung¨ diesen Problemen zu entgegnen. Im herzustellen. Kehrt der ursprungliche¨ Primarknoten¨ in das Folgenden wollen wir diese Fehlerfalle¨ genau betrachten und System zuruck¨ ist er der neue Sekundarknoten¨ und die beschreiben. Resynchronisation beginnt wie nach einem Ausfall des 1) DRBD-interner Fehler: DRBD repliziert Daten durch Sekundarknotens.¨ Beim Primarknotenausfall¨ kann es im ein virtuelles Blockdevice, welches mit einer logischen laufenden Betrieb sein, dass eine Schreibanweisung vom oder auch physikalischen Partition einer Festplatte assoziiert Sekundarknoten¨ zum Ausfallzeitpunkt noch nicht bestatigt¨ ist. Es ist somit immer moglich,¨ dass diese physikalische wurde. Bei der Wiederherstellung des Knotens kann dies Gerat¨ auf Grund eines Fehlers ausfallt.¨ DRBD bietet insge- somit zu inkonsistenten Daten Blocken¨ fuhren.¨ Dieses Prob- samt drei Moglichkeiten¨ mit einer solchen Fehlersituation lem lost¨ DRBD durch ein, in den Metadaten abgelegtes, Ak- umzugehen. Die einzelnen Moglichkeiten¨ mussen¨ in der tivitatsprotokoll.¨ Dieses verzeichnet die kurzlich¨ veranderten¨ drbd.conf gezielt konfiguriert werden, da sonst jeweils Blocke¨ bzw. Blockbereiche. Diese werden als textithot“ ” die Standardeinstellung verwendet wird. In der Untersektion eingestuft und lassen sich im Falle eines unvollstandigen¨ disk{...} bezieht sich der Parameter on-io-error Schreibvorgangs im all-or-nothing-Prinzip zuruckrollen.¨ Die auf die jeweilige Behandlungsstrategie. Im Folgenden sollen Große¨ des Activelogs gibt also direkt die Weite der diese kurz erlautert¨ sein. zuruckrollbaren¨ Schreibvorgange¨ an. Detach: Bei jeglichem Festplattenfehler wird die As- 4) Split Brain Problem: Der Begriff Split Brain stammt soziation des DRBD-Device gelost¨ und der diskless ursprunglich¨ aus der Medizin. Es handelt sich dabei um eine modus betreten. Behandlungsmethode fur¨ Epileptiker, bei denen der sogenan- Pass-on: Bei dieser Strategie leitet DRBD alle auftre- nte Balken im Gehirn gekappt wird. Dadurch konnen¨ die tenden Fehler zur Behandlung an die hoheren¨ Ebenen weiter. beiden Hirnhalften¨ nicht mehr miteinander kommunizieren. Beim primaren¨ Knoten ware¨ dies das gemountete Dateisys- Was in der Medizin Hoffnung geben kann, sorgt in der tem. Bei einem Sekundarknoten¨ werden Fehler ignoriert, da Informatik allerdings fur¨ Kopfzerbrechen. es hier keine hohere¨ Ebene gibt. In Analogie dazu wird im Kontext von Verteilten Sys-

120 temen, auch von einem Split Brain-Problem gesprochen. Große¨ 20 GB gewahlt,¨ um so mit ausreichend großen Daten- Dieses Szenario tritt auf, wenn Knoten eines Clusters ge- mengen arbeiten zu konnen.¨ Die beiden Rechnerknoten sind trennt wurden, ohne dass ein Knoten ausgefallen ist (z.B. uber¨ ein lokales Subnetz verbunden. durch eine Netzwerkfragmentierung). Keiner der beteiligten Knoten weiß, dass der andere Knoten trotzdem noch weiter B. Testfalle¨ funktioniert. Bei Systemen die nicht ausreichend vor dem In [1] wird klar dargestellt, das DRBD kaum Einfluss Split-Brain-Problem geschutzt¨ sind, kann es zum gleichzeit- auf die I/O-Leistung eines System nimmt. So wird im igem Schreiben auf Daten und somit zu schweren Inkonsis- letzten Teil des Handbuchs [8] ein rudimentares¨ Testskript tenzen kommen. beschrieben, dass einen DRBD Versuchsaufbau mit einer DRBD verfolgt zur Auflosung¨ des Split Brain-Problems gewohnlichen¨ Plattenarchitektur auf Leistung testen soll. einen Ansatz auf Basis von Datengenerationen. So Hierbei werden 1000 mal 512 KByte auf jeweils das vergibt ein Replikationspartner, bei jedem Eintritt in die DRBD-Device und eine herkommlich¨ gemountete Platte Primarknotenrolle¨ eine eindeutige Identifikationsnummer, geschrieben. Diese Testreihen erschienen nicht besonders sogenannte UUIDs (Universally Unique IDentifier). Diese aussagekraftig.¨ So wird beispielsweise nicht klar, ob diese beschreibt die momentane Generation von Daten und macht Darstellung von Leistung auch auf hohere¨ Datenmengen es so moglich,¨ zu entscheiden, welcher Knoten die neusten skaliert. Um geeignete Testergebnisse erzeugen zu konnen¨ Daten besitzt. DRBD verwendet zur automatischen Wieder- haben wir uns fur¨ einen umfassenden Benchmark des I/O herstellung nach einer solchen Trennung das Shot the other System entschieden. Hierbei kam das dazu konzipierte ” Node in the Head“-Prinzip. Zur Auswahl des Split Brain Werkzeug Iozone13 zum Einsatz. Die Konfiguration des Victims werden, fur¨ die Wiederherstellung der Konsistenz, Benchmark-Tools wurde so festgelegt, dass Dateien ahnlich¨ drei mogliche¨ Strategien angeboten. dem von [8] vorgeschlagenen Test auf das DRBD Gerat¨ • auf dem stellvertretenden Knoten (vor Ausfall: Sec- geschrieben werden. Dabei erhohen¨ wir nach und nach die ondary) Dateigroße¨ und erhalten so einen Eindruck von Verhalten • auf dem ausgefallenen Knoten (vor Ausfall: Primary) des I/O Systems bei verschiedener Belastung. Als Startgroße¨ • auf dem Knoten, der weniger modifiziert wird wurden 64 kByte gewahlt,¨ der bis zum Endwert von einem Gigabyte erhoht¨ wurde. Dabei wurden die Dateigroßen¨ stets Das sogenannte Split Brain Victim wird also mit den verdoppelt. Iozone fuhrt¨ pro Testgroße¨ zehn Testlaufe¨ durch Anderungen¨ des anderen Knotens uberschrieben.¨ Dieses um mogliche,¨ aussernaturliche¨ Abweichungen zu kompen- Vorgehen senkt die Wahrscheinlichkeit, dass eine Datendi- sieren. Die gemittelten Werte sind in Abbildung 6 und 7 vergenz auftritt. dargestellt.

V. PERFORMANCE TESTS C. Ergebnis Bei DRBD wird die Datenreplikation, wie auch bei an- In den Abbildung 6 und 7 werden die Leistungsergeb- deren Technologien, mit einem Performanceverlust erkauft. nisse der DRBD Protokolle im Bezug auf Dateigroße¨ in Abhangig¨ von der Netzwerklatenz und dem verwendeten Kilobyte und Schreibgeschwindigkeit (KBit pro Sekunde) Protokoll soll der Performanceverlust zwischen 2% bis 50% gegenuber¨ gestellt. Grundsatzlich¨ ist festzustellen, dass alle liegen [1]. In der, im Folgenden beschriebenen, Testumge- drei Leistungsreihen nur wenig voneinander abweichen. bung haben wir einfache Performancetests durchgefuhrt,¨ So ist kaum ein signifikanter Unterschied zwischen Pro- die einen grundlegenden Eindruck von der Replikations- tokoll A und Protokoll B zu erkennen. Protokoll A liegt geschwindigkeit vermitteln sollen. mit seiner Leistung zwar bei kleinen Dateigroßen¨ deut- lich hoher,¨ fallt¨ aber bereits bei eine Großenordnung¨ von A. Testaufbau 512 KB auf das Niveau der beiden anderen Protokolle zuruck.¨ Sowohl beim Lesen als auch beim Schreiben ist Unser Testaufbau umfasst zwei Knoten, mit identischer dieser Effekt zu beobachten. Bei der Interpretation der Hardware. Der primare¨ Knoten wird im Folgenden mit dem Kurven beziehen wir uns auf die Interpretationshilfe der Rechnernamen WORKOHOLIX“ und der Sekundarknoten¨ ” Iozone-Handbuchs [10]. Die in Abbildung 6 zu sehenden mit PANIX“ referenziert. Die betrachtete DRBD-Version ” Leistungskurven bilden verschiedene Leistungsplateaus aus. 8.3 wurde unter Ubuntu 9.10 Server installiert und auf Diese sind als die vom System genutzten, verschiedenen unsere gewunschte¨ Testumgebung konfiguriert. Zur Konfig- Cache und Pufferungsmechanismen zu verstehen. So wird uration wurde die im Anhang gezeigte Konfigurationsdatei zunachst¨ der Prozessorcache ausgenutzt. Dieser genugt¨ mit zugrunde gelegt. Das System wurde zum Testbeginn in steigender Dateigroße¨ nicht mehr aus und der Cachepuffer vollstandig¨ synchronen Zustand uberf¨ uhrt.¨ Das zu unter- des Festplattensystems ubernimmt.¨ Ab der Großenordnung¨ suchende virtuelle Blockdevice, bzw. dessen assoziierte Par- tition, wurde mit dem Dateisystem ext3 formatiert und in der 13http://www.iozone.org

121 Abbildung 6: Schreibvorgange¨ im Vergleich

Abbildung 7: Lesevorgange¨ im Vergleich

512 MB lauft¨ auch dieses Puffersystem uber¨ und die reine und einem Fazit. I/O Leistung wird dargestellt. Interessant ist hierbei, dass alle drei Protokolle den gleichen Endwert von ca. 80000 KBit A. Empfehlung pro Sekunde erreichen. Die Wahl des DRBD Protokolls hat Das Konzept von DRBD uberzeugt¨ durch seine einfache somit keinen merklichen Einfluss auf die I/O-Systemleistung Installation und den geringen administrativen Aufwand. Das und es empfiehlt sich, wie auch von Linbit empfohlen, die Konzept ist leicht verstandlich,¨ sodass im alltaglichen¨ Ge- konsistente Variante C“ der Protokolle zu wahlen.¨ brauch nicht lange nachgedacht werden muss, wie sich eine ” Software in Verbindung mit der DRBD-Replikation verhalt.¨ VI.ZUSAMMENFASSUNG Die folgenden Punkte beschreiben Anforderungen, die fur¨ Wenn auch viele Bereiche des DRBD-Konzepts nur eine Datenreplikation mit DRBD sprechen: grundlegend beschrieben werden konnten, so wurde doch • Einfache Datenreplikation, ohne viel Aufwand klar, dass DRBD ein sehr machtiges¨ Datenreplikation- • Replikation ohne teure/spezielle Komponenten swerkzeug ist. Fur¨ tiefer gehende Informationen konnen¨ • Wenn die Performance eine untergeordnete Rolle spielt verschiedenste Quellen herangezogen werden. Allen voran das DRBD Handbuch [8] und die Diplomarbeit von Philipp Im Gegensatz dazu, ist DRBD nicht geeignet, wenn einer Reisner [1]. der folgenden Punkte zutrifft: Abschließend mochten¨ wir mit einer Empfehlung, in der • Anderes Betriebssystem als Linux wird benotigt¨ wir auch weitere Untersuchungsmoglichkeiten¨ aufzeigen, • Hohe Anzahl an Replikaten benotigt¨

122 DRBD Lokalitat¨ - Es sollte besonders beachtet werden, dass Benutzer- und Skalierbarkeit - Dateisystemfehler sofort auf die Replikante ubertragen¨ wer- Verfugbarkeit¨ X den. Es wird daher dringend empfohlen, trotz einer DRBD- Zuverlassigkeit¨ X Installation eine Backup-Strategie zu verfolgen. Ein DRBD- Tabelle II: DRBD-Replikationsziele Replikat ersetzt kein Backup und befreit somit nicht von der Datensicherungspflicht in Unternehmen. Ein weiterer Kritikpunkt von DRBD-Replikaten statt Backups ist, dass die DRBD-Partner raumlich¨ gesehen oft in unmittelbarer • Nur langsame Netzwerkverbindung zwischen den Nahe¨ zueinander stehen. Somit wirken sich Ausfalle¨ der DRBD-Partnern vorhanden Infrastruktur moglicherweise¨ auf alle DRBD-Partner aus. 1) Ausblick: Die nachste,¨ bereits angekundigte,¨ DRBD- Allerdings wird in diesem Fall auch die Replikation mit Version 9.0 soll mit interessanten neuen Features die Inno- DRBD selbst hinfallig.¨ vationen weiter vorantreiben. Wann diese Version verfugbar¨ sein wird ist bis jetzt unklar. ANHANG Des weiteren gibt es aber auch weitere interessante C. DRBD Installation Ansatze¨ fur¨ weitergehende Untersuchungen: Die Installation unterscheidet sich in den verschiedenen • Vergleich der Replikationsansatze:¨ DRBD, AVS, HAST Linux-Distributionen kaum. Die folgende, kurze Anleitung • DRBD-Replikation fur¨ Windows, durch Virtualisierung beschreibt wie unser Versuchsaufbau eingerichtet wurde. mit XEN oder KVM Wir haben uns fur¨ die Linux-Distribution Ubuntu Server • DRBD-Replikation fur¨ hochverfugbares¨ Cloud- 9.1014 entschieden. Dabei hat vor allem die gute Dokumen- Computing tation in den einschlagigen¨ Ubuntu-Webseiten15 uberzeugt.¨ 2) Weiterfuhrende¨ Tests: Neben den vorgestellten, Die Konfigurationsmoglichkeiten¨ in DRBD sind sehr um- grundlegenden Performance-Tests konnten¨ noch weitere fangreich und wurden¨ den Rahmen dieser Ausarbeitung Einstellungen und Situationen spannende Untersuchungen sprengen. Trotzdem ist eine einfache Installation wie ergeben. Die folgenden Punkte zeigen weitere Moglichkeiten¨ die folgende Anleitung zeigt, recht einfach aufzusetzen. fur¨ einen tiefer gehenden Performance-Test auf: Das offizielle DRBD-Handbuch [8] bietet eine detaillierte • Schreibgeschwindigkeit wenn der Sekundarknoten¨ aus- Beschreibung zu den Konfigurationsmoglichkeiten.¨ gefallen ist. Vorbereitung: Wir gehen davon aus, dass zwei Comput- • Wiederherstellungsgeschwindigkeit wenn ein ausgefal- er mit einer Ubuntu Server 9.10 Installation zur Verfugung¨ lener DRBD-Partner wieder verfugbar¨ ist. stehen. Es sollte sichergestellt sein, dass die beiden Com- • Formatierungsgeschwindigkeiten von unterschiedlichen puter sich uber¨ ein Netzwerk finden konnen.¨ Des weiteren Dateisystemen. sollten mit • Andert¨ sich durch DRBD die Loschgeschwindigkeit?¨ 1 apt −get update && apt −g e t upgrade • Auswirkung auf die Performance wenn die Baumstruk- tur des Dateisystems, etwa durch verschieben eines das System auf den neusten Stand gebracht werden. Fur¨ Ordners mit Unterordnern, geandert¨ wird. die Installation von DRBD werden Root-Rechte benotigt.¨ • Wie stark wirkt sich der Performanceverlust, bei mehr DRBD-Installation: Zu Beginn muss DRBD und die als zwei DRBD-Partnern aus? Administarationswerkzeuge installiert werden: • Unterscheidet sich die Performance beim bisherige DRBD-Ansatz (zusatzliches¨ Kernel-Modul) und der 1 apt −get install drbd8−u t i l s Integration in den Linux-Kernel (ab der Kernelversion 2.6.33)? DRBD-Konfiguration: Nach der Installation kann die • Aufbau von Desaster-Szenarien, um zu prufen,¨ ob Konfiguration von DRBD angegangen werden. Dazu wird DRBD zuverlassig¨ funktioniert die Konfigurationsdatei /etc/drbd.conf bearbeitet. Das Diese Aufzahlung¨ kann nur einen kleinen Uberblick¨ uber¨ folgende Listing zeigt unsere Einstellungen: die verschiedenen Untersuchungsmoglichkeiten¨ geben. 1 B. Fazit 2 common{ 3 p r o t o c o l C; Wie die Tabelle II zeigt, ist die Replikation mit DRBD ist 4 } nicht fur¨ alle, im Kapitel III beschriebenen, Replikationsziele 5 geeignet. 6 r e s o u r c e r0 { Aber dafur¨ ist DRBD ein beachtenswerter Replikation- sansatz, der angenehm einfach und kostengunstig¨ aufgesetzt 14Aktuellste Version bei Beginn dieser Untersuchung werden kann. 15bspw: http://wiki.ubuntuusers.de/drbd

123 7 on workoholix { 8 device /dev/drbd1; 1 c a t / proc / drbd 9 disk /dev/sda3; bequem uberwacht¨ werden. Leider ist die Ausgabe 10 address 141.28.33.13:7788; statisch und aktualisiert sich nicht selbst. 11 meta−disk internal; 12 } LITERATUR 13 on p an i x { [1] P. Reisner, “DRBD - Festplattenspiegelung ubers¨ Netzwerk 14 device /dev/drbd1; fur¨ die Realisierung hochverfugbarer¨ Server unter Linux,” 5 15 disk /dev/sda3; 2000, Diplomarbeit. 16 address 141.28.33.16:7788; 17 meta−disk internal; [2] A. S. Tanenbaum and M. van Steen, Verteilte Systeme: Prinzipien und Paradigmen. Pearson Studium, 11 2007. 18 } 19 s y n c e r { [3] F. Haas, “Im Gleichschritt - Hochverfugbare¨ Shared Nothing 20 v e r i f y −a l g sha1 ; Cluster mit DRBD,” iX, vol. 3, pp. 120–123, 3 2010. 21 r a t e 30M; 22 } [4] “Warum DRBD?” http://www.linbit.com/de/ produkte-services/drbd/warum-drbd/, abgerufen: 01.07.2010. 23 } [5] “Hochverfugbarkeitskompendium,”¨ https://www.bsi. Die resource{...}-Sektion muss auf beiden Syste- bund.de/DE/Themen/weitereThemen/Hochverfuegbarkeit/ men gleich sein, in einem DRBD-Cluster aus zwei Knoten HVKompendium/hvkompendium node.html, abgerufen: kann die Datei einfach kopiert werden. Nach einem Neustart 01.07.2010. der beiden Computer, steht DRBD zur Verfugung.¨ [6] W. Stallings, Betriebssysteme - Prinzipien und Umsetzung. Jetzt konnen¨ die DRBD-Ressource fur¨ die Synchronisa- Pearson Studium, 2003. tion vorbereitet werden: [7] F. Haas, “It’s coming: DRBD for Windows,” http://fghaas. 1 drbdadm create −md r0 wordpress.com/2010/04/01/its-coming-drbd-for-windows/, 2 drbdadm attach r0 abgerufen: 02.07.2010. 3 drbdadm syncer r0 4 drbdadm connect r0 [8] F. Haas, P. Reisner, and L. Ellenberg, DRBD - The DRBD User’s Guide. Pearson Studium, 10 2009. Mit den Befehlen wurden Metadaten erstellt, die [9] “DRBD FAQ,” http://www.linbit.com/de/produkte-services/ Ressource hinzugefugt¨ und die Synchronisationsparameter drbd/drbd-83/, abgerufen: 03.07.2010. gesetzt. Der letzte Befehl verbindet die DRBD-Ressource mit dem jeweils anderen Knoten. [10] W. D. Norcott and D. Capps, Iozone Filesystem Benchmark. Zu diesem Zeitpunkt ist der Sekundarknoten¨ fertig ein- gerichtet. Die nachsten¨ Befehle werden nur noch auf dem Primarknoten¨ ausgefuhrt:¨

1 drbdadm −− −−o v e r w r i t e −data −of−p e e r pr imar y r0 2 mkfs.ext3 /dev/drbd1

Dadurch wird eine initiale Voll-Synchronisation vorgenommen. Der zweite Befehl formatiert die DRBD- Festplatte“ mit dem Dateisystem ext3. Ist die Formatierung ” abgeschlossen, kann das Gerat¨ /dev/drbd1 an eine beliebige Stelle gemountet werden:

1 mount /dev/drbd1 /home/drbd/drbd

Das Verzeichnis, in das das DRBD-Device gemoun- tet wurde, kann jetzt ganz normal verwendet werden. Alle Anderungen¨ werden jetzt auf den Sekundarknoten¨ gespiegelt. DRBD-Statusuberwachung:¨ Der Status der Synchroni- sation kann mit dem Befehl:

124 XMPP als Kommunikationsmedium in Verteilten Systemen

Philipp Boser¨ Sebastian Ziganki Fakultat¨ Informatik Fakultat¨ Informatik Hochschule Furtwangen Hochschule Furtwangen 78120 Furtwangen 78120 Furtwangen [email protected] [email protected]

Zusammenfassung—Verteilte Systeme konnen¨ auf einer den meisten textbezogenen Echtzeitkommunikationsprotokol- stark abstrakten Ebene als autonome Systeme betrachtet len, Transmission Control Protocol (TCP) Sockets verwendet werden, die miteinander kommunizieren. Erst durch den Aus- [2]. Alle aktuellen Betriebssysteme — Betriebssysteme fur¨ tausch von Informationen wird aus der Menge von einzelnen Systemen ein verteiltes System. Dieser Artikel behandelt die den Embedded Sektor mit eingeschlossen — besitzen in Anforderungen an ein Kommunikationsmedium, dass in einem der Regel einen TCP–Stack fur¨ die Kommunikation mit Verteilten System eingesetzt werden soll. Im Speziellen, wird anderen Netzwerkteilnehmern. Die Prasenz¨ von TCP kann das jabber Protokoll (XMPP) darauf hin untersucht inwiefern, in diesem Fall als gegeben betrachtet werden. Daruber¨ dass fur¨ Instant Messaging entwickelte Protokoll, fur¨ die hinaus verwendet das XMPP die Auszeichnungssprache Anwendung in einem verteilten System geeignet ist. Extensible Markup Language (XML) zur Verwaltung der Metainformationen [2]. Die weiteren Technologien, die I.EINLEITUNG XMPP fur¨ Authentifizierung, Verschlusselung¨ und weitere ¨ A. Ubersicht Dienste benutzt, bestehen ebenfalls aus Standardmodule, Das Extensible Messaging and Presence Protocol (XMPP) die jedoch fur¨ den Verlauf dieses Artikels lediglich eine ist ein Protokoll, dass fur¨ zwischenmenschliche Kommu- untergeordnete Rolle spielen. nikation uber¨ Netzwerke entwickelt worden ist. Es soll Die Infrastruktur eines XMPP–Systems basiert auf dem eine Echtzeitkommunikation zwischen zwei oder mehreren Client–Server–Modell. Ein gesamtes XMPP–System muss Parteien ermoglichen.¨ Zu Zeiten der Entwicklung des XMPP, jedoch nicht zwingend von einen einzigen zentralen Ser- und auch heute noch, konkurrieren die Anbieter von Instand ver verwaltet werden. XMPP–Server eines Verbundes sind Messaging Protokolle um die Gunst der Anwender. Mit den dafur¨ ausgelegt Nachrichten untereinander weiterzuleiten. Protokollen: AOL Instant Messenger (AIM), I seek you Die Kommunikation erfolgt dabei asynchron, dezentral (ICQ), The Microsoft Network (MSN) und Skype sind nur und verteilt. Die Zustandigkeit¨ der Server wird uber¨ das die großen Vertreter genannt. Andere Protokolle besitzen nur Domain Name System (DNS) festgelegt. Jeder XMPP–Server eine Spartenexistenz. Alle aufgefuhrten¨ Konkurrenzprotokolle verwaltet dafur¨ die Clients seiner eigenen Domain (z.B. besitzen eine bekannte Schwache.¨ Hinter jedem Protokoll http://train-jabber.informatik.hs-furtwangen.de“). Sendet ein ” steht ein Unternehmen, dass das jeweils eigene Protokoll Client Informationen an einen Client außerhalb der Domain vermarktet und gewinnbringend einsetzen mochte.¨ Dazu (z.B. [email protected]“) werden die Informationen ” kommt, dass alle Protokolle nur mit einem proprietaren¨ an die Domain des Empfangers¨ weitergeleitet (in diesem Client funktionieren sollen. Clients die von Dritten angeboten konkreten Fall jabber.com“) [2]. ” werden, basieren in der Regel auf Reverse–Engineering des entsprechenden Protokolls. Lediglich das Open System for B. Begriffsabgrenzung Communication in Realtime (OSCAR) Protokoll, auf dem Das Extensible Messaging and Presence Protocol (XMPP) AIM und ICQ basieren, wurde 2008 veroffentlicht¨ [1]. beinhaltet drei zentrale Begriffe: Messaging, Presence und All dem gegenuber¨ steht XMPP als offenes Protokoll, dass Extensible. Unter dem Begriff Messaging beherbergt XMPP an keine wirtschaftlichen Interessen gebunden ist. XMPP samtliche¨ Kommunikation auf Nachrichtenebene. Der Nach- wird mit dem Ziel entwickelt, die Echtzeitkommunikation richtenaustausch kann sowohl zwischen zwei Clients, als uber¨ das Internet fur¨ alle Benutzer so funktional wie moglich¨ auch in einem Multi–User–Chat, im Stile des Internet Relay zu halten. Der Fokus dieser offenen Alternative liegt auf Chat (IRC), erfolgen. Weitere Nachrichtentypen werden in der Bereitstellung und Veroffentlichung¨ des gesamten Pro- Kapitel II genauer beschrieben. tokolls. Das Protokoll wird unter der Berucksichtigung¨ der Als zweiten Begriff behandelt XMPP die Presence. Be- Abwartskompatibilit¨ at¨ immer weiter verbessert. teiligten Anwendern den eigenen, aktuellen Status zur XMPP verbindet die Einfachheit mit dem Funktionalem. Verfugung¨ zu stellen, ist ein Basisansatz der sofortigen Als Grundlage fur¨ den Informationsaustausch wird, wie bei Nachrichtenubermittlung.¨ Ohne diese Funktion ware¨ dieser

125 Kommunikationsweg mit dem der E–Mail vergleichbar. vom XMPP–Server anstelle von IM–Clients verwaltet. Die Dieser Ansatz bildet das Szenario: Wer nicht da ist, mit sogenannten Transports zu anderen Protokollen ermoglichte¨ ” dem kann man nicht reden.“ ab. Die Prasenz¨ eines anderen einen fließenden Wechsel bestehender Protokolle zu jabber. Benutzers erlaubt dem Anwender schnell zu entscheiden, ob 1999 veroffentlichte¨ Jeremie Miller den ersten XMPP–Server ein Gesprachsaufbau¨ sinnvoll ist oder nicht. jabberd 1.0. Von dem Gedanken eines freien Echtzeitkom- Die Verfasser dieses Artikels sind der Meinung, dass mit munikationsprotokolls begeistert, trieb die Community die den beiden Punkten: Messaging und Presence, XMPP nur Entwicklung von jabber Clients fur¨ alle relevanten Betriebs- ein weiterer Konkurrent auf dem Instant Messaging Markt systeme und Code–Bibliotheken fur¨ Programmiersprachen ware.¨ Die technische Differenzierung zu anderen Protokollen voran. Die Open–Source Gemeinde ubernahm¨ die detaillierte bildet die Erweiterbarkeit (Begriff: Extensible“) des jabber Ausarbeitung des Standards. 2004 wurde das Protokoll ” Protokolls. Auf dem Protokoll aufbauend, konnen¨ weitere schließlich von der IETF in die Request for Comments Funktionalitaten¨ hinzugefugt¨ werden. XMPP–Erweiterungen (RFC) aufgenommen (RFC3920 und RFC3921). Mit dieser werden ebenfalls dokumentiert und veroffentlicht,¨ sodass An- Veroffentlichung,¨ wurde das Protokoll auch an Unternehmen wender bei der Entwicklung neuer Erweiterungen mithelfen herangetragen, die das Potenzial von jabber fur¨ eigene konnen.¨ Mit aktuell 284 Erweiterungen stehen weitere inter- Zwecke nutzen wollten. 2005 startete Google dann den neuen essante Dienste zur Verfugung.¨ Darunter finden sich einfache Instant Messaging und Voice over Internet Protocol (VoIP) Erweiterungen die den Transfer von Dateien ermoglichen,¨ Service Google Talk, dass XMPP als Basis verwendet [6]. aber auch die Unterstutzung¨ komplexerer Netzwerkprotokolle Vom Erfolg getrieben fand das Protokoll, durch die offenen wie z.B. Simple Object Access Protocol (SOAP). Mit Standards, Einzug in Produkten der Unternehmen: Cisco, dieser Erweiterung konnen¨ Objekte ausgetauscht und Remote IBM, Nokia und Sun. XMPP wird heute von der Community Procedure Calls (RPC) uber¨ XMPP aufgerufen werden [3]. aktiv verbessert und an neue Anforderungen angepasst [2]. Wird in einem Artikel XMPP behandelt, so stehen die Verfasser immer vor der Begriffsabgrenzung von XMPP D. Aufgabenstellung und jabber. Die Abgrenzung zwischen den beiden Begrif- In diesem Artikel, wird das jabber Protokoll fur¨ den fen ist nicht eindeutig, da sie aus historischer Sicht eng Einsatz als Kommunikationsmedium in Verteilten Systemen miteinander verbunden sind. Mit der Veroffentlichung¨ des untersucht. Die Ergebnisse werden mit Bezug auf bisherige Protokolls bei der Internet Engineering Task Force (IETF) Losungen¨ diskutiert und fur¨ den Einsatz in einem Proof–of– ” versuchten die Autoren des Protokolls, XMPP von allen Concept“ evaluiert. Zu diesem Zweck haben die Verfasser anderen Technologien und Communitynamen abzugrenzen. die vielversprechendsten XMPP–Technologien ausgewahlt¨ Fortan soll XMPP nur fur¨ das offene Protokoll stehen. Der und hinsichtlich der Eigenschaften: Standardisierung, Res- Begriff jabber stammt von der Applikation jabberd, der sourcenschonung und Ereignisorientierung untersucht. ursprunglichen¨ Implementierung des XMPP. Daraus entwi- Als weitere Aufgabe sollen Workflows auf das verteilte ckelte sich das Unternehmen Jabber, Inc., dass Enterprise System abgebildet werden. Setzen Workflows die Einbe- Losungen¨ auf Basis von XMPP vertreibt [4]. 2008 ubernahm¨ ziehung mehrere verteilter Komponenten voraus, so ist die Cisco das Unternehmen [5]. Jabber Inc. ist heute einer der Kommunikation zwischen den Knoten mit geeigneten XMPP– Hauptsponsoren der XMPP Standards Foundation (XSF) die Methoden umzusetzen. Workflows stellen in verteilten Syste- das XMPP verwaltet und fordert.¨ men spezielle Anforderungen an die jeweiligen Komponenten Fur¨ die beste Abtrennung der beiden Begriffe halten und die zugrunde liegende Kommunikation. Die Probleme, die Verfasser den Vergleich aus der Literatur XMPP: The die auftreten, wenn Workflows uber¨ mehrere Systeme verteilt Definitve Guide von Peter Saint–Andre, Kevin Smith und operieren, werden in Abschnitt IV ausfuhrlich¨ erlautert.¨ Remko Troncon: Als technische Anforderungen wurde den Verfassern Jabber verhalt¨ sich zu XMPP wie das Internet lediglich die Verwendung der Programmiersprache Java und ” zu HTTP.“ 1 die Steuerung uber¨ einen handelsublichen¨ jabber Client vor- Im Verlauf dieser Arbeit verwenden die Verfasser XMPP geschrieben. Im Design und der Auswahl der Komponenten und jabber als austauschbares Synonym. wurde den Verfassern freie Hand gelassen um die evaluierten Technologien bestmoglich¨ umzusetzen zu konnen.¨ C. Historie E. Versuchsaufbau Die Entwicklung des XMPP begann 1998. Das Protokoll wurde mit dem Ziel entwickelt, alle bisherigen Instant Mes- Die technische Grundlage fur¨ das eingesetzte verteilte saging zu unterstutzen,¨ sodass nur noch ein einziger Client System ist der FHFTrain der Hochschule Furtwangen. Dabei fur¨ verschiedene Protokolle benotigt¨ wird. Im Gegensatz handelt es sich um eine Garteneisenbahnanlage der Nenn- zu Multiprotokoll–Clients werden jabber fremde Protokolle große¨ 1. Um die Position des Zuges verfolgen zu konnen,¨ besitzen die Gleise der Modelleisenbahn Streckenkontakte. 1ubersetzt¨ vgl. [2] Daruber¨ hinaus lassen sich die Weichen der Anlage uber¨ eine

126 zwei XMPP- Einheiten zustandig.¨ Die Erzeugung erfolgt mit dem Tag und wird durch das entsprechende End-Tag geschlossen. Wahrend¨ eines Streams konnen¨ beliebig viele Daten ubertragen¨ werden. Stanzas bilden die grundlegende Da- tenprimitive von XMPP. Das Stanza ist mit einem Push zu vergleichen und wird fur¨ ein einfaches Senden zum Empfanger¨ verwendet. Die zweite Art, das Element, findet Verwendung bei der Prasenz¨ eines Teilnehmers. Info und Query werden durch die Struktur unterstutzt,¨ welches ahnlich¨ dem HTTP-Protokoll arbeitet. Abbildung 1. Strecke des FHFTrain Jedes Stanza enthalt¨ zusatzlich¨ eine Reihe verschiedener Attribute zur Ubertragung.¨ ”From”gibt die Adresse des Sender eines Datenpaketes an und ”To”den Empfanger.¨ Schnittstelle stellen und den aktuellen Zustand abfragen. Die Zusammenhangenden¨ Stanzas sind durch eine Id gekennzeich- hardwarenahe Verwaltung der Streckenkontakte und der Wei- net, welche jedoch optional ist. Zusatzlich¨ konnen¨ die Stanza chen ubernimmt¨ eine Speicherprogrammierbare Steuerung einen unterschiedliche Kontexte besitzen, welche durch den (SPS). Im Gegensatz dazu wird der Zug des FHFTrains Type identifiziert sind. uber¨ ein Webinterface kontrolliert. Weitere Moglichkeiten¨ Eine Adressierung erfolgt durch eine JabberID, welche in der Steuerung der Modelleisenbahn spielen fur¨ diesen Artikel der Form Node@Domain/Ressource aufgebaut ist [2]. Als keine Rolle. Der relevante Streckenabschnitt besteht aus zwei Node werden alle XMPP-Einheiten bezeichnet, zum Beispiel Zyklen die mit drei Gleisen verbunden sind. Die Anordnung der Client eines Benutzers. Der Standort eines Servers wird der 41 Streckenkontakte und der sechs Weichen zeigt die durch die Domain ausgedruckt¨ und kann auch Subdomains Abbildung 1. fur¨ Services enthalten. Unterscheidet sich die Domain von Fur¨ die Umsetzung der XMPP–Komponenten wurden beiden Kommunikationspartnern, so wird das Datenpaket die Java–basierende Applikationen und Bibliotheken von uber¨ einen Server-to-Server-Stream weitergereicht. Zur Un- ignite realtime verwendet. ignite realtime ist die professionell terscheidung von mehreren offenen Verbindungen kommt gefuhrte¨ Open–Source Gemeinschaft des Unternehmens der Indikator Ressource zum Einsatz, welcher das richtige jive software, dass die XSF offiziell unterstutzt¨ [7] . Zum Routen ermoglicht.¨ Einsatz kamen der quelloffene XMPP–Server openfire, dessen Listing 1. Stream mit Ubertragung¨ [2] Installation sowohl unter Windows, als auch unter Linux C l i e n t : problemlos durchgefuhrt¨ werden konnte. Als auch die Smack API, die fur¨ die Umsetzung der Clients verwendet wurde.

Diese bietet den Verfassern eine High–Level–Sicht auf das jabber Protokoll. Die Implementierung wurde mit den beiden Clients Pidgin S e r v e r : fur¨ Windows und Linux und Adium fur¨ Mac OS X getestet. Beide Instand Messaging Clients sind Teil der Open–Source Community und basieren auf der libpurple [8] [9]. Im folgenden Kapitel werden die, von den Verfassern ausgewahlten¨ XMPP–Technologien, genauer beschrieben und deren generellen Einsatz in verteilten Systemen diskutiert. Daran anschließend werden diese Ansatze¨ im Kontext von C l i e n t : Workflows und des FHFTrains in einem Showcase umgesetzt. II.XMPPTECHNOLOGIEN Off with his head! Wie in der Einfuhrung¨ bereits erwahnt,¨ wurde XMPP als offenes Protokoll fur¨ Instant Messaging entwickelt. Die S e r v e r : große Menge von kleinen Nachrichten optimiert [2]. Um You are all pardoned. dies zu erreichen, kommen XML-Streams und XML-Stanzas zum Einsatz, wie in RFC 3920 beschrieben ist [10]. Ein C l i e n t : Stream ist fur¨ die Ubertragung¨ von Elementen zwischen

127 Mitteilung wird eine verschlusselte¨ Verbindung zwischen Das Listing 1 zeigt ein Stream mit verschiedenen den Kommunikationspartner hergestellt und die Nachricht ¨ ¨ Ubertragungen.¨ Zu Beginn offnet¨ der Client einen Stream uber diese Verbindung ubermittelt. Mit dem Senden einer ¨ und teilt dem Server die Prasenz¨ mit. Im Anschluss erfolgt Nachricht, andert der Kommunikationspartner den Status zu ein Request des Roster und der Server antwortet mit der aktiv, da dieser zuvor abwesend war. Es folgt die weitere angeforderte Kontaktliste. Es wird eine normale Nachricht Unterhaltung mit einigen Mitteilungen. von einem User an einen anderen versandt. Nach dem Senden der Nachricht, wird eine Mitteilung aus einem Multi-User Chat empfangen. Zum Schluss setzt der Client den Status auf nicht verfugbar¨ und beendet den Stream. XMPP ist durch zusatzliche¨ Extensions in der Funktion von der XMPP Standard Foundation erweitert worden [3]. Im folgenden Kapitel werden neben dem Instant Messaging weitere Erweiterungen betrachtet. A. Instant Messaging Instant Messaging ist das bekannteste Einsatzgebiet von XMPP. Es wird jedoch zwischen verschiedenen Arten von Nachrichten unterschieden [11]. Einzelne Mitteilungen wer- den als ”Normal”bezeichnet wenn, diese außerhalb eines Chats oder Gruppenchats, ubertragen¨ werden. Die Unterhal- tung uber¨ einen Chat bildet eine schnelle Folge von XML- Paketen, welche aus diesem Grund Chat vom Typ ”Chatßind. Nachrichten aus einem Gruppenchat werden uber¨ den Server Abbildung 3. Status wahrend¨ eines Chat [2] an die Teilnehmer geroutet und sind deshalb von der Art ”Groupchat”. Temporare¨ Informationen eines Servers werden Wahrend¨ eines Chats sind Anderungen¨ des Status moglich,¨ als ”Headline”markiert. Zusatzlich¨ gibt es den Typ Error”f¨ ur¨ um dem Gegenuber¨ die Gesprachsbereitschaft¨ zu signalisieren die Fehlerbehandlung. [12]. Wahrend¨ eines Chats ist der Teilnehmen aktiv, wie die Abbildung 3 zeigt. Wird ein Text eingegeben, andert¨ sich der Status auf composing, welcher das Tippen symbolisiert. Die Unterbrechung beim Schreiben wird als paused ausgedruckt.¨ Ist wahrend¨ der Unterhaltung kurzfristig abwesend, wird dieser als inaktiv angezeigt. Aus jeder Situation kann sich ein Benutzer abmelden und wechselt somit in den Status gone.

Listing 2. Stream mit Ubertragung¨ [2] Hi honey !

Abbildung 2. Beispiel fur¨ einen Chat Abfolge von kleinen Nachrichten bezeichnet. Die Abbildung ist die Historie zu sehen, welche in diesem Beispiel in einem leichtem Grau angezeigt wird. Mit dem Senden einer

128 to=”you@yourdomain. tld /work” Information registriert sind [2]. Der Server versendet im type=”chat”> Anschluss Probes an alle Eintrage der Kontaktliste. Die jewei- ligen Server prufen¨ nach Erhalt die Autorisierung und senden, bei einer entsprechenden Berechtigung, die Informationen uber¨ die Verfugbarkeit.¨ Der Onlinestatus lasst¨ sich zusatzlich¨ Ein Vater fuhrt¨ ein Gesprach¨ mit seiner Tochter, welches weiter verfeinern [11]. Aktive Teilnehmer besitzen den Status im Listing 2 teilweise abgebildet ist. Der erste Abschnitt Chat. Ist ein Kontakt kurze Zeit abwesend, wird von Server zeigt den Beginn der Unterhaltung und die Begrußung¨ automatisch auf Away geschalten. Bei langerer¨ Abwesenheit der Tochter. Es ist das Stanza fur¨ eine Message mit den erfolgt abhangig¨ vom Client ein Ubergang¨ zu XA (Extended entsprechenden Attributen fur¨ die Adressen von Sender Away). Der Status DND bedeutet, dass der Benutzer nicht und Empfanger,¨ sowie Chat als Type. Zusatzlich¨ enthalt¨ gestort¨ werden mochte.¨ Im unteren Abschnitt von Listing 3 die Nachricht eine Statusmeldung, dass der Sender aktiv ist eine solche Statusnachricht zu sehen. ist. Die Tochter beginnt zu darauf hin zu schreiben, was durch die Meldung im zweiten Abschnitt gezeigt wird. Das Listing 4. Beispiel fur¨ einen Roster [2] Gesprach¨ lauft¨ weiter, was jedoch nicht dargestellt ist. Nach Gesprachsende¨ schließt die Tochter die Verbindung und ist offline. B. Presence und Roster Wonderlanders Zur Kommunikation und vor allem beim Instant Mes- empfangen kann. Die Verfugbarkeit¨ wird durch die Prasenz¨ Wonderlanders von Kontakten angezeigt. Bei der Aufnahme von Benutzern Family von Publish und Subscribe, bei der beide Teilnehmer die Aufnahme bestatigen¨ mussen.¨ Der Mechanismus verwendet das Presence Stanza und unterscheidet wiederum zwischen verschiedenen Typen [11]. Subscribe bedeutet einen Antrag Die Kontaktliste wird unter XMPP als Roster bezeichnet die Prasenz¨ zu sehen, bei Subscribed wurde die Erlaubnis und auf dem Server verwaltet. Ein Beispiel fur¨ einen Roster gewahrt.¨ Im Gegensatz dazu steht Unsubscribe fur¨ einen ist im Listing 4 zu sehen. Neben dem Namen und der Ruckzug¨ und bei Unsubscribed bleibt die Genehmigung JabberID enthalt¨ der Roster auch einen Eintrag, ob die verwehrt. Die Prasenz¨ Unavailable signalisiert, dass der Erlaubnis fur¨ die Prasenz¨ gegeben wurde. Zusatzlich¨ lassen entsprechende Kontakt offline ist. Ein Probe dient zur Abfrage sich auch Kontakte in Gruppen einteilen. des Status anderer Benutzer und wird nur vom Server erstellt. Fehler werden durch den Typ Error dargestellt. Das Listing C. Multi-User Chat 3 zeigt im oberen Bereich einen Antrag um die Prasenz¨ des Wahrend¨ das Instant Messaging lediglich auf zwei Kom- Gegenubers¨ zu prufen¨ und die dazugehorige¨ Erlaubnis. munikationspartner beschrankt¨ ist, enthalt¨ XMPP eine Er- weiterung fur¨ das Einbeziehen von mehreren Teilnehmen. Listing 3. Mitteilung der Prasenz¨ [2] Relay Chat [13]. Es wird zwischen verschiedenen Arten von anonym oder nicht anonym, moderiert oder nicht moderiert, unsicher oder verschlusselt,¨ temporar¨ oder dauerhaft. In Abbildung 4 ist ein solcher Multi-User Chat darge- xa stellt. In diesem Beispiel wird links eine Liste mit allen down the rabbit hole! Teilnehmern des Raums angezeigt und im Hauptbereich findet das Gesprach¨ statt. Jeder Raum besitzt eine eigene Bei der Anmeldung meldet der Client die Prasenz¨ dem JabberID, in diesem Fall [email protected]. Server. Dieser benachrichtigt alle Kontakte, welche fur¨ diese Die Subdomain Conference identifiziert den Server fur¨

129 In einem sozialen Gebilde mit mehreren Beteiligten, wie dem MUC, sind verschiedene Berechtigungsstufen wichtig . Aus diesem Grund besitzt XMPP verschiede- ne Zugehorigkeitsgruppen¨ und Rollen [13]. Die Gruppen drucken¨ eine langfristige Beziehung zu einem Raum aus, wie Owner”,¨ Admin¨ oder¨ ”Member”. Outsider”wurden¨ verbannt und konnen¨ den Raum nicht mehr betretet. Die Rollen ”Moderator”, ”Participantoder¨ ”Visitor”haben nur wahrend¨ der Anwesenheit bestand und legen die Berechtigung im Raum fest.

D. Data Forms Ahnlich¨ wie in HTML[14], konnen¨ Datenformulare konnen¨ in XMPP fur¨ die Ubertragung¨ strukturierter Daten verwendet werden und zum Beispiel in Workflows oder fur¨ die Konfi- guration von Services verwendet werden [15]. Das Listing 6 dient als Beispiel fur¨ eine solche Form und wird, wie in Abbildung 4. Beispiel fur¨ einen Multi-User Chat [2] Abbildung 5 dargestellt.

Listing 6. Beispiel fur¨ eine Data Form [2] MUC, welcher durch eine zusatzliche¨ Serverkomponente < t i t l e>My Special Form bereitgestellt wird. Um einen Raum zu betreten, wird eine Please fill in the following form Prasenz¨ an dessen ID geschickt und als Ressource der die Adresse [email protected]/Alice, um dort an alle Teilnehmer, auch an den Sender, weitergeleitet.

130 • JID-Multi ermoglicht¨ das Angeben von mehreren Jab- type=”result”> berIDs. • JID-Single hingegen unterstutzt¨ nur eine JabberID. • List-Single lasst¨ nur nur eine Auswahl zu. • Text-Multi kann fur¨ die Eingabe mehrerer Zeilen ver- wendet werden. Im Beispiel von Listing 7 hat die Konigin¨ sich auf • Text-Private verschlusselt¨ den eingegebenen Text, um dem Server notify.wonderland.lit einen neuen Blog zum vertrauliche Daten zu schutzen.¨ Veroffentlichen¨ von Proklamationen erstellt [2]. Alice meldet • Text-Single ist eine einfache Eingabezeile. sich mit ihrer JabberID beim Server an, um die neuen Informationen zu bekommen. Der zweite Abschnitt ist die Antwort mit der Anmeldebestatigung¨ und Alice erhalt¨ nun alle Mitteilungen der Konigin.¨ Der entsprechende Node auf dem Server kann jedoch durch ein Sicherheitsmodell geschutzt¨ sein, ahnlich¨ der Gruppen im MUC [16]. In diesem Fall muss die Berechtigung durch den Eigentumer¨ gepruft¨ werden oder die Freigabe wird auf Grund der Gruppenzu- gehorigkeit¨ erteilt. Außerdem kann es vorkommen, dass der Service konfiguriert werden muss, bevor die Bestatigung¨ erfolgt. Diese Konfiguration wird mit Hilfe der Erweiterung Data Form durchgefuhrt.¨

Listing 8. Publish [2] < t i t l e>A new thought

Off with their heads! tag:wonderland. lit ,1865:entry −42

1865−12−13T18:30:02Z E. Publish und Subscribe 1865−12−13T18:30:02Z Um ein standiges¨ Pollen zu vermeiden, besitzt XMPP eine zusatzliche¨ Erweiterung zur Nutzung eines Publish A new thought: off with their heads! das Warten des Abonenten auf Ereignis. Das Ereignis wird Listing 7. Beispiel einer Subscription [2] id=”gh921nx3” < t i t l e>A new thought to=”notify .wonderland. lit”

Off with their heads! t y p e =” s e t ”> xmlns=”http: // jabber.org/protocol/pubsub”> tag:wonderland. lit ,1865:entry −42 1865−12−13T18:30:02Z jid=”alice@wonderland. lit”/> 1865−12−13T18:30:02Z Die Konigin¨ veroffentlicht¨ eine Proklamation, welche im

131 fur¨ Publish und Subscribe nicht weiß, ob Alice online ist und Listing 10. Aufruf eines Kommandos [2] an welchen Client die Information geschickt werden soll [2]. [17]. enthalten einen Client oder Prozess auf der Basis von XMPP. Zum Aufruf kann der normale Client aus dem Instant sessionid=”b82nsd82nfdos51vs9” oder Items unterschieden [19]. status=”executing”> Listing 9. Service Discovery [2] < t i t l e>S e t S t a t u s Choose the status and status id=”a1266a” message to=”alice@wonderland. lit / rabbithole” t y p e =” g e t ”> http: //jabber.org/protocol/rc i t e m s ” node=”http: // jabber .org/protocol/commands”/> s t a t u s ”> id=”a1266a” o n l i n e to=”alice@wonderland. lit /party”

132 Zudem basiert XMPP auf Events und ermoglicht¨ auf Instant Messaging verwendet werden, welcher die XMPP diese Weise eine gute Nutzung vorhandener Ressourcen in Spezifikation umsetzt. Die Verwendung von Data Forms Form von Rechenzeit und Netzwerktraffic. Dies zeichnet sich und verschiedenen Stages ermoglicht¨ das nachtragliche¨ besonders bei Publish und Subscribe aus, wie Abbildung Ubertragen¨ von Daten und das erstellen von komplexen 6 verdeutlicht. Das Diagramm vergleicht einen normalen Workflows. HTTP Client, welcher mit Polling arbeitet, gegenuber¨ einem XMPP-Client, mit der Technologie Publish und Subscribe [2]. III.FHFTRAIN ALS VERTEILTES SYSTEM Das Protokoll HTTP setzt alle zehn Minuten eine Anfrage Fur¨ das zu entwickelnde Proof–of–Concept“ musste ab, was uber¨ Stunde betrachtet sechs Anfrage sind. Bei ” der FHFTrain von den Verfassern als verteiltes System einer Mehrzahl solcher Clients steigt das Polling rasant an. interpretiert werden. Der Zug bietet ein Testfeld um eine Im Gegensatz dazu wird dir Kommunikation durch XMPP, Kommunikationsinfrastruktur zu untersuchen [21]. Dafur¨ bezogen auf die Menge der Nachrichtenpakete, deutlich haben die Autoren alle Komponenten der steuerbaren Mo- verbessert. Nach einer einmaligen Registrierung erfolgt jedes delleisenbahn identifiziert und diskutiert, welche Rolle diese mal eine automatisch eine Mitteilung, sobald eine Anderung¨ in einem verteilten System ubernehmen.¨ Des Weiteren wurde vorhanden ist. Es wird auf das Eintreten eines Events, also evaluiert welche Eigenschaften die Komponenten besitzen der Anderung,¨ gewartet und die Kommunikation auf diese und welche Aktionen ausgefuhrt¨ werden konnen.¨ Fur¨ spezi- Weise vereinfacht. elle Elemente war es nach Meinung der Verfasser zusatzlich¨ notig,¨ Ereignisse zu untersuchen die moglicherweise¨ auftreten konnen.¨ In der Einleitung wurde bereits der Aufbau des FHFTrain angerissen. Neben der Strecke, die als Rahmen fur¨ die einzel- nen Komponenten dient, besteht das System der Garteneisen- bahn aus drei weiteren Gruppen von Komponenten, die fur¨ diese Untersuchung Relevanz besitzen. Die einfachste Gruppe von Baugruppen bilden die passiven Streckensensoren. Die zweite Baugruppe beinhalten die Weichen, die die Richtung der Fahrt des FHFTrain beeinflussen und die letzte Baugruppe besteht aus zwei Zugen,¨ von denen in der Regel nur einer die Strecke befahrt.¨ Diese drei verschiedenen Komponenten wer- den in den folgenden Abschnitten untersucht. Die Ergebnisse dieser Evaluierung bilden die Basis fur¨ die Implementierung.

A. Streckenkontakte Auf der vorgestellten Strecke wurden in regelmaßigen¨ Abstanden¨ Kontakte platziert, die beim Uberfahren¨ ausgelost¨ werden. Zur kontaktlosen Erfassung des Zuges wurden die Streckenkontakte technische als Reed–Relais umgesetzt. Ein, an der Front des FHFTrain angebrachter Magnet bringt Abbildung 6. Vorteile von Publish und Subscribe [2] das Relais zum Anziehen und lost¨ so diesen Kontakt aus. Auftretendes Prellen, dass warend¨ eines Schaltvorgangs Wie bereits bei der Vorstellung von Ad-hoc Commands entsteht, wird von der SPS gehandhabt. erwahnt,¨ konnen¨ diese mit Webservices vergleichen werden. Die Streckenkontakte werden dazu verwendet, die Position Webservice benotigen¨ zum Aufruf eine Beschreibung der des Zuges auf der Strecke zu bestimmen. Diese Kontakte Schnittstelle mittels WSDL [20]. Somit ist die Erstellung besitzen jeweils nur zwei Eigenschaften: entweder der Zug eines Clients notigt,¨ der die Schnittstelle implementiert. Da uberf¨ ahrt¨ diesen Kontakt zu diesem Zeitpunkt oder der Webservices das einfache Prinzip von Query und Response be- Kontakt wird zu diesem Zeitpunkt nicht ausgelost.¨ Aus nutzen, konnen¨ nachtraglich¨ keine Daten ubermittelt¨ werden. diesem Grund bieten Kontakte lediglich die Abfrage, wann Alle erforderlichen Daten mussen¨ beim Aufruf ubergeben¨ ein Kontakt das letzte mal ausgelost¨ worden ist. Aktionen werden, wodurch die WSDL wiederum komplexer wird. kann ein Streckenkontakt nicht ausfuhren.¨ Der Anwender hat Ad-hoc Commands verwenden einen Client oder Prozess keine Eingriffsmoglichkeiten¨ in diese Baugruppe [22]. zur Kommunikation uber¨ XMPP [18]. Da alle Kommandos Wird ein Streckenkontakt von einem der zwei Zuge¨ einheitlich angesprochen werden konnen,¨ ist keine komplexe uberfahren,¨ lost¨ dieser ein asynchrones Ereignis aus. Die Schnittstellenbeschreibung notig.¨ Es kann hier ein Client fur¨ standige¨ Abfrage (Polling), ob ein Kontakt zu diesem

133 • ... Andern¨ sich Parameter wahrend¨ des Betriebes, so kann der Zug ein Ereignis auslosen,¨ um andere Elemente im verteilten System daruber¨ zu informieren. Dass der Zug Ereignisse auslost,¨ ist eine theoretische Uberlegung,¨ die bis zu diesem Zeitpunkt von den Verfassern nicht umgesetzt wurde, da sie Abbildung 7. Zustandsdiagramm einer Weiche fur¨ die Implementierung des Showcase nicht benotigt¨ wurde. Das folgende Kapitel behandelt die theoretischen Grund- lagen, die bei der Implementierung verteilter Workflows Zeitpunkt ausgelost¨ wird, entfallt.¨ Solch ein Ereignis kann beachtet werden mussen.¨ Des Weiteren wird ein Workflow als Anstoß fur¨ einen Workflow dienen. fur¨ den Showcase entwickelt, der in der anschließende Implementierung umgesetzt wird. B. Weichen Im Gegensatz zu den Streckenkontakten sind Weichen IV. WORKFLOWS aktive Komponenten des verteilten Systems. Weichen konnen¨ Workflows sind einfach geordnete Ablaufe¨ von Schrit- drei Zustande¨ annehmen, von denen einer als kritisch ten, die eine definierten Aufgabe mithilfe von Regeln eingestuft wurde. Eine Weiche kann so gestellt sein, so- losen.¨ Als Workflows werden im Allgemeinen Ablaufe¨ dass der Zug geradeaus (STRAIGHT) oder in die Kurve von Geschaftsprozessen¨ innerhalb eines Unternehmens ver- (CURVE) fahrt.¨ Die Ubergangsphase¨ zwischen diesen beiden standen. Problemstellungen werden nach dem divide and Zustanden¨ wird von den Verfassern dieses Artikels als conquer Verfahren solang heruntergebrochen, bis das Problem riskanter Zeitraum eingeschatzt.¨ Die Uberfahrt¨ des FHFTrains beherrschbar wird. Die Schritte, die notig¨ sind, um das in diesem Zeitfenster kann von technischen Defekten bis aufgeteilte Problem zu losen,¨ wird als Workflow bezeichnet hin zur Entgleisung des gesamten Zuges fuhren.¨ Befindet [23]. sich eine Weiche im bewegenden Zustand (Moving) mussen¨ Nach dem gleichen Prinzip werden die Workflows in technische Maßnahmen getroffen werden um eine Uberfahrt¨ diesem Artikel aufgebaut. Allerdings stellt die Grundlage fur¨ durch einen Zug zu verhindern. Das Zustandsdiagramm einer die Workflows kein Geschaftsprozess¨ eines Unternehmens Weiche zeigt die Abbildung 7 dar, sondern die technische Sicherung des FHFTrains. In Der Anwender des Systems kann jede der sechs Anlehnung an die Definition von Workflows in Unternehmen, verfugbaren¨ Weichen stellen und den aktuellen Status abfra- erstellten die Autoren Workflows mit der Sicht auf das gen. Daruber¨ hinaus, besitzen Weichen keine Funktionalitat,¨ gesamte System. Die Interpretation der Modelleisenbahn die der Benutzer steuern kann. Die Verfasser haben die als verteiltes System trat bei der Erarbeitung des Showcase Zustandsuberg¨ ange¨ zwischen den drei Zustanden¨ als mogliche¨ in den Hintergrund. Erst der fertig definierte Workflow wurde Ereignisse identifiziert. Weichen konnen¨ so ihre kritische auf die Komponenten des FHFTrain aufgeteilt. Phase anderen Komponenten im System anzeigen. Die Verfasser dieses Artikels definierten zwei Sichten auf den selben Workflow. Zum Einen die Sicht auf einen C. Zug Workflow in der Entwurfsphase. Diese Sicht wurde aufgrund Der FHFTrain als solches ist die bewegliche Komponente der Einbeziehung aller Komponenten globale Sicht genannt. des Systems. Der Zug lost¨ die Streckenkontakte aus und Zum Anderen die Sicht auf eine einzelne Komponente wird von den Weichen in der Richtung beeinflusst. Im des verteilten Systems, die lediglich Eingangsparameter, Gegensatz zu Streckenkontakten und Weichen, bietet der Zug Ereignisse und Ausgabeparameter verwalten. Im weiteren jedoch eine große Anzahl an Eigenschaften, die abgefragt Verlauf dieser Arbeit, wird deshalb von globalen und lokalen oder eingestellt werden konnen.¨ Die beiden grundlegenden Workflows gesprochen. Die Differenzierung zwischen diesen, Funktionen ist das Setzen der aktuellen Geschwindigkeit auch auf Implementierungsebene divergierenden, Workflows und das Durchfuhren¨ einer Notfallbremsung, um den Zug ist grundlegend fur¨ das weitere Verstandnis¨ dieser Arbeit. im Fall eines Notfalls schnellstmoglich¨ zu stoppen. Daruber¨ hinaus bietet der Zug diverse Eigenschaften an, die abgefragt A. Globaler Vs. Lokaler Workflow werden konnen.¨ Unter anderem: Workflows dienen in erster Linie zur Losung¨ von Pro- • Geschwindigkeit blemen. Wird nach einer Losung¨ gesucht, ist es ratsam alle • Richtig (Vorwarts¨ / Ruckw¨ arts)¨ erdenklichen Moglichkeiten¨ nicht kategorisch auszuschließen. • Handbremse (angezogen / gelost)¨ Auch das Einbeziehen technischer Grenzen kann zu einer • Angehangte¨ Waggons nicht optimalen Losung¨ fuhren.¨ Erst wenn eine Losung¨ • Gefahrene Strecke (Workflow) gefunden wurde, kann versucht werden, diese • Temperatur technisch umzusetzen. Dieses Vorgehen birgt mit Sicherheit • Versorgung einige Risiken, jedoch werden so Workflows entwickelt,

134 Abbildung 8. Globaler Workflow die im Nachhinein auf die spezialisierten Knoten verteilt werden konnen.¨ Dieses Ergebnis bezeichnen die Autoren als globalen Workflow, da alle Ressourcen als verfugbar¨ angesehen werden. Die Abbildung 8 zeigt die Losung¨ eines Unternehmens fur¨ das Problem der Teileknappheit. Der Workflow zeigt, welche Schritte fur¨ eine Bestellung neuer Teile erforderlich sind. Im- plizit wurden die Abteilungen: Produktion, Lagerverwaltung, Abbildung 9. Workflow des Showcase Management und Einkauf mit der Losung¨ des Problems in Zusammenhang gebracht. Wird dieser Workflow auf die einzelnen Abteilungen her- ergibt sich der in Abbildung 9 visualisierte Workflow zur untergebrochen, wird aus einem globalen Workflow einzelne Sicherung vor Entgleisung beim Uberfahren¨ von Weichen. lokale Workflows. Keine Abteilung muss den gesamten Dieser Workflow ist die Basis fur¨ die Implementierung des Proof–of–Concept“. Des Weiteren wurden die XMPP– Ablauf kennen, sondern es ist vollig¨ ausreichend, wenn ” Abteilungen wissen wie sie auf Eingangsparameter oder Technologien im Kontext fur¨ dieses Beispiel ausgewahlt.¨ Im Ereignisse reagieren mussen.¨ Im Kontext des in Abbildung folgenden Kapitel werden die Technologien aus Kapitel II und 8 aufgefuhrten¨ Beispiel bedeutet das folgendes: die Ansatze¨ aus Kapitel III und IV zu einer Implementierung zusammengesetzt. Mit dieser zugrunde liegenden Implemen- • Produktion → meldet Teilemangel an das Lager tierung wird der Showcase, bestehend aus der Vorfuhrung¨ • Lagerverwaltung: Uberpr¨ ufung¨ der Situation des in Abschnitt IV-B erlauterten¨ Workflows, vorgestellt. • Lagerverwaltung → meldet den Missstand an die Verwaltung V. IMPLEMENTIERUNGDES PROOF–OF–CONCEPTS“ • Management: Entscheidung uber¨ die Anzahl neuer Teile ” Nachdem in diesem Artikel die verschiedenen XMPP– (Folgeauftrage¨ etc.) Techniken und deren Vorteile gegenuber¨ bisherigen Methoden • Management → meldet Anzahl der Teile an den Einkauf diskutiert2, der FHFTrain als verteiltes System interpretiert3 • Einkauf: Bestellung neuer Teile und ein Workflow ausgearbeitet wurde4, ist die Basis fur¨ die Jede Abteilung weiß in dieser Situation, was von ihr Umsetzung des Proof–of–Concept“ geschaffen worden. Die ” erwartet wird, ohne die Ablaufe¨ der anderen Bereiche zu folgenden Abschnitte beschreiben die wichtigsten Punkte der kennen. Das Problem wird so auf effiziente Art gelost,¨ denn: Implementierung. jede Abteilung bearbeitet den Teil fur¨ den sie beschaftigt¨ worden ist und zudem ist ein paralleles Arbeiten moglich.¨ A. Zerlegung des Workflows Diese Vorteile wurden von den Verfassern identifiziert Der in Abschnitt IV-B definierte Workflow ist bis hier- und werden bei der Umsetzung des Proof–of–Concept“ hin ein globaler Workflow zur technischen Sicherung des ” unterstutzend¨ miteinbezogen. FHFTrain. Dieser muss wie zuvor beschrieben auf die verteilten Komponenten des FHFTrain aufgeteilt werden. Von B. Workflow des Showcase den Verfassern wurde hierfur¨ zuerst die einzelnen Baugruppen Parallel zur Einarbeitung in das jabber Protokoll, setzten identifiziert, die bei diesem Workflow als Akteure beteiligt sich die Autoren mit einem moglichen¨ Workflow auf Basis sind. Damit jede Weiche gesichert werden kann, sind alle des FHFTrain auseinander. Dabei verfolgten sie die in Ab- Weichen Teil des Workflows. Daruber¨ hinaus muss der schnitt IV vorgestellten Strategie um Workflows zu definieren. aktive Zug im kritischen Fall gebremst werden. Auch dieser Frei von der in Abschnitt III erlauterten¨ Interpretation des wird in den Workflow miteinbezogen. Komplizierter ist FHFTrain als verteiltes System, wurde ein sicherheitskriti- die Definition, welche der 41 Streckenkontakte Teil des sches Szenario identifiziert: Uberf¨ ahrt¨ ein Zug eine Weiche, Workflows sein mussen.¨ Durch den technischen Aufbau die sich zu diesem Zeitpunkt noch im Zustand Bewegend einer Weiche, identifizierten die Autoren drei Wege, wie befindet, so kann es zu Entgleisungen und technischen ein Zug auf eine Weiche auffahren kann. Die jeweils drei Defekten an Zug und Strecke kommen. 2vgl. Kapitel II Ob der FHFTrain auf eine bewegende Weiche zufahrt,¨ 3vgl. Kapitel III kann durch die Streckenkontakte ermittelt werden. Daraus 4vgl. Kapitel IV

135 nachsten¨ Streckenkontakte (vor und hinter der Weiche) sind Publish und Subscribe wurde von den Verfassern mit als Indikatoren auch Teil des Workflows. dem Gedanken berucksichtigt,¨ alle Informationen jedem Ist ein Streckenkontakt Teil eines Workflows und wird Teilnehmer zuganglich¨ zu machen, die sie benotigen,¨ ohne vom Zug ausgelost,¨ sendet dieser eine Nachricht zu seiner den Aufwand Informationen an alle Knoten senden zu mussen.¨ verantwortlichen Weiche. Mit dieser Aktion ist der Workflow Jeder Teilnehmer erstellt einen PubSub Knoten auf dem fur¨ den Streckenkontakt beendet. Der nachste¨ Akteur (die Server zu dem er alle Informationen veroffentlicht.¨ Muss eine Weiche) wartet auf ein Ereignis von einem seiner drei Baugruppe auf ein Ereignis reagieren, so registriert sich diese zugehorigen¨ Streckenkontakte. Tritt ein solches Ereignis auf, bei diesem Knoten. Die Publish und Subscribe Erweiterung uberpr¨ uft¨ die Weiche, ob sie sich im Zustand Bewegend von XMPP ist ebenfalls schwach in gangigen¨ jabber Clients befindet. Sollte dies nicht der Fall sein, bricht die Weiche vertreten, aus diesem Grund entschieden sich die Autoren fur¨ den Workflow ab, da keine Gefahrensituation vorliegt. Bewegt einen Multi–User Chat, in dem alle Ereignisse gesammelt sich die Weiche jedoch, so sendet die Weiche dem aktiven werden. Zug eine Nachricht mit dem Befehl eine Notfallbremsung Im definierten Showcase werden zwei Nachrichten ausge- einzuleiten. Das ist die letzte Aktion einer Weiche im tauscht. Fur¨ die Kommunikation zwischen Streckenkontakten vorliegenden Workflow. Empfangt¨ der Zug eine solche und Weichen wird die Publish und Subscribe Technik Nachricht leitet er sofort die Bremsung ein. Damit ist die verwendet. Da jeder Kontakt bei einer Auslosung¨ diese Sicherheit des FHFTrain wieder hergestellt und der Workflow Information veroffentlicht,¨ mussen¨ die Weichen lediglich ist beendet. die PubSub Knoten der drei, ihnen am nachsten¨ gelegenen, Zusammenfassend die Aktionen und Nachrichten zwischen Streckenkontakte subscriben. Hierbei handelt es sich um ein den Komponenten: Ereignis, auf das von der Weiche asynchron reagiert wird. • Kontakt → sendet Triggerereignis an die Weiche Den Befehl zur Notfallbremsung des Zuges wird uber¨ Ad–hoc • Weiche: Uberpr¨ uft¨ den Zustand der Weiche Kommandos realisiert. Identifiziert eine Weiche eine riskante • Weiche → sendet Befehl zur Notfallbremsung Situation, ruft diese lediglich den Befehl EmergencyStop des • Zug: Fuhrt¨ Notfallbremsung durch FHFTrains auf. Mit dieser Definition weiß jede Komponente des FHFTrain, Die Kommunikation wurde auf ein Minimum beschrankt.¨ wie sie in der hier aufgefuhrten¨ Gefahrensituation zu reagie- Das bisherige ressourcenintensive Polling wurde komplett ren hat. Im kommenden Abschnitt wird diskutiert, welche mit dieser Implementierung vermieden. Kommunikationstypen fur¨ den Austausch der Nachrichten zwischen den Komponenten von den Autoren als sinnvollste VI.PROBLEMEUND KRITIK erachtet werden. A. XMPP–Server als Single Point of Failure“ ” B. Kommunikation Ein zentraler Kritikpunkt, der die Eigenschaften eines Das zentrale Thema dieses Artikels ist die Kommunikation verteilten Systems negativ beeinflusst, ist die Client–Server zwischen den Teilnehmern des verteilten Systems und wie Architektur des jabber Protokolls. Jeder Informationsaus- die vorgestellten Technologien ressourcenschonend eingesetzt tausch wird uber¨ den XMPP–Server geleitet. Diese Architek- werden konnen.¨ Fur¨ die Kommunikation zwischen den Kom- tur widerspricht der Vorgabe, dass es keinen Masterknoten ponenten des verteilten Systems entschieden sich die Autoren in einem verteilten System geben soll. Fallt¨ der Kommunika- fur¨ folgende Strategie: Bietet eine Komponente Services tionsserver aus, ist das gesamte System funktionslos, obwohl an, z.B. das Abfragen oder Andern¨ von Eigenschaftswerten, kein technischer Defekt der arbeitenden Knoten vorliegt. werden diese mit Ad–hoc Kommandos angeboten. Treten Eine Moglichkeit,¨ diesem Phanomen¨ entgegenzuwirken, Ereignisse auf, werden diese mit dem Publish und Subscribe ware¨ das redundante Anbieten des Kommunikationsservices. Paradigma umgesetzt. Fur¨ beide Falle¨ wurde eine asynchrone Dies ist jedoch nur ein praxisorientierter Ansatz um die Nachrichtenubertragung¨ ausgewahlt,¨ um dem Ressourcen Ausfallsicherheit zu erhohen.¨ Theoretisch besteht der Single bindenden Polling vorzubeugen. Point of Failure aus dem redundanten Netz der Kommunika- Die Entscheidung fur¨ Ad–hoc Kommandos fur¨ die Imple- tionsserver. mentierung fur¨ alle Funktionen die eine Komponente anbieten Eine theoretisch einwandfreie Losung¨ konnte¨ die verteilte kann, basiert auf der Ahnlichkeit¨ zu Webservices. Uber¨ Ad– Serverstruktur von XMPP darstellen. Dafur¨ musste¨ jeder hoc Kommandos kann ein XMPP–Teilnehmer definieren wel- Teilnehmer eines verteilten Systems einen eigenen XMPP– che Service dieser anbieten will. Daruber¨ hinaus konnen¨ die Server bereitstellen, der dann die Kommunikation mit den Parameter fur¨ einen Aufruf ebenfalls vorgeschrieben werden. anderen Komponenten bereitstellt. Fur¨ das hier aufgefuhrte¨ Damit auch Clients, die uber¨ keine Ad–hoc Funktionalitat¨ Beispiel ist dies aus Ressourcengrunden¨ nicht praktikabel. Be- verfugen¨ mit dem FHFTrain kommunizieren konnen,¨ haben stehen die Komponenten eines Verteilten Systems jedoch aus die Autoren ein Interface erstellt, dass Ad–hoc Kommandos geo–verteilten Servern, so konnte¨ ein zusatzlicher¨ Kommuni- uber¨ einfache Nachrichten ausgefuhrt¨ werden konnen.¨ kationsserver knotenseitig die Kommunikation bereitstellen.

136 Der Overhead eines XMPP–Servers muss fur¨ jedes System erfolgen. Beispiele fur¨ einen serverlosen Chat sind Adium abgeschatzt¨ werden. oder iChat basierend auf Bonjour von Apple. Der Einsatz in verteilten Systemen bedarf allerdings noch weiterer Untersu- B. Kritik an bestehenden XMPP–Clients chung. Wahrend¨ der Evaluation der Komponenten fur¨ die Umset- zung der jabber Technologien, stießen die Verfasser auf die VIII.FAZIT mangelnde Unterstutzung¨ von Erweiterungen bei aktuellen Stort¨ sich der Anwender nicht einen XMPP–Server als XMPP–Clients. Die beiden eingesetzten Techniken (Ad– Single Point of Failure zu betreiben, bietet das jabber Proto- hoc Kommandos und Publish / Subscribe Service) sind koll durchdachte Technologien um Echtzeitkommunikation in gangigen¨ Clients nicht praktikabel implementiert. Der zu betreiben. Die Arbeiten an diesem Thema zeigen auf, dass Publish und Subscribe Service fehlt bei gangigen¨ Clients die Moglichkeiten¨ der Kommunikation via XMPP weit uber¨ vollig.¨ Wohingegen die Ad–hoc Kommandos zwar von die Grenzen des Instand Messaging hinausgehen. Das jabber einigen Applikationen unterstutzt¨ wird, jedoch konnen¨ nur Protokoll beschrankt¨ sich nicht nur auf die Kommunikation serverseitige Ad–hoc Kommandos ausgefuhrt¨ werden. Die zwischen Menschen, sondern bietet Anwendern auch die Ausfuhrung¨ von Ad–hoc Kommandos von anderen XMPP– Moglichkeit¨ mit Computersystemen zu kommunizieren. Der Clients unterstutzt¨ bislang kein ublicher¨ XMPP–Client. Einsatz von XMPP als Kommunikationsinfrastruktur fur¨ Wie in Abschnitt V-B bereits beschrieben, haben die Ver- Maschinen ist ein aufstrebendes Themengebiet, dass auch fasser die zwei Technologien uber¨ einfache Sofortnachrichten in der Wirtschaft immer mehr Anklang findet. XMPP verfugbar¨ gemacht. hat das Potenzial um ein standardisiertes Protokoll fur¨ den Informationsaustausch zwischen Menschen, zwischen VII.WEITERFUHRENDE¨ ARBEITEN Mensch und Maschinen und nur zwischen Maschinen, zu A. XMPP in sicherheitsrelevanten Systemen werden. Der asynchrone Ansatz ist sowohl funktional als Evaluiert ein Unternehmen XMPP als neues Kom- auch ressourcenschonend. Die Verfasser halten das XMPP fur¨ munikationsmedium fur¨ Echtzeitkommunikation zwischen einen zukunftsorientierten Ansatz standardisierte Protokolle den Angestellten oder aber auch zur Koordination der zu entwickeln. Durch die Offenlegung der Protokolldefinition Geschaftsprozesse¨ und der Serverstrukturen, werden Sicher- wurde jabber zu einem erfolgreichem Projekt fur¨ verlassliche¨ heitsaspekte relevant. Zwei zentrale Sicherheitsmechanis- Kommunikation, dass auch von Unternehmen gerne genutzt men spielen in diesem Szenario eine maßgebliche Rol- wird. le. Zum einen die Authentifizierung und alle Teilnehmer LITERATUR eindeutig identifizieren zu konnen¨ und zum anderen die Verschlusselung¨ des Nachrichtenstromes. XMPP bietet grund- [1] V. Briegleb, “Erweiterte Entwicklerplattform fur¨ Instant Mes- senger,” http://www.heise.de/newsticker/meldung/Erweiterte- legende Funktionalitat¨ fur¨ diese Sicherheitsmechanismen, Entwicklerplattform-fuer-Instant-Messenger-189515.html. jedoch sind auch Kommunikationsserver von Angriffen und [2] P. Saint-Andre, K. Smith, and R. Tronc¸on, XMPP: The Manipulation nicht geschutzt¨ [24]. Um die Vertraulichkeit Definitive Guide: Building Real-Time Applications with Jabber und die Integritat¨ zu schutzen,¨ konnten¨ die bereits etablierten Technologies. O’Reilly Media, Inc., 2009. http://xmpp.org/extensions/ Methoden zur E-Mail Signierung und Verschlusselung¨ (z.B. [3] XMPP, “Xmpp Extensions,” . [4] T. Cloer, “Cisco schnappt sich Jabber Inc.” mit OpenPGP) im Kontext von XMPP neu diskutiert werden. http://www.computerwoche.de/netzwerke/tk-netze/1873947/. Vereinzelte Ansatze¨ (z.B. Off-the-Record Messaging (OTR)) [5] Cisco, “Cisco Announces Definitive Agreement to Acquire Jab- bestehn bereits [25]. ber,” http://newsroom.cisco.com/dlls/2008/corp 091908.html. [6] C. Moore, “Google Talk gives boost to XMPP,” B. Serverless XMPP http://www.infoworld.com/d/developer-world/google-talk- gives-boost-xmpp-551. Wie bereits erwahnt,¨ wird durch die Verwendung eines [7] I. Realtime, “About Ignite Realtime,” zentralen XMPP-Servers die Definition eines verteilten http://www.igniterealtime.org/about/index.jsp. Systems verletzt. Eine Losung¨ bietet jedoch die Erweiterung [8] Pidgin, “Pidgin, Finch, and libpurple,” mit Serverless Messaging [26]. Hierbei kommt das Prinzip http://developer.pidgin.im/. der konfigurationsfreien Vernetzung zum Einsatz. Das Ziel [9] Adium, “Getting the Adium Source,” http://trac.adium.im/wiki/GettingAdiumSource. ist eine Vernetzung ohne zentralen DHCP- oder DNS-Server [10] P. Saint-Andre, “Extensible messaging and presence protocol [27]. Um dies zu ermoglichen,¨ mussen¨ zunachst¨ dynamisch (xmpp): Core,” http://tools.ietf.org/html/rfc3920. die IP-Adressen vergeben werden. Dies erfolgt uber¨ das Link- [11] ——, “Extensible messaging and presence Local-Addressing, bei dem das Betriebssystem automatisch protocol (xmpp): Instant messaging and presence,” eine freie IP wahlt.¨ Zum Auffinden von Kommunikationspart- http://tools.ietf.org/html/rfc3921. [12] P. Saint-Andre and D. Smith, “Xep-0085: Chat state notifica- ner werden die Protokolle Multicast DNS und DNS Service tions,” http://xmpp.org/extensions/xep-0085.html. Discovery verwendet [26]. Im Anschluss kann ein Client-to- [13] P. Saint-Andre, “Xep-0045: Multi-user chat,” Client-Stream erzeugt werden und der Nachrichtenaustausch http://xmpp.org/extensions/xep-0045.html.

137 [14] “Selfhtml formulare,” http://de.selfhtml.org/html/formulare/index.htm. [15] R. Eatmon, J. Hildebrand, J. Miller, T. Muldowney, and P. Saint-Andre, “Xep-0004: Data forms,” http://xmpp.org/extensions/xep-0004.html. [16] P. Millard, P. Saint-Andre, and R. Meijer, “Xep-0060: Publish- subscribe,” http://xmpp.org/extensions/xep-0060.html. [17] P. Saint-Andre, “Xep-0203: Delayed delivery,” http://xmpp.org/extensions/xep-0203.html. [18] M. Miller, “Xep-0050: Ad-hoc commands,” http://xmpp.org/extensions/xep-0050.html. [19] J. Hildebrand, P. Millard, R. Eatmon, and P. Saint-Andre, “Xep-0030: Service discovery,” http://xmpp.org/extensions/xep- 0030.html. [20] W3C, “Web services description language (wsdl) 1.1,” http://www.w3.org/TR/wsdl. [21] H. Frank and R. Muller,¨ “Anwendungswunsche¨ und techni- sche machbarkeit in ubiquitous computing,” HMD - Praxis Wirtschaftsinform., vol. 229, 2003. [22] H. Bottger¨ and L. Piepmeyer, “Der fhftrain als modell fur¨ eine service orientierte architektur im ubiquitous computing,” Echtzeitsysteme im Alltag, 2006. [23] B. Bukovics, Pro WF: Windows Workflow in .NET 3.0 (Expert’s Voice in .Net). Apress, 2007. [24] M. Kompf, “Maschinen-chat,” iX, vol. 12, p. 136, 2008. [25] I. Goldberg, “Off-the-Record Messaging,” http://www.cypherpunks.ca/otr/. [26] P. Saint-Andre, “Xep-0174: Serverless messaging,” http://xmpp.org/extensions/xep-0174.html. [27] IETF, “Zero configuration networking (zeroconf),” http://www.zeroconf.org/.

138

Quality Engineering

Betreuer

Prof. Dr. Bernhard Hollunder Prof. Dr. Mohsen Rezagholi Prof. Dr. Steffen Thiel

139

Quality Properties for Service-oriented Architectures

Alexander Wahl Bernhard Hollunder Department of Computer Science Department of Computer Science Hochschule Furtwangen University Hochschule Furtwangen University Furtwangen, Germany Furtwangen, Germany [email protected] [email protected]

Abstract— Service-oriented architecture (SOA) is a paradigm software systems are typically enhanced with additional for structuring and composing distributed applications based features. The continuous integration of new features on on loosely coupled components. Beside an implementation of different levels opposes a clean separation. iii) Keeping the the functional requirements, a component ideally exhibits well- compatibility with former versions of the system, it is defined Quality of Service (QoS) properties like robustness, difficult to refactor a system to achieve a suitable separation. security, usability, and maintainability. This in particular iv) Finally, it is often not obvious from the beginning of a applies to components deployed in mission critical business development project which requirements are functional and applications. In software engineering, the proper treatment of which are not. Ideally, both categories of requirements are QoS attributes has a long tradition. In fact, there are many kept separated. Functional requirements are typically coded publications scrutinizing QoS attributes from different in a specific programming language (e.g. C# or Java). In perspectives. Though we can find in the literature some categorizations of applicable QoS attributes for the contrast, it would be a good strategy to define non-functional construction of software systems, a comprehensive list has not requirements declaratively and to separate them from the been elaborated yet. In this paper, we collect QoS attributes source code. from well-known sources such as standards and specifications, We can observe a clear tendency towards this concept, as and arrange them is a consistent and structured manner. The demonstrated by modern technologies such as Java EE, .Net, second contribution of this paper is an assessment of the QoS and Web services. So-called deployment descriptors allow attributes with respect to their relevance for SOA. In the representation of selected QoS attributes such as access particular, we argue that the relevance of a specific QoS control strategies in a declarative manner. In software attribute is depending on the SOA layer. engineering, there was much research on QoS attributes for software systems. In fact, standardization organizations such Keywords- SOA, Quality of Service, QoS, quality properties as ISO and DIN have identified manifold QoS attributes. However, it turned out that there is no comprehensive list of I. INTRODUCTION QoS attributes available yet. In the first part of the paper, we Engineering projects are usually described by their therefore compile a thorough list of QoS attributes based on requirements. Generally, a requirement specifies a need of well-known documents exhibiting QoS attributes. In the what elements and functions are necessary for a system. In second part, we examine the identified QoS attributes in the system and software engineering there are mainly two context of SOA, which has become a popular architectural categories of requirements: functional and non-functional paradigm for designing distributed, enterprise applications. requirements. The term functional requirement describes a The SOA model consists of several logical layers. We specific business or technical functionality of a system. In analyze for each layer the relevance of the identified QoS contrast, a non-functional requirement represents a so-called attributes. To sum up, the contributions of the paper are a Quality of Service (QoS) property of the system. Well- thorough overview of QoS attributes in software engineering known examples of QoS attributes are performance, security, and development, an assignment of the QoS attributes to the robustness, and usability. When constructing software SOA layers and an assessment of their relevance. systems, both categories of requirements are to be considered. Thereby it is desirable to keep both categories II. QUALITY OF SERVICE ATTRIBUTES separated, following the separation of concerns principle. Prior to discussing QoS attributes for SOA, we review This is because usually functional requirements seldom those properties that are generally accepted by change, but QoS attributes may need to be adjusted standardization organizations, the majority of software frequently. In praxis, the boundaries between functional and developers, and software companies. For this task, existing non-functional requirements are often blurred during standards and specifications are a valid source. We analyze implementation instead of keeping them strictly separated. the frequently referenced ISO/IEC 9126 [1–4] (respectively Some possible reasons are: i) In the past, there was often no its successor ISO/IEC 25000 [5]), DIN EN ISO 9241 [6, 7] technical support available enabling the separation of the two and DIN 66272 [8]. Also, the publications of [9] or [10] are categories of requirements. ii) During their life cycle, still a valuable input. Already having their focus on SOA and

141 Web applications, [11] and [12] are also examined. In Operational System subdivides in the two parts Operating addition, we found a committee draft on Web Services System and Infrastructure (CRM, ERP, BI, Databases). Quality Factors [13]. In the latter the naming of QoS Enterprise Components contains the business components attributes fairly differences from the publications. But and applications. The Services layer exposes simple and basically they relate to similar QoS attributes. aggregated services. The Business Process & Choreography We found additional publications on QoS attributes, but layer defines compositions and choreographies of services they are either referring to the sources already listed before from the Services layer. Finally, the Presentation layer or consider properties similar to the ones already being defines the human-machine-interaction, which relates to the described. Table 1 shows a thorough list of QoS attributes Graphical User Interface (GUI) in terms of portals, portlets and the corresponding references they originate. The and similar technologies. Additional to these five horizontal properties are grouped in several categories of more general stacked layers, the logical architecture also describes two QoS attributes (bold) including more specific quality layers, namely Integration Architecture and QoS, Security properties (italics). Management and Monitoring, spanning vertically the ones mentioned above. The first one, Integration Architecture, III. QUALITY ATTRIBUTES APPLIED TO SOA mostly focuses on the usage of an Enterprise Service Bus In the previous section we created a thorough list of (ESB), which is not in focus here and henceforth unlisted. quality properties derived from several sources. We now The latter one, QoS, Security Management and Monitoring, discuss these QoS attributes in the context of SOA. is exactly what we will discuss in deep in the following Development of distributed systems following the SOA sections. Equipped with the SOA layers and a thorough list paradigm got a real boom and is commonly used today. of QoS attributes from the previous section, we can now Together with this boom also the need of ensuring well- discuss which QoS attributes are applicable to which layers. defined quality aspects came up. Prior to discussing quality Table 2 shows valid and meaningful combinations of SOA properties with respect to SOA, we need to describe what the layers and QoS attributes that we will discuss in the term SOA means for us. This is important because different following. definitions exist. These definitions may all be true, since the The first group of quality properties depicts definition of SOA strongly depends on the point of view of Functionality, which is the ability of a component to fulfill a the person talking about SOA. But this also means that there required (group of) functions. This is not to be mixed up with is no unique and generally accepted definition available. functionality in the context of functional requirements, which For us, a SOA is a paradigm describing system describes a desired feature of the software. Functionality has architecture of distributed systems with the focus on well- the subsidiary properties Suitability, Accuracy, Correctness, organized services. Services provide the key business Interoperability, Security and Integrity. Suitability is the functions, are loosely coupled, and highly interoperable ability to solve a specific task. Accuracy and Correctness within a heterogeneous environment. describe the characteristic of returning accurate and correct Several logical architectures for SOA based systems have results, respectively. All of them apply to all layers since been published. No matter which is referred to they typically they are basic requirements for all software systems. By describe a model consisting of several layers (see for Interoperability the ability of components to interact with example [14–17]). For our purpose, we will refer to a logical each other is meant. We observe that interoperability is not a architecture based on IBM‟s model described by Arsanjani general requirement in software development. It does [14] and Weyerhäuser [16], respectively. Within this model therefore not necessarily apply to all layers, but due to the the layers used - from bottom to top - are called Operational definition of SOA it is crucial at least at the Services layer. Systems, Enterprise Components, Services, Business Process This becomes immediately clear if we take a closer look at & Choreography, and Presentation (0). the purpose of the service layer: the Services layer forms the interoperable components. Security is the ability to ensure access control, authorization, confidentiality, authenticity, integrity of components and messages exchanged between them. To achieve these properties, techniques such as encryption, authentication and digital signatures are used. Like Interoperability, the QoS attribute Security does not always apply, especially if an application is not distributed or deployed in a very restricted and controlled environment. But at the time components are directly or indirectly accessible from the public network (as in the case of the internet), security immediately becomes a big issue. Within SOA, this especially applies to the layers Presentation, Business Process & Choreography and Services, respectively. The next group deals with Reliability and its subordinate properties Maturity, Fault and Error Tolerance, Figure 1. SOA layers model. Recoverability and Robustness. IEEE defines reliability as

142 being “the ability of a system or component to perform its and bandwidth and describes the duration a task needs to required functions under stated conditions for a specified end. As an example, the calculation time is the time needed period of time” [IEE90]. Reliability is essential to almost all to compute a result, which is the sum of all subsidiary software components. This is especially true for published calculations. Time Behavior applies to all layers except the technical and business services, because the majority of presentation layer. Often, a GUI is not a critical component service consumers will prefer reliable services. Maturity can with respect to time behavior, especially in the context of be considered as a prerequisite for Reliability of a distributed systems. Updating the GUI usually is performed component. Normally, Maturity and Reliability correlate in almost in no time compared to the time consumption of a sense that with increasing maturity of a system the communication via network. reliability also increases (and vice versa). Fault and Error Maintainability / Flexibility, with Analyzability, Modifia- Tolerance is the ability of a system keeping in a stable and bility and Extensibility, focus on the ability of a system to be consistent state even in case of an abnormal situation. A modified during operation, the effort needed to adapt a component should always consider all supposable error system to meet new requirements and the necessary effort to situations. Faults and errors should at least be handled within identify components that have to be modified. Certainly, a the service provider and be reported clearly to the service main benefit of SOA is to achieve more flexible systems consumer enabling him to react appropriately. Nevertheless, than with traditional software architectures. Hence, all of a system may run in some unforeseen configuration. these QoS attributes apply to some SOA layers. At the Robustness measures the ability to deal with such a situation. Presentation layer, this depends on the technology used: A high quality system will remain in a well-defined state With markup-based technologies (like portlets) and modern even in case of an unexpected, fatal error. Both, Fault and frameworks (like Qt, WPF, JSF) GUI adaptations, even Error Tolerance as well as Robustness are essential for complete renewals, can be done without the need to stop the service providers, but in general they apply to all layers of system during operation. The development is done while the the SOA model. The last candidate in the Reliability group is previous version of the components is still in used. The new Recoverability, which is the ability to recover on occurrence components are directly used the time they are finished and of a failure to a defined state and to regain consistent data. have been deployed. In general, it is desirable to have a GUI This is essential on Enterprise Components and Operational that meets the QoS attributes of Maintainability, Flexibility, System layers. On the other layers, it strongly depends on the Modifiability, Extensibility and Analyzability. At the context. If we think of services being stateless software Business Process & Choreography layer the dynamic components recoverability does not apply to the Service processes of business logic are realized. Since business layer. On the Business Process & Choreography layer it processes are continuously adapted to fulfill new customer might apply if the failure occurred within a stateful requirements, the properties Maintainability, Flexibility, workflow. For the Presentation layer we have a similar Modifiability, Extensibility and Analyzability are a must. situation. The dynamic processes modeled in Business Process & Usability is a quality property related to human- Choreography layer are based on the services provided by computer-interaction and applies mainly to the Presentation the Services layer. Services are usually modeled being pretty layer, as its subsidiary properties do: Understandability, static and elementary steps of the business logic. Clarity, Learnability, Operability, and Attractiveness. All of Modifiability therefore only applies to services with the them are commonly known quality properties for GUI design limitation that the contract is not changed. Extensibility is and development. They are discussed in ISO 9241 [6, 7] and achieved by adding new services. Theoretically, existing related GUI style guidelines. services can also be extended directly. However, in that case Efficiency is the relation of received performance at the contracts should at least be versioned, because once a specific resource usage. Usually the more resources are service is changed some questions are: Does the service required to achieve a desired level of performance the more contract change? Do we know all service consumers using are the (monetary) costs. Often, there is the common goal to our service? Does the change or extension of the service be as efficient as possible. Therefore efficiency plays an affect the existing service consumers in a negative way? Do important role at every layer. Resource Behavior is a service consumers have to change their code to further on description of the amount of resources needed and the time use the service? In summary, prior to changing an existing these resources are used. Resources do cost money. The service the consequences of the change have to be checked costs depend, in general terms, on the maximum of resources carefully. Usually Maintainability, Flexibility, Modifiability needed and the time they are needed. There are two ways to and Extensibility and Analyzability are more based on the optimize the resource behavior: i) Reducing the amount of sophisticated combination of single services than on services resources needed, which means a considerate use of system itself. Therefore, these QoS attributes do not apply to the resources. ii) Reducing the time a certain resource is needed. Services layer but to the Business Process & Choreography If a resource is not needed at a certain time it should be freed layer. The Enterprise Components layer often contains so it can be used by other systems. Carelessness in inflexible and monolithic applications and components development concerning resource usage, especially in implementing the specific business logic. Components in this software development, causes an increase of costs. We argue layer usually will not be systematically modified once SOA that Resource Behavior applies to all layers. The Time is applied. This is because developing an additional service Behavior property relates to response time, calculation time, and to combine it with the service exposing the functionality

143 of the “old” component is a more flexible strategy and of interesting point once resources are shared (e.g. via multi- lower risk than enhancing the “old” component. Therefore, threading or shared memory). This question arises at all the QoS attributes Maintainability, Flexibility, Modifiability layers of a SOA and therefore applies to all of them. The and Extensibility and Analyzability do not apply here. At the discussion on Replacability is similar to Modifiability, added Operational Systems layer, the QoS attributes have to be by the fact that services are replaceable anytime as long as interpreted in a different way. Maintainability, Flexibility as they do not change the contract. Reusability is also a main well as Modifiability, Extensibility focus here on the one goal of SOA and applies to all of its layers. At the hand on changing hardware components and on the other Presentation layer, Reusability can be achieved if, for hand on changing operational system components without instance, the Portlets technology is applied properly. limiting the operability of the system. In this context Components of the Business Process & Choreography level Maintainability, Flexibility, Modifiability and Extensibility can be reused by, for example, extending an existing and Analyzability all do apply to this layer. Stability choreography with an additional service; and the services describes the ability of the system to keep up an operational from the Services layer may be recombined in different state without failures and data loss within as many choreographies. Enterprise Components are reused by constraints as possible. This property is a general quality services, and components in the Operational Systems by the goal in software engineering and applies to all layers. ones from the Enterprise Components. Testability according to IEEE standard is: (i) The degree to The operating efficiency of a system is described by the which a system or component facilitates the establishment of term Performance. As already mentioned, SOA is used to test criteria and the performance of tests to determine implement distributed systems. This implies the use of a whether those criteria have been met. (ii) The degree to network environment. Using networks Performance is an which a requirement is stated in terms that permit issue, and response times, calculation times or similar are establishment of test criteria and performance of tests to discussed. By the way: while discussing different time determine whether those criteria have been met (cf. [18]). parameters in the context of Performance it can be seen that Hence, testability is mainly performing tests against Performance relates to Time Behaviour described above. specifications. In traditional software engineering, several However, Performance has a different flavour because it has kinds of tests (White-, Gray- or Black-Box-Test) can be a higher dependency to the current execution context. For performed. Within a SOA, this situation has slightly example, maximum performance achievable of a system may changed. At the Services layer and above the testability be described by a certain amount of parallel executable changes with accessibility. For example, if the service does operations per second. Now assume there are two algorithms not publish its source code somehow the testability decreases for the same problem: one parallel and one sequential since white-box-testing is no longer available. Also the implementation. Obviously, the parallel one will have a dynamics do affect the testability since, for example, superior time behaviour to the sequential one, even though applications may be composed at runtime. For a more the performance in the context of the system remains the detailed discussion on SOA and testability refer to [19]. same. Performance is strongly influenced by the Scalability Operational Systems layer, Enterprise Components layer and of a system, which is its ability to react on changing load by Presentation layer usually do cover components that can also changing its operating efficiency. This property is useful for be found in traditional software engineering. Testability service providers to allocate and release resources depending already was an issue in traditional software engineering and on the utilization of the system infrastructure. Thus, it is no does therefore apply to these layers. To sum up, testability in question that this QoS attribute applies to the layers SOA may be challenging and applies to all layers. Operational Systems, Enterprise Components, Services and Portability is a main feature of SOA that is achieved by Business Process & Choreography. On the Presentation extensive use of standardized technologies. It applies to the layer, scalability is usually not an issue. Availability is Services layer, the Business Process & Choreography layer, crucial in a SOA, and applies to all layers. This becomes and the Presentation layer, since these contain the interesting once systems with high availability are needed. components that exchange data or have to be exchanged in a On the other hand, availability can also be used to describe heterogeneous environment. It does not primarily apply to time slots within selected components are to be available. the Enterprise Components layer and the Operational Ergonomics, in terms of Accessibility, Conformity with Systems layer, since there is usually no demand to run the user expectations, Suitability for learning, Suitability for components in different environments. The same applies to individualization, Controllability, relates to human-machine- Adaptability. Installability describes the effort that is interaction. Therefore, they are relevant to the Presentation necessary to get a system operating within a defined layer only. Selfdescriptiveness is the ability to be environment. At the Enterprise Components layer and the understandable. In Presentation layer understandability Operational Systems layer the traditional meaning of focuses on the GUI to be easily understood by the user. Self- Installability applies, whereas at the Services layer and above descriptiveness therefore applies at least to the Presentation this is more like Deployability, which is the ability to host a layer. But Self-descriptiveness also includes the ability to be component in an application server and to publish its easily understood by a developer who wants to use the services. Next is Coexistence, which measures whether component. As a consequence Self-descriptiveness is different components can operate in the same environment applicable to all SOA layers. Findability being the ability of without interfering with each other. This becomes an a component to be found by another component is again

144 essential in SOA and applies to all layers except the individual entities of the SOA layers with QoS attributes is Presentation layer. still an issue. This is also a topic of future research. Compliance is the accordance to standards, contracts, rules and regulations, which is a general need in software REFERENCES development. The same is true for Conformity with the law. [1] ISO 9126-1:2001, Software engineering ‐ Product quality ‐ Part 1: Auditability is defined as being the ability to review and to Quality model: ISO, Geneva, Switzerland, 2001. retrace activities performed. This ability is often desirable [2] ISO 9126-2:2003, Software engineering ‐ Product quality ‐ Part 2: and in some domains (e.g., medical engineering and finance External metrics: ISO, Geneva, Switzerland, 2003. sector) even mandatory and usually applies to all layers. To [3] ISO 9126-3:2003, Software engineering ‐ Product quality ‐ Part 3: sum up, in this section we have elaborated the impact of Internal metrics: ISO, Geneva, Switzerland, 2003. well-known QoS attributes on the SOA model. It turned out [4] ISO 9126-4:2004, Software engineering ‐ Product quality ‐ Part 4: Quality in use metrics: ISO, Geneva, Switzerland, 2004. that the applicability of the properties strongly depends on [5] ISO 25000:2005, Software Engineering ‐ Software Product Quality the SOA layer. Hence, their applicability has to be discussed Requirements and Evaluation (SQuaRE) ‐ Guide to SQuaRE: ISO, from layer to layer separately. We have also seen that some Geneva, Switzerland, 2005. of the QoS attributes need to be (re-)interpreted before they [6] ISO 9241-11:1998, Ergonomic requirements for office work with can be applied in the context of a specific SOA layer. For visual display terminals (VDTs) ‐ Part 11: Guidance on usability: some QoS attributes their meaning or focus must be slightly ISO, Geneva, Switzerland, 1998. adapted depending on layer. Other QoS attributes are [7] ISO 9241-110:2006, Ergonomics of human-system interaction ‐ Part straightforward and obvious what they stand for and what 110: Dialogue principles: ISO, Geneva, Switzerland, 2006. has to be done to realize them. Few QoS attributes have [8] DIN 66272:1994, Informationstechnik - Bewertung von Software- definitions that are quite fuzzy and it is vague how to Produkten; Qualitätsmerkmale und Leitfaden zu ihrer Verwendung: Deutsches Institut für Normung, Berlin, Germany, 1994. formalize and realize them. However, for a couple of QoS [9] Joseph P. Cavano and James A. McCall, “A framework for the attributes there already exist specifications targeting at the measurement of software quality,” SIGSOFT Softw. Eng. Notes, vol. SOA context. Some of these specifications have already been 3, no. 5, pp. 133‐139, 1978. implemented and are supported by application servers, as [10] B. W. Boehm, J. R. Brown, and M. Lipow, “Quantitative evaluation shortly discussed in the next section. of software quality,” in ICSE „76: Proceedings of the 2nd international conference on Software engineering, Los Alamitos, CA, IV. SUMMARY AND PERSPECTIVE USA: IEEE Computer Society Press, 1976, pp. 592‐605. [11] Klaus Franz, Handbuch zum Testen von Web-Applikationen: The proper treatment of non-functional requirements is a Testverfahren, Werkzeuge, Praxistipps. Berlin, Heidelberg: Springer- general issue in software engineering, and especially for Verlag Berlin Heidelberg, 2007. SOA based enterprise applications. Non-functional require- [12] L. O„Brien, P. Merson, and L. Bass, “Quality Attributes and Service- ments describe QoS attributes of an application and hence Oriented Architectures,” http://www.sei.cmu.edu/pub/documents/ are orthogonal to the functional requirements an application 05.reports/pdf/05tn014.pdf, 2005. has to fulfill. In order to get a comprehensive list of QoS [13] OASIS, Web Service Quality Factors Version 1.0. Comittee Draft 02 attributes, we collected QoS attributes from several / Public Review Draft 01. Available: http://www.oasis- publications (e.g., standards and specifications) and arranged open.org/committees/download.php/38611/WS- Quality_Factors_v1.0_cd02.zip. them in a consistent manner. The majority of the publications [14] Ali Arsanjani, “Service-oriented modeling and architecture,” were defined prior to the upcome of the SOA paradigm. https://www.ibm.com/developerworks/library/ws-soa-design1/, 2004. Hence, an important question is whether or not the identified [15] Daniel Liebhart, SOA goes real. München: Carl Hanser Verlag, QoS attributes are relevant for SOA based applications. In München, 2007. this paper, we give an answer to this question. The approach [16] Markus Weyerhäuser and Stephan Becker, “Enterprise SOA,” applied in this paper is to examine the relevance of QoS JavaSPEKTRUM, vol. 04, http://www.sigs-datacom.de/ attributes for the different layers of the SOA model. It turned wissen/artikelfachzeitschriften/artikelansicht.html?tx_mwjournals_pi out that there are properties tackling each SOA layer. 1[pointer]=0&tx_mwjournals_pi1[mode]=1&tx_mwjournals_pi1[sho Examples among others are testability, stability, and wUid]=1611, 2005. documentation quality. On the other hand, properties such [17] Srikanth Seshadri, Logically SOA - A logical architecture for SOA: JavaWorld.com. Available: http://www.javaworld.com/javaworld/jw- ergonomics and learnability are relevant for a single layer 01-2007/jw-01-soa.html. only (in this case the Presentation layer). There are major [18] “IEEE standard glossary of software engineering terminology,” IEEE differences towards the formalization of QoS attributes. Std 610.12-1990, http://ieeexplore.ieee.org/servlet/ While it is easy to describe the exact meaning of security opac?punumber=2238, 1990. aspects such as message confidentiality and integrity, it is not [19] W. T. Tsai, J. Gao, X. Wei, and Y. Chen, “Testability of Software in obvious how to measure, for instance, the maturity or Service-Oriented Architecture,” in COMPSAC „06: Proceedings of analyzability of a software component. A discussion on the the 30th Annual International Computer Software and Applications Conference, Washington, DC, USA: IEEE Computer Society, 2006, formalization of the introduced QoS attributes is subject for pp. 163‐170. further research. From a practical point of view, some of the identified QoS attributes play an important role for SOA based applications. However, the uniform implementation and availability of sufficient tools for developer to equip the

145 UALITY ROPERTIES VERVIEW TABLE I. Q P O

-

-

2005

-

2005 Quality Property

- 9241 Franz Lipow TN014 DIN 66272 DIN

Quality Property WS OASIS DIN EN ISO EN ISO DIN 9241 ISO/IEC 9126 ISO/IEC Franz Lipow TN014 Boehm, Brown, Brown, Boehm, Quality Factors Quality CMU/SEI McCall Cavano, DIN 66272 DIN OASIS WS WS OASIS DIN EN ISO EN ISO DIN ISO/IEC 9126 ISO/IEC Boehm, Brown, Brown, Boehm, Quality Factors Quality CMU/SEI McCall Cavano, Testability X X X X X

Functionality X X X Portability X X X X X

Suitability X X Adaptability X X Accuracy, X Correctness Installability x Interoperability X X X X Coexistence X

Security X X Xa X Replacability X

Reliability X X X X X X Reusability X

Maturity X Deployability X Fault Tolerance, X X X Performance X X Error Tolerance Recoverability X Scalability X

Robustness X Availability X X

Usability X X X X X X Ergonomics X Understandability, X X Accessibility X X Clarity Conformity with X Learnability X user expectations Suitability for Operability X X X learning Suitability for Attractiveness X X individualization Self- Efficiency X X X X X X X descriptiveness Time Behavior X X Controllability X X Resource X X Behavior Findability X X Maintainability / X X X X X Flexibility Compliance X Analyzability X Auditability X X Modifiability, Conformity with X X X X X X Extensibility the law/standard Stability X a. with limitations (see text)

146 TABLE II. QUALITY PROPERTIES OVERVIEW

Quality Property System Services

Quality Property Enterprise Operational Operational Presentation Components Choreography System Services Business Process, Process, Business Enterprise Enterprise Operational Operational Presentation Components Choreography Business Process, Process, Business Portability X X X

Functionality X X X X X Adaptability X X Xa X X

Suitability X X X X X Installability X X

Accuracy,Correctness X X X X X Coexistence X X X X X

Interoperability X Replacability X X Xa X X

Security X X X Reusability X X X X X

Reliability X X X X X Deployability X X X

Maturity X X X X X Performance X X X X X

Fault Tolerance, Error Tolerance X X X X X Scalability X X X X

Recoverability X X Availability X X X X X

Robustness X X X X X Ergonomics X

Usability X Accessibility X

Understandability,Clarity X Conformity with user expectations X

Learnability X Suitability for learning X

Operability X Suitability for individualization X

Attractiveness X Self-descriptiveness X X X X X

Efficiency X X X X Controllability X

Time Behavior X X X X Findability Xa X X X X

Resource Behavior X X X X X Compliance X X X X X

Maintainability / Flexibility X X X Auditability X X X X X

Analyzability X X Conformity with the law/standard X X X X X Modifiability,Extensibility X Xa X a. with limitations (see text)

Stability X X X X X

Testability X X X X X

147

Security Engineering: Prozesse und Methoden zur Entwicklung sicherer Software

Christian Fabbricatore, Sebastian Ziganki and Markus Zucker Department of Computer Science Furtwangen University of Applied Sciences Robert–Gerwig–Platz 1, D–78120 Furtwangen {c.fabbricatore, s.ziganki, m.zucker}@hs-furtwangen.de

Zusammenfassung—Durch die immer großer¨ werdende An- Im Kontext dieses Papers wird die aktuelle Bedrohungslage zahl vernetzter Systeme und dem Internet als globalem Kom- und die aktuellen Angriffen diskutiert. Basierend auf diesen munikationsmedium, kann sich nahezu keine Software heutiger Erkenntnisse werden Entwicklungsprozesse klassischer und Sicherheitsfragen entziehen. Softwareentwickler mussen¨ sich zwingend mit der Entwicklung sicherer und verlasslicher¨ agiler Natur vorgestellt. Daruber¨ hinaus werden weitere Software auseinandersetzten um dieser Gefahrenlage entgegen- Ansatze¨ und Ausblicke erortert.¨ Abschließend wird der zuwirken. Um Entwicklern einen Uberblick¨ uber¨ die heutigen aktuelle Status der sicherheitsrelevanten Softwareentwicklung Techniken zur Gefahrenabwehr geben, analysiert dieses Paper bewertet. die aktuelle Bedrohungslage und erlautert¨ heutige Prozesse um sichere und verlassliche¨ Software zu entwickeln. II.BEGRIFFSDEFINITION Keywords-Sichereit; Security Engineering; SDL; Sichere Soft- ware; Sicherheit ist zu einem Schlagwort in der heutigen Zeit geworden. In der Presse wird von der inneren Sicherheit oder I.EINLEITUNG der Sicherheit im Kampf gegen den Terrorismus gesprochen. Das Wort Sicherheit hat in unseren Kopfen¨ einen festen Das Internet als Erfolgsmedium des 21ten Jahrhunderts hat Platz ohne genau Definition eingenommen. Mit Sicherheit das Zusammenleben und die Kommunikation der Menschheit wird immer eine Gefahrenlage assoziiert gegen die geschutzt¨ maßgeblich revolutioniert. Ebenso ist dieses Medium fur¨ werden muss. Unternehmen kaum mehr wegzudenken. Mit dem großen Fur¨ das Security–Engineering wir eine klare Definition Erfolg treten immer mehr Probleme auf: Der Datenschutz benotigt,¨ die zum Ausdruck bringt, wann ein Softwaresys- bekommt eine ganz neue Dimension, Unternehmen verlassen tem als sicher“ eingestuft werden kann. Der Verband der ” sich auf die bestehende Infrastruktur um ihre Geschaft¨ Elektrotechnik, Elektronik und Informationstechnik (VDE) zu verwalten aber auch Kriminalitat¨ in Form von Betrug definiert Sicherheit als eine Sachlage, bei der das Risiko erreicht eine neue Ebene. Die aufgefuhrten¨ Problematiken nicht großer¨ als das Grenzrisiko ist. Als eigenstandige¨ sind nur eine geringe Teilmenge, die heutzutage die gesamte Definition fur¨ Sicherheit ist diese Erklarung¨ unbrauchbar. Gefahrensituation ausmachen. Um mit dieser Spezifizierung arbeiten zu konnen¨ muss Neben dem Gefahrdungspotenzial,¨ dass durch das Internet zusatzlich¨ der Begriff Grenzrisiko“ untersucht werden. Um ” entstanden ist, gibt es verschiedene Bereiche in denen eine vollstandige¨ Definition bereitzustellen liefert der VDE Sicherheit eine große Rolle spielen. Allen voran im Mi- die folgende Definition fur¨ das Grenzrisiko: Das Grenzrisiko litarbereich¨ in dem es große Risiken gibt, Menschenleben ist das großte¨ noch vertretbare Risiko eines bestimmten zu gefahrden.¨ Allgemein mussen¨ Sicherheitsfragen immer technischen Vorganges oder Zustandes.[1] Aus diesen beiden dann mit in die Entwicklung aufgenommen werden, wenn Begriffserklarungen¨ wird die Sicherheit als relativer Zustand Gefahr fur¨ Leib und Seele bestehen. Weitere Bereiche in definiert. denen Sicherheitsaspekte nicht außer Acht gelassen werden Fur¨ das Security–Engineering bedeutet dieser relative konnen¨ sind der Automotivbereich, die Raumfahrttechnik Zustand, dass man ein Risiko definieren muss, das man aber auch der gesamte Medizinsektor. vertreten kann. Je nach Softwaresystem muss diese Grenze Die klassische Softwareentwicklung geht nur bedingt auf anders festgelegt werden. Fur¨ Internetbrowser, die hohe diese Gefahren ein und bietet mit der Softwarequalitat¨ eine Einsatzzahlen und einer stetigen Gefahr ausgesetzt sind, muss Wissenschaft, die sich lediglich auf die korrekte Umsetzung das Risiko fur¨ ein Sicherheitsproblem hoher¨ eingeschatzt¨ von Anforderungen, die Vermeidung von Programmierfehlern werden als bei wenig eingesetzten Spartenwerkzeugen (z.B. und der korrekten Funktionalitat¨ im System konzentriert. Audio– oder Videobearbeitung). Bei der Analyse des Gefah- Wird eine Software als sicherheitskritisch eingestuft, muss renpotenzial muss berucksichtigt¨ werden, dass es weder in die bisherige Softwareentwicklung um Sicherheitsaspekte der Natur noch in der Technik eine absolute Sicherheit gibt. erweitert werden. [1]

149 Im der englischen Sprachen wird zwischen Security und zusichern konnen,¨ implementieren sie verschiedene Techni- Safety unterschieden, im deutschen gibt es diese Unter- ken: scheidung nicht, sodass mit Sicherheit zwei verschiedene 1) Authentifizierung & Autorisierung: Die Authentifi- Themengebiete vereint werden. Unter Safety versteht man zierung hat die Aufgabe, einer real existierender Person Sicherheit im Sinne von Fluchtwegen, Notfallplane¨ oder gegenuber¨ dem System auszuweisen. Authentifizierung wird auch technische Ausfallen¨ (wie z.B. Festplattenausfalle).¨ in der Regel mit Hilfe eines Verzeichnisdienstes umgesetzt. Safety ist die Sicherheit aus technischer Sicht. Security Populare¨ Beispiele sind das Active Directory oder das hingegen ist die Sicherheit aus Unternehmenssicht. Sowohl quelloffene OpenLDAP, die beide uber¨ das Lightweight Angriffe auf ein IT–System, als auch Ausfalle¨ eines Services Directory Access Protocol (LDAP) angesprochen werden fallen unter den Begriff Security. Die Grenze zwischen konnen.¨ In manchen Fallen¨ ist ein domanenweites¨ Verzeichnis Safety und Security ist fließend und die Zuordnung von uberdimensioniert¨ und es kann auf eine eigene Benutzerver- Gefahren auf diese beiden Begriffe ist Ermessenssache. Ein waltung zuruckgegriffen¨ werden. Hardwareausfall ist aus technischer Sicht als Safetyproblem Nachteil ist, dass diese Technik zur Sicherstellung der einzustufen, fallt¨ allerdings durch diesen Hardwaredefekt Authentifizierung nur innerhalb einer Domane¨ gultig¨ sind. ein Anwendungsserver aus ist die Sicherheit im Sinne von Benutzer die mit Schnittstellen eines Systems agieren, mussen¨ Security betroffen. Im Verlauf dieser Arbeit wird Sicherheit gesondert behandelt werden. Fur¨ den E–Mailverkehr gibt es entsprechend der Security Definition verstanden. Signierungsverfahren wie z.B. Pretty Good Privacy (PGP), Mit diesen Begriffsbeschreibungen steigen wir in das um auch auf sicherem Weg mit dem System kommunizieren Themenfeld Security–Engineering ein. Die Basisliteratur zu konnen.¨ definiert Security–Engineering als Wissenschaft, die sich Neben der Authentifizierung spielt die Autorisierung eine auf das Erstellen von verlasslichen¨ Systemen, in Hinsicht weitere Rolle zur Durchsetzung der Vertraulichkeit. Zugriffs- auf Angriffen, Fehler und Unfalle¨ konzentriert. Als Disziplin regeln werden in der Regel aus den Geschaftsmodellen¨ fokussiert sich Security–Engineering auf die Werkzeuge, die abgeleitet. Diese Regeln konnen¨ sich auf Zugriffe auf Prozesse und die Methoden die benotigt¨ werden um gesamte Informationen (z.B. auf Dateisystemebene) oder auch auf Systeme zu entwerfen, implementieren und zu testen. Daruber¨ die Einstellung diverser Parameter beziehen. In diesem hinaus beschreibt Security–Engineering die Anpassung von Zusammenhang spricht man von Zugriffskontrolle. existierenden Systemen an neue Situationen.[2] Mit der Authentifizierung werden die Befugten“ aus II-A ” In den folgenden Abschnitten wird genauer Untersucht, identifiziert und mit der Autorisierung wir sichergestellt das welche Eigenschaften eine Software oder ein System braucht die vertraulichen Informationen vor Unbefugten“ beschutzt¨ ” um als sicher zu gelten. werden. 2) Kryptografie: Fur¨ besonders kritische Informatio- A. Vertraulichkeit nen (vor allem Informationen die negative Auswirkung Einer der drei Grundeigenschaften ist die Vertraulich- auf den Geschaftsbetrieb¨ haben konnen)¨ eignen sich Ver- keit (Confidentiality). Das Bundesamt fur¨ Sicherheit in schlusselungsverfahren¨ zum Schutz der Daten vor Unbefug- der Informationstechnik (BSI) definiert diese Eigenschaft ten. Kryptografie eignet sich daruber¨ hinaus fur¨ den Schutz als Schutz vor unbefugter Preisgabe von Informationen. mobiler Endgerate,¨ wie z.B. Notebooks oder Personal Digital Vertrauliche Daten und Informationen durfen¨ ausschließlich Assistant (PDA)s. Im Falle des Verlustes1 eines solchen Befugten in der zulassigen¨ Weise zuganglich¨ sein. [3] Ross Gerates¨ durfen¨ die darauf befindlichen Informationen Dritten Anderson beschreibt in seinem Standardwerk Vertraulichkeit nicht zuganglich¨ sein. Mit Open Source Anwendungen wie in einfachen Worten als Verpflichtung die Geheimnisse TrueCrypt fur¨ Windows oder eine Kombination aus dm-crypt einer anderen Person oder eines Unternehmens geheim zu und cryptsetup fur¨ Linux stehen bereits fertige Ansatze¨ zur halten. [2] Neben den Aspekten des Datenschutzes (Ge- Verfugung¨ um diesem Szenario entgegenzuwirken. heimhaltung gegenuber¨ Dritten) beinhaltet die Vertraulichkeit auch die Zugriffssteuerung innerhalb einer Firma. Werden B. Integritat¨ Geschaftsprozesse¨ auf ein Softwaresystem abgebildet muss Die zweite der drei Grundeigenschaften ist die Integritat¨ das System gewahrleisten,¨ dass diese Prozesse nicht uber¨ (Integrity). Als Basis fur¨ die literarische Definition dient das System umgangen werden konnen.¨ Zum Verstandnis¨ das Glossar des BSI. Demnach bezeichnet Integritat¨ die kann man sich vorstellen, das ein Monteur keinen Zugriff Sicherstellung der Korrektheit (Unversehrtheit) von Daten auf die Daten der geheimen Entwicklungen haben darf. (oder Informationen) und der Korrekten Funktionsweise von Das Verwaltungssystem dieser Firma muss garantieren, dass Systemen. Daraus folgt, dass Softwaresysteme Informationen der Monteur, oder ein Angreifer keinen Zugriff auf die vor dem Verlust der Integritat¨ schutzen¨ muss. Das Problem ist, Entwicklerdaten erhalt.¨ dass es sehr viele Wege gibt Daten negativ zu manipulieren. Sichere Softwaresysteme mussen¨ die Vertraulichkeit von Informationen sicherstellen. Damit Systeme diese Eigenschaft 1Anm. d. Ver. Diebstahl, Industriespionage oder einfach verloren

150 Die Sicherstellung, dass alle Techniken als Einfallslucke¨ Redundanzen gehen bis hin zur Geo–Redundanz bei der identifiziert und eliminiert werden, ist mit extrem hohen sowohl Hard– als auch Softwaresysteme an verschiedenen Aufwand verbunden. Hier muss das Grenzrisiko aus II physikalischen Standorten aufgebaut werden um im Falle nicht nur gegen potenzielle Angriffe, sondern auch gegen eines Ausfalls großtm¨ ogliche¨ Verfugbarkeit¨ gewahrleisten¨ zu den Aufwand abgewagt¨ werden. Boswilligen¨ Attacken von konnen.¨ In diesem Zusammenhang spricht man auch von Dritten, kann in einem gewissen Rahmen entgegengewirkt Hochverfugbarkeit.¨ werden. Viel schwerer sind unabsichtliche Manipulationen Diese Redundanzen helfen jedoch nicht, wenn die Software von autorisierten Anwendern zu erkennen. Auf Datenbanke- nicht absturzfrei implementiert wurde. Wie in der Integritat¨ bene ist es moglich¨ mit Constraints die Integritat¨ von Daten greifen hier die Prozesse und Methoden des Security– zu gewahrleisten.¨ Engineerings um zu garantieren, dass selbst beim auftreten Daruber¨ hinaus, muss eine Software sicherstellen, dass sie von Fehlern ein Service nicht ganzlich¨ absturzt.¨ Aber nicht selber nicht zu einer Einfallslucke¨ wird. Die in dieser Arbeit nur Ausfalle¨ von Hard– und Software kann die Verfugbarkeit¨ vorgestellten Prozesse und Entwurfsmuster unterstutzen¨ die beeinflussen, sondern es konnen¨ ganz gezielte Angriffe sichere Softwareentwicklung, sodass die entwickelte Software auf die Verfugbarkeit¨ von Systemen durchgefuhrt¨ werden. schwer zu kompromittieren ist. Neben kriminellen Dritten Mit einer Distributed Denial of Service (DDoS) Attacke, (Black–Hat–Hacker) kann diverse Malware (Viren, Wurmer¨ konnen¨ beispielsweise einfache Webserver effektiv lahm oder Trojaner) die Integritat¨ von Systemen beeinflussen. gelegt werden.

C. Verfugbarkeit¨ III.SECURITY–ENGINEERINGALSREAGIERENDE Die letzte der drei Grundeigenschaften ist die Verfugbarkeit¨ WISSENSCHAFT (Availability). Eine formale Definition liefert wieder das Security–Engineering besitzt ein Problem: Alle Abwehr- BSI: Die Verfugbarkeit¨ von Dienstleistungen, Funktionen maßnahmen, Prozesse, Technologien und Methoden, die fur¨ eines IT–Systems, IT–Anwendungen oder IT–Netzen oder Sicherheit sorgen sollen, werden aus Angriffen abgeleitet. auch von Informationen ist vorhanden, wenn diese von Plausibel kann man Security–Engineering mit der allgemei- Anwendern stets wie vorgesehen genutzt werden konnen.¨ [3] nen Weisheit: Aus Fehlern lernen vergleichen. Die Definition von Barlow und Proschan aus dem Jahre 1975 Angreifer decken immer neue Wege auf, wie Systeme fasst Verfugbarkeit¨ als Wahrscheinlichkeit, dass ein System kompromittiert werden konnen.¨ Diese Angriffe werden im zum Zeitpunkt t funktioniert. Die Definitionen konnen¨ zu Zuge der großen Verbreitung des Internets immer ausgefeilter. der Aussage: Wenn Informationen oder ein Service vom ” Grund hierfur¨ sind keine Einzelpersonen, sondern organisierte Anwender benotigt¨ wird, mussen¨ diese Informationen bzw. Banden, die ein wirtschaftliches Interesse verfolgen. In der Service zur Verfugung¨ stehen.“ zusammengefasst werden. diesem Zusammenhang von organisierter Kriminalitat¨ zu Verfugbarkeit¨ ist die Eigenschaft, die sehr schnell sprechen ist in keinem Fall uberzogen.¨ Ein besorgniserregen- Menschenleben gefahrden¨ kann. Ein Ausfall des de Blick nach Osteuropa, Asien oder auch Zentralafrika zeigt, Antiblockiersystem (ABS) eines Personenkraftwagen dass der Handel mit Identitaten,¨ Kreditkarten, Botnetzen oder (PKW) ist in keinem Fall tolerabel und kann zu schweren aber auch Wirtschaftsgeheimnissen regelrecht aufbluht.¨ [4] Unfallen¨ oder sogar zum Tod fuhren.¨ Deshalb muss in Wird eine Sicherheitsproblem großflachig¨ fur¨ Angriffe sicherheitskritischen Bereichen, Techniken gefunden werden ausgenutzt, konnen¨ Sicherheitsunternehmen nur noch reagie- um die Verfugbarkeit¨ zu sichern. Aber nicht nur in der ren und versuchen den Schaden einzudammen.¨ Prognosen, Automobil– oder Luftfahrttechnik spielt die Verfugbarkeit¨ was fur¨ Angriffe als nachstes¨ gestartet werden, sind nicht eine große Rolle. Dienstleister oder Reseller, die ihre brauchbar. Aus dem Grund, dass erst ein Problem auftreten Ware global im Internet verkaufen, oder eine Plattform fur¨ muss, sodass es behoben werden kann stellt dieses Paper den Verkauf anbieten (z.B. Amazon oder eBay) konnen¨ folgende Behauptung auf: ungeplante Ausfalle¨ nicht akzeptieren. In diesen Fallen¨ steht Security–Engineering ist eine reagierende Wissen- der finanzielle Verlust im Vordergrund. ” Um die Verfugbarkeit¨ zu erhohen¨ gibt es verschiedene schaft“ Techniken und Methoden, die aus einem unzuverlassigen¨ Aus Sicht der Wissenschaft und der Forschung wirkt System ein zuverlassiges¨ System machen konnen.¨ Security–Engineering reagierend. Wendet man jedoch die Die klassische Losung¨ ist Redundanz zu schaffen. Sollte auf Basis von Sicherheitsproblemen und Fehlinterpretationen eine Komponente ausfallen, konnen¨ identische Komponenten gewonnenen Erkenntnisse auf die Prozesse der Softwareent- die Aufgaben ubernehmen.¨ Auf welcher Ebene Redundanz wicklung an, wird Security–Engineering praventiv¨ eingesetzt. sinnvoll ist, muss fur¨ jedes System neu analysiert werden. Der Zeitraum in diesem Lernprozess zwischen dem Erken- In manchen Fallen¨ ist ein Redundant Array of Independent nen von Sicherheitsproblemen und der letztendlichen Losung¨ Disks (RAID) ausreichend, in anderen Fallen¨ muss ein Ser- ist fur¨ Systeme und Unternehmen ein kritisches Zeitintervall. viceprozess mehrfach gestartet werden. Diese verschiedenen Innerhalb dieser Phase ist das System vor Angriffen un-

151 geschutzt.¨ Softwarefirmen und Sicherheitsunternehmen sind Im April 2010 hat sich ein Sauerstoffversorgungssystem stehst bemuht¨ dieses Intervall zu minimieren. eines Krankenwagen ohne erkennbaren Grund abgeschaltet. Es entwickelt sich zwischen kriminellen Angreifern und Eine Softwarepanne wird fur¨ diesen Ausfall verantwortlich Vertretern der Sicherheitsindustrie ein bis dato andauerndes gemacht. Aus diesem Grund stehen alle Krankenwagen, die Katz und Maus“ Spiel. Dazu kommt, dass Angreifern dieses System einsetzen derzeit nicht zur Verfugung.¨ Die ” immer leistungsstarkere¨ Hardware und besseres technisches Frau die zu diesem Zeitpunkt an die Sauerstoffversorgung Know-how zur Verfugung¨ steht. Mit den aufkommenden angeschlossen war starb auf dem Weg ins Krankenhaus von Cloud Computing Services2 steht beunruhigend gunstige¨ Minneapolis.[5] Rechenleistung zur Verfugung¨ 3, die von Kriminellen z.B. Dieser tragische Vorfall verdeutlicht in allen Maßen, dass fur¨ Angriffe Passworter¨ oder zum Entschlusseln¨ von Infor- ein Sicheres System auf Verfugbarkeit¨ basiert. mationen missbraucht werden kann. Doch nicht nur Verfugbarkeit¨ sondern auch Integritat¨ von Zwischen Angreifern und Sicherheitsexperten entsteht ein Informationen sind wichtige Eigenschaften in der Medi- Wettrusten¨ bei dem kein Ende absehbar ist. zintechnik. Stellen medizinische Gerate¨ Informationen zur Verfugung,¨ muss sich ein Arzt auf diese Werte verlassen IV. NOTWENDIGKEITVON SECURITY–ENGINEERING konnen.¨ Aber auch Dosierangaben fur¨ Medikamente, die in Im Abschnitt II wurden drei Eigenschaften vorgestellt die einer Software verwaltet werden mussen¨ gegen Manipulation sichere Software beschreiben sollen. Die Eigenschaften: geschutzt¨ werden. • Confidentiality (Vertraulichkeit) 2008 untersuchten eine Gruppe von Studenten und Dokto- • Integrity (Integritat)¨ ren mogliche¨ Angriffe auf Implantable Cardiac Defibrillator • Availability (Verfugbarkeit)¨ (ICD) und Herzschrittmacher, die via Funk konfigurierbar sind. Das beunruhigende Resultat ist, dass diese Gerate¨ werden sowohl von der Basisliteratur[2] als auch vom anfallig¨ fur¨ potenzielle Angriffe sind.[6] Wird die Integritat¨ BSI[3] als Schlusselkonzept¨ fur¨ sichere Software angesehen. der Einstellungsdaten auf den Herzschrittmachern manipu- Es existieren neben dem CIA–Ansatz auch andere Konzepte4, liert, besteht fur¨ den Menschen Lebensgefahr. Daruber¨ hinaus jedoch werden dabei die drei Kerneigenschaften von CIA wird der Patient auch in seiner Privatsphare¨ verletzt. nur anders aufgeschlusselt.¨ Um die Wichtigkeit und Aus- Diese zwei Extrembeispiele sollen aufzeigen, dass die wirkungen durch den Verlust von diesen Eigenschaften fur¨ definierten Eigenschaften durchaus die Berechtigung besitzen ein Softwaresystem aufzeigen zu konnen¨ stellt dieses Paper als Definition fur¨ sichere Systeme verstanden zu werden. folgende Frage: Warum machen Vertraulichkeit, Integritat¨ und ” Verfugbarkeit¨ eine Software sicher?“ B. Militar,¨ Luft– und Raumfahrt, Automobilindustrie Um diese Frage zu beantworten werden Beispiele aus der Weitere Wirtschaftszweige in denen großen Wert auf Praxis und prominente Sicherheitsvorfalle¨ aufgefuhrt.¨ Sicherheit gelegt wird sind neben dem Militar¨ und der Luft– und Raumfahrt auch in der Automobilsparte. Techniken wie A. Medizintechnik Airbag, ABS oder das Elektronisches Stabilitatsprogramm¨ Die Medizintechnik ist ein Bereich der große Verant- (ESP), mussen¨ zu jeder Zeit verfugbar¨ sein um den Autofahrer wortung tragen muss. Sicherheitsprobleme konnen¨ direkte in heiklen Situationen unterstutzen¨ zu konnen.¨ Daruber¨ Auswirkung auf das Leben von Patienten haben. Alle drei hinaus muss sichergestellt werden, dass Sensordaten nicht Eigenschaften spielen in der Medizin eine große Rolle. Allen manipuliert werden. Durch die stetig wachsenden Elektronik- voran steht die Verfugbarkeit.¨ Im Operationsfeld beispielswei- systeme in PKWs konnen¨ fehlerhafte Sensordaten gefahrliche¨ se werden Gerate¨ eingesetzt, bei denen alles andere als eine Auswirkungen haben. 100%tige Verfugbarkeit¨ nicht toleriert werden kann. Als tech- Durch die Produktlinien basierte Entwicklung im Auto- nisches Beispiel kann eine Herz–Lungenmaschine gesehen motivbereich finden sich Sicherheitsprobleme schnell auf werden. Dieses Gerat¨ ubernimmt¨ bei einer Thoraxoperation einer großen Anzahl an Produkten wieder, deshalb stellt die sowohl die Atmung als auch die Verantwortung fur¨ die Automobilindustrie sehr hohe Anspruche¨ an die Sicherheit, Blutzirkulation im Korper¨ eines Patienten. Ein Ausfall dieses aber auch an die Prozesse zur Entwicklung verlasslicher¨ Gerates¨ endet in der Regel todlich.¨ In der Entwicklung solcher Systeme. Gerate¨ mussen¨ Security–Engineering Prozesse genaustens Die gleichen Aspekte finden sich bei dem Transport von ¨ eingehalten werden, damit Arzte und Patienten sich voll auf Menschen auf dem Luftweg wieder. Nach den Anschlagen¨ diese lebensrettenden Maschinen verlassen konnen.¨ vom 11ten September kommt zusatzlich¨ der Schutz vor 2Anm. d. Ver. z.B. Amazon Elastic Compute Cloud (EC2) Terroranschlagen¨ hinzu. Software in Flugzeugen muss z.B. 3Anm. d. Ver. 0.095 USD pro Stunde sicherstellen, dass nur der Pilot in der Lage ist das Flugzeug 4vgl. Absatz VI-A3 zu steuern (Vertraulichkeit).

152 C. Finanzdienstleister Dieser Virus nutzte keine Sicherheitslucke¨ aus, sondern zielte auf die Naivitat¨ von Benutzern ab. Dieser Virus brachte Bisher wurde Security–Engineering lediglich damit be- jedoch die Erkenntnis, dass Security–Engineering nicht nur grundet,¨ wenn Menschenleben gefahrdet¨ werden. Mit der das System vor kriminellen Dritten, sondern auch vor den Finanzindustrie existiert eine Branche die sehr stark auf eigenen Anwendern schutzen¨ muss. Sicherheit setzt. Geht es um das Heiligste“ der Menschen, ” ¨ W32.Blaster haben diese hohe Erwartungen an die Sicherheit. Damit Drei Jahre spater wurde der Computerwurm Kunden einem Finanzdienstleister vertraut, muss er sicher entdeckt. Im Gegensatz zum LoveLetter, nutzte dieser Wurm ¨ sein, dass sein Geld zuverlassig¨ verwaltet wird. eine Sicherheitslucke von Windowscomputern aktiv aus. Auf dem Port 135 griff der Wurm den Remote Procedure Call Um Betrug vorzubeugen spielen Vertraulichkeit in Form (RPC) Service an. Dieser Wurm zielte nicht wie der I– von Authentifizierung und Autorisierung eine große Rolle. ” Love–You–Viruses“ auf die Integritat¨ von Daten ab, sondern Banken betreiben Systeme, um ihre Kunden zu identifizieren verursacht Absturze¨ des gesamten Betriebssystems. Diese Ge- und zu uberpr¨ ufen,¨ auf welche Konten sie zugreifen durfen.¨ neration von Wurmern¨ verwendete zwei neue Technologien: Die Verwaltung der Kontostande¨ und Transaktionen wird Zum einen fungierte dieser Wurm als Verteiltes System und heutzutage ebenfalls computerunterstutzt¨ verwaltet. Die Inte- sollte fur¨ eine DDoS Attacke auf die Windows–Updateseite gritat¨ dieser Daten ist enorm wichtig, da diese Daten einen eingesetzt werden. Zum anderen lud dieser Wurm Code aus gewissen Gegenwert darstellen. Weichen Informationen zu dem Internet nach um sich neu aufzustellen.[11] Durch das stark von den Realwerten ab verlieren Kunden das vertrauen Nachladen von Code werden Wurmer¨ unberechenbar, da in das gesamte Finanzwesen. Angriffsziele kurzfristig geandert¨ werden konnen.¨ Der 19.10.1987 wurde als Schwarzer Montag“ bekannt, ” Der W32.Blaster Vorfall ist aus zwei Grunden¨ fur¨ Security– an der New Yorker Borse¨ fiel der Dow Jones um ca. Engineering interessant. Einerseits wurde festgestellt, dass 20%. Grund fur¨ diesen Absturz war unter anderem ein auch nur eine einzige Sicherheitslucke¨ großen Schaden Reihe Computerfehlern. Dieses prominente Beispiel zeigt, anrichten kann. Andererseits hatte¨ der Verbreitungsgrad mit dass Software, die im Finanzwesen eingesetzt wird, ei- der standardmaßigen¨ Aktivierung der Windows–Firewall ein- ne große Verantwortung ubernehmen¨ muss.[7] Um diesen gedammt¨ werden konnen.¨ Microsoft zog aus diesem Vorfall problematischen Bereich abzusichern wird hier sehr stark die Konsequenz, dass die Firewall bei Neuinstallationen auf die Eigenschaften Vertraulichkeit und Integritat¨ gesetzt. automatisch aktiviert wird. Die Verfugbarkeit¨ spielt eine untergeordnete Rolle: Das Geldautomaten einmal in der Woche einen Vormittag lang E. Google Vs. China nicht benutzt werden konnen,¨ hat bis heute nicht fur¨ einen Im Gegensatz zu Malware, die auf hoher Verbreitung Aufschrei gesorgt. abzielt, gibt es aber auch gerichtete Angriffe. Google und andere US Unternehmen wurden im Dezember 2009 Opfer D. Schutz vor Malware gezielter Angriffe. Der Ausgangspunkt dieser Angriffe wurde Microsoft bietet mit Windows ein Betriebssystem an, in China lokalisiert. Die Chinesische Regierung dementiert dass sowohl in Unternehmen, als auch in Privathaushalten bis heute, der Verursache oder Auftraggeber fur¨ diese eingesetzt wird. Aufgrund dieses hohen Verbreitungsgrades Angriffe gewesen zu sein. Einige Indizien weisen jedoch ist diese Plattform ein interessantes Ziel fur¨ Angreifer. darauf hin, dass ein Mitwirken der chinesischen Behorden¨ Kriminelle erreichen bei Attacken auf Schwachstellen von durchaus plausibel ist. Fest steht, dass diese Attacken Betriebssystemen eine breite Masse an potenziellen Opfern. gerichtet und sehr aufwendig durchgefuhrt¨ wurden. Der Im Jahr 2000 begann eine Reihe von Windows–Wurmern¨ Angriff richtete sich gegen diverse Google–Mail Konten von die Sicherheit vieler Benutzer aber auch Firmen zu kompro- Menschenrechtsaktivisten, was auch das Regierungsinteresse mittieren. Einer der großten¨ Wurmer,¨ die die Offentlichkeit¨ erklaren¨ wurde.¨ Neben Google–Mail Konten wurde auch erreichten, war der LoveLetter. Ein Virus, der sich in versucht den Quellcode der Suchengine von Google zu einem Schneeballsystem per E–Mail oder Internet Relay stehlen. Die ist laut Google jedoch nicht geschehen. Chat (IRC) verbreitet und System– und Multimediadateien Die Angreifer nutzten eine Sicherheitslucke¨ im Internet kompromittiert. Basis fur¨ diesen Angriff war ein getarntes Explorer der Versionen 6,7 und 8 aus. Die Angriffe wurden VisualBasic Script, das im Anhang von E–Mails platziert gezielt auf Google Mitarbeiter zugeschnitten. Google zog wurde. Arglose Anwender offneten¨ diesen Anhang und aus diesem Vorfall weitreichende Konsequenzen. Google wurden so Opfer des I–Love–You–Viruses“. [8] hat die operativen Geschafte¨ in China geschlossen und ” Der Virus infizierte geschatzte¨ 45 Millionen Computer und leitet alle Suchanfragen an die google.com.hk Server weiter. verursachte einen finanziellen Schaden von fast 3 Milliarden Diese Server stehen in einer Sonderverwaltungszone in der Euro. [9] Bei einer Umfrage gaben 21% der Unternehmen unzensierte Suchergebnisse zuruckgeben¨ werden durfen.[¨ 12] an, dass es zu Ausfallen¨ oder Betriebsstorungen¨ gekommen Als weiteren Schritt verzichtet Google auf das Windows sei.[10] Betriebssystem und stellt den Mitarbeitern fortan nur noch

153 Android oder MacOS als Betriebssystem zu Verfugung.[¨ 13] Datenbank ausgefuhrt¨ werden. Als Szenario ware¨ die Abfrage Dieses ist ein prominentes, zeitnahes Beispiel, wie Wichtig der Benutzerprofile denkbar. die Vertraulichkeit von Informationen sein konnen.¨ Ge- SQL–Injection kann mit relativ einfachen Mitteln vorge- langt die chinesische Regierung an den E–Mailverkehr von beugt werden. Die einfachste Methode ist, alle Eingaben Menschenrechtsaktivisten, sind diese Menschen gefahrdet.¨ und Parameter die vom Anwender definiert werden konnen¨ Daruber¨ hinaus kann der unautorisierte Zugriff auf die mit Fluchtzeichen zu versehen um zu verhindern, dass das Suchengine5, dem Unternehmen erheblichen finanziellen Datenbankmanagementsystem (DBMS) diese Werte als SQL Schaden zufugen.¨ interpretiert. Eine weitere Moglichkeit¨ ist die Verwendung von Prepared Statements die ebenfalls alle Eingaben escapen. V. ANGRIFFSVEKTOREN Die Sicherheitslucken,¨ die in den vergangenen Jahren B. Buffer Overflow aufgedeckt und ausgenutzt wurden, sind zu einem großen Buffer Overflows treten haufig¨ bei der Implementierung Teil auf nachlassige¨ Implementierungen zuruckzuf¨ uhren.¨ mit C oder C++ auf. Ausgangslage ist, dass ein Puffer Zusatzlich¨ ahneln¨ sich viele Angriffe und sind in Kategorien auf dem Stack uber¨ die Grenzen hinaus beschrieben wird. unterteilbar. Die haufigsten¨ Einfallslucken¨ werden hier auf- Auswirkungen konnen¨ Programmabsturze¨ oder auch die gefuhrt¨ und einfache Losungsm¨ oglichkeiten¨ dargelegt. Das Ausfuhrung¨ von Schadcode sein. vermeiden dieser Einfallslucken¨ ist naturlich¨ kein Garant Der folgende Codeausschnitt aus einem C Programm zeigt fur¨ sichere Software. Um sichere Software verlasslich¨ zu eine mogliche¨ Einfallslucke¨ basierend auf einem Buffer entwickeln, sind die in diesem Paper diskutierten Prozesse Overflow: unabdingbar. Jedoch kann die Vermeidung dieser Lucken,¨ [...] ein Softwareunternehmen vor peinlichen Neuigkeiten“ be- ” char buffer[256]; wahren. gets(buffer); A. SQL–Injection calculate(buffer); [...] SQL–Injection ist eine Technik, die haufig¨ fur¨ die Kom- promittierung von Datenbanken hinter Webapplikationen Die Methode gets() terminiert durch die Eingabe uber¨ die verwendet wird. Fur¨ den Angriff wird eine nachlassig¨ Kommandozeile. Der Benutzter kann jedoch auch mehr als implementierte Datenbankschnittstelle ausgenutzt. Parameter 256 Zeichen eingeben und schreibt so uber¨ die Puffergrenze oder Benutzereingaben, werden dafur¨ um SQL Befehle hinaus. Wird der Stack mit soviel Daten uberschrieben,¨ erweitert. dass die Rucksprungadresse¨ der Methode calculate(char*) Einen konkreten Angriff zeigt das folgende Beispeil. uberschrieben¨ werden kann, ist es moglich¨ Schadcode aus- Aus dem Aufruf: zufuhren.¨ Die manipulierte Rucksprungadresse¨ zeigt dann auf Codeinstruktionen die beispielsweise eine Administrati- http: // website.com/index.php?id=1 onskonsole offnet.¨ wird folgendes Query erzeugt: Solche Lucken¨ konnen¨ gezielt ausgenutzt werden um Ser- vices zum Absturz zu bringen. Zu den Problemen die dadurch SELECT name, address FROM u s e r s fur¨ die Verfugbarkeit¨ entstehen, kann das Ausfuhren¨ von WHERE i d =1; Schadcode naturlich¨ auch die Integritat¨ eines Systems oder dabei wird der Parameter id=1 direkt in die Abfrage auch die Vertraulichkeit (Administratorenrechte erschleichen) integriert. Wird jetzt anstelle von id=1 ein anderer Wert gefahrdet.¨ ubergeben,¨ kann die Datenbank manipuliert werden: Fur¨ das oben aufgefuhrte¨ Beispiel ware¨ eine Implemen- tierung von fgets() und sizeof() eine sichere Alternative. http: // website.com/index.php? Mit fgets() konnen¨ die Eingabedaten auf eine bestimmte id =1;DROP+Table+users Anzahl begrenzt werden. Generell treten Buffer Overflows wird zu folgendem Query zusammengesetzt: in der Regel dort auf, wo es an Termination fehlt. Vor allem Puffer und Stringoperationen sind hierfur¨ anfallig.¨ Aktuelle SELECT name, address FROM u s e r s Compiler besitzen zudem Optimierungsmoglichkeiten¨ um WHERE i d =1;DROP Table u s e r s ; Buffer Overflows entgegenzuwirken. Mit diesem einfachen Beispiel, wird klar gemacht, dass die C. Cross–Site Scripting Integritat¨ durch diese Attacke gefahrdet¨ wird. Angriffe auf die Vertraulichkeit sind ebenso moglich.¨ Mit der Verwendung Cross–Site Scripting funktioniert, nach dem gleichen Prin- von UNION SELECTs konnen¨ weitere Abfragen auf die zip wie die SQL–Injection, mit dem Unterschied, dass nicht die Datenbank das Ziel des Angriffs ist, sondern die Webseite 5Anm. d. Ver. das Herzstuck“¨ von Google als solches. Beim Cross–Site Scripting werden Parameter ”

154 und Benutzereingaben so verarbeitet, dass daraus der Inhalt er die Daten an den Angreifer. Diese E–Mail wird an eine einer neuen Webseite generiert wird. Als Beispiel stelle man moglichst¨ große Anzahl an Personen versendet mit dem sich einen Onlineassistenten vor, der Benutzer durch einen Gedanke: Einer wird schon darauf reinfallen“. ” Vorgang leiten soll. Zu Begin wird der Anwender nach seinem Primar¨ kann dieser Technik durch Schulungen entgegen- Namen gefragt, der auf den Folgenden Webseiten als Anrede gewirkt werden. Den Benutzern wird beigebracht, wie man verwendet werden soll: Phishingemails erkennen kann. Ein weiterer Ansatz sind Aus der Eingabe Max Musterman wird folgender automatische Phishingfilter, die jede eingehende E–Mail Hypertext Markup Language (HTML) Code generiert. auf bestimmt Merkmale untersucht, die auf Phishingmails hinweisen. [...] Mit diesem Vorgehen konnen¨ auch gezielt Personen oder

Max Musterman Gruppen angegriffen werden. In diesem Zusammenhang [...] spricht man vom Spear Phishing“. Als Taktik werden ” Manipuliert man die Eingabe absichtlich mit folgendem rund um die Personen oder Personengruppen Informationen Script: gesammelt, mit denen man gezielt das Vertrauen erwecken kann. Bei dem in Abschnitt IV-E erlauterten¨ Vorfall wurden [...] diese Technik verwendet. Durch die große Verbreitung von sozialen Netzwerken, ist es außerdem relativ leicht geworden a l e r t ( ”XSS−A t t a c k ” ) Informationen uber¨ eine bestimmte Person herauszufinden. Dadurch, dass die Menschen in sozialen Netzwerken immer [...] freizugiger¨ mit personlichen¨ Daten umgehen entsteht ein Wird daraus folgende diese Webseite generiert: weiteres Risiko. Anwender benutzen Passworter,¨ die aus ihrem sozialen Umfeld oder aus den jeweiligen Interessen [...] abgeleitet werden. Mit Hilfe der Informationen aus sozialen

Netzwerken lasst¨ sich der Aufwand fur¨ das Erraten“ von ” Passwortern¨ minimieren. Des Weiteren verwenden viele a l e r t ( ”XSS−A t t a c k ” ) Benutzer das gleiche Passwort fur¨ mehrere Dienste und andern¨ diese auch selten.[15] Die hier vorgestellten Begriffe, Praxisbeispiele und An- [...] griffe sollen verdeutlichen warum Security–Engineering Diese Attacke ist nicht nur auf Scripte beschrankt.¨ Es ein immer wichtigeres Thema in der Softwareentwicklung kann auch einfacher HTML–Syntax verwendet werden um einnimmt. Im Folgendem werden die Prozesse und Methoden die Webseite zu entstellen oder einen betrugerischen¨ Inhalt in zur Entwicklung zuverlassiger¨ und sicherer Softwaresysteme einer vertrauenserweckenden Umgebung einzubetten. Diese beschrieben und diskutiert. Angriffe zielen auf die Vertraulichkeit ab. Integritat¨ wird VI.SDL erst dann verletzt wenn Scripte dafur¨ benutzt werden um Log-in-Daten eines Anwenders herauszufinden. Der Security Development Lifecycle (SDL) ist ein von Als Gegenmaßnahme eignet sich das Maskieren von Microsoft entwickeltes Prozessframework, das einzig und HTML–Metazeichen oder das generelle Uberpr¨ ufen¨ aller allein mit dem Ziel entwickelt wurde, Microsoft–Produkte hinsichtlich der Eigenschaften Sicherheit“ und Datenschutz“ Benutzereingaben (Whitelisting). ” ” (engl. privcay“) zu verbessern (vgl. [16], p. xvii). Prominente Opfer dieser Angriffe wurde die Webseite des ” heutige Finanzminister Wolfgang Schauble¨ und die Webseite Der gesamte SDL ist darauf ausgelegt, zwei Primarziele¨ des Linksfraktion.[14] zu erreichen. Zum einen soll der SDL gewahrleisten,¨ dass sich die Anzahl der Sicherheits- und Datenschutzprobleme D. Social Engineering in einem gegebenen Softwareprodukt verringert, und zum Ein weitaus schwierigeres Problemfeld ist der Faktor anderen sollen die Auswirkungen evtl. doch noch vorhandener Mensch. Ein System kann noch so sicher geplant, entworfen Probleme auf ein Minimum reduziert werden (siehe [16], p. und umgesetzt werden, der Mensch ist in den meisten Fallen¨ xvii / [17], p. 5). In der Definition dieser Ziele spiegelt die großte¨ Schwachstelle. Mit Social Engineering versucht sich bereits die Erkenntnis der eigenen Unvollkommenheit ein Angreifer vertrauen oder Autoritatsh¨ origkeit¨ bei einem wieder. Absolute Sicherheit ist eine Illusion und damit Opfer zu erzeugen. ein Ziel, das niemals erreicht werden kann. Die Autoren Das bekannteste Beispiel fur¨ Social–Engineering ist das erachten es daher als lobenswert, dass sich diese Tatsache Phishing. Es wird eine vertrauenserweckende E–Mail aufge- auch in der Zielsetzung des SDL widerspiegelt. Ferner lasst¨ setzt mit der bitte die Benutzerdaten von einem Service zu dieser Sachverhalt erahnen, dass es sich beim SDL um ein bestatigen.¨ Folgt der Benutzer dieser Anweisung ubermittelt¨ sehr ausgereiftes Konzept handelt, welches das Potenzial

155 besitzt, konkrete Verbesserungen bezuglich¨ der Sicherheit Hurden¨ fragwurdig,¨ ob die externe Einflussnahme auf den von Software zu begunstigen.¨ SDL in der Praxis tatsachlich¨ moglich¨ ist. Insbesondere der In diesem Kapitel werden die Kernaktivitaten¨ des SDL Beweis der Effektivitat¨ der Anderung¨ wird enorm durch den v5.0 vorgestellt und auf mogliche¨ Verbesserungen untersucht. Umstand erschwert, dass langst¨ nicht alle Sicherheitslucken¨ Gleichzeitig wird versucht, die teilweise sparlichen¨ Infor- in Microsoft–Produkten offengelegt werden (siehe dazu die mationen zu einigen Aspekten des SDL aus verschiedenen Diskussion in Abschnitt VI-A7). Quellen (v.a. [16], [17], [18], [19]) zusammenzufuhren¨ und so besser verstandlich¨ zu machen. A. SDL Phasenmodell In der Standardliteratur zu SDL ([16], [17]) ist an vielen Die ersten Versionen des SDL ordneten jede Aktivitat¨ in Stellen von einem Prozess die Rede. Streng betrachtet eine von insgesamt 13 Stufen ein (siehe [16], p. xvii). Dies handelt es sich nach Ansicht der Verfasser beim SDL war mit dem Nachteil verbunden, dass es fur¨ Neueinsteiger aber nicht um einen Entwicklungsprozess im klassischen kompliziert war, die SDL–Stufen in ihre jeweils zugehorigen¨ Sinne, da der SDL keinerlei Aussagen uber¨ gewohnliche¨ Phasen im Softwareentwicklungsprozess einzuordnen. Ohne Entwicklungsaktivitaten¨ wie z.B. der Anforderungsanalyse weiteren Kontext ist beispielsweise nicht offensichtlich, macht. Der SDL ist viel mehr als eine Sammlung von dass die Aktivitaten¨ der (ehemals) 8. SDL–Stufe — dem Aktivitaten¨ und Methoden zu betrachten, die sich in jeden Security Push“ (siehe Abschnitt VI-A5) — in der Testphase ” Entwicklungsprozess, insbesondere auch in agile Methoden durchgefuhrt¨ werden sollen, da der Security–Push primar¨ (vgl. Abschnitt VIII-B, [17], p. 50–59) integrieren lassen. das Finden und Beheben von sicherheitskritischen Fehlern Ungeachtet dessen existieren Hinweise, dass der SDL in Legacy–Code zum Ziel hat. ursprunglich¨ tatsachlich¨ als eigener Prozess geplant war. Mit der Umstellung von SDL Version 3.2 auf Version Insbesondere die starke Fokussierung auf die Analyse von 4.1 (vgl. [19] und [18]) wurde das in Abbildung 1 gezeigte Risiken und Bedrohungsszenarien (vgl. Abschnitt VI-A2 und Phasenmodell eingefuhrt¨ um die einzelnen SDL–Aktivitaten¨ VI-A3) lasst¨ vermuten, dass den ersten, nicht veroffentlichten¨ besser in den Entwicklungsprozess einordnen zu konnen.¨ Versionen des SDL ein Spiralmodell zugrunde lag. Diese An- Dabei ist zu beachten, dass es sich bei Training“ und ” nahme wird durch explizite Referenzen auf das Spiralmodell Response“ nicht wirklich um Phasen des Entwicklungszyklus ” seitens Microsoft teilweise bestatigt¨ (siehe dazu Abschnitt handelt, sondern um begleitende Aktivitaten,¨ die unabhangig¨ VI-D und [20]). von jedweder Projektplanung umgesetzt werden mussen.¨ Dies Ein oft zitiertes Diktum des Sicherheitsexperten Bruce sollte stets bei der anschließenden Erlauterung¨ und Diskussi- Schneier besagt: Security is a process, not a product“ ([21], on der einzelnen Phasen (entsprechend ihrer Reihenfolge in ” p. xii). Daher ist es auch nicht verwunderlich, dass der SDL Abbildung 1, von links nach rechts) betrachtet werden. einer standigen¨ Evolution unterliegt um aktuelle Entwick- 1) Security Training: Softwareentwickler, Architekten und lungen in der Sicherheitsforschung zu berucksichtigen.¨ Vor Tester mussen¨ stets fortgebildet werden, um aktuell popularen¨ seiner Veroffentlichung¨ wurde der SDL zwei Mal jahrlich¨ Sicherheitsproblemen effektiv begegnen zu konnen.¨ Wenn uberarbeitet,¨ genau genommen in den Monaten Januar und das Entwicklerteam nicht uber¨ ein gewisses Mindestmaß an Juni ([16], p. 36–37). Die Veroffentlichungstermine¨ spaterer¨ Know–How in Sicherheitsfragen verfugt,¨ besteht praktisch SDL–Revisionen zeigen jedoch, dass die Aktualisierungen keine realistische Chance, dass dieses Entwicklerteam sichere inzwischen nicht mehr auf regelmaßiger¨ Basis erfolgen. Software produzieren wird (siehe [16], p. 55). Leider besitzen Microsoft gestattet laut eigenen Angaben ([16], p. xix) Entwickler fur¨ gewohnlich¨ eine eher geringe Sensitivitat¨ fur¨ sogar Dritten, die kunftige¨ Entwicklung von SDL zu be- die Sicherheitsproblematik, was nicht zuletzt auch daran liegt, einflussen. Ein Anderungswunsch¨ kann dabei zwei ver- dass Sicherheitsaspekte im Rahmen einer Ausbildung oder schiedene Auspragungen¨ besitzen: eine Empfehlung und eines Studiums nur eine untergeordnete Rolle spielen. eine Anforderung. Da Empfehlungen sich unter Umstanden¨ Howard und Lipner [16] fuhren¨ als großen Kritikpunkt auch zu Anforderungen weiterentwickeln konnen¨ — deren etwa die Tatsache an, dass nicht streng genug zwischen Umsetzung dann fur¨ jedes Entwicklerteam eine Verpflichtung Sicherheitsfeatures und sicheren Features unterschieden wird. ist — mussen¨ Anderungsw¨ unsche¨ detailliert beschrieben und Sicherheitsfeatures umfassen greifbare Sicherheitstechnologi- begrundet¨ werden. Dies umfasst auch den Beweis, dass die en wie z.B. Firewalls oder kryptografische Verfahren. Sichere vorgeschlagene Anderung¨ einen messbaren Sicherheitsge- Features zeichnen sich dadurch aus, dass sie von Anfang winn zur Folge hat. Daher ist an nicht weniger als funf¨ an hinsichtlich ihrer Sicherheit mithilfe eines ausgereiften konkreten Schwachstellen in Microsoft–Produkten zu zeigen, Prozesses entwickelt und in die Software integriert wurden dass diese durch die vorgeschlagene Anderung¨ vermeidbar (vgl. [17], p. 19). gewesen waren.¨ Ferner finden vor der offiziellen Integration Prazise¨ Kenntnisse uber¨ die Funktionsweise von Hash– der Anderung¨ in den SDL noch mehrere Reviews durch Verfahren der Secure Hash Algorithm (SHA) Familie [22] Microsoft–Sicherheitsexperten statt. sind zwingend erforderlich, wenn eine eigene Implemen- Aus Sicht der Autoren ist es angesichts dieser enormen tierung dieser Verfahren geschrieben werden soll, tragen

156 Abbildung 1. SDL Phasenmodell damit aber nicht unmittelbar zur Sicherheit der entwickelten Security Software bei. Andererseits ware¨ es ein enormer Vorteil zu Leadership Team wissen, dass SHA–1 formell als gebrochen gilt und bei Neuentwicklungen nicht mehr eingesetzt werden sollte (siehe u.a. [23], [24]). Diese Betrachtung illustriert deutlich den Unterschied zwischen dem Know–how von Sicherheitsfeatu- res und dem notwendigen Wissen zur Entwicklung sicherer Features. Die personlichen¨ Erfahrungen der Autoren wahrend¨ des Studiums untermauern die Einschatzung¨ von Howard und Lip- Development Team Security Development Security Contact Advisor Security ner. In wichtigen Kursen wie etwa jenen zur Programmierung, Team Team zum Software–Engineering und zu Computernetzwerken wur- den praktisch keinerlei Sicherheits- und Datenschutzfragen Development Staff Security Staff behandelt. Die zunehmende Vernetzung von Applikationen Abbildung 2. Rollenverteilung im SDL (insbesondere durch aktuelle Trends wie Cloud Computing) fuhrt¨ zwangslaufig¨ dazu, dass sich die Angriffsflache¨ von Applikationen ebenfalls erhoht.¨ Es ist aus Sicht der Verfasser muss noch durch empirische Ergebnisse aus der Praxis belegt daher dringend erforderlich, das Thema Sicherheit zu einem werden. zentralen Bestandteil der Ausbildung in der Softwarebranche 2) Anforderungsanalyse: Die erste vom SDL vorgeschrie- zu machen. bene Aktivitat¨ besteht darin, zu Beginn eines Projekts zu Unternehmen konnen¨ bei der Einstellung von neuem Perso- prufen,¨ ob die geplante Software uberhaupt¨ unter Einbezie- nal folglich nicht davon ausgehen, dass ein fundiertes Wissen hung des SDL entwickelt werden muss. Microsoft definiert uber¨ Softwaresicherheit vorhanden ist, was in Verbindung mit unter anderem, dass Software die der sich rasch verandernden¨ Sicherheitslandschaft bedeutet, • Produktiv in einem Unternehmen eingesetzt wird dass Mitarbeiter permanent geschult werden mussen.¨ Der • Regelmaßig¨ personenbezogene Daten verarbeitet oder SDL schreibt vor, dass alle Entwickler, Tester und Manager speichert jahrlich¨ mindestens eine Fortbildung besuchen mussen.¨ Wird • Regelmaßig¨ mit dem Internet kommuniziert diese Anforderung nicht von mindestens 4/5 aller an einem • Selbststandig¨ Aktualisierungen aus dem Internet bezieht Projekt beteiligten Personen erfullt,¨ so kann dies sogar Anlass nur unter Verwendung des SDL entwickelt werden darf zu einer Verschiebung der Release–Termine geben ([16], p. (siehe [16], p. 67–68 / weitere Kriterien in [17], p. 10). Auch 58 / [17], p. 12). wenn die angefuhrten¨ Kriterien eine hohe Bandbreite an Die Verfasser begrußen¨ die Forderung nach kontinuier- Softwareprodukten abdecken, ist es dennoch denkbar, dass licher Weiterbildung, sind aber auch der Ansicht, dass einzelne sicherheitskritische Systeme nicht erfasst werden. der Besuch nur einer Veranstaltung pro Jahr nicht ausrei- Die Autoren schlagen daher vor, das Prufverfahren¨ umzu- chend ist, um sicherzustellen, dass samtliche¨ Entwickler drehen. Es sollte nicht analysiert werden, ob eine Software mit aktuellen Sicherheitsproblematiken vertraut sind. Durch mit SDL entwickelt werden muss, sondern ob sie ohne SDL einen halbjahrlichen¨ Rhythmus konnten¨ Mitarbeitern aktuelle entwickelt werden darf. Trends aus der Sicherheitsforschung zeitnah vermittelt wer- Nachdem gepruft¨ wurde, ob das Projekt dem SDL den. Andererseits hatte¨ dies eine weitere Steigerung des ohne- unterliegt, mussen¨ die relevanten Rollen verteilt werden. hin schon betrachtlichen¨ Personalaufwands (siehe Abschnitt Abbildung 2 (frei nach [16], p. 72) zeigt die typischen VI-D) fur¨ SDL zur Folge. Ob die vorgeschlagene Anderung¨ Rollen und ihre Beziehungen, wie sie bei einem vollstandig¨ tatsachlich¨ zu einer Verbesserung der Softwaresicherheit fuhrt,¨ umgesetzten SDL vorliegen. Der SDL geht implizit davon

157 aus, dass sich alle an einem Projekt beteiligten Personen in Kostenschatzung¨ des Projekts behilflich sein. zwei Kategorien aufteilen lassen: normale Entwickler (inkl. Wahrend¨ die Erstellung des PIR trivial ist und sich direkt Architekten, Testern und Managern) und Sicherheitsexperten. aus den Anforderungen ableiten lasst,¨ ergeben sich beim SRA Aus dem normalen Entwicklerteam (Development Team) eine Reihe von Problemen. Da in dieser fruhen¨ Projektphase wird ein Mitarbeiter als Kontaktperson fur¨ alle Sicherheitsfra- noch gar kein konkretes Softwaredesign vorliegt, lasst¨ sich gen (Development Team Security Contact oder auch Security nur schwer abschatzen,¨ welche Komponenten der Software Champion) ausgewahlt.¨ Gleichermaßen wird jedem Projekt besonders im Hinblick auf Sicherheit validiert werden mussen.¨ ein Berater aus dem Sicherheitsteam (Security Advisor) Hier gilt es ein geeignetes Schatzverfahren¨ zu finden, dass zugeteilt. Diese beiden Personen wickeln im Idealfall die in der Lage ist, aus Anforderungen den Aufwand fur¨ das gesamte Kommunikation zwischen dem Entwicklerteam Erreichen eines bestimmten Sicherheitsstandards abzuleiten und dem Sicherheitsteam ab. So wird sichergestellt, dass (siehe [25]). sicherheitsrelevante Informationen nicht verloren gehen. Das 3) Design: Die SDL–Aktivitaten¨ der Designphase leisten Security Leadership Team leitet sich aus dem zentralen nach Ansicht der Verfasser den großten¨ Beitrag zur Sicherheit Projektmanagement–Team ab, kommuniziert Sicherheitsricht- des Produkts. Der SDL verlangt die Definition und Einhaltung von Best–Practices“ beim Softwareentwurf ([17], p. 19–23) linien an das Entwicklerteam und dient damit uberwiegend¨ ” zur Uberwachung¨ des Projekts ([16], p. 71–72). und empfiehlt als Basis hierfur¨ die folgenden Paradigmen Zu bemangeln¨ ist an dieser Stelle, dass in der SDL– (vgl. [26], p. 4–5): Referenzdokumentation weder alle Rollen noch deren Kom- • Economy of mechanism munikationsbeziehungen erlautert¨ werden ([17], p. 13). Ge- • Fail–safe defaults rade in großen Entwicklerteams sind funktionierende Kom- • Complete mediation munikationsstrukturen allerdings von enormer Bedeutung, da • Open design anderenfalls Reibungsverluste entstehen durch die wichtige • Separation of privilege Informationen im Chaos verschwinden konnen.¨ Gleichzeitig • Least privilege fuhrt¨ die Annahme, dass ein eigenes Sicherheitsteam exis- • Least common mechanism tiert vor allem in kleinen Unternehmen oder Open–Source • Psychological acceptability Projekten mit hoher Wahrscheinlichkeit zu Problemen bei Vor allem der letzte Punkt verdient Aufmerksamkeit. der korrekten Umsetzung des SDL, da hier entsprechende Psychologische Akzeptanz (Psychological acceptability) soll personelle Kapazitat¨ oft nicht vorhanden ist. gewahrleisten,¨ dass Sicherheitsfeatures den Benutzer einer Ein weiterer Punkt, der die korrekte Umsetzung des Software nicht in einer Art und Weise bei der Arbeit SDL ebenfalls erschwert, ist die Forderung nach SDL– einschranken,¨ die den Benutzer dazu verleitet das Sicherheits- ” Compliance“ von Drittherstellern ([17], p. 16). Wird in einem feature zu deaktivieren. Es ist amusant,¨ dass dieser Ratschlag SDL–Projekt Code von Drittanbietern lizenziert oder Teile der ausgerechnet von einem Unternehmen aufgegriffen wird, Entwicklung per Outsourcing an Dritte vergeben, so muss welches sich in der Vergangenheit durch die Einfuhrung¨ der garantiert werden, dass auch die von extern stammenden User Account Control (UAC) den Argwohn vieler Anwender Bestandteile der Software gewisse Anforderungen des SDL einheimste (vgl. [27], S. 81). erfullen.¨ Die Verfasser sehen an dieser Stelle zwei Probleme. Neben einem sicheren Softwareentwurf sollte in der Desi- Zum einen definiert der SDL nicht, welche Anforderungen gnphase auch eine Attack Surface Analysis (ASA) und darauf genau gemeint sind. Zum anderen durfte¨ sich die Forderung aufbauend eine Attack Surface Reduction (ASR) durchgefuhrt¨ nach SDL–Compliance Gegenuber¨ Dritten nur von Unter- werden ([16], p. 78–91). Ziel der ASA ist es, eine Liste aller nehmen mit entsprechend starker Marktposition durchsetzen Schnittstellen, Dienste und Protokolle zu erstellen, uber¨ die lassen. Ferner ist es in gewissen Anwendungsdomanen¨ nicht das System erreicht werden kann — speziell vonseiten des unublich,¨ dass die Verwendung bestimmter Bibliotheken oder Netzwerks oder anonymen Benutzern. Durch die ASR kann Werkzeuge seitens des Auftraggebers vorgeschrieben ist. Es die ermittelte Angriffsflache¨ anschließend reduziert werden. ist daher hochst¨ fragwurdig¨ ob es sinnvoll ist, den eigenen Dies kann beispielsweise dadurch erreicht werden, dass Kunden Vorschriften machen zu wollen. Features, die nicht von mindestens 80% aller Benutzer auch Die letzte SDL–Aktivitat¨ wahrend¨ der Anforderungsana- verwendet werden, in der Standardkonfiguration deaktiviert lyse umfasst die Erstellung eines Security Risk Assassment oder noch besser gar nicht erst installiert werden oder Code, (SRA) und eines Privacy Impact Rating (PIR) ([16], p. 93–99 der mit erhohten¨ Privilegien arbeiten muss in einen eigenen /[17], p. 17–18). Durch das SRA soll u.a. ermittelt werden, Prozess ausgelagert wird. ASA und ASR sind mit dem fur¨ welche Teile des Projekts Bedrohungsmodelle erstellt Ziel, die Menge an angreifbarem Code zu verringern also und Penetrationstests durchgefuhrt¨ werden mussen.¨ Das PIR komplementar¨ zur Bedrohungsmodellierung, bei der vor definiert, welche Qualitatsstandards¨ die Software hinsichtlich allem einer Analyse der Angriffsvektoren und die Erarbeitung des Datenschutzes zu erfullen¨ hat. Die durch das SRA und von Gegenmaßnahmen im Vordergrund steht ([16], p. 79). das PIR gewonnenen Informationen sollen bei der Zeit- und Ferner konnen¨ die bei der Bedrohungsmodellierung erstellten

158 Artefakte nicht nur intern, sondern auch von Dritten genutzt bestimmte Programmteile bewusst mit ungultigen¨ oder werden (siehe Abschnitt VI-B). sinnlosen Eingaben getestet, um Fehlverhalten zu provozieren Der Prozess der Bedrohungsmodellierung wird an dieser und den anfalligen¨ Code robuster zu machen. Der SDL Stelle nur grob beschrieben, eine ausfuhrliche¨ Dokumentation schreibt vor, dass samtlicher¨ Code der Dateiformate der Vorgehensweise findet sich in [16], p. 105–128. Der erste oder Netzwerkpakete verarbeitet mit mindestens 100000 Schritt bei der Bedrohungsmodellierung ist die Definition ungultigen¨ Datensatzen¨ getestet wird. Ruft einer der von Benutzungsszenarien. Dies sollte nicht mit Unified Testdatensatze¨ einen Fehler hervor, so muss dieser behoben Modelling Language (UML) Use Cases verwechselt werden. und der Code anschließend mit weiteren 100000 ungultigen¨ Ein solches Szenario setzt sich beispielsweise mit der Testdatensatzen¨ gepruft¨ werden. Laut Microsoft lassen sich Fragestellung auseinander, welche Sicherheitsimplikationen so ca. 20–25% aller Bugs durch Fuzzing ermitteln ([16], p. ein gestohlenes Mobiltelefon nach sich zieht (sofern Software 153–164 / [17], p. 37). fur¨ Mobiltelefone entwickelt wird). Fur¨ Komponenten, die laut den Bedrohungsmodellen das Im nachsten¨ Schritt werden die externen Abhangigkeiten¨ hochste¨ Sicherheitsrisiko darstellen, mussen¨ Penetrationstests und die Sicherheitsannahmen betrachtet. Moderne Software durchgefuhrt¨ werden. Im Idealfall wird hierbei auf einen ist meist nicht eigenstandig,¨ sondern benotigt¨ eine Vielzahl externen Dienstleister zuruckgegriffen,¨ da fur¨ einen effektiven von externen Komponenten (wie etwa ein Betriebssystem), Penetrationstest ein hohes Maß an Fachwissen erforderlich um zu funktionieren. Setzt die Software beispielsweise ist, das evtl. in der eigenen Belegschaft nicht vorhanden ist. den Authentifizierungsmechanismus des Betriebssystems Je nach Produkt muss ggf. ein Security Push durchgefuhrt¨ ein, so entsteht dadurch implizit die Annahme, dass dieser werden ([16], p. 169–179). Jedes Softwareprodukt, das nicht Mechanismus sicher ist. von Grund auf neu entwickelt wird, greift stellenweise Anschließend werden externe Sicherheitsnotizen verfasst, noch auf alteren¨ Code zuruck,¨ der vor der Einfuhrung¨ des die erganzend¨ zur Dokumentation die Vertrauensgrenzen SDL geschrieben wurde. Hauptziel dieser Aktivitat¨ ist daher (Trust Boundaries) des Softwaresystems definieren. Da- das Auffinden von Sicherheitsproblemen in Legacy–Code. nach folgt die Modellierung der Software in Form von Ziel ist nicht das Beheben der gefundenen Fehler, da das ein oder mehreren Datenflussdiagrammen (DFD), die die Entwicklerteam so Gelegenheit bekommt sich wahrend¨ des Interaktion zwischen Prozessen und Akteuren visualisieren. Security Push ausschließlich auf die Sicherheit zu konzen- Jedem Element des Datenflussdiagramms werden bestimmte trieren. Die Werkzeuge hierfur¨ sind primar¨ Codereviews und Bedrohungsarten zugeordnet. Dabei wird nicht die klassische ein erneuter Softwaretest mit besonderem Fokus auf die CIA–Taxonomie, sondern stattdessen die STRIDE–Kriterien Schnittstellen zwischen neuem und altem Code und die am herangezogen ([16], p. 114–116). Ein Datenfluss etwa wird meisten gefahrdeten¨ Komponenten der Software. prinzipiell durch Manipulation (Tampering), ungewollte Howard und Lipner fuhren¨ an, dass die Notwendigkeit Informationsweitergabe (Information Disclosure) und Dienst- fur¨ einen Security Push durch eine vollstandige¨ Umstellung verweigerungen (DDoS) bedroht. auf SDL letztendlich vollstandig¨ verschwinden wird (vgl. Die identifizierten Bedrohungen werden bewertet, um [16], p. 170). Die Autoren stehen dieser Einschatzung¨ anhand des moglichen¨ Schadenspotenzials zu entscheiden, kritisch gegenuber,¨ da auch SDL Legacy Code“ entstehen ” welche Bedrohungen vorrangig mit welchen Mitteln eli- kann, bei dessen Erstellung bestimmte Erkenntnisse der miniert werden mussen.¨ Im eben genannten Datenfluss– Sicherheitsforschung noch unbekannt waren. Der Security Beispiel ließe sich durch den Einsatz von Kryptografie Push stellt in jedem Fall eine sinnvolle Aktivitat¨ dar und die Vertraulichkeit und Authentizitat¨ der Informationen sollte nicht ausgelassen werden. sicherstellen. Dem DDoS–Problem hingegen konnte¨ mit einer 6) Release: Kurz vor dem Release muss gepruft¨ werden, Hochverfugbarkeitsl¨ osung¨ begegnet werden. ob die Software uberhaupt¨ zur Auslieferung bereit ist. Das 4) Implementierung: Wahrend¨ der Konstruktion der Soft- zentrale Sicherheitsteam (siehe Abschnitt VI-A2) fuhrt¨ zur ware gibt es nur wenig SDL–spezifische Aktivitaten.¨ Die Klarung¨ dieser Frage ein Final Security Review (FSR) durch. erstellte Dokumentation sollte explizit darauf eingehen, wie Das Final“ implizit, dass wahrend¨ des FSR ein aufwendiges ” die Software sicher betrieben werden kann. Dies kann erreicht Review aller Entwicklungsartefakte durchgefuhrt¨ wird, was werden indem gefahrliche¨ Features oder Aktionen, die allerdings eine Fehleinschatzung¨ ist. Der FSR dient vor besondere Privilegien erfordern ausdrucklich¨ gekennzeichnet allem der Verifikation. Es soll sichergestellt werden, dass werden ([16], p. 133–141). das Entwicklerteam alle SDL–Aktivitaten¨ korrekt umgesetzt Informationen zu den technischen Maßnahmen fur¨ sicheren hat. Wenn dies der Fall ist, sollte der FSR nur wenig Zeit in Code sind in [16] und [17] in großer Menge vorhanden und Anspruch nehmen ([16], p. 181–185, [17], p. 43–49). auch die Autoren sehen dort aktuell keinen Anlass zur Kritik. Die Hauptaktivitaten¨ wahrend¨ des FSR umfassen ein 5) Validierung: Zusatzlich¨ zu den klassischen Review der Bedrohungsmodelle durch das zentrale Sicher- Komponenten-, System- und Integrationstests legt der heitsteam bei dem gepruft¨ wird, ob alle Modelle ausrei- SDL hohen Wert auf Fuzzing. Beim Fuzzing werden chend detailliert und aktuell sind. Es werden die noch

159 offenen Probleme im Bug–Tracker des Projekts auf ihre die Sicherheit zur Firmenphilosophie gemacht haben nur Sicherheitsrelevanz untersucht und sichergestellt, dass bei der ungern Geld zur Behebung von Sicherheitsproblemen aus- Implementierung alle zur Verfugung¨ stehenden Werkzeuge geben, wenn es nicht unbedingt sein muss. Gleichzeitig korrekt eingesetzt wurden. bedeutet dies, dass Hersteller durch die Veroffentlichung¨ zur Wenn der FSR abgeschlossen ist wir das zentrale Sicher- Bereitstellung von Sicherheitsupdates gezwungen werden heitsteam entweder die Freigabe zum Release der Software mussen.¨ Die Verfasser verstehen die Argumente beider erteilen oder ein Lastenheft mit den gefundenen Mangeln¨ Seiten und mochten¨ an dieser Stelle zu einer Kultur von erstellen. Neben weniger tragischen Problemen wie etwa “Responsible Disclosure aufrufen. Herstellern sollte zwar ein ” seit Langerem¨ nicht aktualisierte Bedrohungsmodelle konnen¨ angemessener Zeitraum fur¨ die Entwicklung eines Updates dies auch projektgefahrdende¨ Mangel¨ sein (etwa dann, wenn gegeben werden aber spatestens,¨ wenn es konkrete Hinweise sich herausstellt, dass uber¨ 20% der Projektmitglieder ihr darauf gibt, dass eine Lucke¨ aktiv ausgenutzt wird, sollten jahrliches¨ Sicherheitstraining vernachlassigt¨ haben, siehe [17], deren Details veroffentlicht¨ werden damit (technisch begabte) p. 12). Anwender sich selbst schutzen¨ konnen.¨ Die Autoren halten wenig davon, dass der SDL an dieser Stelle die Moglichkeit¨ bietet, Ausnahmen zu erlauben ([16], B. Verknupfung¨ mit den IT–Grundschutz–Katalogen p. 184–185). Das Sicherheitsteam kann entscheiden, dass Die vom BSI herausgegebenen IT–Grundschutz–Kataloge die Verwendung einer verbotenen Funktion im Quellcode richten sich im Hinblick auf Aufbau und Inhalt in erster Linie strcpy() (z.B. ) im Einzelfall gut begrundet¨ und toleriert an Systemadministratoren und Anwendungsverantwortliche. werden kann. Es ist unumstritten, dass es moglich¨ sein muss, Der IT–Grundschutz verlangt, dass eine Strukturanalyse und Ausnahmen zu definieren, um mit Legacy–Code arbeiten zu eine Schutzbedarfsfeststellung der IT–Infrastruktur eines konnen.¨ Auf jeden Fall sollte dies aber nicht kurz vor dem Unternehmens erstellt werden (siehe [29], S. 26–27). Release der Fall sein, sondern ausschließlich zu Beginn des Softwarehersteller, die den SDL einsetzen, konnten¨ diesen Projekts bis in die Konstruktionsphase hinein. Prozess erheblich unterstutzen,¨ indem sie die erarbeiteten Be- 7) Security Response: Die zweite begleitende Aktivitat¨ drohungsmodelle (siehe Abschnitt VI-A3) und evtl. erstellte des SDL ist neben dem Sicherheitstraining (siehe Abschnitt aber nicht veroffentlichte¨ Sicherheitsdokumentation (siehe VI-A1) die Etablierung eines Prozesses zur Behandlung von Abschnitt VI-A4) zuganglich¨ machen. Sicherheitsproblemen ([16], p. 187–214, p. 217-222). Der Die Autoren halten dieses Vorgehen von Softwareherstel- SDL empfiehlt die Einrichtung eines Security Response ” lern jedoch fur¨ unwahrscheinlich, da die Bedrohungsmodelle Center“ zur Koordination der Entwicklerteams bei Sicher- direkte Ruckschl¨ usse¨ auf die Produktqualitat¨ bezuglich¨ der heitsproblemen. Sicherheit zulassen. Abhangig¨ vom Grad der Ausschmuckung¨ Kontrovers diskutiert werden muss an dieser Stelle aller- der Softwarequalitat¨ durch das Marketing kann sich dies fur¨ dings die Empfehlung von Microsoft mit der Auslieferung einen Hersteller als Nachteil erweisen wenn sich durch die von Sicherheitsaktualisierungen nach Moglichkeit¨ zu warten Bedrohungsmodelle belegen lasst,¨ dass die Software den und diese am besten gleich mithilfe eines großeren¨ Service– angepriesenen Qualitatsstandard¨ gar nicht halten kann. Packs zu tarnen (siehe [16], p. 192). Microsoft argumentiert, Zusatzlich¨ lasst¨ sich wie im vorherigen Abschnitt argu- dass aus den Updates mithilfe von Reverse–Engineering mentieren, dass offentlich¨ zugangliche¨ Bedrohungsmodelle Ruckschl¨ usse¨ auf die Sicherheitslucken¨ moglich¨ sind. An- Hinweise darauf liefern konnten,¨ wo eine Software angreifbar greifer wurden¨ so aktiv auf ausnutzbare Sicherheitsprobleme ist. Die Autoren sehen diese Gefahr nicht gegeben, da Open– hingewiesen. Source Software prinzipiell demselben Problem ausgesetzt Wozu solch ein Verhalten fuhren¨ kann, wurde im Ja- ist aber im Vergleich mit kommerziellen Produkten dennoch nuar 2010 durch die sog. NTVDM–Lucke¨ eindrucksvoll nicht als unsicherer gilt [30]. demonstriert. Sicherheitsexperte Tavis Ormandy entdeckte ein kritisches Sicherheitsproblem im NTVDM–Subsystem, der C. Effektivitat¨ und Rentabilitat¨ Kompatibilitatsschicht¨ fur¨ 16–Bit–Anwendungen, durch das ein Angreifer beliebige Manipulationen mit Systemrechten Eine der bemerkenswerten Eigenschaften des SDL ist durchfuhren¨ kann. seine empirisch nachgewiesene Effektivitat.¨ Der Windows ” Microsoft war bereits seit uber¨ 6 Monaten von Ormandy Vista One Year Vulnerability Report“ [31] zeigt, wie durch uber¨ das Problem informiert, sah aber aufgrund der Tatsache, die Einfuhrung¨ des SDL die Zahl der Sicherheitslucken¨ in dass das Problem nur die 32–Bit–Versionen von Windows Windows Vista im Vergleich zu dessen Vorgangerversion¨ betraf und zudem nicht offentlich¨ bekannt war keinen Hand- Windows XP um bis zu 55% reduziert werden konnte (siehe lungsbedarf. Erst als Ormandy die Lucke¨ nach uber¨ einem [31], Abbildung 3). halben Jahr publizierte stellt Microsoft einen entsprechenden Die in [31] vorgestellten Zahlen spiegeln jedoch lediglich Patch bereit [28]. die Sicherheitslucken¨ wieder, die in offiziellen Microsoft– Dieser Vorfall zeigt, dass auch Hersteller wie Microsoft, Patches erwahnt¨ und durch diese behoben wurden. Wie in

160 Abschnitt VI-A5 bereits erlautert¨ wurde, ist durchaus anzu- dass auch andere Bereiche wie nix- oder Embedded–Systeme nehmen, dass bei Weitem nicht alle Sicherheitsprobleme von starker¨ berucksichtigt¨ werden. Microsoft veroffentlicht¨ werden. Inwiefern dieser Umstand Trotz all dieser Mangel¨ bieten die verfugbaren¨ Dokumente Einfluss auf die Relation zwischen den Angaben fur¨ Windows zu SDL einen guten Einstieg in die Entwicklung siche- XP und Windows Vista nimmt, ist nur schwer zu erahnen. rer(er) Software und liefen Anregungen zur Verbesserung Es steht jedoch außer Frage, dass Windows Vista auch des eigenen Entwicklungsprozesses. Ebenfalls lobenswert unter Berucksichtigung¨ einer erheblichen Toleranz besser ist die Bereitstellung von Trainingsunterlagen [36] und abschneidet als Windows XP. passenden Werkzeugen [37] zur Bedrohungsmodellierung Eine weitere Studie [32] betrachtet den SDL aus finan- und zur Integration von SDL in das Visual Studio Team zieller Sicht. Wie in Abschnitt VI-D erwahnt,¨ bedeutet System (VSTS). eine professionelle Umsetzung des SDL, dass ein gewisses Auch seine Praxistauglichkeit und seine Resultate ([31], Maß an Investitionen im Voraus geleistet werden muss um [32], [16], p. xvii) sind empirisch belegt und stehen damit Sicherheitsschulungen, den Aufwand fur¨ die zusatzlichen,¨ außer Frage. Auch die naive Annahme, der SDL wurde¨ sicherheitsrelevanten Entwicklungsaktivitaten¨ und ggf. auch durch das zusatzlich¨ gewonnene Maß an Sicherheit den Lizenzen fur¨ Werkzeuge zu finanzieren ohne das sich daraus Entwicklungsprozess nur in die Lange¨ ziehen und Kosten ein unmittelbarer finanzieller Vorteil ergibt. verursachen kann durch [32] widerlegt werden. Verschiedene Untersuchungen ([33], [34]) zeigen aller- dings auch, dass die Kosten fur¨ die Behebung von Soft- VII.DAS V–MODELL XT INDER PRAXIS warefehlen, die fruh¨ im Projekt begangen werden, mit jeder Projektphase, in der sie nicht behoben werden, ex- Das V–Modell XT findet oftmals, wenn auch unfreiwillig, ponentiell ansteigt. Da eine Investition in SDL dafur¨ sorgt, Anwendung bei der Entwicklung sicherer und sicherheits- dass etwaige Sicherheitsprobleme so fruh¨ wie moglich¨ im kritischer Systeme in den Bereichen Automotive, Luft- und Entwicklungsprozess erkannt werden, sinken die Kosten Raumfahrt und Militartechnik.¨ Daher haben sich die Autoren der Softwarewartung enorm, was einer Betrachtung des entschlossen dieses Vorgehensmodell im Folgenden anhand kompletten Lebenszyklus eines Produkts ein erhebliches eines Praxisbeispiels zu erlautern¨ und zu bewerten. Potenzial fur¨ Einsparungen ergibt (vgl. [32], p. 17). D. Bewertung A. Einfuhrung¨ Der Security Development Lifecycle uberzeugt¨ durch seine Das V–Modell XT stellt eine Neuentwicklung des ur- Offenheit (wobei dieser Aspekt auch kontrovers diskutiert sprunglich¨ bekannten V–Modell ’92/’97 dar. Seitdem 1997 werden kann, siehe Abschnitt VI), die Fahigkeit¨ sich in der Entwicklungsstandard fur¨ IT–Systeme des Bundes beliebige Projektstrukturen und Entwicklungsprozesse inte- erschienen[38] ist, gilt das Modell als fest definierter, vor- grieren zu lassen (siehe Abschnitt VI-A und VIII-B) und die geschriebener und auch international anerkannter Entwick- Berucksichtigung¨ der sich standig¨ im Wandel befindlichen lungsstandard bei IT–Projekten fur¨ den Bund. Die aus der Sicherheitslandschaft (vgl. Abschnitt VI). Zwar ist es emp- damaligen Anwendung gewonnenen Informationen schufen fehlenswert moglichst¨ viele SDL–Aktivitaten¨ umzusetzen die Basis fur¨ eine Weiterentwicklung des Modells. Dabei aber dennoch bietet SDL Spielraum fur¨ eigene Anpassun- wurden Verbesserungsmaßnahmen in Kooperation der TU gen, sodass sich die in diesem Dokument vorgeschlagenen Munchen,¨ TU Kaiserslautern und Unternehmen wie 4Soft, Verbesserungen problemlos umsetzen lassen. EADS, IABG und Siemens in einem daraus entstandenen Negativ hervorzuheben ist vor allem die verfugbare¨ Doku- Projekt vorgenommen.[39] mentation zu SDL. Das Dokument, welches eigentlich als Das daraus entstandene V–Modell XT enthielt neben den Referenz fur¨ alle SDL–spezifischen Fragen herangezogen Neuerungen wie z.B. der Integration neuer Techniken und Me- werden sollte — die SDL Process Guidance Version 5.0“ thoden, das Merkmal des eXtreme Tailoring“ (XT). Dieser ” ” [17] — weist bereits auf Seite zwei darauf hin, dass nur zur Ansatz reprasentiert¨ eine der wesentliche Haupterneuerungen, Illustration gedacht ist und den von Microsoft praktizierten welche in die Entwicklung des Modells mit eingeflossen sind. SDL weder ausfuhrlich¨ noch prazise¨ beschreibt. Wesentliche Dabei wurde das Ziel verfolgt, sowohl die Anpassbarkeit als Teile des SDL wie etwa die genauen Aufgaben der definierten auch die Flexibilitat¨ fur¨ verschiedene Projekt- oder Organi- Rollen oder die Bedrohungsmodellierung werden in [17] sationsstrukturen (z.B. fur¨ die Entwicklung sicherheitskriti- nicht naher¨ erlautert¨ und erfordern den Erwerb von [16] scher, eingebetteter Systeme oder auch fur¨ objektorientierte (wo ausschließlich SDL v3.2 behandelt wird) oder einer Enterprise–Projekte) zu ermoglichen.¨ Ein weiteres, wichtiges Beratungsdienstleistung durch ein Mitglied des SDL Pro Bestreben lag darin, die Qualitat¨ der (Software–)Systeme, als ” Network“ [35]. Des Weiteren ist die SDL–Dokumentation im auch die Performanz der Entwicklungsprozesse stetig verbes- Allgemeinen sehr stark auf die Softwareentwicklung fur¨ die sern, Risiken minimieren und Dokumentationsaufwand sowie Windows–Plattform zugeschnitten. Es ware¨ wunschenswert,¨ Kommunikationsmoglichkeiten¨ optimieren zu konnen.[40]¨

161 litatsverbesserung¨ und Risikominimierung, welche wahrend¨ des gesamten Entwicklungszyklus und daruber¨ hinaus durch- gefuhrt¨ werden, kann die Softwaresicherheit mittels damit verbundener Paradigmen des Security Engineering deutlich erhoht¨ werden.

C. Anwendung in der Praxis Ein Bespiel fur¨ die Anwendung des Vorgehensmodells Abbildung 3. Vorgehen bei der Systemerstellung [39] stellt die Firma Curtiss–Wright Antriebstechnik GmbH (CWAT) dar. Das Unternehmen mit Hauptsitz in der Schweiz befasst sich mit der Produktion von hydro–mechanischen, B. Eigenschaften und Konzepte elektro–hydraulischen und elektro–mechanischen Systemen Neben bekannten Vorgehensmodellen, wie dem Wasser- fur¨ militarische¨ und industrielle Anwendungen, sowie fur¨ fallmodell, dem Spiralmodell oder dem Rational Unified Anwendungen in der Fahrzeugtechnik. Dabei steht die Process (RUP), bietet die Struktur des V–Modell XT die Integration der Entwicklungvorgaben nach den Normen IEC Vorzuge¨ von unterstutzenden¨ Werkzeugen und die Beson- / DIN EN 61508 [44] und DO–178B im Vordergrund, was derheit der Modularisierung. Mittels dieser Aufteilung kann die Grundlage und eine wichtige, jedoch nicht grundlegend der Entwicklungsprozess auf ein bestimmtes Produkt oder erforderliche, Maßnahme fur¨ Produktzertifizierungen nach einen Produkttypen ein oder mehrere Marktsegmente zuge- der entsprechenden Norm bzw. dem entsprechenden Standard schnitten werden ( Tailoring“).[40] Das sogenannte Tailo- darstellt. Der daraus resultierende Softwareentwicklungszy- ” ” klus ( Software Development Lifecycle“) wird in Abbildung ring“ kann sowohl manuell als auch Werkzeugunterstutzt¨ ” 4 dargestellt und stellt ein umfangreiche Tailoring“ des V– durchgefuhrt¨ werden. Hierfur¨ werden verschiedene Tools ” angeboten, welche die Handhabung und Umsetzung des Modell XT mit der Spezialisierung auf sicherheitskritische, Prozesses erleichtern. Dazu gehoren¨ unter anderem Appli- eingebettet Software dar. Die in der Abbildung von den kationen wie der V–Modell XT Editor, der V-Modell XT Autoren grafisch rot untermauerten Bausteine stellen Akti- Projektassistent[41], die in-Step V-Modell XT Edition[42] vitaten¨ und Dokumente dar, welche sich hauptsachlich¨ auf und das Process Enactment Tool Framework[43]. Hiermit das Fachgebiet des Security Engineerings abbilden lassen. lassen sich neben der Prozessanpassung und -erweiterung Die Erstellung und Einfuhrung¨ des dargestellten Prozesses auch organisatorische Maßnahmen der Projektverwaltung und erfolgte mittels aufwendig durchgefuhrten¨ Modifikationen -kontrolle, der Qualitatssicherung¨ vornehmen und diese mit der jeweiligen Prozessstrukturen und den damit verknupften¨ vorhandenen Plattformen (Microsoft (MS) SharePoint, Team Aktivitaten.¨ Weiterhin bestand die Notwendigkeit, Templates Foundation Server, Office Word) verknupfen.¨ fur¨ Dokumente manuell zu erstellen und sowohl an die Ein weiterer Unterschied zu anderen bekannten Vorge- genannten Normen als auch an die Vorschriften des V– hensweisen ist, dass das Modell weitere organisatorische Modell selbst anzupassen, was wiederum einen hohen Kosten- Prozesse beinhaltet, wie z.B. die Auftragsvergabe und - /Aufwandsfaktor mit sich brachte. Aufgrund dieser Aspekte annahme oder das Produkt-, Projekt-, Konfigurations- und wird die Verwendung des Vorgehensmodells in der Praxis oft Qualitatsmanagement.¨ Weiterhin dient das Modell als Basis nur gegen den Willen der betroffenen Unternehmen und aus- einer Vertragsgrundlage zwischen Kunden und Unternehmen. schließlich aufgrund einer bestehenden Notwendigkeit (z.B. Ein weiterer, positiv zu erwahnender¨ Gesichtspunkt ist die Projekt fur¨ den Bund) umgesetzt. Ein weiterer zwangslaufiger¨ Moglichkeit¨ der Integration von bestimmten oder von Teilen Schritt ist die Automatisierung bestimmter Geschafts-¨ und anderer Vorgehensmodelle oder agilen Methoden. Daraus Entwicklungsprozesse durch geeignete Werkzeuge. Besonders lassen sich neben den definierten Rollen, Prozessen und bei der Durchfuhrung¨ von Prozeduren wie der Testerstellung, Aktivitaten,¨ welche das V–Modell selbst beinhaltet, noch -modellierung, -durchfuhrung¨ und -dokumentation, spielt das weitere verbessernde Techniken und Paradigmen einbringen. Ausnutzen automatisierter, unterstutzender¨ Anwendungen Die aktuelle Version des Modells (Version 1.3) definiert eine große Rolle und tragt¨ zur Gewahrleistung¨ einer wirt- im Hinblick auf Softwarequalitat¨ und Risikominimierung schaftlichen und effektiven Durchfuhrbarkeit¨ bei.[45] strikt die Verifizierung und Validierung jeder Komponente und jedes Artefaktes (vgl. Abb. 3) Somit wird dessen D. Security Engineering Anwendung meist von Unternehmen in Betracht gezogen, Der Softwareentwicklungszyklus (siehe Abb. 4) impliziert welche nach strikt vorgeschriebenen Sicherheitsnormen, - verschiedene Aktivitaten¨ und Prozesse zur Verfifizierung und standards und Sicherheitsanforderungen entwickeln und diese Validierung von Anforderungen und der Softwaresicherheit nachvollziehbar umsetzen mussen.¨ und dient weiterhin zur Unterstutzung¨ des Security Engi- Besonders im Hinblick auf die Aspekte der Qua- neerings. Zu Beginn jedes Projektes wird eine ausfuhrliche¨

162 definiertes Problem- und Anderungsmanagement¨ behandelt, behoben und die zugehorigen¨ Komponenten erneut und wie beschrieben, getestet werden. E. Bewertung Vielmals ist die Rede von dem Ermoglichen¨ einer besse- ren und schnelleren Softwareentwicklungsprozedur.[40][38] Besonders der Begriff einer schnelleren Umsetzung bzw. Durchfuhrung¨ eines Projektes ist nach Meinung der Autoren Abbildung 4. Security Engineering anhand des CWAT–Development Lifecycle [46] jedoch sehr fragwurdig.¨ Wahrend¨ die Zielsetzung einer qualitativen Verbesserung des Endproduktes gut umgesetzt wurde, hat dies jedoch den unangenehmen Nebeneffekt von hohen Kosten, da das Modell, trotz des Ziels einer Softwareanforderungsermittlung durchgefuhrt,¨ welche ne- optimalen Abwagung¨ zwischen erforderlicher und benotigter¨ ben funktionalen und nicht–funktionalen Anforderungen, Dokumentation, einen unwirtschaftlichen Mehraufwand und Schnittstellenanforderungen und Sicherheitsanforderungen Ressourcenbedarf mit sich bringt. Mit dieser Aufwand- beinhaltet. Anschließend wird eine ausfuhrliche¨ Gefahren- serhohung¨ entstehen bei den jeweiligen Organisationen und Risikoanalyse durchgefuhrt¨ mit einer entsprechenden und Unternehmen zusatzliche¨ Kostenfaktoren. Selbst die Bewertung. Diese wird sowohl in Absprache mit dem Verwendung von Werkzeugen schafft hier nur selten Abhilfe, Auftraggeber, als auch konkret vom Auftragnehmer bewaltigt¨ da der Einsatz neuer Anwendungen einerseits zusatzliche,¨ und umfasst die Dokumentation und Modellierung aller meist hohe, Ausgaben erfordert und andererseits von den Gefahrenpunkte und Risiken, die ein Projekt offenbart. jeweiligen Anwendern erlernt werden muss (z.B. durch Dieser langwierige Vorgang und die resultierenden Artefakte Trainings und Schulungen). Diese Grunde¨ sprechen auch werden wahrend¨ der Entwicklung fortgehend benotigt,¨ um die dafur,¨ weshalb das V–Modell XT oft nur dort Anwendung erkannten Sicherheitsaspekte auf ein Minimum reduzieren zu findet, wo es gesetzlich vorgeschrieben oder vom Kunden konnen.¨ Auf Basis der daraus resultierenden Artefakte werden verlangt wird. Wer nun also die Moglichkeit¨ hat von dieser die jeweiligen Aspekte nochmals erfasst und moglichst¨ Vorgehensweise abzusehen, dem sei geraten dies zu tun und ausgiebig auf ihre Vollstandigkeit¨ gepruft.¨ Daraufhin wird andere Methoden (siehe VI bzw. VIII-B) bei der Entwicklung eine Failure Mode and Efficts Analysis (FMEA) bzw. Failure sicherer Systeme in Erwagung¨ zu ziehen. Abschließend ist zu Mode, Efficts and Criticality Analysis (FMECA) [47] zur Zu- sagen, dass das V–Modell XT aus den genannten Aspekten verlassigkeitsverbesserung¨ des Gesamtsystems durchgefuhrt.¨ und nach Meinung der Autoren ein zu sehr aufgeblahtes“¨ ” Bei der Realisierung unterstutzen¨ neben Werkzeugen auch Vorgehensmodell darstellt und selbst bei großeren,¨ komplexen Programmierrichtlinien der Motor Industry Software Reliabi- und sicherheitsrelevanten IT–Systemen einen schlecht zu lity Association (MISRA) (siehe IX-C) die Implementierung bewertenden Kosten-/Aufwandsfaktor erzeugt. Ein Aspekt, der Softwareartefakte und die Verbesserung der sich daraus der fur¨ dessen Benutzung spricht, ist die Anwendung in ergebenden Codequalitat.¨ Zusatzlich¨ werden — wie in einem Unternehmen, welches das Vorgehen nach dem Modell der Softwarebranche ublich¨ — die Softwarekomponenten etabliert ist und welches uber¨ genugend¨ Know–how und umfassend getestet. Bei sicherheitskritischen Modulen wer- Automatisierungswerkzeuge, um den langwierigen Prozess den zusatzlich¨ Code–Reviews durchgefuhrt¨ um zusatzliche¨ wirtschaftlich durchzufuhren.¨ Programmierfehler zu reduzieren. Weiterhin werden wahrend¨ dieser Phase“ sowohl die Code- als auch die Testabdeckung VIII.SECURITY ENGINEERINGINAGILEN METHODEN ” mittels Toolunterstutzung[¨ 45] verrichtet. Sind diese Vorgange¨ Die Anwendung agiler Methoden ist in der Softwar- erfolgreich durchgefuhrt¨ werden weitere Integrationstests eindustrie von großer Bedeutung. Als Grund hierfur¨ ist benotigt.¨ Daraufhin wird das System einem Akkzeptanztest insbesondere die Leichtgewichtigkeit und das Ermoglichen¨ unterworfen, welcher von den Kunden bestatigt¨ werden muss. einer relativ schnellen und kundengerechten Entwicklung Bei all diesen Schritten ist eine detaillierte Dokumentation in von Softwareprodukten zu nennen. Klassische Vorgehenswei- Form von Verifikationsprotokollen und -reporten gefordert um sen, wie das Wasserfallmodell oder die Common Criteria“ ” beim Auftreten eines Fehlers oder eines Systemausfalls so gut (basierend auf dem Wasserfallmodell) [48] weisen oft die wie moglich¨ zuruckverfolgen¨ zu konnen,¨ wo und auf welche Nachteile auf, dass den Entwicklern zu wenig Freiheiten Art und Weise die Fehlfunktion oder der Ausfall zustande und Anpassungsmoglichkeiten¨ geboten werden, diese sehr gekommen ist. Wird wahrend¨ der Entwicklung, z.B. nach strikte Aktivitaten¨ definieren und zu hohen Aufwand fur¨ abschließender Implementierung und Testdurchfuhrung¨ einer Planungs- und Dokumentationsprozesse mit sich bringen. Komponente, oder spater¨ beim Systemtest noch ein Fehler Der Mehraufwand ist ublicherweise¨ zuruckzuf¨ uhren¨ auf festgestellt, so muss dieser wiederum ausfuhrlich¨ durch ein z.B. sehr ausfuhrliche¨ Risikoanalysen und -bewertungen,

163 Auswirkungsanalysen oder auch auf ausgiebige Qualitats-¨ • KISS (keep it short and simple)“ Das Prinzip KISS ” und Testprozesse. hat im Bezug zur agilen Entwicklung die Bedeutung, dass die einzelnen Systemkomponenten moglichst¨ klein A. Security Engineering als Erweiterung von XP und Scrum und einfach gehalten werden sollen. Das hat den Vorteil, Zu den wohl popularsten,¨ leicht gewichteten, agilen dass einerseits die Ubersicht¨ uber¨ das jeweilige Artefakt Methoden gehoren¨ sowohl das eXtreme Programming und positiv beeinflusst wird und andererseits das Prufen¨ bzw. Scrum. Da diese Methoden auch in der Industrie haufig¨ Testen erleichtert werden soll. Besonders bei kurzen Anwendung finden, ist es von Bedeutung, dass die Praktiken Iterationen ermoglicht¨ dies eine Verringerung der durch und Techniken des Security Engineerings fur¨ die Entwicklung Komplexitat¨ auftretenden Fehler und ermoglicht¨ so die sicherer Software auch in diesen Methoden Anwendung Beibehaltung der kurzen Relasezyklen. finden bzw. integriert werden konnen¨ [16]. • Pair–Programming“ Die Anwendung des 4–Augen– ” Prinzips ermoglicht¨ einen besseren Know–How–Transfer B. Agiler (MS–)SDL / eXtreme Security Engineering unter den Entwicklern und hat zudem den Vorteil, dass Der agile SDL wurde von Microsoft entwickelt und bezieht eventuell beim Programmieren erzeugte Fehler von einer sich auf die Anwendung der in dem klassischen SDL (siehe zweiten Person identifiziert und behoben werden konnen.¨ VI) beschriebenen Methoden auf agile Prozesse. Der Vorteil Das fuhrt¨ zu einer verbesserten Softwarequalitat¨ und der agilen Methoden liegt besonders in ihrer einfachen kurzeren¨ Entwicklungs- bzw. Releasezeiten. Vorgehensweise. Sie sind meist formlos (enthalten keine • Test–First“ Microsoft schlagt¨ als weiteren Ansatz ” Nachvollziehbarkeit zwischen Anforderungen, Modellen, die Testgetrieben Entwicklung vor. Dabei wird zuerst Testfallen,¨ Tests und Testreporten), enthalten nur geringfugig¨ einen Modultest geschrieben, bevor man das jeweilige vorgegebene Rollen und Verantwortlichkeiten und pragen¨ Modul oder eine Funktion implementiert, was zu einer sich durch kurze Iterationen bzw. Sprints (Ein Sprint sollte signifikanten Erhohung¨ der Sicherheit fuhren¨ soll. im Idealfall nicht langer¨ andauern als 14–30 Tage). Diese • Kontinuierliche Integration Die kontinuierliche Inte- Aspekte außern¨ sich jedoch in Bezug auf das Security gration wird auf kleine Codehappchen“¨ angewendet, ” Engineering in einer gewissen Problematik. Die Methoden welche fortgehend in das System integriert werden und Aktivitaten,¨ welche beim Erstellen sicherer Software sollten. Somit mussen¨ keine große Anderungen¨ in einem gefordert werden sind meist sehr ausfuhrlich¨ und erfordern Stapel verarbeitet und getestet werden und Defekte bei einer korrekten Durchfuhrung¨ viele Ressourcen. Somit werden fruher¨ erkannt, was wiederum eine Zeitersparnis konnen¨ diese nicht eins–zu–eins, wie z.B. im SDL be- und Qualitatssteigerung¨ mit sich bringen kann. schrieben, angewendet werden und mussen¨ dementsprechend • Legacy“ Code Bei der Integration von alteren¨ oder vor- ” angepasst werden. Aufgrund dieses Umstands hat sich MS die handenen Komponenten sollte immer ein Code–Clean– Aufgabe vorgenommen, eine nach ihrer Definition optimale Up ein Review erfolgen, so dass keine zusatzlichen¨ Abwagung¨ zwischen Agilitat¨ und Security Engineering zu Sicherheitsrisiken oder Fehler in das System eingebun- finden. Dabei wird der von ihnen vorgestellte SDL weit den werden. moglichst¨ angepasst und zugeschnitten, so dass wichtige • Refactoring Das Refactoring stellt bei der agilen Ent- Aktivitaten¨ und Prozesse in iterativen, agilen Methoden wicklung eine Besonderheit dar, da es bei jeder Iteration genutzt werden konnen¨ [16]. durchgefuhrt¨ werden kann. Deshalb sollte wahrend¨ Um die gewunschten¨ Ergebnisse zu erzielen muss demnach der Durchfuhrung¨ eines Refactorings zusatzlich¨ auf beispielsweise bei jeder Iteration eine kurze und pragnante¨ die Entstehung von moglichen¨ (sicherheitsrelevante) Anforderungs- und Risikoanalyse mit einer dazugehorigen,¨ Defekten geachtet werden. verkurzten¨ und klar definierten Bewertung erfolgen. Weiterhin • Final Security Review Aufgrund der kurzen Relea- ist vorzugsweise von hoher Bedeutsamkeit, einen hohen Grad sezyklen ist es wichtig, dass das in VI vorgestellte an Automatisierung durch Werkzeuge zu erlangen damit FSR gekurzt¨ bzw. aufgeweicht“ wird und auf die ” die gewunschten¨ Entwicklungsartefakte (u.a. Dokumentation, wesentlichen Punkte auf die User Stories (s.u.) reduziert Modelle und Tests) wahrend¨ den kurz gehaltenen Iterationen wird. umgesetzt werden konnen.¨ Bei der Implementierung ist • Bedrohungsmodellierung (Thread–Modelling) Auch es daruber¨ hinaus sinnvoll, geeignete Programmierrichtli- die Modellierung von Bedrohungen kann nur bedingt nien und Security Patterns“ (siehe IX-A) unterstutzend¨ vorgenommen werden, da nicht alle Bedrohnunge zu ” zu verwenden. Wie auch beim SDL sollten Verfahren zur Beginn eines Projektes erfasst sind und sich die Anzahl Know–How–Verbesserung der Entwickler umgesetzt werden, der detektierten Bedrohungen erst fortlaufenden wie beispielsweise regelmaßige¨ (jahrliche)¨ Schulungen und Iterationen erhohen.¨ Trainings. Besonders in der agilen Entwicklung ist es auch von großem Vorteil, gegebene Best Practices“ zu etablieren. Neben den der iterativen Vorgehensweise und den ge- ” Nennenswerte Beispiele waren¨ u.a.: nannten Best Practices“, die das Ziel der Verbesserung von ”

164 Softwarequalitat¨ und -sicherheit verfolgen, bieten die agilen Codierungsrichtlinien Methoden (insbesondere eXtreme Programming (XP)) noch • Festlegen und Querchecken von Gegenmaßnahmen der zusatzliche¨ Eigenheiten. Diese mussen¨ ebenfalls betrachtet in den Abuser Stories enthaltenen Merkmale und wie folgt erweitert bzw. angewendet werden: Die sog. Abuser Stories stellen bei dem Planning Game des • User Stories Die sog. User Stories stellen beim XP kur- XSE das Kernelement dar und enthalten mogliche¨ Gefahrens- ze Texte dar, welche erlautern,¨ wie ein System Probleme zenarien. Sie werden entweder von einem Sicherheitsteam lost¨ oder Prozesse unterstutzt.¨ Zu den Standard–Texten oder in Zusammenarbeit mit einem Domanenexperten¨ erstellt. kommen bei der Integration des Security Engineering Der Sicherheitsexperte ist von grundlegender Notwendigkeit, zusatzlich¨ sicherheitsrelevante User Stories hinzu. Diese da er uber¨ das Wissen von aktuellen Sicherheitslucken¨ und mussen¨ die Sicherheitsanforderungen des Kunden bein- -risiken, Gefahren und relevanten Bedrohungen verfugt¨ und halten und werden auf Basis der Risikoanalyse erstellt. fur¨ eine sorgfaltige¨ Betrachtung und Analyse der genannten User Stories konnen¨ als vollstandig¨ angesehen werden Gesichtspunkte sorgt. Nach Festlegung der Abuser Stories sobald der dazugehorige¨ Quellcode eingecheckt wurde, werden diese mit dem User Stories gemappt indem ein oder Tests durchgefuhrt¨ und bestanden sind und nachdem der mehrere Abuser Stories in Relation mit einer User Story Auftragsnehmer die Vollstandigkeit¨ bestatigt¨ hat. gebracht werden. Abschließend wird nach den ublichen¨ • Constant Customer Availability Die Kommunikation Maßnahmen (vgl. agiler SDL) fortgefahren. Zu Beachten mit dem Kunden spielt bei eine sehr wichtige Rolle um sind dabei noch Codierungsrichtlinien, welche z.B. nach Produkte optimal anpassen und gewunschten¨ Anforde- Erkennung eines Defekts so erweitert werden sollten, dass rungen nachkommen zu konnen.¨ Um dies in den Bezug das Auftreten des selben Fehlers in Zukunft vermieden wird zur IT–Sicherheit zu bringen sollte der Kunde dabei [50][49]. mindestens ein gutes Grundverstandnis¨ von Sicherheit C. Bewertung haben um konkrete Anforderungen außern¨ zu konnen¨ und diese mit in die (sicherheitsrelevanten) User Stories Bewertend lasst¨ sich sagen, dass die genannten Methoden aufnehmen zu konnen.¨ auch nach der Integration von Security Engineering, wei- • Moving People Around Dieses Prinzip sagt aus, dass terhin eine hohe Anpassbarkeit, Flexibilitat¨ und Effektivitat¨ Teams untereinander ihre Mitglieder austauschen sollten aufweisen. Positiv zu bewerten ist auch, dass Anforderungen, um z.B. einen verbesserten Know–how–Transfer durch insbesondere Sicherheitsanforderungen, zu einem spateren¨ das Austauschen von Expertenwissen zu erzielen. Dabei Zeitpunkt in einem Projekt eingebracht werden konnen.¨ Dies ist ein gutes Verstandis¨ von IT–Sicherheit wichtig, da kann einerseits durch ein Kundenfeedback und andererseits jedes Teammitglied die Position des Sicherheitsexperten durch Entwickler selbst und beteiligte Sicherheitsexperten einnehmen kann. erfolgen. Das Kundenfeedback und die kurz gehaltenen Iterationen und Releasezyklen fuhren¨ zusatzlich¨ zur einer Ein weiterer, mit dem SDL starkt zusammenhangender¨ Reduktion der Systemkomplexitat,¨ einer signifikanten Ver- Ansatz, ist das von Konstantin Beznosov [50] vorgestellte besserung der Risikominimierung und Softwarequalitat¨ und eXtreme Security Engineering. Dieses umfasst neben den fur¨ ein meist sehr gute Kundenzufriedenheit. bereits vorgestellten Methoden noch weitere Gesichtspunkte, Ein Problem stellt jedoch das fruhe¨ Erfassen aller welche sich nach Meinung der Autoren jedoch direkt aus dem (Sicherheits-)Anforderungen dar, da es aufgrund der agilen oben beschriebenen agilen SDL ableiten lassen. In Abbildung Vorgehensweise nicht direkt umsetzbar ist und die kurzen 5 zu sehen, ist ein Uberblick¨ des sog. Planning Game“ des ” Iterationen nicht dafur¨ ausgelegt sind. Ein weiterer Kritik- eXtreme Security Engineering (XSE). Dabei wird dessen punkt ist, dass sich der Konsens der agilen Entwicklung Ablauf sowie die Eingaben und Ausgaben der Strategie im hin zu dem der der klassischen Methoden (SDL, V–Modell Bezug auf IT–Sicherheit sehr ubersichtlich¨ dargestellt. XT, ...) entwickelt, da der Prozess u.U. fortlaufen erweitert Das Planning Game beschreibt die Anforderungs- und werden muss um ausfuhrlicheres¨ Security Engineering zu Sicherheitsanalyse beim XSE. Im Vergleich zu dem Stan- ermoglichen.¨ Aufgrund dieser Tatsache muss stets darauf dardvorgehen werden bei dem XSE–Vorgehen zusatzliche¨ geachtet werden, die Dokumentation moglichst¨ gering zu Schritte gefordert, wie z.B.: [49] halten und die Agliltat¨ weiterhin zu gewahrleisten.¨ • Identifizieren von sicherheitsrelevanten Anforderungen Als Verbesserung und zur weiteren Unterstutzung¨ bei der und Komponenten Vorgehensweise konnen¨ verschiedene Werkzeuge herange- • Ausformulieren der identifizierten Sicherheits- und zogen werden. Besonders im Hinblick auf Dokumentation Risikomerkmale in den sog. Abuser Stories“[49] und Automatisierung besteht ein weites Spektrum an Op- ” • Durchfuhren¨ einer Risikobewertung mittels der formu- timierungsmoglichkeiten.¨ An diesem Punkt lasst¨ sich auch lierten Abuser Stories der zusatzliche¨ Ansatz der modellgetriebenen bzw. modell- • Abhandeln zwischen Abuser und User Stories basierten Entwicklung (z.B. via UML) sicherer Systeme • Definition der sicherheitsrelevanten User Stories und mit einbringen. Diese Vorgehensweise lasst¨ einen weiteren

165 Abbildung 5. (eXtreme Security Engineering Planning Game [49])

Abstraktionsgrad zu, der besonders den Aufwand bei der die in einer Vielzahl vorhanden Security Patterns in Implementierung durch geeignete Modelltransformationen verschieden Kategorien aufgeteilt. Hierzu zahlen¨ u.a. die minimieren soll [51][52]. Kategorien der Identifikation- & Authentifikations- (I&A), Zugriffskontrollmodell- und Zugriffskontrollarchitektur IX.UNTERSTUTZENDE¨ ANSATZE¨ und Firewall–Architektur-Patterns als auch Muster Ein Problem bei der Einbringung weiterer Methoden ist, fur¨ die Erstellung sicherer Internetanwendungen und dass einige besser und einige weniger gut von den Entwick- kryptografischer Schlusselverwaltungssysteme.[53]¨ lungsprozessen unterstutzt¨ werden. Zum Beispiel ist die Inte- Als einfaches Beispiel mochte¨ hier das Proxy–Firewall– gration einer FMEA bzw. FMECA oder Fehlerbaumanalyse Pattern[53] genannt werden. Dieses gehort¨ zu den Firewall– (FTA) [47] in agile Methoden aufgrund der Iterationen sehr Architektur–Patterns und dient dem Schutz vor Ausfuhrung¨ problematisch. Eine FMEA kann nur schwierig wahrend¨ bestimmter Anweisungen direkt auf einem Server. Die kurzen Releasezyklen durchgefuhrt¨ werden, wahrend¨ sie Losung,¨ welche hierzu vorgeschlagen wird, ist das Zwi- in klassischen Methoden und Vorgehensmodellen durchaus schenschalten eines Proxys zwischen Client und Server, sinnvoll und qualitatssteigernd¨ eingesetzt werden kann. Im welcher einen sicheren Dienst (Firewall) enthalt.¨ Dieser Folgenden wird ein Uberblick¨ von moglichen¨ Ansatzen¨ Dienst verhindert mittels definierter Filtern und Regeln beispielsweise das Ausfuhren¨ schadlicher“¨ Kommandos auf gegeben, welche das Security Engineering unterstutzen¨ ” konnen.¨ dem Server, die zu bestimmten Fehlersituationen fuhren¨ konnen¨ (siehe V-A oder V-B). A. Security Patterns B. Formale und modellbasierte Praktiken Security Patterns beschreiben haufig¨ auftretende Fur¨ die Modellierung von Softwaresicherheit existieren (Sicherheits-)Probleme in einem bestimmten Kontext mit unterschiedlichste Ansatze,¨ auf welche jedoch in vorliegender den dazugehorigen¨ Losungsm¨ oglichkeiten.¨ Sie bieten einen Arbeit nicht detailliert eingegangen wird. Dazu gehoren¨ u.a.: verstandlichen¨ und strukturierte Losungsweg¨ um mogliche¨ • Modifiziertes McCall’s SW-Qualitatsmodell[54][55]¨ Angriffs- und Produktrisiken zu minimieren. Der Vorteil • Reliability – Security Model“ [56] von Security Patterns gegenuber¨ z.B. Design Patterns ” • Sicherheitsmodellierung in UML (UMLsec) [57] (Entwurfsprinzipien) ist, dass sie in mehreren Phasen eines • Aktivitaten-/Fakten-/Zielb¨ aume¨ [58] (z.B. mittels Aus- Security Development Lifecycles und auf verschiedenste wahl geeigneter Angriffsmuster der Common Attack Anforderungstypen (funktionale, nicht–funktionale, Pattern Enumeration and Classification (CAPEC). Dies sicherheitsrelevante nicht–funktionale) angewendet werden CAPEC stellt eine Sammlung und Klassifizierung von konnen.¨ Mit dem Kontext eines Pattern ist die Beschreibung Angriffsmustern zur schnellen Auswahl und Erken- eines spezifischen Angriffsmusters oder von Situationen nung von Bedrohungen in IT–Systemen offentlich¨ zur gemeint, die zu Fehlern (z.B. fehlerhaftes Passwort beim Verfugung.¨ 6 Client–Login) fuhren¨ konnen.¨ Die Anwendungsgebiete von derartigen Patterns sind sehr vielfaltig.¨ Daher sind 6http://capec.mitre.org/

166 • Access Control Matrix oder Take/Grant Modelle [59] verbessert werden kann. Daher ist die Anwendung nach • FME(C)A oder FTA [47] Meinung der Autoren außerst¨ empfehlenswert und sinnvoll. Sowohl Security Patterns als auch Programmier- und C. Programmier- und Designrichtlinien (Beispiel MISRA-C) Designrichtlinien konnen¨ ausschlaggebend die Qualitat¨ — Ein sehr gutes Beispiel stellen die Eigenschaften und vom Design bis hin zum Quellcode — verbessern. Jedoch Bestrebungen der von der MISRA herausgegebenen Richt- muss, im Gegensatz zu Security Patterns, die Benutzung linien dar, welche im Folgenden anhand der Benutzung in der Richtlinien nicht immer den besten Weg darstellen, Verbindung mit der Sprache C eingegangen wird. MISRA– um Software sicherer zu gestalten. Die Vermeidung der in Richtlinien haben das Ziel, die Entwicklung und Reali- den Richtlinien erwahnten¨ Probleme kann nach Meinung sierung von Softwaresystemen in den Bereichen der Au- der Autoren auch durch entsprechendes Know–how der tomobilbranche und daruber¨ hinaus z.B. in der Luftfahrt Entwickler umgesetzt werden. Oftmals besteht die Notwen- sicherheitskritischer Systeme, durch verschiedene Richtlinien digkeit einige Sprachkonstrukte (Bsp.: Pointer–Arithmetik) und Vorgaben zu unterstutzen,¨ zu vereinfachen und zu zu benutzen, was daher weiterhin eine Problemsituation verbessern. Dabei sollen besonders die Fehlerraten, welche darstellen kann, welche nur durch das Expertenwissen und haufig¨ manuell durch den Entwickler erzeugt werden, mini- darauf spezialisiertes Personal verhindert werden kann. miert und somit die Qualitat¨ und Sicherheit eines Systems Die Richtlinien konnen¨ somit als ein gute Hilfestellung optimiert werden.[60] Ein verbreitetes Beispiel stellt die dienen. Die betroffenen Unternehmen und Anwender sollten Anwendung der MISRA–C 2004 Richtlinien dar, welche dabei weiterhin nicht auf gut ausgebildete Mitarbeiter und Regeln zur Verwendung der Programmiersprache C nach dem Schulungs-/ Weiterbildungsmaßnahmen verzichten, um die Standard C99 in sicherheitskritischen Systemen darstellt. Die Korrektheit von Programmen zu gewahrleisten.¨ Zudem sind Sprache C wird in der Praxis im Bereich von eingebetteten die viele Richtlinien (z.B. MISRA) nicht frei zuganglich¨ Echtzeit–Systemen verwendet. Aufgrund der Tatsache, dass und hauptsachlich¨ auf die Verwendung in einem speziellen C sehr viele Codekonstrukte erlaubt wie beispielsweise Marktsegment (z.B. Fahrzeugtechnik) ausgelegt, was einen Pointer–Arithmetik, stellt dies ein Problem von erhohten¨ die Benutzbarkeit einschrankt¨ und einen Nachteil darstellt. Fehlerraten durch den Programmierer dar. [61] Hierbei kann die Benutzung der MISRA–Richtlinien von großer Bedeutung X.SCHLUSSBETRACHTUNG sein, da sie viele auf den Programmierer zuruckzuf¨ uhrende¨ A. Fazit Fehler durch gewisse Vorgaben und Einschrankungen¨ der In dieser Arbeit wurde der Themenkomplex Security– Sprache vermeiden, wie z.B. [61]: Engineering definiert, die Notwendigkeit fur¨ sichere Software • Stilrichtlinien zur Verbesserung von Quellcode- an aktuellen Beispielen illustriert und die gelaufigsten¨ An- verstandnis¨ griffsvektoren vorgestellt. Mit dem Security Development • Vermeidung von Pointer–Arithmetik Lifecycle und dem V–Modell XT wurden zwei Ansatze¨ • Genau Vorschrift fur¨ Verwendung von Typendefinitionen vorgestellt, die in der Softwareindustrie im Fall von SDL ( typedefs“) haufig¨ auf freiwilliger Basis bzw. im Fall des V–Modell XT ” • Verhindern von dynamischer Speicherallokierung nur aufgrund von Vorgaben eingesetzt werden. Der SDL ist aufgrund der einfachen Integration in beste- D. Bewertung hende Entwicklungsprozesse, der einfachen Anpassbarkeit Security Patterns stellen wichtige Paradigmen beim Entwi- an eigene Anforderungen und positiven Ergebnisse aus der ckeln von sicheren IT–Systemen dar. Sie ermoglichen¨ nicht Praxis sowohl fur¨ neue als auch bestehende Projekte geeignet, nur eine Ubersicht¨ uber¨ vorhandene, bekannte Risiken und in denen das Qualitasmerkmal¨ Sicherheit“ gefordert¨ werden ” Angriffsmuster, sondern bieten zusatzlich¨ klar definierte, gut soll. beschriebene Losungsm¨ oglichkeiten¨ fur¨ den Entwickler. So Das V–Modell XT hingegen sollte wirklich nur dann kann eine schnelle Risikominimierung stattfinden, was die zum Einsatz kommen, wenn es durch den Auftaggeber Qualitat¨ der Software erhoht¨ und den Entwicklungsprozess vorgeschrieben wird. Dies lasst¨ mit der Schwerfalligkeit¨ deutlich schneller durchfuhren¨ lasst.¨ Ein Nachteil, welcher des V–Modells begrunden.¨ Vor allem der exorbitante Doku- jedoch nicht verhindert werden kann, stellen die Pravention¨ mentationsaufwand und ausufernde Anzahl der Rollen [38] vor zukunftigen¨ Angriffsmustern dar und die nicht vorhande- schranken¨ eine effektive und wirtschaftliche Vorgehensweise ne Garantie gegenuber¨ eines Schutzes dar. Durch die große signifikant ein. Vielfalt an Patterns wird zudem die Auswahl der fur¨ einen Anwendungszweck bestimmten Pattern erschwert. Zusam- B. Weiterfuhrende¨ Arbeiten menfassend kann durchaus gesagt werden, dass Entwicklern Neben den in dieser Arbeit vorgestellten Modellen konnten¨ mittels der Anwendung von Security Patterns oft Zeit erspart in einer kunftigen¨ Arbeit auch weitere praxisrelevante Metho- wird, welche wiederum fur¨ ausfuhrlichere¨ Tests genutzt den wie etwa CLASP oder Touchpoints [62] auf mogliche¨ werden kann und das Know–how bzgl. Sicherheitsrisiken Verbesserungen untersucht werden.

167 Des Weiteren ware¨ es aufschlussreich, die Rolle von Das-Passwort-Die-einzige-Konstante-im-Leben-1030313. Modellbasiertem Security Engineering [52][51][57] genauer html, 2010, letzter Zugriff am 20. Juni 2010. analysieren. Dabei sollte auch die Evaluation von entspre- [16] M. Howard and S. Lipner, The Security Development Lifecycle - A Process for Developing Demonstrably More Secure Software. chenden Werkzeugen und Applikationen [51] miteinbezogen Redmond: Microsoft Press, 2006. werden. [17] Microsoft Corporation, “SDL Process Guidance Version 5.0,” http://go.microsoft.com/?linkid=9724944, 2010. LITERATUR [18] Microsoft Corporation, “SDL Process Gui- dance Version 4.1,” http://www.microsoft.com/ [1] V. V. der Elektrotechnik Elektronik und Informationstech- downloads/details.aspx?displaylang=en&FamilyID= nik e.V., “Allgemeine Leitsatze¨ fur¨ das sicherheitsgerechte 967389d8-6ed0-4751-a8d2-9c2fad39adce, 2009. Gestalten technischer Erzeugnisse - Begriffe der Sicherheits- [19] Microsoft Corporation, “SDL Process Guidance Version 3.2,” technik Grundbegriffe.” http://www.microsoft.com/downloads/details.aspx?familyid= [2] R. J. Anderson, Security Engineering: A Guide to Building 2412c443-27f6-4aac-9883-f55ba5b01814&displaylang=en, Dependable Distributed Systems. Wiley, 2008. 2008. [3] B. fur¨ Sicherheit in der Informationstechnik, “BSI- [20] Microsoft Corporation, “FAQ - Microsoft Security Develop- Glossar,” https://www.bsi.bund.de/cln 174/sid ment Lifecycle (SDL),” http://www.microsoft.com/security/ E2C2CBB44A88F0D12463B376508CD4EC/ContentBSI/ sdl/resources/faq.aspx, 2010. Themen/Internet Sicherheit/Glossar/glossarbegriffe.html, [21] B. Schneier, Secrets & Lies. Hobokenn In.: Wiley & Sons, 2010, letzter Zugriff am 20. Juni 2010. 2000. [4] W. Stieler, “Im wesentlichen ist das ein mensch- [22] Secure Hash Standard. Washington: National Institute liches Problem,” http://www.heise.de/tr/artikel/ of Standards and Technology, 2002, Federal Information Im-wesentlichen-ist-das-ein-menschliches-Problem-403477. Processing Standard 180-2. [Online]. Available: http: html, 2008, letzter Zugriff am 20. Juni 2010. //csrc.nist.gov/publications/fips/ [5] J. Swedien, “Red Wing woman dies when ambulance oxy- [23] X. Wang, Y. L. Yin, and H. Yu, “Finding Collisions in the gen goes out,” http://www.eotfocus.com/event/account:login/ Full SHA–1,” in CRYPTO, ser. Lecture Notes in Computer desturl/event/article/id/15369/, 2010, letzter Zugriff am 20. Science, V. Shoup, Ed., vol. 3621. Springer, 2005, pp. 17–36. Juni 2010. [24] C. D. Canniere` and C. Rechberger, “Finding SHA–1 Charac- [6] D. H. et. al, “Pacemakers and implantable cardiac defibrillators: teristics: General Results and Applications,” in ASIACRYPT, Software radio attacks and zero-power defenses,” IEEE ser. Lecture Notes in Computer Science, X. Lai and K. Chen, Symposium on Security and Privacy, 2008. Eds., vol. 4284. Springer, 2006, pp. 1–20. [7] Zeitenwende, “Der schwarze Montag am 19. [25] C. S. and R. A. Khan, “Object Oriented Software Security Oktober 1987,” http://zeitenwende.ch/finanzgeschichte/ Estimation Life Cycle,” Journal of Software Engineering, der-schwarze-montag-am-19.-oktober-1987/, 2002, letzter vol. 2, pp. 39–46, 2008. Zugriff am 20. Juni 2010. ¨ [26] J. H. Saltzer and M. D. Schroeder, “The Protection of [8] M. Stoeber, “Liebesbrief¨--Lawine legt das Netz Information in Computer Systems,” in Proceedings of the lahm,” http://www.heise.de/newsticker/meldung/ IEEE, vol. 63, no. 9, 1975, pp. 1278–1308. Liebesbrief-Lawine-legt-das-Netz-lahm-19700.html, 2000, [27] D. Bachfeld, J. Endres, and A. Vahldiek, “3, 2, 1, los! Das letzter Zugriff am 20. Juni 2010. fertige Windows 7 im Test,” c’t Magazin fur¨ Computer und [9] Vierenschutz, “Virus Loveletter wird 5 Technik, vol. 18/2009, pp. 78–83, 2009. Jahre alt,” http://www.virenschutz.info/ [28] T. Ormandy, “[Full-disclosure] Microsoft Windows NT beitrag-Virus-Loveletter-wird-5-Jahre-alt-343.html, 2005, #GP Trap Handler Allows Users to Switch Kernel letzter Zugriff am 20. Juni 2010. Stack,” http://archives.neohapsis.com/archives/fulldisclosure/ [10] PCWelt, “Loveletter: Schuld der Anwender,” 2010-01/0346.html, 2010. http://www.pcwelt.de/start/sicherheit/archiv/15021/loveletter [29] Bundesamt fur¨ Sicherheit in der Informationstechnik, IT– schuld der anwender/, 2000, letzter Zugriff am 20. Juni Grundschutz–Kataloge — 11. Erganzungslieferung¨ . Bonn: 2010. BSI, 2009. [11] Symantex, “W32.Blaster.Worm,” http://www.symantec. [30] G. Schryen and E. Rich, “Increasing Software Security through com/de/de/security response/writeup.jsp?docid= Open Source or Closed Source Development? Empirics 2003-081113-0229-99, 2003, letzter Zugriff am 20. Suggest that We have Asked the Wrong Question,” in System Juni 2010. Sciences (HICSS), 2010 43rd Hawaii International Conference [12] B. Screen, “Google China beendet Weiterleitung on, 5-8 2010, pp. 1 –10. nach Hongkong,” http://www.big-screen.de/deutsch/ [31] J. Jones, “Windows Vista One Year Vulnerability pages/news/allgemeine-news/2010 06 30 4611 Report,” http://blogs.technet.com/cfs-file.ashx/ key/ google-china-beendet-weiterleitung-nach-hongkong.php, CommunityServer-Components-PostAttachments/ 2010, letzter Zugriff am 20. Juni 2010. 00-02-77-29-91/vista 2D00 one 2D00 year 2D00 vuln [13] A. Sawall, “Google nutzt kein Windows mehr,” http://www. 2D00 report.pdf, 2007. golem.de/showhigh2.php?file=/1006/75472.html, 2010, letzter [32] iSEC Partners Inc., “Microsoft SDL: Return–on–Investment,” Zugriff am 20. Juni 2010. https://www.isecpartners.com/files/iSEC%20Partners%20-% [14] J. Schmidt, “Cross site scripting vereint schauble¨ und 20Microsoft%20SDL%20Return-on-Investment.pdf, 2009. die linke,” http://www.heise.de/newsticker/meldung/ [33] S. McConnell, Code Complete, 2nd ed. Redmond: Microsoft Cross-Site-Scripting-vereint-Schaeuble-und-Die-Linke-210413. Press, 2004. html, 2008, letzter Zugriff am 20. Juni 2010. [34] G. Tassey, “The Economic Impacts of Inadequate Infrastructure [15] D. Bachfeld, “Das passwort: Die einzige konstante for Software Testing,” National Institute of Standards and im leben,” http://www.heise.de/newsticker/meldung/

168 Technology, Tech. Rep., 2002. [52] B. Best, J. Jurjens, and B. Nuseibeh, “Model-based security [35] Microsoft Corporation, “Get Started: SDL Pro Network - engineering of distributed information systems using umlsec,” Microsoft Security Development Lifecycle (SDL),” http://www. in ICSE ’07: Proceedings of the 29th international conference microsoft.com/security/sdl/getstarted/pronetwork.aspx, 2010. on Software Engineering. Washington, DC, USA: IEEE [36] Microsoft Corporation, “Get Started: Training - Microsoft Computer Society, 2007, pp. 581–590. Security Development Lifecycle (SDL),” http://www.microsoft. [53] M. Schumacher, E. Fernandez-Buglioni, D. Hybertson, com/security/sdl/getstarted/starterkit.aspx, 2010. F. Buschmann, and P. Sommerlad, Security Patterns: Inte- [37] Microsoft Corporation, “Get Started: Tools - Microsoft Se- grating Security and Systems Engineering (Wiley Series in curity Development Lifecycle (SDL),” http://www.microsoft. Software Design Patterns), 1st ed. John Wiley & Sons, 12 com/security/sdl/getstarted/tools.aspx, 2010. 2005. [38] B. 2004, “V–Modell XT 1.3 Dokumentation,” [54] S. Naik and P. Tripathy, Software Testing and Quality Ass- http://ftp.tu-clausthal.de/pub/institute/informatik/v-modell-xt/ urance: Theory and Practice, 1st ed. John Wiley & Sons, 9 Releases/1.3/V-Modell-XT-Gesamt.pdf, 2009, letzter Zugriff 2008. am 20. Juni 2010. [55] M. B. Swarup and P. S. Ramaiah, “An approach to modeling [39] R. Hohn¨ and S. Hoppner,¨ Das V-Modell XT. Grundlagen, software safety,” in SNPD ’08: Proceedings of the 2008 Methodik und Anwendungen, 1st ed. Springer Verlag, 3 Ninth ACIS International Conference on Software Engineering, 2008. Artificial Intelligence, Networking, and Parallel/Distributed [40] J. Friedrich, U. Hammerschall, M. Kuhrmann, and M. Sihling, Computing. Washington, DC, USA: IEEE Computer Society, Das V-Modell XT: Fur¨ Projektleiter und QS-Verantwortliche. 2008, pp. 800–806. Kompakt und ubersichtlich¨ (Informatik Im Fokus), 2nd ed. [56] N. F. Schneidewind, “Reliability - security model,” Engi- Springer, Berlin, 8 2009. neering of Complex Computer Systems, IEEE International [41] B. 2004, “V–Modell XT 1.3 Installer,” http: Conference on, vol. 0, pp. 279–288, 2006. //ftp.tu-clausthal.de/pub/institute/informatik/v-modell-xt/ [57] J. Jurjens,¨ Secure Systems Development with UML, 05001st ed. Releases/1.3/V-Modell-XT-1.3-online-installer.jar, 2009, Springer, Berlin, 12 2004. letzter Zugriff am 20. Juni 2010. [58] S. Wagner and S. Islam, “Modellierung von software-security [42] microTOOL GmbH, “in–Step V–Modell XT Edition,” http: mit aktivitatenbasierten¨ qualitatsmodellen,”¨ in Tagungsband 2. //www.microtool.de/instep/de/prod vxt edition.asp, 2010, letz- Workshop zur Softwarequalitatsmodellierung¨ und -bewertung ter Zugriff am 20. Juni 2010. (SQMB ’09), Technical Report TUM-I0917, Technische Uni- [43] CodePlex Open Source Community, “Process Enactment Tool versitat¨ Munchen¨ , 2009. Framework,” http://pet.codeplex.com/, 2010, letzter Zugriff [59] W. Kriha and R. Schmitz, Sichere Systeme. Konzepte, Ar- am 20. Juni 2010. chitekturen und Frameworks, 1st ed. Springer, Berlin, 3 [44] International Electrotechnical Commission, “Functional safety 2009. and iec 61508,” http://www.iec.ch/functionalsafety/, 2010. [60] Motor Industry Software Reliability Association, “Website des [45] C. Fabbricatore, “Evaluation einer Testverwaltungslosung,¨ Herstellers,” http://www.misra.org.uk/, 2010, letzter Zugriff Konzeption und Implementierung eines Eclipse Plug-ins zur am 11. Juni 2010. Generierung, Verwaltung und Ausfuhrung¨ von Modultests [61] MISRA–C: 2004 — Guidelines for the use of the C language in C,” Bachelor Thesis, Furtwangen University of Applied in critical systems. Motor Industry Software Reliability Sciences, in cooperation with Curtiss–Wright Antriebstechnik Association, 10 2004. GmbH, 2009. [62] B. D. Win, R. Scandariato, K. Buyens, J. Gregoire,´ [46] Curtiss–Wright Antriebstechnik GmbH, “Internals,” 2010. and W. Joosen, “On the secure software development [47] A. Held, “Sicherheit und zuverlassigkeit:¨ Fmea und fta,” in process: Clasp, sdl and touchpoints compared,” InformatikJournal 2009, published by the Department of Information and Software Technology, vol. 51, no. 7, Computer Science, Furtwangen University of Applied Sciences, pp. 1152 – 1171, 2009, special Section: Software 2009, pp. 43–48. Engineering for Secure Systems - Software Engineering [48] D. Mellado, E. Fernandez-Medina, and M. Piattini, “A Com- for Secure Systems. [Online]. Available: http://www. parison of the Common Criteria with Proposals of Information sciencedirect.com/science/article/B6V0B-4RV7YBC-1/2/ Systems Security Requirements,” in ARES ’06 Proceedings of 474be6d744a35c02480a367299cf306f the First International Conference on Availability, Reliability and Security. Washington, DC, USA: IEEE Computer Society, 2006, pp. 654–661. [49] G. Bostrom,¨ J. Wayrynen,¨ M. Boden,´ K. Beznosov, and P. Kruchten, “Extending xp practices to support security requirements engineering,” in SESS ’06: Proceedings of the 2006 international workshop on Software engineering for secure systems. New York, NY, USA: ACM, 2006, pp. 11– 18. [50] K. Beznosov, “Extreme security engineering: On employing xp practices to achieve ”good enough security”without defining it,” in First ACM Workshop on Business Driven Security Engineering (BizSec, 2003. [51] J. Jurjens¨ and J. Fox, “Tools for model-based security engi- neering,” in ICSE ’06: Proceedings of the 28th international conference on Software engineering. New York, NY, USA: ACM, 2006, pp. 819–822.

169

HS-FURTWANGEN – SOFTWARETECHNIK: „CODECITY: ANALYSE UND BEWERTUNG VON SOURCECODE VISUALISIERUNG“, JULI 2010 1 CodeCity: Analyse und Bewertung von Sourcecode Visualisierung

Sebastian Schauer B.Sc., Jan Krause B.Sc.

Zusammenfassung—Das vorliegende Dokument behandelt die Visualisierung von Software und deren mögliche Einsatzgebiete, verstärkt im Fokus dabei: die Evolution von Softwaresystemen. Hierzu dient die Analyse mehrerer Werkzeuge, die im dem Bereich der Software Visualisierung zum Einsatz kommen, als Grundlage. Die Analyse betrachtet dabei mehere Aspekte der Tools und vergleicht und bewertet diese untereinander mit dem Ergebnis einer Werkzeugempfehlung.

Index Terms—CodeCity, Softwareevolution, CodeCity, Sv3D, Vizz3D, Software Visualisierung !

1 EINLEITUNG 1.3 Ziele 1.1 Motivation Das Ziel dieser Arbeit ist es eine Analyse von vorhande- nen Softwarevisualisierungswerkzeugen vorzunehmen. NNERHALB des Lebenszyklus eines Softwareproduk- I tes müssen wichtige Komponenten des Systems einem Dies hat den Zweck aufzuzeigen welche Werkzeuge ständigen qualitätssichernden Prozess unterzogen wer- bisher verfügbar sind und inwieweit diese sich in einen den, damit das System benutzbar bleibt. Dabei spielt die bestehenden Ablauf integrieren lassen. Des Weiteren soll Wartung eine sehr wichtige Rolle. Die meisten Kosten geklärt werden ob diese Werkzeuge überhaupt sinnvoll entstehen bei der Softwarewartung, nämlich ca. 90% eingesetzt werden können. nach L. Erlikh[6] der gesamten Kosten. Innerhalb dieser Wartungsphase werden neue Funktionen in die Software 2 GRUNDLAGEN integriert oder fehlerhafte Funktionen korrigiert. In diesem Kapitel werden die Grundlagen erläu- Mit der Zeit kann es passieren dass die Dokumentati- tert, die notwendig sind um ein besseres Verständ- on der Software verloren geht oder nicht mehr auf dem nis des Visualisierungswerkzeuges CodeCity, den aus- aktuellsten Stand ist. Aus diesem oder anderen Grün- gewählten zu vergleichenden Werkzeugen und des den kann es wünschenswert sein eine abstraktere Sicht Softwareengineering-Prozesses Softwareevolution zu er- auf das gesamte System zu erhalten. Hierbei kann die reichen. Softwarevisualisierung helfen, die Thema dieser Arbeit In großen Softwaresystemen ist es oft erforderlich, ist. den Sourcecode besser verstehen zu können, z.B. wenn die Dokumentation verloren gegangen oder veraltet ist. 1.2 Problemabgrenzung Hierzu lassen sich Visualisierungswerkzeuge einsetzen, die dem Benutzer die Möglichkeit bieten einzelne Aspek- Um CodeCity[23] im Hinblick auf Softwarevisualisie- te des Softwaresystems besser zu verstehen. rung bewerten zu können, braucht es Vergleichspunkte d.h. andere Tools aus diesem Umfeld. Somit lässt sich das in dieser Arbeit bearbeitete Pro- 2.1 Softwarevisualisierung blem auf zwei Punkte eingrenzen: Softwarevisualisierung beschäftigt sich mit der 2D oder • Werkzeuge: Ermittlung welche Werkzeuge in die- 3D Darstellung von Informationen über Softwaresys- sem Bereich bisher vorhanden sind und Eingren- teme. Die Darstellung in 2D oder 3D wurde bereits zung der zu betrachtenden Werkzeuge für diese ausgiebig erforscht[1], [4], [5], [10], [7], [25], [24]. Die In- Arbeit. formationen können folgende Eigenschaften des Systems • Bewertung der Werkzeuge: Die ausgewählten Tools beschreiben: werden genauer analysiert und schließlich anhand 1) Struktur: Wie ist das Softwaresystem aufgebaut? von Bewertungskriterien miteinander verglichen. Welche Klassen, Pakete usw. gibt es und in welcher Beziehung stehen diese zueinander? • Sebastian Schauer, Fakultät für Informatik, Hochschule Furtwangen, 2) Größe: Wie groß (z.B. Lines of Code, Number of 78120 Furtwangen. E-mail: [email protected] Methods, Number of Attributes) sind einzelne Teile • Jan Krause, Fakultät für Informatik, Hochschule Furtwangen, 78120 wie z.B. Klassen, Pakete usw. des Softwaresystems? Furtwangen. 3) historischer Verlauf: Wie hat sich das Softwaresys- E-mail: [email protected] tem im Laufe der Zeit verändert? Welche Teile sind 171 2 HS-FURTWANGEN – SOFTWARETECHNIK: „CODECITY: ANALYSE UND BEWERTUNG VON SOURCECODE VISUALISIERUNG“, JULI 2010

neu, welche sind entfernt worden? (Softwareevolu- So ist es möglich die verschiedenen Evolutionsstufen tion) einer Software sichtbar zu machen. Um evolutionäre 4) dynamisches Verhalten: Wie sehen z.B. die Aufru- Prozesse innerhalb einer Klasse zu visualisieren, werden fe zwischen den Klassen aus? Welche Algorithmen bei CodeCity zusätzlich zu unterschiedlichen Farben kommen zum Einsatz? Klassen in kleinere Würfel aufgeteilt visualisiert (siehe Typischerweise werden dabei Informationen mittels Abbildung 2). Softwaremetriken[8] zur Visualisierung verwendet.

2.1.1 Nutzen der Software Visualisierung Software-Wartung beansprucht bis zu 90 % der Ge- samtkosten eines Systems[6]. Die Hälfte der Zeit, die für Wartung eingesetzt wird, benötigt dabei das Ver- stehen des Systems. Für diesen Zweck kann Software- Visualisierung eingesetzt werden. Die Ziele der Softwa- revisualisierung beinhalten das Verstehen von Software- systemen (z.B. Aufbau und Morphologie) und Algorith- men (z.B. die Animation von Suchalgorithmen) sowie der Analyse von Softwaresystemen zur Entdeckung von Anomalien (z.B. durch Darstellung von Klassen mit (zu) hoher Kopplung). (a) Darstellung einer feingranularen Age-Map in CodeCity.

(b) Darstellung einer Feingranularen Darstellung von Softwareevolution mit Vizz3D. Abbildung 2: Darstellung einer Softwareevolution als Age-Map. Abbildung 1: Reengineeringprozess und einordnung von Quelle: Richard Wettel and Michele Lanza. Code City Vortrag, August Softwarevisualisierung. 25-29, 2008[26],Thomas Panas, Rüdiger Lincke, and Welf Löwe. THE Quelle: vgl. Jochen Ludewig, Horst Lichter: Software Engineering – VIZZANALYZER HANDBOOK, 2005.[17] Grundlagen, Menschen, Prozesse, Techniken, dpunkt.verlag, Heidel- berg, 2007[9]. 2.2.2 Timetravel Bei der Timetravel Visualisierung werden die einzelnen 2.2 Softwareevolution Versionen der Software unabhängig von einander dar- Softwareevolution beschreibt den Prozess der stetigen gestellt. Somit ist nur die aktuell selektierte Version der Fortentwicklung eines Softwaresystems. Software sichtbar. Bei Timetravel kann man wie bei einer Softwaresysteme altern mit der Zeit und verändern Reise durch die Zeit die verschiedenen Versionen nach sich. Subsysteme verändern sich, werden entfernt oder einander besuchen (siehe Abbildung 3 auf der nächsten kommen neu hinzu. All diese Veränderungen im Lau- Seite A und B) und somit die Evolution der Software in fe der Zeit bezeichnet man als Softwareevolution. Um Schritten mit Bezug zu einer Release Version betrachten. Softwareevolution sichtbar zu machen gibt es in der Softwarevisualisierung verschiedene Methoden. Einige 2.2.3 Timeline dieser Methoden werden im Folgenden näher erläutert. Die Timeline Visualisierung ist von den zuvor erwähnten Visualisierungen zu unterscheiden. Sie stellt die evo- 2.2.1 Age-Map lutionären Unterschiede innerhalb einer Klasse anhand Mit der Age-Map, wie sie z.B. in CodeCity eingesetzt einer Zeitlinie (Timeline) dar (siehe Abbildung 4). Es wird, werden die verschiedenen Altersstufen eines Soft- ist die detaillierteste Form der Darstellung der Evolu- wareproduktes mit unterschiedlichen Farben dargestellt. tionsstufen einer Klasse. Hierdurch ist es möglich auch 172 HS-FURTWANGEN – SOFTWARETECHNIK: „CODECITY: ANALYSE UND BEWERTUNG VON SOURCECODE VISUALISIERUNG“, JULI 2010 3

codes auf Metriken zurückgegriffen werden. Grund- sätzlich lässt sich zwischen subjektiven und objektiven Softwaremetriken[8] unterscheiden. Subjekte Software- metriken finden allerdings nur bei Aspekten Verwen- dung, bei denen nicht auf objektive und damit einfach messbare Metriken zurückgegriffen werden kann, wie z.B. bei der Usability eines Softwaresystens. Die Visuali- sierung von Sourcecode basiert auf objektiven und damit messbaren Metriken. In Visualizing Software Systems as Cities[22] werden einige einfache Metriken verwendet um den Sourcecode mit CodeCity bewerten zu können. (a) Timetravel Version A. Diese Auflistung ist allerdings nicht abschließend. Number of Attributes(NOA): Beschreibt die Anzahl der Attribute, die eine Klasse besitzt. Number of Methods(NOM): Beschreibt die Anzahl der Methoden, die eine Klasse besitzt. Lack of Documentation: Das Verhältnis der Menge an Dokumentation zur Menge an Code Beim Verwenden von Softwaremetriken zur Visuali- serung von Software müssen dabei Fragen betrachtet werden wie: • Welche Softwaremetrik soll wie gemappt werden? • Welche visuelle Eigenschaft ist für eine bestimmte Metrik geeignet? (b) Timetravel Version B. • Wie kann ein metrischer Wert auf eine visuelle Abbildung 3: Timetravel Darstellung mit Hilfe einer Eigenschaft gemappt werden? Stadt aus CodeCity. Quelle: Richard Wettel and Michele Lanza. Code City Vortrag, August 2.4 Mapping 25-29, 2008[26]. Um eine Visualisierung von Software überhaupt errei- chen zu können, ist es notwendig, dass die gewonnenen Daten aus dem Sourcecode auf die Metapher abgebildet werden. Hierbei lassen sich unterschiedliche Verfahren verwenden, die eine entscheidende Rolle bei der Visua- lisierung spielen. Das Mapping kann dabei auf folgende Weise in zwei Bereiche unterteilt werden werden. Direktes Mapping Das direkte Mapping bildet die gewonnenen Informa- tionen aus einer Sourcedatei auf direkte Weise auf die Objekte der visualisierten Metapher ab. So werden bei der von CodeCity verwendeten CityMetapher der NOM- Wert direkt auf die Gebäudehöhe abgebildet und der NOA-Wert auf die Grundbreite des Gebäudes. Dabei wird keinerlei Veränderung der Werte vorgenommen. Manipulatives Mapping Abbildung 4: Darstellung einer Timeline in CodeCity. Um z.B. eine realistischere CodeCity Stadt darzustellen, Quelle: Richard Wettel and Michele Lanza. Code City Vortrag, August werden die gewonnenen Informationen aus den Sour- 25-29, 2008[26]. cedateien verändert. Hierzu werden z.B. beim Thres- hold Mapping die Daten mittels verschiedener Klassen Rückentwicklungen und die Weiterverwendung von al- eingeteilt, geclustert und in Gruppen verteilt, was in tem Sourcecode zu betrachten. manchen Fällen optisch ansprechendere Darstellungen erzeugt. Dies hat allerdings Nachteile: So ist es kaum möglich alle Probleme, die in einem direkten Mapping- 2.3 Softwaremetriken verfahren sichtbar wären zu erkennen. Manipulatives Damit Visualisierungswerkzeuge beispielsweise eine Mapping kann also unter ungünstigen Umständen zu Stadt mittels des Sourcecodes eines Programmes er- einem Übersehen von Designschwächen im Sourcecode zeugen können, muss für die Bewertung des Source- führen. 173 4 HS-FURTWANGEN – SOFTWARETECHNIK: „CODECITY: ANALYSE UND BEWERTUNG VON SOURCECODE VISUALISIERUNG“, JULI 2010

3 WERKZEUGE &ANALYSE 3.2.1 Bewertungsmatrix 3.1 Auswahlkriterien für Werkzeuge Die Kriterien lassen sich in Form einer Matrix dar- stellen. Um den unterschiedlichen Kriterien und ihrer Um eine nachvollziehbare Auswahl der Werkzeuge Bedeutung Rechnung zu tragen ist eine Gewichtung der vornehmen zu können müssen einige Auswahlkriteri- Kriterien notwendig wie in Tabelle 1 zu sehen ist. en definiert werden. Anhand dieser Kriterien können dann entsprechende Softwarevisualisierungs-Werkzeuge Tabelle 1: Kriterien Gewichtung für die Bewertung untereinander ausgewählt werden. Kriterium Gewichtung Die Kriterien orientieren sich hauptsächlich an dem Vollständigkeit der Visualisierung 25% Hauptanwendungszweck von CodeCity: der Visualisie- - Darstellung der Komplexität 13% rung von Software und der Visualisierung des Softwa- - Darstellung von Softwareevolution 12% Vielfalt der Visualisierungsmöglichkeiten 25% reevolutionsprozesses. Im Bezug zu diesem Hintergrund - Metaphern 10% lassen sich auch die weiteren Kriterien für die Auswahl - Abbildungsfunktion 10% ableiten, die die Werkzeuge erfüllen sollen: - Abbildungsparameter 5% Integrationsmöglichkeiten 25% • Visualisierung des Softwareevolutionsprozesses um - Eingabe als Source/Bytecode 10% Stabilität der Software über einen längeren Zeitraum - automatische Analyse und Ausführung 5% - Unterstützung mehrerer Programmiersprachen 10% betrachten zu können Modifizierungsmöglichkeiten 15% • Verwendung von Metaphern zur Darstellung von - Integration von weiteren Darstellungsfunktionen 5% Sourcecode in einer visuellen 3D Form wie z.B. die - Erweiterung um weitere Programmiersprachen 5% - Sourcen verfügbar und in gängiger Sprache 5% Darstellung in Form einer Stadt Aktive Weiterentwicklung 10% • Praktischer Bezug der Anwendung, potenzielle Ver- - letztes Update max. 1 Jahr her 10% wendung im Softwareentwicklungsprozess. Ist das Gesamt 100% Softwarevisualisierungs-Werkzeug als konkrete Im- plementierung verfügbar und nicht nur ein theore- 3.2.2 Vollständigkeit der Visualisierung tisches Konzept? Um Software effektiv zu visualisieren, ist es notwendig, • Dokumentation des Werkzeuges. Für eine Bewer- dass bei der Visualisierung unterschiedliche Eigenschaf- tung müssen Informationen vorliegen, die einen ten des Sourcecodes dargestellt werden. Einblick in die Funktionsweise des Werkzeugs ge- • Darstellung der Komplexität der Software: Kom- währen plexität von Software wird mit unterschiedlichen • Visualisierungsfunktion unabhängig von der einge- Methoden dargestellt, so sind die wichtigsten Ei- setzten Programmiersprache. Um das Werkzeug mit genschaften von Komplexität die statischen Infor- beliebigen Softwareprojekten testen zu können muss mationen, welche sich aus dem Sourcecode ablei- die Eingabe des Programms unabhängig von der ten lassen und die Beziehungen und dynamischen verwendeten Programmiersprache sein. Komplexitätseigenschaften der Software. Zu diesen • Aktive Weiterentwicklung oder das Potenzial das gehören unter anderen die Beziehungen zwischen Projekt zu übernehmen den Klassen und die Darstellung von Kopplungsbe- Anhand dieser Kriterien wurden zusätzlich zu ziehungen. Für die umfassende Visualisierung von CodeCity[21] die Softwarevisualisierungswerkzeuge Software ist es notwendig, dass Probleme in der Vizz3D[19] und Sv3D[14] ausgewählt. Software dargestellt werden und sich z.B. markieren lassen, um sie deutlicher sichtbar zu machen, wie z.B. Disharmonien im Sourcecode[8]. 3.2 Bewertungskriterien für Analyse – Statische Daten: Beinhalten Software- Für die Bewertung der unterschiedlichen Werkzeuge metriken wie NOA, NOM und weitere für die Sourcecodevisualisierung werden die folgenden Softwaremetriken[8]. Kriteren verwendet. Diese lassen sich ableiten aus der – Beziehungen: Stellen alle Interaktionsbeziehun- Notwendigkeit flexibel die Visualisierungsformen des gen zwischen den Klassen und Komponen- Sourcecodes anpassen zu können oder die Form der end- ten dar. Es werden hierunter des Weiteren die gültigen Darstellung schnell und einfach zu beeinflussen Ableitungsbäume und Abhängigkeiten zusam- um eine Aussage über die Komplexität oder ähnliche mengefasst sowie die Darstellung von nicht er- Eigenschaften des Sourcecodes treffen zu können. Die reichten Codeabschnitten (Deadcode). Kriterien lehnen sich an die von Stasko 1998 in seinem • Darstellung von Softwareevolution: Um Sour- Buch Software Visualization[18] definierten Bewertungs- cecode in seiner Evolution betrachten zu kön- aspekte an. nen, ist diese Form der Visualisierung notwen- Die Bewertungskriterien lassen sich des Weiteren un- dig. Softwareevolution[3] ist im Softwarelebenzy- terschiedlich gewichten. In der hier vorliegenden Analy- klus ein nicht zu unterschätzender Aspekt, da Soft- se wird die Vollständigkeit der Visualisierung als wich- ware unter Umständen länger verwendet wird wie tigstes Kriterium verwendet. ursprünglich geplant war. 174 HS-FURTWANGEN – SOFTWARETECHNIK: „CODECITY: ANALYSE UND BEWERTUNG VON SOURCECODE VISUALISIERUNG“, JULI 2010 5

3.2.3 Vielfalt der Visualisierungsmöglichkeiten 3.2.6 Aktive Weiterentwicklung Eine Frage, die beantwortet werden muss, wenn Souce- Um für den Einsatz im Entwicklungsprozess überhaupt codevisualisierung eingesetzt werden soll, ist: Kann die interessant zu sein, ist es notwendig, dass das Werkzeug Darstellungsform der einzelnen Werkzeuge angepasst weiter entwickelt wird. werden? Wichtig ist in diesen Zusammenhang die Aus- Hier stellt sich die Frage wie lange das letzte Update tauschbarkeit bzw. Modifzierbarkeit der verwendeten des Werkzeugs zurück liegt. Metaphern. • Metaphern: Gibt es bereits mehrere Metaphern von 3.3 CodeCity Haus aus? CodeCity wurde von Richard Wettel im Rahmen sei- • Abbildungsfunktionen: Die Mappingfunktionen nes Doktorstudiums an der Universität von Luga- müssen anpassbar oder austauschbar sein. no/Schweiz entwickelt. CodeCity wurde zum ersten Mal • Abbildungsparameter: Die Parameter der Map- im März 2008 released und wurde seitdem über 2000- pingfunktionen müssen veränderbar sein. mal heruntergeladen. CodeCity setzt auf bereits vorhan- 3.2.4 Integrationsmöglichkeiten denen Tools auf um Visualisierungen zu erstellen, das Wichtig für eine erfolgreiche Integration eines eigentliche Tool wurde in Smalltalk entwickelt. Dank Sourcecodevisualisierungs-Werkzeug in den der Verwendung des Moose-Frameworks und somit des Entwicklungsprozess oder den Reengeneering Prozess, FAMIX-Metamodells[2] ist CodeCity sprachenunabhän- ist die Möglichkeit der automatischen Ausführung um gig. Es lässt sich mit Skripten erweitern um Funktionen die Datenauswertung automatisch ablaufen lassen zu vorläufig testen zu können[20]. können, dies ist aber nicht mit der Auswertbarkeit der 3.3.1 CodeCity Metapher visualisierten Daten zu verwechseln. Ein Werkzeug sollte in zwei Formen vorliegen, als Standalone, das CodeCity verwendet von Haus aus nur die City alle Funktionen mit bringt (Analyse, Darstellung etc.) Metapher[22], [25] zur Visualisierung von Software. Al- und als Framework, das die einfache Integration in lerdings lässt sich diese mit Hilfe von Skripten beein- vorhandene Qualitätssicherungswerkzeuge erlaubt. flussen oder mittels Plugins gegen eine andere Metapher Ein weiterer wichtiger Punkt hierbei ist, dass das austauschen. Werkzeug in einer geeigneten Form vorliegt. Es sollte nach Möglichkeit als Sourceversion vorliegen und in einer Programmiersprache erstellt worden sein, die von einem Softwareentwickler ohne großen Einarbeitungsaufwand verwendet werden kann. Hierunter lassen sich Programmiersprachen wie Java, C# oder C++ einordnen. Weiterhin bewertet wird ob das Werkzeug von Haus aus mehrere Programmiersprachen unterstützt. Zudem sollte das Werkzeug in der Lage sein, relevan- Abbildung 5: CodeCity City Metapher mit Topolo- te Daten automatisch aus einer Sourcedatei oder dem giedarstellung von Azureus. gesamten System ermitteln zu können. Quelle:Richard Wettel and Michele . Visualizing Software Systems as • Integration von automatischen Analysefunktionen: Cities. In In Proceedings of VISSOFT 2007 (4th IEEE International Eingabe Sourcecode oder Bytecode des Programms. Workshop on Visualizing Software For Understanding and Analysis), • Framework: Liegt das Werkzeug auch als Frame- pages 92–99, 2007.[22] work vor und kann so einfach in andere Programme integriert werden? Bei der von CodeCity benutzten City Metapher wer- den Klassen als Gebäude und Pakete als Bezirke der 3.2.5 Modifizierungsmöglichkeiten Stadt visualisiert. Das komplette Softwaresystem ent- Das Werkzeug sollte weitreichende Funktionen anbieten spricht der komplett visualisierten Stadt wie in Abbil- um das Werkzeug an die eigenen Bedürfnisse anpassen dung 5. zu können. Es schließt des Weiteren die Modifizier- Die City Metapher eignet sich gut zum Visualisieren barkeit des Werkzeuges ein, z.B. um es mit weiteren von Softwaresystem, da es ein bekanntes Konzept aus Modulen auszurüsten für weitere Programmiersprachen der Realität mit einem klaren Konzept der Orientierung oder andere Metaphersysteme. darstellt. • Integration von weiteren Funktionen für die Dar- Eine (große) Stadt ist ein komplexes Konstrukt, das stellung nur stufenweise erfasst werden kann, genau wie ein • Erweiterbarkeit um weitere Programmiersprachen komplexes Softwaresystem. Eine zu einfache Metapher • Ist das Werkzeug Opensource oder sind die Sour- (z.B. ein großer Würfel für das ganze System oder jedes cen für Erweiterungen verfügbar? Wenn ja in einer Paket) wird der Komplexität eines Softwaresystems nicht gängigen Programmiersprache wie z.B. Java? gerecht und führt zu falschen Vereinfachungen. 175 6 HS-FURTWANGEN – SOFTWARETECHNIK: „CODECITY: ANALYSE UND BEWERTUNG VON SOURCECODE VISUALISIERUNG“, JULI 2010

Klassen und Pakete sind Schlüsselelemente des objek- torientierten Paradigmas und deshalb primärer Orientie- rungspunkt für Entwickler. Aktuell visualisiert CodeCity keine Methoden und Attribute von Klassen, da sie laut Entwickler für das Gesamtverständnis unerheblich seien. Dies sei aber Gegenstand zukünftiger Forschung.

3.3.2 Architektur Die Architektur von CodeCity setzt sich grundlegend aus vier Modulen zusammen. Diese Module sind Model, Core, View Management und das Rendering Modul und stehen in Beziehung zueinander, wie in Abbildung 6 zu Abbildung 7: Tool Chain von CodeCity. sehen. Quelle:Richard Wettel and Michele . Visualizing Software Systems as Cities. In In Proceedings of VISSOFT 2007 (4th IEEE International Workshop on Visualizing Software For Understanding and Analysis), pages 92–99, 2007.[22]

CodeCity benutzt das Moose-Framework, das ei- ne Implementation des sprachunabhängigen FAMIX- Metamodells zur Verfügung stellt. Für Smalltalk Code wird die Funktionalität von Moose genutzt um direkt in CodeCity ein FAMIX-Modell des Softwaresystems zu erstellen. Für Java und C++ Code benutzt CodeCity inFusion, Abbildung 6: CodeCity Architektur ein Tool, das den Code parst, Metriken berechnet, ein Quelle:Richard Wettel and Michele . Visualizing Software Systems as eigenes Modell erstellt und dieses Modell nach Moose Cities. In In Proceedings of VISSOFT 2007 (4th IEEE International exportiert. Workshop on Visualizing Software For Understanding and Analysis), Aus dem FAMIX-Modell erstellt CodeCity nun ein pages 92–99, 2007.[22] visuelles Modell, das schließlich durch die OpenGL Im- plementation von Jun gerendert wird.

• Das Model Modul beschäftigt sich mit der Mo- dellierung des Softwaresystems, das mit CodeCity 3.3.4 Analyse visualisiert werden soll. CodeCity baut auf dem Vollständigkeit der Visualisierung: CodeCity visua- Moose-Framework auf und erweitert das FAMIX- lisiert Komplexität von Softwaresystemen, sowohl die Metamodell (im Paket ModelExtensions) durch die statischen Aspekte wie NOM, NOA etc. als auch die Verwendung des Smalltalk Klassenerweiterungsme- Beziehungen zwischen den Klassen. Auch die Software- chanismus. Evolution lässt sich mit CodeCity anschaulich visualisie- • Das Core Module beschäftigt sich mit dem visuellen ren. Modell, dessen Hauptkomponenten Glyphen, Lay- Vielfalt der Visualisierungsmöglichkeiten: CodeCity outs und der Mapping-Mechanismus ist. bietet von Haus aus nur die CityMetapher. Zusätzliche • Das View Management Modul ist zuständig für die Metaphern können jedoch erstellt werden. Konfiguration (ViewConfigurations) und der Erstel- Integrationsmöglichkeiten : CodeCity ist nur als lung der Visualisierungen (ViewBuilders). Basierend Stand-Alone verfügbar und lässt sich somit nicht in auf der aktuellen View Konfiguration, wird aus dem einen automatischen Workflow integrieren. Durch in- Softwaremodell ein visuelles Modell des Systems Fusion ist CodeCity sprachenunabhängig. bietet somit erstellt und an die Renderingengine weitergereicht. eine gute Integrationsmöglichkeit. Vizz3D ist zwar spra- • Das Rendering Modul rendert schließlich das visuel- chenunabhängig, aktuell ist jedoch nur die Unterstüzung le Modell des Systems auf dem Bildschirm. Aktuell von Java implementiert, die Unterstützung für zusätz- wird das Jun Framework als OpenGL Implementati- liche Sprachen müssen selbst implementiert werden. on benutzt. Das Display-Paket dient als Schnittstelle Für die Analyse von Software muss auf VizzAnalyzer zwischen Jun und CodeCity und ist zuständig für zurückgegriffen werden. Navigation und Interaktion. Modifizierungsmöglichkeiten: CodeCity ist gut mo- difizierbar. Es bietet die Möglichkeit Metaphern, Analy- 3.3.3 Funktionsweise sen etc. auszutauschen und zu modifizieren. Der Source von CodeCity ist frei verfügbar, jedoch nur in Smalltalk. 176 HS-FURTWANGEN – SOFTWARETECHNIK: „CODECITY: ANALYSE UND BEWERTUNG VON SOURCECODE VISUALISIERUNG“, JULI 2010 7

Aktive Weiterentwicklung: Die aktive Weiterent- wicklung ist gegeben, zumindest gab es ein Software- Update im November 2009. Ergebnis: Insgesamt lässt sich aus der Bewertungs- matrix in Tabelle 2 das Ergebnis von 75% ersehen.

3.4 Vizz3D Vizz3D wurde ursprünglich von Thomas Panas als Visualisierungs-Engine für VizzAnalyzer an der Vaxjo University/Schweden zwischen 2003-2005 entwickelt. Vizz3D ist ein System zur Visualisierung von Softwa- (a) Vizz3D Darstellung von Paktebeziehungen als Sphären resystemen in 3D und wurde in der Programmiersprache Java entwickelt. Es ist sowohl als Stand-Alone Tool als auch als Framework einsetzbar. Wird Vizz3D als Frame- work eingesetzt können zusätzlich eigene Layouts und Metaphern über XML-Dateien erstellt werden.

3.4.1 Vizz3D Metapher Vizz3D verwendet nicht nur eine einzelne Metapher zur Visualisierung von Sourcecode. Von Haus aus stehen mehrere Metaphern zur Verfügung, die verschiedene Problemstellungen adressieren wie Softwareevolution, Lack of Documentation, Beziehungen von Klassen un- tereinander usw.. (b) Vizz3D Darstellung von Aufrufbeziehungen. Abbildung 9: Vizz3D Darstellung von Beziehungen.. Quelle: Thomas Panas, Rüdiger Lincke, and Welf Löwe. THE VIZ- ZANALYZER HANDBOOK, 2005.[17]

Visualisierung von Beziehungen: Die erste Abbil- dung 9a stellt die Beziehungen zwischen den Klassen (feste Sphären) und den Paketen, die die Klassen enthal- ten (transparente Sphären)[17], dar. In der zweiten Abbildung werden die Beziehungen zwischen den Klassen und deren Hierarchien unterein- Abbildung 8: Vizz3D Darstellung von fehlender Doku- der dargestellt[17]. Zudem wird die Verwendung der mentataion un Relation von NOA und NOM Metriken. Klassen und die Aufrufe untereinder dargestellt. Inter- Quelle: Thomas Panas, Rüdiger Lincke, and Welf Löwe. THE VIZ- faces werden als Sphären, Klassen als Boxen visualisiert. ZANALYZER HANDBOOK, 2005.[17] Rote Knoten sind tote Knoten, die nicht mehr verwendet werden. Vizz3D Lack of Documentation und Klassen Dimen- sionen LOC: In Abbildung 8 ist zu sehen welche Klasse oder welches Interface nicht ausreichend dokumentiert wurde (symbolisiert durch Flammen am Gebäude). Die Beziehungen zwischen den Klassen und Interfaces sind hier unwichtig und werden nicht dargestellt[17]. Die verschiedenen Teile des Softwaresystems werden dabei auf folgende Weise visualisiert: • Klassen: werden als quadratische Gebäude visuali- siert • Interfaces: werden als runde Gebäude visualisiert • Höhe des Hauses: basiert auf der Menge an Codes (in LOC) Abbildung 10: Vizz3D Darstellungsmöglichkeit von Soft- • Lack of Documentation: wird durch Flammen an wareevolution. den Gebäuden visualisiert (je höher die Flamen Quelle: Thomas Panas, Rüdiger Lincke, and Welf Löwe. THE VIZ- desto weniger wurde dokumentiert) ZANALYZER HANDBOOK, 2005.[17] 177 8 HS-FURTWANGEN – SOFTWARETECHNIK: „CODECITY: ANALYSE UND BEWERTUNG VON SOURCECODE VISUALISIERUNG“, JULI 2010

Tabelle 2: CodeCity Analyse Kriterium Gewichtung Erfüllt Vollständigkeit der Visualisierung 25% 25% - Darstellung der Komplexität 13% ja - Darstellung von Softwareevolution 12% ja Vielfalt der Visualisierungsmöglichkeiten 25% 15% - Metaphern 10% nein - Abbildungsfunktion 10% ja - Abbildungsparameter 5% ja Integrationsmöglichkeiten 25% 15% - Eingabe als Source/Bytecode 5% ja - Framework 10% nein - Unterstützung mehrerer Programmiersprachen 10% ja Modifizierungsmöglichkeiten 15% 10% - Integration von weiteren Darstellungsfunktionen 5% ja - Erweiterung um weitere Programmiersprachen 5% ja - Sourcen verfügbar und in gängiger Sprache 5% nein Aktive Weiterentwicklung 10% 10% - letztes Update max. 1 Jahr her 10% ja Gesamt 100% 75%

Softwareevolution: In der Abbildung 8ist die Sys- • Binding: Bindet die ermittelten XML Daten auf die temevolution eines von Vizz3D visualisierten Systems Daten der 3D Darstellung. über 7 Versionen zu sehen. Die Klassen werden als • Layout: Das Layout beschreibt die Positions- und Quader, die Interfaces als Kugeln visualisiert. Gleiche Darstellungsinformationen der 3D Objekte in einer Klassen und Interfaces einer Version haben gleiche x- Szene. und z-Koordinaten. Die Größe der Objekte wird durch • Metaphors: Die Metaphern beschreiben die unter- die Größe des Codes festgelegt. schiedlichen 3D Darstellungen, wie weiter oben schon beschrieben. 3.4.2 Architektur Es existiert keine eigene Code-Analysekomponente, wel- Vizz3D setzt sich aus einigen bereits vorhandenen Tech- che direkt von Vizz3D bereitgestellt wird. Die Ana- nologien zusammen. In Abbildung 11 ist zu sehen, wie lyse und Ermittlung der notwendigen Visualisierungs- das Vizz3D Framework aufgebaut ist. Informationen werden durch das Analyse Framework VizzJOGL, VizzGL und VizzJ3D: Übernehmen die VizzAnalyzer[17] durchgeführt. wichtigsten Funktionen, wie das Verwalten der unter- schieldichen Layoutmöglichkeiten für die 3D Darstel- 3.4.3 Funktionsweise lung des Systems, innerhalb Vizz3Ds. Die Daten basieren Vizz3D ist ursprünglich als Erweiterung für das Frame- dabei auf dem GRAIL-Format. work VizzAnalyzer konzipiert und umgesetzt worden. Die Funktionsweise lässt sich wie folgt beschreiben: 1) Parsen: entweder wird Kenyon benutzt um Code aus SVN zu parsen oder es kommt RecoderComp für das Parsen von Java-Code zum Einsatz 2) Analyse: die Analyse wird von VizzzAnalyzer durchgeführt. Die Erkenntnisse aus diesem Schritt werden in das GRAILS Format umgewandelt. 3) Visualisieren: Die Ergebnisse aus den vorherge- henden Phasen werden mit Vizz3D in einer geeig- neten Metapher visualisiert.

3.4.4 Analyse Abbildung 11: Vizz3D Architektur Übersicht. Vollständigkeit der Visualisierung: Vizz3D visua- Quelle: vgl. Thomas Panas, Rüdiger Lincke, and Welf Löwe. THE lisiert Komplexität von Softwaresystemen, sowohl die VIZZANALYZER HANDBOOK, 2005.[17] statischen Aspekte wie NOM, NOA etc. als auch die Beziehungen zwischen den Klassen. Auch die Software- Vizzgraph: Vizzgraph ist ein Vizz3D eigenes Fra- Evolution lässt sich mit Vizz3D anschaulich visualisie- mework. Dieses Framework bietet alle Funktionen, die ren. notwendig sind um die Vizz3D spezifischen 3D Darstel- Vielfalt der Visualisierungsmöglichkeiten: Vizz3D lungsformen zu erstellen. bietet bereits von Haus aus eine Vielzahl an Visualisie- Das Vizz3D System lässt sich in drei wichtige Einzela- rungsmöglichkeiten, zudem sind eigene Visualisierun- spekte aufteilen. gen erstellbar. 178 HS-FURTWANGEN – SOFTWARETECHNIK: „CODECITY: ANALYSE UND BEWERTUNG VON SOURCECODE VISUALISIERUNG“, JULI 2010 9

Integrationsmöglichkeiten : Vizz3D ist sowohl als Stand-Alone als auch als Framework verfügbar und bietet somit eine gute Integrationsmöglichkeit. Vizz3D ist zwar sprachenunabhängig, aktuell ist jedoch nur die Unterstüzung von Java implementiert, die Unterstüt- zung für zusätzliche Sprachen müssen selbst implemen- tiert werden. Für die Analyse von Software muss auf VizzAnalyzer zurückgegriffen werden. Modifizierungsmöglichkeiten: Vizz3D ist sehr gut modifizierbar. Es bietet die Möglichkeit Metaphern, Ana- lysen etc. auszutauschen und zu modifizieren. Außer- dem können weitere Programmiersprachen hinzugefügt werden. Der Source von Vizz3D ist frei verfügbar und in Java. Aktive Weiterentwicklung: Die aktive Weiterent- wicklung ist gegeben, zumindest gab es ein Software- Abbildung 12: Sv3D Beispiel Visualisierung Übersicht. Update im September 2009. Quelle: Andrian Marcus, Louis Feng, and Jonathan I. Maletic. Compre- Ergebnis: Insgesamt lässt sich aus der Bewertungs- hension of Software Analysis Data Using 3D Visualization. In IWPC matrix in Tabelle 3 das Ergebnis von 85% ersehen. ’03: Proceedings of the 11th IEEE International Workshop on Program Comprehension, page 105. IEEE Computer Society, 2003.[16] 3.5 Sv3D Sv3D (Source viewer 3D)[12], [14], [11], [13] ist ein Sv3D erweitert die SeeSoft Metapher in soweit, dass Visualisierungs-Frontend für verschiedene Applikatio- sich noch viele weitere Attribute gleichzeititg darstellen nen für die Softwarevisualisierung. Sv3D wird für jedes lassen (siehe Abbildung 13). In dieser Abbildung sind Sourcecode Projekt neu erstellt, dies ergibt sich aus Blöcke mit unterschiedlicher Höhe und Farbe zu sehen. der Möglichkeit jedes Softwareartefakt auf ein visuelles Jeder Block stellt in diesem Fall eine Funktion in einer Element abbilden zu können. Bei der Erstellung der Sourcedatei dar. Die Farbe spiegelt die Aufrufhäufigkeit Abbildung ist man frei in der Auswahl der einzelnen wieder und die Größe stellt die Ausführdauer einer Zuordnungen. Sv3D ist ein Framework, das die Visuali- Funktion dar. sierungsfunktionalität bereitstellt.

3.5.1 Sv3D Metapher In Sv3D wird die SeeSoft Pixel Metapher zur 3D Visua- lisierung eingesetzt (siehe Abbildung 12). Jeder Poly Cylinder in der Grafik stellt eine Funktion dar und hat eine Farbe, Höhe und Tiefe. Somit können gleich drei Attribute dargestellt werden, wie z.B. Aufruf- häufigkeit, Dokumentation und die Ausführdauer einer Funktion. Ein solcher Cluster aus Poly Cylindern stellt immer eine Sourcedatei da. Das Mapping der Attribute kann auf unterschiedlichen Abstraktionsebenen erfolgen und ist somit unabhängig vom verwendeten Analyse Material. Die Hauptfeatures sind: 1) Repräsentation der Daten in einer 3D Metapher 2) Visualisierungs Front-End, das abhängig von der Datenquelle ist. Abbildung 13: Sv3D SeeSoft Metapher Ansicht. 3) Möglichkeit alle Softwareartefakte auf verschiede- Quelle: Andrian Marcus, Louis Feng, and Jonathan I. Maletic. 3D ne visuelle Attribute in der 3D Darstellung zu representations for software visualization. In SoftVis ’03: Proceedings mappen of the 2003 ACM symposium on Software visualization, pages 27–ff. Die Eingabedaten können an Sv3D mittels eines ein- ACM, 2003.[15] fachen XML-Datei Formates übergeben werden. Sv3D kann, da es die SeeSoft Metapher implemen- tiert, für Fehler Lokalisierung, Visualisierung von Aus- 3.5.2 Architektur führungswegen, Quellcode Browsing, Einschlagsanaly- Um die Übersicht gewährleisten zu können, ist es mög- se, Evolutionskomplexität und für viele weitere Zwecke lich mit variabler Geschwindigkeit zu zoomen und die eingesetzt werden. Kameraperspektive zu schwenken. 179 10 HS-FURTWANGEN – SOFTWARETECHNIK: „CODECITY: ANALYSE UND BEWERTUNG VON SOURCECODE VISUALISIERUNG“, JULI 2010

Tabelle 3: Vizz3D Analyse Kriterium Gewichtung Erfüllt Vollständigkeit der Visualisierung 25% 25% - Darstellung der Komplexität 13% ja - Darstellung von Softwareevolution 12% ja Vielfalt der Visualisierungsmöglichkeiten 25% 25% - Metaphern 10% ja - Abbildungsfunktion 10% ja - Abbildungsparameter 5% ja Integrationsmöglichkeiten 25% 10% - Eingabe als Source/Bytecode 5% nein (benötigt VizzAnalyzer) - Framework 10% ja - Unterstützung mehrerer Programmiersprachen 10% nein Modifizierungsmöglichkeiten 15% 15% - Integration von weiteren Darstellungsfunktionen 5% ja - Erweiterung um weitere Programmiersprachen 5% ja - Sourcen verfügbar und in gängiger Sprache 5% ja Aktive Weiterentwicklung 10% 10% - letztes Update max. 1 Jahr her 10% ja Gesamt 100% 85%

Jeder Container kann einzeln verändert werden in sei- Farbe stellt die Art der Kontrollstruktur dar, siehe dazu ner Ausrichtung, Größe und Position. Um nur relevante Abbildung 12 auf der vorherigen Seite. [16] Container und Poly-Cylinder anzeigen zu können wer- Die Darstellung in der erweiterten SeeSoft Metapher den von Sv3D verschiedene Filtermethoden unterstützt. von Sv3D lässt sich mit Hilfe von Manipulationsfunk- Sv3D wurde mit unterschiedlichen bereitsvorhande- tionen verändern. Die Ansicht kann komplett variiert nen Technologien umgesetzt.[16] werden z.B. lässt sich die Ansicht wie in Abbildung 15 verändern. Dargestellt lässt sich das Bild skalieren und drehen. Des Weiteren ist auf dieser Abbildung zusehen, dass jede Klasse eines Softwaresystems als Container aus Poly Cylindern dargestellt wird.

Abbildung 15: Sv3D Beispiel Visualisierung Übersicht. Quelle: Andrian Marcus, Louis Feng, and Jonathan I. Maletic. 3D representations for software visualization. In SoftVis ’03: Proceedings of the 2003 ACM symposium on Software visualization, pages 27–ff. Abbildung 14: Sv3D Architektur übersicht. ACM, 2003.[15] Quelle: Andrian Marcus, Louis Feng, and Jonathan I. Maletic. Compre- hension of Software Analysis Data Using 3D Visualization. In IWPC Sv3D ist in der Funktionsweise relativ einfach, es ’03: Proceedings of the 11th IEEE International Workshop on Program werden grundlegend drei Funktionen absolviert. Comprehension, page 105. IEEE Computer Society, 2003.[16] Parsen: Es werden alle Daten aus dem Sv3D eige- nen Dateiformat ausgelesen und in das interne Format transformiert. 3.5.3 Funktionsweise Analyse/Zuordnung: In der Analyse-Phase werden Bei der SeeSoft-Metapher werden die Sourcedateien auf die ermittelten Daten aus den eingelesenen Dateien zu die Visualisierungsobjekte Container abgebildet. In je- den visuellen Objekten, im Fall von Sv3D den Poly dem Container befinden sich die LOC dargestellt als Cylindern und den Containern, zugeordnet. Poly-Cylinder. Die Höhe der Poly-Cylinder repräsentiert Darstellung: Abschließend werden mit Hilfe von die Komplexität der einzelnen Sourcecodeelemente. Die OpenGL die Poly Cylinder in ihren Containern und 180 HS-FURTWANGEN – SOFTWARETECHNIK: „CODECITY: ANALYSE UND BEWERTUNG VON SOURCECODE VISUALISIERUNG“, JULI 2010 11

Visualisierungseinstellungen gerendert und dargestellt. 4 ZUSAMMENFASSUNG Bei der Softwarevisualisierung sollte ein Aspekt nicht 3.5.4 Analyse außer Acht gelassen werden: die Informationsüberflu- tung des Betrachters. Es ist sinnvoll abzuwegen welche, Vollständigkeit der Visualisierung: Sv3D stellt nicht wieviele und wie Informationen visualisiert werden sol- alle Aspekte der Softwarekomplexität dar. Es werden nur len bzw. welche Informationen für welchen Anwenduns- die statischen Informationen aus den Sourcen dargestellt. zweck relevant sind. An diesem Punkt ist der schmale Sv3D beherrscht die Darstellung der Softwareevoluti- Grad zwischen Informationsoverflow und Informations- on. mangel zu finden[23]. Vielfalt der Visualisierungsmöglichkeiten: Es ist Allerdings lassen sich die Softwarevisualisierungs- nicht möglich, weitere Metaphern einzufügen oder die werkzeuge effektiv in der Qualitätssicherung oder im vorhandene zu ändern. Bereich des Reengineering einsetzen. Es ist jedoch immer Allerdings ist es möglich, die statischen Daten auf ein Mensch notwendig der letztendlich die Auswertung unterschiedliche Komponenten der Poly-Cylinder dar- der dargestellten Ergebnisse vornimmt. zustellen. Der Einsatz von Softwarevisualisierungswerkzeugen Integrationsmöglichkeiten: Sv3D ist eine reines ist in großen Softwareprojekten immer sinnvoll. Es las- Werkzeug zur Darstellung von Sourcedaten. Es kann mit sen sich somit frühzeitig Qualitätsmängel in der Softwa- Source oder Bytecode nichts anfangen es müssen hier re aufdecken und beheben. erst die notwendigen Informationen extrahiert werden und in ein Sv3D eigenes Format transformiert werden. 4.1 Ausblick Sv3D bietet die Möglichkeit der direkten Integration Um die in dieser Arbeit untersuchten Werkzeuge effek- in den Entwicklungsprozess, da es als Applikationsfra- tiv innerhalb eines Softwareentwicklungszykluses ein- mework konzipiert wurde. zusetzen muss im Bereich Usability und Skalierbarkeit Integration von weiteren Programmiersprachen ist weitere Arbeit investiert werden. Für die Interpretation nicht möglich bzw. unnötig wegen der nicht vorhande- der dargestellten Szenen der Visualisierungswerkzeuge nen Analysefunktion. ist ein Mensch notwendig. Allerdings haben Menschen Modifizierungsmöglichkeiten: Die Modifizierbar- immer eine subjektive und keine objektive Sicht auf keit ist bei Sv3D nicht gegeben. Es lassen sich keinerlei solche Formen der Darstellung wie im Buch von S.Diehl Erweiterungen vornehmen. „Software Visualization“ beschrieben[3]. Hier muss wei- Sv3D ist nicht in einer Sourceversion verfügbar. ter geforscht werden, um den interpretierenden Benutzer Aktive Weiterentwicklung: Sv3D wird nach dem eine strukturierte und geordnete Sicht auf das System zu aktuellen Kenntnisstand nicht mehr weiterentwickelt, da ermöglichen. Dies wäre unter Umständen mit genormten das letzte Update des Werkzeuges über ein Jahr zurück Darstellungen für die zu sichtenden Probleme innerhalb liegt (2007). des Sourcecodes möglich. Ergebnis: Insgesamt lässt sich aus der Bewertungs- matrix in Tabelle 4 das Ergebnis von 32% ersehen. LITERATUR [1] Marco D’ Ambros and Michele Lanza. Reverse Engineering with Logical Coupling, 30.07.2006. [2] Serge Demeyer, Sander Tichelaar, and Patrick Steyaert. FAMIX 2.0: The FAMOOS Information Exchange Model, 1999. [3] Stephan Diehl. Software Visualization: Visualizing the Structure, 3.6 Fazit Behaviour, and Evolution of Software. Springer-Verlag Berlin Hei- delberg, Berlin, Heidelberg, 2007. Es wurden drei Werkzeuge für die Analyse herange- [4] Stéphane Ducasse, Tudor Gîrba, Orla Greevy, Michele Lanza, and zogen. Diese Werkzeuge wurden anhand der in Ab- Oscar Nierstrasz, editors. FAMOOSr 2008: 2nd Workshop on FAMIX and Moose in Reengineering. 2008. schnitt 3.1 beschriebenen Kriterien ausgewählt. Zu die- [5] Stéphane Ducasse and Michele Lanza. The Class Blueprint: sen Werkzeugen gehört das Werkzeug CodeCity, die- Visually Supporting the Understanding of Classes. IEEE Trans. ses Werkzeug wurde anhand der Problemstellung aus- Softw. Eng., 31(1):75–90, 2005. [6] Len Erlikh. Leveraging Legacy System Dollars for E-Business. IT gewählt, sowie die Werkzeuge Vizz3D und Sv3D. In Professional, 2(3):17–23, 2000. der Tabelle 5 werden die Analyseergebnisse aller drei [7] R. Falke, R. Klein, R. Koschke, and J. Quante. The Dominance Werkzeuge gegenübergestellt um ermitteln zu können Tree in Visualizing Software Dependencies. In VISSOFT ’05: Proceedings of the 3rd IEEE International Workshop on Visualizing welches Werkzeug die besten Vorraussetzungen nach Software for Understanding and Analysis, page 24. IEEE Computer den in Abschnitt 3.2 aufgestellten Kriterien hat. Society, 2005. [8] Michele Lanza and Radu Marinescu. Object-oriented metrics in practice: Using software metrics to characterize, evaluate, and improve the design of object-oriented systems ; with 8 tables. Springer-Verlag Vizz3D bietet die besten Vorraussetzungen um in ei- Berlin Heidelberg, Berlin, Heidelberg, 2006. [9] Jochen Ludewig and Horst Lichter. Software Engineering: Grund- nem qualitätssichernden Prozess oder einem Reenginee- lagen, Menschen, Prozesse, Techniken. dpunkt, Heidelberg, 1. aufl. ringprozess eingesetzt zu werden. edition, 2007. 181 12 HS-FURTWANGEN – SOFTWARETECHNIK: „CODECITY: ANALYSE UND BEWERTUNG VON SOURCECODE VISUALISIERUNG“, JULI 2010

Tabelle 4: Sv3D Analyse Kriterium Gewichtung Erfüllt Vollständigkeit der Visualisierung 25% 12% - Darstellung der Komplexität 13% nein - Darstellung von Softwareevolution 12% ja Vielfalt der Visualisierungsmöglichkeiten 25% 5% - Metaphern 10% nein - Abbildungsfunktion 10% nein - Abbildungsparameter 5% ja Integrationsmöglichkeiten 25% 10% - Eingabe als Source/Bytecode 5% nein - Framework 10% nein - Unterstützung mehrerer Programmiersprachen 10% ja Modifizierungsmöglichkeiten 15% 5% - Integration von weiteren Darstellungsfunktionen 5% nein - Erweiterung um weitere Programmiersprachen 5% ja - Sourcen verfügbar und in gängiger Sprache 5% nein Aktive Weiterentwicklung 10% 0% - letztes Update max. 1 Jahr her 10% nein Gesamt 100% 32%

Tabelle 5: Gesamtergebnis der Analyse der Werkzeuge CodeCity,Vizz3D und Sv3D. Kriterium Gewichtung CodeCity Vizz3D Sv3D Vollständigkeit der Visualisierung 25% 25% 25% 12% - Darstellung der Komplexität 13% ja ja nein - Darstellung von Softwareevolution 12% ja ja ja Vielfalt der Visualisierungsmöglichkeiten 25% 15% 25% 5% - Metaphern 10% nein ja nein - Abbildungsfunktion 10% ja ja nein - Abbildungsparameter 5% ja ja ja Integrationsmöglichkeiten 25% 15% 10% 10% - Eingabe als Source/Bytecode 5% ja nein (benötigt VizzAnalyzer) nein - Framework 10% nein ja nein - Unterstützung mehrerer Programmiersprachen 10% ja nein ja Modifizierungsmöglichkeiten 15% 10% 15% 5% - Integration von weiteren Darstellungsfunktionen 5% ja ja nein - Erweiterung um weitere Programmiersprachen 5% ja ja ja - Sourcen verfügbar und in gängiger Sprache 5% nein ja nein Aktive Weiterentwicklung 10% 10% 10% 0% - letztes Update max. 1 Jahr her 10% ja ja nein Gesamt 100% 75% 85% 32%

[10] Mircea Lungu and Michele Lanza. Exploring Inter-Module Rela- [18] John Stasko. Software visualization: Programming as a multimedia tionships in Evolving Software Systems. In CSMR ’07: Proceedings experience. MIT Press, Cambridge, Mass., 1998. of the 11th European Conference on Software Maintenance and Reen- [19] Vaxjo University. Vizz3D - Program Visualization: Java. Online, gineering, pages 91–102. IEEE Computer Society, 2007. 2010. [11] Jonathan I. Maletic, Adrian Marcus, and Michael L. Collard. A [20] Richard Wettel. Scripting 3D Visualizations with CODECITY. In Task Oriented View of Software Visualization. In Jonathan I Stéphane Ducasse, Tudor Gîrba, Orla Greevy, Michele Lanza, and Maletic, editor, 2007 4th IEEE International Workshop on Visualizing Oscar Nierstrasz, editors, FAMOOSr 2008, volume 2, pages 22–23. Software for Understanding and Analysis, pages 32–40. IEEE Service 2008. Center, 2007. [21] Richard Wettel. CodeCity Software, 2009. [12] Jonathan I. Maletic, Adrian Marcus, and Louis Feng. Source [22] Richard Wettel and Michele Lanza. Visualizing Software Systems Viewer 3D (sv3D) A Framework for Software Visualization. In as Cities. In In Proceedings of VISSOFT 2007 (4th IEEE International Formal Research Demonstration in Proceedings of the 25th IEEE/ACM Workshop on Visualizing Software For Understanding and Analysis), International Conference on Software Engineering, pages 812–813, pages 92–99, 2007. 2003. [23] Richard Wettel and Michele Lanza. CodeCity. In In Proceedings [13] Jonathan I. Maletic, Andrian Marcus, and Louis Feng. Source of WASDeTT 2008 (1st International Workshop on Advanced Software viewer 3D (sv3D): a framework for software visualization. In Development Tools and Techniques), 2008. ICSE ’03: Proceedings of the 25th International Conference on Software [24] Richard Wettel and Michele Lanza. Visual Exploration of Large- Engineering, pages 812–813. IEEE Computer Society, 2003. Scale System Evolution. In WCRE ’08: Proceedings of the 2008 15th [14] Adrian Marcus, Jonathan I Maletic, Louis Feng, Andrey Sergeyev, Working Conference on Reverse Engineering, pages 219–228. IEEE Denise Comorski, and Andrew Sutton. sv3D. Computer Society, 2008. [15] Andrian Marcus, Louis Feng, and Jonathan I. Maletic. 3D repre- [25] Richard Wettel and Michele Lanza. Visually localizing design sentations for software visualization. In SoftVis ’03: Proceedings problems with disharmony maps. In SoftVis ’08: Proceedings of of the 2003 ACM symposium on Software visualization, pages 27–ff. the 4th ACM symposium on Software visualization, pages 155–164. ACM, 2003. ACM, 2008. [16] Andrian Marcus, Louis Feng, and Jonathan I. Maletic. Compre- [26] Richard Wettel and Michele Lanza. Code City Vortrag, August hension of Software Analysis Data Using 3D Visualization. In 25-29, 2008. IWPC ’03: Proceedings of the 11th IEEE International Workshop on Program Comprehension, page 105. IEEE Computer Society, 2003. [17] Thomas Panas, Rüdiger Lincke, and Welf Löwe. THE VIZZANA- LYZER HANDBOOK, 2005. 182