Exploring SAP Analytics Cloud Architecture

Objective

After completing this lesson, you will be able to describe the SAP Analytics Cloud architecture and its impact on performance.

Architecture

Let’s explore some of the key elements in architecture and how they can impact on performance in SAP Analytics Cloud. These, in turn, can be optimized for an improved user experience where performance issues have been identified as part of the analysis process. This lesson is designed to give you a high-level understanding of the topic.

The overall performance of SAP Analytics Cloud is mainly determined by the three components:

  1. Frontend: Client time
  2. Network: Time between the frontend and the backend
  3. Backend: SAP Analytics Cloud service time and the time used by systems via a live connection

Let's look at how the different components work together. This will help us better understand where computation time can be lost and how we can fix it.

The following diagram and table show some of the factors that contribute to performance, organized by frontend, network, and backend.

A diagram showing the interaction of the different elements in performance analysis.
FrontendNetworkBackend
  • CPU and GPU
  • Memory
  • Corporate bandwidth and VPN
  • Internet network latency
  • Internet bandwidth
SAP Analytics Cloud

Content and design complexity:

  • Models and versions
  • Data actions
  • Calculations and aggregations
  Other
  • Database performance (live data)
  • Query performance

Nobody enjoys working in a tool that has bad performance, and when data needs to be processed in order to complete tasks, this bad performance can negatively impact on your business goals. It is for this reason, that we need to keep performance at the forefront in everything we do in SAP Analytics Cloud and in the data sources it connects with.

What can be fixed in the frontend? What can only be fixed in the backend? Let’s find out.

SAP Analytics Cloud Architecture

You can see here a simplified diagram of the software architecture of SAP Analytics Cloud. The SAP Analytics Cloud client is embedded in a JavaScript engine that runs in the browser. Requests are put via HTTP in both directions for import and live connections.

SAP Analytics Cloud Architecture simplified technical diagram.

Frontend: On the frontend side, the interactive components such as the chart engine, the request generator, and the user interface are embedded into the SAP Analytics Cloud client, which is written in JavaScript and executed in the JavaScript engine, allowing users to select their preferred browser.

For this reason, there are many things to consider when analyzing performance. Any component that requires time to execute, such as the code to load data, images, or widget into a dashboard can all be the source of decreased performance. For example, if you have a heavy user interface, have multiple charts, widgets, and geo maps that all render at the same time, or if you have multiple parallel requests to the backend.

Network: HTTP protocol is used for the frontend to send requests to the backend, where it waits for a response. This is used for both import and live connections, limiting the amount of data that can be transferred. Limited network bandwidth increases the time to transfer data to the browser and with that decreases the performance.

Backend: Performance related issues on the backend side depend on where the data is stored. In principle, there are two possibilities.

  1. An imported data connection, where the data and the model metadata are stored in the SAP Analytics Cloud SAP HANA database (with technical sub-components called Contentlib and EPM Models).
  2. A live data connection to a supported existing data source, either cloud or on-premise, allowing the data to reside in the source system but able to be loaded into a frontend dashboard. Typically, in this scenario, it is recommended to move CPU-demanding calculations from the frontend into the backend, where there is more computational power.

    For live data connections, where the data resides in the backend system, the data needs to be processed with the response sent to the frontend, creating a waiting time for the user. It is important to manage this wait time effectively, communicating with the user during load time.

Summary

When we refer to performance, what are some of the things that we need to keep in mind?

Data location can have an indirect implication on performance. For example, there is a limit to the size of data packages when the data needs to be transferred using an internet connection. So, a story or dashboard that needs to download a significant amount of data to the browser will take time to load. One of the key things that can improve performance from the start is to ensure that everything is correctly built.

Where the data is processed can impact on performance. Performance can be directly impacted by the hardware of the end user where calculations are performed in the end user’s browser. If the user has low computation power in their computer, then it can slow down performance. It’s important to keep this in mind if the amount of data that is continually requested by the user from the server is potentially an issue.

End user settings can have an impact on performance. It is important to ensure correct system settings and that users understand the impact of slow web browsers, heavy VPN connections running in parallel, and screen sharing on performance. This isn’t a complete list but, in many cases, when settings are applied correct from the start, there can be a big impact on performance .

Log in to track your progress & complete quizzes