SlideShare ist ein Scribd-Unternehmen logo
1 von 48
JSR82
Past, Present and Future for Java/Bluetooth APIs




           Sean O Sullivan, CTO, Rococo Soft ware
                   sos@rococosoft.com
Over view

Introduction
Bluetooth background
JSR82 - Java Bluetooth APIs
Bluetooth Evolution
Next steps for JSR82
Rococo

Soft ware company based in Dublin, Ireland
Specialists in Java/Bluetooth since 2000
Sell tools and handset/embedded soft ware
100M+ units shipped
Bluetooth
Short Range Wireless

     1m - 100m

 “cable replacement”

       Ad-hoc

      Piconets
Bluetooth Design Goals
Short range
Low Power
Ad Hoc
Secure
Robust
Easy to Use
Bluetooth by numbers

1998         64%

7 - 10,000   6-8%

2.0 + EDR    45%

1.8Bn        $5 now <$2, even $1

1 - 100mW    1 - 3 Mb/s
Where does it go (07)?


          70M



500M

                  80M
Bluetooth Architecture
                                                              UDP        TCP

  Audio
                                                                    IP


                                                                               Bluetooth Stack
                                                                PPP

                                                 OBEX

          Service Discovery
                                                     RFCOMM
              Protocol

            Logical Link Control and Adaptation Protocol


                     Host Controller Interface


                Host Controller Interface Firmware
                                                                               Bluetooth Host
                      Link manager Protocol                                      Controller
                                                                               Baseband and
                     Baseband Link Controller                                     Firmware

                          Bluetooth Radio
Bluetooth ProïŹles
Generic Access ProïŹle

              SDAP                           TCS Bin based proïŹles

                                                Intercom ProïŹle          Cordless Phone


              Serial Port ProïŹle
                                                         Generic Object Exchange
                        Dial Up Networking               ProïŹle

                                                                   File Transfer
                           Fax ProïŹle

                                                                   Object Push
                         Headset ProïŹle

                                                                  Synchronisation
                        LAN Access ProïŹle
Bluetooth and APIs
Bluetooth’s dirty little secret
  Well ok, it’s not really a secret.....and it’s not that dirty


No Common API for Bluetooth Stacks
deïŹned as part of the Bluetooth standard
Why not?
  Stacks were a pretty competitive area
  in the early days of Bluetooth
Can create development issues
JSR82 aka JABWT
Provide Java APIs for             ProïŹles supported :
common Bluetooth                  GAP, SDAP, SPP, GOEP,
functionality                     L2CAP, RFCOMM, SDP,
                                  OBEX
Started Oct ‘00,
completed March ’02
                        Generic Access ProïŹle

                                      SDAP                           TCS Bin based proïŹles



Chaired by Motorola;                                                    Intercom ProïŹle          Cordless Phone




other members
                                      Serial Port ProïŹle
                                                                                 Generic Object Exchange
                                                Dial Up Networking               ProïŹle


included Rococo,                                   Fax ProïŹle
                                                                                           File Transfer




Nokia, Ericsson,                                 Headset ProïŹle
                                                                                           Object Push




Mitsubishi, Extended
                                                                                          Synchronisation
                                                LAN Access ProïŹle




Systems and more
JSR82 - Timeline
           JSR82 Expert
           Group formed                JSR82 1.0                            Review                JSR82 1.1




JSR82            Main standards work                                                 Maintenance review




         2000        2001                2002         2003           2004     2005               2006         2007



                                           Impronto DevKit
                                                                     1.1      1.2                1.3          1.4
                                                 1.0


Rococo                              Impronto
                                                              1.1            1.2                       1.3
                                  Simulator 1.0



                                                      Impronto TLK
JSR82 Overview
                      Application



                      JSR82 APIs




                                         OBEX

  Service Discovery
                                    RFCOMM
      Protocol

    Logical Link Control and Adaptation Protocol


             Host Controller Interface


        Host Controller Interface Firmware


              Link manager Protocol


             Baseband Link Controller


                  Bluetooth Radio
JSR82 Overview
                    Depends only on CLDC             Two TCKs

                    Requires GCF                     Data-Centric (not
                                                     voice)
                    Two packages
                    (javax.obex and                  Asynchronous
                    javax.bluetooth)                 application start
                                                     (JSR118) - initially
                                     Javax.obex      not supported
javax.microedition.io




                                   javax.bluetooth
JSR82 Overview

                                                                          Manage and control
                                                  Device Management             connections
Device Discovery                       <<uses>>
Ser vice Discovery
                          discovery
Ser vice Registration


                                      <<uses>>


                                                     Connection       Establishing connections
                                                                             Using connections
Clients and Ser vers
Clients typically...
                                        Discover Devices

                Use Ser vice Discovery Protocol to query remote SDDB for ser vices

                               Connect and use required service(s)

                                    Disconnect when ïŹnished


Servers typically...
                                     Create a Service Record
                         Add Ser vice Record to Service Record Database
                                      Wait for connections
                           Accept and process incoming connections
                    Update Ser vice Record when/if changes to the ser vices
                De-register or disable Service Record when it’s no longer needed


May be both client and server....
Discovery : LocalDevice
                                                                                                                         javax.bluetooth::LocalDevice

                                                                                                      discoveryAgent:DiscoveryAgent
                                                                                                      localDevice:LocalDevice
                                                                                                      LocalDevice(...)
                                                                                                      getBluetoothAddress(...)
                                                                                                      getDeviceClass(...)
                                                                                                      getDiscoverable(...)
                                                                                                      getDiscoveryAgent(...)
                                                                                                      getFriendlyName(...)
                                                                                                      getLocalDevice(...)
                                                                                                      getProperty(...)
    /**                                                                                               getRecord(...)
                                                                                                      setDiscoverable(...)
     * Initialize                                                                                     updateRecord(...)
     */

    public void btInit() throws BluetoothStateException {
        localDevice = null;
        discoveryAgent = null;

            // Retrieve the local device to get to the Bluetooth Manager
            localDevice = LocalDevice.getLocalDevice();

            // Clients retrieve the discovery agent
            discoveryAgent = localDevice.getDiscoveryAgent();
    }

