Ob wir mit Kunden, Journalisten oder anderen, aus der Handelsbranche sprechen, manchmal haben wir das Gefühl, dass doch etwas Verwirrung herrscht, wenn es um die Terminologie geht. Über ein Standard-Shopsystem zu reden, ist ziemlich simpel. Aber was genau verbirgt sich hinter den Begriffen “Framework” und “Plattform”? Und wo ist der Unterschied? Wie so oft gibt es keine klaren, allgemeingültigen Definitionen, die einer wissenschaftlichen Prüfung standhalten würden. 
Wir versuchen mal, etwas Licht ins Dunkel zu bringen:

Framework

Ein Framework könnte man mit einem Skelett vergleichen, an das aber noch ein bisschen „Fleisch“ muss. Dieses “Fleisch” ist in der Regel eine bestimmte Anwendung, die mit Teilen des Skeletts verbunden ist und diese nutzt. Die eigentliche Arbeit, das heißt das Auffüllen der Zwischenräume und das Verbinden der einzelnen Teile, übernimmt dann die Anwendung.

In der Programmierung ermöglichen Frameworks den Programmierern, sich auf die eigentlichen Aufgaben zu konzentrieren, anstatt ihre Zeit damit zu verschwenden, das Rad neu zu erfinden. In der Regel werden Frameworks mit einer Reihe von vordefinierten Funktionen und Klassen ausgeliefert. Der Vorteil ist, dass Programmierer dann – wenn sie beispielsweise Spring (Java) oder Symfony (PHP) verwenden – nicht mehr allzu viel über Dinge wie Persistenz, Routing und Sitzungsmanagement nachdenken müssen. Das übernehmen standardisierte Komponenten des Frameworks. Arbeitet man mit einem solchen Framework, wird zuerst der komplette Quellcode heruntergeladen und in einer bestimmten Umgebung installiert – bei PHP-Frameworks zum Beispiel in einem LAMP-Stack. Dann beginnt man, den individuellen Code zu schreiben. Ist die Anwendung dann ‘marktreif’, muss sie noch in eine Hosting-Umgebung gebracht werden.

Beispiele für Frameworks in der Commerce-Branche sind SAP Hybris (Java) und Spryker (PHP).

Plattform

Im Gegensatz zu einem Framework bringt eine Plattform sowohl die Hardware als auch die Software mit, die für den Betrieb einer Anwendung benötigt werden – entweder als eigenständiges Programm oder eines, das auf einem Framework aufsetzt. Meistens kommt das ganze Paket als Platform-as-a-Service (PaaS). Das bedeutet aber, dass die Code-Basis der Plattform-Software selbst nicht geliefert oder lizenziert wird. Vielmehr ist sie Teil einer in der Cloud gehosteten Lösung, die über APIs oder GUIs abgerufen werden kann.

Typischerweise werden Plattformen als skalierbare, ‘multi-tenancy’-Systeme gebaut. So können viele Nutzer gleichzeitig darauf zugreifen, was wiederum Skaleneffekte mit sich bringt, sodass Services zu einem erschwinglichen Preis angeboten werden können. Entwickler können dann Plattformen wie force.com oder Google App Engine nutzen, um eigene Anwendungen zu bauen und zu betreiben. In vielen Fällen sind diese Anwendungen “schlanker” als eigenständige Programme, da der Großteil der Geschäftslogik auf der Plattform existiert.

Entscheidet man sich für eine Plattform, arbeitet man in der Regel mit einer zweiteiligen Struktur: Auf der einen Seite hat man eine spezifische, gehostete Anwendung, die den gesamten Code für genau dieses Projekt enthält. Auf der anderen Seite gibt es die Plattform in der Cloud, die Daten erhält, berechnet und gemäß den Plattform-Algorithmen an die Anwendung zurückspielt. Entwickler könnten die Kommunikation zwischen beiden Komponenten entweder über direkte API-Aufrufe oder ein SDK (siehe unten) gestalten, um ihre eigentliche Arbeit zu erledigen.

Beispiele für Plattformen im Bereich E-Commerce sind Mozu und commercetools.

SDK

Um die Arbeit mit einer Plattform noch effektiver zu gestalten, stehen den Entwicklern meist ein oder mehrere Software-Development-Kits (SDKs) in verschiedenen Programmiersprachen zur Verfügung. In unserem Fall, also bei der commercetools-Plattform, bestehen diese SDKs in der Regel aus einer Reihe von Klassen, Utilities für das Debugging und Sample-Code. Das erleichtert den Bau einer Plattform-Anwendung doch um einiges.

Wie bei Frameworks (siehe oben) laden Entwickler diese SDKs auf ihr System herunter und beginnen dann dort zu arbeiten. Im Gegensatz zu einem Framework hat ein SDK jedoch keinen eigenen Nutzen. Es ist nur dann hilfreich, wenn Anwendungen für eine bestimmte Software oder Plattform entwickelt werden. Mit anderen Worten: ein SDK ist nur ein Werkzeug, um eine Anwendung zu schreiben, während ein Framework selbst zum Teil einer Anwendung wird.

Wir hoffen, mit diesem kleinen Ausflug in die Welt der Fachbegriffe konnten wir euch ein bisschen mehr Klarheit verschaffen, wenn es um die Unterschiede zwischen Plattform und Framework geht. Brennt euch dazu noch was auf der Seele? Dann lasst uns gerne einen Kommentar da.