330 likes | 490 Views
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.
E N D
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
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
Connected Device Configuration (CDC) Connected Limited Device Configuration (CLDC) Mobile Information Device Profile (MIDP) PDA Profile (PDAP) configurations and profiles Java 2 Micro Edition
J2SE CDC CLDC CLDC is a subset of CDC
J2ME architecture: key elements • Profile • API exposing the functionality on aspecific class of target devices, andnecessary to support a particular set ofservices • Optional Package • API exposing a specificfunctionality; includes a list of APIdependencies; must be deployed with aprofile that supports the dependencies • Configuration • the minimal sized, pre –existingprofile defined for the specific VM it isdeployed 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 environmentand 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 downJava API subset • MIDP provides • A set of User Interface components • Apersistence mechanism • A HTTP connectioncapability • A PDA Profile is being worked on (chaired by Palm) • For use in mobile phones, PDAsand 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 theJ2ME™ platform • API will depend ONLY on CLDC APIs • Use CLDC Generic Connection Framework • APIs will work on all platforms that have/willhave 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 clientand 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 asmall, lightweight platform as thefoundation 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
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 apipe advertisement to an actualendpoint Routing protocol Find aroute to reach apeer JXTA protocols
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, sos@rococosoft.com