Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
sufw
Active Participant

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

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!

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:

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

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.

76 Comments
sufw
Active Participant
0 Kudos

Hi Chris,

First of all thank you for taking the time to write a very detailed and reasoned response. Even if we don't agree on everything, I really do value the discussion, and I believe others do as well. It's great to see someone who is as close to the product and its thinking behind it, go through the effort of penning a response.

I'll try to explain my thinking a little more behind each of the points you have called out; I hope it helps, even if that is by making my ignorances clearly visible :wink: The order of the points is a little topsy-turvy, but here goes:

Regarding your Point #3

I know the REST architectural style is not concerned with efficient communication, and that efficiency is in fact readily sacrificed at the altar of compliance with the universal interface presented by HTTP.

Despite this, increased efficiency is often a happy coincidence of building an API along REST principles. Not always or even most of the time, but I'd venture that this usually holds for simple "get me some data" type interactions which are the most common ones in terms of volume in my opinion. Most end user-facing apps I can think of fetch more information from a server than they push to it, so the innate cacheability of GET requests is a big bonus. I couldn't find any stats on this to be back me up, but did come across this break-down of HTTP requests to a large CouchDB system (A RESTful JSON API is its native DB interface), which showed that GET outnumbered PUT + POST by a factor of 35:1.

Having a super-lean, cacheable and bandwidth-efficient REST API is of little value in my books if its backend implementation is crazily slow - e.g. by making serial roundtrips to various (non-cacheable!) SOAP endpoints, discarding 95% of the bytes in the responses and fitting what remains into a lean JSON format. Sure, it'll be lean on the wire between the consumer at the REST API host, but efficient this is not.

This comes back to your Point #2: I'm not a big fan of "lipstick on the SOAP" patterns like these, and agree Gateway was neither designed for this, nor does it particularly well (the MOC stuff Jeff pointed out excepted). This section was partly in response to several members of the community expressing their desire for exactly this functionality - and I wanted to point out that this might not be the best idea. Didn't make that really clear though, did I?...

However, let's say that I wanted this anyway because I'm more concerned with network performance between my API server and a mobile user in central Africa, than I am about wasting a bunch of CPU cycles in my data centre. Since Gateway wasn't designed for orchestrating multiple SOAP services into a single OData one, I'll use Apigee/Vordel/Layer7/Mashery instead as this stuff is (part of) their bread and butter. Those products are also far more capable reverse proxies for APIs, with SLA reporting, quota enforcement, payload inspection for nasty stuff, etc. etc.

Since I'm in Enterprise IT land, I always strive for the "1 system to rule them [use cases] all", so this would become my single API gateway through which all API requests must flow. Since many organisations are falling over themselves provisioning APIs, and many APIs will need data from non-SAP systems, this is bound to happen.

However, now I've neatly cut out any security benefits which I may have obtained by having a separate "hub" Gateway system. Again, this further reduced in my mind the value of the "hub by default" deployment model.

Regarding Point #4

I am directly contradicting SAP's recommendation for a central "hub" Gateway system by default, because I simply cannot see how the cost  of another dev/test/volume test/prod ABAP landscape "only" for Gateway could justify the potential benefits of such an architecture for any but the very largest of SAP customers. Sure, no argument if you have 40 ECC systems scattered around the globe, but very few customers have that.

I work for one of the biggest SAP shops in Australia; we run ERP, CRM, SCM, SRM, BW, PI, EP, and a whole bunch of 'peripheral' stuff, and in my opinion even such a landscape wouldn't justify a separate Gateway landscape for cost reasons. This kind of comes back to your Point #1 - in my books Gateway simply isn't complex or resource hungry enough that it couldn't easily be run on the backend systems without impacting their performance.

This also introduces a single point of failure which could take down all your APIs. Since Gateway is largely stateless, that can fortunately be mitigated against using standard HA procedures, but this adds yet more cost and complexity...

And lastly, taking the 40,000ft perspective, I don't expose all SOAP web services out of PI and have it make RFC calls into the various backends... Why would I apply that pattern to Gateway?

Regarding Points #5 and #6

You are correct that I don't make that distinction, and to be honest it's largely because I am (currently) largely ignorant of the impact of this distinction. It's something I need to read up on more.

