Shamit Khemka shares Mobile Apps Deployment Framework internal architecture

Page 1

SynapseIndia CEO Sharing Mobile Apps Deployment Framework internal architecture

Backup slides Deployment

1


Device Management control flow Out Out

Device Device Management Management Implementation Implementation

MTJ MTJ Core Core Plug-in Plug-in

Device Device Platform Platform

1: getImplementations(“Device Management”) return: DeviceManagement [ ] 2: getDevices(devicePlatformName) 3: getImplementations(“Device Platform”) return: DevicePlatformProvider [ ] 4: getDevices() return: Device [ ] 5: getImplementations(“Device Description”) return: DeviceDescriptionProvider [ ] 6: getDeviceDescription( String vendor, String model) return: DeviceDescription return: Device [ ]

2

Device Device Description Description Impl. Impl.


Device Platform, Device Platform Services i/f

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

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

3


Device Platform DevicePlatform getName() : String getDevices() : Device[] getConfiguration() : PlatformConfiguration setConfiguration(PlatformConfiguration config) deploy(Deployment application, DeviceDeployment[] devices) run(String application, String deviceName) debug(String application, String deviceName, DebugConfiguration debugConfig) isDebugEnabled() : boolean isAccessable() : boolean getTypeInfo() : DevicePlatformType openPreferencesDialog() isPreferencesDialogAvailable() : boolean openUtilitesDialog() isUtilitesDialogAvailable() : boolean getRuntimePlatformDefinitions() : RuntimePlatformDefinition[]

1

DevicePlatformType type

1

Configuration 1..*

Runtime Platform Definition name

1..* 1..*

0..*

Device

ConfigurationError

name : String description : String

errorType description

4

ConfigurationItem name +item label description 1 value validValues : String[]


Device Screen width height isColor bitDepth isTouch

Device +screen

name : String description : String

1

1..* 1..*

DeviceCommunicationProtocol +runtimes

1

1..*

Configuration

Runtime Platform Definition name

1..*

ConfigurationItem

0..*

name +item label description 1 v alue v alidValues : String[]

ConfigurationError errorTy pe description

5


Runtime Platform Device 1..*

name : String description : String

+runtimes

ImplementationRef

1..*

Runtime Platform Definition 0..*

supports

EmulatorDevice

fileRef : String sourceRef : String javadocRef : String

name

1..*

RealDevice model

1

+apis

DeviceProfile

JVM Ref

name profile name profile version

fileRef : String sourceRef : String javadocRef : String

1..*

Java API name version

defines 1..*

isExpanding

DeviceProfileAPI

OptionalServiceAPI 1

1

Device OS Application UI

1

JavaVirtualMachine Specification

defines

1

(from mtj)

1..*

DeviceConfiguration Specification

0..1

name configuration name configuration version

1..*

+specification

Device OS Application

1

0..*

implements

+javaRuntime

1..*

0..* 1

JavaVirtualMachine Implementation (from mtj)

1

isUsing

Device OS

DeviceComfiguration Implementation

name version

(from mtj)

1..*

1

0..*

6


Project

Java API name version 1..*

ImplementationRef

+apis

fileRef : String sourceRef : String javadocRef : String

DeviceConfiguration Specification name configuration name configuration version 1

1..*

DeviceProfile Project 1

Runtime Platform Definition name

+runtimes

1..*

0..*

1..*

Device

1..*

name : String description : String

1

JVM Ref fileRef : String sourceRef : String javadocRef : String

+javaRuntime 1

JavaVirtualMachine Implementation

7

1 name profile name profile version


Code Editor Code Editor internal architecture

8


Code Editor architecture ď Ž

tbd

9


Project LEGEND: APIs

APIs

Project Project

DC

1..n

1

Library Jar

D P

D P

D C

D C

Library Jar

Device DP

•Project’s defined Device Profile

APIs

•Service APIs that are selected to the Project

D C DP

1

1

•Project’s defined Device Configuration

•Device’s Device Configuration •Device’s Device Profile

APIs

•Service APIs that are supported by the Device

Mobile SDK Emulator

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


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.