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.
- Integration into back-end systems
- How data is cached and synchronized to devices
- Data models for applications
|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.|
|Multilevel inserts||HTTP POST with $batch|
|Update||HTTP PUT, PATCH|
|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.|