We have just launched one of the most anticipated service packs for the SAP Mobile Platform this year . Gerhard Henig has written a high level overview of the features in his blog here. We are simultaneously releasing a service pack for the SDK ( SP05) and service pack for the server ( SP04) . Starting with SMP 3.0 , the SDK and server releases were decoupled, which allowed for us to independently innovate and bring more features to the market faster and that explain the version differences for the service packs.
Let us quickly recollect some of the important value propositions of the SAP Mobile Platform
- Server Side - Core services ( security , on boarding , e2e tracing , supportability , push notification , data integration ) and
- Device Side - Programming context ( Offline , Cache , Multi device support , cross platform development ) .
Even though we had a basic offline model available with first release of SMP 3.0 , the developers had to take different approaches for consuming online and offline data models . The complexity of managing offline and online access led to more complicated code at application level and inevitably bugs. This is where the value of the platform for the developer starts - free up the developer from worrying about the data access model and coding around it and have them focus more on the application logic . Your app and our SDK provides Most Value in application development.
The top value propositions for the SDK are the following
- Device support across multiple operating systems ( IOS , Android , Windows)
- Common consumption model for online and offline ( harmonized SDK)
- Performance libraries and Debugging support
- Seamless migration from on premise to cloud ( HCP mobile services are compatible if you use the SDK)
- Support for cross platform development using Kapsel ( and support for mobilizing Fiori applications)
- Support for seamless integration with mobile device management software ( Afaria , other MDM's)
The top features that are going to be available with the SDK SP05 release are
- Harmonized API
- Native SDK for Windows
- Kapsel Enhancements
- Agentry enhancements
Let me go over these features in detail.
The main goals of harmonizing our OData API's are the following
- An approach that is totally focussed on the OData as the data model and http as the data access mechanism
- An abstraction that hides the odata implementation details such as fetching service document and metadata or mapping odataypes to native objects
- An access model that support both online and offline
The last part is very important , in an online operation an OData entity is represented through an URI . When that particular entity is made offline it gets saved in some storage ( typically a database) on the device side. To operate on the entity saved in a database the developers will have to write CRUD queries using SQL . Our approach is to provide an API layer that will allow the developer to use the same URI style access , no matter whether the entity is online or stored offline. The basic rules for addressing a Collection (of Entries), a single Entry within a Collection, as well as a property of an Entry are illustrated in the figure below.
In our offline implementation we make use of an Ultralite DB on the device side . The database gets synched up with the server side using the mobilink synch framework . Once a new OData endpoint is configured in the SMP server a data base schema is generated from the OData Service metadata.During the initial synchronization, an Ultralite DB that is created on the SMP server gets transferred to the client using the MobiLink file transfer mechanismThe ultralite database on the client acts as ‘local’ OData service, meaning that all OData requests are executed against the local store using the URI schema mentioned above.
Windows SMP SDK
SAP has always been committed to developers and that philosophy permeates to the mobile platform side as well . When we started the SMP 3.0 journey we only supported native SDK for IOS and Android and with this release we are excited to have a native version covering Windows 8.1 and Windows phone 8.1 as well. The main component of the windows SDK are the following
- SecureStore library – Used for storing user credentials and other important information (password policy, connection data etc.) in the data vault
- LogonCore library / LogonCoreJS library – Used in conjunction with SecureStore library to provide login functionality
- OData API library – Interfaces and default implementation which can be inherited by 3rd parties to create their own implementation
- OData Online API – Specific online implementation of the OData API . Internally uses Microsoft OData parser
- Supportability library (Log messages, End 2 End tracing functionality)
- Support for SAML , SAML2+OAuth2 (for Store apps)
The windows SDK will be evolving in the future service packs with support for Offline operations and support for Windows 9. We also have extended the cross platform development support to Windows . The following Kapsel plugins are made available to Windows developers
- Encrypted Storage
Our Kapsel story has been widely accepted by the developer community . We believe the plugin model of development provides a lot of value for the developers in customizing their applications (including Fiori) . In this service pack , we are adding plugins that mirror the new functionalites that were added on the native sdk side . The specific enhancements on the Kapsel side are the following
- Support for Apache Cordova 3.6
- Kapsel support for OData Offline
- Logon plugin support for SAML
- Enhancements to Logger Plugin
- End to End trace
- Application Usage Reporting
Our SDK story will not be complete without mentioning the metadata development model using Agentry . The Agentry SDK has also been evolving since its integration into SMP last year. Following are the specific features and enhancements that will be available in SP05.
- OData Back-end
- Full CRUD support
- Integration with Connector Studio Object Wizard
- Tile Display Hyperlink Action
- Action when clicking an area of the screen instead of just text
- Multi-screen Tile Style Overriding
- Can control styles on MST separate from application styles
- Screen Navigation via Menu Choices
- Switch between screens in a screen set from a slide-out menu
- Auto Keyboard support on Windows Tablets
- Virtual keyboard automatically enables / dismisses
- OpenUI Transmit Dialog extension
- Through the OpenUI class extension, the Agentry clients can provide a PCKS12 client certificate and its password for CSI authentication
- Previous methods of using client certificates on the client (branding, retrieving from the OS) are still supported
- E2E Tracing
- Ability for user to enable tracing from an Agentry client (iOS, Android, WPF)
- Transmits (including background transmits) will be traced and sent to Solution Manager via the SMP server in a business transaction xml string (BTX)
- An Admin will be able to use Solution Manager to analyze the BTX to determine where performance issues are occurring
Be Ready When you are
There will be more information available in the coming days through enablement sessions and hands on events . Our Customer Engagement team will be actively sending out information on these sessions . Please stay tuned.
These sessions are planned at TechEd to give more information to the developer community.
Links to Additional Resources
1) Introduction to the HttpConversationManager includes SAML introduction
3) Intro to STSOData includes video, pending open source approval of the sample code
4) KVO with SPO5 and STSOData includes video, pending open source approval of the sample code
5) NativeSDK-podspec How to use Cocoapods to bootstrap your app from the installer, instantly!
Follow us in any of the social media channels
twitter.com/SAPMobile Follow hashtags: #saptd #SAP #Mobile #SAPMobile
This blog references SAP‘s strategy and possible future developments are subject to change and may be changed by SAP at any time for any reason without notic