Diese Frage habe ich mir vor ein paar Monaten gestellt. Ich wusste nicht, dass das Schreiben eines Buches über die SAP Business Technology Platform mich zu mehr Fragen führen würde, als mir lieb war. Einfache Fragen waren nicht so einfach zu beantworten. Ich konnte nicht auf jedes Thema im Buch eingehen, aber ich möchte meine Gedanken mit Ihnen teilen. Es war eine spannende Erfahrung, und ich hoffe, Sie finden es hilfreich.
In den letzten Jahren ist JavaScript dank Node.js zur „lingua franca“ des Webs geworden, sowohl für Front-End- als auch für Back-End-Anwendungen. Dies hat zu bedeutenden Projekten wie SAPUI5, Angular, React und Vue geführt, die die Produktivität der Entwickler verbessern und die Erstellung von schnellen, testbaren und erweiterbaren Frontend-Anwendungen ermöglichen. Doch obwohl es viele hervorragende Bibliotheken, Helfer und Tools für Node.js (und serverseitiges JavaScript) gibt, löst keines von ihnen das grundlegende Problem – die Architektur.
CAP bietet eine Out-of-the-Box-Anwendungsarchitektur, die es Entwicklern und Teams ermöglicht, testbare, skalierbare, lose gekoppelte und wartbare Anwendungen zu erstellen. SAP hat das Framework für die SAP BTP SAP Cloud Foundry Umgebung optimiert, ermöglicht aber auch andere Einstellungen.
Wenn Sie in Erwägung ziehen, eine Anwendung für SAP BTP mit dem SAP Cloud SDK zu erstellen, z. B. eine Erweiterung für SAP ERP, nehmen Sie sich etwas Zeit, um zu untersuchen, ob das SAP Cloud Application Programming Model (CAP) Ihre Bemühungen unterstützen kann. CAP ist ein Framework für die Erstellung robuster, skalierbarer serverseitiger Anwendungen. Es ermöglicht Entwicklern, Anwendungen lokal zu prototypisieren und sie dann mit den tatsächlichen Cloud-Diensten, die Sie nutzen möchten, zu verfeinern. Es ist für zwei Programmiersprachen verfügbar, JavaScript mit TypeScript-Unterstützung und Java. Die Core Data Services ergänzen diese Programmiersprachen.
CAP kombiniert Elemente von OOP (Object Oriented Programming), FP (Functional Programming) und FRP (Functional Reactive Programming). Hinter den Kulissen nutzt es robuste HTTP-Server-Frameworks wie Express, mit denen Sie unternehmenstaugliche APIs auf Basis von REST- und OData-Diensten erstellen können. CAP abstrahiert Details wie dieses gängige Node.js-Framework und gibt Ihnen die Möglichkeit, dieses Implementierungsdetail zu ersetzen, falls es bessere Optionen gibt. Diese Abstraktion für Flexibilität und Austauschbarkeit der verwendeten Dienste und Implementierungsdetails ist ein wesentliches Thema von CAP. Aber warum hat SAP überhaupt ein solches Framework entwickelt?
Warum ein SAP Cloud Application Programming Model?
Um den Ursprung des SAP Cloud Application Programming Model zu verstehen, muss man die Geschichte der klassischen SAP-Projekte verstehen. SAP-Systeme sind Standardsoftware. Das bedeutet, dass sie Funktionalitäten bieten, die viele Unternehmen in ähnlicher Weise benötigen. Sie können die Einstellungen dieser Funktionalitäten bis zu einem gewissen Grad anpassen. Doch um das System und die Prozesse an ihre Vorgehensweise anzupassen, greifen viele Unternehmen auf Erweiterungsmöglichkeiten zurück.
SAP hat die meisten Funktionen, die Sie zur Erweiterung eines SAP-Systems benötigen, in das System integriert. SAP ERP wird mit einer eigenen Erweiterungs-Workbench und der Programmiersprache ABAP ausgeliefert. Dies ermöglicht Entwicklern ein effizientes Arbeiten, da sie sich nicht um die üblichen Aspekte wie Authentifizierung und Einrichtung von Datenbanken kümmern müssen. Sie können die notwendigen Berechtigungen festlegen, aber das SAP-System bietet bereits die gesamte Benutzerverwaltung und Protokollierung. Es ist nichts, worüber die Entwickler nachdenken oder sich Gedanken machen müssten.
Aber wenn die Anzahl der Erweiterungen und Modifikationen zunimmt, werden Updates des SAP-Systems teuer und umständlich. Änderungen müssen manchmal erneut getestet werden, und die dafür benötigten Ressourcen sind knapp. Da ABAP-Ressourcen knapp sind, sind sie kostspielig. Mit der Zeit baut sich ein Wartungsstau auf und wächst.
Mit der Zeit haben sich die Anforderungen verschoben. Die Kunden verlangen mehr Funktionalität in kürzerer Zeit und mit besserer Benutzerfreundlichkeit. Das Web hat an Bedeutung gewonnen und SAP hat, mit einigen Zwischenschritten, SAPUI5 freigegeben, ein Framework zur Implementierung von Benutzeroberflächen mit den Fiori-Designrichtlinien von SAP unter Verwendung von JavaScript.
Auch die Fähigkeit, Teile eines Systems zu modularisieren und zu skalieren, ist wichtiger als früher. Schnelles Prototyping, Änderungen und Anpassungen sind Voraussetzung dafür.
Unter dem Motto „Keep the Core Clean“ empfiehlt SAP, keine tiefen Erweiterungen im Kernsystem selbst vorzunehmen. Angenommen, Firmen passen das System auf der Basisebene zu stark an. In diesem Fall wird es schwieriger, neue Anwendungen und Datenquellen anzubinden, ohne das System zu zerstören. Anpassungen sind gut, weil sie abgestimmte Effizienzsteigerungen bringen können. Dennoch müssen Sie dies auf einer höheren Ebene innerhalb der SAP-Plattform durch standardisierte Application Programming Interfaces (APIs) tun und nicht unten am Kernel. Wenn Sie all dies erfolgreich tun, können Ihre Modifikationen und Anpassungen mit einem „klaren Vertrag“ außerhalb des Kerns sitzen.
Ihr Unternehmen muss die anspruchsvollen Anforderungen Ihrer Kunden erfüllen. Die Entwickler müssen diese Anforderungen zuverlässig und effizient in Software umsetzen. Der Betrieb und das Hosting von Anwendungen in der Cloud ist die Zukunft. Der Trend in fast allen Branchen geht in Richtung Cloud, weil sie zur Beschleunigung des Geschäfts beiträgt.
Für die Anwendungsentwicklung benötigen Ihre Entwickler eine konsistente und optimierte Umgebung. Sie benötigen eine stabile Plattform, die die von Ihnen erwarteten Dienste bereitstellt, ohne die Nutzbarkeit anderer Anwendungen zu beeinträchtigen oder die Produktionsumgebung zu stören. Aber es geht nicht nur um Kosteneinsparungen und die Vereinfachung des IT-Betriebs. In der Cloud-Welt müssen Sie reaktionsschnell und agil sein und auf Veränderungen reagieren können.
Die Bereitstellung von Anwendungen für Ihre Kunden erfordert jedoch einen strategischen Ansatz bei der Entwicklung. In der Cloud müssen Sie sich nicht um die Bereitstellung oder Wartung Ihrer Infrastruktur kümmern. Stattdessen können Sie sich auf die Anwendungsentwicklung konzentrieren. Es dauert nicht lange, eine Anwendung zu entwickeln und sie dann auf ihrem Konto bereitzustellen. Die größte Herausforderung ist die Erstellung und Wartung dieser Anwendung. Dabei müssen Sie über Aspekte nachdenken, die früher bei ABAP als selbstverständlich galten. Woher kommt meine Benutzeridentität? Wie integriere ich die Autorisierung in die Anwendung? Welche Art von Logging-Framework können wir verwenden?
Sie brauchen ein stabiles Framework für die Entwicklung von Geschäftsanwendungen. Während der Lebensdauer einer Anwendung können viele Änderungen notwendig sein. Auch wenn wir hier über Architektur sprechen, ist eine Anwendung kein Gebäude, sondern ein Garten. Sie müssen die Software pflegen und warten, wenn Sie nicht wollen, dass sie verrottet.
Die Anwendung muss auch dann funktionieren, wenn Sie die zugrundeliegende Infrastruktur oder Geschäftslogik ändern wollen. App-Entwicklung ist komplex. Der Wechsel in die Cloud eröffnet Entwicklern auch moderne Programmiermodelle und verschiedene Sprachen, um innovative Anwendungen zu erstellen, die leistungsfähiger und skalierbarer sind.
Die Möglichkeit, eine Cloud-Anwendung mit geringem Aufwand bereitzustellen, ist ein überzeugendes Verkaufsargument. Aber die Bereitstellung in der Cloud ist mit einer Menge Komplexität verbunden. Außerdem kann die Erstellung einer produktionsreifen Anwendung in einer Cloud-Umgebung Entwickler einschüchtern.
Genau zu diesem Zweck hat SAP das Cloud Application Programming Model entwickelt. Kunden, die mit der Bereitstellung, Wartung und Entwicklung von SAP-Anwendungen vertraut sind, haben sich mit Fragen zur Entwicklung in der Cloud an SAP gewandt. SAP möchte mit dem Framework den Entwicklern die Nutzung von SAP-Diensten und -Systemen erleichtern und gleichzeitig die Vorteile der Cloud nutzen. Dazu gehören zum Beispiel SAP S/4HANA und SAP Business Technology Platform. Die Verwendung der Programmiersprachen Java und JavaScript bietet Unternehmen noch weitere Vorteile – das Ökosystem und die Ressourcen sind viel größer als bei ABAP.
Sie möchten sicherstellen, dass Ihr Projekt zur Entwicklung von Cloud-Anwendungen reibungslos abläuft und die Benutzer eine fantastische Erfahrung haben. Ihre Entwickler sind auf der Suche nach Anleitungen und Best Practices für die Entwicklung von Cloud-Anwendungen. Das SAP Cloud Application Programming Model führt Entwickler durch den Lebenszyklus von Cloud-Anwendungen – von der Idee bis zur Bereitstellung. Es ermöglicht Entwicklern, sich auf die Geschäftslogik der Anwendung zu konzentrieren und Anwendungen zu erstellen, die direkt auf die Geschäftsziele ausgerichtet sind. Außerdem ermöglicht es die Erstellung von Anwendungen, die schnell, sicher und skalierbar sind. Das Ziel ist es, durch die Erstellung von Anwendungen in Cloud-Umgebungen den Geschäftswert zu steigern.
Dabei sparen die Entwickler Zeit beim Schreiben von Code für wiederkehrende Aufgaben, wie z. B. das Speichern von Datenänderungen. So können sie skalierbare Software erstellen, um immer komplexere Anforderungen zu erfüllen und gleichzeitig die Time-to-Value drastisch reduzieren.
Die Entwickler können sich auf Ihre Geschäftsdomäne konzentrieren, so dass Sie schnell Anwendungen erhalten, die Ihrem Unternehmen nützen. Sie konzentrieren sich auf kritischere Aspekte Ihres Geschäfts und der Anwendungsentwicklung und halten gleichzeitig die Kosten für die Anwendungsentwicklung in Schach.
Das SAP Cloud Application Programming Model ist ein effektiver Weg, um Anwendungen und Services in der Cloud zu entwickeln. Es bietet Entwicklern die Möglichkeit, Anwendungen mit bewährten Best Practices schnell zu entwickeln, zu testen und bereitzustellen. Das Framework besteht aus einer Mischung aus weit verbreiteten Open-Source- und SAP-Tools und -Technologien.
Die ordnungsgemäße Entwicklung und das Testen von Anwendungen sind ein wesentlicher Bestandteil der Lieferung eines qualitativ hochwertigen Produkts. Außerdem ist die anhaltende Stabilität des SAP Cloud Application Programming Model entscheidend, um sicherzustellen, dass diejenigen, die auf SAP-Produkte angewiesen sind, einen einfachen und vorhersehbaren Weg haben, um von ihnen zu profitieren.
SAP CAP bringt die Interessen von Entwicklern und Unternehmen in Einklang, um Geschäftsziele zu erreichen und gleichzeitig die Entwicklungskosten zu senken. Dieser strukturierte Ansatz ermöglicht es den Entwicklern, sich auf die Geschäftslogik zu konzentrieren und die Komplexität zu reduzieren, während der Fortschritt rationalisiert wird. Die Vorteile liegen auf der Hand: weniger zu überwindende Hürden und weniger Zeitaufwand für sich wiederholende Aufgaben und die zugrunde liegende Technologie.
Die Bausteine des SAP Cloud Application Programming Model
Nachdem Sie nun den Kontext kennen, lassen Sie uns einen Blick auf die Bausteine werfen, die zum Erreichen dieses Ziels verwendet werden. Das SAP Cloud Application Programming Model ist ein Rahmenwerk von Sprachen, Bibliotheken und Werkzeugen für die Erstellung von Services und Anwendungen auf Unternehmensniveau. Es zielt darauf ab, Entwickler mit bewährten Best Practices und einer breiten Palette von Out-of-the-Box-Lösungen für wiederkehrende Aufgaben auf einen sicheren Weg zu führen.
CAP-basierte Projekte profitieren von einem Fokus auf die Anwendungsdomäne. Anstatt sich in übermäßig technische Disziplinen zu vertiefen, liegt der Fokus auf der Beschleunigung der Entwicklung und dem Schutz von Investitionen in einer Welt sich ständig verändernder Cloud-Technologien.
Das SAP Cloud Application Programming Model ist sowohl offen als auch meinungsbildend. Genau das ist eines der leitenden Designprinzipien. Das Modell bietet Anleitung, aber auch Freiheit; es unterstützt sowohl Open-Source- als auch SAP-Tools und -Technologien.
Neben Open-Source-Technologien setzt CAP vor allem auf Core Data Services (CDS) als universelle Modellierungssprache sowohl für Domänenmodelle als auch für Service-Definitionen. CDS ist das Rückgrat des Programmiermodells und bietet die Möglichkeit, Service-Definitionen und Datenmodelle, Abfragen und Ausdrücke in einfachen Objektnotationen zu erfassen.
Anschließend setzen die Entwickler die Geschäftslogik mit Hilfe von Service-SDKs und Laufzeiten um. Service-SDKs und -Laufzeiten für Node.js und Java bieten Bibliotheken für die Implementierung und Verwendung von Diensten, die mit CDS und generischen Provider-Implementierungen definiert wurden, die automatisch viele Abfragen bedienen. Sowohl für Java als auch für Node.js gibt es Bibliotheken, die es Entwicklern ermöglichen, Dienste über synchrone und asynchrone Schnittstellen (APIs) bereitzustellen und zu nutzen. Die SDKs beinhalten eine Out-of-the-Box-Integration mit untergeordneten Plattformdiensten, wie z. B. Authentifizierungs- und Anmeldeworkflows mit dem XSUAA-Service oder das On- und Off-Boarding von SaaS-Mietern auf dem SAP BTP.
Dank des White-Box-Ansatzes können Sie bei Bedarf auch auf die native Funktionalität der zugrunde liegenden Technologien zugreifen. Das Framework ist offen, weil es Ihnen die Wahl lässt. Sie können wählen, welche Technologien und Architekturmuster Sie verwenden möchten. Sie können die Teile des Programmiermodells auswählen, die am besten zu Ihren Entwicklungsanforderungen passen.
Aber es ist auch meinungsbildend, weil es Richtlinien, Best Practices und Werkzeuge bereitstellt, die es Ihnen ermöglichen, einem empfohlenen Ansatz zu folgen. SAP hat das Programmiermodell erstellt, um den besten Weg für die Cloud-Entwicklung zu finden.
Das Framework wurde von SAP entwickelt und ist noch nicht open-sourced, aber es bietet erstklassige Unterstützung für SAP-Services und -Tools. Sie können SAP HANA als Datenbank und SAP Business Application Studio (BAS) als IDE verwenden. Für beide Produkte gibt es Out-of-the-Box-Funktionen, die Ihr Entwicklungsprojekt beschleunigen können.
Aber, CAP verlangt nicht, dass Sie einen dieser Dienste oder Produkte verwenden. Es gibt keine Einschränkung. Es gibt keinen vorgeschriebenen Pfad, dem Sie bei diesem Programmiermodell folgen müssen.
Sie können SAP Fiori Elements verwenden, um Ihre Benutzeroberflächen nach den Richtlinien von SAP Fiori zu erstellen, aber Sie können auch mit alternativen Technologien oder Richtlinien arbeiten. Es geht nicht darum, Sie zu zwingen, das eine oder das andere zu verwenden. Es geht darum, Ihnen die Freiheit der Wahl zu geben.
Sie könnten auch PostgreSQL als Datenbank Ihrer Wahl verwenden, Visual Studio Code als IDE nutzen und Benutzeroberflächen mit React erstellen. Es gibt offizielle Erweiterungen für VS Code. Allerdings gibt es eine Einschränkung – wenn Sie PostgreSQL als Datenbank Ihrer Wahl verwenden, benötigen Sie eine Community-Erweiterung, und SAP bietet derzeit keinen Support für diese Community-Erweiterungen. Wenn Sie Hilfe von SAP wünschen, sind Sie auf die offiziell unterstützten Optionen beschränkt.
Es gibt Out-of-the-Box-Funktionen für SAP-Technologien, wie z. B. SAP Event Mesh, die Ihre Zeitpläne beschleunigen können. Sie müssen diese nicht verwenden, aber Sie können sie nach Belieben kombinieren. Das Programmiermodell ist unaufdringlich und versucht, frei von Annahmen zu bleiben. Ein Ziel ist es, redundanten Code zu reduzieren, der unabhängig von der gewählten Architektur oder Methode gleich bleibt.
Das Framework erlaubt derzeit die Erstellung von APIs mit reinen REST-Diensten oder OData-Diensten, einer speziellen Untermenge von REST. Sie können also derzeit einen OData-Service mit CDS definieren und ihn mit den generischen Service-Implementierungen „out of the box“ laufen lassen. Da die Implementierungen jedoch austauschbar sind, könnte es in Zukunft auch andere Optionen wie GraphQL unterstützen.
Und nicht zuletzt ist das Programmiermodell plattformunabhängig. Sie können Anwendungen auf eine Art und Weise erstellen, die unabhängig von der zugrunde liegenden Cloud-Infrastruktur ist. CAP erreicht dies durch einen API-zentrierten Ansatz, der eine feste Verdrahtung mit einer bestimmten Technologie vermeidet.
Sie könnten eine SQLite-Datenbank lokal verwenden, um die Anwendung schnell zu entwickeln und Ihren Service, der immer noch lokal läuft, mit der SAP HANA DB verbinden, die in Ihrem SAP BTP-Subaccount läuft.
Mit CAP können Sie also Technologien wählen, von der Entwicklungssprache über UI-Technologien bis hin zu Datenbanken Ihrer Wahl. Sie können Ihre Architekturmuster von Multi-Tenancy und Microservices bis hin zu CQRS und Event Sourcing wählen.
Das Framework unterstützt einige dieser Auswahlmöglichkeiten out of the box – andere müssen im Rahmen eines Projekts implementiert werden. Dabei gibt CAP Ihnen Anleitung und Unterstützung für sich wiederholende Aufgaben, ohne Sie einzuschränken. Sie können CAP als Ganzes nutzen oder nur die Teile, die Ihnen zusagen.
Lassen Sie uns rekapitulieren: Es gibt Unterstützung für SAP-Technologien, aber es wurde auch so konzipiert, dass es sich mit alternativen Lösungen integrieren lässt. CAP ist frei von Annahmen. Es hilft Ihren Entwicklern, redundanten Code zu vermeiden, indem es Konventionen über die Konfiguration stellt und die feste Verdrahtung mit einer bestimmten Plattform durch übergeordnete APIs vermeidet. Auf diese Weise ermöglicht Ihnen das Framework, veraltete Technologie einfach durch eine moderne zu ersetzen.
Fazit
Was ist also das SAP Cloud Application Programming Model?
Es ist ein Framework von SAP, mit dem Sie schneller Geschäftswerte liefern können, indem Sie Ihren Entwicklern erlauben, sich auf die Geschäftslogik zu konzentrieren. CAP spart Ihnen Geld, indem es den Aufwand für die Programmierung der Anwendung und wiederkehrende Aufgaben reduziert und die Anbindung an SAP- und potenzielle Drittanbieterdienste erleichtert. Es schützt Ihre Investitionen, indem es die zugrundeliegende Technologie austauschbar macht und es Ihnen ermöglicht, mit Cloud-Technologien Schritt zu halten.
Das SAP Cloud Application Programming Model ist unser Framework der Wahl, um moderne Side-by-Side-Erweiterungen für SAP-Systeme oder Anwendungen auf SAP-Plattformen zu erstellen.
Was denken Sie darüber? Verwenden Sie lieber RAP mit ABAP oder ein anderes Open-Source-Framework?