View
65
Download
0
Category
Tags:
Preview:
Citation preview
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
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.
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
Recommended