1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application.

Презентация:



Advertisements
Похожие презентации
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary © Wind River Systems, released under EPL 1.0. All logos are TM of their respective.
Advertisements

© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Building a Simple Serial Network Understanding the OSI Model.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary November 4, 2014 Copyright © 2006 Eclipse Foundation, Inc., Made available.
Unity3d Fomin Maxim 394 group. Unity is an integrated authoring tool for creating 3D video games or other interactive content such as architectural visualizations.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v Route Selection Using Policy Controls Using Multihomed BGP Networks.
© 2006 Cisco Systems, Inc. All rights reserved. CIPT1 v Deployment of Cisco Unified CallManager Release 5.0 Endpoints Configuring Cisco Unified CallManager.
Evgeniy Krivosheev Andrey Stukalenko Vyacheslav Yakovenko Last update: Nov, 2013 Spring Framework Module 1 - Introduction.
© 2006 Cisco Systems, Inc. All rights reserved. SND v Configuring a Cisco IOS Firewall Configuring a Cisco IOS Firewall with the Cisco SDM Wizard.
© 2006 Cisco Systems, Inc. All rights reserved.ISCW v IPsec VPNs Configuring IPsec Site-to-Site VPN Using SDM.
© 2006 Cisco Systems, Inc. All rights reserved. BCMSN v Introducing Campus Networks Network Requirements.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v Customer-to-Provider Connectivity with BGP Connecting a Multihomed Customer to Multiple Service.
Introducing Cisco Network Service Architectures © 2004 Cisco Systems, Inc. All rights reserved. Introducing the Cisco AVVID Framework ARCH v
The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to.
The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Managing Your Network Environment Managing Cisco Devices.
WEB SERVICES Mr. P. VASANTH SENA. W EB SERVICES The world before Situation Problems Solutions Motiv. for Web Services Probs. with Curr. sols. Web Services.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v Route Selection Using Policy Controls Applying Route-Maps as BGP Filters.
Copyright © 2006 Intel Corporation, released under EPL version /20061 Eclipse DSDP-TM Target Connection Adapters Peter Lachner WW0806 rev 1.0.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v Configuring Groups and Policies Configuring Policies.
© 2005 Cisco Systems, Inc. All rights reserved. IPTX v Configuring Additional Cisco CallManager Express Features Configuring Cisco CallManager Express.
Транксрипт:

1 Mobile Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application development. MTJ will enable developers to develop, debug and deploy mobile Java applications to emulators and real devices. Scope of the doc: Focus on 1 st release (+ potential future features)

Contents Eclipse High-Level Architecture Eclipse High-Level Architecture Java Runtime Environments MTJ Ecosystem MTJ high-level layers MTJ Development by Milestone MTJ Development by Milestone Device fragmentation Pre-processing Automated & manual testing Build management Wizards Runtime Launch Debugging Code Editor Deployment Device Management Signing and Obfuscation Localization Application Flow GUI Editor Backup slides

Eclipse High-level Architecture Tools Platform Frameworks Rich Client Platform Technology Enablers Ecosystem Vertical Industry Initiatives Horizontal Technologies SWTSWT WorkbenchWorkbenchRuntimeRuntime UpdateUpdate Project Model WorkspaceWorkspace Multi-language support UI Frameworks Graphical Frameworks Modeling Frameworks Test and Performance C/C++ Dev. Tools Java Dev. Tools Business Intelligence & Reporting Web Tools Embedded & Mobile Tools Modeling Tools Data Management Service Oriented Architecture System Management Desktop Domain Internet Domain Enterprise Domain Embedded Domain Mobile Domain Mobile Domain

Java Runtime Environments DesktopLow-end devices Enterprise High-end devices Smart Cards Optional packages MIDP Optional packages CLDC Foundation profile CDC Personal profile Java Card Card VM KVM Java Virtual Machine Java Micro Edition (J2ME) J2EE J2SE Legend Java JRE runtime dependencies Not used Java runtime J&C and MTJ runtime scope The MTJ projects focus in Mobile runtimes is in the J2ME area.

