Skip to Content

SAP makes strong commitment to Node.js

I had the privilege of being invited to join the Bloggers Program and SAP Mentor Program at SAP TechEd 2015 in Las Vegas this week.

I also got to spend a little time with Thomas Jung. Tom is always willing to help me understand just what SAP is doing in either the ABAP or HANA world. While we had a brief earlier discussion at SAPPHIRE in June about the HANA roadmap it was not until this week that I fully appreciated how some of the new architecture that is coming with HANA SP11 will change native HANA development.

Up until now native HANA development has mainly been done using something called Extended Application Services (XS). The XS engine is a lightweight application server inside HANA. Developers built scripting applications using JavaScript to deliver native HANA applications, web services, etc.

SAP had always said HANA would support other languages, but to do so they have had to re-architect the XS runtime. My very amateur diagram of this new architecture looks like this.


When I checked with the official SAP architecture slide I wasn’t that far away – I might even argue my diagram is better. 😏

Screen Shot 2015-10-24 at 10.24.30 PM.png

Essentially SAP have built a XS runtime platform that can support different types of other runtimes within it. I know what you’re thinking. That’s Cloud Foundry right? Actually you are close but think more Cloud Foundry Lite.

So now SAP can pick and choose which runtimes, and therefore which languages, they want to support on HANA. In SP11 they will deliver Node.js for JavaScript development, TomCat (TomEE) for Java developers and FastCGI for C++ developers. In theory others might follow. In theory you could build your own.

As you see on the right-hand side of the architecture slide SAP will also still deliver the existing XS JavaScript runtime for backwards compatibility. Be warned though that the JavaScript runtime engine has been changed from SpiderMonkey to Google V8 so your existing XSJS code might need minor tweaks. Some of the API’s have been rewritten as well.

But for me the really interesting part of this was the realisation that SAP have really committed to Node. The Node community have been trying to gain “enterprise” acceptance for some time now. Sure there are lots of examples of large implementations, including some very high profile ones, but it seemed to me their argument was not fully won.

Now, in placing Node right at the centre of their strategic HANA platform, SAP have made a huge statement of confidence. I am a bit surprised the Node advocates aren’t shouting it from the roof tops. Maybe they haven’t figured it out yet?

Screen Shot 2015-10-24 at 10.34.29 PM.png

