Runtime management framework
This section provides information on the MTJ device and mobile runtime
platforms and on MTJ device and project interfaces.
DEVICE PLATFORM AND
RUNTIME PLATFORM
Device
Platform contains of one or more Device instances. MTJ plug-in does not
know whether the Devices are device emulators or real devices, because
the plug-in extension point API hides all implementation details. Device
Platform also consists of the Device Platform Configuration. These values
are installation –specific and can and must be set by the Device Platform’s
user (i.e. emulator’s installation directory). The figure below illustrates
the UML for the device platform.

Device contains of Device Description and Device Configuration. Device
Description is described in Device Description Provider –section. Configuration
represents those values that are installation –specific. Device has also
a Runtime Platform Definition that describes the environment that the
device is capable to run on. Runtime Platform consists of Device Configuration,
Device Profile, Service APIs and JVM Implementation.
Device
Configuration defines used configuration (e.g. CDC or CLDC) and its version.
Device Profile defines used profile (e.g. MIDP) and its version. Service
APIs are either APIs that are defined in Device Profile, or APIs of optional
Services that the Device’s OS is supporting. Runtime Platform Definition
is always based on defined JVM Implementation. Service API object contains
the standardized service name and it’s version, for example WMA 1.1, MMAPI
1.1 or Location API 1.0. Service API has also reference to the JAR Library
that implements the API. Also, Device Configuration has a reference to
the JAR Library that implements the functions. Also, the JVM Impl object
contains the JVM name and its version. The figure below illustrates the
UML for the Runtime Platform.

Import sequence for the device platform
In
the MTJ IDE environment, the Runtime Platform Definition creates and collects
the entire target Mobile Device Configuration, Mobile JVM, and its libraries
and Device Profile related service APIs and their libraries.
The
MTJ IDE enables the Runtime Platform Definition to be tailored for the
developer needs, for example allowing you to select which service APIs
are enabled and which are disabled.. Also, you can enable the Device Configuration
and Profile selection, if the target mobile SDK enables that.
The
figure below illustrates the device platform import sequence.

Currently, there are two separate DevicePlatform import providers, one
Generic UEI for, for example, the SUN WTK and the other for Nokia based
mobile SDK device platforms. Both use UEI for accessing the mobile SDK
emulator.exe and for getting the SDK's information to the Device Platform.
The architecture allows adding new DevicePlatform providers that, for
example, do not use UEI for accessing the SDK emulator.
Device Platform provider interface
Target
environments are seen as Device Platforms by the MTJ environment. Device
Platform’s type can be an emulator platform or a real device platform.
The Device Platform implements the following functionalities:
- Binary code pre-verification and
- Application launching
The interface for the Device Platform provider is illustrated in the figure
below.

Device definition
Device Definition shows basic capabilities of devices. Every Device
Description instance represents one real device and is identified by vendor
name and device model. Capabilities could be device configuration, device
profiles or services API that are supported by the device. Capabilities
could also be, for example, color
depth, screen size, canvas size, camera resolution, supported data exchange
protocol, heap size, max jar size, operating system, supported video format
or supported sound format.
Device Groups represent a group of devices that have similar capabilities.
The groups capabilities are same as the Device Descriptions’. Device Group
also has a name and a description that helps to realize the group's devices'
capabilities.

MTJ Project
Mobile Project development is targeted to devices that have certain
Device Configuration and Device Profile. Therefore MTJ’s Project has also
Device Configuration and Device Profile defined. It’s possible to select
a set of Service APIs to the Project. Based on the selected set of APIs
corresponding Jar libraries are added to the project. Project always has
the default device, that matches to the Project's definitions. That default
device also gives the needed Jar libraries to the Project.


MTJ architecture

MTJ development examples

APIs for runtime management network