Stateful und Stateless Neptune Apps
Mobile Applikationen werden häufig in stateful und stateless eingeteilt. Was das eigentlich bedeutet, wie Sie diese Unterscheidung bei Neptune vornehmen und was das für Ihre App bedeutet, zeige ich Ihnen in diesem Artikel.
Begriffsklärung
Die Mehrzahl mobiler Applikationen und Web-Services sind stateless – so auch SAP Fiori Apps. Doch was heißt das eigentlich – zustandslos zu sein?
Im konkreten Fall beschreibt stateless einen Zustand, in dem die Applikation nicht an den Context gebunden ist. Der User-Context wird also jedes Mal terminiert und neu erstellt, wenn ein HTTP-Request auf dem Internet Communication Framework (ICF) eingeht. Somit blockieren diese Applikationen nur dann Ressourcen auf dem ICF, wenn eine Anfrage abgearbeitet wird. Ist die Verarbeitung abgeschlossen, werden die Ressourcen freigegeben und stehen anderen Requests zur Verfügung. Ein weiterer Vorteil ist das einfachere Debugging, da die einzelnen Abschnitte der Businesslogik nicht auf einem spezifischen Context basieren.
Im Gegensatz dazu beenden stateful Apps den User-Context nicht. Sie werden für die gesamte Dauer der Anwendungssession vorgehalten, sodass sämtliche Interaktionen in einem einzigen Context passieren. In direkter Konsequenz sind auch alle User-Daten für die gesamte Dauer der Anwendung verfügbar. Dadurch kommt es jedoch zu einem starken Anstieg der möglichen parallellaufenden Sessions auf dem SAP Web Application Server.
Stateful Apps mit Neptune
Wenn Sie eine App mit Neptune erstellen, ist diese zunächst zustandslos. Sie haben jedoch die Möglichkeit auch eine stateful-App zu entwickeln. Damit unterscheidet es sich massiv von den anderen Produkten am Markt, da dies – zumindest aktuell – ein Alleinstellungsmerkmal ist.
Probleme und Limitierungen
Auf den ersten Blick mag Statefulness den Entwicklungsprozess massiv vereinfachen. Auf den zweiten Blick wirft es jedoch einige Probleme auf, die es zu bedenken gilt.
- Das offensichtlichste Problem von stateful-Apps ist die Performance. Diese Applikationen sind nicht per se langsam, laufen aber dennoch Gefahr durch die erhöhte Serverbelastung wahre Performancekiller zu werden.
- Die Einbettung in das Neptune Launchpad ist nicht möglich, da sowohl das Neptune Launchpad, als auch das Menu zustandslose Applikationen sind und eine Mischung beider Eigenschaften nicht möglich ist.
- Die Einbettung von stateful-Apps in das SAP Fiori Launchpad ist nicht möglich
- Verwendet Ihre Applikation der Frontend/Backend Split über RFC kann Sie nicht gleichzeitig stateful sein
Wann sind stateful Apps sinnvoll?
Stateful Apps sind genau dann sinnvoll, wenn mit Sperrobjekten gearbeitet wird. Hier kann durch die Verwendung dieses Konzeptes sichergestellt werden, dass die Sperren auch greifen.
Haben Sie schon Berührungspunkte mit stateful-Apps gehabt oder gerade eine Situation, in der Ihnen die Verwendung einer stateful-App sinnvoll erscheint? In den Kommentaren freue ich mich über Ihre Gedanken und Meinungen zum Thema.