Was hat uns bisher die “Cloud” gebracht? Viele verschiedene Plattformen, viele neuen Dienste und Dienstleistungen und ein neues Verständnis davon, was das Netz leisten kann und wo es sich hin entwickeln kann und teilweise wird.
Was dabei bisher allerdings, wie in anderen sich entwickelnden Zweigen auch, zu kurz kommt, ist die Möglichkeit, die Dienste zu kombinieren. Jeder Anbieter hat viel zu viel damit zu tun, neue Funktionen hinzu zu fügen, anstatt die Interoperabilität zu verbessern. Das ist aus Anbietersicht auch verständlich, allerdings bietet es nicht den höchstens Kundennutzen.
Was die “Cloud-Adoption” noch viel stärker vorantreiben würde, wäre eine stärkere Komponentenorientierung der einzelnen Dienste, sodass man Anwendungen erstellen kann (Mash-Ups), die sich Funktionen anderer Dienste zu Nutze machen.
Early Adopters
Erste (erfolgreiche) Ansätze gibt es, wie beispielsweise SlideShare. Diese verwenden die Amazon Infrastruktur AWS, um Rechenkapazität und Datenspeicherung zu ermöglichen.
Das ist ein guter Anfang, stellt aber nur Infrastruktur bereit. Nicht jedoch werden tatsächlich Daten verwendet.
Bisherige Sicht
Wie sieht die Wolke denn momentan aus? Hier eine (natürlich nicht vollständige) Übersicht, was im Moment so alles umher geistert und wie man es einteilen kann:
Wie man sehr schön sehen kann, gibt es diverse Anwendungen, die unterschiedliche Funktionen bereit stellen. Diesen stehen wiederum unterschiedliche Dienste gegen über.
Die Komponenten-Sicht
Am Beispiel einer Anwendung für die Fotoverwaltung kann man sich eine Komponentenarchitektur wie folgt vorstellen:
Wie muss man sich so eine Architektur vorstellen? Es bedarf einer zentralen Koordinationsstelle die die einzelnen Funktionsbausteine kennt und in der Lage ist, diese zu vermitteln (Orchestrator). Eine Anwendung fragt dann bei einem Orchestrator-Dienst ab, welche Dienste für eine konkrete Funktionaltität zu verwenden sind. Die Authorisierung wird nun über einen Dienst vorgenommen. Anschließend erfolgt die Abfrage des Funktionsbausteins. Dieser wurde durch den Orchestrator geliefert. Der Funktionsbaustein hat wiederum bestimmte dynamische Konfigurationen. Diese werden ebenfalls über den Orchestrator abfragt. Und so weiter und so fort.
Fazit
Die Möglichkeiten, die sich dadurch ergeben würden, dürften die Verbreitung und Verflechtung der Dienste deutlich vorantreiben. Bis es tatsächlich dazu kommt, muss aber noch sehr viel geleistet werden. Das wichtigste wäre eine Standardisierung von Funktionsbausteinen (Fotoverwaltung, Datenspeicherung, Dokumentenbearbeitung, et cetera). Für diese bedarf es einer einheitlichen Programmierschnittstelle (API). Wenn sich die Diensteanbieter auf diese Schnittstellen einigen können und diese implementieren, können die Anwendungsentwickler transparent vom Nutzer diese austauschen und es entsteht ein gesunder Wettbewerb um Funktionalität, Konfigurierbarkeit und Service. Davon würden unterm Strich alle profitieren.
Und was mir dabei einfällt: Sowas ähnliches hatte Sun schon einmal versucht – das nannte ich soweit ich mich entsinne JEE (Java Enterprise Edition) … hat dort aber nicht so ganz funktioniert (oder ich wüsste gerne Beispiele).