180 likes | 214 Views
Patterns in Bluetooth. Aniruddha Gokhale agokhale@lucent.com Bell Labs Research, Lucent Technologies Murray Hill, NJ, USA. Overview of Patterns .
E N D
Patterns in Bluetooth Aniruddha Gokhale agokhale@lucent.com Bell Labs Research, Lucent Technologies Murray Hill, NJ, USA
Overview of Patterns Patterns codify expert knowledge to help generate software architectures by capturing recurring structures & dynamics and resolving common design forces www.posa.uci.edu/ Design patterns capture the static & dynamic roles & relationships in solutions that occur repeatedly Architectural patterns express a fundamental structural organization for software systems that provide a set of predefined subsystems, specify their relationships, & include the rules and guidelines for organizing the relationships between them Optimization principle patterns document rules for avoiding common design & implementation mistakes that degrade performance
Overview of Bluetooth • www.bluetooth.com • De facto standard for low-cost, short range radio links between mobile devices • Formed by a consortium of telecommunications • Goal is to eliminate the need for cable connectivity and promote full scale ad hoc networking • Operates in the unlicensed ISM band at 2.4 GHz Primary components include a radio unit, a link control unit, and a support unit for link management and host-terminal interface
Layers Pattern Intent Helps to structure applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction Forces Tasks independent of each other need to be decoupled Bluetooth Usage Defines a protocol stack Known Uses OSI Seven Layers, STREAMS
Bluetooth Protocol Stack • Link Manager Protocol (LMP) • Used for link setup, security, and control • Baseband Specification • Short range radio link • Uses slotted channel • channels point-to-point or point-to-multipoint • Supports both circuit-switched (SCO - synchronous connection-oriented) and packet-switched (ACL - asynchronous connectionless) links. • Radio Specification • 2.4 GHz ISM band (2,400-2,483.5 MHz) • Channels spaced 1MHz apart • Gaussian FSK modulation
Bluetooth Protocol Stack Logical Link Control and Adaptation Protocol (L2CAP) • Higher layer protocol multiplexing for SDP, TCS, RFCOMM • Packet segmentation and reassembly • Only for ACL links • Provides group abstractions • Provides the means to convey QoS information • MTU = 64 Kbytes
SDP RFCOMM TCS L2CAP Multiplexor & Dispatcher Pattern Intent Multiplex messages from differing tasks into one task, and de-multiplex and dispatch messages from one task to one of several tasks Forces Support several tasks with differing message formats on top of a single task with its own message format Bluetooth Usage L2CAP Layer multiplexes packets from SDP, RFCOMM, TCS, and IP telephony protocol layers • Known Uses • TCP/IP • System V STREAMS • ACE Reactor
SDP RFCOMM TCS L2CAP SAR Pattern Intent Reassemble fragmented messages in the correct order before dispatching them to their destination task Forces Guarantee ordered delivery of messages to upper layers when lower layers fragment messages and can lose or reorder messages • Bluetooth Usage • L2CAP segments and reassembles packets for SDP, RFCOMM, TCS, and IP telephony protocols • Known Uses • TCP/IP • Reliable multicast over UDP
Bluetooth Protocol Stack Service Discovery Protocol (SDP) • Locating services and their characteristics • Allows search based on attributes or service classes • Allows discovery without consulting a third device • Provides only information about the service and not direct access to the service RFCOMM • Provides emulation of serial ports over L2CAP • Provides a unified interface for communication medium between Bluetooth devices
Client Server request SDP Client SDP Server response Lookup Pattern Intent Describes how to find and retrieve initial references to distributed objects and services Forces Discover services in an ad hoc network • Bluetooth Usage • SDP allows discovery of services, however, actual initial references must be obtained differently • Known Uses • JINI Lookup Service • CORBA Naming and Trading Service
Client Server request SDP Client SDP Server response Service Browsing Pattern Intent Allows browsing all services offered by a Lookup Service Forces Ability to query based on class or characteristics of services • Bluetooth Usage • SDP allows discovering all services based on attributes • Known Uses • JINI Lookup Service • CORBA Trading Service
Bluetooth Protocol Stack IrDA Interoperability (IrOBEX) • Protocol to function over both short range RF and infra red (Ir) media • IrOBEX is a session protocol mapped over RFCOMM, IrDA, or TCP/IP • Provides a model for representing objects that follow a client/server request/response paradigm Telephony Control (TCS) • Defines the call control signaling for the establishment of speech and data calls between Bluetooth devices • Defines mobility management issues
Client Server request IrOBEX IrOBEX response Broker Pattern Intent Used to structure distributed systems with decoupled components that interact by remote method invocations Forces Request/response communication between Bluetooth devices • Bluetooth Usage • OBEX (OBject EXchange) protocol provides a model to represent objects using client/server paradigm • Known Uses • CORBA ORB • Java RMI • DCOM
Client Server request IrOBEX IrOBEX response Facade Pattern Intent Provide a unified interface to a set of interfaces in a subsystem Forces Several disparate interfaces that must be unified • Bluetooth Usage • OBEX (OBject EXchange) protocol provides a unified interface for the underlying transport • RFCOMM provides a unified interface over communication medium between Bluetooth devices BT Device BT Device RFCOMM BT Device Modem Device Network RFCOMM • Known Uses • ACE
IrOBEX IrDA RFCOMM TCP/IP Pluggable Protocol Pattern Intent To be able to use disparate subtasks to deliver messages belonging to a particular task Forces Unifying several disparate lower layers in a Layer pattern • Bluetooth Usage • OBEX (OBject EXchange) protocol can run on top of IrDA, RFCOMM, and TCP/IP • Known Uses • TAO ORB supporting several underlying transports such as TCP/IP, ATM, shared memory
Interoperability Requirements for Wireless Application Protocol (WAP) • Many characteristics of Bluetooth devices shared with WAP target platforms • Same device may be enabled for both protocols • WAP clients and servers use PPP to use the physical and link control medium provided by Bluetooth • Provide access to WAP’s value-added services using the ad hoc, dynamic characteristics of Bluetooth
WAP Application Layer (WAE) Session Layer (WSP) Transaction Layer (WTP) Security Layer (WTLS) Transport Layer (WDP) Bearer: e.g., PPP, CDMA Bluetooth Bridge Pattern Intent Decouples an abstraction from its implementation so that the two can vary independently Forces Maintain independence between WAP and Bluetooth, however, allowing WAP applications to communicate over Bluetooth Bluetooth Usage PPP serves as the bridge between WAP applications and the communication medium offered by Bluetooth • Known Uses • ET++ • libg++ • ACE
Concluding Remarks • Bluetooth is the de facto standard for low cost, short range, wireless communications between portable devices • Bluetooth aims to eliminate the need for cables and promote full scale ad hoc networking