4. 4 Desktop Low-end devices Enterprise High-end devices Smart Cards Optional packages Optional packages Optional packages MIDP Optional packages CLDC Foundation profile CDC Personal profile Java Card Card VMKVMKVMJava Virtual MachineJava 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.
5. 5 MTJ context EclipseEclipseEclipseEclipse Operating Systems: Win32, Linux, MAC. Operating Systems: Win32, Linux, MAC. Tooling Runtimes JRE 1.4 .. 5.0, J9 Tooling Runtimes JRE 1.4 .. 5.0, J9 XX U E I U E I Vendor Y SDKVendor Y SDK JavaDocsJavaDocs APIAPI Real DeviceReal DeviceReal DeviceReal Device Download /Download / Update sitesUpdate sites EclipseEclipse Download /Download / Update sitesUpdate sites EclipseEclipse Sun / IBMSun / IBM (tooling runtime(tooling runtime JRE 5.0 / J9 )JRE 5.0 / J9 ) Sun / IBMSun / IBM (tooling runtime(tooling runtime JRE 5.0 / J9 )JRE 5.0 / J9 ) Vendor XVendor X (for SDK download)(for SDK download) Vendor XVendor X (for SDK download)(for SDK download) DifferentDifferent vendorvendor productsproducts basedbased on Eclipseon Eclipse MTJMTJ DifferentDifferent vendorvendor productsproducts basedbased on Eclipseon Eclipse MTJMTJ Generic SDKGeneric SDK APIAPI JavaDocsJavaDocs MTJMTJMTJMTJ JavaDocsJavaDocsJavaDocsJavaDocs APIAPI APIAPIAPIAPI A List ofA List of JVMSJVMS A List ofA List of JVMSJVMS Vendor YVendor Y (for SDK download)(for SDK download) Vendor YVendor Y (for SDK download)(for SDK download) U E I U E I Vendor X SDKVendor X SDK JavaDocsJavaDocs APIAPI
8. 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 8 Huge amount of configurations Varying devices Varying devices Differing assets Differing assets Operator requirements Operator requirements
9. 9 ApplicationApplication DevelopersDevelopers ApplicationApplication DevelopersDevelopers ContentContent aggregators andaggregators and DistributorDistributor ContentContent aggregators andaggregators and DistributorDistributor Network operatorsNetwork operatorsNetwork operatorsNetwork operators End-user /End-user / consumerconsumer End-user /End-user / consumerconsumer InfrastructureInfrastructure providersproviders InfrastructureInfrastructure providersproviders DeviceDevice manufacturesmanufactures DeviceDevice manufacturesmanufactures RetailRetailRetailRetail 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. LegendLegend Information exchangeInformation exchange Cash flow exchangeCash flow exchange
10. 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. 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. 10 DeviceDevice Emulator Device Emulator Device Real Device Real Device1..n 1 Device PlatformDevice Platform i/f Fragmentation Definition Fragmentation Definition 1 Runtime Platform Definition Runtime Platform Definition Can be seen as one definition
11. 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. 11