Blogs

Sascha Wenninger

Opinions on deploying NetWeaver Gateway
Sascha Wenninger Active Contributor Bronze: 250-499 points
Business Card
Company: Australia Post
Posted on Jan. 09, 2012 03:16 AM in ABAP, Mobile, Ranting, SAP NetWeaver Gateway, Service-Oriented Architecture

Subscribe.Subscribe
Print. Print
Permalink Permalink
Share

It all started with a tweet by SAP Mentor John Appleby (@applebyj)...


@applebyj: Question SAPpers, should you install NW Gateway as standalone or integrated? What are the decision criteria?

 

Quite a few people responded in short order via twitter with their thoughts on the topic. Aside from John being well known (and followed on twitter), this is surely indicative of the level of interest in the technology. Kudos to SAP for getting the community excited with their products! On a complete tangent, I just love how twitter has this ability to stimulate such exchanges in 140 characters or less!

@vijayasankarv: @applebyj my guess is probably 80% peeps can use it on business suite server itself..choosing a stand alone for complex landscapes

@thomas_jung: @applebyj The developer in me likes it standalone so it can be upgraded independent of the NetWeaver layer under your ERP #shinyobjects

@qmacro: @applebyj @thomas_jung yes need to balance those factors also. Middleware is always good (dislike the term, but I have nothing better).

@jhmoy: @applebyj SAP says: For a prod env, we recommend that you install the SAP NW Gateway system separately from the application back-end sys.

 

 

So far so uncontroversial. Many of the conceptual architecture diagrams I have seen at TechEd and elsewhere follow this approach - like this one from MOB130 at TechEd 2011:

 

Vison: People-Centric Content from Multiple Sources

 

 

However, my position on the matter was a little different:

@sufw: @applebyj Integrated IMHO. I see GW as being analogous to the SOAP runtime rather than Yet Another Middleware, plus REST is abt efficiency.

 

Go for Integrated deployment

My response runs counter to the recommendation made in the admin guide quoted by John Moy, so let me try to explain why I feel an integrated (i.e. remote) installation of NetWeaver Gateway is usually most appropriate architectural choice.

 

NetWeaver Gateway is not that different

Like others, I generally see Gateway in much the same way as the SOAP Runtime or the Proxy framework which already exist in ABAP systems – an add-on to an existing system which provides interfaces by facading internal APIs like RFCs and BAPIs. Gateway provides another set of doors alongside the existing SOAP-based openings through which other systems can gain access to the data and functionality of the Business Suite. Those consuming systems need not worry about the proprietary protocols required for RFC communication but can choose to interact using open standards. Gateway simply provides another, different open standard in the form of OData to complement existing SOAP-based interfaces.

 

From what I saw during our hands-on work on the NW Gateway 1.0 “beta” program, and from keeping abreast of the evolution of this into v2.0, the product isn’t complex enough to warrant a separate installation in my opinion.

 

NetWeaver Gateway is not middleware

Gateway’s raison d’etre is to expose representations of internal resources (in the REST sense) from Business Suite systems. However, it doesn’t provide any tools for building OData representations by composing or re-composing existing data from multiple systems, or even from multiple different BOR objects, into a new aggregate representation. Essentially, anything which isn’t a subset of a single BAPI return requires custom ABAP code to be written.

 

In a central, stand-alone installation as shown on conceptual architecture diagrams like the one above, this ABAP code would have to get data from the various underlying sources from which the single exposed OData resource is composed from. How would this work? Gateway doesn’t (yet) provide any mechanisms for consuming SOAP enterprise services and only relies on RFC calls. Not nice. In order to call SOAP web services, I would have to write custom code to aggregate the returns of multiple calls to ABAP consumer proxies into something the Gateway runtime can then transform into OData. So lots of "glue code". Of course, anything is possible using custom code, but I would expect some actual tooling here if the vision of a central, stand-alone Gateway deployment is to be realised. Middleware systems like PI do provide such tooling and don't require developers to write lots of mundane glue code...

 

This leads me to conclude that a single, detached layer of Gateway composing OData resources from a variety of backends is essentially wishful future-state thinking rather than something which customers can adopt right now using Gateway 2.0 and without much fuss and coding. I do have some ideas on what I’d love to see in Gateway 3.0, but that’s the subject of a future blog...

 

Efficiency wins!

