66
1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile extend existing Eclipse frameworks to support mobile device Java application development. device Java application development. MTJ will enable developers to develop, debug and deploy MTJ will enable developers to develop, debug and deploy mobile Java applications to emulators and real devices. mobile Java applications to emulators and real devices. Scope of the doc: Focus on 1 st release (+ potential future features)

1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

  • View
    227

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

1

Mobile Tools forJava Platform

The goal of the Mobile Tools for Java project is to extend existing Eclipse The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application development. frameworks to support mobile device Java application development. MTJ will enable developers to develop, debug and deploy mobile Java MTJ will enable developers to develop, debug and deploy mobile Java applications to emulators and real devices.applications to emulators and real devices.

Scope of the doc:Focus on 1st release (+ potential future features)

Page 2: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

217.02.2006

Contents Eclipse High-Level Architect

ure Java Runtime Environments MTJ Ecosystem MTJ high-level layers MTJ Development by Milest

one Device fragmentation Pre-processing Automated & manual testing Build management

Wizards Runtime Launch Debugging Code Editor Deployment Device Management Signing and Obfuscation Localization Application Flow GUI Editor Backup slides

Page 3: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

317.02.2006

Eclipse High-level Architecture

Tools Platform

Tools Platform

FrameworksFrameworks

Rich Client PlatformRich Client Platform

Technology Enablers

Technology Enablers

EcosystemEcosystem

Vertical Industry InitiativesVertical Industry Initiatives

Horizontal Technologies

Horizontal Technologies

SWTSWTSWTSWTWorkbenchWorkbenchWorkbenchWorkbenchRuntimeRuntimeRuntimeRuntime

UpdateUpdateUpdateUpdateProject ModelProject ModelProject ModelProject ModelWorkspaceWorkspaceWorkspaceWorkspace Multi-languageMulti-languagesupportsupport

Multi-languageMulti-languagesupportsupport

UI FrameworksUI FrameworksUI FrameworksUI FrameworksGraphical FrameworksGraphical FrameworksGraphical FrameworksGraphical FrameworksModeling FrameworksModeling FrameworksModeling FrameworksModeling Frameworks

Test and Test and PerformancePerformance

Test and Test and PerformancePerformance

C/C++ Dev. C/C++ Dev. ToolsTools

C/C++ Dev. C/C++ Dev. ToolsTools

Java Dev. Java Dev. ToolsTools

Java Dev. Java Dev. ToolsTools

Business Business Intelligence & Intelligence &

ReportingReporting

Business Business Intelligence & Intelligence &

ReportingReporting

Web ToolsWeb ToolsWeb ToolsWeb ToolsEmbedded & Embedded & Mobile ToolsMobile ToolsEmbedded & Embedded & Mobile ToolsMobile Tools

Modeling Modeling ToolsTools

Modeling Modeling ToolsTools

Data Data ManagementManagement

Data Data ManagementManagement

Service Service Oriented Oriented

ArchitectureArchitecture

Service Service Oriented Oriented

ArchitectureArchitecture

System System ManagementManagement

System System ManagementManagement

Desktop Desktop DomainDomainDesktop Desktop DomainDomain

Internet Internet DomainDomainInternet Internet DomainDomain

Enterprise Enterprise DomainDomain

Enterprise Enterprise DomainDomain

Embedded Embedded DomainDomain

Embedded Embedded DomainDomain

Mobile Mobile DomainDomain Mobile Mobile DomainDomain

Page 4: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

417.02.2006

Java Runtime Environments

Desktop Low-enddevices

Enterprise High-enddevices

SmartCards

Optionalpackages

Optionalpackages

Optionalpackages

MIDP

Optionalpackages

CLDC

Foundationprofile

CDC

Personalprofile

JavaCard

Card VMKVMKVMJava Virtual MachineJava Virtual Machine

Java Micro Edition (J2ME)

J2EE J2SE

Legend

Java JRE runtime dependencies

Not used Javaruntime

J&C and MTJ runtime scope

The MTJ projects focus in Mobile runtimes is in the J2ME area.

Page 5: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

517.02.2006

MTJ Ecosystem

MTJ context

EclipseEclipseEclipseEclipse

Operating Systems: Win32, Linux, MAC.

Operating Systems: Win32, Linux, MAC.

Tooling RuntimesJRE 1.4 .. 5.0, J9Tooling RuntimesJRE 1.4 .. 5.0, J9

XX

UEI

UEI

Vendor Y SDKVendor Y SDK

JavaDocsJavaDocs

APIAPI

Real DeviceReal DeviceReal DeviceReal Device

Download / Download / Update sitesUpdate sites

EclipseEclipse

Download / Download / Update sitesUpdate sites

EclipseEclipse

Sun / IBM Sun / IBM (tooling runtime(tooling runtime

JRE 5.0 / J9 )JRE 5.0 / J9 )

Sun / IBM Sun / IBM (tooling runtime(tooling runtime

JRE 5.0 / J9 )JRE 5.0 / J9 )

Vendor X Vendor X (for SDK download)(for SDK download)

Vendor X Vendor X (for SDK download)(for SDK download)

Different Different vendorvendor

products products based based

on Eclipse on Eclipse MTJMTJ

Different Different vendorvendor

products products based based

on Eclipse on Eclipse MTJMTJ

Generic SDKGeneric SDK

APIAPI

JavaDocsJavaDocs

MTJMTJMTJMTJ

JavaDocsJavaDocsJavaDocsJavaDocs

APIAPI

APIAPIAPIAPI

A List of A List of JVMSJVMS

A List of A List of JVMSJVMS

Vendor Y Vendor Y (for SDK download)(for SDK download)

Vendor Y Vendor Y (for SDK download)(for SDK download)

UEI

UEI

Vendor X SDKVendor X SDK

JavaDocsJavaDocs

APIAPI

Page 6: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

617.02.2006

MTJ high-level layersMobile IDE ComponentsMobile IDE Components

Mobile IDE Extensibility Framework LayerMobile IDE Extensibility Framework Layer

Eclipse PlatformEclipse Platform

