SynapseIndia mobile apps deployment framework architecture

Page 1

SynapseIndia Mobile Apps Deployment framework architecture


Deployment framework architecture MTJ IDE environment

U U E E II

U U E E II

SDK / Emulator (Vendor X)

• MTJ Editor context X X

Deployment Deployment Framework Framework

Interfac e

Extensio n point

• Deployment context

X X

ZZ O O TT A A O O B B E E X X

LEGEND:

U U E E II

SDK SDK // Emulator Emulator context context (Nokia, (Nokia, Win32 Win32 OS) OS)

X

Real Real Devic Devic ee

Interfac Interfac ee

S40 S40 S60 S60

• Existing SDK / Emulators • Existing emulator integrations • Deployment Interface • Eclipse Plug-in Extension point • New, open deployment plug-in, OBEX based • Mobile Devices

• The MTJ provides an Deployment framework that supports the existing SDK • Existing native Emulators and phones runtimes. deployment • 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. 2 17.02.2006


Mobile Vendor specific view Vendor Vendor X X

Eclipse Eclipse

SDK SDK Emulator Emulator

SDK SDK // Emulator Emulator (Vendor X)

Plug-in Plug-in Vendor Vendor Y Y Device Device

Platform Platform

MTJ MTJ

SDK SDK Emulator Emulator

SDK SDK // Emulator (Vendor Y) Y)

Plug-in Plug-in Vendor Vendor Z Z SDK SDK Emulator Emulator

Plug-in Plug-in Extensio n point

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

Plug-in Plug-in Vendor Vendor X X Real Real Device Device

Real Real Device Device (Vendor (Vendor X) X)

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

Real Real Device Device (Vendor Y)

Plug-in Plug-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 3

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.

4

17.02.2006


Deployment framework plug-ins MTJ plug-in wrapper Vendor U Vendor X X SDK SDK Emulator Emulator U E E II

Plug-in Plug-in

Vendor Vendor Y Y SDK SDK Emulator Emulator XX Plug-in Plug-in Vendor Vendor Z Z SDK SDK Emulator Emulator Plug-in Plug-in Vendor Vendor X X Real Real Device Device Plug-in Plug-in

Mobile vendors devices • Device Platform plug-ins have U U E E SDK / Emulator (Vendor X) II

E E II

X X E E SDK SDK / Emulator Emulator (Vendor (Vendor Y) Y) I

X X

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

O O B B E E X X

Real Real Device Device (Vendor (Vendor X) X)

Vendor Vendor Y Real Device Device Plug-in Plug-in Y Real HTTP/FTP HTTP/FTP service service

O TT A A

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

Vendor Vendor Z Z Real Real Device Device Plug-in Plug-in Real Real Device Device (Vendor (Vendor Z) Z)

FTP FTP

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

HTTP/FTP service

FTP FTP O O TT A A

5

17.02.2006


Deployment framework design Integrating 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

6

17.02.2006


Deployment framework Model Device Platform

i/f

1..n

Device

Emulator

Real

Device

Device

1

Runtime Platform Definition

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

17.02.2006


Deployment framework Model (cont.) i/f

Deployment

MIDlet

CDC

MEGlet

Resource

Deploymen Deployment Deployment Deployment t

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

17.02.2006


Signing and Obfuscation Signing and Obfuscating internal architecture 9


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.

10

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 

Control Obfuscations 

Control Obfuscations change the control flow of the program.

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

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

17.02.2006


Backup slides - GUI Mobile Visual Editor architecture

12


Visual IDE environment in general IDE IDE

Screen Screen Engine Engine

Graphica Graphica ll Editor Editor

Code Code // Resourc Resourc ee Editor Editor

Property Property Sheet Sheet

Outline Outline Viewer Viewer

UI, WYSIWYG

Launcher Launcher // Emulator Emulator

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

Trace, profile, debug

Source files

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.

Eclipse Eclipse Platform Platform

13

17.02.2006


VE Internal Component Architecture Eclipse Eclipse Visual Visual Editor Editor Framework Framework JFC Editor

SWT Editor

Target VM

Java core

Java Element Model (JEM)

Common Diagram Model (CDE)

GEF

Local Local or or Remote Remote Java Java VM VM

BeanInfo VM

Java Code Generation Adapter

EMF

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.

Java source files

Eclipse Eclipse Platform Platform

14

17.02.2006


Mobile Visual Editor GUI Components Eclipse Eclipse MTJ MTJ IDE IDE

Custom UI Look & Feel

eSWT eSWT Screen Screen Rendering Rendering Engine Engine

Custom UI components

Custom UI Look & Feel

Custom UI Components MTJ eSWT eSWT UI UI MTJ components components MTJ eSWT eSWT UI UI MTJ components components

Custom UI Look & Feel

Eclipse Eclipse Platform Platform

CLDC CLDC Screen Screen Rendering Rendering Engine Engine

Screen Rendering Rendering API API Screen

Eclipse Eclipse VE VE

Screen Rendering Rendering API API Screen

BeanProx BeanProx yy Adapter Adapter

Custom UI Components

UI UI VE VE Model Model

CDLC UI UI base base CDLC Look & & Feel Feel Look

MTJ CDLC CDLC UI UI MTJ components components

Custom Mobile proxy components

Mobile eSWT proxy components

Mobile CLDC proxy components GEF GEF EditorPart EditorPart

MTJ project scope

MTJ MTJ Screen Screen Engine Engine

MTJ MTJ Mobile Mobile Extension Extension

Legend

Existing in Eclipse

Custom Screen Rendering Engine

Common Common Screen Screen Rendering Rendering Engine Engine

BeanInfo BeanInfo Adapter Adapter

Screen Screen Rendering Rendering Context Context 15

17.02.2006


Backup slides – Milestone Plan

16


MTJ Milestone Plan ď Ž

tbd

17

17.02.2006


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.