17
SynapseIndia Mobile Apps Deployment framework architecture

SynapseIndia mobile apps deployment framework architecture

Embed Size (px)

Citation preview

SynapseIndia Mobile Apps Deployment framework architecture

2 17.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

Interface

Interface

S40S40

S60S60

Dep

loym

en

t F

rame

wo

rkD

ep

loym

en

t F

ramew

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 DevicDevic

ee

Real Real DevicDevic

ee

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

3 17.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

Devic

e

Platfo

rm

Devic

e

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)

4 17.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.

5 17.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

rvice

HT

TP

/FT

P

se

rvice 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

service

HT

TP

/FT

P

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

6 17.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

7 17.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

8 17.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

9

Signing and Obfuscation

Signing and Obfuscating internal architecture

10 17.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.

11 17.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.

12

Backup slides - GUI

Mobile Visual Editor architecture

13 17.02.2006

Visual IDE environment in general

Eclipse PlatformEclipse PlatformEclipse PlatformEclipse Platform

IDEIDEIDEIDE Screen EngineScreen EngineScreen EngineScreen Engine

Launcher / Launcher / EmulatorEmulator

Launcher / Launcher / EmulatorEmulator

GraphicaGraphical Editorl Editor

GraphicaGraphical Editorl Editor

Code / Code / ResourcResource Editore Editor

Code / Code / ResourcResource Editore Editor

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.

14 17.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 VM

Target 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.

15 17.02.2006

Mobile Visual Editor GUI ComponentsMTJ 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 GEF EditorPartEditorPart

GEF GEF EditorPartEditorPart UI VE ModelUI VE ModelUI VE ModelUI VE Model

BeanProxBeanProxy Adaptery AdapterBeanProxBeanProxy Adaptery Adapter

Cu

stom

M

ob

ile p

roxy

com

po

ne

nts

Cu

stom

M

ob

ile p

roxy

com

po

ne

nts

Mo

bile

e

SW

T p

rox

y c

om

po

ne

nts

Mo

bile

e

SW

T p

rox

y c

om

po

ne

nts

Mo

bile

C

LD

C p

rox

y c

om

po

ne

nts

Mo

bile

C

LD

C p

rox

y c

om

po

ne

nts

Sc

ree

n R

en

de

ring

AP

IS

cre

en

Re

nd

erin

g A

PI

Sc

ree

n R

en

de

ring

AP

IS

cre

en

Re

nd

erin

g A

PI

BeanInfo BeanInfo AdapterAdapter

BeanInfo BeanInfo AdapterAdapter

CLDC Screen CLDC Screen Rendering Rendering

EngineEngine

CLDC Screen CLDC Screen Rendering Rendering

EngineEngine

eSWT Screen eSWT Screen Rendering Rendering

EngineEngine

eSWT Screen eSWT Screen Rendering Rendering

EngineEngine

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

AP

IS

cre

en

Re

nd

erin

g A

PI

Sc

ree

n R

en

de

ring

AP

IS

cre

en

Re

nd

erin

g A

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 MTJ projectprojectscopescope

CD

LC

UI b

as

e

CD

LC

UI b

as

e

Lo

ok

& F

ee

lL

oo

k &

Fe

el

CD

LC

UI b

as

e

CD

LC

UI b

as

e

Lo

ok

& F

ee

lL

oo

k &

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

16

Backup slides – Milestone Plan

17 17.02.2006

MTJ Milestone Plan tbd