Eclipse Modeling FrameworkEclipse Modeling Framework

OSGIOSGIOSGIOSGI

Eclipse Tool ServicesEclipse Tool Services

Operating Systems: Win32, Linux, MACOperating Systems: Win32, Linux, MAC

Deployment Deployment ManagementManagementDeployment Deployment ManagementManagement

SWTSWTSWTSWT WorkbenchWorkbenchWorkbenchWorkbench

Visual Visual EditorEditorVisual Visual EditorEditor

Web Tools Web Tools ProjectProject

Web Tools Web Tools ProjectProject GEFGEFGEFGEF

Testing & Testing & Profiling Profiling Tools Tools

Testing & Testing & Profiling Profiling Tools Tools

EMF EMF EMF EMF

Build Build ManagementManagement

Build Build ManagementManagement

Runtime Management

Runtime Management

Device Management

Device Management

BIRTBIRTBIRTBIRT Workflow Workflow ToolboxToolbox

Workflow Workflow ToolboxToolbox

Data Tools Data Tools Data Tools Data Tools

Graphical Graphical Modeling Modeling

Framework Framework

Graphical Graphical Modeling Modeling

Framework Framework

JDTJDTJDTJDT

GUI Builder GUI Builder ManagementManagementGUI Builder GUI Builder

ManagementManagement

Multi-Multi-language language supportsupport

Multi-Multi-language language supportsupport

Multimedia Multimedia ToolsTools

Multimedia Multimedia ToolsTools

Security Security ManagementManagement

Security Security ManagementManagement

Obfuscation Provider

Obfuscation Provider

Device Description

Provider

Device Description

Provider

Device Platform Provider

Device Platform Provider

Packaging Provider

Packaging Provider

Signing ProviderSigning Provider

Device Platform Provider

Device Platform Provider

Build Provider

Build Provider

Pre-processing

Provider

Pre-processing

Provider

GUI Builder Provider

GUI Builder Provider

Deployment Provider

Deployment Provider Ant ProviderAnt Provider xx

Page 7: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

717.02.2006

MTJ Development by MilestoneMobile RAD / IDEMobile RAD / IDEMobile RAD / IDEMobile RAD / IDE

Provider ComponentsProvider Components

IDE Extensible Framework LayerIDE Extensible Framework LayerIDE Extensible Framework LayerIDE Extensible Framework Layer

Eclipse PlatformEclipse PlatformEclipse PlatformEclipse Platform

Mobile SDK Mobile SDK EmulatorEmulator

Mobile SDK Mobile SDK EmulatorEmulator

WizardsWizardsWizardsWizards

Create Create ApplicationApplication

Create Create ApplicationApplication

Create Create ClassClass

Create Create ClassClass

Code Code PackagingPackaging

Code Code PackagingPackaging

Create Create ProjectProjectCreate Create ProjectProject

BuildBuildBuildBuild

DeploymentDeploymentDeploymentDeployment

Deployment providers

Deployment providers

Signing providerSigning provider

SnippetsSnippets

DebuggingDebugging

DesktopDesktopDesktopDesktop DeviceDeviceDeviceDevice

Runtime launchRuntime launch

DesktopDesktopDesktopDesktop DeviceDeviceDeviceDevice

GUI builders GUI builders

HelpHelp

LCDUI LCDUI EditorEditor

LCDUI LCDUI EditorEditor

eSWT eSWT EditorEditoreSWT eSWT EditorEditor

Game EditorGame EditorGame EditorGame Editor

Flow EditorFlow EditorFlow EditorFlow Editor

Custom Components

Custom Components

LocalizationLocalization

J2ME NatureJ2ME Nature

Audio converter

Audio converter

LegendLegend

11stst Iteration Iteration

22ndnd

Iteration Iteration

11stst Release Release

Future designFuture design

Runtime Management Framework

Runtime Management Framework

Deployment Framework

Deployment FrameworkBuild FrameworkBuild Framework

Device Management Framework

Device Management Framework

GUI Builder FrameworkGUI Builder Framework

Security Management Framework

Security Management Framework

Obfuscation providers

Obfuscation providers

XxXx Editor Editor

XxXx Editor Editor

JAD EditorJAD Editor

Code EditorCode Editor

J2ME project builders

J2ME project builders

Symbian Symbian templatestemplatesSymbian Symbian templatestemplates Create UICreate UICreate UICreate UI

Pre-processing

Pre-processing

PackagingPackaging

Antenna providerAntenna provider

Project Build Other

Page 8: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

817.02.2006

Device fragmentation Different characteristics of devices must be taken into account

Physical device characteristics, e.g. display resolution,-size and buttons, processing power and memory

Quirks in the OS, API and Java virtual machine implementations Variation comes also from APIs supported by each device

Flavours of Symbian (S60, S80, S90) and other mobile OS versions J2ME profiles and configurations CLDC 1.0/1.1 and MIDP 1.0/2.0 Optional APIs for Bluetooth, 3D, Multimedia, Web Services, etc. Proprietary APIs from device manufacturers and operators

In addition, there are other operator and market requirements Localisation, branding, billing, etc.

New devices and APIs are introduced frequently

Huge amount ofconfigurations

VaryingdevicesVaryingdevices

Differingassets

Differingassets

Operatorrequirements

Operatorrequirements

Page 9: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

917.02.2006

Device fragmentation, Mobile value chain

Application Application DevelopersDevelopersApplication Application DevelopersDevelopers

Content Content aggregators and aggregators and

DistributorDistributor

Content Content aggregators and aggregators and

DistributorDistributor

Network operatorsNetwork operatorsNetwork operatorsNetwork operators

End-user / End-user / consumer consumer End-user / End-user / consumer consumer

Infrastructure Infrastructure providersproviders

Infrastructure Infrastructure providersproviders

Device Device manufacturesmanufactures

Device Device manufacturesmanufactures

RetailRetailRetailRetail

