Welcome!

Java Authors: Aater Suleman, Liz McMillan, Elizabeth White, Pat Romanski, Kevin Benedict

Related Topics: Java, Wireless, SOA & WOA, .NET, Web 2.0, SAP

Java: Article

A Comparison of the Programming APIs Available in SAP Mobile Platform 2.3

Native and JavaScript-based programming APIs for SMP

OptionDescription
Language C#, Java, or Objective-C
Platform iOS, Java for Android, Java ME for Blackberry, .Net Framework for Windows, .Net Compact Framework 3.5 for Windows Mobile
Mobile Server Select the SMP server where the MBO model has been deployed.
Server Domain This should correspond to the Application name in the SMP Control Center
Page Size Controls the size of the data page in the remote database.  Do not select a size that is smaller than is required for a single row.
Destination Generate into a project folder, or into a specific folder on the file system.
Clean up... This completely ERASES the contents of the destination folder before code generation, so USE WISELY

The key point to remember when using the Object API is that all operations are performed against the local device database, including MBO object queries.  No data is exchanged between the device and the SMP server (and ultimately the backend EIS or database resource) until the application calls the Synchronizeor startSynchronize API method (startSynchronize is the asynchronous, non-blocking version of the method).  The placement of this method call is totally up to the requirements of the application.  To simulate an "online" environment, place the synchronize call immediately after any CUD (Create/Update/Delete) transaction, so that the device immediately sends the transaction to SMP.  To function "offline", just call submitPending to record the transactions locally, and delay the Synchronize call until the user clicks a button, or a live connection is detected.

OData SDK
OData
, or the Open Data Protocol, has emerged as the primary protocol for data exchange across the web.  OData operates somewhat like SQL, but instead of querying a relational database, the endpoint is a REST-based web service URL, and the application uses standard HTTP verbs like GET, POST, PUT, and DELETE to interact with the service endpoint.   The protocol defines specific command modifiers, like $select, $filter, $orderby, and $expand to retrieve specific elements from the endpoint URL.  Data returned from the endpoint is formatted in either JSON or XML, using the AtomPub schema.

SAP has identified OData as a strategic direction for the entire portfolio of products, and the OData SDK provides a comprehensive set of API's for securely accessing OData endpoints from native mobile device applications.  The OData SDK is delivered as a set of static runtime libraries on the iOS, Android, and Blackberry platforms.  The MBO model is not used with OData applications, and there is no code generation step required.

The OData SDK consists of five major components and classes.

OData Parser
Parses and generates valid OData protocol messages to/from native objects. It eliminates the need for mobile developers to work with the low-level details of the OData protocol directly. Functionalities supported by this component include:

  • Parsing OData XML structures to native OData objects
  • Validating OData XML 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 structures from native OData objects

Cache Management
The runtime cache is responsible for storing and accessing OData related objects in the memory of the device for quick and easy access. Functionalities supported by this component include:

  • Storing/accessing OData objects in the memory (both metadata and application data)
  • Searching for OData entries in memory using their searchable fields
  • Managing the size of the cache

Persistence
Implements a convenient and secure storage of data on the device. Mobile applications can access the locally stored data even when network connection is unavailable. Functionalities supported by this component include:

  • Storing objects and raw data on the physical storage of the device
  • Easy and quick access of the stored objects and raw data
  • Data encryption for sensitive data

Supportability
Implements standard SAP logging, tracing and error handling to enable end-to-end supportability from client to back-end. Functionalities supported by this component include:

  • Common exception and error handling
  • Event logging
  • Tracing (SAP Passport)

Connectivity
This connectivity layer handles all connectivity related tasks, hides the complexity of the communication at transport level, and provides an easy to use API to the applications. Productive enterprise applications must use SAP Mobile Platform for connectivity for all enterprise use cases. For development and demo purposes, the SDK also provides a possibility to use HTTP or HTTPS. Functionalities supported by this component include:

  • Synchronous and asynchronous HTTP request handling
  • Supported authentication are:
    • 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

The OData SDK provides basic persistence capabilities, but these are not to

The key step in setting up an OData SDK application is to create the Application ID in SAP Control Center, and define it as an "OData" type.  That dialog box is shown below, with sample data.  Note the Application Endpoint setting.  That URL references the root "service document" of the application's OData endpoint.  Making this URL an attribute of the Application adds a layer of security, since only registered Application Connections will be able to access that endpoint through the SMP proxy.  There is no need to expose that OData URL outside the corporate firewall.  The mobile application retrieves the endpoint URL as a property of the Application, once a successful connection is made to the SMP server, and then provides that on all subsequent OData queries and updates.