Source: C. Enrique Ortiz - Using the Java APIs for Bluetooth, Part 2: Putting the Core APIs to Work
Discovery
DiscoveryAgent class used for both Device
and Ser vice Discovery
startInquiry() - non-blocking
  specify a listener for the callbacks
retrieveDevices() - blocking
  returns information about pre-known
  devices (devices previously discovered)
Discovery
             javax.bluetooth::DiscoveryListener

INQUIRY_COMPLETED: int
INQUIRY_ERROR: int
INQUIRY_TERMINATED: int
SERVICES_SEARCH_COMPLETED: int
SERVICES_SEARCH_DEVICE_NOT_REACHABLE: int
SERVICES_SEARCH_ERROR: int
SERVICES_SEARCH_NO_RECORDS: int
SERVICES_SEARCH_TERMINATED: int
deviceDiscovered(...)
inquiryCompleted(...)
servicesDiscovered(...)
servicesSearchCompleted(...)


                              implements



                         Client            1          1                                              Initiate and
                                               uses             javax.bluetooth::DiscoveryAgent     Cancel device
                                                                                                      discovery
                                                          CACHEC: int
                                                          GIAC:int
                                                          LIAC:int
                                                          NOT_DISCOVERABLE:int
                                                          PREKNOWN:int
                                                          DiscoveryAgent(...)
                                                          cancelInquiry(...)                         Callbacks on
                                                          cancelServiceSearch(...)                DiscoveryListener
                                                          retrieveDevices(...)                     methods during
                                                          searchServices(...)                          inquiry
                                                          selectServices(...)
                                                          startInquiry(...)
Service Discovery

Search for services of a particular class
Retrieve service attributes of a service
Get services and their attributes in one go
Stop a ser vice search in progress
Connections
Based on GCF; Represented by L2CAPConnection
and StreamConnection types
Bluetooth Connections created using GCF
connection factory:
javax.microedition.io.Connector.open()


   parameter = connectionURL
btl2cap://hostname [PSM | UUID]; parameters
btspp://hostname [CN | UUID]; parameters

   hostname either localhost (server) or
   BTAddr
Connections
              ...
              // Bluetooth Service name
              private static final String myServiceName = quot;MyBtServicequot;;
              // Bluetooth Service UUID of interest
              private static final String myServiceUUID = quot;2d26618601fb47c28d9f10b8ec891363quot;;
              private UUID MYSERVICEUUID_UUID = new UUID(myServiceUUID, false);
              ...
              // Define the server connection URL
              String connURL = quot;btspp://localhost:quot;+MYSERVICEUUID_UUID.toString()
              +quot;;quot;+name=quot;+myServiceName;
              ...
              // Create a server connection (a notifier)
              StreamConnectionNotifier scn = (StreamConnectionNotifier) Connector.open(connURL);
              ...
              // Accept a new client connection
              StreamConnection sc = scn.acceptAndOpen();
              ...




Source: C. Enrique Ortiz - Using the Java APIs for Bluetooth, Part 2: Putting the Core APIs to Work
Connections
       ...
       // Given a service of interest, get its service record
       ServiceRecord sr = (ServiceRecord)discoveredServices.elementAt(i);
       // Then get the service's connection URL
       String connURL = sr.getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);
       // Open connection
       StreamConnection sc = (StreamConnection) Connector.open(connURL);
       ...




Source: C. Enrique Ortiz - Using the Java APIs for Bluetooth, Part 2: Putting the Core APIs to Work
Wait for a connection
   ...
   // Wait for client connection
   StreamConnection conn = streamConnectionNotifier.acceptAndOpen();
   // New client connection accepted; get a handle on it
   RemoteDevice rd = RemoteDevice.getRemoteDevice(conn);
   System.out.println(quot;New client connection... quot; +
       rd.getFriendlyName(false));
   // Read input message, in this example a String
   DataInputStream dataIn = conn.openDataInputStream();
   String s = dataIn.readUTF();
   // Pass received message to incoming message listener
   ...



Source: C. Enrique Ortiz - Using the Java APIs for Bluetooth, Part 2: Putting the Core APIs to Work
Push Registry
Net work and timer-initiated midlet
activation
Inbound net work connection or timer-
based alarm can wake a midlet
midlet can register with Push Registry,
statically or dynamically
Example Use case: Health Care Monitor
Power Management
If an API is invoked that requires Bluetooth to be powered on, and enabled, then
JSR82

   MUST Notify user

   SHOULD Prompt user to activate

       If user approves, Bluetooth MUST be activated (Powered on, Enabled)

Localdevice.isPowerOn()
                                                                        NOT
                                               RADIO / BT   ENABLED
                                                                      ENABLED


                                                RADIO ON    Proceed   Notify



                                                RADIO OFF   Notify    Notify
BCC Bluetooth Control
          Center
Central authority for certain Bluetooth settings

         MUST provide                            MAY provide
            Device wide security settings            Setting Device Name


                   Known devices                      Baseband timeouts


                   Trusted devices                       Reset device


                 Pairing mechanism             Determining how connectable and
                                                     discoverable are set


        Authorization of connection requests    Enumerating ser vices on device
JSR82 Implementations
   Phones           Dev Kits         OEM
   Nokia              Nokia
  Symbian              Sun
  Motorola           Atinav
  Samsung           Avetana
                                    avelink
Sony Ericsson       BlueCove
                                    jsrsoft
   Sharp             jsrsoft
                                    Rococo
  Siemens            Harald
    BenQ        javabluetooth.org
    QTek             Rococo
     HTC
Rococo’s Approach
Support JSR82 from inception
Offer tools to developers
  Simulator
  DevKit
Offer implementation(s) to Equipment
Manufacturers
  Initial interest: handset manufacturers
JSR82 Bluetooth
   Simulator
Current status of the
  JSR82 standard
Now at JSR82 1.1
1.1 brought
 Tidy ups
 PushRegistry
Evolution of Bluetooth
Bluetooth SIG has been “busy” :-)
Embrace and Extend philosophy on short
range wireless standards
Some recent developments
  WiBree and ULP
  NFC
  UWB
  BECI
