SAP Solutions for Mobile Business | MDK
The SAP Mobile Infrastructure (MI) is a technology platform for offline access to SAP systems or other ERP systems via portable devices like PDAs or laptops. It plays a central role in the technology framework for SAP Solutions for Mobile Business.
When a mobile application is running offline and exchanges data with an application backend system (like any application within mySAP Business Suite or any other legacy application), the underlying technology framework needs to address three key areas:SAP MI can be looked at from two different angles:
The following section delves deeper into the features of SAP MI.
The SAP MI Client is an entirely Java-based framework offering generic services to mobile applications. It is based on Personal Java 3.1 (itself based on JDK 1.1.8), as only this JDK is typically available on modern PDAs. Due to the downward capability of Java, it can also run on JDK 1.3 and 1.4 as well. In prinicipal, MI hence runs on all platforms supporting Java, like Win32, PocketPC, Mobile Linux, Linux etc. to name a few. For PocketPC2002, MI ships together with an implementation of Personal Java 3.1 VM, as PocketPC does not include Java support directly in the OS. For all other platforms, installation of a JDK is assumed.
MI offers two different UI programming models: Java Server Pages 1.1 (JSP)
and Abstract Windowing Toolkit (AWT). No special OS-specific UI knowledge is
therefore needed.
To allow for JSP, MI incorporates a complete Apache Tomcat 3.2.4 servlet engine.
The key advantage of JSP support is that development of mobile applications
no longer needs a specific 'mobile' skill set, but your standard Internet programming
knowledge is leveraged into the mobile arena. MI renders plain HTML and should
therefore display equally well on all browsers. Applications can of course make
use of special browser features (e.g. JavaScript), but due to the differences
between PDA browsers this would mean that they would possibly not run on all
platforms supported by MI. SAP tested performance of the JSP programming model
extensively and achieved satisfactory results for all modern PDAs.
In special cases, where a browser UI may not be desired (e.g. users should not
be offered the freedom of a back-button), AWT can be used instead to
design the user interface. One of the key disadvantages of an AWT UI is though,
that unlike JSP, UI changes necessarily mean coding changes hence not being
able to be performed by non-developers and making additional tests necessary.
For both programming models, MI offers the same generic framework services
to mobile application via the MI Client API. This API includes support for data
synchronization (Generic and Smart Sync), data persistence (to databases or
file system), configuration management (property file handling), logging of
error messages, multi-user support , user authorizations and application management.
All mobile applications are registered with the framework and are started via
a common homepage that includes links to the applications assigned to the currently
logged-in user. Users have their own data area on the device, hence allowing
for support of multiple users sharing one device (in a sequential fashion, e.g.
shift work).
The goal of mobile applications is of course to update the backend with the data collected in the field. Thus results the need for a strong data synchronization mechanism as offered by MI:
MI's robust acknowledgement mechanism ensures that all data that is released for synchronization (from client to server or vice versa) will in all cases reach the server (or client respectively), regardless of one or several line-cuts. After line-cut, MI's recovery mechanis ensures that only the necessary data is sent again. Using https with client certificates for data transfer, MI ensures data security and integrity. To make best use of bandwith and reduce connection time, all synchronized data is compressed dynamically.
Support of any connection type
MI uses a simple TCP/IP connection for data transfer between client and
server and thus makes no assumption about how the connection was established
originally. All connectiivity types are hence supported: Wireless LAN, LAN,
GSM , GPRS or synchronization via cradle.
Two synchronization modes
MI offers two synchronization methods to best fit the needs of both light-weight
and complex mobile business applications:
Generic Synchronization allows to call any SAP function module residing
in any SAP backend (and even non-SAP backend, if the SAP Business Connector
is used). MI offers an API that allows to parameterize the module and then
release this request for synchronization. The response data of the module
will be returned to the device and can then be processed by the application.
Smart Synchronization is a full-blown data replication engine based on extracts
of Business Objects. Smart Synchronization also features data assignment
to users and user groups, delta determination (i.e. ensure that data already
existing on the device or server is not sent again), conflict management
(i.e. if the same object is edited both on the device and on the server
parallely) and extensive toolkits for object design and data flow monitoring.
Multiple backend support
The MI server is itself based on SAP WebAS and plays a dispatching role
in the landscape. It identifies which request is processed by which backend
system and then calls the system via RFC. If several applications are running
on the same device, they can therefore have different application backends
and even the server-side of a single application can span over several backend
systems. This concept is elicited in the MI architecture overview. SAP releases
of any release can be called and also non-SAP systems can be integrated
via the SAP Exchange Infrastructure or SAP Business Connector.
With many independent devices out in the field, administration as well as software logistics and data logistics are crucial to ensure high availability. MI supports the administrator with an automatic, user- and role-based software logistics process and tracing possibilities for remote support of end-users.