mBooster Remote Access Server User Guide

 

Note: mBooster Remote Access Server is not available in the evaluation version.

 

Introduction

mBooster now contains the mBooster Remote Access Server and the companion mBooster Remote Access Client. The combination of mBooster Remote Access Server and mBooster Remote Client provides an almost-transparent bridge from a remote location to a local installation of the mBooster J2ME Optimization Suite. There is now also the ability to support remote execution of the stand-alone mBoosterZip tool installed with the mBooster J2ME Optimization Suite.

 

Here are some typical use cases for an mBooster Remote Access Server:

  1. If you are a mobile game publisher working with external development partners and/or porting partners. mBooster Remote Access Server allows your external development partners and porting partners to access mBooster for the mobile game titles for which you have an mBooster J2ME Optimization Suite license.
  2. mBooster J2ME Optimization Suite is currently available on Windows XP and Windows 2000 platform only. However the mBooster Remote Access Client is cross-platform, and is supported on any OS (including Linux, MacOSX) with a J2SE 1.4 Java Runtime Environment (JRE).
  3. Centralized adminstration of mBooster J2ME Optimization Suite installations.

 

Responsibility as an operator of an mBooster Remote Access Server

As per standard mBooster J2ME Optimization Suite licensing terms, as an operator of an mBooster Remote Access Server you are responsible for the consequences of authorized and unauthorized remote access. Please review your mBooster J2ME Optimization Suite license for details.

Innaworks recommends you establish procedures to control and review access rights, and to prevent unauthorized access.

 

 

 

Installation

As part of the mBooster J2ME Optimization Suite installation process, mBooster Remote Access Server is installed into the mBooster_installation_directory\mBoosterRemoteAccessServer directory.

 

 

 

Firewall configuratoon

 

mBooster Remote Access Server is designed to work with most network firewall configurations. If the mBooster Remote Access Server is behind the firewall or network address translation (NAT) it may be necessary to modify the configuration of the the network firewall. Typically this involves creating a pinhole for in-bound TCP to the specified port. Please contact your network adminstrator.

If the firewall is configured with no network address translation (NAT) and in-bound TCP port 80 traffic allowed, it may be possible to set up the mBooster Remote Access Server with no firewall reconfiguration. You could try configuring the mBooster Remote Access Server with SERVER.PORT=80. Please note that this technique only works with some firewall configurations.

 

 

Running as NT Service

 

Like any other Java program mBooster Remote Access Server can be run as an Windows NT Service. This is recommended if you intend to operate an mBooster Remote Access Server on a permanent basis. To run mBooster Remote Access Server as an Windows NT Service, it is necessary to install a NT Service Wrapper, such as Java Service Wrapper

.

 

Running mBooster Remote Access Server

mBooster Remote Access Server is a command line application. mBooster Remote Access Server takes its execution parameters (properties) from the properties file specified as the first parameter in the command line.

 

Example command line

java -jar mBoosterRemoteAccessServer.jar server.properties


In this example, mBooster Remote Access Server is run with properties specified in server.properties

 

Example properties file

The following is an example properties file. Please see Properties for a detailed explanation of each property.

## The base directory
SERVER.BASE.DIR = C:/mBoosterServer

## SERVER.PORT defaults to 1198 if not set
SERVER.PORT = 1198
## The external IP address - i.e. mapped IP address visible to Remote Access Client
SERVER.EXTERNAL.IP = 201.68.92.230
## SERVER.EXTERNAL.PORT defaults to SERVER.PORT if not set
SERVER.EXTERNAL.PORT = 1198

## Case sensitive usernames and passwords in plain text.
USER.1 = JohnSmith:17Hy13l1lK
USER.6= SueSmith:101L19pn
USER.43 = LizSmith:Pi180L910

## Defines what versions of mBooster are supported, and the .EXE path of each
MBOOSTER.VERSION.MAPPING.1 = 2.5:C:/innaworks/mBooster-2-5/mBooster.exe
MBOOSTER.VERSION.MAPPING.2 = 2.6.4:C:/innaworks/mBooster-2-6-4/mBooster.exe
MBOOSTER.VERSION.MAPPING.3 = 2.6:C:/innaworks/mBooster-2-6/mBooster.exe

## Defines versions of mBoosterZIP that are supported, and the .EXE path of each
MBOOSTERZIP.VERSION.MAPPING.1 = 2.6.4:C:/innaworks/mBooster-2-6-4/mBoosterZip.exe

## Exe paths - when not specified the client will receive an error
## if they attempt a build which requires one.
7ZIP.EXE.PATH = C:/program files/7-zip/7z.exe
PREVERIFIER.EXE.PATH = C:/java/Series_60_MIDP_SDK_2_1/bin/preverify.exe