This diagram represents the major players in the wireless industry. Application- and Content providers have partnered with Network operators to design and develop Java solutions for consumers. Content aggregators license content from it’s creators and format it to be used with specific devices and networks.Content distributors create the revenue by providing the distribution channels.Network operators (carriers) and Infrastructure providers control the wireless network and own the customer information. Device manufactures drive the technical innovation through the new hardware.The application developers and content aggregators needs most tools against the device fragmentation.

LegendLegend

Information exchangeInformation exchange

Cash flow exchangeCash flow exchange

Page 10: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

1017.02.2006

Device fragmentation, pre-processing Definition: Pre-processing changes the source code before it is compiled.

It allows conditional compilation and inclusion of one source file into another and is helpful when trying to maintain a single source for several devices, each having its own bugs, add-on APIs, etc. and it enables device optimization.

The Eclipse JDT could add support for pre-processing, alternative could be e.g. J2ME Polish, which can be integrated to Eclipse (licensing must be checked) or re-implementing the similar functionality.

One key feature is the device description database, that helps to create tasks or actions against similar devices. The device description database enables that developers can identify and group devices with an keyword, that can be used e.g. in pre-processing.

DeviceDevice

Emulator

Device

Emulator

Device

Real

Device

Real

Device1..n

1

Device Platform Device Platformi/f

Fragmentation Definition

Fragmentation Definition

1

Runtime Platform Definition

Runtime Platform Definition

Can be seen as one definition

Page 11: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

1117.02.2006

Automated & manual testing Tdb.

Page 12: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

1217.02.2006

Build management The build environment is heavily relying on Eclipse, but there are plans to

support also Ant. One planned extension to Ant is the Antenna –project, which provides a set of Ant tasks suitable for developing wireless Java applications targeted at the J2ME and Mobile Information Device Profile (MIDP).

The build management enables that the build process can be configured to suit for the active project needs. E.g. what build providers are used as default and how the building process works.

The target device management provides data about selectable devices and J2ME platforms (SDK Emulators) and enables that the Runtime Platform Definition. The selected default target Device Platform is then activated to the projects use.

Page 13: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

1317.02.2006

Wizards Base wizards:Base wizards:

Create ProjectCreate Project Create ApplicationCreate Application Code PackagingCode Packaging Create ClassCreate Class

The base wizards implement the corresponding Use-Case requirements.The base wizards implement the corresponding Use-Case requirements. One optional scenario may be that Symbian has created an template One optional scenario may be that Symbian has created an template

mechanism (that is in use currently in C++ side in Eclipse), that the MTJ mechanism (that is in use currently in C++ side in Eclipse), that the MTJ could convert to be used in the Java side. could convert to be used in the Java side.

Page 14: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

1417.02.2006

Runtime Launch

Page 15: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

1517.02.2006

Debugging

Page 16: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

1617.02.2006

Code Editor The MTJ code editor is based on the Eclipse

JDT base functionalities.

JDT

The JDT (Java Development Tools) subsystem consists of integrated tools for developing, testing, and debugging Java (J2SE) applications. The JDT project is managed as part of the Eclipse Platform top level project.

The JDT Core component defines the non-UI infrastructure for compiling and analyzing Java code. The JDT UI component provides the user interface elements (wizards, views, editors) and infrastructure for editing, refactoring, browsing, and searching Java code. The JDT Debug component handles everything related to running and debugging Java programs.

JDT<<subsystem>>

Core Debug UI

Page 17: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

1717.02.2006

Deployment and Runtime management The MTJ provides an Deployment and DevicePlatform frameworks that

supports the existing SDK Emulators and phones runtimes The framework publishes a Device Platform -interface, that capsulate

(hides) the actual runtime environments and protocols. The framework separates the different vendors products to own plug-ins

EclipseEclipseEclipseEclipseSDK / Emulator (Vendor X)SDK / Emulator (Vendor X)

Vendor XVendor X

SDK EmulatorSDK Emulator

Plug-inPlug-in

Vendor XVendor X

SDK EmulatorSDK Emulator

Plug-inPlug-in

MTJMTJ

Plug-inPlug-in

MTJMTJ

Plug-inPlug-in

Dev

ice

Platfo

rm

Dev

ice

Platfo

rm

Extension point

SDK / Emulator (Vendor Y)SDK / Emulator (Vendor Y)

Vendor YVendor Y

SDK EmulatorSDK Emulator

Plug-inPlug-in

Vendor YVendor Y

SDK EmulatorSDK Emulator

Plug-inPlug-in

SDK / Emulator (Vendor Z)SDK / Emulator (Vendor Z)

Vendor ZVendor Z

SDK EmulatorSDK Emulator

Plug-inPlug-in

Vendor ZVendor Z

SDK EmulatorSDK Emulator

Plug-inPlug-in

Vendor XVendor X

Real DeviceReal Device

Plug-inPlug-in

Vendor XVendor X

Real DeviceReal Device

Plug-inPlug-inReal Device Real Device (Vendor X)Real Device Real Device (Vendor X)

Vendor YVendor Y

Real DeviceReal Device

Plug-inPlug-in

Vendor YVendor Y

Real DeviceReal Device

Plug-inPlug-inReal Device Real Device (Vendor Y)Real Device Real Device (Vendor Y)

Page 18: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

1817.02.2006

Device Management The device management in this scope focuses to enable detecting,

visually showing, identifying and visually managing the available mobile devices.

There should be ability to group devices with similar configuration based on some criteria. This grouping could be used e.g. in the packaging / building / localization / deployment / branding processes.

The device model holds each device and

DeviceDevice

Emulator

Device

Emulator

Device

Real

Device

Real

Device

1..n

1

Device Platform Device Platformi/f

Fragmentation Definition

Fragmentation Definition1

Runtime Platform Definition

Runtime Platform Definition

Can be seen as one definition

Page 19: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

1917.02.2006

Signing and Obfuscation Signing

MIDP 2.0 (JSR-118) includes enhanced mobile code and application security through a well-defined security manager and provisioning process. During the provisioning the MIDP applications are signed with an certificate, which ensures their security and makes them trustworthy.

Trusted MIDlet suites can be granted access to API's without explicit user authorization, and have wider access to device API's.

