BTP, SCP, CAP, RAP… OMG
R/2, R/3, ECC.. those were the days, when the SAP-life was “simple and easy”. Ok, not really simple and easy, however at least familiar and clearly laid out. However in recent days things are getting… complicated.
There are several “new” buzz-words like BTP, SCP, RAP, CAP. SAP products are becoming more numerous and the rebranding is making my head spin. Questions arise like, what’s this all about? What do I need to learn? Coming from ABAP and SAP BW I wonder, what’s useful for me and how I can facilitate the SAP Business Technology Platform (BTP): It’s a personal journey to get the overview on the SAP technological ecosystem up to date. And I welcome feedback, corrections and other thoughts along the way. Let’s get started…but be aware: this is a descent down the rabbit hole.
What is BTP?
On the SAP BTP Product Page this question is answered with “SAP BTP is the platform for the Intelligent Enterprise. Customers can achieve agility, business value, and continual innovation through integration, data to value, and extensibility of all SAP and third-party applications and data assets.” (SAP BTP Homepage)
If you take a step back, this becomes a little clearer: At SAP TechEd 2020, SAP announced the SAP BTP, which is supposed to be the central, business-oriented technology platform for your SAP and 3rd party applications. Ok, but what does that mean? To clarify this, I’ll try two answer 3 questions:
(1) What are the building blocks of SAP BTP?
(2) What can SAP BTP be used for?
(3) What’s the context of SAP BTP?
What are the building blocks of SAP BTP?
SAP BTP consists of 4 technology portfolios:
(1) Database and Data Management, which includes – among others – SAP HANA and SAP HANA Cloud as it’s technological basis.
(2) Analytics, which includes “SAP Analytics Cloud” (SAC), SAP Data Warehouse Cloud, and Business Objects BI. The goal is to deliver cross-application analytical insights throughout processes. To this end, for example, SAC is baked into several products, such as S/4 HANA (Jürgen Müller, 2020, Business Technology Platform Highlights at SAP TechEd).
(3) Application Development and Integration (includes SAP Integration Suite, SAP Extension Suite and SAP Process Orchestration) and last, but not least
(4) Intelligent Technologies (eg. SAP Conversational AI, Internet of Things, ML).
Image – SAP BTP Overview – Source: SAP SE
As the name suggests it’s a platform to “integrate data and processes”. SAP’s goal seems to integrate SAP Software with 3rd party tools, shifting the focus from tools to processes. “Bring your own programming language” (be it ABAP, Java, Python, whatever). Use whatever infrastructure you want (OnPrem, Hyperscaler, Cloud Foundry) – SAP BTP is about to be a language-agnostic, tool-independent, multicloud-based, common base of your business-processes – with the ultimate goal of “turning data into value” (Müller Jürgen 2021). Check out the blog post “A Robust Platform for RISE with SAP” by CTO Juergen Mueller for first hand insight.
The SAP TechEd 2020 talk about the “Architecture Vision and Strategy behind SAP BTP” (Michael Ameling, 2020) mentions some key take-aways. BTP’s come to unify the plethora of technology stacks by providing a unified bus, which is event-driven and utilizes APIs (platform-driven integration instead of Point-toPoint integration):
(a) it’s an event-driven architecture and extensible through APIs (api.sap.com)
(b) at the core is the “SAP One Domain Model” – one common data model along the platform-as-a-service (accessible through SAP Graph – the unified API Layer)
(c) integration is the target (this includes a seamless user experience (like the same “Look and Feel”), as well as data-harmonization and alignment of data and domain models across all applications (“SAP One Domain Model”)
(d) the platform should support development agility and speed
(e) it utilizes the multicloud (hyperscaler)
(f) Hybrid-scenarios are supported (Integration of S/4 on Prem)
What can SAP BTP be used for?
So, what can I do with SAP BTP? – Target is to “build and extend SAP applications quickly. It is a vital part of the transition to the Intelligent Enterprise” (SAP 2021): SAP mentions three scenarios:
“SAP Integration Suite” (formerly Cloud Platform Integration Suite) can be used to integrate SAP and Non-SAP application using BTP as a “Hub”. The integration is done via APIs (API Business Hub), or Open Connectors – This allows for loosely coupled architectures, based on APIs, events and messaging. In this way SalesForce, ServiceNow or Sharepoint, for example, can be integrated into one Fiori-App or into SAC. A hands on simple example can be found here: Youtube, where a CRM is connected to Google Drive through “Open Connectors”.
Image: Integration P2P vs. Platform Source: own, based on Michael Ameling, 2020
Further readings regarding the integration-scenario are:
– Open SAP course “Simplify Integration with SAP Cloud Platform Integration Suite”
– Help-Page: help.sap.com – SAP Cloud Integration
– Starter-Tutorial on developers.sap.com: https://developers.sap.com/mission.cp-starter-integration-cpi.html (Hint: Boosters can be found in the global BTP-Mainpage, not in the Subaccounts – guess who struggled with this for some time ;-).
– Discovery-center – SAP Integration Suite
“SAP Extension Suite” (formerly SAP Cloud Platform Extension Suite) can be used to add functionality to existing business solutions – both on-prem and cloud systems. It is broader in scope than the “classical” enhancements and modifications in ECC and S/4HANA systems, which add specific custom logic to the standard. Motivations for this so-called side-by-side extension is (according to “SAP Garage Jam ep.1”), eg.:
– the integration of multiple backends to complement data
– to allow a different user-base (B2B, B2C) access to data, without giving access to the backend directly.
– to integrate 3rd party cloud services (eg. IoT, Analytics) – an example could be the verification of Business Partners (SAP Discovery Center – Extend SAP S/4HANA business processes on SAP BTP (cloud.sap))
– improve the user-experience (UI, mobile-access)
–> in general: decoupling processes from the backend, by usage of the event-driven architecture.
The steps for creating this kind of side-by-side extension are always similar – and follow this pattern: These steps are supported by tools – and that’s what the toolbox of the extension suite does:
1) Connect (to your systems)
– Cloud Connector
– SAP Integration Suite
2) Build endpoint (choose your programming model)
– Workflow Management
– Cloud Application Programming Model (CAP): Java, NodeJS
– ABAP Restful Programming Model (RAP): ABAP
3) Add Channels (add a GUI)
– SAP UI5, Fiori
4) Deploy and operate (choose your runtime)
see next chapter
Further readings regarding the extension-scenario are:
– Open SAP course “Introduction to SAP Cloud Platform Extension Suite”
– SAP Learning Journey – SAP Extension Suite
– Event-driven architecture – now available for SAP ECC users | SAP Blogs
– SAP Discovery Center – Extend SAP S/4HANA business processes on SAP BTP (cloud.sap)
Blog: SAP S/4HANA Essentials, SAP S/4HANA Extended and SAP S/4HANA Anyprem. How to keep the core clean?
This is actually driven by the “Extension”-scenario. “fancy stuff”, like creating POCs or MVPs using bleeding-edge technology can be done side-by-side, while keeping your on-prem system “clean”. Scrolling through https://api.sap.com/ or https://discovery-center.cloud.sap/ gives an impression of the possibilities.
Context – SCP and environments
As of March 2021, SAP states that BTP is the new name for SCP “SAP Cloud Platform” (see “Rebranding of SAP Cloud Platform, March 2021”. But it’s more than just a rebranding, according to (Michael Ameling 2020), because BTP comes with an enhanced scope. But – to keep it simple – what was true for SCP, is also true for BTP: Within SCP there were several so-called environments and runtimes, which (partly) still exist in SAP BTP (see https://blogs.sap.com/2020/05/09/sap-hana-cheat-sheet/ and help.sap.com):
According to the SAP Glossary, an environment “constitutes the SAP BTP actual Platform-as-a-Service offering that allows for the development and administration of applications. Each environment provides at least one application runtime, its own user and role management logic, and tools (for example, command line utility). Environments are integrated into the platform at the subaccount level.” A runtime is defined as “An engine or context for executing programs, such as Java Web Tomcat 8 or Node.js runtime.”.
There are several different environments and they differ by the supported engines and programming languages, which can be used. E.g. Neo supports only Java, HTML5 and XS, whereas Cloud Foundry supports many more languages, like Java or Ruby.
To learn more about the runtimes, have a look at: https://blogs.sap.com/2020/10/12/the-runtime-for-your-cloud-foundry-applications-on-sap-cloud-platform-whats-in-a-name/
For more detailed explanations have a look at these awesome blog-posts from Denys van Kempen about Cloud – especially the second one gives a great (historical) introduction:
– Cloud Foundry | SAP HANA 2.0 – An Introduction (Denys van Kempen 2020)
– Cloud Foundry and SAP | SAP HANA 2.0 – An Introduction (Denys van Kempen 2020a)
– SAP Cloud Platform and the Multi-Cloud Foundation | An Introduction (Denys van Kempen 2020b)
a) Neo (NetWeaver On-Demand)
“The SAP Cloud Platform Neo environment is based on a SAP propriety runtime environment that runs only in SAP operated Data Centers. It supports Java, SAP HANA XS and HTML5 applications” (saphanajourney.com – CF vs. Neo). The term Neo now refers to “reference the SAP-hosted environment on the SAP Cloud Platform and distinguish it from the Cloud Foundry environment hosted by other cloud providers.“ (Quote from Denys van Kempen, Cloud Foundry and SAP | SAP HANA 2.0 – An Introduction). Even Neo is explicitly not eof (end of life), SAP focuses on the “multi cloud first strategy” and hosting on hyperscalers (Steffen Schad, SAP Cloud Platform – moving forward on our multi-cloud strategy). Besides that, there are several articles and posts around, on how to migrate from Neo to CF, and “New customers and partners will be deployed on the multi-cloud foundation for SAP BTP by default” (Yun-Hsuan Lin, SAP Business Technology Platform Multi-Cloud Strategy FAQs). I will therefore not go into any further detail.
Steffen Schad, SAP Cloud Platform – moving forward on our multi-cloud strategy
Help.sap.com – Why migrate from Neo to CF
Migrate Neo to CF
Manjunath Baburao, Consuming hyper-scaler backing services on SAP Cloud Platform: An Update
b) Cloud Foundry
Cloud Foundry (CF) is an open-source, industry standard for multi-cloud environments (https://www.cloudfoundry.org/). Unlike Neo, which is hosted by SAP, CF can be hosted on any of the big 4 hyperscalers (AWS, Microsoft Azure, Google Cloud Platform and Alibaba Cloud, as well as OpenStack. The PaaS (platform as a service) offering hides the runtime and OS (and everything underneath, like virtualization and bare-metal), so that you can focus on your application and the data. CF also covers the deployment and management of the apps, taking care of dependencies via so-called “buildpacks”: languages like Java, Node.js, Ruby and others are supported (docs.cloudfoundry.org – Buildpacks).
General information about Cloud Foundry: https://docs.cloudfoundry.org/concepts/overview.html
The Kyma-Runtime is based on the open-source project of the same name. It’s a cloud-native platform, based on Kubernetes, “for extending (monolith) applications with serverless functions and microservices” (https://kyma-project.io/). It provides a “properly configured, monitored, and secured Kubernetes cluster”, so taking away the burden of these reoccurring standard-tasks from the programmer. Tools for this are bundled with Kyma, eg. monitoring is done by Prometheus and Grafana, logging by Loki,… and so on: “The project is designed to give you the tools you need to be able to write an end-to-end, production-grade cloud native application ” (Kubernetes with ease).
You can use it to receive events and API-calls from the SAP-application, and connect 3rd party services from external sources (through the so called “service catalog”). To learn more about Kyma, see this blog-post: https://blogs.sap.com/2019/07/08/what-is-kyma/ . For a demo see this video from Devtoberfest (“SAP Cloud Platform, Kyma runtime”).
Help.sap.com – Kyma
d) ABAP environment
Last, but not least, is the “ABAP environment” – unofficially also called “Steampunk”. Actually it’s the possibility to write ABAP in the cloud. It is a way to extend on-prem SAP systems, using the latest technology – but sticking to a familiar programming language and decoupling extension code (https://blogs.sap.com/2019/08/20/its-steampunk-now/). This blog posts also mentions a possible scenario “Think about scenarios that run in the Cloud, exploit SAP HANA and use other SAP Cloud Platform services, irrespective of the implementation language. And all this without disturbing or putting load on your on-prem ERP system, the stable digital core. With a decoupled approach using clean APIs, the times of extensions or modifications that complicate your next ERP upgrade are over” (Harald Kuck, SAP Cloud Platform ABAP Environment).
Be aware, that the scope of the ABAP language is limited (no SAP GUI, no Web Dynpro, no direct access to SAP tables,… instead use ADT, Fiori, Odata,..) – so there is “some” custom code adoption needed, when migrating to the cloud (Olga Dolinskaja, Custom code analysis for SAP S/4HANA with SAP Fiori App Custom Code Migration). For a demo of the development process and the used tools see TechEd 2020 – DEV300 – SAP Cloud Platform, ABAP Environment Overview.
To learn more about Steampunk, see:
Denys van Kempen, SAP Cloud Platform and the Multi-Cloud Foundation | An Introduction
Harald Kuck, SAP Cloud Platform ABAP Environment
help.sap.com – ABAP Environment
SAP BTP, ABAP Environment – Learning Journey
How to use SAP BTP?
Within SAP BTP it’s possible to use a variety of different tool and programming languages. Which exactly are supported depends on the environment you are using. So: which environment you choose depends on your skills and the programming language of your choice (see this post).
Depending, which platform you are using, there are two programming models available to jump start development, without the need to deal with boiler-plate coding.
a) CAP can be used with CF: “The SAP Cloud Application Programming Model is a framework of languages, libraries, and tools for building enterprise-grade services and applications” (https://cap.cloud.sap/docs/about/).
To learn more, see:
DJ Adams, SAP Cloud Application Programming Model (CAP) – start here
OpenSAP – Building Applications with SAP Cloud Application Programming Model
b) ABAP RESTful Application Programming Model (RAP) can be used for Steampunk:
It “defines the architecture for efficient end-to-end development of intrinsically SAP HANA-optimized OData services (such as Fiori apps) in SAP BTP ABAP Environment or Application Server ABAP.” Architectural overview of RAP:
To learn more, see:
Carine Tchoutouo Djomo, Getting Started with the ABAP RESTful Application Programming Model (RAP)
openSAP – Building Apps with the ABAP RESTful Application Programming Model
Doku help.sap.com – ABAP RESTful Application Programming Model
What did I cover in this blog post?
– I tried to understand what’s hidden behind the term BTP
– I gave a short overview on the possible scenarios
– I shed light on how that’s connected to SCP.
What did I figure out? BTP is an “umbrella term” that encompasses several core technologies such as HANA, SAC and BI. But it is also a platform-as-a-service (PaaS) to integrate tools and technologies. It incorporates the SCP and pushes the idea further. It can be used to integrate SAP and Non-SAP systems as well as on-prem and cloud systems (integration-scenario). It can be used to enhance the customer experience by extending your systems (extension-scenario, side-by-side). The loosely-coupled architecture (using APIs and events) will help you gain speed in innovation and development.
However, there’s a catch: You need to look at the price tag and there are several “new” technologies involved your developers need to learn.
But since SAP states in several places “innovation will happen in the cloud”, it seems to be a good idea to get to known to this platform and it’s capabilities. In a next post I’ll have a first look at “Steampunk” and try to figure out what are the crucial tools and techniques an “up to date” ABAPler needs to master. So stay tuned… and in the meantime have a look at these great resources about SAP BTP. Especially worth mentioning is the upcoming openSAP course “SAP Business Technology Platform in a Nutshell” starting on July 7th 2021.
Discovery-center – SAP Integration Suite
OpenSAP CP9 – Simplify Integration with SAP Cloud Platform Integration Suite
OpenSAP CP11 – Introduction to SAP Cloud Platform Extension Suite
OpenSAP CP7 – Building Applications with SAP Cloud Application Programming Model
OpenSAP CP13 – Building Apps with the ABAP RESTful Application Programming Model
OpenSAP BTP1 – SAP Business Technology Platform in a Nutshell