Why SMP and Why Not

Recently, i was exploring few options for a giving up a solution architecture to one of my customers who needs a mobile solution which gets synchronized with their SAP back-end system. So i just thought to Blog it for my friends out here and i end up figuring out that there are two major ways for doing this 😕 i.e,

Using SMP (SAP Mobile Platform)

Using JCo (Java Connector) i.e, without SMP.

So here are the advantages i figured out for both the approaches:-

Using SMP:

There are Native(Object API, ODATA) and Hybrid application(Html5 based) development approches. The platfrom provides you to develop Hybrid applications easily by drag and drop.

You can integrate various backend systems easily so that you handle connectivity of systems.

Be able to create offline scenarios with SUP platform. (Native development)

However this is an interesting question and if I understand it correctly we are basically trying to understand here whether to use a middleware like SUP/SMP or not or perhaps just use another middleware?

The question can only be answered through some analysis of requirements topics like the following should point towards whether we should be using SUP/SMP or not:

Security

How sensitive is the data you are planning to mobilise and do you need the extra security mechanisms that SUP/SMP brings 😕 ?

How do you plan on authenticating your users and will you be able to do that in a large scale roll-out without a box like SUP/SMP in the middle.

Do you require on-device security enhancements to protect the data you transmit to a device.

Synchronisation

Are you planning on synchronising and storing data on the mobile devices and if so have you considered how that sync will happen without a middleware to manage the sync process.

How do you plan on achieving the synchronisation between your devices and the back-end server (protocols, packaging, parsing etc.)

Synchronization

Are you planning on synchronizing and storing data on the mobile devices and if so have you considered how that sync will happen without a middleware to manage the sync process.

How do you plan on achieving the synchronisation between your devices and the back-end server (protocols, packaging, parsing etc.)

Device management

Do you need the connection/device management brought by SUP/SMP

There are a lot of topics we would need to look at before we can make a decision on this and we will not be able to get a clear answer here without completely understanding the requirements and what we need to achieve. Its also worth looking at how we have delivered other applications (if we have) in your environment including what worked/did not.

There is a big complexity while mobilizing the enterprise. SMP is meant to make the process easy and secured. Few of the advantages of using SMP when compared without a middle-ware are:

Device Heterogeneity – Supporting the rapidly expanding and changing selection of devices and device OS on the market.

Data partitioning for mobile app – Separating and securing data storage. Encrypted data storage in the device. It can be done in few lines of code/ automatically it will be provided by SMP.

Data transport and app security – Securing data while data transfer.

Bandwidth and latency an connectivity issues (important one) – Easy management of multiple connections, easy synchronization methods, caching between EIS and devices. And allowing the users to work in always connected, occasionally connected and some times connected environments.

Device and app management – this includes device upgrades, deployment of new apps, upgrades without affecting production.

Apart from the above we don’t want to bother about the security, logging, tracing, SSO ( in few steps ).

So these are the reason to go with SMP/middle-ware.

Recently SAP released apps based on SAPUI5 ( FIORI series ) and it is not based on SMP. Again, these apps are based on web technologies hence the performance we can’t expect as good as native apps.

Finally, selection of development approach is purely based on the available resource and business requirement. If the company is planning to go mobile and the budget is low means they can mobilize there process with NW gateway. They don;t need to spend on SMP. So selection of a technology is based on the above factors and SAP is providing us the completing set of solutions from which we can select a solution.

Yes exactly Midhun. Correct solution depends on such factors & that is why now SAP is providing the range of solutions & approaches to develop. However it completely depends on our requirement which solution to choose.

But here i’d like to add that from 3.0 SAP is most likely to change lot of things. As far as i know SAP is looking for much tighter integration with Netweaver Gateway & also they will be providing the Offline Capabilities through the ODATA channel as well.

I would have a look at how the Fiori apps are created and add it to your second non-SMP list. The big point about Fiori is that it uses ODATA via the Netweaver Gateway. So all the security and data change is based on the Gateway.

I would not create a mobile app using JCO – Old technology. It will work fine, especially if you are a Java on mobile fan. But Java on a mobile is all too slow and jerky for me and crashes randomly ! You can guess I am not a fan.

Integrated SAP Netweaver Gateway & SMP can always provide GREAT solutions. And after SMP3.0 this integration along with ODATA will provide the much more benefits as Offline capability is expected to be coming in that which is a miss in current scenario.

But David, here again we are gonna face the “How can I help you” scenario when the customers are not interested in buying SMP licenses & wants the mobile solutions directly based on Netweaver Gateway beacuse i Gateway licenses comes handy with their current licensing landscape & used to be available with them already.

You should have a look into the SMP Cloud version as well. Initial investment is low. Setup of the Cloud connector and configuration of the SMP can be done in a day. The REST services are the same as in the on-premise version as well.

However the tools available today gives the ability to tailor the customer’s need, the win depends upon the customer’s take on their Enterprise Mobility investment & the belief on the technology/architecture we propose 😉 .

Just for completeness, I will point out that the (Syclo) Agentry platform, which works both independent of or within SMP 2.3 and above, uses JCo as the integration mechanism with the SAP ERP backend. It is very stable and as Agentry is by design a default offline architecture, is not so sensitive to the limitations mentioned for JCo.

All the “points” and “issues” regarding JCo are just not true as JCo is being put in a context here that makes no sense. JCo shouldn’t even be in the list. When are you doing an iOS mobile app with JCo? JCo will always be invoked by a platform that is between the mobile device and the ABAP backend, be it Syclo, SUP, Portal or something else.

I have always had good success and better performance from JCo (BAPI/RFC) than web services. Not sure about other implementation scenarios, but in my experience JCo is simply a Java Connector between two systems/endpoints. How well it works depends on many other factors (network, anybody?), including what you are passing back and forth.

Note :(The views expressed in this are strictly based on my opinion/experience in various SAP projects )

For SAP Customers in various industries like Utilities who are looking to Mobilize their

field workers ,Syclo would be the good option from Architecture point of view .

Here are my thoughts lets say we have a third party Mobile solution who would want to mobilize the field workers of an SAP Customer ,then one of the traditional approach would be using the SAP middleware solution like SAPXI/PI .

In this case SAP ECC/CRM ->SAP PI-> Third party mobile product and

Third party solution -> SAP PI -> SAP ECC/CRM etc….

In this case enhancements/new field additions would take much more time for development which would be an additional cost to the SAP Customer .

Incase of Syclo the time taken would be less for same enhancement and the greatest advantage of Syclo is its “”Addon component “” ,this tighter integration differentiates SAP/Syclo from other third party Mobile product. And more over the Syclo mobile suite has good GIS integration capabilities and much more (3D Visualization Capability of (Right hemisphere),Acquired by SAP).

I personally worked on a utility project that integrated with SAP ECC backend using SAP PI with Third party Product and believe me it was a great pain for enhancements/field additions in reimporting the IDOC/RFC that was enhanced and then mapping those again in SAP PI and making the required changes in Third party product.

I need clarification for when you say Using JCO (Without SMP). Do you mean SMP does not allow us to use JCO? As per my knowledge, you can use JCO with SMP and it gives really fast connectivity for data communication between SMP and backend system.

Yes its possible to connect SMP with heterogeneous data sources like SAP, Microsoft, MySQL, Web services, REST webservices etc. It is one of the advantage of using SMP as a solution. It supports heterogeneous Databases and devices.