bluetooth and java – a perfect match? sean o sullivan ceo nordic bluetooth, october 5th, 2001
Post on 18-Dec-2015
223 views
TRANSCRIPT
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
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
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
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 – 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
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 – 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]