WiBree and ULP
Nokia started working on low power
technology in 2001 (WiBree)
Idea was to address really low-power,
embedded connectivity scenarios
Watches, sensors, wearables
Successfully created the standard and
garnered industry participation
Merged in to Bluetooth 2007 - known for
now as ULP
Market potential - ULP




              One connection within 50m every minute for three years on a single button cell battery
                     ....within 5m every second for three years on a single button cell battery
Source:. Nick Hunn, EZurio, Bluetooth Evolution conference Nov 2007
ULP Scenarios
Ultra Wideband
UWB in Bluetooth
Ultra Wideband
UWB usage

HD Video (19 to 24 Mbps HD MPEG2); 18Gb
2 hour movie
up/download in 7 minutes ; 1% battery
1 CD Album (10 MP3s) - 1 second
20 Hi rez photos - 1 second
BECI
Bluetooth Embedded Control Interface
Standardise an interface above the level
of Bluetooth ProïŹles
Remove/reduce stack dependency
Focus: embedded / automotive markets
Potential for re-use in JSR82
Bluetooth Evolution
Lots of new stuff going in to Bluetooth
Standard
Java APIs may be needed to take
advantage of the new functionality
Bluetooth is moving from Phones (highest
volume) to Set Top Boxes, Cars, Copiers,
Printers, Medical Devices, .....
Lots of places where Java also lives :-)
Java and Bluetooth
            Bluetooth                      Java
            in devices                  in devices
                Home                    Industrial / M2M
               Gateway
Headsets
                                                   Medical
           Sensors             Phones

Printers                                STBs
            Industrial / M2M                             Home
                                                        Gateway
                         Cars / OSGi    Printers
JSR82 could do with
     either...
A major update to track Bluetooth
Evolution

             OR


A Brand new standard that builds on
JSR82
Issues - Current JSR82
 Learning curve is still high
 Piconets, Ser vices, Protocols, ProïŹles,
 Security
 Writing your own helper code every time:
 e.g. Device Discovers and Ser vice
 Searchers
 e.g. Marge Project
 https://marge.dev.java.net/
Enhancements
Housekeeping/Admin APIs
 As per Marge
 Better abstractions for ease of use
 Audio
Application SpeciïŹc APIs
 Gaming, Automotive, Location, Medical
 UWB and Low-Power Scenarios
Android
Conclusions
JSR82 is now “hitting its stride in terms
of usage and deployment
Excellent potential for follow-on standard
 Either JSR82++
 or a new standard that builds on it...
Rococo will propose such a standard in ’08
 Interested? Email me:
 sos@rococosoft.com

Weitere Àhnliche Inhalte

Was ist angesagt?

Cbaa Ip Workshop
Cbaa Ip WorkshopCbaa Ip Workshop
Cbaa Ip Workshopcbaacomms
 
Ericsson Connected Home Solution
Ericsson Connected Home SolutionEricsson Connected Home Solution
Ericsson Connected Home SolutionEricsson France
 
OLA Conf 2002 - OLA in SoC Design Environment - slides
OLA Conf 2002 - OLA in SoC Design Environment - slidesOLA Conf 2002 - OLA in SoC Design Environment - slides
OLA Conf 2002 - OLA in SoC Design Environment - slidesTim55Ehrler
 
OW2 JOnAS Use CAse, OW2con11, Nov 24-25, Paris
OW2 JOnAS Use CAse, OW2con11, Nov 24-25, ParisOW2 JOnAS Use CAse, OW2con11, Nov 24-25, Paris
OW2 JOnAS Use CAse, OW2con11, Nov 24-25, ParisOW2
 
VoIP - Technology To Business Models
VoIP - Technology To Business ModelsVoIP - Technology To Business Models
VoIP - Technology To Business Modelsguesta5f2fb
 
Cyber security2012 hybrid-hardware-software
Cyber security2012 hybrid-hardware-softwareCyber security2012 hybrid-hardware-software
Cyber security2012 hybrid-hardware-softwaretelesoft_tech
 
How To Disrupt The Internet of Things With Unified Networking
How To Disrupt The Internet of Things With Unified NetworkingHow To Disrupt The Internet of Things With Unified Networking
How To Disrupt The Internet of Things With Unified NetworkingHaystack Technologies
 
Research and Experimentation of LoRa in Heavy Multipath
Research and Experimentation of LoRa in Heavy MultipathResearch and Experimentation of LoRa in Heavy Multipath
Research and Experimentation of LoRa in Heavy MultipathHaystack Technologies
 
LoRaWAN class module and subsystem
LoRaWAN class module and subsystemLoRaWAN class module and subsystem
LoRaWAN class module and subsystemJian-Hong Pan
 
Future Signaling Protocols What’s New in IETF
Future Signaling Protocols What’s New in IETFFuture Signaling Protocols What’s New in IETF
Future Signaling Protocols What’s New in IETFJohn Loughney
 
What is Bluetooth Smart? - Technical Version
What is Bluetooth Smart? - Technical VersionWhat is Bluetooth Smart? - Technical Version
What is Bluetooth Smart? - Technical VersionValensas
 
Timothy J Cash Career Portfolio
Timothy J Cash Career PortfolioTimothy J Cash Career Portfolio
Timothy J Cash Career PortfolioTimothy Cash
 
LPWAN Technology ~ What is Weightless-P?
LPWAN Technology ~ What is Weightless-P? LPWAN Technology ~ What is Weightless-P?
LPWAN Technology ~ What is Weightless-P? Jay Wey é­ćŁ«ć‚‘
 

Was ist angesagt? (20)

Cbaa Ip Workshop
Cbaa Ip WorkshopCbaa Ip Workshop
Cbaa Ip Workshop
 
Ericsson Connected Home Solution
Ericsson Connected Home SolutionEricsson Connected Home Solution
Ericsson Connected Home Solution
 
OLA Conf 2002 - OLA in SoC Design Environment - slides
OLA Conf 2002 - OLA in SoC Design Environment - slidesOLA Conf 2002 - OLA in SoC Design Environment - slides
OLA Conf 2002 - OLA in SoC Design Environment - slides
 