MTJ Ecosystem MTJ context EclipseEclipse Operating Systems: Win32, Linux, MAC. Tooling Runtimes JRE , J9 X X UEIUEI UEIUEI Vendor Y SDK JavaDocs API Real Device Download / Update sites Eclipse Eclipse Sun / IBM (tooling runtime JRE 5.0 / J9 ) Sun / IBM (tooling runtime JRE 5.0 / J9 ) Vendor X (for SDK download) Different vendor products based on Eclipse MTJ Different vendor products based on Eclipse MTJ Generic SDK API JavaDocs MTJMTJ JavaDocsJavaDocs API APIAPI A List of JVMS Vendor Y (for SDK download) UEIUEI UEIUEI Vendor X SDK JavaDocs API

MTJ high-level layers Mobile IDE Components Mobile IDE Extensibility Framework Layer Eclipse Platform Eclipse Modeling Framework OSGIOSGI Eclipse Tool Services Operating Systems: Win32, Linux, MAC Deployment Management SWTSWTWorkbenchWorkbench Visual Editor Web Tools Project GEFGEF Testing & Profiling Tools EMFEMF Build Management Runtime Management Device Management BIRTBIRT Workflow Toolbox Data Tools Graphical Modeling Framework JDTJDT GUI Builder Management Multi- language support Multimedia Tools Security Management Obfuscation Provider Device Description Provider Device Platform Provider Packaging Provider Signing Provider Device Platform Provider Build Provider Pre- processing Provider GUI Builder Provider Deployment Provider Ant Provider x x

MTJ Development by Milestone Mobile RAD / IDE Provider Components IDE Extensible Framework Layer Eclipse Platform Mobile SDK Emulator WizardsWizards Create Application Create Class Code Packaging Create Project BuildBuild DeploymentDeployment Deployment providers Signing provider Snippets Debugging DesktopDesktopDeviceDevice Runtime launch DesktopDesktopDeviceDevice GUI builders Help LCDUI Editor eSWT Editor Game Editor Flow Editor Custom Components Localization J2ME Nature Audio converter Legend 1 st Iteration 2 nd Iteration 1 st Release Future design Runtime Management Framework Deployment Framework Build Framework Device Management Framework GUI Builder Framework Security Management Framework Obfuscation providers Xx Editor JAD Editor Code Editor J2ME project builders Symbian templates Create UI Pre- processing Packaging Antenna provider Project Build Other

Device fragmentation Different characteristics of devices must be taken into account Physical device characteristics, e.g. display resolution,-size and buttons, processing power and memory Quirks in the OS, API and Java virtual machine implementations Variation comes also from APIs supported by each device Flavours of Symbian (S60, S80, S90) and other mobile OS versions J2ME profiles and configurations CLDC 1.0/1.1 and MIDP 1.0/2.0 Optional APIs for Bluetooth, 3D, Multimedia, Web Services, etc. Proprietary APIs from device manufacturers and operators In addition, there are other operator and market requirements Localisation, branding, billing, etc. New devices and APIs are introduced frequently Huge amount of configurations Varying devices Varying devices Differing assets Differing assets Operator requirements Operator requirements

Device fragmentation, Mobile value chain Application Developers Content aggregators and Distributor Network operators End-user / consumer Infrastructure providers Device manufactures RetailRetail This diagram represents the major players in the wireless industry. Application- and Content providers have partnered with Network operators to design and develop Java solutions for consumers. Content aggregators license content from its creators and format it to be used with specific devices and networks. Content distributors create the revenue by providing the distribution channels. Network operators (carriers) and Infrastructure providers control the wireless network and own the customer information. Device manufactures drive the technical innovation through the new hardware. The application developers and content aggregators needs most tools against the device fragmentation. Legend Information exchange Cash flow exchange

Device fragmentation, pre-processing Definition: Pre-processing changes the source code before it is compiled. It allows conditional compilation and inclusion of one source file into another and is helpful when trying to maintain a single source for several devices, each having its own bugs, add-on APIs, etc. and it enables device optimization. The Eclipse JDT could add support for pre-processing, alternative could be e.g. J2ME Polish, which can be integrated to Eclipse (licensing must be checked) or re-implementing the similar functionality.J2ME Polish One key feature is the device description database, that helps to create tasks or actions against similar devices. The device description database enables that developers can identify and group devices with an keyword, that can be used e.g. in pre-processing. Device Emulator Device Emulator Device Real Device Real Device 1..n 1 Device Platform Fragmentation Definition 1 Runtime Platform Definition Can be seen as one definition

Automated & manual testing Tdb.

