Skip to Content
Author's profile photo Graham Robinson

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.

IMG_1174.jpg

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

Assigned Tags

      38 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      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

      Author's profile photo Graham Robinson
      Graham Robinson
      Blog Post Author

      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?

      😏

      Author's profile photo Fabio Pagoti
      Fabio Pagoti

      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.

      Author's profile photo Nigel James
      Nigel James

      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.

      N

      Author's profile photo Graham Robinson
      Graham Robinson
      Blog Post Author

      Like how you ask me a question in person and I say "I don't know" - so then you ask me online. 😏

      However, as you are in Australia, that would be a great question for you to ask Tom at next month's SAP Architect & Developer Summit in Sydney.

      Cheers

      Graham Robbo

      Author's profile photo Nigel James
      Nigel James

      Ahh but I don't recall all of SCN being able to listen or search our conversation ! This way it is on record and gives those who might know the chance to respond 😉

      Author's profile photo Thomas Jung
      Thomas Jung

      The current builds are running on 0.12.7 version of node.js. I'd say its safe to say SPS 11 will likely ship with something around there.  The release of v4.0 version of node came too late in our own development timelines to consider adopting it. Node v4.0.0 (Stable) | Node.js

      However we already have a project to look at moving to node v4.0 right after we push SPS 11 out the door.

      Author's profile photo Nigel James
      Nigel James

      Thanks Thomas. That makes complete sense and thanks for clarifying.

      Author's profile photo John Patterson
      John Patterson

      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.

      JSP

      EDITED: after a couple of coffees

      Author's profile photo Paul Tomlinson
      Paul Tomlinson

      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.

      Author's profile photo Graham Robinson
      Graham Robinson
      Blog Post Author

      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.

      Cheers

      Graham Robbo

      Author's profile photo Thomas Jung
      Thomas Jung

      > 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.

      Author's profile photo Paul Tomlinson
      Paul Tomlinson

      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).

      Paul

      Author's profile photo Sergio Guerrero
      Sergio Guerrero

      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.

      Author's profile photo Christopher Solomon
      Christopher Solomon

      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! 😛

      Author's profile photo Former Member
      Former Member

      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?

      Author's profile photo Graham Robinson
      Graham Robinson
      Blog Post Author

      It certainly should. 😀

      Author's profile photo Christopher Solomon
      Christopher Solomon

      Yes....in my hands-on at TechEd....this is a lot of what we did...including previously built modules....it was VERY nice! 😉

      Author's profile photo Former Member
      Former Member

      From my reading, NPM packages must first be vetted before you'll be allowed to use them on HANA. This could take some time.

      Author's profile photo Thomas Jung
      Thomas Jung

      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.

      Author's profile photo Former Member
      Former Member

      That was my reading of the article. Thank you for the clarification. That is very exciting.

      Author's profile photo Former Member
      Former Member

      HCP Trial instances were supposed to be patched with SPS11 on Dec 3rd. But I don't see any NodeJs features in my trial account. Any idea why?

      Author's profile photo Graham Robinson
      Graham Robinson
      Blog Post Author

      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. 🙁

      Author's profile photo Former Member
      Former Member

      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.

      Author's profile photo Anton Snitko
      Anton Snitko

      I am shouting it from my roof. 🙂 .

      Where I can test it?

      Author's profile photo Former Member
      Former Member

      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.

      Author's profile photo Former Member
      Former Member

      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.

      Author's profile photo Graham Robinson
      Graham Robinson
      Blog Post Author

      I think any time you spend mastering Node.js development won't be wasted - no matter what SAP does.

      Author's profile photo Christopher Solomon
      Christopher Solomon

      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. 😉

      Author's profile photo Fabio Pagoti
      Fabio Pagoti

      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.

      Author's profile photo Former Member
      Former Member

      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.

      Author's profile photo Former Member
      Former Member

      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 🙂

      Author's profile photo Former Member
      Former Member

      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.

      Author's profile photo Christopher Solomon
      Christopher Solomon

      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)...ie. "it's just accounting....how hard can it be? credits equal debits" 😛

      Author's profile photo Former Member
      Former Member

      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.

      Regards,

      Prasenjit

      Author's profile photo Christopher Solomon
      Christopher Solomon

      My best source is Thorsten Franz . He can tell you any and everything you need to know on HANA development PERIOD! GREAT guy too!

      Author's profile photo Former Member
      Former Member

      Thanks Christopher, I have started following Thorsten now. 🙂

      I made up my mind I will learn node.js.

      Thanks,

      Prasenjit

      Author's profile photo Christopher Solomon
      Christopher Solomon

      Node.js isn't too bad...LOTS of tutorials out there and you can even use sites like Cloud9 (http://c9.io) to do Node work without having to do a local install. Keep in mind it is simply a server....request and response....now 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!