Obfuscation By using an Obfuscator tool, the source code can be made more difficult to

reverse-engineer and also there can be some code optimization benefits achieved at the same time.

Obfuscation can be done e.g. through an ANT task that activates an Obfuscator tool and it performs the obfuscation against the parameterized source code location.

Page 20: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

2017.02.2006

Localization Localization (I18N/L18N) is a major issue in the wireless space, where a

single app deployed to a single carrier may need to support many languages and character sets. 

Key requirements: The Localization architecture should be capable of supporting all languages. It should remove the need for application developers to decide which encoding

the application will support. The Localization architecture should be aware the UI differences in devices so

that the developers won’t have to (e.g. the width and length of a device screen).

The localization should enable that the service providers can extend the language supports during the deployment phase.

Allow local users to select their preferred languages as provided by the application. There should be visible UI simulation that enable to verify the UI immediately when the users switch the locale.

The localization should support at leas two approaches: By creating a resource file (.properties) and adding there the selected source

files localizable keys. By enabling such optimization to bind the localization directly to the application.

Page 21: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

2117.02.2006

Application Flow The Application Flow creates kind a action diagram, where the visible and

invisible actions are drawn on a graphical editor. The AF-editor enables that developer can design e.g. mobile application UI flow.

Page 22: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

2217.02.2006

GUI Editor The Eclipse Visual Editor provides an extensible GUI framework, that can

be used in the mobile IDE UI area. Why VE: The VE’s framework provides a lot of extension points to

different kind of GUI editors Benefits: The GUI editors would have common base framework and the

there is a need to implement only the delta of the different mobile GUI editors

Now existing: The base GUI framework. What is needed: The mobile screen engines with UI widgets to LCDUI

area. VE doesn’t provide any multimedia services yet.

Page 23: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

23

Backup slides

More detail presentation about the top technical items

Page 24: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

24

Backup slides – Device Fragmentation

Page 25: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

2517.02.2006

Device Platform Device Platform

DeviceDevice

Emulator

Device

Emulator

Device

Real

Device

Real

Device

1..n

• Target environments are seen as Device Platforms by the MTJ environment. Device Platform contains one or more Device instances.• MTJ plug-in doesn’t know if the Devices are device emulators or real devices because the plug-in extension point API hides all implementation details

i/f

Device Platform

Page 26: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

2617.02.2006

Device Platform ServicesDevice Platform Services

Device Platform ServicesDevice Platform Servicesi/f

getDevicePlatforms() : DevicePlatform[]getDevices(String devicePlatformName) : Device[]...

Device Platform, Device Platform Services

• Device Platform Services make it possible to query available Device Platforms.• Based on Device Platform name it’s possible to get Devices or the Platform.

Page 27: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

2717.02.2006

DeviceDeviceDeviceDeviceDP

DC

ProjectProject ProjectProjectDP

DC

Device fragmentation

APIsAPIs

DeviceDeviceDeviceDPDP

APIs

DCDC

DeviceDeviceDeviceDPDP

DCDC

APIsAPIs

DeviceDeviceDeviceDPDP

APIsAPIs

DCDC

DeviceDeviceDeviceDPDP

DCDC

APIsAPIs

DeviceDeviceManagementManagement

• Project can select smaller set of APIs that the targeted devices are supporting. By selecting smallest possible set of needed APIs, the number of suitable devices is bigger.• Although the Project has the default device, the Projects definitions can match to several devices.

DeviceDeviceDeviceDPDP

DCDC

APIsAPIs

DeviceDeviceDeviceDPDP

DCDC

APIsAPIs

Page 28: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

2817.02.2006

Device ServicesDevice Services

Device ServicesDevice Servicesi/f

getDevices(DeviceConfiguration dc, DeviceProfile dp, ServiceAPI[] apis) : Device[]...

Device fragmentation, Device Services

• Device Services make it possible to query Devices that are possible targets to the Project’s application. Project uses it’s own definitions as parameters in the service call.

Page 29: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

29

Backup slides - Wizards

Wizards internal architecture

Page 30: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

3017.02.2006

Wizards architecture [template management]…

Page 31: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

31

Backup slides - Runtime Launch

Runtime Launch internal architecture

Page 32: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

3217.02.2006

Runtime Launch architecture The Runtime Launch architecture uses the

Device Platform to enable selection of available Devices.

Page 33: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

3317.02.2006

Device Device

Runtime Platform Definition Runtime Platform Definition

1..n

1..n11

Device Profile Device ProfileDP Service API Service APIAPI Device Configuration Device ConfigurationDC

Runtime Platform

JVM Impl. JVM Impl.

1

• Device instance defines the Runtime Platform Definitions that it’s capable to run on.• Runtime Platform consists of Device Configuration, Device Profile, Service APIs and JVM Implementation.• Device Configuration defines used configuration (i.e. CDC or CLDC) and it’s version.• Device Profile defines used profile (i.e. MIDP) and it’s version.• Service APIs are either APIs that are defined in Device Profile or API of optional Services that the Device’s OS is supporting.• Runtime Platform Definition is always based on defined Mobile SDK JVM Implementation.

Page 34: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

3417.02.2006

Service API Service APIAPI

Runtime Platform (cont.)

JVM Impl JVM Impl

• Service API –object contains the standardize service name and it’s version, i.e. WMA 1.1, MMAPI 1.1 or Location API 1.0 .• Service API has also reference to JAR Library that implements the API.• Also Mobile SDK JVM Impl –object contains the JVM name and it’s version and reference to JAR Library that implements the JVM specification that is defined by the Runtime Platform’s Device Configuration Specification.

Library Jar Library Jar

1

Library Jar Library Jar

1

Page 35: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

3517.02.2006

Device ServicesDevice Services

Device ServicesDevice Servicesi/f

getRuntimePlatforms(String devicePlatformName, String deviceName) : RuntimePlatformDefinition[]...

Runtime Platform, Device Services

• Device Services make it possible to query Runtime Platforms of a Device.

Page 36: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

36

Backup slides - Debugging

Debugging internal architecture