Build management The build environment is heavily relying on Eclipse, but there are plans to support also Ant. One planned extension to Ant is the Antenna –project, which provides a set of Ant tasks suitable for developing wireless Java applications targeted at the J2ME and Mobile Information Device Profile (MIDP).AntAntennaMobile Information Device Profile The build management enables that the build process can be configured to suit for the active project needs. E.g. what build providers are used as default and how the building process works. The target device management provides data about selectable devices and J2ME platforms (SDK Emulators) and enables that the Runtime Platform Definition. The selected default target Device Platform is then activated to the projects use.

Wizards Base wizards: Base wizards: Create Project Create Project Create Application Create Application Code Packaging Code Packaging Create Class Create Class The base wizards implement the corresponding Use-Case requirements. The base wizards implement the corresponding Use-Case requirements. One optional scenario may be that Symbian has created an template mechanism (that is in use currently in C++ side in Eclipse), that the MTJ could convert to be used in the Java side. One optional scenario may be that Symbian has created an template mechanism (that is in use currently in C++ side in Eclipse), that the MTJ could convert to be used in the Java side.

Runtime Launch

Debugging

Code Editor The MTJ code editor is based on the Eclipse JDT base functionalities.

Deployment and Runtime management The MTJ provides an Deployment and DevicePlatform frameworks 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 EclipseEclipse SDK / Emulator (Vendor X) Vendor X SDK Emulator Plug-in Vendor X SDK Emulator Plug-in MTJPlug-inMTJPlug-in Device Platform Device Platform Extension point SDK / Emulator (Vendor Y) Vendor Y SDK Emulator Plug-in Vendor Y SDK Emulator Plug-in SDK / Emulator (Vendor Z) Vendor Z SDK Emulator Plug-in Vendor Z SDK Emulator Plug-in Vendor X Real Device Plug-in Vendor X Real Device Plug-in Real Device Real Device (Vendor X) Vendor Y Real Device Plug-in Vendor Y Real Device Plug-in Real Device Real Device (Vendor Y)

Device Management The device management in this scope focuses to enable detecting, visually showing, identifying and visually managing the available mobile devices. There should be ability to group devices with similar configuration based on some criteria. This grouping could be used e.g. in the packaging / building / localization / deployment / branding processes. The device model holds each device and Device Emulator Device Emulator Device Real Device Real Device 1..n 1 Device Platform Fragmentation Definition 1 Runtime Platform Definition Can be seen as one definition

Signing and Obfuscation Signing MIDP 2.0 (JSR-118) includes enhanced mobile code and application security through a well-defined security manager and provisioning process. During the provisioning the MIDP applications are signed with an certificate, which ensures their security and makes them trustworthy.JSR-118 Trusted MIDlet suites can be granted access to API's without explicit user authorization, and have wider access to device API's. Obfuscation By using an Obfuscator tool, the source code can be made more difficult to reverse-engineer and also there can be some code optimization benefits achieved at the same time. Obfuscation can be done e.g. through an ANT task that activates an Obfuscator tool and it performs the obfuscation against the parameterized source code location.

Localization Localization (I18N/L18N) is a major issue in the wireless space, where a single app deployed to a single carrier may need to support many languages and character sets. Key requirements: The Localization architecture should be capable of supporting all languages. It should remove the need for application developers to decide which encoding the application will support. The Localization architecture should be aware the UI differences in devices so that the developers wont have to (e.g. the width and length of a device screen). The localization should enable that the service providers can extend the language supports during the deployment phase. Allow local users to select their preferred languages as provided by the application. There should be visible UI simulation that enable to verify the UI immediately when the users switch the locale. The localization should support at leas two approaches: By creating a resource file (.properties) and adding there the selected source files localizable keys. By enabling such optimization to bind the localization directly to the application.

Application Flow The Application Flow creates kind a action diagram, where the visible and invisible actions are drawn on a graphical editor. The AF-editor enables that developer can design e.g. mobile application UI flow.

GUI Editor The Eclipse Visual Editor provides an extensible GUI framework, that can be used in the mobile IDE UI area. Why VE: The VEs framework provides a lot of extension points to different kind of GUI editors Benefits: The GUI editors would have common base framework and the there is a need to implement only the delta of the different mobile GUI editors Now existing: The base GUI framework. What is needed: The mobile screen engines with UI widgets to LCDUI area. VE doesnt provide any multimedia services yet.

23 Backup slides More detail presentation about the top technical items

