Title: Bluetooth and java a perfect match
1Bluetooth and java a perfect match?
- Sean O Sullivan ceo
- Nordic Bluetooth, October 5th, 2001
2overview
- Introduction to Java
- Java 2 Micro Edition (J2ME)
- The Standard Java Bluetooth APIs
- Jini and Javaspaces Service Discovery
- JXTA Peer to Peer
3Introduction 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
4Java 2 platform technologies
5why care about java especially j2me?
- Momentum in the wireless world
- over 30 developers using Java for wireless
Application 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-to-peer and ad-hoc networking (see later)
Source Evans Data Corporation, 2000
6Java 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
7configurations and profiles
Java 2 Micro Edition
- Connected Device Configuration (CDC)
- Connected Limited Device Configuration (CLDC)
- Mobile Information Device Profile (MIDP)
- PDA Profile (PDAP)
8CLDC is a subset of CDC
9J2ME 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
10CDC
- 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)
11smallest consumer devices CLDC and MIDP
- Smallest mobile information devices
- Cell phones, pagers, some PDAs, ...
- Small screensapproximately 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
12CLDC 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.
13standard 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
technology-enabled devices to integrate into a
Bluetooth environment - Chaired by Motorola
- Other members Rococo Software, Ericsson, Nokia,
Extended Systems, - Due for completion end 2001
14JSR82 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
- Worlds fastest-growing Dev Community
- 2.5M Java developers worldwide
15JSR82
- 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
16support 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
17JSR82 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
18CLDC and Bluetooth architecture
19CLDC and MIDP and Bluetooth architecture
20JSR82 status
- Version 0.5 in September
- Community ReviewOct/Nov
- Public ReviewNov/Dec
- Release 1.0 - Jan 2001 (estimated)
- JSR and specification
- http//java.sun.com/aboutJava/communityprocess/jsr
/jsr_082_bluetooth.html
21Jini service discovery
- Pronouncing it
- Dont 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
22Jini architecture
23Jini 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
24Jini components
- Discovery Protocol
- Join Protocol
- Lookup Service
- Distributed Security System
- Distributed Transaction Interfaces
- Leasing Interface
- Event Notification Interfaces
25service publishes proxy object
26Where 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
27JXTA 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
28JXTA architecture
29JXTA 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
30JXTA 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
31where 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
32summary
- 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
33- for more information contactSean O Sullivan,
sos_at_rococosoft.com