One of the appeals of designing APIs in accordance with REST principles is their greater simplicity compared to SOAP and the associated WS-* mess. To me, any kind of “application gateway”-style translation or bridging – such as building up a RESTful representation by making 3 SOAP/RFC calls to the same backend – negates a lot of the efficiency benefits of REST. One could even argue that it makes things worse by adding another layer of complexity/failure.

 

When all else fails...

Security, rate-limiting and auditing benefits of a stand-alone instance are pretty weak arguments here as well. Maybe I’m being cynical here, but I only ever see these come up once all other arguments have been exhausted.

 

I struggle to see customers exposing any ABAP stack to the Internet without some kind of application gateway or reverse proxy in front of it. Once you have that layer, the security arguments espoused in the admin guide become moot. Those specialised tools are much better at security, auditing and rate limiting than Gateway or any other general-purpose system is ever going to be. It’s their bread and butter after all! Specialist vendors like apigee, Layer7 or Mashery offer API gateway products with very impressive features around load balancing, throttling, DoS protection, SLA enforcement and versioning of Internet-facing APIs. Companies are likely to want only one such API gateway because there are economies of scale here. And since they will likely want to provide APIs from non-SAP systems as well, using Gateway for this role does not seem attractive.

 

Go for the simple option!

So in my mind, installing Gateway on each Business Suite system is preferable as it is the simplest option and provides some advantages over a stand-alone deployment.

 

Companies with multiple systems such as CRM, ECC and SRM may end up with multiple Gateway installs. But because Gateway is pretty painless to install and configure and essentially runs itself, this should not cause any discomfort.

 

If there ever is a requirement for a stand-alone instance, and the product has some decent tooling which makes such a thing worthwhile, then this can always be retrofitted to result in a hybrid landscape. Nothing wrong with that. In my mind, that is no different to modern SOA deployment architectures, whereby most systems have SOAP stacks which may (or may not, depending on your beliefs) be supplemented with a central SOAP stack in the form of an ESB.

 

...but it depends...

One big hurdle right now is the fairly demanding version requirements. Unless you’re running NetWeaver 7.02 SP7 or later in your Business Suite system, an integrated install is a non-starter. However I am sure this will change for the better; it was mentioned in passing at TechEd that Gateway is planned to be on its own release track in the future and this could improve the situation, or (fingers crossed!) even result in it becoming available for older releases?

 

If you must have NetWeaver Gateway right now and your Business Suite does not meet the version requirements, then a stand-alone install on a small ABAP stack is always an option, and it’s great that SAP have provided a choice here. However, I would only ever regard this as a tactical solution.

 

The above does not apply to the Sybase Unwired Platform in my mind. SUP is a much more complex (read fully-featured) product with its own architecture, persistence, management mechanisms, etc. and is not closely coupled to any backend implementation in the same way NetWeaver Gateway is. In my opinion, SUP is well deserving of its own installation, and I can see a single instance serving all connected mobile devices and backends.

 

Thanks are also due to my colleagues John Moy (@jhmoy) and Jacek Klatt (@yatzeck) for being passionate and knowledgeable discussion partners in an email exchange of views on John Appleby’s tweet which ultimately led to this blog.

Sascha Wenninger  Active Contributor Bronze: 250-499 points is @sufw on twitter and an Architect for Australia Post, focusing on integration matters


Comment on this articleCongratulations to making it to the end! What do you think? Please feel free to weigh in to the debate in the comments!
Comment on this weblog
Showing messages 1 through 25 of 25.