24 Backup slides – Device Fragmentation

Device Platform Device Emulator Device Emulator Device Real Device Real Device 1..n 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 Platform

Device Platform Services Device Platform Services getDevicePlatforms() : DevicePlatform[] getDevices(String devicePlatformName) : Device[]... Device Platform, Device Platform Services Device Platform Services make it possible to query available Device Platforms. Based on Device Platform name its possible to get Devices or the Platform.

DeviceDevice DP DC Project Project DP DC Device fragmentation APIs DeviceManagement Project can select smaller set of APIs that the targeted devices are supporting. By selecting smallest possible set of needed APIs, the number of suitable devices is bigger. Although the Project has the default device, the Projects definitions can match to several devices.

Device Services Device Services getDevices(DeviceConfiguration dc, DeviceProfile dp, ServiceAPI[] apis) : Device[]... Device fragmentation, Device Services Device Services make it possible to query Devices that are possible targets to the Projects application. Project uses its own definitions as parameters in the service call.

29 Backup slides - Wizards Wizards internal architecture

Wizards architecture [template management]…

31 Backup slides - Runtime Launch Runtime Launch internal architecture

Runtime Launch architecture The Runtime Launch architecture uses the Device Platform to enable selection of available Devices.

Device Runtime Platform Definition 1..n 1 1 Device Profile DP Service API API Device Configuration DC Runtime Platform JVM Impl. 1 Device instance defines the Runtime Platform Definitions that its capable to run on. Runtime Platform consists of Device Configuration, Device Profile, Service APIs and JVM Implementation. Device Configuration defines used configuration (i.e. CDC or CLDC) and its version. Device Profile defines used profile (i.e. MIDP) and its version. Service APIs are either APIs that are defined in Device Profile or API of optional Services that the Devices OS is supporting. Runtime Platform Definition is always based on defined Mobile SDK JVM Implementation.

Service API API Runtime Platform (cont.) JVM Impl Service API –object contains the standardize service name and its version, i.e. WMA 1.1, MMAPI 1.1 or Location API 1.0. Service API has also reference to JAR Library that implements the API. Also Mobile SDK JVM Impl –object contains the JVM name and its version and reference to JAR Library that implements the JVM specification that is defined by the Runtime Platforms Device Configuration Specification. Library Jar 1 1

Device Services Device Services getRuntimePlatforms(String devicePlatformName, String deviceName) : RuntimePlatformDefinition[]... Runtime Platform, Device Services Device Services make it possible to query Runtime Platforms of a Device.

36 Backup slides - Debugging Debugging internal architecture

Debugging architecture …

38 Backup slides - Device Management Device Management internal architecture

Device Management architecture Each Mobile project may select the targeted devices, that the project is supporting. Mobile Project contains one or more Device Platforms, thus there is only one default mobile SDK active. The Device Platform and Device instances definition is stored inside the EMF based Device model and the with extendable persistence component the definition is shared with in several projects. The Runtime Platform Definition data is also stored and shared among projects and the Fragmentation Definition can enhance the task to find compatible device groups. Also the pre-processing can use this to provide and define the device grouping inside the JDT. Mobile Project Mobile Project 1..n Device Emulator Device Emulator Device Real Device Real Device 1..n 1 Device Platform Fragmentation Definition 1 Runtime Platform Definition Extended device 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. The Device Management uses Device Platform and Device Description information. The deeper interaction and dependency is described in the following two slides Device Management Device Management Device Management > Device Management Implementation > Device Platform Provider Device Platform Provider > Device Platform > Device Platform Device Description Provider Device Description Provider > Device Description Implementation > Device Description Implementation

Device Management control flow Device Management Implementation MTJ Core Plug- in MTJ Core Plug- in 3: getImplementations(Device Platform) return: DevicePlatformProvider [ ] Out Out 2: getDevices(devicePlatformName) 1: getImplementations(Device Management) return: DeviceManagement [ ] Device Platform 4: getDevices() return: Device [ ] 5: getImplementations(Device Description) return: DeviceDescriptionProvider [ ] Device Description Impl. 6: getDeviceDescription( String vendor, String model) return: DeviceDescription return: Device [ ]

Device Platform Services Device Platform Services getDevicePlatforms() : DevicePlatform[] getDevices(String devicePlatformName) : Device[]... Device Platform, Device Platform Services Device Platform Services make it possible to query available Device Platforms. Based on Device Platform name its possible to get Devices or the Platform.