Sakar jain
Sakar jainSakar jain
Sakar jain
 
L018218184
L018218184L018218184
L018218184
 
OW2 JOnAS Use CAse, OW2con11, Nov 24-25, Paris
OW2 JOnAS Use CAse, OW2con11, Nov 24-25, ParisOW2 JOnAS Use CAse, OW2con11, Nov 24-25, Paris
OW2 JOnAS Use CAse, OW2con11, Nov 24-25, Paris
 
VoIP - Technology To Business Models
VoIP - Technology To Business ModelsVoIP - Technology To Business Models
VoIP - Technology To Business Models
 
Cyber security2012 hybrid-hardware-software
Cyber security2012 hybrid-hardware-softwareCyber security2012 hybrid-hardware-software
Cyber security2012 hybrid-hardware-software
 
How To Disrupt The Internet of Things With Unified Networking
How To Disrupt The Internet of Things With Unified NetworkingHow To Disrupt The Internet of Things With Unified Networking
How To Disrupt The Internet of Things With Unified Networking
 
Research and Experimentation of LoRa in Heavy Multipath
Research and Experimentation of LoRa in Heavy MultipathResearch and Experimentation of LoRa in Heavy Multipath
Research and Experimentation of LoRa in Heavy Multipath
 
R43019698
R43019698R43019698
R43019698
 
Matrix setu ata vs linksys spa3102
Matrix  setu ata vs linksys spa3102Matrix  setu ata vs linksys spa3102
Matrix setu ata vs linksys spa3102
 
LoRaWAN class module and subsystem
LoRaWAN class module and subsystemLoRaWAN class module and subsystem
LoRaWAN class module and subsystem
 
Future Signaling Protocols What’s New in IETF
Future Signaling Protocols What’s New in IETFFuture Signaling Protocols What’s New in IETF
Future Signaling Protocols What’s New in IETF
 
Kalyani_Resume_latest
Kalyani_Resume_latestKalyani_Resume_latest
Kalyani_Resume_latest
 
What is Bluetooth Smart? - Technical Version
What is Bluetooth Smart? - Technical VersionWhat is Bluetooth Smart? - Technical Version
What is Bluetooth Smart? - Technical Version
 
LoRaWAN vs Haystack
LoRaWAN vs HaystackLoRaWAN vs Haystack
LoRaWAN vs Haystack
 
Timothy J Cash Career Portfolio
Timothy J Cash Career PortfolioTimothy J Cash Career Portfolio
Timothy J Cash Career Portfolio
 
Comparação Grandstream
Comparação GrandstreamComparação Grandstream
Comparação Grandstream
 
LPWAN Technology ~ What is Weightless-P?
LPWAN Technology ~ What is Weightless-P? LPWAN Technology ~ What is Weightless-P?
LPWAN Technology ~ What is Weightless-P?
 

Ähnlich wie JSR82: Past, Present and Future

Voice Quality Metrics in VoIP
Voice Quality Metrics in VoIPVoice Quality Metrics in VoIP
Voice Quality Metrics in VoIPFraj Alshahibi
 
WebRTC Standards from Tim Panton
WebRTC Standards from Tim PantonWebRTC Standards from Tim Panton
WebRTC Standards from Tim PantonAlan Quayle
 
Seaside Status Message
Seaside Status MessageSeaside Status Message
Seaside Status MessageLukas Renggli
 
Seaside News
Seaside NewsSeaside News
Seaside NewsESUG
 
Are ott the new walled gardens
Are ott the new walled gardensAre ott the new walled gardens
Are ott the new walled gardensAmir Zmora
 
JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st CenturyGnu Alsonative
 
JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st CenturyGnu Alsonative
 
VoIP Connectivity Table
VoIP Connectivity TableVoIP Connectivity Table
VoIP Connectivity TableBraun Mincher
 
Universal software defined radio development platform
Universal software defined radio development platformUniversal software defined radio development platform
Universal software defined radio development platformBertalan EGED
 
Acme Packet Presentation Materials for VUC June 18th 2010
Acme Packet Presentation Materials for VUC June 18th 2010Acme Packet Presentation Materials for VUC June 18th 2010
Acme Packet Presentation Materials for VUC June 18th 2010Michael Graves
 
Rococo Software Q409
Rococo Software Q409Rococo Software Q409
Rococo Software Q409Sean O'Sullivan
 
Spirit20090924poly
Spirit20090924polySpirit20090924poly
Spirit20090924polyGary Dare
 
Jawdat NGN IDNOG v1.0 public
Jawdat NGN IDNOG v1.0 publicJawdat NGN IDNOG v1.0 public
Jawdat NGN IDNOG v1.0 publicHimawan Nugroho
 
JAWDAT NGN IDNOG v1.0 (public)[COPY]
JAWDAT NGN IDNOG v1.0 (public)[COPY]JAWDAT NGN IDNOG v1.0 (public)[COPY]
JAWDAT NGN IDNOG v1.0 (public)[COPY]Mahadiputra S
 
03 (IDNOG01) NGN Next Generation Networks by Himawan Nugroho
03 (IDNOG01) NGN Next Generation Networks by Himawan Nugroho03 (IDNOG01) NGN Next Generation Networks by Himawan Nugroho
03 (IDNOG01) NGN Next Generation Networks by Himawan NugrohoIndonesia Network Operators Group
 
VoIP - seminar at IASRI, New Delhi
VoIP - seminar at IASRI, New DelhiVoIP - seminar at IASRI, New Delhi
VoIP - seminar at IASRI, New DelhiNishikant Taksande
 
SuperConnectivity: One company’s heroic mission to deliver on the promises of...
SuperConnectivity: One company’s heroic mission to deliver on the promises of...SuperConnectivity: One company’s heroic mission to deliver on the promises of...
SuperConnectivity: One company’s heroic mission to deliver on the promises of...4DK Technologies, Inc.
 
