„Nach einer Studie im Auftrag des Bitkom wird der Cloud Computing-Umsatz in diesem
Jahr um rund 55 Prozent auf 3,5 Milliarden Euro steigen. Bis 2015 soll der deutsche Cloud
Computing-Markt auf 13 Milliarden Euro zulegen. 1,9 Milliarden Euro Umsatz entfallen
derzeit auf den Geschäftskundenbereich, die Wachstumsraten liegen in diesem Segment
aktuell bei 70 Prozent.“ [2] Diese Zahlen zeigen, welche Bedeutung die Industrie Cloud
Computing beimisst. Welchen enormen Nutzen man aus Cloud Computing ziehen kann,
verdeutlicht die Erfolgsgeschichte der New York Times. Der Zeitungsverlag nutzte Cloud
Computing um 11 Millionen digitalisierte Artikel im TIFF-Format (vier Terabyte) in das
platzsparende PDF-Format umzuwandeln. Nach der Transformation war für die
Speicherung der Artikel nur noch knapp ein Drittel des Speicherplatzes erforderlich. Der
gesamte Transformationsprozess dauerte nur 24 Stunden und kostete gerade einmal 240
US-Dollar. (Vgl. [3] S. 21f.) Dieses Beispiel und die hohen Investitionen führender IT-
Firmen wie Microsoft, IBM und Google (Vgl. [4]) lassen das Potenzial, welches im Cloud
Computing steckt, erahnen.
Ob sich die Vorteile des Cloud Computing für alle IT-Bereiche nutzen lassen, wird sich in
den nächsten Jahren zeigen. Erst dann weiß man, ob Cloud Computing wirklich alle
Erwartungen erfüllen kann. Zu diesem Zweck beschäftigt sich diese Arbeit mit der Analyse
von Workflow-Management-Systemen und Cloud Computing. Sie soll zeigen, inwiefern
das Workflow-Management von der Integration mit Cloud Computing profitieren kann.
Hierfür werden drei Integrationsszenarien betrachtet. Zum einen soll untersucht werden,
wie Software-as-a-Service als Anwendungsfunktion in einen Workflow integriert werden
kann. Zum anderen werden Entwicklungs- und Ausführungsplattformen nach dem
Platform-as-a-Service-Prinzip für Workflows analysiert. Der dritte Integrationsansatz
beschäftigt sich mit der Frage, wie die Ausführung von Workflows durch den Einsatz von
Infrastructure-as-a-Service optimiert werden kann.
Inhaltsverzeichnis
1 EINLEITUNG
1.1 MOTIVATION UND ZIELSETZUNG
2 GRUNDLAGEN
2.1 CLOUD COMPUTING
2.1.1 DEFINITION UND EIGENSCHAFTEN
2.1.2 Abgrenzung zu Grid Computing
2.1.3 Technische Grundlagen
2.1.4 Organisationsformen
2.1.5 Infrastructure-as-a-Service
2.1.6 Platform-as-a-Service
2.1.7 Software-as-a-Service
2.2 GESCHÄFTSPROZESS- UND WORKFLOW-MANAGEMENT
2.2.1 Begriffserklärungen
2.2.2 Ziele und Vorteile des Workflow-Managements
2.2.3 Prozess- und Workflowmodellierung
2.2.4 Prozesssteuerung
2.2.5 Workflow-Management-Systeme
2.2.5.1 Build-Time und Run-Time eines Workflow-Management-Systems
2.2.5.2 Referenzarchitektur
3 INTEGRATION VON WORKFLOW-MANAGEMENT UND CLOUD- TECHNOLOGIEN
3.1 SOFTWARE-AS-SERVICE ALS ANWENDUNGSFUNKTIONEN IM WORKFLOW
3.1.1 Beispielhafte Umsetzung
3.2 AUSFÜHRUNGSPLATTFORMEN FÜR WORKFLOW-MANAGEMENT-SYSTEME NACH DEM PLATTFORM-AS-A-SERVICE-PRINZIP
3.3 OPTIMIERUNG VON WORKFLOWS DURCH DEN EINSATZ VON INFRASTRUCTURE-AS-A- SERVICE
4 FAZIT
5 LITERATURVERZEICHNIS...
6 ANHANG
Abbildungsverzeichnis
Abbildung 1: Over- und Under-Provisioning
Abbildung 2: Funktionsweise einer Serviceorientierter Architektur
Abbildung 3: Workflow-Management-System
Abbildung 4: Drei-dimensionale Sicht auf Workflows
Abbildung 5: ARIS Sichtenkonzept
Abbildung 6: Kontrollflussstrukturen
Abbildung 7: 3-Ebenen eines Workflows
Abbildung 8: Build-Time und Run-Time eines Workflow-Management-Systems
Abbildung 9: Workflow Referenzmodell
Abbildung 10: Schnittstellen eines Workflow-Management-Systems
Abbildung 11: Aufbau einer Aktivität
Abbildung 12: Form-based Architektur
Abbildung 13: Aktivität 1
Abbildung 14: Aktivität 2
Abbildung 15: Aneka Cloud Infrastruktur
Abbildung 16: Aneka Framework
Abbildung 17: Architektur für Workflows in der Cloud
Abbildung 18: Anzahl fertiggestellter Tasks im Zeitverlauf beim Hinzufügen zusätzlicher Ressourcen
Abbildung 20: Vergleich der Workflow-Ressourcenauslastung
Abbildung 19: Verwendete Ressourcen
Abbildung 21: Vergleich der Laufzeiten
Abbildung 22: Vergleich der Ressourcenkosten
Abbildung 23: Monatliche Speicherkosten
Abbildung 24: Transferkosten der Workflows
Abbildung 25: Meta-Modell der Kernobjekte
Abbildung 26: Joget Worklist
1 Einleitung
Cloud Computing hat sich zu dem Megatrend der Informations- und Telekommunikationstechnik entwickelt. Die Gründe für diesen Hype liegen an den hohen Erwartungen, die an das Cloud Computing gestellt werden. Viele sprechen davon, dass Cloud Computing unser derzeitiges Verständnis von IT grundlegend verändern wird (Vgl. [1]S. 1). Eine Veränderung vollzieht sich in der Weise, dass IT-Leistungen in Echtzeit als Service über das Internet oder innerhalb eines Firmennetzwerkes bereitgestellt werden. Diese Veränderung betrifft vor allem die Technologie, aber auch die Geschäftsmodelle der Unternehmen müssen angepasst werden.
1.1 Motivation und Zielsetzung
„Nach einer Studie im Auftrag des Bitkom wird der Cloud Computing-Umsatz in diesem Jahr um rund 55 Prozent auf 3,5 Milliarden Euro steigen. Bis 2015 soll der deutsche Cloud Computing-Markt auf 13 Milliarden Euro zulegen. 1,9 Milliarden Euro Umsatz entfallen derzeit auf den Geschäftskundenbereich, die Wachstumsraten liegen in diesem Segment aktuell bei 70 Prozent.“Diese Zahlen zeigen, welche Bedeutung die Industrie Cloud Computing beimisst. Welchen enormen Nutzen man aus Cloud Computing ziehen kann, verdeutlicht die Erfolgsgeschichte der New York Times1. Der Zeitungsverlag nutzte Cloud Computing um 11 Millionen digitalisierte Artikel im TIFF-Format (vier Terabyte) in das platzsparende PDF-Format umzuwandeln. Nach der Transformation war für die Speicherung der Artikel nur noch knapp ein Drittel des Speicherplatzes erforderlich. Der gesamte Transformationsprozess dauerte nur 24 Stunden und kostete gerade einmal 240 US-Dollar. (Vgl.[3]S. 21f.) Dieses Beispiel und die hohen Investitionen führender IT- Firmen wie Microsoft, IBM und Google (Vgl.[4]) lassen das Potenzial, welches im Cloud Computing steckt, erahnen.
Ob sich die Vorteile des Cloud Computing für alle IT-Bereiche nutzen lassen, wird sich in den nächsten Jahren zeigen. Erst dann weiß man, ob Cloud Computing wirklich alle Erwartungen erfüllen kann. Zu diesem Zweck beschäftigt sich diese Arbeit mit der Analyse von Workflow-Management-Systemen und Cloud Computing. Sie soll zeigen, inwiefern das Workflow-Management von der Integration mit Cloud Computing profitieren kann. Hierfür werden drei Integrationsszenarien betrachtet. Zum einen soll untersucht werden, wie Software-as-a-Service als Anwendungsfunktion in einen Workflow integriert werden kann. Zum anderen werden Entwicklungs- und Ausführungsplattformen nach dem Platform-as-a-Service-Prinzip für Workflows analysiert. Der dritte Integrationsansatz beschäftigt sich mit der Frage, wie die Ausführung von Workflows durch den Einsatz von Infrastructure-as-a-Service optimiert werden kann.
2 Grundlagen
In diesem Kapitel wird im ersten Teil allgemein in das Themengebiet des Cloud Computing eingeführt. Dazu werden die grundlegenden Basistechnologien, Architekturen und Organisationsformen des Cloud Computing beschrieben. Der zweite Teil befasst sich mit den Grundlagen des Workflow-Managements. Zunächst werden die erforderlichen Begriffe eingeführt und anschließend die Ziele und Vorteile von Workflow-Management vorgestellt. Anschließend werden Workflow-Management-Systeme näher betrachtet und anhand des Workflow-Referenz-Modells der Workflow Management Coalition erläutert.
2.1 Cloud Computing
Das Schlagwort Cloud Computing erfreut sich immenser Popularität. Das zeigt nicht zuletzt die Anzahl der Suchergebnisse bei Google (Ungefähr 115.000.000). Zum Vergleich: Das verwandte Grid Computing erzielt nur einen Bruchteil der Suchergebnisse (ungefähr 7.070.000). Cloud Computing wird oft als das neue IT-Paradigma verkauft, obwohl das Konzept und die zugrunde liegenden Technologien nicht gänzlich neu sind. Es bestehen Verbindungen zum Grid-, Utility-, High-Performance- sowie Cluster-Computing und zu Verteilten Systemen im Allgemeinen. Bereits 1961 offenbarte der Computerpionier John McCarthy in seiner Rede zur Hundertjahrfeier des MIT die Vision, Rechenleistung und Anwendungen der Öffentlichkeit als ein „Public Utility“ bereitzustellen, also genauso, wie auch Strom, Gas und Wasser bereitgestellt werden. Diesen Gedanken verfolgt auch das Cloud Computing. Serviceanbieter von Cloud Computing-Lösungen werben damit, dass sowohl auf Anwendungen, als auch auf grenzenlose Rechen- und Speicherkapazitäten, On- Demand und kostengünstig über das Internet zugegriffen werden kann. „On-Demand bedeutet so viel wie „Auf Abruf“. Damit wird der zeitnahe Zugriff auf die Leistung beschrieben. Die Leistung wird in dem Moment geliefert, in dem sie tatsächlich benötigt wird.“ (5 S. 7) Der Serviceanbieter kann die Dienste zu geringen Preisen anbieten, da er sich durch groß angelegte Rechenzentren Skaleneffekte (Economy of Scale) zu Nutze machen kann. Armbrust et al.6 fanden heraus, dass die Kosteneinsparungen, die mit einem extrem groß angelegten Rechenzentrum an einem günstigen Standort erzielt werden, bis zu 85 Prozent betragen können. „Several Cloud Computing (and conventional computing) datacenters are being built in seemingly surprising locations, such as Quincy, Washington (Google, Microsoft, Yahoo!, and others) and San Antonio, Texas (Microsoft, US National Security Agency, others). The motivation behind choosing these locales is that the costs for electricity, cooling, labor, property purchase costs, and taxes are geographically variable, and of these costs, electricity and cooling alone can account for a third of the costs of the datacenter.“ (6 S. 6) Für den Nutzer von Cloud Computing- Angeboten entfallen durch das Outsourcing Vorabinvestitionen in die eigene Hardware, sowie Betriebs- und Wartungskosten, da die Ressourcen von einem Serviceanbieter betrieben werden und sich der Nutzer nicht mehr um deren Anschaffung und Betrieb kümmern muss. Des Weiteren entfallen die Kosten für „Overprovisioning” und „Underprovisioning”, da der Nutzer bei Bedarf innerhalb kürzester Zeit zusätzliche Ressourcen vom Cloud-Anbieter dazu schalten bzw. wieder freigeben kann. Man spricht von „Overprovisioning“, wenn Computerressourcen nicht vollständig ausgelastet sind. Eine neue Studie über sechs große Rechenzentren hat gezeigt, dass die meisten Server im Durchschnitt lediglich 5-15 Prozent ihrer verfügbaren Rechenkapazität nutzen. (Vgl.7 ) Die Bereitstellung dieser großen Kapazität ist dazu gedacht, Lastspitzen bewältigen zu können. Die Kosten, die hierfür entstehen, sind leicht zu berechnen, da man messen kann, wie viel Rechenkapazität in Zeiten geringer Auslastung unbenutzt ist. Die Kosten für „Underprovisioning“, also wenn zu wenig Kapazität für einen angemessenen Betrieb, z.B.
bei Lastspitzen, vorhanden ist, können dagegen nicht so einfach berechnet werden. (Vgl. 8 S. 53 f.) Hierbei handelt es sich um Kosten, die entstehen, wenn potenzielle Nutzer eines Web-Angebotes auf Grund langsamer Antwortzeiten zu Angeboten eines anderen Anbieters wechseln und möglicherweise nie wieder zurückkommen. Es wird zum Beispiel vermutet, dass das soziale Netzwerk Friendster, im Vergleich zu seinen Konkurrenten Facebook und MySpace, wegen zum Teil langsamer Antwortzeiten (bis zu 40 Sekunden) an Popularität verloren hat. (Vgl.9) Die nachfolgende Grafik (Abb. 1) verdeutlicht die beiden Szenarien noch einmal.
Abbildung 1: Over- und Undeprovisioning
Quelle: 8 S. 53.
Die massive Skalierbarkeit von IT-Ressourcen ist ein wesentliches Merkmal des Cloud Computing. „Übertragen auf verteilte Architekturen bedeutet der Begriff Skalierbarkeit die Möglichkeit, ein System im laufenden Betrieb zu erweitern, auszubauen beziehungsweise unter Umständen auch zu verkleinern, also zu skalieren.“ (10 S. 174) Mit Hilfe von Cloud Computing können demnach die Probleme des „Over-“ und „Underprovisioning“ gelöst werden. Die IT-Ressourcen können zeitnah und dynamisch an die Nachfrage angepasst werden. Hierbei spricht man auch von Elastizität. Diese Elastizität ist besonders für kleine und neu gegründete Unternehmen von Vorteil, da diese sich dadurch auf ihre Kernkompetenzen, z.B. die Entwicklung eines sozialen Netzwerkes, konzentrieren können und die Aufgabe der Bereitstellung ihres Dienstes einem Cloud Serviceanbieter übertragen können. Der Cloud Serviceanbieter garantiert einen im Voraus mit dem Servicenutzer in Bezug auf Qualität vereinbarten Betrieb zu einem kostengünstigen und nutzungsabhängigen Preis. Die Qualität eines Dienstes (Quality of Service) kann in sogenannten Service-Level-Agreements als verbindlicher Vertrag zwischen Dienstanbieter und Dienstnutzer festgelegt werden. Typischerweise darin enthalten sind: maximale Antwortzeit, Datendurchsatz und Fehlerrate des Dienstes. Aber auch nicht funktionale Anforderungen, wie Verfügbarkeit, können hier festgeschrieben werden. (Vgl.11 S. 2ff.) Dass Skalierbarkeit von Anwendungen in Zeiten globaler Vernetzung und des schnellen Nachrichtenaustausches wichtig für den Erfolg eines Unternehmens ist, wird anhand der Firma Animoto deutlich. Animoto bietet Videodienste über das Web an und erfuhr nach der Vernetzung mit dem sozialen Netzwerk Facebook einen extremen Anstieg der Nachfrage. Um alle Anfragen bedienen zu können, griff Animoto auf öffentliche Cloud-Dienste zurück. Später, als die Nachfrage sich wieder verringerte, konnte die Nutzung dieser Dienste einfach wieder herunterskaliert werden. (Vgl.12 S. 116)
Die nutzungsabhängige Abrechnung bei Cloud-Diensten ist ein weiteres Merkmal des Cloud Computing. Im Englischen wird in diesem Zusammenhang auch von „pay-per-use“ oder „pay-as-you-go“ gesprochen. Das bedeutet, dass der Nutzer nur für die tatsächlich in Anspruch genommenen Ressourcen zahlt. Die Abrechnungsmethoden können sich für verschiedene Ressourcen unterscheiden. Es ist zum Beispiel üblich, Prozessoren nach Nutzung in Stunden und Datentransfer in und aus der Cloud nach Gigabyte abzurechnen. (Vgl.13 )
2.1.1 Definition und Eigenschaften
Trotz des anhaltenden Hypes um Cloud Computing existiert noch keine allgemein anerkannte Definition dieses Begriffes. Eine oft verwendete und auch für diese Arbeit angemessene Definition liefert das National Institute of Standards and Technology2: „Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”14
In dieser Definition werden die zuvor vorgestellten Eigenschaften des Cloud Computing noch einmal aufgegriffen. Zusammenfassend werden die folgenden fünf Eigenschaften als wesentliche Merkmale des Cloud Computing festgehalten:
- Diensterbringung On-Demand: Dienste sind auf Anforderung und selbstständig von Nutzern abrufbar.
- Netzwerkbasierter Zugang: Dienste können über ein Netzwerk (z.B. das Internet oder das firmeneigene Intranet) in Echtzeit durch Verwendung von Standardtechnologien abgerufen werden.
- Ressourcen Pooling: Ressourcen sind in Pools zusammengefasst und erlauben eine parallele Dienstnutzung durch mehrerer Nutzer (Mandanten). Die Dienste sind dabei auf den Bedarf eines jeden Nutzers angepasst.
- Elastizität: Ressourcen werden schnell und in verschiedenen, auch fein granularen Quantitäten, zur Verfügung gestellt und erlauben so die Skalierung von Systemen. Dem Nutzer gegenüber entsteht die Illusion unendlich verfügbarer Ressourcen.
- Messbare Dienstqualität: Dienste sind quantitativ und qualitativ messbar, so dass eine nutzungsabhängige Abrechnung und Validierung der Dienstqualität gegeben ist. (Vgl.12 S. 5f.)
2.1.2 Abgrenzung zu Grid Computing
Grid Computing und Cloud Computing ähneln sich in vielen Aspekten. Deshalb werden in diesem Kapitel beide Konzepte gegenübergestellt und ihre Unterschiede herausgestellt. Die Gemeinsamkeiten rühren daher, dass beide Paradigmen das Ziel „computing as a utility“ verfolgen. Beide Ansätze sind darauf ausgerichtet, dem Nutzer enorme Ressourcen On- Demand bereitzustellen, sie entstanden aber in verschiedenen Arbeitsgebieten. Grid Computing stammt aus dem Gebiet der Wissenschaft und entstand aus der Notwendigkeit heraus, komplexe Probleme zu lösen, welche selbst mit einem leistungsstarken, parallelen Supercomputer nicht in absehbarer Zeit lösbar sind. Grid Computing zielt darauf ab, Nutzern Rechenpower von entfernten, nicht oder gering genutzten Rechnern flexibel und sicher zur Verfügung zu stellen. Eine Grid Middleware ermöglicht es, die Aufgaben den sogenannten Worker Nodes, also den Ressourcen der Grid, zuzuteilen. Das Globus Toolkit 43ist eine weltweit bekannte Grid-Middleware, welche in vielen Grid-Projekten zum Einsatz kommt. Dabei teilen sich verschiedene Einzelpersonen und Institutionen, welche zusammengefasst auch virtuelle Organisation genannt werden, diese Ressourcen. Eine virtuelle Organisation definiert, welche Ressourcen geteilt werden und wem es erlaubt ist, diese Ressourcen zu nutzen. (Vgl.15 S. 2f.) Die Mitglieder einer Grid stellen ihre Ressourcen kostenfrei für andere zur Verfügung und profitieren durch den Zusammenschluss mit den anderen Mitgliedern von mehr Rechenleistung. Das TeraGrid (seit 2011: The Extreme Science and Engineering Digital Environment [XSEDE])4ist ein Beispiel für einen solchen Zusammenschluss. Es stellt dauerhaft große Rechenleistung für wissenschaftliche Berechnungen zur Verfügung. Durch die Vielzahl an unterschiedlichen Institutionen in einer Grid ist diese durch eine große Heterogenität gekennzeichnet. Eine Definition von Grid Computing liefert Ian Foster: „The sharing that we are concerned with is not primarily file exchange but rather direct access to computers, software, data, and other resources, as is required by a range of collaborative problem-solving and resource- brokering strategies emerging in industry, science, and engineering. This sharing is, necessarily, highly controlled, with resource providers and consumers defining clearly and carefully just what is shared, who is allowed to share, and the conditions under which sharing occurs. A set of individuals and/or institutions defined by such sharing rules form what we call a virtual organization.” (Vgl.16 S. 40) Um genau definieren zu können, was Grid Computing ausmacht, lieferte Foster außerdem eine Checkliste, die drei zentrale Eigenschaften des Grid Computing festlegt (Vgl.17 S. 2f.):
- Die Grid koordiniert Ressourcen, die keiner zentralen Kontrolle obliegen.
- Grid Systeme benutzen offene Standardprotokolle und Schnittstellen
- Grid Systeme liefern nicht-triviale Dienstgüten (QoS)
Die nicht-trivialen Dienstgüten resultieren daraus, dass alle Teilnehmer der virtuellen Organisation ihre Rechenkapazitäten freiwillig und nur so lange sie wollen bereitstellen. In einer Grid kann es durchaus passieren, dass einzelne Ressourcen (so genannte „Worker Nodes“) ausfallen, während gerade Berechnungen darauf durchgeführt werden. In einem solchen Fall muss die zuständige Middleware dann einen neuen Worker Node ausfindig machen und das Programm auf diesem erneut ausführen, was zu Verzögerungen führt.
Cloud Computing entstand im Vergleich zu Grid Computing in der Industrie und wurde durch schnellwachsende Internetfirmen wie Amazon, Google und Yahoo geprägt. Bei Amazon zum Beispiel entstand die Idee, Ressourcen, welche lediglich für Spitzenlastzeiten, zum Beispiel Weihnachten und Thanksgiving, vorgehalten werden müssen, aber für die Grundlast im Tagesgeschäft nicht benötigt werden, in Zeiten schwacher Nutzung Dritten gegen Entgelt zur Verfügung zu stellen. Dies bot sich an, da die Spitzenlast der Amazon Webseite um den Faktor 10 höher ist als die Grundlast im Tagesgeschäft. (Vgl.18 ) Da die Ressourcen einer Cloud von einem einzigen Anbieter stammen, sind diese im Gegensatz zu den Ressourcen einer Grid sehr homogen und obliegen einzig und allein der Kontrolle des Anbieters. Ein weiterer Unterschied besteht darin, dass bei Clouds die Dienstgüten (QoS) genau festgelegt sein müssen, da der Nutzer für vereinbarte Dienstgüten entsprechend bezahlt. Die offenen Standardprotokolle und Schnittstellen, welche eine Grid implementiert, sind ein weiterer Gegensatz zu Clouds. Speziell kommerzielle Cloud- Angebote basieren auf proprietären Protokollen und Schnittstellen. (Vgl.19 S. 3)
2.1.3 Technische Grundlagen
Cloud Anbieter stellen Ressourcen verschiedenster Art als Dienste öffentlich über das Internet oder über private Netzwerke dynamisch bereit. Um einen Einblick in die Funktionsweise von Cloud-Angeboten zu bekommen, werden im folgenden Kapitel die dafür notwendigen technischen Grundlagen erläutert, welche die Konstruktion von Clouds ermöglichen. Dazu zählen Virtualisierung, Serviceorientierte Architekturen und Web Services.
Das Konzept der Virtualisierung entstand bereits in den 1960er Jahren. Damals hatte man das Ziel, die Auslastung der vorhandenen, knappen und sehr teuren Ressourcen von Mainframe-Computern zu optimieren. Zu diesem Zweck führte IBM das Prinzip der Servervirtualisierung für Großrechner ein. (Vgl.20 S. 8) Servervirtualisierung wird wie folgt beschrieben: „In most cases, server virtualization is accomplished by the use of a hypervisor (VMM) to logically assign and separate physical resources. The hypervisor allows a guest operating system, running on the virtual machine, to function as if it were solely in control of the hardware, unaware that other guests are sharing it. Each guest operating system is protected from the others and is thus unaffected by any instability or configuration issues of the others.“ (21 S. 10) Die Virtualisierung ermöglicht es, die Ressourcen eines einzelnen Servers in separierte, voneinander unabhängige, virtuelle Maschinen zu unterteilen. Somit ist es möglich, mehrere Applikationen und Prozesse von verschiedenen Nutzern parallel laufen zu lassen. Unter einer virtuellen Maschine versteht man die „Abstraktion eines ganzen, logischen Computers durch eine Schicht eines kommunikativen Protokollstapels nach unten.“ (22 S. 971, Stichwort: „virtuelle Maschine“) Es kann zwischen virtuellen Prozess- und virtuellen Systemmaschinen unterschieden werden. Virtuelle Prozessmaschinen, wie z.B. das Java Runtime Environment (JRE), führen einzelne Programme aus, wohingegen virtuelle Systemmaschinen eine komplette Systemplattform bereitstellen, die die Ausführung ganzer Betriebssysteme unterstützt. Auf einem physikalischen Rechner können mehrere virtuelle Maschinen laufen, die sich die physikalischen Ressourcen teilen. Auf jeder virtuellen Maschine kann ein anderes Betriebssystem laufen und ein Virtual Maschine Manager, auch Hypervisor genannt, koordiniert dabei die unterschiedlichen virtuellen Maschinen und regelt deren Zugriff auf die Hardware des Computers. (Vgl.20 S. 13ff.) Die Konfigurierbarkeit von virtuellen Maschinen geht über die Auswahl eines Betriebssystems weit hinaus. Eine virtuelle Maschine kann, entsprechend der Ressourcenanforderungen einer Applikation, dynamisch in Bezug auf Speicherplatz und Rechenleistung angepasst werden. Zusätzlich bietet Virtualisierung Vorteile bei hochverfügbaren Systemen. Für unternehmenskritische Anwendungen muss ein hohes Maß an Verfügbarkeit gewährleistet sein. Hohe Verfügbarkeit erreicht man grundsätzlich durch Redundanz. Im Falle eines Servers wird also ein zweiter, identischer Rechner bereitgehalten, der bei einem Ausfall den Betrieb des ersten Servers übernimmt. Mit Hilfe von Virtualisierung kann der Betrieb innerhalb kürzester Zeit wieder aufgenommen werden, da Backup-Kopien der virtuellen Maschinen schnell auf einem anderen Server gestartet werden können (Vgl.23 S. 74). Neben Virtualisierung basiert Cloud Computing auf dem SOA Paradigma. SOA steht für Serviceorientierte Architektur und ist ein Architekturmuster aus dem Bereich der verteilten Systeme. „Unter einer SOA versteht man eine Systemarchitektur, die vielfältige, verschiedene und eventuell inkompatible Methoden oder Applikationen als wiederverwendbare und offen zugreifbare Dienste repräsentiert und dadurch eine plattform- und sprachenunabhängige Nutzung und Wiederverwendung ermöglicht.“ (10 S. 13) Den Kern von SOA bilden das Anbieten, Suchen und Nutzen von Diensten über ein Netzwerk. Die Dienste spielen eine zentrale Rolle bei Serviceorientierten Architekturen. Als Dienst wird ein eigenständiges, autarkes Stück Software bezeichnet, welches seine Funktionalität über eine klar definierte Schnittstelle zur Verfügung stellt. Wie in Abbildung 2 dargestellt, existieren bei einer SOA ein Dienst-Anbieter, der einen Dienst zur Verfügung stellt, ein Dienst-Verzeichnis, bei dem registrierte Dienste erfragt werden können und ein Dienst- Konsument. Das Dienst-Verzeichnis gibt Auskunft über die Adresse eines Dienstes, z.B. in Form einer URI (Uniform Ressource Identifier). Der Dienst-Konsument kann mit Hilfe dieser Adresse den Dienst anfragen und erhält eine Antwort. (Vgl.24 S. 15f.)
Abbildung 2: Funktionsweise einer Serviceorientierter Architektur
Abbildung in dieser Leseprobe nicht enthalten
Quelle:10 S 14.
Zu den grundlegenden Merkmalen einer SOA gehören neben dem Verzeichnisdienst die lose Kopplung („loose coupling“) und das dynamische Einbinden der Dienste. Lose gekoppelte Dienste können bei Bedarf von Anwendungen oder anderen Diensten zur Laufzeit gesucht, gefunden und eingebunden werden. Das Ziel von Serviceorientierten Architekturen ist es, einzelne Dienste so zu kapseln und zu koordinieren, dass ihre Leistungen zu „höheren“ Diensten zusammengefasst werden können. Damit Dienste miteinander kommunizieren können, ist es erforderlich, dass offene Standards und einheitliche Schnittstellen genutzt werden. (Vgl.10 S. 11f.) Zu den entscheidenden Vorteilen einer SOA zählen Finger und Zeppenfeld 25 u.a.:
- flexible Änderbarkeit: Durch lose Kopplung der Services wird eine hohe Flexibilität in der Architektur erreicht.
- leichte Wartbarkeit: Durch die Wiederverwendung der Services werden redundante Implementierungen vermieden.
- neuen Nutzen aus vorhandener Software ziehen: Vorhandene Legacy-Systeme können mit neuen Technologien erweitert werden. Bestehende Systeme werden nicht modifiziert, sondern über Schnittstellen verfügbar gemacht. Durch das Einbinden unternehmensexterner Dienste können außerdem Kosteneinsparungen erzielt werden (Outsourcing).
- erschließen neuer Vertriebswege: Unternehmen sind durch die Serviceorientierte Architektur in der Lage, ihre Dienste auch anderen Unternehmen kostenpflichtig anzubieten.
- Offenheit: Eine Serviceorientierte Architektur basiert auf keiner festgelegten Technologie, jedoch passen viele moderne Middleware-Systeme in das Konzept und erfüllen die Anforderungen einer SOA. (Vgl.25 S.8 f.)
Eine Technologie zur Realisierung Serviceorientierter Architekturen sind Web Services. Web Services verbinden Computer über das Internet miteinander, um Daten auszutauschen. Ein Web Service ist eine Software-Anwendung, die über das Internet mit Standardprotokollen (z.B. HTTP) angesprochen werden kann. Die Anwendung kann eindeutig über eine URI identifiziert werden und ist in der Lage, über XML-basierte Nachrichten mit anderen Anwendungen zu kommunizieren. Der Vorteil solcher Web Services besteht in dem einfachen Zusammenfügen lose gekoppelter, wiederverwendbarer Softwarekomponenten zu komplexeren Applikationen. Das World Wide Web Consortium liefert eine Definition für Web Services: „A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web- related standards.“26 Die Kommunikation mit einem Web Service findet meist über das XML-basierte SOAP-oder REST-Protokoll statt. Als Transportprotokoll für diese Protokolle wird häufig das weit verbreitete HTTP-Protokoll verwendet. Das Representational State Transfer Protokoll (REST) unterstützt die folgenden HTTP- Operationen:
GET: fordert die angegebene Ressource vom Server an. Die Operation hat keinen Einfluss auf den Zustand einer Ressource.
POST: fügt eine neue Ressource hinzu oder ändert eine bestehende Ressource. PUT: erzeugt eine neue oder ersetzt eine bestehende Ressource. DELETE: löscht eine Ressource.
Im Gegensatz zu SOAP-basierten Web Services veröffentlicht ein RESTful Web Service keine standardisierte Schnittstelle. Somit ist kein detailliertes Wissen über die Schnittstelle notwendig, um mit dem Service zu kommunizieren. Die Parameter für den Aufruf werden entweder in der URL oder als HTTP-Inhalt übertagen. Um einen SOAP Web Services zu beschreiben, wird die Web Service Description Language, kurz WSDL, verwendet. WSDL ist eine ebenfalls XML basierte Beschreibungssprache, die im Wesentlichen die drei folgenden Fragen beantwortet:
Was bietet der Web Service? D.h. welche Form müssen eingehende Nachrichten besitzen, welche Form besitzen die vom Web Service ausgehenden Nachrichten und welche Funktionen bietet der Web Service an?
Wie findet der Datenaustausch statt? D.h. welche Protokolle werden verwendet und wie werden die Nachrichten kodiert?
Unter welcher Adresse ist der Web Service erreichbar? (Vgl.27 S.118 f.)
Das Universal Description, Discovery and Integration Protocol (UDDI) beschreibt einen Verzeichnisdienst für Web Services, bei dem Anbieter ihre Dienste registrieren können und somit von Dienstnutzern gefunden werden können. Der Verzeichnisdienst kann mit den Gelben Seiten der Telekommunikationsbranche verglichen werden. (Vgl. 10 S. 16) Für weitergehende Informationen zu Serviceorientierten Architekturen, Web Services und ihre technische Realisierung wird auf 28 und 25 verwiesen.
2.1.4 Organisationsformen
Bei den Organisationsformen des Cloud Computing wird zwischen den Modellen Private und Public Cloud differenziert. Diese beiden Formen unterscheiden sich nicht in der technischen Realisierung, sondern in der Zugangsform. Eine „Private Cloud ist eine unternehmenseigene, von diesem Unternehmen selbst betriebene, Cloud-Umgebung. Die Ausführung der Cloud erfolgt auf unternehmenseigenen Ressourcen. Der Zugang ist beschränkt: nur für das Unternehmen selbst, autorisierte Geschäftspartner, Kunden und Lieferanten. Der Zugriff erfolgt in der Regel über ein Intranet (eine Virtual Private Network-Verbindung).
[...]
1http://www.nytimes.com
2http://www.nist.gov
3http://www.globus.org/toolkit
4https://www.xsede.org/tg-archives
-
-
-
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X.