!--a11y-->
Defining Data Carrier
Synchronization 
If the users do not
have a stable Internet connection, they can synchronize using data carriers
such as memory sticks, diskettes and DVDs. The users store the data on a data
carrier and send this data to the administrator. The administrator
synchronizes with the back-end systems in the SAP MI Web Console and sends the
data carrier back to the users. The users can now update the data on their
mobile devices. For more information about the tasks of the administrator, see
Synchronizing
Data Carriers with the Back End. For more information about the tasks of
the user, see
Performing
Synchronization.
So that the users can synchronize using the data carrier, you must configure the mobile devices and the SAP MI Web Console appropriately:
● The mobile device with file MobileEngine.config
● The SAP MI Web Console with file WebConsole.properties
If you want to use data encryption or data signing, you must also provide the relevant libraries.
● Deploy libraries to the mobile devices as add-ons.
● For the SAP MI Web Console, copy the libraries to directory <Installation directory of SAP MI>\WEB-INF\lib or reference it with the J2EE library reference.

The SAP MI uses java.io.FilterInputStream and java.io.FilterOutputStream for encryption and signing. For information about filter streams, see http://java.sun.com/docs/books/tutorial/essential/io/filtered.html.
Implementation class java.io.FilterOutputStream is enhanced for signing and encryption. The class needs a public constructor with one argument only (java.io.OutputStream).
Implementation class java.io.FilterInputStream is enhanced for unsigning and decryption. The class needs a public constructor with one argument only (java.io.InputStream).
The SAP MI also offers a factory class for these input and output streams. The factory reads the implementation classes from the MI configuration and creates instances of these classes. If no property is defined, the default implementations are used.
● At least one application must be installed on the mobile device to allow the user to synchronize with a data carrier.
● You can only synchronize application data with data carrier synchronization. You cannot deploy applications to the mobile device.
● If you want to use encryption and signing, you can use the corresponding third party libraries.
The following parameters are relevant to data carrier synchronization. For more information on the possible values, see Parameters for Data Carrier Synchronization.
● For activation of data carrier synchronization, MobileEngine.Sync.ViaFile.Enabled
● For the possible media sizes for data carrier synchronization, MobileEngine.Sync.ViaFile.DefaultTargetSizes
● For the minimum medium size, MobileEngine.Sync.ViaFile.MinimumTargetSize
● For encryption, MobileEngine.Security.FilterStreams.Encryption
● For decryption, MobileEngine.Security.FilterStreams.Decryption
● For signing, MobileEngine.Security.FilterStreams.Signing
● For unsigning, MobileEngine.Security.FilterStreams.Unsigning
...
Add the above-specified parameters for the MobileEngine.config file if they do not yet exist, and adjust them accordingly.
To do this, use one of the methods referred to in Parameters in MobileEngine.config.
Data carrier synchronization is already activated for the SAP MI Web Console. You only have to edit the file, therefore, if you want to make further settings.
...
1. Check if the file WebConsole.propertiesexists in the directory <Installation directory of SAP MI Web Console>. If it does not exist there, create it.
2. Open the file with a text editor.
3. Add the required parameters (see above) and save your entries.
If encryption or signing is required, you must deploy the corresponding libraries to the mobile devices. To do this:
...
...
1. Download the libraries of a third-party vendor.
2. If it does not yet exist, create a Mobile Component Descriptor for each library (see Mobile Component Descriptor)
3. Upload the library to the SAP MI Web Console (see Uploading Add-On Files).
4. Assign the library to the user or role (see Assigning Mobile Components and Device Configurations to Users).
Proceed as follows to enable the SAP MI Web Console to access libraries for encryption and signing:
...
1. Create an archive with the Java classes and name this archive MISignEncrHook.jar.
2. Copy the archive to the directory <Installation directory of the SAP MI Web Console>\WEB-INF\lib.
3. Open the file webconsole.properties from the installation directory of the SAP MI Web Console.
4. Add the following entries:
For encryption:
MobileEngine.Security.FilterStreams.Encryption = com.xyz.MIEncryptionOutputStream
MobileEngine.Security.FilterStreams.Decryption = com.xyz.MIDecryptionInputStream
For signing:
MobileEngine.Security.FilterStreams.Signing = com.xyz.MISigningOutputStream
MobileEngine.Security.FilterStreams.Unsigning = com.xyz.MIUnsigningInputStream
Where com.xyz.MI* are implementation classes of a third party vendor of java.io.FilterInputStream and java.io.FilterOutputStream.
5. Save your entries.
6. Restart the J2EE Engine.