Since this whole comment thread is already long enough, I won't go into SUP very much other than stating my belief that access to backend data and functionality is a significant part of SUP's value proposition for most mobile use cases (i.e. ones which don't involve local persistence of transactional data other than caches). And since Gateway does that a lot better than SUP, it reduces the value proposition of SUP for a lot of mobile use cases. Don't get me wrong, I'm not saying all, but maybe ~50%? - does SUP really add value to a mobile timesheet approval app whose simple UI and lack of local data storage means it could more easily be deployed as a mobile web app talking to a Gateway API, than via SUP?

</rant>

Some things really are easier in XML than JSON 😛

Sascha

former_member181883
Active Participant
0 Kudos

I'm not in marketing....

:smile:

former_member181883
Active Participant
0 Kudos

Hi Alisdair

The product catalogue distribution idea is a perfect use case for Gateway.  In fact Netflix has been exposing their entire film catalog this way for quite a while.

Regards

Chris W

former_member181883
Active Participant
0 Kudos

Hi Sascha

Although I don't have any hard an fast stats to back up my hunch, I'd venture to say that the ratio of GET:POST/PUT requests you've seen for CouchDB will be similar for Gateway based solutions.

Of course the backend implementation must be as efficient as possible.  I regularly point out to the GW100 students that if they want to write a custom Gateway service that executes in a hub server, then they should be very careful when making RFC calls (particularly BAPI calls) into the backend server.

BAPIs tend to have large and complex interfaces that send far more information than is actually needed by the client app.  Therefore, all RFC calls made from a Gateway Hub to a backend should also be as lean as possible.  Otherwise, you end up creating a Gateway service with a lean client interface, but a bloatware backend interface.

As an aside, as far as over-the-wire data volumes are concerned, on average, an OData message transmitted in JSON format will be 2.5 times smaller than the same message sent as XML.

However, you should be aware here that there is no standardised representation of an Atom message in JSON format.  Therefore, if you are mapping OData properties to Atom properties (e.g. by using the set_as_title() or set_as_author() methods in the DEFINE method of your Model Provider class), then the mapped OData properties will be missing in the JSON representation of the message.

As for the value proposition of SUP - this is a thorny question!

For situations in which offline scenarios are needed, the use of SUP makes good sense.  Even there however, there are alternative solutions that could be implemented.  For instance, one of our Gateway ramp-up customers wrote a very nice iPad app that communicates directly with the Gateway server (via a reverse proxy) over a 3G network.  This client app can work quite happily in an online or offline mode because the developers built that functionality themselves.

Also, you should bear in mind that the current state of play with SUP and Gateway is that SUP acts only as an HTTP proxy for OData communication (with some authentication capability).

So to address your question of "Does SUP really add value to a mobile timesheet approval app...", I think you'd need to evaluate more than simply the functionality of the client app.  You should also consider additional factors such as app onboarding, user management/authentication and client device management (e.g. Afaria).

All things considered concerning Gateway installation options, I'll have a pow-wow with the Solution Managers in WDF concerning the way in which this topic has been handled.

Personally, I think we'll have to position the "preferred" installation option based on the size of the customer's system landscape; where the preference will vary based on system landscape size/complexity.

To continue with the astronomy analogy, if your system landscape looks like a photo from the Hubble Space Telescope, then you will prefer a different installation approach than if your system landscape looks like a photo of the sun...

I'll have to get back to everyone on this...

Regards

Chris W

sufw
Active Participant
0 Kudos

Hi Chris,

+1 on just about everything. It also sounds like you're taking a great angle on GW100 - would be lovely if there was a version of this course in Australia at some time in the near future! Thank you for the great exchange of thoughts, and am always happy to help in any way I can.

Sascha

0 Kudos

No S**t :wink: Otherwise you'd probably be spouting the Gateway =  "people centric" slogan that we've all come to adore so much :sad:

I think many of us can see the value in a A2A model for REST - it's just the message/marketing seems to be going the other way. I refer to just a few of the SAP and SCN links that have texts describing Gateway as "people centric" - not A2A.

eg:

http://scn.sap.com/community/netweaver-gateway

http://scn.sap.com/community/developer-center/netweaver-gateway

http://help.sap.com/saphelp_gateway20/helpdata/en/e7/c3f9008d9044f5895b9b763a0f05e2/content.htm

SAP NetWeaver Gateway

Enables people-centric applications to consume SAP Business Suite data through popular devices and platforms in an easy and standards-based fashion.


Jeff-Gebo
Advisor
Advisor
0 Kudos

Hi Sascha,

yes, the OData signature would need to be the same...but that said, I would tink you could create a generic Signature for such a Customer odata entity no matter what the backend. Of course the internal implementation would be a bit different for SAP systems (RFC calls must likely or direct selects) vs. Salesforce systems (WS calls)...but technically it would certainly be possible.

Another nice feature somewhat related to MOC is that you can do role based routing...so customers with large landscapes can direct some users to system in EMEA and other users to a system in North America based on assigned roles.

Nice blog Sascha...cool that it is regained life 5 months later! 🙂

Cheers,
Jeff

Jeff-Gebo
Advisor
Advisor
0 Kudos

Thanks Anthony!

As for pricing, I avoid that topic like the plague! 😉

As for Gateway and the technology, I really like it...especially now that it supports JSON which shrinks payload by ~2.5X. This has ripple affects on both server and client...server is faster because the document it builds is smaller...client is faster because it doesn't have to parse a giant XML document. Anyway, this technology is something that is much needed out there...and I have to believe that the pricing/demand will work its way out...we'll see.

Cheers,
Jeff

former_member181883
Active Participant
0 Kudos

Hi Sascha

I'd love to take a trip Down Under again to run the course.  The only thing is, its a very long way to travel just to give a 3 day course.  So, I guess I'll have to add at least week's consultancy to the trip.

Any openings?

:smile:

Chris W

js2
Product and Topic Expert
Product and Topic Expert
0 Kudos

There is a GW100 course scheduled in Melbourne later this month.... Is this a different course to the GW100 Chris is saying he's just written? Its obviously not the same trainer.  😉

I worry that the Melbourne one would be given by someone that has just come off the course themselves.

Former Member
0 Kudos

I've missed these threads and rather spellbound at its length and nature. Excellent.

Thanks for your concern over the proposed GW100 in Melbourne.  I will be teaching this course in conjunction with SUP530 course covering SUP ODP online application development. 

Chris, Jeff and myself are part of the same team (Customer Solution Adoption) and have been working extremely close with development providing your feedback in each iteration of the product.   We as a group have been involved with each project globally since its official release and have published many how to guides , Tech-ed sessions etc.  Given the very theoretical conversations posted in these threads I think is safe to assume my knowledge of Gateway will be more than sufficient. 

I am based in Melbourne and interested in working with any customers thinking about Gateway.   If this is an agenda item at the Australian User Group then I will get involved to articulate gateway capabilities based on real experience.  JMOY – This would be a great opportunity to partner if you have a slot already booked. 

Cheers,

Andy.

js2
Product and Topic Expert
Product and Topic Expert
0 Kudos

This is good to here Andrew. Unfortunately I can't make this June course (someone rudely put a go-live at the end of june) but would like to do it later in the year if one is scheduled.

Former Member
0 Kudos

And to think I was about to enrol.....

:lol:

Wish I could do this course, please send course material... :razz:

Former Member
0 Kudos

No problems.  Stay in touch as it is the community that can drive Education to schedule it again shortly.  My reply was a bit tongue in cheek so take it like Anthony's comment below.

Typically throughout the year we rollout numerous topic specific webinars so if there is demand I'm happy to run these in the local timezone and do Q&A.  I know they are not face to face but if there is something we can provide clarity around then there is nothing stopping us from doing it. 

SAP Customer Solution Adoption Know-How

Andy.

Former Member
0 Kudos

Big A,

Happy to do Webinars, user group events etc, etc, etc.

Andy.

sufw
Active Participant
0 Kudos

Hi Andy,

good to hear that you'll be teaching that course - I know the attendees will be in good hands for sure. Unfortunately I won't be in a position to attend this one in June but would be interested in a course a little later on, maybe in late 2012/early 2013...

(Andy helped us install and explore Gateway 1.0 as part of a customer validation exercise, so he sure knows what he's doing).

Sascha

former_member182638
Active Contributor
0 Kudos

Hi Andrew, thanks for the offer to partner on my presentation.  I'll ping you next week and we can discuss options.  This year the event is co-hosted with the SAP World Tour so it is possible there might also be an SAP presentation planned for Gateway already.  Either way, as you know I'm always happy to collaborate.

And great to see yet another Aussie enter into the discussions.

Cheers

John

Former Member
0 Kudos

Hi John,

No problem.  It will be great to have a chat.  We will have involvement via our Solution Management and Product Management Teams I'm sure.  We will take this offline.

In regard to this topic I'm of the opinion SAP NetWeaver Gateway offers a flexible architecture which meets the needs of a customer subject to their own preferences around deployment and development.  With the exception of the abstracted theoretical discussion on REST this debate is similar to what we saw with PI and federation topics given the usual variables of security, TCO, performance, administration etc etc etc.  A customer needs to understand their priorities and deploy an architecture to meet it.

The latest features and roadmap represent a significant step in capability in my opinion going beyond what a developer could realistically scale and maintain within the parameters of a normal implementation.  As an example in SP4 if you look at monitoring, tracing and error diagnostics there are really powerful tools available beyond application logs and ST22 dump analysis. You can forward navigate, jump into code where an error occurred, save payloads, provide reprocessing capabilities, system traversal, inbuilt REST client and save test cases for possible unit testing etc.  Just to name a few improvements.

I tend stay out of the licensing discussions due to the nature of IT and the fact it changes so very quickly.  I personally concentrate on creating SDN content that articulates real capabilities to accelerate developers and increase adoption.

Speak soon JM :-),

Andy.

DouglasCezar
Contributor
0 Kudos

Hi Sascha,

  I'm on openSAP's mobile course and your blog post is now really helpful in understanding options for someone like me who is an ABAP developer looking for ways to integrate our ERP background to mobile apps.

  Thank you for the effort.

Best regards,

kammaje_cis
Active Contributor
0 Kudos

Hi All,

Nice discussion.

I believe that 'Truth' is always 'in-between', whenever there is an argument.

NW Gateway is not a single software component and it can be logically seen as two different pieces. 1. Backend Enablement Part (also know as BEP) 2. Hub Part

The first part gives a development environment and tools to 'create' a OData service but not to 'expose' it to the outside world.

As per me this part is good to be with the ECC/backend thus making available all the backend objects accessible (Ex: Classes). Putting this part on a different system would make us dependent on RFCs alone.

The second part/Hub part exposes the Services catalog and also can support multi origin services.  

This part better sit in a separate box acting as a single 'gateway' for OData services, allowing better control. Also it makes sense to have a single services catalog for an enterprise.

best regards!

Krishna

Andre_Fischer
Product and Topic Expert
Product and Topic Expert
0 Kudos

A more recent document about the deployment options can be found here.

In the meanwhile SAP NetWeaver Gateway Server components have also been downported to NetWeaver 7.0 allowing for an easier embedded deployment.

http://scn.sap.com/community/netweaver-gateway/blog/2013/05/27/sap-netweaver-gateway-deployment-opti...

sufw
Active Participant
0 Kudos

Thanks for the nice feedback Douglas!

I can also recommend the newer blog by andre.fischer on this topic. He also points out that as of 7.40, GW is part of the standard install so you effectively are nudged into the "distributed" deployment. (IMHO this is the better approach anyhow)

Sascha

petr_solberg
Active Contributor
0 Kudos

Hi Sascha,

exellent blog.

I have just awoken this one and applebyj 's  similar blog question.

We're a year down the line now, has anything changed, any lessons as this product matures.

Shall we treat it like an Integrated ITS or like a Central Portal ?

I've put the same question point on John's blog and hopefully as they are so intertwined readers will be reading both blogs.

For the sake of completeness it will be best if we choose one of the two blogs as the one to continue the conversation, I leave that decision to the first responder.

Kind regards,

Andy.

petr_solberg
Active Contributor
0 Kudos

Hi All,

to avoid duplication of effort and confusion and cross posting,

applebyj  has responded to this on the other blog so let's

continue this conversation over there.

Best regards,

Andy.

Former Member
0 Kudos

Thanks for the blog. If one decided to go with the NW GW standalone approach, is one GW enough to support let's say Fiori for a user-base of 3000? Is there anyone that clustered more than one NW GW for load balancing?

Labels in this area