The OData SDK provides an open and flexible framework for native OData
application development for both online and offline applications. OData SDK components, each
of which can be used independently, are implemented as static runtime libraries.
Use the OData SDK, which consists of a collection of runtime libraries
and classes, to build native mobile applications. The OData SDK supports Android and iOS
platforms, and is based on the native device SDKs of the platforms. There is a separate
implementation for each platform. Native applications that are installed on the devices
allow the client application to leverage the support provided by the platform, including:
- Adapting to each device’s form factor (for example, automatic
layout)
- Exploiting different input methods (for example, touch screen,
keyboard or trackball)
- Caching data in native device data stores for better
performance
- Tightly integrating with the features of the device
Main Components of the OData SDK
Logon Manager
The Mobile Application Framework (MAF) Logon Manager component manages common
logon-related tasks, such as registering and deleting users, updating configuration,
locking and unlocking applications, changing application passcodes, and securely
handling passwords. It is based on reusable controls, and includes a default
skinnable UI. MAF Logon Manager supports user onboarding, and its components include
MAFLogonUING and
MAFLogonManagerNG.
Client Hub
The Client Hub, which is integrated with Logon Manager,
simplifies user onboarding and configuration to enable easier and faster strategic
enterprise-wide deployments. The Client Hub simplifies end-user password management
for mobile applications, and improves the user experience. The
Client Hub:
- Manages the single sign-on (SSO) vault on the device.
- Enables co-signed business applications with the same security configuration to
securely share credentials on the device.
- Supports multiple security configurations per device.
Core Services
The Core Services layer enables consumption of SAP Mobile Platform REST services with
pure HTTP or HTTPs, (which is, by default, in on-premise connectivity). It provides
simplified APIs for registration, exchanging settings between client and server,
end-to-end tracing, and native push notifications. Functionalities supported by Core
Services include:
- Client connection initialization
- User on-boarding or registration
- Application connection setting exchange
- Customization resource bundle
- Security configurations - Basic authentication, SSO certificate authentication,
anonymous access, network edge (SiteMinder authentication - always
asynchronous), non-network edge, single SSL and mutual SSL authentication
- Native notification support for iOS and Android platforms
- CAPTCHA support for both synchronous and asynchronous requests. Asynchronous
request is recommended for on-boarding using CAPTCHA in a productive
scenario.
- Non network edge authentication support for iOS and Android platforms. In
Network edge (siteminder) scenario, reverse proxy is configured. User needs to
get authenticated, and moves for authentication to server, and then to backend.
Request
The Request library provides the interfaces for handling both online and offline
OData requests, and processes data transfer from the server to devices, and devices
to the server. It supports offline capabilities, where OData requests (POST, PUT,
DELETE) are persisted if there is no network connectivity, and invoked when a
network becomes available. You can use the online and offline capabilities for
applications that have direct connectivity with Gateway, and for applications that
register the users on SAP Mobile Platform Server. Functionalities supported by
Request include:
- Synchronous and asynchronous request handling
- OData request batch processing
- Delta token support
- Offline request queueing
- XSRF support
Parser
The Parser library parses OData feeds, service document and metadata
and converts them to native objects, saving application developer from having to
work with low-level details of OData semantics. The Parser library helps the
application developers to generate OData feeds from native objects. Functionalities
supported by Parser include:
- Parsing OData XML or JSON structures to native OData
objects
- Validating OData XML or JSON during parsing by checking the
existence of mandatory fields and structures
- Providing easy access to all OData fields and structures via
the objects resulting from the parsing
- Building OData XML or JSON structures from native OData
objects
Note: SAP recommends that, for better performance, you use JSON parser as your parser
component.
Cache Management and Persistence
The runtime cache stores and accesses OData-related objects in
memory, and also stores data on device for easy access. The cache enables mobile
applications to access the locally stored data even in offline mode. Functionalities
supported by these components include:
- Storing or accessing OData objects (both metadata and
application data)
- Searching for OData entries using their searchable fields
- Support for encrypted persistence store
Logger
The Logger component implements logging and error handling to enable
supportability from client to back-end. Functionalities supported by Logger include:
- Common exception and error handling
- Event logging
Connectivity
The connectivity layer handles all connectivity-related tasks, hides
the complexity of the communication at the transport level, and provides easy-to-use
APIs. Productive enterprise applications must use SAP Mobile Platform for connectivity. Functionalities supported by
Connectivity include:
- Synchronous and asynchronous HTTP request handling
- Supported authentication methods include:
- X509 certification
- SSO token/cookie
- Basic authentication (user/password)
- Timeout handling
- Compressed payload handling
- Request types as supported by OData Protocol
- Connection pools for optimal performance
DataVault
The DataVault component provides encrypted storage of certificates, database
encryption keys, passwords, and other sensitive items. Functionalities supported by
DataVault include:
- Create a vault
- Set a vault's properties
- Store objects in a vault
- Retrieve objects from a vault
- Change the password used to access a vault
- Control access to a vault that is shared by multiple iOS applications.