Professional Documents
Culture Documents
SynapseIndia Mobile Apps Deployment Framework Architecture
SynapseIndia Mobile Apps Deployment Framework Architecture
U
E
I
U
E
I
LEGEND:
MTJ Editor context
X
Deployment
Framework
Interfac
e
Extensio
n
point
Deployment context
O
T
A
O
B
E
X
U
E
I
Real
Devic
e
Interfac
e
S40
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
Eclipse
SDK Emulator
Plug-in
Vendor Y
Device
Platform
MTJ
SDK Emulator
Plug-in
Vendor Z
SDK Emulator
Plug-in
Extensio
n
point
Plug-in
Vendor X
Real Device
Plug-in
Vendor Y
Real Device
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
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 MTJs 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, UIs etc.
The deployment framework provides a plug-in template for existing
emulators, which can dynamically be attached to wrap the specific
emulator.
17.02.2006
U
E
I
U
E SDK / Emulator (Vendor X)
I
X
E
I
X
E SDK / Emulator (Vendor Y)
I
O
B
E
X
O
T
A
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
O
T
A
17.02.2006
17.02.2006
Device Platform
1..n
Device
1
Emulator
Real
Device
Device
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 doesnt 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 its capable to run on.
7
17.02.2006
Deployment
MIDlet
CDC
MEGlet
Resource
Deploymen
Deployment Deployment Deployment
t
17.02.2006
Signing and
Obfuscation
Signing and Obfuscating internal
architecture
9
Signing architecture
10
17.02.2006
Obfuscating architecture
It is a well known fact that Java Class (bytecode) files can be easily reverseengineered 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
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.
17.02.2006
12
Screen Engine
Graphica
l Editor
Code /
Resourc
e Editor
Property
Sheet
Outline
Viewer
UI,
WYSIWYG
Launcher /
Emulator
Trace,
profile,
debug
Source files
Eclipse Platform
13
17.02.2006
SWT
Editor
Target
VM
Java
core
Java
Element
Model
(JEM)
Common
Diagram
Model
(CDE)
GEF
Local or
Remote
Java VM
BeanInfo
VM
Java Code
Generation
Adapter
EMF
Eclipse Platform
14
17.02.2006
Custom UI
Look & Feel
eSWT Screen
Rendering
Engine
Custom UI
components
Custom UI
Look & Feel
Custom UI
Components
MTJ eSWT UI
components
MTJ eSWT UI
components
Custom UI
Look & Feel
Eclipse Platform
CLDC Screen
Rendering
Engine
Eclipse VE
BeanProx
y Adapter
Custom UI
Components
UI VE Model
CDLC UI base
Look & Feel
MTJ CDLC UI
components
Custom
Mobile proxy
components
Mobile
eSWT proxy
components
Mobile
CLDC proxy
components
GEF
EditorPart
MTJ
project
scope
Legend
Existing in
Eclipse
Custom Screen
Rendering
Engine
BeanInfo
Adapter
15
17.02.2006
Backup slides
Milestone Plan
16
tbd
17
17.02.2006