Page 37: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

3717.02.2006

Debugging architecture …

Page 38: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

38

Backup slides - Device Management

Device Management internal architecture

Page 39: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

3917.02.2006

Device Management architecture

Each Mobile project may select the targeted devices, that the project is supporting. Mobile Project contains one or more Device Platforms, thus there is only one default mobile SDK active.

The Device Platform and Device instances definition is stored inside the EMF based Device model and the with extendable persistence component the definition is shared with in several projects.

The Runtime Platform Definition data is also stored and shared among projects and the Fragmentation Definition can enhance the task to find compatible device groups.

Also the pre-processing can use this to provide and define the device grouping inside the JDT.

Mobile Mobile ProjectProject Mobile Mobile ProjectProject

1..n

DeviceDevice

Emulator

Device

Emulator

Device

Real

Device

Real

Device

1..n

1

Device Platform Device Platformi/f

Fragmentation Definition

Fragmentation Definition1

Runtime Platform Definition

Runtime Platform Definition

Extended device definition

Page 40: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

4017.02.2006

• Target environments are seen as Device Platforms by the MTJ environment. Device Platform contains one or more Device instances.• MTJ plug-in doesn’t know if the Devices are device emulators or real devices because the plug-in extension point API hides all implementation details• Device instance defines the Runtime Platform that it’s capable to run on.• The Device Management uses Device Platform and Device Description information.• The deeper interaction and dependency is described in the following two slides

Device Management

Device Device ManagementManagement

Device Device ManagementManagement

<< extension point >>

Device Management Device Management ImplementationImplementation

Device Management Device Management ImplementationImplementation

<< extends> >

Device Device Platform Platform ProviderProvider

Device Device Platform Platform ProviderProvider

<< extension point >>

Device PlatformDevice PlatformDevice PlatformDevice Platform

<< extends> >

Device PlatformDevice PlatformDevice PlatformDevice Platform

Device PlatformDevice PlatformDevice PlatformDevice Platform

Device Device Description Description

ProviderProvider

Device Device Description Description

ProviderProvider

<< extension point >>

Device Description Device Description ImplementationImplementation

Device Description Device Description ImplementationImplementation

<< extends> >

Device Description Device Description ImplementationImplementation

Device Description Device Description ImplementationImplementation

Page 41: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

4117.02.2006

Device Management control flow

Device Management Device Management ImplementationImplementation

Device Management Device Management ImplementationImplementation

MTJ Core MTJ Core Plug-inPlug-in

MTJ Core MTJ Core Plug-inPlug-in

3: getImplementations(“Device Platform”)

return: DevicePlatformProvider [ ]

OutOut OutOut

2: getDevices(devicePlatformName)

1: getImplementations(“Device Management”)

return: DeviceManagement [ ]

Device Device PlatformPlatformDevice Device

PlatformPlatform

4: getDevices()

return: Device [ ]

5: getImplementations(“Device Description”)

return: DeviceDescriptionProvider [ ]

Device Device Description Impl.Description Impl.

Device Device Description Impl.Description Impl.

6: getDeviceDescription( String vendor, String model)

return: DeviceDescription

return: Device [ ]

Page 42: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

4217.02.2006

Device Platform ServicesDevice Platform Services

Device Platform ServicesDevice Platform Servicesi/f

getDevicePlatforms() : DevicePlatform[]getDevices(String devicePlatformName) : Device[]...

Device Platform, Device Platform Services

• Device Platform Services make it possible to query available Device Platforms.• Based on Device Platform name it’s possible to get Devices or the Platform.

Page 43: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

4317.02.2006

Device Platform

DevicePlatformTypetype

Configuration

ConfigurationItemnamelabeldescriptionvaluevalidValues : String[]

1..*1..*

ConfigurationErrorerrorTypedescription

0..*0..*

+item

11

Devicename : Stringdescription : String

DevicePlatform

getName() : StringgetDevices() : Device[]getConfiguration() : PlatformConfigurationsetConfiguration(PlatformConfiguration config)deploy(Deployment application, DeviceDeployment[] devices)run(String application, String deviceName)debug(String application, String deviceName, DebugConfiguration debugConfig)isDebugEnabled() : booleanisAccessable() : booleangetTypeInfo() : DevicePlatformTypeopenPreferencesDialog()isPreferencesDialogAvailable() : booleanopenUtilitesDialog()isUtilitesDialogAvailable() : booleangetRuntimePlatformDefinitions() : RuntimePlatformDefinition[]

1..*1..*

11

11

Runtime Platform Definitionname

1..*1..*

Page 44: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

4417.02.2006

Device

Screen

widthheightisColorbitDepthisTouch

DeviceCommunicationProtocol

Configuration

ConfigurationItem

namelabeldescriptionv aluev alidValues : String[]

1..*1..*

ConfigurationError

errorTy pedescription

0..*0..*

+item

11

Runtime Platform Definition

name

Device

name : Stringdescription : String

1

+screen

1

1..*1..*

11+runtimes

1..*

1..*

1..*

1..*

Page 45: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

4517.02.2006

Runtime Platform

DeviceComfiguration Implementation(from mtj)

JavaVirtualMachine Specification

(from mtj)

ImplementationReffileRef : StringsourceRef : StringjavadocRef : String

DeviceProfileAPI

Device OS Application

Device OS Application UI

0..10..1

OptionalServiceAPI

11..*1..*

1

DeviceProfilenameprofi le nameprofi le version

1..*1..*

defines

Device OSnameversion

0..*0..*

DeviceConfiguration Specification

nameconfiguration nameconfiguration version

1

1..*

+specification1

1..*

11 defines

11

isExpanding

Runtime Platform Definitionname

11

11

Devicename : Stringdescription : String

+runtimes

1..*

1..*

1..*

Java API

nameversion

1..*

+apis

1..*

1..*

EmulatorDeviceRealDevice

model1..*1..*

supports

11

JavaVirtualMachine Implementation(from mtj)

11 isUsing

1..*

0..*

1..*

0..*

implements

0..*1..* 0..*1..*

