SAP Fiori & SMP
I was recently pointed to an old SCN post where a comparison was made between the SAP Mobile Platform (SMP) and SAP Fiori. The post didn’t make much sense to me as SMP is a platform for creating, deploying and managing mobile applications and SAP Fiori is a collection of web apps that work on mobile devices (as well as network connected desktop computers and laptops). Fiori applications are interesting in that they have a specific user experience, implemented using the SAP UI5 HTML5 framework (mailto:https://tools.hana.ondemand.com/%23sapui5), where SMP applications are unconstrained. If you are interested in learning more about the UX aspect of Fiori and doing it yourself, you can find more information at https://experience.sap.com/ and http://service.sap.com/rds-ui-sapui5.
Instead of talking about SMP vs. SAP Fiori, let’s talk about SMP & Fiori.
In it’s simplest form, SAP Fiori is a web application. Actually it’s a web application that runs multiple web applications. The SAP Fiori Launchpad is a framework that can run one Fiori app or a bunch of Fiori apps. The Fiori apps a user sees in the Launchpad will vary depending on the user and, what apps are assigned to that user or that user’s role.
Like I said earlier, SMP is a platform for creating and deploying mobile applications. There’s a server-based process that exposes a large set of very interesting and useful services for an enterprise and multiple ways a developer can create mobile applications that consume those services (and do a whole bunch of other stuff too). Those services can be administrative services, services that provide some sort of functionality to the application and a way of exposing data to mobile devices as well.
Using the platform, you can build native applications using the platform’s native SDK, Agentry Meta-Data Driven applications using the Agentry Editor and hybrid web applications using the Kapsel SDK and Apache Cordova. You essentially use whatever tools you want (except in the Agentry case) and the platform’s SDK to build the apps your enterprise needs. The platform takes care of the hard stuff developers have to do most importantly implementing the security glue that keeps everything safe and secure.
You may ask, “With SAP Fiori being a web application, does it need SMP?” No, it doesn’t. You can run Fiori on any compatible device and have access to the applications you need on most any device you want. However, is there value of running Fiori with SMP? Yes, absolutely. Let me count the ways…
Many customers have purchased SMP as a safe and secure way to expose internal systems to mobile devices. Any competitive business cares about security (or should anyway) and SMP is often selected to be the secure gateway between the inside and outside worlds. There are proxies and network edge devices that can provide some capabilities in this area, but with SMP, there’s secure data access, offline data access, administrative tools, tracing capabilities and much more provided by the platform. For these customers, the only way an internal application is exposed to mobile users is through SMP. So, even though Fiori will work in a browser connected directly to a Fiori Front-end server, many customers will require that it operates through SMP.
SAP Fiori is a web app, and it runs great in the browser. The desktop browser has some interesting capabilities: wired network connection, almost unlimited processing power, unrestricted storage physical keyboard/mouse and more. As I’ve written here previously, users running SAP Fiori in a mobile browser can experience performance issues – not because of SAP Fiori, but issues stemming from the limited processing, network and storage capabilities of a mobile device. These issues affect any sophisticated web application simply because of an impact the limited resources in a mobile device has on mobile applications like the browser.
SAP’s solution to these performance problems of mobile browsers is to support running Fiori within a native application container like the SAP Fiori Client. As described in other posts here, the SAP Fiori Client has specific capabilities that mitigate some of the limitations of the mobile browser. Once Fiori runs within a native application, there are additional capabilities that are then available to the application. The SAP Fiori Client works today against the Fiori Front-end server and/or SAP Gateway directly, but when you route Fiori application traffic (web asset and data requests) through the SMP server, additional capabilities quickly become available to the application:
Push capabilities are not available to the mobile browser. SAP Fiori could implement a mechanism that would allow it to ‘push’ content into the Launchpad for displaying on the different Fiori tiles, but it wouldn’t be true push. These notifications wouldn’t be there waiting for the user to notice them, instead they would appear after the app was opened, reducing the value of the notification. With SAP Fiori Client running through SMP, the application can register for push notifications and have them delivered like other native push notifications. Notifications would be accessible by the application user, even when the application isn’t running.
Access to Device features (Camera, GPS, etc…)
Being a web application, Fiori doesn’t have direct access to device-side capabilities such as the camera or the Contacts application. While modern browsers are adding support for all sorts of new APIs there are still some things that can only be done through a native application. While the initial version of the SAP Fiori Client didn’t have any device capabilities, future versions will add Cordova plugins that will provide Fiori applications with access to mobile-specific features like the camera, contacts, geolocation and more.
Improved performance through cache management and updates
The SAP Fiori Client has specific capabilities for detecting SAP Fiori updates and managing its cache accordingly. With SMP, the SAP Fiori Client can leverage the application lifecycle management capabilities of SMP to allow updates to the SAP Fiori Launchpad and applications to be pushed to the SAP Fiori Client application whenever the applications have been updated on the server. Instead of the local cache being purged and the entire SAP Fiori application assets downloaded into the client, the SAP Fiori Client can use the AppUpdate plugin and deliver only the changed assets to the application. This reduces the amount of data sent to the application and minimizes the interruption to the application user’s productivity.