## Specify the caching paramters
CACHE.ENABLED = ON
CACHE.PATH = C:/mBoosterServer/mbooster-cache
CACHE.SIZE.LIMIT = -1

 

Administration

This section specifies features and behavior that would be of interest to the administrator of the mBooster Remote Access Server.

Directory structure

mBooster Remote Access Server has the following directory structure with the base directory specified by the property SERVER.BASE.DIR

.

 

base_directory 
session: base directory for session subdirectories
— — session id: each session has its subdirectory
— — — input: input application and resource JAR files, together with properties file
— — — output: outpur JAR file, and session log file
user: base directory for user specific information
— — — user name: each user has its subdirectory
— — — — lib: base directory for caching library JAR files specific to each user
common: base directory for information common to all users
— — — lib: Library JAR files common to all users
logs: base directory for logs for all users

 

Populating the common library directory base_directory\common\lib

Library JAR files in base_directory\common\lib are available to all remote users, so that they do not need to upload their own copy of the standard library JARs.
To populate this directory, you cannot directly copy the library JAR files from a J2ME SDK, as a naming convention is required. Instead you should copy or move JAR files without renaming from base_directory\user_username_\lib to base_directory\common\lib after a user has uploaded a suitable library JAR.

 

Logging

mBooster Remote Access Server keeps a set of logs in the base_directory\logs directory. In addition it keeps a complete audit trail for each remote session in the base_directory\session directory.

 

Archiving/deleting session information

In the interest of providing a complete audit trail, mBooster Remote Access Server keeps all the files associated with each remote session, including the input application JAR files, properties file and the output JAR file together with the session log file if requested by the remote user.

 

The administrator of the mBooster Remote Access Server is expected to archive or delete old session sub-directories in the base_directory\session directory. It is recommended to perform this through a script.

 

Deploying mBooster Remote Access Client

 

  1. Edit Booster Remote Access Server properties file to add the remote user and password.
  2. Restart the mBooster Remote Access Server to allow the new configuration to take effect.
  3. Provide the remote user with the following:
    • A copy of the mBooster Remote Access Client.
      Note: Please first check your mBooster J2ME Optimization Suite license to determine whether you have the rights to redistribute mBooster Remote Access Client.
    • A copy of the documentation for mBooster Remote Access Client.
    • The URL of your mBooster Remote Access Server in the form of xxx.xxx.xxx.xxx:yyyy where
      • xxx.xxx.xxx.xxx is the external IP address of mBooster Remote Access Server visible to the remote user.
        Note: if the remote user is outside the firewall please take account of the network address translation (NAT) in place.
      • yyyy is the external port number of mBooster Remote Access Server visible to the remote user.
        Note: if the remote user is outside the firewall please be aware take account of the porting mapping in place.
    • The username and password

Properties

This set of properties specifies the behavior of mBooster Remote Access Server.

SERVER.BASE.DIR

Function:
This property specifies the path of the mBooster Remote Access Server base directory. Please see Directory structure for details. This path does not have to be within the mBooster J2ME optimization suite directory.
Note: Please note forward slashes should be used in place of backward slashes

 

Example:
SERVER.BASE.DIR=Z:/mBoosterServer

 

SERVER.PORT

Function:
This property specifies the TCP/IP port number to listen on.
Valid port number is 1 to 65535. Default value is 1198.

Example:
SERVER.PORT=80


SERVER.EXTERNAL.IP

Function:
This property specifies the external IP address of the mBooster Remote Access Server, visible to the mBooster Remote Access Clients. If the network firewall performs network address translation (NAT), it is most likely that the external IP address would be different from the local IP address.

Example:
SERVER.EXTERNAL.IP=206.1.27.93

 

SERVER.EXTERNAL.PORT

Function:
This property specifies the TCP/IP port number of the mBooster Remote Access Server, visible to the mBooster Remote Access Clients. If the network firewall is configured to do port mapping, the external port number may be different from the local port number.

 

Valid port number is 1 to 65535. Default value is the value of SERVER.PORT

.

Example:
SERVER.EXTERNAL.PORT=1345

 

SERVER.MAX.UPLOAD.SIZE

Function:
This property specifies a limit to the size of files that a client can upload to the server as inputs. Any input larger than this limit will be rejected by the server. This limit can be specified in bytes, kilobytes or megabytes by entering the value as a number followed by a suffix: blank for bytes, k/K for kilobytes, m/M for megabytes. E.g. 2000 = 2000 bytes, 2000K = 2000 kB, 2000M = 2000 MB

 

A valid upload limit is any number greater than 0. The default value is 4M (4MB).