OData 1.PNG

Refer to the OData SDK Developer Guide for more thorough instructions on the use of the API within your application.

Note: OData is inherently an HTTP-based protocol, but with SMP 2.x, OData SDK apps communicate with the SMP server using the proprietary "iMO" messaging protocol.  It's essentially "HTTP over iMO".  WIth SMP 3.0, this will be changed to use standard HTTP(s) for communication.

HTTP REST API
The HTTP REST API is the most recent addition to the catalog of programming interfaces.  However, it's a little misleading to call it a traditional "API", since there are no client-side libraries to include with the application code, and no language-specific methods to invoke for implementation.  With the release of SUP 2.2, an HTTP listener was added to the SMP server, and several REST endpoints were exposed on the open port (which is 8000, by default).  These REST services perform basic SMP administration and security functions.  This "decoupling" of client and server platforms allows SMP applications to be written in any language, on any platform, using any IDE.  As long as the mobile application is capable of performing an HTTP call to a REST endpoint, it can be secured and managed by the SMP server.

The REST API provides four basic capabilities to a mobile application.

  • Registration:  Creating an Application Connection and registering the device ID and type to SMP;
  • Authentication:  The Application is linked to a specific Security Configuration, and any connection must satisfy the authentication requirements.  Anonymous application connections are also supported;
  • Native Push Notification: The mobile app can register for push notifications through APNS, GCM, or Blackberry BES
  • Configuration:  The mobile app can call SMP to persist specific application settings or preferences;

All the calls to the API are performed by making HTTP calls to a REST endpoint, which is defined on the SMP server.  (If the Relay Server or a 3rd-party reverse proxy server is in place, the URL of the endpoint should reference that URL instead.)   For example, to register an Application Connection, the mobile application simply needs to perform an HTTP POST as shown below.  The body of the post contains the minimum default XML content.

POST http://domain:port/odata/applications/latest/{appid}/Connections

<?xml version="1.0" encoding="UTF-8"?>

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"

xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">

<content type="application/xml">

<m:properties/>

</content>

</entry>

In the above URL, domain:port would correspond to either the SMP server and port, or the relay server, on their respective HTTP or HTTPS ports.  Theappid would be the Application ID as defined in the SAP Control Center.  Once successfully registered and authorized, application data can be retrieved from the OData endpoint with any HTTP request and JSON/XML parsing logic.  You can also create additional OData Proxy connections in SCC, creating a "whitelist" of valid endpoints for the application to use.

The SCC dialog for registering a REST API app is exactly the same as the OData figure shown above (except, of course, that you select "REST API" from the dropdown list...) so I won't duplicate that here.  Suffice it to say that the Application must exist in SCC as a REST API app before any registration and authentication attempts can be made against it.

As far as online vs. offline goes, I'll call this one "custom", meaning that while a live data connection must be present for any interaction with the SMP server (device registration, authentication, etc.), offline could be supported by any intrepid developer that wants to build and deploy their own SQLite or UltraLite database for the remote device, write the application to persist transactions into that local database, then write the synchronization logic to keep that database in sync with the backend EIS.  Don't forget to manage the entire synchronization session as a restartable, ACID-compliant unit...  (All of that is exactly what the MBO model and the Object API provides for you in a single mouse click.)

One final note on the HTTP REST API:  if you are developing a native app in Objective-C or Java against an OData endpoint, then the Persistence, Caching, and OData Parser libraries from the OData SDK (as mentioned in the section above) may be leveraged in your project.  Just include the corresponding SDK libraries in your project, and those functions will be available to your application.  The Registration and Transport layer libraries would not be applicable in this use case.

Refer to the SMP Developer Guide: REST API Applications for more detailed information on programming to this API.

In Conclusion
Here's a quick wrapup of the four options presented above, so you can choose the most appropriate architecture for your SMP 2.x application.

API
Supported Languages/PlatformsUses MBO's?Supports Offline?
Hybrid App API Javascript Yes Partial
Native Object API

 

iOS: Xcode and Objective-C

Android: Java

Blackberry: Java ME

Windows: .NET Framework 3.5

Windows Mobile: .NET Compact Framework 3.5

Yes Full
OData SDK

 

iOS: Xcode and Objective-C

Android: Java

Blackberry: Java ME

No No
HTTP REST API Any No Custom

More Stories By Paul Horan

