ASP, Webservices, SOA, Cloud Computing – Eine Abgrenzung

In den letzten Jahren sind in der Informationstechnik relativ viele neue Schlagwörter (engl. „Buzzwords“) aufgetaucht, deren Bedeutung oft nicht klar oder aber nicht fest definiert ist. Um diese – zumindest teilweise – neuen Entwicklungen einzuordnen, soll hier eine kurze Abgrenzung der einzelnen Begriffe erfolgen.

Application Service Providing

Application Service Providing (ASP) ist stark verwandt mit Software as a Service (SaaS), allerdings ist der Begriff weitaus älter. Die Idee entstand schon Ende der 90er-Jahre des vergangenen Jahrhunderts. Auch ASP bezeichnet das Anbieten von Software über das Internet. Der Unterschied zu SaaS besteht jedoch darin, dass es sich nicht um mandantenfähige („multi-tenant“) Standardsoftware handelt, sondern dass die gehostete Software eine Spezialentwicklung für einen einzelnen Kunden ist („single-tenant“) [1].

Die Idee hat sich allerdings bisher nicht richtig durchgesetzt, jedoch wird das Wachstum auf diesem Markt positiv beurteilt. Der Hauptgrund dafür ist die inzwischen fast flächendeckende Verfügbarkeit von Breitbandanschlüssen [2].

Webservices

Webservices dienen der Schaffung einer verteilten Softwarearchitektur. Das bedeutet, dass eine Anwendung in einzelne Teile zerlegt wird, die sich an unterschiedlichen Orten befinden können. Die Komponenten sind nur lose über Verbindungen und Protokolle gekoppelt [3].

Die Idee des Webservices ist nicht neu. Vorgänger waren z.B. CORBA oder DCOM [4]. Im Unterschied zu diesen Technologien setzen Webservices jedoch auf anerkannte Standards wie z.B. XML, SOAP und HTTP [5]. Durch diese hohe Standardisierung können Webservices völlig ohne Nutzerinteraktion funktionieren. Sie werden in ein Programm integriert und laufen „dann – in der Theorie – automatisch“ [6].

Service-orientierte Architekturen

Service-orientierte Architekturen (SOA) sind ein Strukturmuster, das den Sinn hat, die Abhängigkeiten zwischen den Elementen eines verteilten Softwaresystems zu reduzieren [7].

Die einzelnen Services, bei denen es sich meistens um Webservices handelt, sind voneinander unabhängig. Sie werden durch einen sogenannten Workflow orchestriert. Das heißt, es werden mehrere Services zusammengefasst und von einer zentralen Stelle aus koordiniert [8].

Die Services werden durch den Dienstanbieter in ein Dienstverzeichnis eingebracht und dort gelistet. Der Dienstnutzer kann dann durch eine Anforderungsspezifikation eine Suchanfrage an das Dienstverzeichnis schicken, woraufhin dieses ihm die Adresse für den Zugriff auf den jeweiligen Dienst beim Dienstanbieter liefert. Somit ist eine lose Koppelung zur Laufzeit möglich [9].
Dieser Ablauf wird im sogenannten SOA-Dreieck dargestellt (siehe Abbildung 1).

Abbildung 1: SOA-Dreieck (nach Gómez, J. (2008): Serviceorientierte Architektur)

Cloud Computing

Cloud Computing ist der Überbegriff für das Auslagern von Software oder IT-Infrastruktur zu einem Dienstleister. Die Leistungen werden über das Internet bezogen.
Zum Cloud Computing gehören neben Software as a Service unter anderem noch Platform as a Service (PaaS) und Infrastructure as a Service (IaaS) [10]. Sie gehören damit zum Everything as a Service-Stack [11].

Bei PaaS handelt es sich um eine Entwicklungsplattform, die ein Anbieter betreibt. Die Anwendungen, die darauf betrieben werden, werden nicht wie bei SaaS vom Anbieter selbst, sondern von dessen Kunden entwickelt [12]. Ein Anbieter von PaaS ist z.B. Google mit der Google App Engine. Auf dieser Plattform ist es möglich, in Python oder Java geschriebene Programme zu betreiben.

IaaS bedeutet das Beziehen von IT-Infrastruktur über das Internet. Der Kunde mietet beim Anbieter z.B. einen virtuellen Server. Anders als beim klassischen Mietmodell für Server oder virtuelle Server ist der via IaaS gemietete Server jedoch quasi beliebig und je nach Bedarf („on demand“) skalierbar. Grenzen werden nur durch die Software, das heißt meistens das Betriebssystem, gesetzt. Das hat den Vorteil, dass ein Server „mitwachsen“ kann, wenn ein Unternehmen mehr Leistung benötigt, z.B. weil es schnell wächst, weil es eine zusätzliche Software auf dem Server installiert hat oder weil temporär – z.B. wegen einer neuen Produktveröffentlichung – mit einer höheren Last zu rechnen ist. Die Abrechnung erfolgt z.B. nach verbrauchtem Transfervolumen, nach CPU-Zeit und bzw. oder nach belegtem Speicherplatz [13]. Der bekannteste Anbieter von IaaS ist Amazon mit der Elastic Compute Cloud (E2C).

Abbildung 2 erläutert die Beziehung zwischen IaaS und SaaS bzw. PaaS.

Abbildung 2: Beziehung zwischen IaaS und SaaS bzw. PaaS (nach Eymann, T. (2008): Cloud Computing)

Abbildung 2: Beziehung zwischen IaaS und SaaS bzw. PaaS (nach Eymann, T. (2008): Cloud Computing)

Quellen

[1] Grobman, J. (2008): ERP-Systeme On Demand. Chancen, Risiken, Anforderungen, Trends, S. 15 f.

[2] Meyer, O. (2008): Aktuelle vertrags- und urheberrechtliche Aspekte der Erstellung, des Vertriebs und der Nutzung von Software, S. 207

[3] Burbiel, H. (2007): SOA & Webservices in der Praxis, S. 21

[4] ebenda

[5] Melzer, I. (2007): Service-orientierte Architekturen mit Web Services: Konzepte – Standards – Praxis, S. 54

[6] Hauser, T; Löwer, U. (2004): Web Services – Die Standards, S. 12

[7] Gómez, J. (2008): Serviceorientierte Architektur

[8] Fischer, H.; Fleischmann, A.; Obermeier, S. (2006): Geschäftsprozesse realisieren: Ein praxisorientierter Leitfaden von der Strategie bis zur Implementierung, S. 119

[9] Gómez, J. (2008): Serviceorientierte Architektur

[10] Eymann, T. (2008): Cloud Computing

[11] Jeffery, C. (2009): The Strategic Treasurer: A Partnership for Corporate Growth, S. 245 ff.

[12] Curran, R. (Hrsg.); Chou, S. (Hrsg.); Trappey, A. (Hrsg.) (2008): Collaborative Product and Service Life Cycle Management for a Sustainable World, S. 68

[13] Newman, A.; Thomas, J. (2008): Enterprise 2.0 Implementation: Integrate Web 2.0 Services into Your Enterprise, S. 62 ff.

Bei diesem Artikel handelt es sich um einen leicht abgeänderten Auszug aus einer Projektarbeit, die ich im Rahmen meines Studiums angefertigt habe.