Direct calls to SAP Enterprise Services from a mobile device are a challenge.
This is primarily due to the limited support of Web Service standards on the respective devices and the complex structure of SAP Enterprise Services.
Existing mobile frameworks such as J2ME are not able to manage an Enterprise Service call on a mobile device out-of-the-box.
This leaves you with three more or less inconvenient options:
- Service adaption in the SAP system provided if you actually have access to it
- A lot of manual coding on the device to parse service requests and responses on http level
- Introduce a mobile middleware which may be too heavy-weight for light-weight mobile processes
Now I’m proud to present the results of my research project at the Co-Innovation Lab:
ES2ME – A framework for mobile Enterprise Service consumption which can be leveraged for (probably) all mobile devices that support J2ME.
I named it ES2ME (“Enterprise-Service-to-Mobile-Environments”) because it actually links the two standards Enterprise Services and J2ME.
ES2ME enables the direct consumption of an SAP Enterprise Service from any mobile device with J2ME and http support. The calls can be performed without the use of a middleware and the Enterprise Service does not need to be adapted in the back-end.
The ES2ME framework consists of two parts:
- A tool that adapts the service definition for the development environment of the mobile application at designtime
- A mapping library that acts as a dynamic mediator between the modified service definition and the actual service at runtime
These are the steps to implement a direct Enterprise Service call using ES2ME:
- WSDL Adaption – adapt the Enterprise Service definition for the mobile development environment
- Client Proxy Generation – generate standard web service client proxies for J2ME based on the adapted service
- Mapping Invocation – add the mapping library and invoke it in your client code
- Application Development – develop the mobile application logic and UI with your preferred standard-framework such as J2ME (MIDP) or device-specific frameworks (e.g. BlackBerry)
- Application Deployment and Execution – deploy your application to the device and run it
You can view a video that demonstrates the use of ES2ME with a RIM Blackberry device here. Two little applications show details of purchase orders and sales orders. Both are calling directly the corresponding Enterprise Services on the ES Workplace.
I am planning to make the ES2ME framework and a tutorial available on SDN soon.