Customized IVR Implementation Using Voicexml on SIP (Voip) Communication Plat...
Customized IVR Implementation Using Voicexml on SIP (Voip) Communication Plat...Customized IVR Implementation Using Voicexml on SIP (Voip) Communication Plat...
Customized IVR Implementation Using Voicexml on SIP (Voip) Communication Plat...IJMER
 

Ähnlich wie JSR82: Past, Present and Future (20)

Voice Quality Metrics in VoIP
Voice Quality Metrics in VoIPVoice Quality Metrics in VoIP
Voice Quality Metrics in VoIP
 
Bluetooth
BluetoothBluetooth
Bluetooth
 
WebRTC Standards from Tim Panton
WebRTC Standards from Tim PantonWebRTC Standards from Tim Panton
WebRTC Standards from Tim Panton
 
Seaside Status Message
Seaside Status MessageSeaside Status Message
Seaside Status Message
 
Seaside News
Seaside NewsSeaside News
Seaside News
 
Are ott the new walled gardens
Are ott the new walled gardensAre ott the new walled gardens
Are ott the new walled gardens
 
JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st Century
 
JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st Century
 
VoIP Connectivity Table
VoIP Connectivity TableVoIP Connectivity Table
VoIP Connectivity Table
 
Universal software defined radio development platform
Universal software defined radio development platformUniversal software defined radio development platform
Universal software defined radio development platform
 
Acme Packet Presentation Materials for VUC June 18th 2010
Acme Packet Presentation Materials for VUC June 18th 2010Acme Packet Presentation Materials for VUC June 18th 2010
Acme Packet Presentation Materials for VUC June 18th 2010
 
Rococo Software Q409
Rococo Software Q409Rococo Software Q409
Rococo Software Q409
 
Spirit20090924poly
Spirit20090924polySpirit20090924poly
Spirit20090924poly
 
NFV SDN for carriers
NFV SDN for carriersNFV SDN for carriers
NFV SDN for carriers
 
Jawdat NGN IDNOG v1.0 public
Jawdat NGN IDNOG v1.0 publicJawdat NGN IDNOG v1.0 public
Jawdat NGN IDNOG v1.0 public
 
JAWDAT NGN IDNOG v1.0 (public)[COPY]
JAWDAT NGN IDNOG v1.0 (public)[COPY]JAWDAT NGN IDNOG v1.0 (public)[COPY]
JAWDAT NGN IDNOG v1.0 (public)[COPY]
 
03 (IDNOG01) NGN Next Generation Networks by Himawan Nugroho
03 (IDNOG01) NGN Next Generation Networks by Himawan Nugroho03 (IDNOG01) NGN Next Generation Networks by Himawan Nugroho
03 (IDNOG01) NGN Next Generation Networks by Himawan Nugroho
 
VoIP - seminar at IASRI, New Delhi
VoIP - seminar at IASRI, New DelhiVoIP - seminar at IASRI, New Delhi
VoIP - seminar at IASRI, New Delhi
 
SuperConnectivity: One company’s heroic mission to deliver on the promises of...
SuperConnectivity: One company’s heroic mission to deliver on the promises of...SuperConnectivity: One company’s heroic mission to deliver on the promises of...
SuperConnectivity: One company’s heroic mission to deliver on the promises of...
 
Customized IVR Implementation Using Voicexml on SIP (Voip) Communication Plat...
Customized IVR Implementation Using Voicexml on SIP (Voip) Communication Plat...Customized IVR Implementation Using Voicexml on SIP (Voip) Communication Plat...
Customized IVR Implementation Using Voicexml on SIP (Voip) Communication Plat...
 

Mehr von Sean O'Sullivan

Effective Software : Distributed Engineering Team in Europe
Effective Software : Distributed Engineering Team in EuropeEffective Software : Distributed Engineering Team in Europe
Effective Software : Distributed Engineering Team in EuropeSean O'Sullivan
 
Beacosystem Talk @ MongoDB User Group Dublin @sos100
Beacosystem Talk @ MongoDB User Group Dublin @sos100Beacosystem Talk @ MongoDB User Group Dublin @sos100
Beacosystem Talk @ MongoDB User Group Dublin @sos100Sean O'Sullivan
 
Hardware is cool again
Hardware is cool againHardware is cool again
Hardware is cool againSean O'Sullivan
 
Hardware is Cool (again)
Hardware is Cool (again)Hardware is Cool (again)
Hardware is Cool (again)Sean O'Sullivan
 
Beacosystem Tour for GDG Dublin - Sean O Sullivan
Beacosystem Tour for GDG Dublin - Sean O Sullivan Beacosystem Tour for GDG Dublin - Sean O Sullivan
Beacosystem Tour for GDG Dublin - Sean O Sullivan Sean O'Sullivan
 
LocalSocial XCake iBeacon Slides Q3 2015
LocalSocial XCake iBeacon Slides Q3 2015LocalSocial XCake iBeacon Slides Q3 2015
LocalSocial XCake iBeacon Slides Q3 2015Sean O'Sullivan
 
LocalSocial O Reilly Webcast Slides - A Tour of the Beacosystem
LocalSocial O Reilly Webcast Slides - A Tour of the BeacosystemLocalSocial O Reilly Webcast Slides - A Tour of the Beacosystem
LocalSocial O Reilly Webcast Slides - A Tour of the BeacosystemSean O'Sullivan
 
LocalSocial Getting Started Guide
LocalSocial Getting Started GuideLocalSocial Getting Started Guide
LocalSocial Getting Started GuideSean O'Sullivan
 
Proximity and In-Store Engagement for the Digital Marketing Institute
Proximity and In-Store Engagement for the Digital Marketing InstituteProximity and In-Store Engagement for the Digital Marketing Institute
Proximity and In-Store Engagement for the Digital Marketing InstituteSean O'Sullivan
 
LocalSocial @ AppsWorld
LocalSocial @ AppsWorldLocalSocial @ AppsWorld
LocalSocial @ AppsWorldSean O'Sullivan
 
LocalSocial : Beacosystem Overview
LocalSocial : Beacosystem OverviewLocalSocial : Beacosystem Overview
LocalSocial : Beacosystem OverviewSean O'Sullivan
 