Note: For mBoosterZip builds, the total size of the input files when compressed with normal zip methods must fall under this limit.

Example:
SERVER.MAX.UPLOAD.SIZE=16M

 

MAX.CONCURRENT.SESSION

Function:
This property specifies the maximum number of mBooster builds that the server can execute simultaneously. mBooster itself is purely single threaded and so on a system with multiple CPUs or CPU cores, multiple builds can be executed concurrently without significant performance degradation.
The default value is 1 and must be less than 16

.

Note: Concurrent builds of mBooster will each consume and compete for system memory and so the amount of physical memory available per session must be considered. By default each build will consume up to 512MB memory, but the memory used by mBooster can be limited through a special environment variable - please see this section: Controlling memory use.
MBooster's performance will become very degraded when it is forced to use virtual memory, and so the heaplimit value as discussed here should be matched to the MAX.CONCURRENT.SESSION value, and amount of physical memory (RAM) in the system.
For example:

  • To enable 2 concurrent sessions, on a system with 2GB RAM, heaplimit should not exceed 1024m (2GB / 2) to ensure virtual memory is not used.
  • To enable 4 concurrent sessions, on a system with 3GB RAM, heaplimit should not exceed 768m (3GB / 4) to ensure virtual memory is not used


Example:
MAX.CONCURRENT.SESSION=2

 

 

USER.<N>

Function:
Each of these properties for <N> = 1 .. 99 specify a remote user and its password. The form of each property should be a username, followed by a colon, followed by the password. The case-sensitive username must not be blank. The case-sensitive password must be at least 5 characters long, composed of alphanumeric characters.

 

Example:
USER.41=JohnSmith:8Jk16sosKla

 

MBOOSTER.VERSION.MAPPING.<N>

Function:
Each of these properties for <N> = 1 .. 99 specify a version of mBooster and the corresponding .EXE path. The form of each property should be a version string, followed by a colon, followed by the EXE path.
When a client submits a build to the remote server, the version of the client will be used to look up in this mapping to identify what version of mBooster should be run. At least one version must be supplied to start the server.

Example:
MBOOSTER.VERSION.MAPPING.1 = 2.5.2:C:/mBooster-2-5-2/mBooster.exe

 

MBOOSTERZIP.VERSION.MAPPING.<N>

Function:
As above, but for the mBooster ZIP compression tool instead -
Each of these properties for <N> = 1 .. 99 specify a version of mBoosterZip and the corresponding .EXE path. The form of each property should be a version string, followed by a colon, followed by the EXE path.
When a client submits a build to the remote server, the version of the client will be used to look up in this mapping to identify what version of mBoosterZip should be run. You do not need to supply any versions of mBoosterZip if you do not wish to support remote execution of this tool.

 

Example:
MBOOSTERZIP.VERSION.MAPPING.1 = 2.6.4:C:/mBooster-2-6-4/mBooster.exe

 

CACHE.ENABLED

Function:
When set to ON, mBooster Remote Access Server will cache the intermediate results to speed up future executions, if the remote session already has CACHE.ENABLED set to ON.
Valid values are ON and OFF. The default value is ON

.

Example:
CACHE.ENABLED=OFF

 

CACHE.PATH

Function:
When CACHE.ENABLED is set to ON, this property specifies the path of the mBooster Remote Access Server cache directory.
Note: Please note forward slashes should be used in place of backward slashes

 

Example:
CACHE.PATH=Z:/mBooster_cache

 

CACHE.SIZE.LIMIT

Function:
When CACHE.ENABLED is set to ON, this property specifies the size of the cache in MB. Specifically if the cache exceeds the size specified, the oldest entries in the cache will be removed.

Valid values are -1, 0, and positive integers.
When set to -1, there is no cache size limit.
When set to 0, all entries in the cache will be removed whenever the cache is cleaned up.

The default value is 200 (MB)

Example:
CACHE.SIZE.LIMIT=-1

 

PREVERIFIER.EXE.PATH

Function:
For the server to support clients that set PREVERIFIER.METHOD to EXTERNAL, the value of this property must point to the location of Sun's preverifier, or an equivalent executable.
Note: Please note forward slashes should be used in place of backward slashes

 

Example:
PREVERIFIER.EXE.PATH=C:/java/WTK21/bin/preverify.exe

 

7ZIP.EXE.PATH

Function:
For the server to support clients that set JAR.METHOD to 7ZIP, the value of this property must point to the location of the 7ZIP executable.
Note: Please note forward slashes should be used in place of backward slashes

Example:
7ZIP.EXE.PATH=C:/program files/7-zip/7za.exe

 

 

Previous pageContentsNext page