Performance and Scalability for SAP Fiori
Performance evaluation is for today, Scalability evaluation is for the future
What precisely is SAPUI5, and how to make perform fast?
For any business, ease of access is crucial. As SAP applications are significantly used by many companies, these applications happen to be accessed regularly which has potential impact on business strategy. SAP is always committed to enhancing the performance of their applications and invests millions of monetary terms in Research and Development annually. SAP HANA is now considered to be the cutting edge technology for all SAP applications as they have inbuilt architectural advantages over the traditional database systems. SAP has released SAP BI on SAP HANA, SAP Business Suite on HANA, and SAP S/4HANA.
SAP S/4HANA is the next generation business suite where it has the capability to process large volumes of data in real-time with its high processing power. SAP S/4HANA’s performance is based on comprehensive design elements such as in-memory data storage, cost-based optimizer, and efficient query execution components. It demands data to be managed through more sophisticated methods to achieve exceptional performance.
As the recently deployed SAP S/4HANA is extremely fast, now the concern is SAP Fiori. When compared with the rest of the system, Fiori Tiles are very slow. It shows that most of the Tiles are constantly recompiling and this happens while testing Fiori Access with one single business function. But they shouldn't be slow and they don't need to be slow. In this blog you find tools to determine performance bottlenecks and some options for addressing them.
SAP S/4HANA Business Benefits
SAP S/4HANA authorizes business organizations to enhance the business processes through analyzing enormous data volumes. It is viewed systematically to calculate and aggregate the data which is required to consistently accommodate the demands of the storage architecture. SAP S/4HANA provides Online Transactional Processing applications(OLTP) and Online Analytical Processing applications (OLAP) in real-time. This processing deliberately uses actual transaction data set to perform complex analysis and calculations. Due to this situation, behavioral changes may occur while using such applications. It is highly recommended to have Performance Testing on SAP S/4HANA applications which assure the application to respond effectively to a growing number of business customers.
Performance critics of SAP Fiori
During the last few years, it has been seen the introduction of several new SAP UX solutions, targeted to provide uniform user experience across devices, improve productivity and simplify UI development. The new breed of UX solutions based on SAPUI5, Screen Personas, Fiori and the SAP Web IDE all have been widely accepted by SAP clients. Since June 2014, SAP Screen Personas and SAP Fiori are available at no separate charges, which is a good opportunity for the clients to modernize user experience, increase adoption, improve usability features on any device and improve productivity.
SAPUI5 is an advanced scaffold for building Web applications on the SAP platform. Applications can be built using SAPUI5 that connect to any type of back-end system or can run any type of browser directly. However, the main objective of SAPUI5 was to develop an application framework for use in SAP environments. Hence SAPUI5 is always considered as a part of the user interface technologies in SAP HANA, NetWeaver ABAP or any Java based applications.
SAP Fiori is one such product line which has a device skeptic User Interface. According to SAP, SAP Fiori is the company’s predominant UI model where it can be applied to wide range of technological domains such as Supply Chain Management, Customer Resource Management, and Enterprise Resource Planning. SAP Fiori UX is the new dimension of SAP for users present across all business lines through mobile devices where it provides optimal flexibility for business interactions.
SAP Fiori recreates the SAP user experience with responsive design to make it reliable across device deployment options. In a role-based design, users would get only the data and its transactions when they are in need. But when combined with analytical and transactional applications, SAP Fiori supports the users to reach new levels of productivity and efficiency.
The key elements of SAP Fiori are listed as follows:
- Reusability which does not require any specific programming
- Generic Look and Feel with simple UI performance for all supported applications
- Integration of SAP Fiori Launchpad
- Wizard based App creation using SAP Web Integrated Development Environment
- Supporting multiple devices
- Status quo and quality value
Fiori Performance Improvement tips
Generally, if a Web app has performance constraints, finding the root cause will be a time-consuming task. Slow networks or servers may also have a heavy impact on the performance of a Web app. For SAPUI5 apps, it was known that JavaScript files are sent from the Server to Clients to interpret into the browser. Hence some clients using the app would feel that their Fiori solution is running slow especially while opening the app. Some of the performance constraints are,
- Redundant tiles shall be deleted from the home page. The tiles limiting factor shall not be more than 50
- Impact on the number of dynamic tiles and KPI tiles when compared with the static tiles
- Performance issue of OData service
- Developer would have not created component-preload.js;
Roles: Assign only the necessary roles since the number of tiles on the Fiori lauchpad shall affect the performance.
Different types of tiles that may influence the Performance:
- Dynamic Tiles: These tile types frequently contact the backend server to update the tiles with relevant information using the oData services
But this sluggishness might be due to various other factors as follows:
- Low Internet Download speed
- Low Network Latency
- Bad programming
Such Web apps should be developed based on the SAP design guidelines where the users would not raise on the slow performance of opening the app. But ultimately, the fact is that Web-based applications like Fiori Launchpad due to their nature of technical architecture might be considerably slower than any native applications.
IMPORTANT: Every new release of SAPUI5, SAP Fiori Frontend Server (SAP Gateway) and SAP S/4HANA adds performance improvement options that should be considered to optimize the performance. Such as:
Comparative study on different Network Connection Types
It has been observed that the Roundtrip times are high in a 2G and 3G network connection whereas the Roundtrip times are comparatively better in a 4G and a Wi-Fi connection.
It is suggested to use a cable if the application runs on a laptop and connect to well performing Wi-Fi if the application runs on mobile devices
How can you measure your latency and bandwidth from your location to SAP data centers?
Cloud Check Tool provides the information on the strength of the bandwidth in different SAP data centers
Caching
Cache is one of the most important element of Fiori performance.
It is recommended not to run Fiori Launchpad(FLP) in a private mode as FLP is not taking advantage of the browser static cache and hence performance may suffer. Always use FLP not in a private mode to take the advantage of browser cache.
Furthermore, the following browser settings are to be checked:
- Select a sufficient cache size limit
- Do not clear the cache history automatically when the browser closes
- Enable browser caching
- Do not disable the browser cache in the browser developer tools
- Enable HTTP compression
To maximize performance of SAP applications especially Fiori, we need to understand how cache impacts the performance.
There are different layers of cache. Caches are in each layer (Client, Frontend Server and Backend Server)
When you run a Fiori application, resources are loaded to cache in each layer. When you run the application next time, the resources will be called from cache and the performance will be improved tremendously. Resources in the cache are only reloaded when a new version is available. Rather than simply limiting the time a resource may remain in the browser cache, the system invalidates the cache only when resources are updated on the server.
Tools that can help find Performance bottlenecks at different Layers
Frontend: HTTPWatch, Network Trace from Chrome Developer tools
Application Layer: STATS, ST02, SM50
Database Layer: HANA Studio, PlanViz, ST05
Frontend: HTTPWatch, Network Trace from Chrome Developer tools
HTTP Watch
Http Watch is an HTTP viewer and debugger that integrates with Internet Explorer to provide seamless HTTP and HTTPS monitoring without leaving the browser window
Features:
- A plug-in HTTP Viewer for Internet Explorer
- View both HTTP and HTTPS traffic
- See headers, cookies, caching and POST data
- Detailed information about HTTPS, compression, redirection and chunked encoding
- Millisecond accurate timings and network level data
- Use it in automated tests written in C#, Ruby, Javascript, ...
Reference: http://www.httpwatch.com/features.htm
Chrome Developer Tools(Press F12 on Chrome)
- To access the Developer Tools, open a web page or web app in Google Chrome.Select the Chrome menu Chrome Menu at the top-right of your browser window, then select Tools > Developer Tools.
- Right-click on any page element and select Inspect Element.
The Developer Tools window will open at the bottom of your Chrome browser.
Improving network performance
The Network panel provides insights into resources that are requested and downloaded over the network in real time. Identifying and addressing those requests taking longer than expected is an essential step in optimizing your page.
Application Layer Tools
STATS/STAD, ST02, SM50
STAD/STATS:
- Used to Collect the Workload statistics at the ABAP stack
- STATS allow you to save the statistics to the Database for future reference whereas the data in the STAD is flushed in 48 hours
- These tools help in providing statistics on different KPIs like Response time, CPU time, Wait time, Memory used, Transferred KB, DB request time etc.,
- This helps in monitoring the complete ABAP stack w.r.t its Performance
SM50: Allows you to find the available work processes where the active processes, long running processes that kill the performance and their type can be found which help in identifying the which user and which program/report is causing the issue in the Application layer
Database Layer Tools
HANA Studio, PlanViz, ST05
SQL trace(ST05):
- Provides the developer the ability to analyse database select statements.
- Trace Files can be saved for future reference in the database
- Only one user can activate the trace at a given point in time
- This trace help us to find out the tables which are not buffered, queries that take large amount of time to execute
PlanViz:
- Helps to analyze the SQL Execution Plan
- This graphic is a very powerful tool for studying performance of queries on SAP HANA databases
Hence with such tools available in SAP, the performance at different layers can be checked and the performance of the SAP applications can be improved. Performance for any application is critical and with the growing demand for cloud applications, delay in every sub second is going to cost more.
“An ounce of Performance is worth pounds of promises.” - Mae West