Photo-K - 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 HANA XS Engine can be written by developers in HANA Studio, and they also can 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, such as 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, namely, 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 Engine 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 they 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 hit-or-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 are very clearly that it be used 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 HANA application development

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