James Thew - Fotolia


What is the SAP HANA XS Engine and how does it work?

Ethan Jewett explains how the SAP HANA XS Engine is used to run lightweight applications on the SAP in-memory database platform.

The "XS" in SAP HANA XS Engine stands for "Extended Application Services." While the acronym itself may not entirely...

make sense, the role of the SAP HANA XS Engine is fairly clear. It is a lightweight application server embedded in SAP HANA that can be used to layer procedural logic and Web services on top of HANA tables and views. Applications that run on the SAP XS Engine can be written by developers in HANA Studio, and they can also be generated by SAP's River Rapid Development Environment. XS Engine allows for the creation of applications on HANA using only HANA and a front-end application library like SAPUI5. No separate application server is necessary.

More specifically, XS Engine is a JavaScript application server based on the Mozilla SpiderMonkey engine. This is the same engine used in the Firefox Web browser. The Node.js application server takes a similar approach of using an embedded browser JavaScript runtime as an application server, though Node.js uses the V8 engine that is used in Chrome.

XS Engine provides a few JavaScript APIs for accessing the capabilities and data stored in the HANA system it runs on. XS applications can query and update HANA tables and views using standard SQL statements. Applications can also make external HTTP requests to destinations that are properly configured in HANA, and can schedule jobs (also defined in JavaScript) to run in the background, outside the context of a request.

Primarily, XS Engine works on the level of incoming HTTP requests and outgoing responses. A request comes in to a given XS Engine service (which lives at a URL on the HANA system), and the service has complete control over evaluating the request and building the response it wants to send back.

While the functionality of the XS Engine is limited, it can be supplemented with libraries. Most server-side JavaScript libraries are written for Node.js and rely on Node.js APIs, so using those libraries on XS Engine will be a hit or a miss. But small, pure-JavaScript libraries should work, and customers can develop their own utility libraries.

That said, the design and vision of XS Engine is very clearly to support the development of lightweight services and applications in HANA. Developers considering heavier-weight applications should consider using a standalone application server running alongside their HANA system.

Next Steps

The SAP River Rapid Development Environment and beyond: Tools for SAP Differences in HANA application development tools

Not sure of the difference between the HANA Enterprise Cloud and the HANA Cloud Platform? You're not alone.

How to prepare for a HANA installation

Dig Deeper on SAP HANA

Data Management
Business Analytics
Content Management