1

0..*

1

+javaRuntime

JVM ReffileRef : StringsourceRef : StringjavadocRef : String

0..*

Page 46: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

4617.02.2006

Project Java APInameversion

JavaVirtualMachine Implementation

ImplementationReffileRef : StringsourceRef : StringjavadocRef : String

JVM ReffileRef : StringsourceRef : StringjavadocRef : String

DeviceProfilenameprofile nameprofile version

DeviceConfiguration Specificationnameconfiguration nameconfiguration version

Project

1..*1..*

11

Runtime Platform Definitionname

11

11

11

1..* +apis1..*

0..*

1

0..*

+javaRuntime1

Devicename : Stringdescription : String

1..*1..*

+runtimes

1..*

1..*

1..*

1..*

Page 47: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

47

Code Editor

Code Editor internal architecture

Page 48: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

4817.02.2006

Code Editor architecture tbd

Page 49: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

4917.02.2006

DeviceDeviceDP

APIs

DC

ProjectProject ProjectProject

DP

APIs

DC

Project

1

Library Jar Library Jar

1..n

Library Jar Library Jar

1

1

• 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 default device that matches to the Projects definitions. That default device also gives the needed Jar –libraries to the Project.

LEGEND:

DP

DC

DP

APIs

DC •Project’s defined Device Configuration

•Project’s defined Device Profile

•Service APIs that are selected to the Project

•Device’s Device Configuration

•Device’s Device Profile

•Service APIs that are supported by the Device

APIs

Mobile SDK Emulator

Page 50: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

50

Backup slides - Deployment

Deployment Framework internal architecture

Page 51: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

5117.02.2006

Deployment framework architecture

• The MTJ provides an Deployment framework that supports the existing SDK Emulators and phones runtimes. • The framework publishes an deployment interface, that capsulate (hides) the actual runtime environments and protocols.• The framework separates the different deployment low-level services to own components (like UEI, OTA, etc.) with supporting existing proprietary emulator and phone access (marked as X and Z).• It also provides a new development branch to the OBEX based deployment, which can be used e.g. towards to MAC OS environment. Thus this requires that the needed protocols / protocol wrappers are available.

MTJ IDE environmentMTJ IDE environment

ZZ

SDK / Emulator context (Nokia, Win32 OS)

SDK / Emulator context (Nokia, Win32 OS)U

EI

UEI

InterfaceInterface S40S40

S60S60

Dep

loy

me

nt

Fra

me

wo

rkD

eplo

ym

en

t F

ram

ew

ork

Extension point

Interface

SDK / Emulator (Vendor X)SDK / Emulator (Vendor X)UEI

UEI

O B E X

O B E X

OTA

OTA

U E

I

U E

I

Real Real DeviceDeviceReal Real

DeviceDevice

XX

XX

XX

LEGEND:

• MTJ Editor context

• Deployment context

• Existing SDK / Emulators

• Existing emulator integrations

• Deployment Interface

• Eclipse Plug-in Extension point

• New, open deployment plug-in, OBEX based

• Mobile Devices

• Existing native deployment

Page 52: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

5217.02.2006

Mobile Vendor specific view

EclipseEclipseEclipseEclipseSDK / Emulator (Vendor X)SDK / Emulator (Vendor X)

Vendor XVendor X

SDK EmulatorSDK Emulator

Plug-inPlug-in

Vendor XVendor X

SDK EmulatorSDK Emulator

Plug-inPlug-in

• The MTJ provides an Deployment framework that supports the existing SDK Emulators and phones runtimes• The framework publishes a Device Platform -interface, that capsulate (hides) the actual runtime environments and protocols.• The framework separates the different vendors products to own plug-ins

MTJMTJ

Plug-inPlug-in

MTJMTJ

Plug-inPlug-in

Dev

ice

Platfo

rm

Dev

ice

Platfo

rm

Extension point

SDK / Emulator (Vendor Y)SDK / Emulator (Vendor Y)

Vendor YVendor Y

SDK EmulatorSDK Emulator

Plug-inPlug-in

Vendor YVendor Y

SDK EmulatorSDK Emulator

Plug-inPlug-in

SDK / Emulator (Vendor Z)SDK / Emulator (Vendor Z)

Vendor ZVendor Z

SDK EmulatorSDK Emulator

Plug-inPlug-in

Vendor ZVendor Z

SDK EmulatorSDK Emulator

Plug-inPlug-in

Vendor XVendor X

Real DeviceReal Device

Plug-inPlug-in

Vendor XVendor X

Real DeviceReal Device

Plug-inPlug-inReal Device Real Device (Vendor X)Real Device Real Device (Vendor X)

Vendor YVendor Y

Real DeviceReal Device

Plug-inPlug-in

Vendor YVendor Y

Real DeviceReal Device

Plug-inPlug-inReal Device Real Device (Vendor Y)Real Device Real Device (Vendor Y)

Page 53: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

5317.02.2006

Mobile vendor specific view details Different mobile vendors can use their existing emulators and add the

deployment (emulator) specific plug-in to the MTJ environment. The emulator specific plug-in may be even in binary format, if it needs to protect some internal implementation or specification.

The emulator specific plug-in uses the MTJ generic API and also contributes to the MTJ’s deployment frameworks extension point.

The deployment framework could provide an template from such plug-in that helps to other vendors to tie up their specific solutions.

The deployment framework supports also that the emulator is discovered by manual entering the location. There could be a dynamic plug-in, that ‘ties’ the discovered emulator to the deployment framework.

The deployment framework can provide also other extension points, that enables others to extend e.g. the emulator specific properties, UI’s etc.

The deployment framework provides a plug-in template for existing emulators, which can dynamically be attached to wrap the specific emulator.

Page 54: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

5417.02.2006

Deployment framework plug-ins

Vendor Z Real Device Plug-inVendor Z Real Device Plug-inVendor Z Real Device Plug-inVendor Z Real Device Plug-in

SDK / Emulator (Vendor X)SDK / Emulator (Vendor X)Vendor X SDK EmulatorVendor X SDK Emulator

