bluetooth and java – a perfect match? sean o sullivan ceo nordic bluetooth, october 5th, 2001

33
Bluetooth and java – a perfect match? Sean O Sullivan ceo Nordic Bluetooth, October 5th, 2001

Post on 18-Dec-2015

224 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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 contactSean O’ Sullivan, [email protected]