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