Plug-inPlug-in

Vendor X SDK EmulatorVendor X SDK Emulator

Plug-inPlug-in

U E

I

U E

I

UEI

UEI

SDK / Emulator (Vendor Y)SDK / Emulator (Vendor Y)Vendor Y SDK EmulatorVendor Y SDK Emulator

Plug-inPlug-in

Vendor Y SDK EmulatorVendor Y SDK Emulator

Plug-inPlug-in

X E

I

X E

I

XEI

XEI

Vendor Y Real Device Plug-inVendor Y Real Device Plug-inVendor Y Real Device Plug-inVendor Y Real Device Plug-in

Real Device Real Device (Vendor Y)Real Device Real Device (Vendor Y)

Vendor X Real DeviceVendor X Real Device

Plug-inPlug-in

Vendor X Real DeviceVendor X Real Device

Plug-inPlug-inReal Device Real Device (Vendor X)Real Device Real Device (Vendor X)

O B E X

O B E X

FTPFTP

HT

TP

/FT

P

se

rvic

eH

TT

P/F

TP

s

erv

ice O

TA

OTA

FTPFTP

SDK / Emulator (Vendor Z)SDK / Emulator (Vendor Z)Vendor Z SDK EmulatorVendor Z SDK Emulator

Plug-inPlug-in

Vendor Z SDK EmulatorVendor Z SDK Emulator

Plug-inPlug-inXX XX

HT

TP

/FT

P

serviceH

TT

P/F

TP

service O

TA

OTA

Real Device Real Device (Vendor Z)Real Device Real Device (Vendor Z)

• Device Platform plug-ins have several different implementations

• Device Platform plug-ins are responsible of the communication protocols between MTJ environment and Emulators / Real Devices

• The plug-ins also store all config data. F. ex. Emulator plug-in stores the Emulator SDK root directory itself

• UEI = Unified Emulator Interface• XEI = Extended Emulator Interface (Nokia

proprietary)• X = Proprietary Emulator Interface

MTJ plug-in wrapper Mobile vendors devices

Page 55: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

5517.02.2006

Deployment framework designIntegrating to the existing SDK Emulators: Deployment framework

Enables adding a new SDK Emulator by manually entering the location or by local hard drive browsing (typical case for existing emulators).

Hides the used targeted runtime environments behind a few deployment interfaces Simplifies the deployment process against the device / emulator variation Generalizes the deployment management by encapsulating the SDK Emulator

dependencies to a separate plug-ins, thus enabling it to publish it’s own specific functionality.

Integrating to new SDK Emulators, which do have a specific plug-in: Deployment framework

If the SDK Emulator has own deployment plug-in and the plug-in does follow the Deployment framework extension rules, it’s automatically instantiated

Deployment framework instantiates Deployment component and calls its methods via deployment interface

Deployment component plug-in Implements the Deployment frameworks interface Contributes to the Deployment frameworks extension point May also extend some SDK Emulator specific services to the Deployment framework

Page 56: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

5617.02.2006

Deployment framework Model Device Platform Device Platform

DeviceDevice

Emulator

Device

Emulator

Device

Real

Device

Real

Device

Runtime Platform

Definition

Runtime Platform

Definition

1..n

1

• Target environments are seen as Device Platforms by the MTJ environment. Device Platform contains one or more Device instances.• MTJ plug-in doesn’t know if the Devices are device emulators or real devices because the plug-in extension point API hides all implementation details.• Device instance defines the Runtime Platform that it’s capable to run on.

i/f

Page 57: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

5717.02.2006

Deployment framework Model (cont.)

DeploymentDeployment

MIDlet

Deployment

MIDlet

Deployment

CDC

Deployment

CDC

Deployment

• Deployment interface is generic representation of a entity that is send from MTJ environment to Device Platform instances.• Realization of a deployment can be MIDlet, CDC, MEGlet or Resource deployment (or something else). So the realization is created from source application definitions and f. ex. MIDlet project deployment consists of Application JAR and JAD files.• Target Device Platform knows, what’s inside the received deployment and how to handle it.

MEGlet

Deployment

MEGlet

Deployment

Resource

Deployment

Resource

Deployment

i/f

Page 58: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

58

Signing and Obfuscation

Signing and Obfuscating internal architecture

Page 59: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

5917.02.2006

Signing architecture There is a SecurityManager, that manages the keys and certificates in the

IDE environment globally. Each project can configure the signing options and parameters against the

actual needs. The Signing Provider implements the actual signing and it can be used

through e.g. the Ant scripts.

Page 60: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

6017.02.2006

Obfuscating architecture It is a well known fact that Java Class (bytecode) files can be easily

reverse-engineered because Java compiler leaves a lot of such information into bytecode that helps the reverse-engineering task. Code obfuscation is one protection tool for Java code to prevent reverse engineering. Code obfuscation makes programs more difficult to understand, so that it is more resistant to reverse engineering.

Obfuscation techniques fall into three groups: Layout Obfuscations

Layout Obfuscations modify the layout structure of the program by two basic methods: renaming identifiers and removing debugging information. Almost all Java obfuscators contain this technique.

Control Obfuscations Control Obfuscations change the control flow of the program.

Data Obfuscations Data Obfuscations break the data structures used in the program and encrypt

literal. The MTJ enables to use existing Obfuscator -products through an

wrapper plug-in (Obfuscation Provider), that can be further tailored.

Page 61: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

61

Backup slides - GUI

Mobile Visual Editor architecture

Page 62: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

6217.02.2006

Visual IDE environment in general

Eclipse PlatformEclipse PlatformEclipse PlatformEclipse Platform

IDEIDEIDEIDE Screen EngineScreen EngineScreen EngineScreen Engine

Launcher / EmulatorLauncher / EmulatorLauncher / EmulatorLauncher / Emulator

Graphical Graphical EditorEditor

Graphical Graphical EditorEditor

Code / Code / Resource Resource

EditorEditor

Code / Code / Resource Resource

EditorEditor

Property Property SheetSheet

Property Property SheetSheet

