Softwareentwicklung im Zeitalter der "As a Service"-Plattformen, Teil 1

Mit der Einführung von "As a Service"-Projekten geht ein grundsätzlicher Wandel für IT-Dienstleistung und Entwicklung von Softwaresystemen einher. Entwickler müssen sich nicht mehr um Infrastruktur, Software und Verteilung der Ergebnisse kümmern.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 12 Min.
Von
  • Andreas Holubek
  • Georg Spengler
Inhaltsverzeichnis

Mit der Einführung von "As a Service"-Projekten geht ein grundsätzlicher Wandel für IT-Dienstleistung und Entwicklung von Softwaresystemen einher. Anwender müssen keine Software mehr installieren, und auch die Wartung entfällt. Entwickler müssen sich nicht mehr um Infrastruktur, Software und Verteilung der Ergebnisse kümmern. Der Artikel gibt einen Einblick die Architektur eines "As a Service"-Universums und setzt sich mit dem Kosten-Nutzen-Verhältnis auseinander.

SaaS (Software as a Service) kennzeichnet ein Prinzip zur Verteilung und Nutzung von Software. Anwender mieten dabei Software, wobei unter der Miete nicht nur die tatsächliche Anwendung gemeint ist, sondern vielmehr auch die Dienstleistung rund um den Betrieb und die Wartung der Anwendung. Der Nutzer erhält bei SaaS eine komplette Infrastruktur. Genau genommen mietet er jedoch einen kleinen Teil aus einer größeren Infrastruktur, denn er teilt sich Dinge wie CPU, Rechenleistung oder Speicherplatz mit anderen Anwendern – ohne dass das negativen Einfluss auf die Arbeit hätte.

Mit diesem einführendem Wissen als Grundlage lassen sich die folgenden wichtigen Eigenschaften einer SaaS-Architektur beschreiben:

  • Im Bereich von Unternehmens-Software, also Systemen, die eine fortwährende Erreichbarkeit garantieren, steht die Verfügbarkeit an prominenter Stelle. Anbieter von SaaS-Plattformen müssen den Zugriff auf Kunden- und Vertriebsdaten von fast überall und zu jeder Zeit gewährleisten.
  • Mit der Größe des Unternehmens wächst der Anspruch an die Skalierbarkeit. So müssen sie jederzeit eine entsprechende Reaktionsgeschwindigkeit des Systems einfordern. Das bedeutet, dass unabhängig von der Anzahl der Anwender die gefühlte Geschwindigkeit des Systems gleich bleibt. Der Anbieter eines SaaS-Angebots setzt das beispielsweise durch Rechnercluster um und kann davon abhängig die Last an einzelne Kunden weitergeben.
  • energieeffizientes Arbeiten ("Green Computing"): Ähnlich wie bei der Skalierbarkeit kann der SaaS-Anbieter die Kapazität dynamisch auf die einzelnen Nutzer anpassen. Während die einen die Last herunterfahren, weil Feierabend ist, können andere die Ressourcen voll nutzen. Eine optimale Auslastung und Energieeffizienz ist das Resultat.
  • Bei SaaS wird die Sicherheit eines Systems an einer Stelle zentralisiert, zudem lassen sich nationale und internationale Standards und Normen berücksichtigen.
  • Ausfallsicherheit: Durch die Zentralisierung der Ressourcen in großen Rechenzentren sind die Schutzmaßnahmen bei Ausfall eines Systems leichter gegeben.
  • SaaS setzt durch die Vielfalt der Anwender besonders hohe Anforderungen an die Schnittstellen des Systems voraus. Deshalb ist es nicht weiter verwunderlich, dass nahezu alle Angebote über eine Webservices-Schnittstelle verfügen.
  • Updates und Wartung: SaaS-Anwender installieren keine Software und keine Clients auf dem Rechner. Ihr Zugang erfolgt über den Browser, und alle nutzen die gleiche Softwarebasis des Anbieters. Eine Wartung entspricht demnach dem Austausch oder der Erneuerung der Software auf Seiten des Anbieters. Der Nutzer bekommt davon lediglich im Anschluss etwas mit. Jede Erweiterung steht für alle Anwender zeitgleich zur Verfügung.

Ein typisches Customer Relationship Management (CRM) als SaaS (Salesforce.com) (Abb. 1)

Um Platform as a Service (PaaS) zu verstehen, ist nun auf die Seite der Entwicklung zu wechseln. Aus Sicht des Architekturstandpunkts ist eine Menge ähnlicher Systeme zu programmieren ist (CRM, beliebige Verwaltungen ...), denn die Anwendungen haben im Prinzip einen ähnlich aufgebauten Kern. Statt ihn jedes Mal neu zu entwerfen und zu implementieren, wurde er in eine generische Form gebracht und steht nun allen SaaS-Anwendungen gleichermaßen zur Verfügung. Wohlgemerkt, bezogen auf eine konkrete Plattform. Es existieren schon einige Plattformen, alle mit ihren jeweiligen Vor- und Nachteilen. Amazon Web Services, Microsofts Windows Azure und Force.com mögen als Beispiele hierfür genannt sein. Bei ihnen findet man unter den Anwendungen neben den Klassikern CRM und Vertriebsunterstützung auch Projektmanagement, Urlaubsplanung, News und vieles andere mehr.

Die SaaS-Anwendungen, die gerade entstanden und noch im Entstehen sind, bilden schließlich eine große Serviceinfrastruktur im Netz. Folgerichtig spricht man deshalb auch von Infrastructure as a Service (IaaS). Anstelle eigener Hard- oder Software im Keller zielt das Prinzip auf die Miete der benötigten Teile und die anschließende Verknüpfung derselben über definierte Schnittstellen. Hierbei haben standardisierte Webservices ebenfalls einen positiven Effekt auf die Integration unterschiedlicher Systeme.