Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EMIWG/MADKQuickStartUseCasesDiscussion

Objective

The objective of thsi document is to describe all concepts and use cases that are related to MADK Quick Install feature. Below there is a list of all actors, components and use cases related to it. There are two different perspectives proposed. The first one is the mobile application developer perspective that will use MADK to download SDKs and develop mobile applications. The second perspective is from the SDK provider that will need to setup their environment to enable MADK to find / download their SDKs.

Definitions

  • MADK: Mobile Application Development Kit. It is an eclipse distribution that enables mobile application development. initially this distribution will include the following eclipse projects: eclipse platform + JDT + MTj + Mylyn + ECF + MADK Extensions;
  • SDK Provider: The SDK provider is the entity that develops and provide a Mobile SDK that is user by mobile application developer to write their applications;
  • MADK Extensions: MADK Extension provide MADK specific features that are used by mobile developers. Initially there will be only one main extension: the QuickInstall feature. This feature is broken into two components: QuickInstall view and QuickInstall touchpoint;
  • MADK QuickInstall view: this view presents connects to MADK server and SDK Providers server to get s list of all SDKs available. Those SDKs are presented to the mobile developer that can download/install, get more information etc.;
  • MADK QuickInstall touchpoint: Quickinstall touchpoint is responsible to install each new SDK that is downloaded. This component is distributed with MADK package and each SDK metada must refer it as the touchpoint of the SDK ;
  • MADK SDK Discovery Extension Point: This extension point is used by the SDK providers register their SDKs and during the install / remove process. The extension point initially will required

   - ID: extension ID
   - MADKInstall: class that will implements an org.eclipse.mtj.ISDK. The following methods need to be implemented
       - void install () -> called by MADK QuickInstall touchpoint to install the SDK
       - void uninstall () -> called by MADK QuickInstall touchpoint to remove the SDK
       - IDevice[] getDevices() -> called by MADK QuickInstall touchpoint after the install process to register all devices provided by this SDK. This method is also called everytime that MADK is started to make sure that all Device are still the same

  • MADK Server: This server has a reference to all SDKs provider servers. When MADK Quickinstall view connects to thsi server it will query all registered SDK Providers URL for new/updated SDKs;
  • SDK Provider Server: Each SDK provider needs to setup it own download server. This server is a usual p2 server that has the following format

   - content.xml -> server metadata
   - artifacts.xml -> server artifacts
   - binary/ -> NA on SDK Provider server
   - plugin/ -> SDK Provider plugins
   - feature/ -> SDK Provider features

  • SDK Metadata: describe all SDKs available. It is generated during a P2 metadata generation process (seeGenerating P2 Metadata)
  • SDK Provider Extensions: The provider extensions is an implementation of MADK SDK Discovery Extension Point. This implementation needs to be deployed with the SDK Package
  • SDK Installer: The SDK installer it self is dependent on each SDK. it can a zip file that is unzipped by the SDK Provider Extensions or a windows installer (executable file) that is executed during the install process by the SDK Provider Extensions;
  • SDK Packing format: The packing format describe what needs to be placed on the SDK Provider Server in order that MADK can find and install the SDKs. Below is an example of how 3 SDKs can be packed:

   - content.xml -> server metadata. must have as touchpoint MADK QuickInstall touchpoint
   - artifacts.xml -> server artifacts
   - plugin/
       - com.sdkprovider.javame.sdk1_1.0.0.jar
           - META-INF/Manifest.mf -> manifest with the SDK version and provider
           - installer/sdkprovider_javame_sdk1.exe -> -> SDK installer in a format the SDKInstaller class can understand
           - com/sdkprovider/javame/sdk1/SDK1Installer.class -> SDK installer that is called during the install / uninstall process
           - plugin.xml -> describe the MADK Install extension point implementation
       - com.sdkprovider.javame.sdk2_1.0.0.jar
           - META-INF/Manifest.mf -> manifest with the SDK version and provider
           - installer/sdkprovider_javame_sdk2.zip -> -> SDK installer in a format the SDKInstaller class can understand
           - com/sdkprovider/javame/sdk1/SDK1Installer.class -> SDK installer that is called during the install / uninstall process
           - plugin.xml -> describe the MADK Install extension point implementation
   - feature/ -> SDK Provider features
       - com.sdkprovider.javame.sdk1_1.0.0.jar
           - META-INF/Manifest.mf -> feature manifest
           - feature.xml -> describe the SDK with its EULA, version, provider and get more info URL
       - com.sdkprovider.javame.sdk2_1.0.0.jar
           - META-INF/Manifest.mf -> feature manifest
           - feature.xml -> describe the SDK with its EULA, version, provider and get more info URL

Actors

  • Mobile Application Developer: MADK final user that downloads MADK distribution, download and install new SDKs and develop mobile applications;
  • SDK Provider Developer: SDK provider develper that needs to implement the extensions and pack the SDK

Components

  • MADK:QuickInstall View:
  • MADK:QuickInstall Touchpoint:
  • MADK:MADK Server:
  • SDK:SDK Provider Server:
  • SDK:SDK Extensions:
  • Eclipse:Eclipse P2:

Use Cases

Use cases are broken into two groups according to the use case perspective. The first group list all use cases that are related to the mobile application developer actor. On the other hand, the second group focus on the SDK Provider Developer perspective.

MADK Use Cases

Figure below presents the main use cases diagram in the perspective of the Mobile Application Developer.

  • [UC001]: List SDKs:
  • [UC002]: Find new SDKs:
  • [UC003]: Find updates of a SDK:
  • [UC004]: Authenticate User:
  • [UC005]: Download SDK
  • [UC006]: Install SDK
  • [UC007]: Review license agreement

SDK Provider Use Cases

  • [UC001]: Implements SDK Extensions:
  • [UC002]: Pack SDK:
  • [UC003]: Setup Server:

Back to the top