Outline Outline ViewerViewerOutline Outline ViewerViewer

Source code, resource files, etc.Source code, resource files, etc.Source code, resource files, etc.Source code, resource files, etc.

Source files

UI,WYSIWYG

Trace, profile, debug

The RAD IDE environment is having some clear elements, like the core IDE graphical and code editor, property sheet and outline viewer for IDE environment objects.

Also the graphical editor uses the screen engine for creating the actual graphical UI presentation (like WYSIWYG).

Also the mobile emulators / SDKs’ are providing the ability to launch the applications.

Page 63: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

6317.02.2006

VE Internal Component Architecture

Eclipse PlatformEclipse PlatformEclipse PlatformEclipse Platform

Eclipse Visual Editor FrameworkEclipse Visual Editor Framework Eclipse Visual Editor FrameworkEclipse Visual Editor Framework

Java coreJava core

JFC EditorJFC

EditorSWT

EditorSWT

Editor

Java Element Model(JEM)

Java Element Model(JEM)Common

Diagram Model (CDE)

Common Diagram Model (CDE)

GEFGEF EMFEMF

Local or Local or Remote Remote Java VMJava VM

Local or Local or Remote Remote Java VMJava VM

Target VMTarget VM

BeanInfo VM

BeanInfo VM

Java source files

Java Code Generation

Adapter

Java Code Generation

Adapter

The Eclipse Visual Editor framework provides a flexible GUI framework, which can be quite easily extended to e.g. mobile domain.

The current desktop version supports JFC and SWT GUI editors with full set of UI widgets. The actual screen rendering is done in separate rendering engine.

Internally VE uses EMF in CDE and models the Java source in JEM.

Page 64: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

6417.02.2006

Mobile Visual Editor GUI Components

MTJ Screen EngineMTJ Screen EngineMTJ Screen EngineMTJ Screen Engine

Screen Rendering ContextScreen Rendering ContextScreen Rendering ContextScreen Rendering Context

Eclipse MTJ IDEEclipse MTJ IDEEclipse MTJ IDEEclipse MTJ IDE

Eclipse VEEclipse VEEclipse VEEclipse VE

Eclipse PlatformEclipse PlatformEclipse PlatformEclipse Platform

MTJ Mobile ExtensionMTJ Mobile ExtensionMTJ Mobile ExtensionMTJ Mobile Extension

GEF EditorPartGEF EditorPartGEF EditorPartGEF EditorPart UI VE ModelUI VE ModelUI VE ModelUI VE Model

BeanProxy BeanProxy AdapterAdapter

BeanProxy BeanProxy AdapterAdapter

Cu

stom

M

ob

ile

pro

xy co

mp

on

en

ts

Cu

stom

M

ob

ile

pro

xy co

mp

on

en

ts

Mo

bile

e

SW

T

pro

xy

c

om

po

ne

nt

s

Mo

bile

e

SW

T

pro

xy

c

om

po

ne

nt

sM

ob

ile

CL

DC

p

rox

y

co

mp

on

en

ts

Mo

bile

C

LD

C

pro

xy

c

om

po

ne

nt

s

Sc

ree

n R

en

de

ring

S

cre

en

Re

nd

erin

g

AP

IA

PI

Sc

ree

n R

en

de

ring

S

cre

en

Re

nd

erin

g

AP

IA

PI BeanInfo BeanInfo

AdapterAdapterBeanInfo BeanInfo AdapterAdapter

CLDC Screen CLDC Screen Rendering EngineRendering Engine

CLDC Screen CLDC Screen Rendering EngineRendering Engine

eSWT Screen eSWT Screen Rendering EngineRendering Engine

eSWT Screen eSWT Screen Rendering EngineRendering Engine

Custom Screen Rendering

Engine

Custom Screen Rendering

Engine

Common Screen Rendering Engine Common Screen Rendering Engine Common Screen Rendering Engine Common Screen Rendering Engine

Sc

ree

n R

en

de

ring

S

cre

en

Re

nd

erin

g

AP

IA

PI

Sc

ree

n R

en

de

ring

S

cre

en

Re

nd

erin

g

AP

IA

PI

MT

J C

DL

C U

I M

TJ

CD

LC

UI

co

mp

on

en

tsc

om

po

ne

nts

MT

J C

DL

C U

I M

TJ

CD

LC

UI

co

mp

on

en

tsc

om

po

ne

nts

MT

J e

SW

T U

I M

TJ

eS

WT

UI

co

mp

on

en

tsc

om

po

ne

nts

MT

J e

SW

T U

I M

TJ

eS

WT

UI

co

mp

on

en

tsc

om

po

ne

nts

Cu

stom

UI

com

po

ne

nts

Cu

stom

UI

com

po

ne

nts

LegendLegend

Existing in Existing in Eclipse Eclipse

MTJ projectMTJ projectscopescope

CD

LC

UI

CD

LC

UI

ba

se

Lo

ok

&

ba

se

Lo

ok

&

Fe

el

Fe

el

CD

LC

UI

CD

LC

UI

ba

se

Lo

ok

&

ba

se

Lo

ok

&

Fe

el

Fe

el

Cu

stom

UI

Lo

ok &

Fe

el

Cu

stom

UI

Lo

ok &

Fe

el

MT

J e

SW

T U

I M

TJ

eS

WT

UI

co

mp

on

en

tsc

om

po

ne

nts

MT

J e

SW

T U

I M

TJ

eS

WT

UI

co

mp

on

en

tsc

om

po

ne

nts

Cu

stom

UI

Lo

ok &

Fe

el

Cu

stom

UI

Lo

ok &

Fe

el

Cu

stom

UI

Lo

ok &

Fe

el

Cu

stom

UI

Lo

ok &

Fe

el

Cu

stom

UI

Co

mp

on

en

tsC

usto

m U

I C

om

po

ne

nts

Cu

stom

UI

Co

mp

on

en

tsC

usto

m U

I C

om

po

ne

nts

Page 65: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

65

Backup slides – Milestone Plan

Page 66: 1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application

6617.02.2006

MTJ Milestone Plan tbd