Extending, Expanding, and Porting Mobile & Embedded Community Projects
description
Transcript of Extending, Expanding, and Porting Mobile & Embedded Community Projects
![Page 1: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/1.jpg)
Extending, Expanding, and Porting Mobile & Embedded Community Projects
by Phil Bartholowww.bartholo.com/OSCON/
![Page 2: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/2.jpg)
‣ Learn how the core M&E Community projects have been the catalyst for numerous ports, extensions, and expanded open source uses not previously envisioned when the community launched.
Goals
![Page 3: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/3.jpg)
Java Momentum
6 Billion Java-Enabled Devices
2.5 Billion Java-Enabled Phones
3.5 Billion Java Card
20 Million Java Set-top Boxes
800 Million Java Desktops
180 Operators DeployingJava Content
6 Million Developers
![Page 4: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/4.jpg)
Why Open Source?
•Bring communities together and extend them
•Engage platform and application developers, ISV's, tools vendors, and operators
•Industry-wide collaboration on platform, tools, and applications
•Remove inefficiencies and barriers to innovation
•Drive common implementation and consistency
![Page 5: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/5.jpg)
‣ Introduction to the Mobile & Embedded Community
‣ Mobile‣ Media‣ Embedded
Agenda
![Page 6: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/6.jpg)
www.mobileandembedded.org
![Page 7: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/7.jpg)
Community Structure
![Page 8: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/8.jpg)
‣ The only place in the industry that brings together
• Complete source code of Java ME implementations
• Platform experts and spec leads
• Testing tools
• Experienced application and content developers
• Lots of cutting-edge samples and source code under BSD
• 3rd party technology, collaboration, and code
• Active community, very friendly and helpful
‣ The best place to jump-start your involvement with Java ME
Why Get Involved?
![Page 9: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/9.jpg)
‣ Introduction to the Mobile & Embedded Community
‣ Mobile‣ Media‣ Embedded
Agenda
![Page 10: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/10.jpg)
Platform Scalability & Evolution
MSAMSAJTWIJTWI JavaJava
Platform,Platform,StandardStandardEditionEdition
(Java SE)(Java SE)ConnectedConnectedDeviceDevice
ConfigurationConfiguration(CDC)(CDC)
ConnectedConnectedLimited DeviceLimited DeviceConfigurationConfiguration
(CLDC)(CLDC)JavaJavaCardCard
OptionalOptionalPackagesPackages
Foundation Profile (FP)Foundation Profile (FP)
PersonalPersonalBasis ProfileBasis Profile
(PBP)(PBP)
PersonalPersonalProfileProfile(PP)(PP)
Optional PackagesOptional PackagesOptional PackagesOptional Packages
Java Platform,Java Platform,Micro Edition (Java ME)Micro Edition (Java ME)
MobileMobileInformationInformation
Device ProfileDevice Profile(MIDP)(MIDP)
Capa
bilit
ies
Resources
![Page 11: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/11.jpg)
‣ OS version of commercial “Sun Java Wireless Client”
‣ Shipping on mass-market “feature” phones
‣ Target platforms: Linux/ARM, Windows, Linux/x86
‣ CLDC/MIDP stack, including
• Highly optimized performance with runtime compilation and optimization
• Advanced MIDlet multitasking
• Advanced resource management
• Modular, portable design
• Most parts of MSA 248
phoneME Feature Project
![Page 12: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/12.jpg)
‣ Advanced phones and consumer devices
‣ Target platforms: Linux/ARM, Windows, Linux/x86, Windows Mobile 5.0/6.0 in beta
‣ CDC/FP/PBP/PP stack, including
• High performance with runtime compilation and optimization
• Advanced application management
• MIDlet support (“MIDP on CDC”)
• JSR 75 (PIM), JSR 82 (Bluetooth), JSR 205 (WMA), JSR 135 (MMAPI), JSR 172 (Web Services), JSR 226 (SVG)
phoneME Advanced Project
![Page 13: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/13.jpg)
Lightweight UI Toolkit (LWUIT)
‣ Lightweight library bundled with the application
‣ Compelling UI, consistent across platforms (CLDC, CDC, Java SE)
‣ Minimal requirements• CLDC 1.1 + MIDP 2.0 or
• CDC + PBP or
• Java SE 1.4 and upwards
• Highly portable
‣ Inspired by Swing, optimized for mobile and embedded
‣ Tools support: Resource editor, NetBeans Matisse (soon)
![Page 14: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/14.jpg)
Who's using phoneME‣ phoneME Feature usage examples
‣ midPath: A desktop MIDP emulation
‣ Sun SPOT & Squawk VM
‣ Sony PlayStation Portable PSP
‣ phoneME Advanced usage examples
‣ MIDP stack for Windows Mobile
‣ CDC for Nokia N770/N800/N810
‣ OpenCable (OCAP): Set-top box middleware
‣ BUG: Configurable consumer electronics device
‣ Cineca.tv: Interactive TV platform
‣ Palm OS 5 port
‣ ... and much more in the pipe
![Page 15: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/15.jpg)
https://meapplicationdevelopers.dev.java.net
ME Application Developers
![Page 16: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/16.jpg)
‣ Bluetooth (JSR-82) framework• Inquiry for devices
• Search for services
• Connect and start exchanging messages
• Default and auto connection alternatives
‣ Project started in 2006• .05 release
‣ Mooo project• Set of tools for create/update/display ODF Documents using Mobile
• http://marge.dev.java.net/
Project Marge
![Page 17: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/17.jpg)
CQME Project
Compatibility and Quality Testing Tools
ME Framework
Test
Sui
te
Test
Sui
te
Test
Sui
te
JT Harness
TestSuite-Specific FW
‣ JT Harness
• Used by Java technology TCKs
‣ ME Framework
• Supports ME platforms
‣ Test Suite
• Compatibility to specification (JSRs) or specification-like use-cases
![Page 18: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/18.jpg)
‣ Introduction to the Mobile & Embedded Community
‣ Mobile‣ Media‣ Embedded
Agenda
![Page 19: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/19.jpg)
Media Delopment
Media Projects
‣ Blu-Ray - http://hdcookbook.dev.java.net
‣ OCAP - http://opencable.dev.java.net
![Page 20: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/20.jpg)
‣ Introduction to the Mobile & Embedded Community
‣ Mobile‣ Media‣ Embedded
Agenda
![Page 21: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/21.jpg)
Buglabs
‣ Enabling a new generation of engineers to build any type of device they want
• Without having to solder
• Learn solid state electronics
‣ Open Source software
• Entire stack is Java except for thin Linux layer
• Use phoneME Advanced
‣ CDC/FP/PP/PBP
‣ Extended to add their application APIs and hardware modules
![Page 22: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/22.jpg)
‣ Java™ Operating Environment for small devices
‣ Bootloader/Micro Kernel
‣ Java™ ME CLDC 1.1 IMP 1.0
‣ Java™ on the “bare metal”
‣ Virtual Machine
‣ Device Drivers/Interrupt Handlers
‣ Sun Microsystems Laboratories project
Squawk
![Page 23: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/23.jpg)
‣ Embedded development is hard
‣ Leverage Java™ expertise and code-base
‣ Use standard tools
‣ Ease of porting and emulation
‣ Java™ technology end to end
Squawk – Why Java?
![Page 24: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/24.jpg)
‣ Optimize for small devices
‣ Java™ technology enabler
‣ Java™ in Java™
‣ Java™ on Java™
‣ Research and production
Squawk – Design Goals
![Page 25: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/25.jpg)
Squawk - Architecture
![Page 26: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/26.jpg)
Sun Spot
‣ Sun has licensed Java over billions of cell phones
‣ How do we encourage Sun Technology in whatever comes next?
![Page 27: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/27.jpg)
Built to Inspire
‣ Designed for flexibility
• Make hardware projects into software projects
• Not designed for cost effective deployment
‣ We want to
• Build a community of developers
• Enable new Devices and services
• Engage new customers
![Page 28: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/28.jpg)
Sun Spot Device
‣ Basic device has three layers
• Battery
• Processor Board with Radio
• Sensor Board
‣ Processor Board alone acts as base-station
‣ User programs the device entirely in Java using std Java tools
![Page 29: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/29.jpg)
Sun SPOT Main board
‣ 180 Mhz 32 bit ARM920T core
‣ 512K RAM/4M Flash
‣ 802.15.4 radio
‣ USB interface – mini b
‣ 3.6V rechargeable lithium-ion battery
‣ 36 µA deep sleep mode
‣ JavaME on the metal
![Page 30: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/30.jpg)
‣ 2G/6G 3-axis accellerometer
‣ Light sensor
‣ Temp sensor
‣ 2 push buttons
‣ 8 RGB 24 bit LEDS
‣ 6 analog inputs
‣ 5 general purpose I/O pings and 4 current output pins
Sun SPOT eDemoboard
![Page 31: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/31.jpg)
‣ squawk – Java Virtual Machine
‣ spots-libraries – libraries used by SunSPOTs
‣ spots-hardware -
‣ spots-applications – demos and apps
‣ spots-curriculum – instructional materials
Projects Covered
![Page 32: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/32.jpg)
‣8 built in sensors modules
• Beaconing
• Obstacle avoidance
• Spatial awareness
• Communication
• Navigation
‣4 transducer stations for optional/homebrew sensors
‣Designed specifically for university-level education and research
Trackbot
![Page 33: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/33.jpg)
DEMO!
Demo
![Page 34: Extending, Expanding, and Porting Mobile & Embedded Community Projects](https://reader035.fdocuments.us/reader035/viewer/2022062323/56815bf2550346895dc9e2e7/html5/thumbnails/34.jpg)
Extending, Expanding, and Porting Mobile & Embedded Community Projects
by Phil Bartholowww.bartholo.com/OSCON/