Paul Horan is a Senior Solution Advisor and Mobility Architect at SAP, and works with the SAP Mobile Platform and SAP Mobile Secure product lines. Paul joined SAP as part of their acquisition of Sybase in June, 2010. Prior to that, Paul worked for Sybase as a technical pre-sales architect supporting PowerBuilder, PowerDesigner, and SQL Anywhere. Paul works out of SAP's Reston VA office. A 1984 graduate of Indiana University, Paul currently resides in Arlington VA.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@ThingsExpo Stories
The 3rd International Internet of @ThingsExpo, co-located with the 16th International Cloud Expo - to be held June 9-11, 2015, at the Javits Center in New York City, NY - announces that its Call for Papers is now open. The Internet of Things (IoT) is the biggest idea since the creation of the Worldwide Web more than 20 years ago.
Cultural, regulatory, environmental, political and economic (CREPE) conditions over the past decade are creating cross-industry solution spaces that require processes and technologies from both the Internet of Things (IoT), and Data Management and Analytics (DMA). These solution spaces are evolving into Sensor Analytics Ecosystems (SAE) that represent significant new opportunities for organizations of all types. Public Utilities throughout the world, providing electricity, natural gas and water, are pursuing SmartGrid initiatives that represent one of the more mature examples of SAE. We have s...
Noted IoT expert and researcher Joseph di Paolantonio (pictured below) has joined the @ThingsExpo faculty. Joseph, who describes himself as an “Independent Thinker” from DataArchon, will speak on the topic of “Smart Grids & Managing Big Utilities.” Over his career, Joseph di Paolantonio has worked in the energy, renewables, aerospace, telecommunications, and information technology industries. His expertise is in data analysis, system engineering, Bayesian statistics, data warehouses, business intelligence, data mining, predictive methods, and very large databases (VLDB). Prior to DataArcho...
Disruptive macro trends in technology are impacting and dramatically changing the "art of the possible" relative to supply chain management practices through the innovative use of IoT, cloud, machine learning and Big Data to enable connected ecosystems of engagement. Enterprise informatics can now move beyond point solutions that merely monitor the past and implement integrated enterprise fabrics that enable end-to-end supply chain visibility to improve customer service delivery and optimize supplier management. Learn about enterprise architecture strategies for designing connected systems tha...
The Internet of Things (IoT) is going to require a new way of thinking and of developing software for speed, security and innovation. This requires IT leaders to balance business as usual while anticipating for the next market and technology trends. Cloud provides the right IT asset portfolio to help today’s IT leaders manage the old and prepare for the new. Today the cloud conversation is evolving from private and public to hybrid. This session will provide use cases and insights to reinforce the value of the network in helping organizations to maximize their company’s cloud experience.
IoT is still a vague buzzword for many people. In his session at Internet of @ThingsExpo, Mike Kavis, Vice President & Principal Cloud Architect at Cloud Technology Partners, will discuss the business value of IoT that goes far beyond the general public's perception that IoT is all about wearables and home consumer services. The presentation will also discuss how IoT is perceived by investors and how venture capitalist access this space. Other topics to discuss are barriers to success, what is new, what is old, and what the future may hold.
Whether you're a startup or a 100 year old enterprise, the Internet of Things offers a variety of new capabilities for your business. IoT style solutions can help you get closer your customers, launch new product lines and take over an industry. Some companies are dipping their toes in, but many have already taken the plunge, all while dramatic new capabilities continue to emerge. In his session at Internet of @ThingsExpo, Reid Carlberg, Senior Director, Developer Evangelism at salesforce.com, to discuss real-world use cases, patterns and opportunities you can harness today.
All major researchers estimate there will be tens of billions devices – computers, smartphones, tablets, and sensors – connected to the Internet by 2020. This number will continue to grow at a rapid pace for the next several decades. With major technology companies and startups seriously embracing IoT strategies, now is the perfect time to attend @ThingsExpo in Silicon Valley. Learn what is going on, contribute to the discussions, and ensure that your enterprise is as "IoT-Ready" as it can be!
Software AG helps organizations transform into Digital Enterprises, so they can differentiate from competitors and better engage customers, partners and employees. Using the Software AG Suite, companies can close the gap between business and IT to create digital systems of differentiation that drive front-line agility. We offer four on-ramps to the Digital Enterprise: alignment through collaborative process analysis; transformation through portfolio management; agility through process automation and integration; and visibility through intelligent business operations and big data.
There will be 50 billion Internet connected devices by 2020. Today, every manufacturer has a propriety protocol and an app. How do we securely integrate these "things" into our lives and businesses in a way that we can easily control and manage? Even better, how do we integrate these "things" so that they control and manage each other so our lives become more convenient or our businesses become more profitable and/or safe? We have heard that the best interface is no interface. In his session at Internet of @ThingsExpo, Chris Matthieu, Co-Founder & CTO at Octoblu, Inc., will discuss how thes...
Last week, while in San Francisco, I used the Uber app and service four times. All four experiences were great, although one of the drivers stopped for 30 seconds and then left as I was walking up to the car. He must have realized I was a blogger. None the less, the next car was just a minute away and I suffered no pain. In this article, my colleague, Ved Sen, Global Head, Advisory Services Social, Mobile and Sensors at Cognizant shares his experiences and insights.
We are reaching the end of the beginning with WebRTC and real systems using this technology have begun to appear. One challenge that faces every WebRTC deployment (in some form or another) is identity management. For example, if you have an existing service – possibly built on a variety of different PaaS/SaaS offerings – and you want to add real-time communications you are faced with a challenge relating to user management, authentication, authorization, and validation. Service providers will want to use their existing identities, but these will have credentials already that are (hopefully) ir...
Can call centers hang up the phones for good? Intuitive Solutions did. WebRTC enabled this contact center provider to eliminate antiquated telephony and desktop phone infrastructure with a pure web-based solution, allowing them to expand beyond brick-and-mortar confines to a home-based agent model. It also ensured scalability and better service for customers, including MUY! Companies, one of the country's largest franchise restaurant companies with 232 Pizza Hut locations. This is one example of WebRTC adoption today, but the potential is limitless when powered by IoT. Attendees will learn rea...
From telemedicine to smart cars, digital homes and industrial monitoring, the explosive growth of IoT has created exciting new business opportunities for real time calls and messaging. In his session at Internet of @ThingsExpo, Ivelin Ivanov, CEO and Co-Founder of Telestax, will share some of the new revenue sources that IoT created for Restcomm – the open source telephony platform from Telestax. Ivelin Ivanov is a technology entrepreneur who founded Mobicents, an Open Source VoIP Platform, to help create, deploy, and manage applications integrating voice, video and data. He is the co-founder ...
The Internet of Things (IoT) promises to create new business models as significant as those that were inspired by the Internet and the smartphone 20 and 10 years ago. What business, social and practical implications will this phenomenon bring? That's the subject of "Monetizing the Internet of Things: Perspectives from the Front Lines," an e-book released today and available free of charge from Aria Systems, the leading innovator in recurring revenue management.
The Internet of Things will put IT to its ultimate test by creating infinite new opportunities to digitize products and services, generate and analyze new data to improve customer satisfaction, and discover new ways to gain a competitive advantage across nearly every industry. In order to help corporate business units to capitalize on the rapidly evolving IoT opportunities, IT must stand up to a new set of challenges.
There’s Big Data, then there’s really Big Data from the Internet of Things. IoT is evolving to include many data possibilities like new types of event, log and network data. The volumes are enormous, generating tens of billions of logs per day, which raise data challenges. Early IoT deployments are relying heavily on both the cloud and managed service providers to navigate these challenges. In her session at 6th Big Data Expo®, Hannah Smalltree, Director at Treasure Data, to discuss how IoT, Big Data and deployments are processing massive data volumes from wearables, utilities and other mach...
P2P RTC will impact the landscape of communications, shifting from traditional telephony style communications models to OTT (Over-The-Top) cloud assisted & PaaS (Platform as a Service) communication services. The P2P shift will impact many areas of our lives, from mobile communication, human interactive web services, RTC and telephony infrastructure, user federation, security and privacy implications, business costs, and scalability. In his session at Internet of @ThingsExpo, Erik Lagerway, Co-founder of Hookflash, will walk through the shifting landscape of traditional telephone and voice s...
While great strides have been made relative to the video aspects of remote collaboration, audio technology has basically stagnated. Typically all audio is mixed to a single monaural stream and emanates from a single point, such as a speakerphone or a speaker associated with a video monitor. This leads to confusion and lack of understanding among participants especially regarding who is actually speaking. Spatial teleconferencing introduces the concept of acoustic spatial separation between conference participants in three dimensional space. This has been shown to significantly improve comprehe...
The Internet of Things is tied together with a thin strand that is known as time. Coincidentally, at the core of nearly all data analytics is a timestamp. When working with time series data there are a few core principles that everyone should consider, especially across datasets where time is the common boundary. In his session at Internet of @ThingsExpo, Jim Scott, Director of Enterprise Strategy & Architecture at MapR Technologies, will discuss single-value, geo-spatial, and log time series data. By focusing on enterprise applications and the data center, he will use OpenTSDB as an example...