Skip to content
This repository has been archived by the owner on Aug 1, 2022. It is now read-only.

Compatible environment for SAP HANA Extended Application Services (XS) based applications outside of SAP HANA instance running in a container deployed on Kubernetes

License

SAP-archive/xsk

Repository files navigation

Important Notice

This public repository is read-only and no longer maintained.

Project "XSK"

Description

Compatible environment for SAP HANA Extended Application Services (XS) based applications. It is deployed outside of SAP HANA instance as a Docker a container on Kubernetes. Hence, some of the features can work against any other JDBC compliant RDBMS such as PostgreSQL. The compatibility stack is an extension of the Eclipse Dirigible cloud development platform.

Note: the project is not yet ready to be used productively

Overview

Background

In the SAP Cloud Platform Neo environment XS classic programming model (XSC) is supported via the HANA 1.x database. The XSC engine resides in the HANA system itself. It can scale up, but cannot scale out. It is based on the multi-threaded JavaScript runtime Mozilla Spydermonkey (Firefox's engine). It supports synchronous programming model. It can serve backend services in JavaScript, HTML5 and other static content. It supports OData v2.0 compatible services defined in an *.xsodata descriptors. It supports automatic tables, views, calculationviews materialisation based on proprietary formats.

XSK approach is to provide a custom Eclipse Dirigible stack coming with XSC engine type. This engine is based on the standard Dirigible's JavaScript engine with several enhancements such as predefined XSC API pre-loaded ($.* APIs), execution based on *.xsjs instead of *.js only, imports based on *.xsjslib instead of *.js.

There are corresponding APIs in Dirigible playing the same role as the ones in XSC (e.g. request, response, connection, etc.). A thin XSC bridge is provided for full compatibility.

The programming model is synchronous in multi-threaded environment (based on GraalJS). The descriptors for the table, views and calculationviews currently exists with the same life-cycle management, only the format is different. OData via descriptor approach is also available as part of the stack as well.

XSK stack is based on Java (JVM), so all the available plugins and/or new frameworks from Apache, Eclipse, and other open source providers can be easily integrated as well.

XSK stack can run within the HANA box, also in the virtual HANA system or outside in e.g. Kubernetes cluster, Kyma, Cloud Foundry, Open Stack.

Requirements

  • Maven 3.6.2 or later
  • Access to SAP BTP account
  • Access to SAP HANA Cloud instance

Download and Installation

git clone https://github.com/SAP/xsk
cd xsk
mvn clean install

FAQ

  • How long will XSK be supported by SAP?

    XSK is an open source project with community support as of now. Everyone can join and make a PR.

  • Should future developments be based on XSK?

    Yes, you can use XSK for future development.

  • What about the tooling? Do we get state of the art tooling for maintaining and enhancing XSK?

    XSK tooling is based on Eclipse Dirigible and in the near future it will be possible to maintain XSK projects with any modern IDE like VSCode, Eclipse Theia, etc.

  • What about the ops aspects - will XSK be smoothly integrated into a state-of-the-art lifecycle and ops management (be it SAP-based or non-SAP based like GitHub Actions?

    Yes, the XSK itself uses GitHub actions for CI/CD

  • Will there be limitations that will not be mitigated?

    You can get the up-to-date list of covered features as well as the limitations

Cheat Sheet

Visit the cheat sheet here.

Readiness

Visit the readiness page here.

How to obtain support

All the bug reports as well as the feature requests have to be registered as issues.

Contributing

If you want to contribute, please check the Contribution Guidelines

About

Compatible environment for SAP HANA Extended Application Services (XS) based applications outside of SAP HANA instance running in a container deployed on Kubernetes

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published