Bluetooth and Java – A Perfect Match?
Download
Report
Transcript Bluetooth and Java – A Perfect Match?
Bluetooth and java – a perfect match?
Sean O Sullivan ceo
Nordic Bluetooth, October 5th, 2001
overview
•
•
•
•
•
Introduction to Java
Java 2 Micro Edition (J2ME)
The Standard Java Bluetooth APIs
Jini and Javaspaces: Service Discovery
JXTA : Peer to Peer
Introduction to Java
• Java is both a language and a platform
• Language
+ Object oriented
+ No pointers
+ Compiled to Bytecode
+ Executes on a Virtual Machine (VM)
• Wherever a VM can go – so can Java
• The VM aspect of Java underpins the platform
Java 2 platform technologies
why care about java – especially j2me?
• Momentum in the wireless world
+ over 30% developers using Java for wireless Application
* Source: Evans Data Corporation, 2000
Development(*)
+ Equipment vendors backing it
– Nokia : 150M Java Phones next 2 years
– Siemens : Phones, PDAs – shipping now
– Motorola : Phones, PDAs – shipping now
• Java complements Bluetooth
+ provides core abstractions for service discovery, peer-topeer and ad-hoc networking (see later)
Java 2 Micro Edition (J2ME) : platform for
wireless
• Focus: Wireless and Embedded
• Composed of
+ Configurations
+ Profiles
• Configuration
+ Minimum set of classes and VM features that must be
present for a category of devices
• Profile
+ Targeted at Application Developers
+ Layered on top of Configurations
+ APIs for a particular set of devices
configurations and profiles
•
•
•
•
Connected Device
Configuration (CDC)
Connected Limited Device
Configuration (CLDC)
Mobile Information Device
Profile (MIDP)
PDA Profile (PDAP)
Java 2 Micro Edition
CLDC is a subset of CDC
J2SE
CDC
CLDC
J2ME architecture: key elements
• Profile
+ API exposing the functionality on a specific class of target
devices, and necessary to support a particular set of
services
• Optional Package
+ API exposing a specific functionality; includes a list of API
dependencies; must be deployed with a profile that supports
the dependencies
• Configuration
+ the minimal sized, pre –existing profile defined for the
specific VM it is deployed against
CDC
• Targeted for devices that have
+ 2 MB or more total available memory
+ Memory dedicated to J2ME environment
+ More than 2 MB ROM/Flash
+ More than 512 KB RAM
+ Network connectivity
• Full Java 2 VM specification (CVM)
smallest consumer devices – CLDC and MIDP
• Smallest mobile information devices
+ Cell phones, pagers, some PDAs, ...
+ Small screens—approximately 100x100
+ Limited battery life / low power consumption
+ 128K to 512KB for J2ME environment and applications
+ 16/32 bit processor
+ Connectivity to some network, often not IP, intermittent
CLDC and MIDP
• CLDC provides
+ A fast, small footprint virtual machine (the KVM)
+ A stripped down Java API subset
• MIDP provides
+ A set of User Interface components
+ A persistence mechanism
+ A HTTP connection capability
• A PDA Profile is being worked on (chaired by Palm)
• For use in mobile phones, PDAs and other handheld mobile
devices.
standard Bluetooth APIs in Java – JSR82
• Java Community Process (JCP)
+ Issues Java Specification Requests (JSRs)
• JSR82
+ Expert group to define Standardised Bluetooth APIs for Java
+ Goal: standardize a set of APIs to allow Java technologyenabled devices to integrate into a Bluetooth environment
+ Chaired by Motorola
+ Other members: Rococo Software, Ericsson, Nokia,
Extended Systems, …
• Due for completion end 2001
JSR82 – benefits for Bluetooth
• Portability of code
+ Standard API allows same code to work on different devices,
different Bluetooth Stacks
• Increases Bluetooth Adoption, reduces time-to-application
+ Code in Java versus C, C++
+ World’s fastest-growing Dev Community
– 2.5M Java developers worldwide
JSR82
• Target Platform
+ Devices for the J2ME™ platform
+ API will depend ONLY on CLDC APIs
+ Use CLDC Generic Connection Framework
+ APIs will work on all platforms that have/will have Generic
Connection Framework
support for profiles
• Number of Bluetooth Profiles keeps growing
+ API will provide support for the fundamental profiles
– GAP
– SDAP
– Serial Port
– GOEP (generic object exchange protocol)
+ API assumes Bluetooth stack supports these fundamentla
profiles
JSR82 profile support
• API to expose core layers and basic profiles
+ 1. RFCOMM/SPP
+ 2. SDP/SDAP
+ 3. L2CAP
+ 4. GAP/HCI/Device Management
+ 5. GOEP
CLDC and Bluetooth architecture
CLDC and MIDP and Bluetooth architecture
JSR82 status
•
•
•
•
•
Version 0.5 in September
Community Review—Oct/Nov
Public Review—Nov/Dec
Release 1.0 - Jan 2001 (estimated)
JSR and specification
+ http://java.sun.com/aboutJava/communityprocess/jsr/jsr_082
_bluetooth.html
Jini : service discovery
• Pronouncing it …
+ Don’t say Jinny, say “Genie”
• Jini
+ Helps build and deploy distributed systems using federations
of services
+ A service can be anything – any funtionality that a computer,
device, person wishes to expose over the network
Jini architecture
Jini – a service-oriented view of the world
• Allow late binding between client and service
+ Allow services to change
+ Enables reliable applications from unreliable parts
+ Networked object components
+ Breaks the tie between
– What is to be done
– Who is going to do it
Jini components
•
•
•
•
•
•
•
Discovery Protocol
Join Protocol
Lookup Service
Distributed Security System
Distributed Transaction Interfaces
Leasing Interface
Event & Notification Interfaces
service publishes proxy object
Where Jini and Bluetooth meet
• Both facilitate loosely-coupled networks where participants
+ Join and leave the network regularly
+ Discover and use services offered by other participants
+ Can themselves offer services to the network
• Bluetooth provides the hardware/low-level software platform to
allow dynamic networks to form
• Jini provides the higher level software framework to facilitate
powerful application development
JXTA background
• Goal
+ Build a small, lightweight platform as the foundation of all
peer-to-peer systems
• Originated at Sun – quickly moved to a neutral, community
based organisation, and opensourced
• www.jxta.org
JXTA architecture
JXTA – key concepts
• Peers and groups
+ Any entity capable of the necessary protocols
• Advertisement
+ Structured XML document
• Messaging
+ Unreliable, asynchronous, uni-directional
• Pipe
+ Virtual communication channel
JXTA protocols
•
•
•
Discovery protocol
+ Find advertisements from
other peers
Resolver protocol
+ Locate peers, groups, pipes,
etc.
Information protocol
+ Query other peers’ status
•
•
•
Membership protocol
+ Obtain membership
information, apply, receive,
and update group
membership,
Pipe binding protocol
+ Bind a pipe advertisement
to an actual endpoint
Routing protocol
+ Find a route to reach a peer
where Bluetooth and JXTA meet
• Bluetooth, by its very nature, faciliates peer-to-peer
collaboration
• JXTA can provide a standard framework for peer-to-peer
interaction
• JXTA may provide important technology to underpin 2nd and 3rd
generation Bluetooth applications
summary
• Java is important for Bluetooth
+ Many BT devices will run J2ME as the core platform for
applications
+ Standard APIs for BT will speed new application
development
+ Ad-hoc and peer-to-peer technologies such as Jini,
JavaSpaces and JXTA will provide software infrastructure
that allows us to realise the potential of Bluetooth networks
for more information contact
Sean O’ Sullivan, [email protected]