Real Estate, Property and iBeacon
Real Estate, Property and iBeaconReal Estate, Property and iBeacon
Real Estate, Property and iBeaconSean O'Sullivan
 
Indoor Location / iBeacon @ Digital Summit Ireland by LocalSocial
Indoor Location / iBeacon @ Digital Summit Ireland by LocalSocialIndoor Location / iBeacon @ Digital Summit Ireland by LocalSocial
Indoor Location / iBeacon @ Digital Summit Ireland by LocalSocialSean O'Sullivan
 
LocalSocial Bluetooth Webinar
LocalSocial Bluetooth WebinarLocalSocial Bluetooth Webinar
LocalSocial Bluetooth WebinarSean O'Sullivan
 
LocalSocial - Indoor Location Positioning Overview
LocalSocial - Indoor Location Positioning OverviewLocalSocial - Indoor Location Positioning Overview
LocalSocial - Indoor Location Positioning OverviewSean O'Sullivan
 
LocalSocial : In-store engagement platform
LocalSocial : In-store engagement platformLocalSocial : In-store engagement platform
LocalSocial : In-store engagement platformSean O'Sullivan
 
Beyond The Check-In
Beyond The Check-InBeyond The Check-In
Beyond The Check-InSean O'Sullivan
 
LocalSocial App Overview
LocalSocial App OverviewLocalSocial App Overview
LocalSocial App OverviewSean O'Sullivan
 
LocalSocial Smart Mobile Marketing
LocalSocial Smart Mobile MarketingLocalSocial Smart Mobile Marketing
LocalSocial Smart Mobile MarketingSean O'Sullivan
 

Mehr von Sean O'Sullivan (20)

Effective Software : Distributed Engineering Team in Europe
Effective Software : Distributed Engineering Team in EuropeEffective Software : Distributed Engineering Team in Europe
Effective Software : Distributed Engineering Team in Europe
 
Beacosystem Talk @ MongoDB User Group Dublin @sos100
Beacosystem Talk @ MongoDB User Group Dublin @sos100Beacosystem Talk @ MongoDB User Group Dublin @sos100
Beacosystem Talk @ MongoDB User Group Dublin @sos100
 
Hardware is cool again
Hardware is cool againHardware is cool again
Hardware is cool again
 
Hardware is Cool (again)
Hardware is Cool (again)Hardware is Cool (again)
Hardware is Cool (again)
 
Beacosystem Tour for GDG Dublin - Sean O Sullivan
Beacosystem Tour for GDG Dublin - Sean O Sullivan Beacosystem Tour for GDG Dublin - Sean O Sullivan
Beacosystem Tour for GDG Dublin - Sean O Sullivan
 
LocalSocial XCake iBeacon Slides Q3 2015
LocalSocial XCake iBeacon Slides Q3 2015LocalSocial XCake iBeacon Slides Q3 2015
LocalSocial XCake iBeacon Slides Q3 2015
 
LocalSocial O Reilly Webcast Slides - A Tour of the Beacosystem
LocalSocial O Reilly Webcast Slides - A Tour of the BeacosystemLocalSocial O Reilly Webcast Slides - A Tour of the Beacosystem
LocalSocial O Reilly Webcast Slides - A Tour of the Beacosystem
 
LocalSocial Getting Started Guide
LocalSocial Getting Started GuideLocalSocial Getting Started Guide
LocalSocial Getting Started Guide
 
Proximity and In-Store Engagement for the Digital Marketing Institute
Proximity and In-Store Engagement for the Digital Marketing InstituteProximity and In-Store Engagement for the Digital Marketing Institute
Proximity and In-Store Engagement for the Digital Marketing Institute
 
Beacosystem V3
Beacosystem V3Beacosystem V3
Beacosystem V3
 
LocalSocial @ AppsWorld
LocalSocial @ AppsWorldLocalSocial @ AppsWorld
LocalSocial @ AppsWorld
 
LocalSocial : Beacosystem Overview
LocalSocial : Beacosystem OverviewLocalSocial : Beacosystem Overview
LocalSocial : Beacosystem Overview
 
Real Estate, Property and iBeacon
Real Estate, Property and iBeaconReal Estate, Property and iBeacon
Real Estate, Property and iBeacon
 
Indoor Location / iBeacon @ Digital Summit Ireland by LocalSocial
Indoor Location / iBeacon @ Digital Summit Ireland by LocalSocialIndoor Location / iBeacon @ Digital Summit Ireland by LocalSocial
Indoor Location / iBeacon @ Digital Summit Ireland by LocalSocial
 
LocalSocial Bluetooth Webinar
LocalSocial Bluetooth WebinarLocalSocial Bluetooth Webinar
LocalSocial Bluetooth Webinar
 
LocalSocial - Indoor Location Positioning Overview
LocalSocial - Indoor Location Positioning OverviewLocalSocial - Indoor Location Positioning Overview
LocalSocial - Indoor Location Positioning Overview
 
LocalSocial : In-store engagement platform
LocalSocial : In-store engagement platformLocalSocial : In-store engagement platform
LocalSocial : In-store engagement platform
 
Beyond The Check-In
Beyond The Check-InBeyond The Check-In
Beyond The Check-In
 
LocalSocial App Overview
LocalSocial App OverviewLocalSocial App Overview
LocalSocial App Overview
 
LocalSocial Smart Mobile Marketing
LocalSocial Smart Mobile MarketingLocalSocial Smart Mobile Marketing
LocalSocial Smart Mobile Marketing
 

KĂŒrzlich hochgeladen

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

KĂŒrzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

