I am often asked how to install SAP as a standalone on a computer. Understandable, as some people want to improve their CV by enhancing their hands on knowledge of the application. However, the answer is not so straight forward. Wouldn’t it be great if the whole installation of SAP was like installing the app Spotify on your computer? In reality, it would required the help of an SAP consultant with experience in that area. However, if you feel like doing it, I recommend spending the time reading the documentation of SAP related to this topic here. Go to the chapter System Provisioning Scenarios, choose the Option Install a System using Software Provisioning Management and you will see the link to several Guide/s. There is a lot of information. Read it carefully because if you skip one single step, that can ruin the whole installation and you may need to start from scratch. The feeling is like almost beating your highest score in a game and with one mistake, you have to start over.
In this post, I will explain the high-level architecture of SAP for an on-premise installation. But, as I said, this is a high level architecture. The details are a bit too much for a single post. From now on, every time I say SAP ERP I mean both versions of the Core ERP: SAP ECC and SAP S/4HANA.
The first thing you need to get to be able to install SAP ERP is a valid license for the product. The installation could be completed without it but running an unlicensed system is not usable, upgrading it is way more complex, and the most important thing, business users can not be used in such system. Another interesting point in terms of licensing is that normally you cannot buy the license directly to SAP. This is reserved for large and special customers. If you want to buy a license, you would need to contact one of their partners. You can find the directory of SAP partners here.
The architecture of the installation of SAP consists broadly of three layers. This means that you would need to install different solutions in each layer. The layers are:
- Database Layer
- Application Layer
- Presentation Layer
SAP recommends to use more than one server per layer to provide a combination of availability, fault tolerance and load balancing. However, for testing purposes, it is possible to use one single server for all.
The Database Layer is where all the information is physically stored and organized. Before SAP S/4HANA, SAP was using databases from other suppliers like Oracle, IBM, etc. In 2011, SAP created a powerful database called SAP HANA. Since then, SAP prepares their products to be run natively on HANA. Therefore:
- SAP ECC can run in both: SAP HANA or a non-SAP databases. This is because the product SAP ECC was created before SAP HANA.
- Since the version of the Core ERP SAP S/4HANA, the application can only run on the database SAP HANA.
Image: Options in the database layer for SAP ERP and SAP S/4HANA
The Application Layer is where all the Business Applications that SAP needs to run the ERP are installed, for example, SAP NetWeaver. If you have a license for other on-premise SAP products, they would need to be installed also in this level of architecture. The installation of all these applications consumes several tens of GB in the hard disk and running them makes heavy use of memory. Here you can find the hardware requirements for SAP S/4HANA version 1909 FPS02. Most of the heavy lifting is undertaken in the application layer. This releases the end user’s computers from doing the hard work. This is a benefit from Client-Server technology. The end users will be able to reach the application layer via a client software in the Presentation Layer. Another advantage of having the applications centrally installed is updates are done on fewer computers.
For those who learning this concept for the first time, let’s use a practical example to ease the understanding of the Application Server concept and the function of the SAP NetWeaver in it. I will use Google Drive. If you have a Google Drive account, you may have observed that you can open files with Google Docs, Google Sheets, Google Slides and others applications. Do you have those programs physically installed in your computer? Most likely not. Even if you don’t have Microsoft Office in your computer, you would be able to open those files using the Google applications. This is because your browser client is calling a remote server that has those applications installed locally. That server where the applications are installed is what we call application layer. Your browser is able to do this by calling a Web Server. A web server comes into play here because you are using a browser. This is different from an application server. A web server services http requests. Think of it like when you type in “www.google.com” in you browser. You are making a request via a client (your browser) and a web server services this request. The SAP NetWeaver can act as both an application server and a web server. You can find more details here. If this is getting confusing with the concept of web-server, don’t worry, in the next chapter I made a draw that I hope helps you to understand the idea.
Now here it comes the second question. How does the application server know what application to use when I double click on a file? Why does it open an Excel file with Google Sheets and it does not try to do it with Google Docs? This is because there is a program running in the application server that identifies the needs and behaves like an orchestra director. This program points one app or another based the configuration in it. So, for example, if the user remotely double-clicks on a file with extension “.doc” or “.txt”, the orchestra director will point the app Google Docs to open the file. In the SAP world, this orchestra director installed in the application server is named SAP NetWeaver.
Presentation Layer or Client
Finally, the Presentation Layer is the final user level. This layer is also called Client. There are two ways to reach the Application Layer from the presentation layer:
- Via Web. The good thing of accessing via web is that you don’t need to install any program based on your operating system (OS) on your computer. In essence, you are running an application via your browser (client) that exists on a remote server. Some say that the performance is worse than via a native Client Software. However, this may come down to your preference.
- Via native Client Software. Depending on your operating system, you would need different versions of the client software. Additionally, you may need different programs, depending on if you want to log in directly to Fiori or to SAP GUI. You can read more details in this post.
The computer located in the Client layer is presenting to the end user an application hosted in the Application server. The application server layer collects and provides the information requested to the client layer. The information can be presented in the client level in different formats such as web page for browsers, a GUI screen with populated fields for SAP GUI or a nice graph showing the trend of stock for a particular product in a warehouse… If we continue with the previous example of Google Drive, the client software would be the internet browser. You make request in your browser by clicking a link to a document. How does your browser know what to do? A web server accepts and services this request. How does the web server know what to present back to you? By communication with an application server. How does the application server know where to send back the response? The response from the application server is sent back to your browser via the web server. So, the web server is only needed when you access the application layer via web, but if you do with the native client software you just call the application server. It is important to note that the application server can also act as a web server. This just means that it has two jobs instead of one. Like an oven that also acts as a microwave.
Image: Architecture using native Client Software
Image: Architecture using web browser as a client
Before ending this post, I would like to point out that SAP also uses the term “client” for a subdivision of memory inside the environment of the application. Data and configuration can be separated in different clients for the same environment. This could be useful for self-contained commercial, organizational, and technical units within an SAP System. Each has its own customer data protected from other clients. It could be easy to get confused with both terms. SAP uses the same name but they are two different things.
Image: Another meaning for client in SAP
I will soon publish a post about how to have access to an SAP system without paying an SAP Licence. If you don’t want to miss it, just subscribe to the newsletter and you will be notified as soon as it is published.