Titles Only Main Topics Oldest First

  • SAP NW Gateway - JavaScript
    2012-01-20 00:40:43 Acos Rodriguez Business Card [Reply]

    Hi Sascha,


    nice blog entry!!!


    I am currently working on a prototype based on SAP NW Gateway for mobile devices using datajs library.


    Unfortunately, this library only works with IE, as soon as I try to access data through Firefox/Chrome/Safari browsers, it does not work. Did you know about that? Maybe you can give any clue to get this work.


    Thanks for your help.


    Regards,


    Acos Rodriguez

    • SAP NW Gateway - JavaScript
      2012-01-20 03:41:37 Sascha Wenninger Business Card [Reply]

      Hi Acos,


      Do you know what specific error you are getting in non-IE browsers? I would be surprised if the library does not work at all in those browsers, but cannot confirm myself.


      Have you seen Chris Whealy's excellent HowTo guide on SDN on exactly this topic - maybe this might help?


      http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/505619a7-73bf-2e10-fe96-da9a86b23120


      Regards,


      Sascha

  • How about installation on PI
    2012-01-11 13:32:13 Fons van Nuland Business Card [Reply]

    Great blog Sacha,


    I agree with you that for landscapes that are not that complex or for the use of little services the best way to implement Gateway is install it on your relevant SAP component as an add-on.


    However when there is a complex landscape or there are security regulations to be met than you might have to choose for a separate installation. This choice brings an additional component in your landscape with all costs and troubles of the additional component.


    How about installing Gateway as an additional component on your PI system instead of adding an extra compenent. All security issues shall already be covered by your PI system and your PI system will already be connected to all the relevant SAP systems.


    What do you think about that?


    Best regards,


    Fons van Nuland

    • How about installation on PI
      2012-01-11 14:19:46 Sascha Wenninger Business Card [Reply]

      Hi Fons,


      Installing Gateway on PI is also something we considered. However, there are wo obstacles to this as we saw them.


      First of all, Gateway requires NetWeaver ABAP 7.02 but there is no corresponding PI release as PI (along with CE, BPM, etc) is on a different branch of NetWeaver compared to the Business Suite. I don't know whether it is possible to install Gateway on the ABAP stack of PI 7.31 for example. I have seen nothing from SAP which suggests this would work, but we also never tried.


      PI 7.3 was the first release of PI which can be installed without an ABAP stack, so SAP have effectively deprecated it for PI. I'm sure a lot of customers won't immediately get rid of their ABAP stacks (especially if using lots of ccBPMs), but it means hosting Gateway on PI would only be a tactical choice even if it was possible.


      Regards,


      Sascha

  • Rest runtime
    2012-01-10 03:52:08 Olivier CHRETIEN Business Card [Reply]

    Hi,


    I am with Sasha on this subject. We already have dozens of servers for SAP landscapes. A standalone Netweaver Gateway is just an economical aberration (even if it would be nice technically) : One more landscape to install, to run, to backup, to supervise, to patch, etc...


    In my opinion, the Netweaver gateway should even not exist as an add-on but just as the REST runtime like there is the SOAP runtime.

  • Great points, but I'd still recommend Standalone
    2012-01-09 05:41:37 Jonathan Wilson Business Card [Reply]

    Hi Sascha,


    Great blog, and I agree with all the points you make, particularly the one about the similarity between NetWeaver Gateway and the SOAP Runtime.


    However I believe that there is one very strong argument for Standalone deployment. It is found in Note 1569624 (Installation/Delta Upgrade of SAP NW Gateway 2.0), which contains the following point:


    - It is not possible to uninstall GATEWAY 2.0. Before you install the GATEWAY 2.0, keep in mind that you cannot uninstall ABAP add-ons.


    So unless you are absolutely certain that you want the NetWeaver Gateway components in your Business Suite system forever, then a Standalone deployment is probably the safest option, as it gives you the ability to remove Gateway from your landscape in the future, should you wish to do so.


    I believe that this recommendation is especially relevant for anyone who is evaluating Gateway, as you will most likely want to avoid making irreversible changes to your Business Suite systems until you are certain that you will want to keep them.


    Cheers,
    Jon

    • Great points, but I'd still recommend Standalone
      2012-01-09 20:55:33 Sascha Wenninger Business Card [Reply]

      Hi Jon,


      Thanks for the detailed response!


      I hear your point on the "permanence" of the Gateway addon in a system. However, this isn't really different to any of the stuff controlled by the switch framework today. I know our ABAP stacks are littered with unused features which can't be removed even if we don't use them. We just disable the ICF nodes so they can't be used, and leave it at that. If something isn't used, then it's unlikely to cause extra work during upgrades. It has a separate area in SPRO, all of its ABAP objects and tables are in their own namespace and it has clearly delineated ICF nodes so I think it would actually be quite feasible to "deprecate" it *if* a customer decides they no longer want it...


      Regards,


      Sascha

  • Great thoughts
    2012-01-09 05:01:09 DJ Adams Business Card [Reply]

    Great thoughts Sascha, you make some compelling arguments.


    Although I don't think there's a one size fits all approach anyway (and I'm sure that opinion is shared).


    One other aspect which may (though perhaps shouldn't!) influence the decision is simplifying the Same Origin policy stuff with XHR calls. Simple deployments with app+data served from same domain.


    The idea of a standalone gateway is appealing at least conceptually, in the same spirit as the early days of initiatives similar to Gateway.


    cheers
    dj

    • Cross-domain not tha big a deal?
      2012-01-10 13:40:11 Sascha Wenninger Business Card [Reply]

      Hi DJ,


      I've had a bit of a think about your XHR comment. Please correct me if I'm missing something as I am not very experienced with this stuff...


      Cross-domain restrictions really only come into play when consuming APIs from a browser. If we were to consume a Gateway API directly from, say a native mobile app, then this wouldn't be an obstacle.


      Now, if we had a web app (mobile or not) which was hosted on one of the SAP systems, and which would cause the browser to make calls to gateway, then we could run into cross-domain restrictions. However, if we host the web app, then we should also have control over the document.domain property of the pages. This could be loosened (e.g. set to myco.com rather than host.myco.com) to resolve this. Even if the app was hosted externally, we're likely to have some control over it as we need to point it at our Gateway system in the first place.


      So are cross-domain concerns really only applicable to "mash-up" kinds of use cases in the context of Gateway?


      Sascha

      • Cross-domain not tha big a deal?
        2012-01-17 06:44:19 DJ Adams Business Card [Reply]

        Hi Sascha


        (It's odd typing that name, I'm used to @sufw :-)


        You're right, XHR/Same Origin Policy restrictions are not applicable to calls outside the browser context, i.e. API-style usage from an App is fine. Also, as you say, if you're in control of the back end, there are lots of options, from reverse proxy all the way through to CORS.


        Loving how your post has generated such a surge of interest - kudos!


        dj

        • Cross-domain not tha big a deal?
          2012-01-18 05:53:09 John Patterson Business Card [Reply]

          Hi dj
          I agree there are lots of options.


          After watching your slightly blurry winning Demojam entry at SITNL, I am interested knowing
          - how you got round SOP using the Google Secure Data Connector?
          - and could did you use a GData API to read the Gateway OData?


          A blog would be nice.


          Cheers
          JSP

    • Great thoughts
      2012-01-09 20:46:13 Sascha Wenninger Business Card [Reply]

      Hi DJ,


      Thank you for your comments!


      "initiatives similar to Gateway" sounds interestingly mysterious :-)


      I do agree that there is no single approach which will work for every one and in every situation, especially seeing as it's relatively early days with Gateway; its demanding version requirements alone do present a solid argument for stand-alone.


      However, given the commitment to OData that SAP has recently shown (for better or worse given that even its inventors describe it as "ODBC for the Web"), I do believe that wrinkles such as the version requirements will go away in due time. SAP has already talked about ByDesign and HANA supporting OData natively, and I'm sure (hope?) it's only a matter of time until Gateway is shipped with every NetWeaver system much like software components like ST-PI are today.


      To me, this makes a stand-alone deployment a largely tactical choice to work around some of these 'wrinkles'. If you are running the correct versions of the backend, then the argument for a stand-alone deployment becomes less convincing in my opinion... But others will have different viewpoints, as this isn't a binary problem.


      Sascha

  • Good blog and discussion...
    2012-01-09 04:46:10 Jason Scott Business Card [Reply]

    Great blog and I agree with your position on the integrated deployment. Simpler and gateway is definitely not "middleware". The last thing we need is another middleware product from SAP.


    Regards, Jason Scott.

    • Good blog and discussion...
      2012-01-09 20:38:53 Sascha Wenninger Business Card [Reply]

      Hi Jason,


      thank you for your comments. Despite having spent the past few years working almost exclusively on PI projects, I have really swallowed the REST Kool-Aid over the past ~12 months and do believe that more, or even all-pervasive, middleware is not always A Good Thing. Sometimes there is nothing wrong with "point to point" integration... :-)


      Sascha

  • You convinced me
    2012-01-09 04:38:53 John Moy Business Card [Reply]

    Hi Sascha,


    I should mention to readers of this blog that my original response to John Appleby's question was to quote some text from an SAP app admin guide which reads as follows ...
    "For a productive environment, we recommend that you install the SAP NetWeaver
    Gateway system separately from the application back-end system. Doing so offers
    the advantage that you can use the protocols between the servers for monitoring
    purposes and protect the system against attacks."


    That said, after seeing your compelling arguments as detailed in this blog, I must say that you have altered my opinion to align with your thinking. Well done!


    Regards


    John

  • My vision
    2012-01-09 04:38:19 Ivan Femia Business Card [Reply]

    Hi Sascha,


    Thanks for this interesting blog, btw I'm considering the stand alone installation still the first option for several reasons:


    * GW Server should be in the DMZ
    * One GW Server could be the front end for several back-ends
    * Having GW installed on each back-ends requires more effort in maintaining and upgrading either NetWeaver or GW Server itself (You should also consider licence charges with several installations)
    * GW Server has some NetWeaver requirements that can not be fulfilled by all your systems


    Regards,
    Ivan

    • My vision
      2012-01-09 20:36:13 Sascha Wenninger Business Card [Reply]

      Hi Ivan,


      as I said the real answer is "it depends" on your requirements and particular situation. For me, my "going in position" is a local/integrated deployment but that just reflects my own position, environment and personal biases. This is likely to be different for everyone.


      However, I would caution against the belief that Gateway in a DMZ can somehow protect your backend from external attacks.


      I for one don't have enough trust in the fairly complex ABAP stack to expose it to the internet directly. To the open-source side of my brain, it smells too much like 'security by obscurity' to be trusted with direct internet exposure. And if someone manages to compromise the Gateway system in your DMZ, then they access the no-longer protected backend... I would strongly prefer a good reverse proxy or even an API management layer in front of it to provide mature tools to protect against DoS attacks for example.


      Your Mileage May Vary of course but thank you for your thoughts.


      Sascha

      • My vision
        2012-01-10 05:01:55 Ivan Femia Business Card [Reply]

        Sascha,


        you're right "depends", but if I have to choice a solution now I will prefer stand alone or consider this as the first choice. Happy you raised this interesting discussion.


        Ivan

  • Just a random thought...
    2012-01-09 04:09:59 Alisdair Templeton Business Card [Reply]

    Hey Sascha.


    Nice work - have to say that I agree with your assessment, though I fear that GW will collect more and more "responsibilities" with future releases. IMHO, a standalone GW deployment seems to be taking on the responsibilities of a "SOA Gateway" - I'm not sure this is where we hoped this would go...


    Although GW as a standalone install seems excessive on its own, it appears that any Customer that will also be doing mobility with SUP will also need NW Mobile, which will have GW installed, so this may impact the deployment decision.


    AT

    • Just a random thought...
      2012-01-09 20:28:26 Sascha Wenninger Business Card [Reply]

      Hi Al,


      yes, I don't think a fat middleware layer is where I would like to see Gateway going either. I think we agree on this - after all, the SOAP runtime in the ABAP stack isn't a big stand-alone layer either...


      John will be able to correct me, but I believe the new SAP mobile apps don't require NW Mobile anymore and make do with just SUP 2.1 and Gateway.


      Sascha

      • Just a random thought...
        2012-01-09 21:45:03 Alisdair Templeton Business Card [Reply]

        Hey Sascha.


        Like you said in your blog - "It Depends".


        Apps like Leave Request, Sales Order Notification etc. don't store any data locally on the device (apart from credentials and some WF context info depending on the app). In this case, you are correct SUP 2.1 talks to ERP via GW.


        Currently, the apps that are supporting offline operation - Field Service, CRM Sales etc use both SUP 2.1 and Netweaver Mobile (for the DOE) - and the "other GW" as John pointed out earlier ;)


        That said, I guess it's possible that the DOE functionality could find its way into SUP in future releases - maybe someone can point to information on this?. Of course, this would be a major issue for anyone that has already implemented these solutions, as its a massive architectural change - so most likely NW Mobile will be around for a while...


        AT


    • Just a random thought...
      2012-01-09 04:30:37 John Moy Business Card [Reply]

      Hi Al,


      I think the GW that is installed in NW Mobile is a different thing altogether? Or perhaps I am misreading things.


      Sascha - well done getting your blog published!


      Rgds


      John

      • Just a random thought...
        2012-01-09 13:56:54 Alisdair Templeton Business Card [Reply]

        Hi John.


        Serves me right for just skimming the installation guides! You are correct, it is the "Gateway for SAP Netweaver Mobile" which is not the same thing as Gateway...But hey, what's another "Gateway" between friends ;)


        I wonder if they will converge at some stage???


        AT


Showing messages 1 through 25 of 25.