JSR82: Past, Present and Future

  • 1. JSR82 Past, Present and Future for Java/Bluetooth APIs Sean O Sullivan, CTO, Rococo Soft ware sos@rococosoft.com
  • 2. Over view Introduction Bluetooth background JSR82 - Java Bluetooth APIs Bluetooth Evolution Next steps for JSR82
  • 3. Rococo Soft ware company based in Dublin, Ireland Specialists in Java/Bluetooth since 2000 Sell tools and handset/embedded soft ware 100M+ units shipped
  • 4. Bluetooth Short Range Wireless 1m - 100m “cable replacement” Ad-hoc Piconets
  • 5. Bluetooth Design Goals Short range Low Power Ad Hoc Secure Robust Easy to Use
  • 6. Bluetooth by numbers 1998 64% 7 - 10,000 6-8% 2.0 + EDR 45% 1.8Bn $5 now <$2, even $1 1 - 100mW 1 - 3 Mb/s
  • 7. Where does it go (07)? 70M 500M 80M
  • 8. Bluetooth Architecture UDP TCP Audio IP Bluetooth Stack PPP OBEX Service Discovery RFCOMM Protocol Logical Link Control and Adaptation Protocol Host Controller Interface Host Controller Interface Firmware Bluetooth Host Link manager Protocol Controller Baseband and Baseband Link Controller Firmware Bluetooth Radio
  • 9. Bluetooth ProïŹles Generic Access ProïŹle SDAP TCS Bin based proïŹles Intercom ProïŹle Cordless Phone Serial Port ProïŹle Generic Object Exchange Dial Up Networking ProïŹle File Transfer Fax ProïŹle Object Push Headset ProïŹle Synchronisation LAN Access ProïŹle
  • 10. Bluetooth and APIs Bluetooth’s dirty little secret Well ok, it’s not really a secret.....and it’s not that dirty No Common API for Bluetooth Stacks deïŹned as part of the Bluetooth standard Why not? Stacks were a pretty competitive area in the early days of Bluetooth Can create development issues
  • 11. JSR82 aka JABWT Provide Java APIs for ProïŹles supported : common Bluetooth GAP, SDAP, SPP, GOEP, functionality L2CAP, RFCOMM, SDP, OBEX Started Oct ‘00, completed March ’02 Generic Access ProïŹle SDAP TCS Bin based proïŹles Chaired by Motorola; Intercom ProïŹle Cordless Phone other members Serial Port ProïŹle Generic Object Exchange Dial Up Networking ProïŹle included Rococo, Fax ProïŹle File Transfer Nokia, Ericsson, Headset ProïŹle Object Push Mitsubishi, Extended Synchronisation LAN Access ProïŹle Systems and more
  • 12. JSR82 - Timeline JSR82 Expert Group formed JSR82 1.0 Review JSR82 1.1 JSR82 Main standards work Maintenance review 2000 2001 2002 2003 2004 2005 2006 2007 Impronto DevKit 1.1 1.2 1.3 1.4 1.0 Rococo Impronto 1.1 1.2 1.3 Simulator 1.0 Impronto TLK
  • 13. JSR82 Overview Application JSR82 APIs OBEX Service Discovery RFCOMM Protocol Logical Link Control and Adaptation Protocol Host Controller Interface Host Controller Interface Firmware Link manager Protocol Baseband Link Controller Bluetooth Radio
  • 14. JSR82 Overview Depends only on CLDC Two TCKs Requires GCF Data-Centric (not voice) Two packages (javax.obex and Asynchronous javax.bluetooth) application start (JSR118) - initially Javax.obex not supported javax.microedition.io javax.bluetooth
  • 15. JSR82 Overview Manage and control Device Management connections Device Discovery <<uses>> Ser vice Discovery discovery Ser vice Registration <<uses>> Connection Establishing connections Using connections
  • 16. Clients and Ser vers Clients typically... Discover Devices Use Ser vice Discovery Protocol to query remote SDDB for ser vices Connect and use required service(s) Disconnect when ïŹnished Servers typically... Create a Service Record Add Ser vice Record to Service Record Database Wait for connections Accept and process incoming connections Update Ser vice Record when/if changes to the ser vices De-register or disable Service Record when it’s no longer needed May be both client and server....
  • 17. Discovery : LocalDevice javax.bluetooth::LocalDevice discoveryAgent:DiscoveryAgent localDevice:LocalDevice LocalDevice(...) getBluetoothAddress(...) getDeviceClass(...) getDiscoverable(...) getDiscoveryAgent(...) getFriendlyName(...) getLocalDevice(...) getProperty(...) /** getRecord(...) setDiscoverable(...) * Initialize updateRecord(...) */ public void btInit() throws BluetoothStateException { localDevice = null; discoveryAgent = null; // Retrieve the local device to get to the Bluetooth Manager localDevice = LocalDevice.getLocalDevice(); // Clients retrieve the discovery agent discoveryAgent = localDevice.getDiscoveryAgent(); } Source: C. Enrique Ortiz - Using the Java APIs for Bluetooth, Part 2: Putting the Core APIs to Work
  • 18. Discovery DiscoveryAgent class used for both Device and Ser vice Discovery startInquiry() - non-blocking specify a listener for the callbacks retrieveDevices() - blocking returns information about pre-known devices (devices previously discovered)
  • 19. Discovery javax.bluetooth::DiscoveryListener INQUIRY_COMPLETED: int INQUIRY_ERROR: int INQUIRY_TERMINATED: int SERVICES_SEARCH_COMPLETED: int SERVICES_SEARCH_DEVICE_NOT_REACHABLE: int SERVICES_SEARCH_ERROR: int SERVICES_SEARCH_NO_RECORDS: int SERVICES_SEARCH_TERMINATED: int deviceDiscovered(...) inquiryCompleted(...) servicesDiscovered(...) servicesSearchCompleted(...) implements Client 1 1 Initiate and uses javax.bluetooth::DiscoveryAgent Cancel device discovery CACHEC: int GIAC:int LIAC:int NOT_DISCOVERABLE:int PREKNOWN:int DiscoveryAgent(...) cancelInquiry(...) Callbacks on cancelServiceSearch(...) DiscoveryListener retrieveDevices(...) methods during searchServices(...) inquiry selectServices(...) startInquiry(...)
  • 20. Service Discovery Search for services of a particular class Retrieve service attributes of a service Get services and their attributes in one go Stop a ser vice search in progress
  • 21. Connections Based on GCF; Represented by L2CAPConnection and StreamConnection types Bluetooth Connections created using GCF connection factory: javax.microedition.io.Connector.open() parameter = connectionURL btl2cap://hostname [PSM | UUID]; parameters btspp://hostname [CN | UUID]; parameters hostname either localhost (server) or BTAddr
  • 22. Connections ... // Bluetooth Service name private static final String myServiceName = quot;MyBtServicequot;; // Bluetooth Service UUID of interest private static final String myServiceUUID = quot;2d26618601fb47c28d9f10b8ec891363quot;; private UUID MYSERVICEUUID_UUID = new UUID(myServiceUUID, false); ... // Define the server connection URL String connURL = quot;btspp://localhost:quot;+MYSERVICEUUID_UUID.toString() +quot;;quot;+name=quot;+myServiceName; ... // Create a server connection (a notifier) StreamConnectionNotifier scn = (StreamConnectionNotifier) Connector.open(connURL); ... // Accept a new client connection StreamConnection sc = scn.acceptAndOpen(); ... Source: C. Enrique Ortiz - Using the Java APIs for Bluetooth, Part 2: Putting the Core APIs to Work
  • 23. Connections ... // Given a service of interest, get its service record ServiceRecord sr = (ServiceRecord)discoveredServices.elementAt(i); // Then get the service's connection URL String connURL = sr.getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false); // Open connection StreamConnection sc = (StreamConnection) Connector.open(connURL); ... Source: C. Enrique Ortiz - Using the Java APIs for Bluetooth, Part 2: Putting the Core APIs to Work
  • 24. Wait for a connection ... // Wait for client connection StreamConnection conn = streamConnectionNotifier.acceptAndOpen(); // New client connection accepted; get a handle on it RemoteDevice rd = RemoteDevice.getRemoteDevice(conn); System.out.println(quot;New client connection... quot; + rd.getFriendlyName(false)); // Read input message, in this example a String DataInputStream dataIn = conn.openDataInputStream(); String s = dataIn.readUTF(); // Pass received message to incoming message listener ... Source: C. Enrique Ortiz - Using the Java APIs for Bluetooth, Part 2: Putting the Core APIs to Work
  • 25. Push Registry Net work and timer-initiated midlet activation Inbound net work connection or timer- based alarm can wake a midlet midlet can register with Push Registry, statically or dynamically Example Use case: Health Care Monitor
  • 26. Power Management If an API is invoked that requires Bluetooth to be powered on, and enabled, then JSR82 MUST Notify user SHOULD Prompt user to activate If user approves, Bluetooth MUST be activated (Powered on, Enabled) Localdevice.isPowerOn() NOT RADIO / BT ENABLED ENABLED RADIO ON Proceed Notify RADIO OFF Notify Notify
  • 27. BCC Bluetooth Control Center Central authority for certain Bluetooth settings MUST provide MAY provide Device wide security settings Setting Device Name Known devices Baseband timeouts Trusted devices Reset device Pairing mechanism Determining how connectable and discoverable are set Authorization of connection requests Enumerating ser vices on device
  • 28. JSR82 Implementations Phones Dev Kits OEM Nokia Nokia Symbian Sun Motorola Atinav Samsung Avetana avelink Sony Ericsson BlueCove jsrsoft Sharp jsrsoft Rococo Siemens Harald BenQ javabluetooth.org QTek Rococo HTC
  • 29. Rococo’s Approach Support JSR82 from inception Offer tools to developers Simulator DevKit Offer implementation(s) to Equipment Manufacturers Initial interest: handset manufacturers
  • 30. JSR82 Bluetooth Simulator
  • 31. Current status of the JSR82 standard Now at JSR82 1.1 1.1 brought Tidy ups PushRegistry
  • 32. Evolution of Bluetooth Bluetooth SIG has been “busy” :-) Embrace and Extend philosophy on short range wireless standards Some recent developments WiBree and ULP NFC UWB BECI
  • 33.
  • 34. WiBree and ULP Nokia started working on low power technology in 2001 (WiBree) Idea was to address really low-power, embedded connectivity scenarios Watches, sensors, wearables Successfully created the standard and garnered industry participation Merged in to Bluetooth 2007 - known for now as ULP
  • 35. Market potential - ULP One connection within 50m every minute for three years on a single button cell battery ....within 5m every second for three years on a single button cell battery Source:. Nick Hunn, EZurio, Bluetooth Evolution conference Nov 2007
  • 40. UWB usage HD Video (19 to 24 Mbps HD MPEG2); 18Gb 2 hour movie up/download in 7 minutes ; 1% battery 1 CD Album (10 MP3s) - 1 second 20 Hi rez photos - 1 second
  • 41. BECI Bluetooth Embedded Control Interface Standardise an interface above the level of Bluetooth ProïŹles Remove/reduce stack dependency Focus: embedded / automotive markets Potential for re-use in JSR82
  • 42. Bluetooth Evolution Lots of new stuff going in to Bluetooth Standard Java APIs may be needed to take advantage of the new functionality Bluetooth is moving from Phones (highest volume) to Set Top Boxes, Cars, Copiers, Printers, Medical Devices, ..... Lots of places where Java also lives :-)
  • 43. Java and Bluetooth Bluetooth Java in devices in devices Home Industrial / M2M Gateway Headsets Medical Sensors Phones Printers STBs Industrial / M2M Home Gateway Cars / OSGi Printers
  • 44. JSR82 could do with either... A major update to track Bluetooth Evolution OR A Brand new standard that builds on JSR82
  • 45. Issues - Current JSR82 Learning curve is still high Piconets, Ser vices, Protocols, ProïŹles, Security Writing your own helper code every time: e.g. Device Discovers and Ser vice Searchers e.g. Marge Project https://marge.dev.java.net/
  • 46. Enhancements Housekeeping/Admin APIs As per Marge Better abstractions for ease of use Audio Application SpeciïŹc APIs Gaming, Automotive, Location, Medical UWB and Low-Power Scenarios
  • 48. Conclusions JSR82 is now “hitting its stride in terms of usage and deployment Excellent potential for follow-on standard Either JSR82++ or a new standard that builds on it... Rococo will propose such a standard in ’08 Interested? Email me: sos@rococosoft.com