Developer

MBO and OData SDK Differences

SAP Mobile Platform 2.<x> MBO-based applications differ greatly from SAP Mobile Platform 3.<x> OData SDK-based applications.

The OData SDK is primarily responsible for user on-boarding and processing OData requests. Many features that applications require, for example, reading and updating data from back-end systems, are features of the OData standard; SAP Mobile Platform 3.<x> implements a version of this standard. OData does not define how integration is done, but defines contracts between clients and servers using Entity Data Models.

MBO primary functions are to define:
  • Integration into back-end systems
  • How data is cached and synchronized to devices
  • Data models for applications
These are the functional mappings between SAP Mobile Platform 2.<x> MBOs and the SAP Mobile Platform 3.<x> OData SDK:
MBO OData Description
Defines integration N/A Integration is performed with other tools, such as Netweaver Gateway or Gateway for Java.
Defines middleware caching N/A SAP Mobile Platform 3.<x> does not implement middleware caching.
Defines synchronization with delta calculation using a cache Uses the delta token approach for delta synchronizations. Since SAP Mobile Platform 3.<x> does not use a middleware cache, enterprise services must implement delta tracking.
Defines data models Defines entity data models (EDM)  
Defines relationships Defines associations  
Defines client-side object relational models via code generation N/A There are many tools available to generate client-side object relational models for OData EDMs. No such tool is included with the SAP Mobile Platform 3.<x> SDK.
Defines a client-side relational database for offline lookup OData cache requires in-memory lookup. The SAP Mobile Platform 3.<x> SDK does not include any tools that provide a client-side relational database for offline lookup.

You can store results from OData queries in a cache, which must be loaded into memory to search.

Offline Find By queries N/A No direct mapping exists. The document cache provided by the OData SDK does not allow you to query the data using SQL. OData usually represents aggregated data and cannot be treated as normalized data.
Offline custom queries N/A  
Online Find By queries HTTP GET, $filter  
Multiple MBO sync with sync groups HTTP GET, $filter, $expand Not a direct mapping; $expand can only retrieve associated entities.
Create HTTP POST  
Multilevel inserts HTTP POST with $batch  
Update HTTP PUT, PATCH  
Delete HTTP DELETE  
Static libraries for user on-boarding HTTP API for creating application connections  
Push notifications via dynamic circuit networks and target-change notifications N/A Push notifications must be handled manually
On device relational database N/A No direct mapping exists. The OData SDK provides a document cache, but you cannot use this to replace a normalized relational database.