In the previous article Introduction to SAP HANA XS
we explained the basics of SAP HANA XS engine and its advantages. In this article we will discuss the architecture of SAP HANA XS.
SAP HANA greatly extends the traditional database server role. SAP HANA functions as a comprehensive platform for the development and execution of native data-intensive applications that run efficiently in SAP HANA, taking advantage of its in-memory architecture and parallel execution capabilities.
By restructuring your application in this way, not only do you gain from the increased performance due to the integration with the data source, you can effectively eliminate the overhead of the middle-tier between the user-interface (the view) and the data-intensive control logic, as shown in the above figure.
Data Processing Technologies:
To leverage the full potential of HANA, we should push the data logic down into the database as possible. All data intensive logic should be placed into SQL, SQLScript Procedures, and SAP HANA Views.
It makes sense to place all of your data intensive logic into SQL, SQLScript Procedures, and SAP HANA Views, as these techniques will leverage SAP HANA’s in-memory, columnar table optimizations as well as massively parallel processing.
Note: To know more about SQLScript and Procedure, read
To know more about HANA data modeling, read
Control Flow Technologies:
Once the data logics are implemented in HANA views/Procedures, we need a very light-weight application server to handle the control flow logic. This purpose is solved by HANA XS engine.
HANA XS uses the technologies like oData, XSJS etc. to expose the database data model, with its tables, views and database procedures, to clients.
No data is stored in the SAP HANA XS server itself. To read tables or views, to modify data or to execute SQLScript database procedures and calculations, it connects to the index server (or servers, in case of a distributed system).
Finally HTML 5 or SAPUI5 or any UI language can be used to implement the UI. SAP recommends to use HTML5 or SAPUI5 where the complete UI logic is executed on the client side.
A Closer Look into the SAP HANA XS Engine:
When a client connects to the HANA server the following processes are executed at operating system level. An incoming HTTP connection will be processed in three steps:
- The Internet Communication Manager (ICM) corresponds to the Web server
- The XS Engine process represents the application server
- And the Index Server process represents the HANA DB itself. It represents the most important operating system process of the HANA DB. This is because the memory area, which stores the data of the In-Memory Store, is assigned to it.
The XS Engine process extends the index server process, in accordance to that, both processes work with the same HANA native data types. This results in an efficient data processing, since neither data is sent through a network (processing at the operating system level) nor data conversions take place between the database and application server.