You must be Logged on to comment or reply to a post.
  • Hi Graham,

    congrats on the invite to the program. while i can't really comment on the merits of SP11, do you think it worthwhile to open SP10 to the developement community? Thomas Jung and Rich Heilman have done a great job in explaining what Hana development means, but without access to the latest tools one can't really test drive what has been architected recently.



    • Thanks Greg, all I can say is "YES".

      If a tree falls in the forest and nobody is there to hear it - does it make a sound?

      If you build development tools and don't make them available to developers - do they actually exist?


      • Particularly I don't have any hopes about SAP making a version of HANA available for developers - no matter if SP11 or below. The new NW Trial instance delivered 1 year after done is just another example that makes me guess that.

        There is CAL... but stuff in there is paid!

        "But you pay for the cloud and not for the licence"

        But it's paid with my money anyway.

        But there is HCP Trial - there are so many limitations for people interested in development.

        Regarding node... this is some good news. As a XS Developer all I can say is that finally we will be able to use wheels created by others. How long it will take for some company use such SPS 11 is a question I have no clue how to answer.

        What I really would like to see is the ability to run your code locally as it's so easy to be done when doing front end development.

  • Thanks for this write up Graham. Did you get a feel for which version of node will be shipping?

    I have taken the newly released 4.0 for a spin but most of the Grunt libraries I use have not upgraded to this - or is it just a setting I need to hack.

    Great to hang out with you this week.


  • HANA SPS 11 and even NW 7.50 represent some fundamental changes to how we will be developing in the next couple of years and yet at SAP TechEd Las Vegas there wasn't really much fanfare around either, in many sessions they barely got a mention.

    From what i saw (mostly slides) of the new SAP HANA XS I was quite impressed

    The Node.js runtime will provide sanctioned Node Packages to HANA platform developers, one of the packages is an OData Producer, it sits on top of HANA or other DB's? and produces OData service content. Other packages provided middleware and sockets, basic diet for a Node.js developer.

    I am guessing there are inherent security challenges around introducing new Node.js packages into the Enterprise, the nature of how Node packages works, lots of nested OSS dependencies means the vetting and on boarding of new packages will take time.

    Also worth mentioning in SPS11 are MTA Containers, Multi Target Applications are isolated application run time environments, they offer a,variety of development and deployment options (polyglot), an example of usage might be micro services..

    Node.js, MTA containers and some of the planned tooling and infrastructure changes IMO are geared towards solving some of the problems that "IoT" brings.

    Why aren't "Node advocates aren’t shouting it from the roof tops", good question, my guess IoT transformation as much as i thought it was going to be 🙁 was something that was intentionally not forefront at SAP TechEd Las Vegas. I am guessing we are likely to see HANA SPS 11, NW 7.5 get a lot more air in Barcelona and hopefully this includes a good roadmap for how SAP intends to partner with the Node.js community.


    EDITED: after a couple of coffees

  • Interesting.  So how would this work when you are developing a UI layer over the top of HANA and standard SAP?  Currently you can do quite a nice pass through of the odata feed from HANA, through gateway, so that all your odata API's are surfaced through gateway, which also manages all of the security.

    Looking at this, whilst I appreciate it has a lot of advantages with using node.js, I imagine you have the scenario of two security models, one for gateway and another for the HANA data.

    • Thanks for your comments Paul,

      you make a good point about the two security models of running ABAP (Gateway) on HANA. Perhaps Tom might be able to chime in here?

      I know there are changes to rationalise the security model for ABAP on HANA but that is not the same as having the same security model for ABAP and native HANA applications.


      Graham Robbo

    • > I imagine you have the scenario of two security models, one for gateway and another for the HANA data.

      I'm not exactly sure how that is different than what you have today with XS Classic. In theory the security model should be easier now because we no longer require the application user to be a database user. We use external authentication by default.

      >Currently you can do quite a nice pass through of the odata feed from HANA, through gateway, so that all your odata API's are surfaced through gateway

      I don't see why you wouldn't be able to do that in the future as well.

      • Thanks Graham / Thomas,

        Looking more at the documentation, it looks like we will have to really ensure that everything is set up to accept SAML (or another external authentication).

        Our setup is probably slightly unusual.  We have classic Suite on HANA, Gateway and Native HANA and develop UI applications across the top of them (remember xApps!).  e.g. Dashboards from Native HANA are used to make decisions which are input in the same UI into Suite on HANA.  Obviously the security team don't particularly want to have to maintain users and auths all over the place, so using gateway to do this has been quite nice.  However, I think that with the comment about the application user no longer needing to be a database user, we will need to re-look at this).


  • thanks for sharing Graham - nice meeting you in Las Vegas and I am also excited for nodejs as well as all the new development and features that will be delivered by SAP on SP11.

  • Spot on as always, Graham! I noticed Thomas' hands-on for "Node.js for HANA" and was immediately intrigued. Like you, I thought "Node.js at the enterprise level?!?!". Sure enough though, it seems SAP made a big commitment to it (and other run times). I was surprised that I was able to walk up and get in (via the "wait list") to the session. Of course everything is still very early and a working version of your diagram was not available to us, so Thomas just walked us through some fun Node.js exercises while augmenting them with the great "this is where the new stuff come in" guidance. Really interested  to see where this goes....and really surprised (like you!) that the Node.js crowd has not latched onto this!

    BTW, your "napkin art" skills are impressive! 😛

  • Hey Robo, very interesting slide. I'm pretty stoked about SAP's initiatives to "get with" the modern world of software development. It makes a lot of sense since most things are web based anyway.

    Does this mean HANA development can make use of NPM and the wide world of Node packages too?

      • Where did you read that?  We plan in the future to have our own NPM repository that customers/partners can access via their Service Marketplace IDs.  From there you will find SAP modules plus a certain white list of public modules which we have already done code scans and open source approvals on. However there is nothing technically stopping a customer from using any open source module via NPM they wish. This will only be an additional service SAP offers to help customers/partners.

          • We need here to distinguish between HCP and HANA. While HCP may have moved to SPS11 and HANA may have moved to SP11 (or is it SPS 11 - not sure) this does not mean that the version of HANA running on HCP has moved to SPS11. 😕

            Yeah - I am confused too.

            Expect this to happen later next year - 2016. 🙁

          • HANA is a database.
            HCP is a PaaS.

            With SPS11, HCP was going to be ordained with Cloud Foundry. It's CF that brings in the polyglot capabilities to HCP. 

            That made me think that it's HCP's version that matters more when it comes to NodeJs support.

            Only time or Thomas Jung can answer this.

  • Once there's a wide array of approved NPM packages, this should certainly see greater uptake of HANA in the non-SAP usage of the platform. But on that point, is this now not a really expensive Node.JS server? Of course, there are many other components bundled with the HANA platform that you get when buying/subscribing - like HANA DB - but HANA DB is not the only columnar in-memory DB out there, and is only now supporting one of the fastest growing/popular server-side platforms out there (Node). Don't get me wrong, this is great work and you should all be very proud indeed. Just curious as to how you see HANA competing with the FOSS implementations of Node (and supporting databases, i.e. AWS Redshift).

    Edit: Redshift is NOT free.

    Edit Edit: I also love the default non-database user auth. That's really great. On further pondering, (one of) the differences with a non-HANA DB in this instance, is that where there is native integration from Node on HANA to HANADB, response times should remain lightening fast.

  • Given SAP's notorious habit of declaring so much new things creating hype and then killin it, many small time developers should be worried.

    SAP is playing with Java and Node.js and then there's talk of BYOL related stuffs. They once had a language called RIVER, then it was killed now learn UI5 and it's nuisances, I am waiting when SAP will throw the towel on UI5. Now Node.Js commitment, CAn SAP promise that our investment in learning these stuffs won't go in vain like so many times in past. There are so many confusions in SAP's ecosystem it's like a dark jungle, where some influential people play with their toys try to push it down and when theyb are done they throw it away.

    • When you "sign on" to be a "developer" (programmer, software engineer, what have you), you are committing yourself to continuous learning (new languages, technology, etc). This is not an "SAP thing". It is across the board. It's all part of the game. If you do not get that, or do not wish to "play" anymore, then bow out and make room for those that still have the passion for it.

      SAP is no different than any other company. They have to evolve to stay alive. In fact, for a company their size, I have been impressed at how "nimble" SAP stays over the years. It is actually quite amazing how they can incorporate some of these new technologies in and out.

      Personally, I can not even begin to rattle off to you all of the technology/models/languages I have had to learn over my many years working in the SAP world. It has been challenging, but for me, that is what the fun of it is. I cannot see how those "accountant" folks can do the same monotonous job day in and out (credits equal debits hahahaha). That would drive me wayyyyy more insane than trying to keep up with whatever new language/model SAP rolls out. 😉

      • I agree on that.

        Since 2011 I heard that NodeJS is a must for any software developer .. and I agree with that, no matter what SAP does with it.

        About SAP killing their current bets.. well.. Google does the same thing (Google Reader, Orkut, Bing and so many others). Facebook recently shut down Parse.

        What about all those developers who were using them? What about all software extensions and integration with all those platforms? They are now done in better technologies that are paying off.

        • There's a difference when you kill a product or technological platform underneath it and a product. And enterprise software is not governed by elements of customer fickleness.

      • Well Christopher I have no plans to bow out so soon 🙂 , I am just getting started but I don't have that energy and time to keep experimenting, I think I am a damn good developer but for me each new technology is a learning opportunity and an investment opportunity. and if the returns are not good then it's not good. For my passion i will write a iOS app or Windows app I won't be spending time in SAP. It becomes too hard for SI vendors to invest in new technologies given how nimble at times these vendors are at times. SAP's too much nimbleness is one reason why customers wait so long before taking the leap of faith 🙂

      • i think i will speak for the rest of accountants out there, but if you try to decipher the changes to tax statutes in different jurisdictions or accounting standards like revenue recognition, you will quickly notice that there is a lot more to accounting than making debits equal credits.

        keeping up with technology changes on top of it with IRS still using paper faxes and suffering from authentication and identity theft issues, finance IT person's day is far from dull.

        • Sorry, I guess I should have used my "sarcasm" tags there (<sarcasm> put sarcasm here </sarcasm>....that "example" is just an old joke among engineers (at least from where I am from) "it's just hard can it be? credits equal debits" 😛

          • Hi Christopher,

            Can you please guide me to some good links and possibly books for learning XS development for hana, i searched sap press but nothing there on xs targeted audience.



          • Node.js isn't too bad...LOTS of tutorials out there and you can even use sites like Cloud9 ( to do Node work without having to do a local install. Keep in mind it is simply a server....request and what the request is and how you respond is where it gets complicated and you often will use additional libraries (like Express) that you have to become familiar with as well. Good luck!