Title: Mobile Tools for Java Platform MTJ Webinar
1Mobile Tools for Java Platform (MTJ) Webinar
- Version 1.0 Date 07.12.2006
2Contents
- Introduction
- MTJ scope
- MTJ participants
- Java runtime environment
- Project milestones
- Project status
- MTJ internal architecture
- MTJ development environment
- MTJ development environment dependencies
- Demo
3Introduction
- MTJ is a sub-project under the Eclipse Device
Software Development Platform (DSDP) project - MTJ creates an mobile extension to Eclipse Java
IDE to support mobile Java development - MTJ provides an extensible frameworks for other
mobile tooling vendors - MTJ provides default services for mobile Java
application development
4MTJ Scope
- The scope of the Mobile Tools for the Java
Platform (MTJ) project is to extend eclipse
platform to support mobile device Java
application development. - The purpose is to develop both frameworks that
can be extended by tool vendors and tools that
can be used by 3rd party mobile java application
developer. - Mobile Java domain contains several combinations
for configuration (CLDC and CDC) and profile
(MIDP, Foundation Profile and Personal Profile).
Currently the most common combination is
CLDCMIDP, which MTJ release 0.7 supports. Other
configurations and profiles are also considered
to be supported in coming releases.
5MTJ participants
- Nokia
- IBM
- EclipseME, Craig Setera
- Enough Software
- Four2B
- Tira Wireless
- Sybase
- Apogee Software
- SonyEricsson
Initial contributors
6Java runtime environments
Enterprise
Desktop
Low-enddevices
SmartCards
High-enddevices
Java Virtual Machine
Java Micro Edition (JME)
The MTJ projects focus in Mobile runtimes is in
the JME area.
7Project milestones
2006
2005
2007
2008
2Q
3Q
4Q
1Q
2Q
3Q
4Q
1Q
3Q
4Q
1Q
2Q
3Q
- Current release MTJ 0.7
- Device Platform (Emulator SDK import)
- Deployment management
- Signing and security management
- Extensibility frameworks
- Build management
- Java docs and developer docs
- Planned release MTJ 1.0
- Fragmentation management
- Pre-processing
- ANT based build management
- GUI designers
- Flow designers
MTJ platform releases
1.0R
M1
M2
RC1
0.7R
M1
M2
8Project status
- Current release focuses to enable the mobile IDE
base services. - Like mobile SDK import, device platform, runtime
platform, signing, deployment, packaging,
building etc. services. - Next release Use Case planning is ongoing, please
see the MTJ Wiki pages.(http//wiki.eclipse.org/i
ndex.php/DSDP/MTJ)
9MTJ Internal Architecture General composition
Service UI
Extensibility UI
- Top level requirements
- Enable independent life cycles for different
portions of system (frameworks, service
providers). - Support extensibility in all levels of the
services for third parties. - Support model driven development.
- Enable adaptation to underlying Eclipse services.
Implement
Implement
Service providers
Use
Extensibility frameworks
Use
Core, utilities, models
adapt-to
Eclipse workbench
10MTJ Internal Architecture A
Logical View
UI API
Service API
- Logical layering and decomposition to
coarse-grained components. Service providers
presents their own architectural domains. - Dynamic service component model provides the
primary mechanism of exporting services to
provider layer. - Thin UI layer and separation of UI logic from
non-UI. - Common utilities reside on Core layer. Frameworks
and services are independent of each other.
Service
Service
System API
UI API
Extensibility Layer
Extensibility Layer
Model
Utilities
Core
Eclipse workbench
OS (Win32, Linux, Mac,)
11Provider's high level composition
- Service provider
- The service provider is the actual service
implementation context. E.g. Deployment Provider.
The base design follows the MVC pattern. - View
- The view defines the service providers UI
implementation. It is used with the Controller.
The UI part is usually separated to its own
plug-in. - Controller
- In Controller context the service provider ties
the model, services and UIs together in way,
which from the user point view can be seen as an
application. Controller uses model APIs and view
APIs from View and Service APIs from Model. - Model
- Provides the data model and is EMF based.
- Extension points
- Provides all the MTJ related extension points and
their interfaces.
Service provider
UI logic
UI Layer
Business logic
Serviceprovider
Frameworks
Core
12Device Management architecture
Mobile Project
- Each Mobile project defines and selects the
targeted and supported devices. Mobile Project
selects one or more Device Platforms (from
Emulator SDK). - The Runtime Platform Definition (RPD) data is
created based on the selected Device Platform.
The RPD provides the runtime classpath to the
JDT. - During the development, the developer can select
those real phones or compatible device groups,
that are supported with the RPD and also select
and/or define the found Fragmentation Definition
data for pre-processing usage.
1..n
Device Platform
1..n
Emulator Device
Device
Real Device
Runtime Platform Definition
Fragmentation Definition
1..n
1
13MTJ development environment
Mobile SDK Emulator
MTJ workbench
Wizards
Provider Components
GUI builders
Build
Other
Project
Create Project
Code templates
Audio converter
Obfuscation providers
Flow Editor
J2ME Nature
Create Application
Create UI
Legend
LCDUI Editor
Signing provider
Code Editor
Custom Components
0.7 Release
eSWT Editor
Deployment providers
J2ME project builders
Localization
1st Release
Future design
Runtime launch
Game Editor
Snippets
JAD Editor
Pre-processing
Desktop
Device
Help
Packaging
Debugging
Desktop
Device
Ant build provider
IDE Extensible Framework Layer
Runtime Management Framework
Security Management Framework
Deployment Framework
Build Framework
Device Management Framework
GUI Builder Framework
Eclipse Platform
14MTJ development env. dependencies
- Eclipse foundation provides the major download
site for Eclipse and MTJ plugins. - SUN and IBM provides the major download sites for
the JVM downloads. - Vendor X and Y provides download sites for the
mobile SDKs. - Vendor A and B provides the major download sites
for the Fragmentation data.
MTJ context
Different tooling products based on Eclipse MTJ
Eclipse
EclipseDownload / Update sites
MTJ
Sun / IBM (tooling runtime JRE 5.0 / J9 )
API
JavaDocs
Fragmentation data
Vendor A (for Fragmentation data)
Vendor B (for Fragmentation data)
A List of JVMS
Tooling RuntimesJRE 1.4 .. 5.0, J9
Vendor X (for SDK download)
Operating Systems Win32, Linux, MAC.
Vendor Y (for SDK download)
15How to access the code?
16Demo