Device Platform

Device

Runtime Platform

Project

47 Code Editor Code Editor internal architecture

Code Editor architecture tbd

Device DP APIs DC Project Project DP APIs DC Project 1 Library Jar 1..n Library Jar 1 1 Mobile Project development is targeted to devices that have certain Device Configuration and Device Profile. Therefore MTJs Project has also Device Configuration and Device Profile defined. Its 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. LEGEND: DP DC DP APIs DC Projects defined Device Configuration Projects defined Device Profile Service APIs that are selected to the Project Devices Device Configuration Devices Device Profile Service APIs that are supported by the Device APIs Mobile SDK Emulator

50 Backup slides - Deployment Deployment Framework internal architecture

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 environment Z Z SDK / Emulator context (Nokia, Win32 OS) UEIUEI UEIUEI Interface S40 S60 Deployment Framework Extension point Interface SDK / Emulator (Vendor X) UEIUEI UEIUEI O B E X OTAOTA OTAOTA U E I Real Device X X X X X X 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

Mobile Vendor specific view EclipseEclipse SDK / Emulator (Vendor X) Vendor X SDK Emulator Plug-in Vendor X SDK Emulator 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 MTJPlug-inMTJPlug-in Device Platform Device Platform Extension point SDK / Emulator (Vendor Y) Vendor Y SDK Emulator Plug-in Vendor Y SDK Emulator Plug-in SDK / Emulator (Vendor Z) Vendor Z SDK Emulator Plug-in Vendor Z SDK Emulator Plug-in Vendor X Real Device Plug-in Vendor X Real Device Plug-in Real Device Real Device (Vendor X) Vendor Y Real Device Plug-in Vendor Y Real Device Plug-in Real Device Real Device (Vendor Y)

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

Deployment framework plug-ins Vendor Z Real Device Plug-in SDK / Emulator (Vendor X) Vendor X SDK Emulator Plug-in Plug-in U E I UEIUEI UEIUEI SDK / Emulator (Vendor Y) Vendor Y SDK Emulator Plug-in Plug-in X E I XEIXEI XEIXEI Vendor Y Real Device Plug-in Real Device Real Device (Vendor Y) Vendor X Real Device Plug-in Plug-in Real Device Real Device (Vendor X) O B E X FTP HTTP/FTPservice OTAOTA OTAOTA FTP SDK / Emulator (Vendor Z) Vendor Z SDK Emulator Plug-in Plug-in X X X X HTTP/FTPservice OTAOTA OTAOTA 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

Deployment framework design Integrating 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 its 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, its 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

Deployment framework Model Device Platform Device 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 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.

Deployment framework Model (cont.) Deployment 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, whats inside the received deployment and how to handle it. MEGlet Deployment MEGlet Deployment Resource Deployment Resource Deployment i/f

58 Signing and Obfuscation Signing and Obfuscating internal architecture

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.

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.

61 Backup slides - GUI Mobile Visual Editor architecture

Visual IDE environment in general Eclipse Platform IDEIDE Screen Engine Launcher / Emulator Graphical Editor Code / Resource Editor Property Sheet Outline Viewer 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.

VE Internal Component Architecture Eclipse Platform Eclipse Visual Editor Framework Eclipse Visual Editor Framework Java core JFC Editor SWT Editor Java Element Model (JEM) Common Diagram Model (CDE) GEF EMF Local or Remote Java VM Target VM BeanInfo VM Java source files 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.

Mobile Visual Editor GUI Components MTJ Screen Engine Screen Rendering Context Eclipse MTJ IDE Eclipse VE Eclipse Platform MTJ Mobile Extension GEF EditorPart UI VE Model BeanProxy Adapter Custom Mobile proxy components Mobile eSWT proxy components Mobile CLDC proxy components Screen Rendering API BeanInfo Adapter CLDC Screen Rendering Engine eSWT Screen Rendering Engine Custom Screen Rendering Engine Common Screen Rendering Engine Screen Rendering API MTJ CDLC UI components MTJ eSWT UI components Custom UI components Legend Existing in Eclipse MTJ project scope CDLC UI base Look & Feel Custom UI Look & Feel MTJ eSWT UI components Custom UI Look & Feel Custom UI Components

65 Backup slides – Milestone Plan

MTJ Milestone Plan tbd