Home
Patent Search
IMT Blog
REGISTER
|
SIGN IN
United States Patent Application
20050088980
Kind Code
A1
Olkkonen, Mikko ; et al.
April 28, 2005
Ad hoc network discovery menu
Abstract
When an ad hoc network is formed between short range wireless devices, at least one device assumes the role of an ad hoc network information provider for the new piconet. In this role, the device allocates a browsing hierarchy of service classes in its service registry. The service classes will provide a record to characterize the ad hoc network. When a new wireless device arrives within the communication range of any member of the ad hoc network, its inquiry signals are answered by the first member detecting the inquiry. If that first member is an ad hoc network information provider, it responds with information accessed from its service registry characterizing the ad hoc network. If, instead, an ordinary device in the ad hoc network is the first to respond to the inquiry signals of the arriving device, the device responds with the address of the ad hoc network information provider. The arriving device then pages the ad hoc network information provider to obtain information characterizing the ad hoc network.
Inventors:
Olkkonen; Mikko
(Kirkkonummi, FI)
, Nyman; Kai
(Espoo, FI
)
, Bouet; Stephane
(Tokyo-To, JP
)
Correspondence Name and Address:
3 World Financial Center
MORGAN & FINNEGAN, L.L.P.
New York
NY
10281-2101
US
Series Code:
979253
Filed:
November 3, 2004
U.S. Current Class:
370/255
U.S. Class at Publication:
370/255
Intern'l Class:
H04L 012/28
Claims
1-85. (canceled)
86. A method to provide network information to an arriving wireless device which is proximate to a plurality other wireless devices, the network information enabling the arriving device to selectively join ad hoc networks, comprising: maintaining in one or more network nodes in a first ad hoc network, a first list of available services of wireless devices in the first ad hoc network and updating the first list based on the information received from the wireless devices in the first ad hoc network; maintaining in one or more network nodes in a second ad hoc network, a second list of available services of wireless devices in the second ad hoc network and updating the second list based on the information received from the wireless devices in the second ad hoc network; discovering the first and the second ad hoc network by the arriving wireless device; gathering, by the arriving device, information characterizing the first ad hoc network by obtaining first service information associated with said first list describing available services of wireless devices in the first ad hoc network; gathering, by the arriving device, information characterizing the second ad hoc network by obtaining second service information associated with said second list describing available services of wireless devices in the second ad hoc network; forming, by the arriving wireless device, a compiled network discovery service list including a first characteristic of the first ad hoc network derived from the first service information and a second characteristic of the second ad hoc network derived from the second service information; and joining the arriving wireless device to either the first ad hoc network or the second ad hoc network based on the compiled network discovery list.
87. The method of claim 86, further comprising: sending, by the arriving wireless device, an update message to one or more nodes in the ad hoc network joined by the arriving wireless device for updating the list describing available services within said ad hoc network.
88. The method of claim 87, further comprising: receiving the update message by the one or more nodes in the ad hoc network wherein the arriving wireless device has joined; and updating, by said one or more nodes, a service registry corresponding to the list of available services in said ad hoc network.
89. The method of claim 88, wherein the service registry is Service Discovery Protocol (SDP) registry.
90. The method of claim 86, wherein said gathering further comprises: selectively searching for other devices having a specified class of device characteristic.
91. The method of claim 86, wherein said gathering further comprises: selectively searching for other devices having a specified service class.
92. The method of claim 86, wherein said gathering further comprises: selectively searching for other devices having a specified service attribute.
93. The method of claim 86, which further comprises: forming and displaying by the arriving wireless device a network discovery menu including said first characteristic of the first ad hoc network and said second characteristic of the second ad hoc network.
94. The method of claim 93, which further comprises: determining received signal quality of devices in said first and second ad hoc networks, by the arriving wireless device; and ranking said first and second characteristics displayed in said network discovery menu according to said received signal quality, by the arriving wireless device.
95. The method of claim 93, which further comprises: associating with each of said first and second characteristics displayed in said network discovery menu, corresponding information about accessing each respective first and second ad hoc network.
96. A system to provide network information to an arriving wireless device which is proximate to a plurality other wireless devices, the network information enabling the arriving device to selectively join ad hoc networks, comprising: one or more first wireless devices maintaining in a first ad hoc network, a first list of available services of wireless devices in the first ad hoc network and updating the first list based on the information received from the wireless devices in the first ad hoc network; one or more second wireless devices maintaining in one or more network nodes in a second ad hoc network, a second list of available services of wireless devices in the second ad hoc network and updating the second list based on the information received from the wireless devices in the second ad hoc network; an arriving wireless device discovering the first and the second ad hoc network; said arriving device gathering information characterizing the first ad hoc network by obtaining first service information associated with said first list describing available services of wireless devices in the first ad hoc network; said arriving device gathering information characterizing the second ad hoc network by obtaining second service information associated with said second list describing available services of wireless devices in the second ad hoc network; said arriving device forming a compiled network discovery service list including a first characteristic of the first ad hoc network derived from the first service information and a second characteristic of the second ad hoc network derived from the second service information; and said arriving device joining to either the first ad hoc network or the second ad hoc network based on the compiled network discovery list.
97. The system of claim 96, further comprising: said arriving wireless device sending an update message to one or more wireless devices in the ad hoc network joined by the arriving wireless device for updating the list describing available services within said ad hoc network.
98. The system of claim 97, further comprising: said one or more wireless devices in the ad hoc network wherein the arriving wireless device has joined, receiving the update message; and said one or more wireless devices in the ad hoc network wherein the arriving wireless device has joined, updating a service registry corresponding to the list of available services in said ad hoc network.
99. The system of claim 98, wherein the service registry is Service Discovery Protocol (SDP) registry.
100. The system of claim 96, wherein said gathering further comprises: said arriving wireless device selectively searching for other devices having a specified class of device characteristic.
101. The system of claim 96, wherein said gathering further comprises: said arriving wireless device selectively searching for other devices having a specified service class.
102. The system of claim 96, wherein said gathering further comprises: said arriving wireless device selectively searching for other devices having a specified service attribute.
103. The system of claim 96, which further comprises: said arriving wireless device forming and displaying a network discovery menu including said first characteristic of the first ad hoc network and said second characteristic of the second ad hoc network.
104. The system of claim 103, which further comprises: said arriving wireless device determining received signal quality of devices in said first and second ad hoc networks; and said arriving wireless device ranking said first and second characteristics displayed in said network discovery menu according to said received signal quality.
105. The system of claim 103, which further comprises: said arriving wireless device associating with each of said first and second characteristics displayed in said network discovery menu, corresponding information about accessing each respective first and second ad hoc network.
106. A computer program product to provide network information to an arriving wireless device which is proximate to a plurality other wireless devices, the network information enabling the arriving device to selectively join ad hoc networks, comprising: a computer readable medium; program code in said computer readable medium for maintaining in one or more network nodes in a first ad hoc network, a first list of available services of wireless devices in the first ad hoc network and updating the first list based on the information received from the wireless devices in the first ad hoc network; program code in said computer readable medium for maintaining in one or more network nodes in a second ad hoc network, a second list of available services of wireless devices in the second ad hoc network and updating the second list based on the information received from the wireless devices in the second ad hoc network; program code in said computer readable medium for discovering the first and the second ad hoc network by the arriving wireless device; program code in said computer readable medium for gathering, by the arriving device, information characterizing the first ad hoc network by obtaining first service information associated with said first list describing available services of wireless devices in the first ad hoc network; program code in said computer readable medium for gathering, by the arriving device, information characterizing the second ad hoc network by obtaining second service information associated with said second list describing available services of wireless devices in the second ad hoc network; program code in said computer readable medium for forming, by the arriving wireless device, a compiled network discovery service list including a first characteristic of the first ad hoc network derived from the first service information and a second characteristic of the second ad hoc network derived from the second service information; and program code in said computer readable medium for joining the arriving wireless device to either the first ad hoc network or the second ad hoc network based on the compiled network discovery list.
107. The computer program product of claim 106, further comprising: program code in said computer readable medium for sending, by the arriving wireless device, an update message to one or more nodes in the ad hoc network joined by the arriving wireless device for updating the list describing available services within said ad hoc network.
108. The computer program product of claim 107, further comprising: program code in said computer readable medium for receiving the update message by the one or more nodes in the ad hoc network wherein the arriving wireless device has joined; and program code in said computer readable medium for updating, by said one or more nodes, a service registry corresponding to the list of available services in said ad hoc network.
109. The computer program product of claim 108, wherein the service registry is Service Discovery Protocol (SDP) registry.
110. The computer program product of claim 106, wherein said gathering further comprises: program code in said computer readable medium for selectively searching for other devices having a specified class of device characteristic.
111. The computer program product of claim 106, wherein said gathering further comprises: program code in said computer readable medium for selectively searching for other devices having a specified service class.
112. The computer program product of claim 106, wherein said gathering further comprises: program code in said computer readable medium for selectively searching for other devices having a specified service attribute.
113. The computer program product of claim 106, which further comprises: program code in said computer readable medium for forming and displaying by the arriving wireless device a network discovery menu including said first characteristic of the first ad hoc network and said second characteristic of the second ad hoc network.
114. The computer program product of claim 113, which further comprises: program code in said computer readable medium for determining received signal quality of devices in said first and second ad hoc networks, by the arriving wireless device; and program code in said computer readable medium for ranking said first and second characteristics displayed in said network discovery menu according to said received signal quality, by the arriving wireless device.
115. The computer program product of claim 113, which further comprises: program code in said computer readable medium for associating with each of said first and second characteristics displayed in said network discovery menu, corresponding information about accessing each respective first and second ad hoc network.
116. A mobile wireless device capable of gathering network information about a network that is proximate and includes a plurality other wireless devices, the network information enabling the mobile device to selectively join ad hoc networks, comprising: a mobile wireless device including a processor, a memory for storing program code executable by the processor, a radio, and a user interface; program code in said memory for establishing a connection with a first ad hoc network that maintains in one or more network nodes, a first list of available services of wireless devices in the first ad hoc network, the network updating the first list based on information received from the wireless devices in the first ad hoc network; program code in said memory establishing a connection with a second ad hoc network that maintains in one or more network nodes, a second list of available services of wireless devices in the second ad hoc network, the second network updating the second list based on information received from the wireless devices in the second ad hoc network; program code in said memory for discovering the first and the second ad hoc network; program code in said memory for gathering information characterizing the first ad hoc network by obtaining first service information associated with said first list describing available services of wireless devices in the first ad hoc network; program code in said memory for gathering information characterizing the second ad hoc network by obtaining second service information associated with said second list describing available services of wireless devices in the second ad hoc network; program code in said memory for forming a compiled network discovery service list including a first characteristic of the first ad hoc network derived from the first service information and a second characteristic of the second ad hoc network derived from the second service information; and program code in said memory for joining the mobile wireless device to either the first ad hoc network or the second ad hoc network based on the compiled network discovery list.
117. The mobile wireless device of claim 116, further comprising: program code in said memory for sending an update message to one or more nodes in the ad hoc network joined by the mobile wireless device for updating the list describing available services within said ad hoc network.
118. The mobile wireless device of claim 117, further comprising: said one or more nodes updating a service registry corresponding to the list of available services in said ad hoc network, in response to said update message.
119. The mobile wireless device of claim 118, wherein the service registry is Service Discovery Protocol (SDP) registry.
120. The mobile wireless device of claim 116, wherein said gathering further comprises: selectively searching for other devices having a specified class of device characteristic.
121. The mobile wireless device of claim 116, wherein said gathering further comprises: selectively searching for other devices having a specified service class.
122. The mobile wireless device of claim 116, wherein said gathering further comprises: selectively searching for other devices having a specified service attribute.
123. The mobile wireless device of claim 116, which further comprises: program code in said memory for forming and displaying by the mobile wireless device a network discovery menu including said first characteristic of the first ad hoc network and said second characteristic of the second ad hoc network.
124. The mobile wireless device of claim 123, which further comprises: program code in said memory for determining received signal quality of devices in said first and second ad hoc networks; and program code in said memory for ranking said first and second characteristics displayed in said network discovery menu according to said received signal quality.
125. The mobile wireless device of claim 123, which further comprises: program code in said memory for associating with each of said first and second characteristics displayed in said network discovery menu, corresponding information about accessing each respective first and second ad hoc network.
Description
FIELD OF THE INVENTION
[0001] The invention disclosed broadly relates to ubiquitous computing and more particularly relates to improvements in short-range wireless systems.
BACKGROUND OF THE INVENTION
[0002] Short Range Wireless Systems
[0003] Short range wireless systems have a typical range of one hundred meters or less. They often combine with systems wired to the Internet to provide communication over long distances. The category of short range wireless systems includes wireless personal area networks (PANs) and wireless local area networks (LANs). They have the common feature of operating in unlicensed portions of the radio spectrum, usually either in the 2.4 GHz Industrial, Scientific, and Medical (ISM) band or the 5 GHz Unlicensed-National Information Infrastructure (U-NII) band. Wireless personal area networks use low cost, low power wireless devices that have a typical range of ten meters. The best known example of wireless personal area network technology is the Bluetooth Standard, which operates in the 2.4 GHz ISM band. It provides a peak air link speed of one Mbps and a power consumption low enough for use in personal, portable electronics such as PDAs and mobile phones. Wireless local area networks generally operate at higher peak speeds of between 10 to 100 Mbps and have a longer range, which requires greater power consumption. Wireless local area networks are typically used as wireless links from portable laptop computers to a wired LAN, via an access point (AP). Examples of wireless local area network technology include the IEEE 802.11 Wireless LAN Standard and the HIPERLAN Standard, which operates in the 5 GHz U-NII band.
[0004] Ad Hoc Networks
[0005] An ad hoc network is a short range wireless system composed primarily of mobile wireless devices which associate together for a relatively short time to carry out a common purpose. A temporary network such as this is called a "piconet" in the Bluetooth Standard, an "independent basic service set" (IBSS) in the IEEE 802.11 Wireless LAN Standard, a "subnet" in the HIPERLAN Standard, and generally a radio cell or a "micro-cell" in other wireless LAN technologies. Ad hoc networks have the common property of being an arbitrary collection of wireless devices which are physically close enough to be able to communicate and which are exchanging information on a regular basis. The networks can be constructed quickly and without much planning. Members of the ad hoc network join and leave as they move into and out of the range of each other. Most ad hoc networks operate over unlicensed radio frequencies at speeds of from one to fifty-four Mbps using carrier sense protocols to share the radio spectrum. The distance over which they can communicate ranges from ten meters for Bluetooth piconets to over one hundred meters for wireless LAN micro-cells in an open environment. Ad hoc networks consist primarily of mobile wireless devices, but can also include one or more access points which are stationary wireless devices, operating as a stand-alone server or connected as gateways to other networks.
[0006] The Bluetooth Short Range Wireless Technology
[0007] Bluetooth is a short-range radio network, originally intended as a cable replacement. It can be used to create ad hoc networks of up to eight devices operating together. The Bluetooth Special Interest Group, Specification Of The Bluetooth System, Version 1.0B, Volumes 1 and 2, December 1999, describes the principles of Bluetooth device operation and communication protocols. The devices operate in the 2.4 GHz radio band reserved for general use by Industrial, Scientific, and Medical (ISM) applications. Bluetooth devices are designed to find other Bluetooth devices within their ten meter radio communications range and to discover what services they offer, using a service discovery protocol (SDP). The SDP searching function relies on links being established between the requesting Bluetooth device in a client role and the responding Bluetooth device in a server role. Once a link has been established, it can be used to find out about services in the responding Bluetooth device and how to connect to them.
[0008] A connection between two Bluetooth devices is initiated by an inquiring device sending out an inquiry message searching for other devices in its vicinity. Any other Bluetooth device that is listening by means of conducting an inquiry scan, will recognize the inquiry message and respond. The inquiry response is a message packet containing the responding device's Bluetooth Device Address (BD_ADDR). A Bluetooth device address is a unique, 48-bit IEEE address which is electronically engraved into each Bluetooth device.
[0009] The inquiring device uses the information provided in the inquiry response packet, to prepare and send a paging message to the responding device. To establish a connection, the inquiring device must enter the page state. In the page state, the inquiring device will transmit initial paging messages to the responding device using the access code and timing information acquired from the inquiry response packet. The responding device must be in the page scan state to allow the inquiring device to connect with it. Once in the page scan state, the responding device will acknowledge the initial paging messages and the inquiring device will send a paging packet which provides the clock timing and access code of the inquiring device to the responding device. The responding device responds with a page acknowledgment packet. This enables the two devices to form a connection and both devices transition into the connection state. The inquiring device that has initiated the connection assumes the role of a master device and the responding device assumes the role of a slave device in a new ad hoc network piconet.
[0010] Each piconet has one master device and up to seven slave devices. All communication is directed between the master device and each respective slave device. The master initiates an exchange of data and the slave responds to the master. When two slave devices are to communicate with each other, they must do so through the master device. The master device maintains the piconet's network clock and controls when each slave device can communicate with the master device. Members of the ad hoc network piconet join and leave as they move into and out of the range of the master device. Piconets support distributed activities, such as collaborative work projects, collaborative games, multi-user gateways to the Internet, and the like. A user's device that joins a particular piconet, does so to enable its user to participate in the currently running collaborative activity.
[0011] A Bluetooth-enabled laptop computer can send information to a Bluetooth-enabled printer in the next room. A Bluetooth-enabled microwave oven can send a message to a Bluetooth-enabled mobile phone announcing that that the meal is ready. Bluetooth will become the standard in mobile phones, PCs, laptops and other electronic devices, enabling users to share information, synchronize data, access the Internet, integrate with LANs or actuate electro-mechanical devices, such as unlocking a car. A passenger can write e-mails on his/her laptop on an airplane and then, after landing, the messages can be automatically forwarded to the Internet by Bluetooth devices that are ubiquitously located around the airport terminal. In another example, while waiting in an airport lounge, a the passenger can receive interesting duty-free offers directly on his/her mobile phone or play multiplayer games with friends.
[0012] The IEEE 802.11 Wireless LAN Standard
[0013] The IEEE 802.11 Wireless LAN Standard defines at least two different physical (PHY) specifications and one common medium access control (MAC) specification. The IEEE 802.11 (a) Standard is designed for either the 2.4 GHz ISM band or the 5 GHz U-NII band, and uses orthogonal frequency division multiplexing (OFDM) to deliver up to 54 Mbps data rates. The IEEE 802.11 (b) Standard is designed for the 2.4 GHz ISM band and uses direct sequence spread spectrum (DSSS) to deliver up to 11 Mbps data rates. The IEEE 802.11 Wireless LAN Standard describes two major components, the mobile station and the fixed access point (AP). IEEE 802.11 ad hoc networks have an independent configuration where the mobile stations communicate directly with one another, without support from a fixed access point. IEEE 802.11 ad hoc networks support distributed activities similar those of the Bluetooth piconets. The IEEE 802.11
standard provides wireless devices with service inquiry features similar to the Bluetooth inquiry and scanning features.
[0014] In order for a IEEE 802.11 mobile station to communicate with other mobile stations in an ad hoc network, it must first find the stations. The process of finding another station is by inquiring. Active inquiry requires the inquiring station to transmit queries and invoke responses from other wireless stations in an ad hoc network. In an active inquiry, the mobile station will transmit a probe request frame. If there is an ad hoc network on the same channel that matches the service set identity (SSID) in the probe request frame, a station in that ad hoc network will respond by sending a probe response frame to the inquiring station. The probe response includes the information necessary for the inquiring station to access a description of the ad hoc network. The inquiring station will also process any other received probe response and Beacon frames. Once the inquiring station has processed any responses, or has decided there will be no responses, it may change to another channel and repeat the process. At the conclusion of the inquiry, the station has accumulated information about the ad hoc networks in its vicinity. Once a station has performed an inquiry that results in one or more ad hoc network descriptions, the station may choose to join one of the ad hoc networks. The IEEE 802.11 Wireless LAN Standard is published in three parts as IEEE 802.11-1999; IEEE 802.11a-1999; and IEEE 802.11b-1999, which are available from the IEEE, Inc. web site http://grouper.ieee.org/- groups/802/11.
[0015] High Performance Radio Local Area Network (HIPERLAN)
[0016] The HIPERLAN standard provides a wireless LAN with a high data rate of up to 54 Mbps and a medium-range of 50 meters. HIPERLAN wireless LANs provide multimedia distribution with video QoS, reserved spectrum, and good in-building propagation. There are two HIPERLAN standards. HIPERLAN Type 1 is a dynamic, priority driven channel access protocol similar to wireless Ethernet. HIPERLAN Type 2 is reserved channel access protocol similar to a wireless version of ATM. Both HIPERLAN Type 1 and HIPERLAN Type 2 use dedicated spectrum at 5GHz. HIPERLAN Type 1 uses an advanced channel equalizer to deal with intersymbol interference and signal multipath. HIPERLAN Type 2 avoids these interference problems by using OFDM and a frequency transform function. The HIPERLAN Type 2
specification offers options for bit rates of 6, 16, 36, and 54 Mbps. The physical layer adopts an OFDM multiple carrier scheme using 48 carrier frequencies per OFDM symbol. Each carrier may then be modulated using BPSK, QPSK, 16-QAM, or 64-QAM to provide different data rates. The modulation schemes chosen for the higher bit rates achieve throughput in the range 30-50 Mbps.
[0017] The HIPERLAN Type 1 is a dynamic, priority driven channel access protocol that can form ad hoc networks of wireless devices. HIPERLAN Type 1 ad hoc networks support distributed activities similar those of the Bluetooth piconets and IEEE 802.11 independent basic service sets (IBSS). The HIPERLAN Type 1 standard provides wireless devices with service inquiry features similar to those of the Bluetooth inquiry and scanning features and the IEEE 802.11 probe request and response features. An overview of the HIPERLAN Type 1 principles of operation is provided in the publication HIPERLAN Type 1 Standard, ETSI ETS 300 652, WA2 December 1997.
[0018] HIPERLAN Type 2 is a reserved channel access protocol that forms ad hoc networks. HIPERLAN Type 2 ad hoc networks support distributed activities similar those of the HIPERLAN Type 1 ad hoc networks, Bluetooth piconets and IEEE 802.11 independent basic service sets (IBSS). HIPERLAN Type 2 provides high speed radio communication with typical data rates from 6 MHz to 54 Mbps. It connects portable devices with broadband networks that are based on IP, ATM and other technologies. Centralized mode is used to operate HIPERLAN Type 2 as an access network via a fixed access point. In addition a capability for direct link communication is provided. This mode is used to operate HIPERLAN Type 2 as an ad hoc network without relying on a cellular network infrastructure. In this case a central controller (CC), which is dynamically selected among the portable devices, provides the same level of QoS support as the fixed access point. Restricted user mobility is supported within the local service area. Wide area roaming mobility can also be supported. An overview of the HIPERLAN Type 2 principles of operation is provided in the Broadband Radio Access Networks (BRAN), HIPERLAN Type 2, System Overview, ETSI TR 101 683 VI.I.1 (2000-02) and a more detailed specification of its ad hoc network architecture is described in HIPERLAN Type 2. Data Link Control (DLC) Layer; Part 4. Extension for Home Environment, ETSI TS 101 761-4 V1.2.1 (2000-12).
[0019] Other Wireless Standards Supporting Ad Hoc Networks
[0020] Other wireless standards support ad hoc networks. Examples include the IEEE 802.15 Wireless Personal Area Network (WPAN) standard, the Infrared Data Association (IrDA) standard, the Digital Enhanced Cordless Telecommunications (DECT) standard, the Shared Wireless Access Protocol (SWAP) standard, the Japanese 3rd Generation (3G) wireless standard, and the Multimedia Mobile Access Communication (MMAC) Systems standard of the Japanese Association of Radio Industries and Businesses.
[0021] What is needed is a way to provide an ad hoc network discovery menu to an arriving wireless device, which lists the currently running collaborative activities of all of the ad hoc networks within its range. It would be even more useful if the desired ad hoc network discovery menu selected only those ad hoc networks that are of particular interest to the arriving user, or which have the highest received signal quality.
SUMMARY OF THE INVENTION
[0022] In accordance with the invention, when an ad hoc network is initially formed between two short-range wireless devices, the one device assumes the role of an ad hoc network information provider for the new ad hoc network. In this role, the one device allocates a browsing hierarchy of service classes in its memory. The service classes will provide a record to characterize the ad hoc network. Characteristics of the ad hoc network stored in the memory can include the type of distributed application program currently running, the number of members, the identity of its members, and the like. As additional devices are added to the ad hoc network and participate in the distributed application of the ad hoc network, they contribute to altering the status of the network. In order to maintain a record of the current status of the ad hoc network, each device sends update messages to the ad hoc network information provider, to update its memory. This information can be frequently updated in the memory to give the current state of an activity, such as the score of a collaborative baseball game.
[0023] Further in accordance with the invention, when a new short-range wireless device arrives within the communication range of any member of the ad hoc network, its inquiry signals are answered by a member detecting the inquiry. If the responding member is an ad hoc network information provider, it responds with information accessed from its memory characterizing the ad hoc network. If, instead, an ordinary device in an ad hoc network is the first to respond to the inquiry signals of the arriving device, the responding device responds with the address of the ad hoc network information provider. The arriving device then pages the ad hoc network information provider to obtain information characterizing the ad hoc network.
[0024] In accordance with another embodiment of the invention, the address of the Information Provider device in a new ad hoc network can be learned from a Beacon signal periodically transmitted from the ad hoc network. For example, when the invention in embodied in the IEEE 802.11 Wireless LAN Standard or the HIPERLAN Type 2 Wireless LAN Standard, a Beacon signal is transmitted periodically to allow mobile stations to locate and identify the information provider device in an ad hoc network. The beacon signal specifies the address of the information provider device in the ad hoc network. When an arriving device is close enough to the ad hoc network to receive the periodic beacon signal from a device in that network, the arriving device will know the address of the information provider device in that network. If the arriving device is running the ad hoc network discovery menu option, then the arriving device can directly address a request to the information provider for the service records characterizing the ad hoc network.
[0025] In accordance with yet another embodiment of the invention, the address of the Information Provider device in a new ad hoc network can be a default address. For example, when the invention in embodied in the Bluetooth Standard, IEEE 802.11 Wireless LAN Standard, or the HIPERLAN Type 2 Wireless LAN Standard, the Information Provider device in a new ad hoc network can have a default address to allow mobile stations to locate and identify the information provider device in an ad hoc network. The default address is known to every arriving device. For example, in the Bluetooth Standard, the default address can be the address of the first slave in the ad hoc network. As another example, in the IEEE 802.11
Wireless LAN Standard, the default address can be the address of the first device or the second device in the ad hoc network. As still another example, in the HIPERLAN Type 2 Wireless LAN Standard the default address can be the address of the central controller device or the second device in the ad hoc network. When an arriving device is close enough to the ad hoc network to either receive a periodic beacon signal from a device in that network or alternately to receive a response to its inquiry, the arriving device will know the default address of the information provider device in that network. If the arriving device is running the ad hoc network discovery menu option, then the arriving device can directly address a request to the information provider using the default address, to obtain the service records characterizing the ad hoc network.
[0026] Still further in accordance with the invention, the user of the arriving short-range wireless device can specify the type of ad hoc network characteristics of interest. The user may be looking for services such as a printer, fax machine, or public Internet gateway. These preferences can be used to configure the inquiry by the arriving device for a specific class of device, such as a printer or fax machine. The user may be looking for applications such as distributed games or other collaborative activities. These preferences can be used to configure service requests by the arriving device for generic service classes such as games or specific service attributes such as particular application programs or member names.
[0027] Still further in accordance with the invention, if the arriving device comes within the communications range of several ad hoc networks, it gathers information characterizing each ad hoc network from the respective ad hoc network information providers. The invention then compiles an ad hoc network discovery menu in the arriving device, that lists the characteristics of the ad hoc networks within its range. The ad hoc network discovery menu lists the characteristics of each responding ad hoc network, in accordance with the type of characteristics of interest to the user. If the user did not specify characteristics of interest, then the network discovery menu ranks the ad hoc networks by the received signal quality from the devices in each respective ad hoc network. The access code for each ad hoc network is associated with each respective entry in the menu. When the user selects an entry from the menu, the arriving device automatically joins the selected ad hoc network.
[0028] Examples of the metric used to rank the ad hoc networks by the received signal quality include Bit Error Rate accumulated over time, Packet Error Rate accumulated over time, received signal strength, link quality measurements, continuous-wave interference, co-channel interference, clear channel assessment (collision avoidance), collisions per unit time, retry counts, and frames canceled per unit time.
[0029] The user's arriving device may encounter a wireless device that does not have knowledge of the information provider feature. The user's device will send its usual service search attribute request asking whether the receiving device is an ad hoc network information provider. When the Un-Aware device receives this service search attribute request, it will not have the requested attribute in its service registry, and thus it will respond with an Error Response. In accordance with the invention, the user's device will recognize this response as an indication that the receiving device is an Un-Aware device. The user's device will then gather whatever information can be derived from the inquiry response received from the Un-Aware device, including its Class-of-Device (CoD), such as "Fax_Machine" or "Printer". This information can be listed by the user's device in the Ad Hoc Network Discovery Menu. Optionally, the listing can include a designation such as "Un-Aware Device", in the Ad Hoc Network Discovery Menu. The user's device can also formulated additional, more general requests in a subsequent service search attribute request. If the subsequent service request results in receiving more informative attributes from the Un-Aware device, then this information can also be listed in the Ad Hoc Network Discovery Menu.
[0030] In an alternate embodiment of the invention, a primary and a secondary ad hoc network information provider are created in each ad hoc network. The backup device serves as a hot standby that assumes the role of the primary device when the original primary device leaves the ad hoc network. Either the master device or a slave device can be either the primary or the backup ad hoc network information service provider. In still another alternate embodiment of the invention, many or all of the devices in an ad hoc network can assume the role of ad hoc network information provider. Then, when an arriving device sends an inquiry to the ad hoc network, any device can respond in the role of an ad hoc network information provider. Updated information is shared with the master device and broadcast to all other slave devices in the ad hoc network. Each device in the ad hoc network then stores a dynamic service record in its respective Memory, containing the updated information.
[0031] Four example ad hoc network standards are described to embody the invention, the Bluetooth standard, the IEEE 802.11 Wireless LAN standard, the HIPERLAN Type 1 standard, and the HIPERLAN Type 2 standard. However, in addition to these four standards, the invention also applies to other wireless standards. The invention's principle of an ad hoc network information provider that furnishes records characterizing the ad hoc network to inquiring devices, is equally useful in many other wireless standards. The invention applies, for example, to the Infrared Data Association (IrDA) standard, the Digital Enhanced Cordless Telecommunications (DECT) standard, the Shared Wireless Access Protocol (SWAP) standard, the IEEE 802.15 Wireless Personal Area Network (WPAN) standard, the Japanese 3rd Generation (3G) wireless standard, and the Multimedia Mobile Access Communication (MMAC) Systems standard of the Japanese Association of Radio Industries and Businesses. The invention enables each of these wireless standards to provide an ad hoc network information provider that furnishes records characterizing the ad hoc network to inquiring devices.
DESCRIPTION OF THE FIGURES
[0032] FIG. 1 shows an example appearance of the arriving wireless device 100 and the initial menu 205 displayed to the user for selecting the ad hoc network discovery mode. This figure applies to all wireless standards supporting ad hoc networks.
[0033] FIG. 1A is a network diagram showing several ad hoc networks and an arriving Bluetooth device 100 which is searching for remote ad hoc networks in the ad hoc network discovery mode.
[0034] FIG. 1B is a network diagram showing the arriving device of FIG. 1A browsing or searching the responding remote Bluetooth devices and accessing the service records of the ad hoc network information provider devices in multiple ad hoc networks.
[0035] FIG. 1C is a network diagram showing the arriving device of FIG. 1B selecting attributes of interest in the accessed service records or determining the characteristics of the received signals from the master devices in the multiple ad hoc networks.
[0036] FIG. 1D is a network diagram showing the arriving device of FIG. 1C forming a network discovery menu including descriptions of ad hoc network characteristics in the multiple ad hoc networks, such as the application programs they are running, derived from the service records and listed according to the selected attributes or ranked according to the signal characteristics.
[0037] FIG. 1E is a network diagram showing an alternate embodiment of the invention, wherein an ad hoc network can have multiple ad hoc network information provider devices.
[0038] FIG. 1F is a network diagram showing in greater detail the alternate embodiment of the invention of FIG. 1E, wherein one device is a primary ad hoc network information provider device and a second device is a backup ad hoc network information provider device.
[0039] FIG. 1G is a network diagram showing in greater detail the alternate embodiment of the invention of FIG. 1E, wherein all of the devices in an ad hoc network are ad hoc network information provider devices.
[0040] FIG. 2A is a functional block diagram of the arriving wireless device 100 of FIG. 1, showing the various program modules stored in its memory for the transport protocol group, middleware protocol group, and application group. This figure applies to all wireless standards supporting ad hoc networks.
[0041] FIG. 2B shows an example appearance of the arriving wireless device 100 of FIG. 1 and the ad hoc network discovery menu displayed to the user with the discovered ad hoc networks ranked by received signal strength. This figure applies to all wireless standards supporting ad hoc networks.
[0042] FIG. 2C shows an example appearance of the arriving wireless device 100 of FIG. 1 and the ad hoc network discovery menu displayed to the user with the discovered ad hoc networks listed by user selected characteristics, such as by member names. This figure applies to all wireless standards supporting ad hoc networks.
[0043] FIG. 3 is a network flow diagram of the process flow in an ad hoc network as a master Bluetooth device 104 connects with a first slave device 106 which becomes the ad hoc network information provider and connects with a second slave device 108 which is not an ad hoc network information provider. The diagram continues by showing the process flow for an arriving Bluetooth device 100 running in the ad hoc network discovery mode and interacting with the ad hoc network to prepare and display an ad hoc network discovery menu.
[0044] FIG. 3A is a flow diagram of the SDP service registry creation application program 280 in any Bluetooth device, for creating the SDP service registry in the device when the device becomes a member of an ad hoc network. The diagram shows that a first occurring slave device becomes the ad hoc information provider device for the ad hoc network and that subsequent devices are not ad hoc information provider devices. In an alternate embodiment, one or more subsequent devices can also become ad hoc network information provider devices.
[0045] FIG. 3B is a flow diagram of the initial menu application program 300 in any Bluetooth device, for creating the initial menu 205 displayed to the user for selecting the ad hoc network discovery mode as shown in FIG. 1. A sub-menu can be displayed to enable the user to select a particular device class, a particular service class, and/or a particular service attribute to search for in the remote ad hoc networks.
[0046] FIG. 3C is a flow diagram of an example network baseball application program 320 in a Bluetooth device, for conducting a game of network baseball in response to the user's selection from the initial menu application of FIG. 3B. The program includes a master broadcast routine to forward new data to the ad hoc network information provider, if the device is a master device. The program includes calls to an update routine shown in FIG. 3E, that creates updated service records to be sent to the master device for forwarding new data to the ad hoc network information provider.
[0047] FIG. 3D is a flow diagram of the ad hoc network discovery application program 412 in a wireless device, for conducting ad hoc network discovery in response to the user's selection from the initial menu application of FIG. 3B. The program controls the interaction of the arriving wireless device 100 with remote ad hoc networks, and passes the resulting ranked list of discovered ad hoc networks to the ad hoc network discovery menu program of FIG. 3F. This figure applies to all wireless standards supporting ad hoc networks.
[0048] FIG. 3E is a flow diagram of the service record update routine 330
in any Bluetooth device, that creates updated service records to be sent to the master device for forwarding new data to the ad hoc network information provider.
[0049] FIG. 3F is a flow diagram of the ad hoc network discovery menu program 340 in any Bluetooth device, for receiving the resulting ranked list of discovered ad hoc networks from the ad hoc network discovery application program 412 of FIG. 3D and displaying the ad hoc network discovery menu shown in FIG. 2C.
[0050] FIG. 3G is a flow diagram of an example network collaboration application program 350 in a Bluetooth device, for conducting a network collaboration session in response to the user's selection from the initial menu application of FIG. 3B. The program includes a master broadcast routine to forward new data to the ad hoc network information provider, if the device is a master device. The program includes calls to an update routine shown in FIG. 3E, that creates updated service records to be sent to the master device for forwarding new data to the ad hoc network information provider.
[0051] FIG. 4A shows the Bluetooth packet structure for an inquiry packet sent by arriving device 100.
[0052] FIG. 4B shows the Bluetooth packet structure for an inquiry response packet sent by ad hoc network information provider 106. The FHS packet buffer 515 is also shown.
[0053] FIG. 4C shows the Bluetooth packet structure for a paging packet sent by arriving device 100.
[0054] FIG. 4D shows the Bluetooth packet structure for a page acknowledgment packet sent by ad hoc network information provider 106.
[0055] FIG. 4E shows the Bluetooth packet structure for SDP service search attribute request packet sent by arriving device 100 to ad hoc network information provider 106.
[0056] FIG. 4F shows the Bluetooth packet structure for response to SDP service search attribute request, response sent by ad hoc network information provider 106 to arriving device 100.
[0057] FIG. 4G shows the Bluetooth packet structure for SDP service search attribute request packet sent by arriving device 100 to ad hoc network information provider 106.
[0058] FIG. 4H shows the Bluetooth packet structure for response to SDP service search attribute request, response sent by ad hoc network information provider 106 to arriving device 100.
[0059] FIG. 4I shows the Bluetooth packet structure for SDP service search attribute request packet sent by arriving device 100 to ad hoc network information provider 116.
[0060] FIG. 4J shows the Bluetooth packet structure for response to SDP service search attribute request, response sent by ad hoc network information provider 116 to arriving device 100.
[0061] FIG. 4K shows the Bluetooth packet structure for SDP service search attribute request packet sent by arriving device 100 to ad hoc network information provider 126.
[0062] FIG. 4L shows the Bluetooth packet structure for response to SDP service search attribute request, response sent by ad hoc network information provider 126 to arriving device 100.
[0063] FIG. 5 shows the SDP service registry 600 in the ad hoc network information provider 106 before the addition of the arriving device 100
to the ad hoc network, as shown in FIG. 1A.
[0064] FIG. 5A shows the SDP service registry 640 in the slave device 108, as shown in FIG. 1A.
[0065] FIG. 5B shows the SDP service registry 650 in master device 104, as shown in FIG. 1A.
[0066] FIG. 5C shows the SDP service registry 660 in slave device 100 (the arriving device) after it has joined the ad hoc network, as shown in FIG. 1D.
[0067] FIG. 5D shows the SDP service registry 600 in ad hoc network information provider 106 after addition of arriving device 100, as shown in FIG. 1D.
[0068] FIG. 6A shows the SDP service registry 600A in ad hoc network information provider 116, as shown in FIGS. 1A and 1D.
[0069] FIG. 6B shows the SDP service registry 600B in ad hoc network information provider 126, as shown in FIGS. 1A and 1D.
[0070] FIG. 7 is a network diagram of an alternate embodiment of the invention, showing the arriving IEEE 802.11 device 100(I) forming a network discovery menu including descriptions of ad hoc network characteristics in the multiple ad hoc networks, derived from the service records and listed according to the selected attributes or ranked according to the signal characteristics.
[0071] FIG. 7A shows an alternate embodiment to that shown in FIG. 4E, for the IEEE 802.11 packet structure for a probe request, sent by the arriving device 100(I) to the ad hoc network information provider 106(I).
[0072] FIG. 7B shows an alternate embodiment to that shown in FIG. 4F, for the IEEE 802.11 packet structure for a probe response to the probe request of FIG. 7A, this response having been sent by the ad hoc network information provider 106(I) to the arriving device 100(I).
[0073] FIG. 7C shows the IEEE 802.11 service registry 600(I) in the ad hoc network information provider 106(I) before addition of arriving device 100(I).
[0074] FIG. 8 is a network diagram of an alternate embodiment, showing the arriving HIPERLAN Type 2 device 100(H2) forming a network discovery menu including descriptions of ad hoc network characteristics in the multiple ad hoc networks, derived from the service records and listed according to the selected attributes or ranked according to the signal characteristics.
[0075] FIG. 8A shows an alternate embodiment, illustrating the HIPERLAN Type 2 MAC frame structure, including a random channel resource request, sent by the arriving device 100(H2) to the central controller device 104(H2), requesting request capacity for one of the following frames.
[0076] FIG. 8B shows an alternate embodiment, illustrating the HIPERLAN Type 2 MAC frame structure, including a request for the subnet service records, sent in the direct link channel by the arriving device 100(H2) to the ad hoc network information provider 106(H2).
[0077] FIG. 8C shows an alternate embodiment, illustrating the HIPERLAN Type 2 MAC frame structure, including the requested the subnet service records, sent in the direct link channel by the ad hoc network information provider 106(H2) to the arriving device 100(H2).
[0078] FIG. 8D shows the HIPERLAN Type 2 service registry 600(H2) in the ad hoc network information provider 106(H2) before addition of arriving device 100(H2).
DISCUSSION OF THE PREFERRED EMBODIMENT
[0079] FIG. 1 applies to all wireless standards supporting ad hoc networks. The ad hoc network discovery menu invention can be described by continuing the example mentioned above, of a passenger who has arrived at an airport and is now waiting in the airport lounge for a flight to another destination. The passenger carries a wireless device 100, which can be in the form of the Personal Digital Assistant (PDA) shown in FIG. 1. On the way to the airport lounge, the passenger has passed kiosks providing fax machines and printers to the pubic that can be wirelessly connected to by means of wireless devices mounted at the kiosks. Signs around the airport urge passengers to "Scan your Wireless" to advertisements of duty-free offers. The passenger looks about the lounge and sees a number of other passengers focused on their laptops and PDAs. Several of them appear to be collaborating with each other, since they join in animated laughter or converse while working on their computers.
[0080] In the situation shown in FIG. 1, there are two ad hoc networks 102
and 112 and the passenger's arriving wireless device 100. The passenger is curious about these ongoing collaborative activities, since maybe he/she can while away the time waiting, by joining in on the game that is apparently being played by the more animated of the groups. The passenger would like to start the ad hoc network discovery menu program which is one of the options listed on the initial menu 205 displayed on the device 100 of FIG. 1. But before doing so, the passenger wishes to block the listing of certain classes of devices, such as the printers, fax machines, and advertisement broadcasters which are seen around the airport. Thus the passenger begins by selecting from the initial menu 205, the option "SELECT CLASSES OF DEVICES TO BE BLOCKED". The passenger then enters "PRINTERS", "FAX MACHINES", and ADVERTISEMENTS", and these classes of devices are listed in a Search Options List selected by the user from the initial menu 205 of FIG. 1.
[0081] If the passenger had alternately desired to list ad hoc networks having a specific class of devices, such as "PHOTOCOPIER", he/she could have selected from the initial menu 205 of FIG. 1, the option "SELECT PARTICULAR DEVICE CLASS" and then entered "PHOTOCOPIER" on the keypad 208, and this class of devices would have been listed in the Search Options List. The passenger also desires to list ad hoc networks having a specific service class such as "USER NAME" so he/she selects from the initial menu 205, the option "SELECT PARTICULAR SERVICE CLASS" and then enters "USER NAME" on the keypad 208, and this service class is listed in the Search Options List. Alternately, the passenger could have listed ad hoc networks having a specific service attribute such as "GAME PROGRAM" by selecting from the initial menu 205, the option "SELECT PARTICULAR SERVICE ATTRIBUTE" and then enter "GAME PROGRAM" on the keypad 208, and this service attribute would have been listed in the Search Options List.
[0082] FIG. 1 shows an example appearance of the arriving wireless device 100 and the initial menu 205 displayed to the user for selecting the ad hoc network discovery mode, rendered in the browser 102 on the display 212. The user can select one of four primary options:
[0083] 1--TELEPHONE, INTERNET, FILE SHARING
[0084] 2--NETWORK BASEBALL
[0085] 3--COLLABORATION
[0086] 4--AD HOC NETWORK DISCOVERY
[0087] If the user selects the ad hoc network discovery option, then the user can select one of four network discovery options in a sub-menu:
[0088] a-SELECT ALL AD HOC NETWORKS
[0089] b-SELECT PARTICULAR DEVICE CLASS
[0090] c-SELECT PARTICULAR SERVICE CLASS
[0091] d-SELECT PARTICULAR SERVICE ATTRIBUTE
[0092] e-SELECT CLASSES OF DEVICES TO BE BLOCKED
[0093] f-QUICK SEARCH
[0094] The sub-menu enables the user to specify the type of ad hoc network characteristics of interest. The user may select option b-SELECT PARTICULAR DEVICE CLASS using keypad 208, if he/she is looking for services such as a printer, fax machine, or photocopier. These preferences can be used to configure the inquiry by the arriving device 100 for a specific class of device, such as a printer or fax machine. The user may select option c-SELECT PARTICULAR SERVICE CLASS using keypad 208, if he/she is looking for general applications such as distributed games or other collaborative activities or a list of all user names. These preferences can be used to configure service requests by the arriving device for generic service classes such as games. The user may select option d-SELECT PARTICULAR SERVICE ATTRIBUTE using keypad 208, if he/she is looking for a specific application program or specific member names. These preferences can be used to configure service requests by the arriving device for specific service attributes such as "Network Baseball" or "John's Laptop".
[0095] The user is given a "QUICK SEARCH" option in the initial menu 205
displayed on the device 100 of FIG. 1, which checks the data gathered in the inquiries it has made, to determine whether the class-of-device (CoD) field for a responding device has the status of "AD HOC NETWORK INFORMATION PROVIDER". If so, this will cut short the search for information characterizing that particular ad hoc network.
[0096] The user is now ready to start the ad hoc network discovery menu option listed on the initial menu 205 of FIG. 1. When the user's wireless device arrives within the communication range of any member of one of the ad hoc networks 102 or 112, its inquiry signals are answered by the first member detecting the inquiry. For example if that first member is the ad hoc network information provider 106 in the baseball ad hoc network 102, the ad hoc network information provider 106 responds over link 130 with information accessed from its service registry characterizing the ad hoc network. If, instead, a non-information provider device 108 in the ad hoc network 102 is the first to respond to the inquiry signals of the arriving device 100, the device 108 responds with the address of the ad hoc network information provider 106. The user's arriving device 100 then pages the ad hoc network information provider 106 to obtain information characterizing the ad hoc network 102. A similar inquiry and response will be obtained from the ad hoc network information provider 116 in the collaboration ad hoc network 112, the ad hoc network information provider 116 responding over link 130' with information accessed from its service registry characterizing the ad hoc network 112.
[0097] The user's wireless device 100 then compiles an ad hoc network discovery menu in the arriving device, that lists the characteristics of the ad hoc networks within its range. The ad hoc network discovery menu lists the characteristics of each responding ad hoc network, in accordance with the type of characteristics of interest to the user. If the user did not specify characteristics of interest, then the network discovery menu ranks the ad hoc networks by the received signal quality from the devices in each respective ad hoc network. The access code for each ad hoc network is associated with each respective entry in the menu. When the user selects an entry from the menu, the arriving device automatically joins the selected ad hoc network.
[0098] Four example wireless standards will be described in detail, to embody the ad hoc network invention: [1] the Bluetooth standard, [2] the IEEE 802.11 Wireless LAN standard, [3] the HIPERLAN Type 1 standard, and [4] he HIPERLAN Type 2 standard. However, in addition to these four wireless standards, the invention also applies to other wireless standards. The invention's principle of an ad hoc network information provider that furnishes records characterizing the ad hoc network to inquiring devices, is equally useful in many other wireless standards. The invention applies, for example, to the Infrared Data Association (IrDA) standard, the Digital Enhanced Cordless Telecommunications (DECT) standard, the Shared Wireless Access Protocol (SWAP) standard, the IEEE 802.15 Wireless Personal Area Network (WPAN) standard, the Japanese 3rd Generation (3G) wireless standard, and the Multimedia Mobile Access Communication (MMAC) Systems standard of the Japanese Association of Radio Industries and Businesses. The invention enables each of these wireless standards to provide an ad hoc network information provider that furnishes records characterizing the ad hoc network to inquiring devices.
EXAMPLE OF THE INVENTION IMPLEMENTED IN THE BLUETOOTH SHORT RANGE WIRELESS TECHNOLOGY
[0099] FIG. 1A shows three Bluetooth ad hoc networks 102, 112, and 122 and the passenger's arriving Bluetooth device 100 currently operating in the airport lounge. When the user's Bluetooth device arrives within the communication range of any member of one of the ad hoc networks, its inquiry signals are answered by the first member detecting the inquiry. For example if that first member is the ad hoc network information provider 106 in the ad hoc baseball piconet 102, the ad hoc network information provider 106 responds over link 130 with information accessed from its SDP service registry characterizing the ad hoc network, as shown in FIG. 1B. If, instead, an ordinary slave device 108 in the ad hoc network 102 is the first to respond to the inquiry signals of the arriving device 100, the slave 108 responds over link 131 with the address of the ad hoc network information provider 106, as shown in FIG. 1B. The user's arriving device 100 then pages the ad hoc network information provider 106 to obtain information characterizing the ad hoc network 102.
[0100] FIGS. 1A and 1B show the ad hoc baseball piconet 102 has its master device 104 connected by link 107 to the ad hoc network information provider 106 which is a slave to the master device 104, and the master connected by link 109 to slave device 108. FIGS. 1A and 1B also show the ad hoc collaboration piconet 112 with master device 114 connected by link 117 to the ad hoc network information provider 116 which is a slave to the master device 114, and connected by link 119 to slave device 118. FIGS. 1A and 1B further show the ad hoc Internet gateway piconet 122 with master device 124 connected by link 127 to the ad hoc network information provider 126 which is a slave to the master device 124, and connected by link 129 to slave device 128. FIG. 1B shows the arriving device 100
browsing or searching the responding remote Bluetooth devices and accessing the service records of the ad hoc network information provider devices in multiple ad hoc networks. The ad hoc network information provider 116 in the ad hoc collaboration piconet 112, responds over link 130' with information accessed from its SDP service registry characterizing the ad hoc network 112. The ad hoc network information provider 126 in the ad hoc Internet gateway piconet 122, responds over link 130" with information accessed from its SDP service registry characterizing the ad hoc network 122.
[0101] FIG. 1C is a network diagram showing the arriving device 100 of FIG. 1B selecting attributes of interest in the accessed service records or determining the characteristics of the received signals from the master devices 104, 114, and 124 over the respective links 140, 140', and 140" in the respective ad hoc networks 102, 112, and 122. The arriving device selects attributes of interest in the accessed service records or determines the characteristics of the received signals from the master devices 104, 114, and 124 in the multiple piconets. The invention then compiles a network discovery menu in the arriving device, that lists the characteristics of the ad hoc networks within its range.
[0102] FIG. 1D is a network diagram showing the arriving device 100 of FIG. 1C forming a network discovery menu, as shown in FIG. 2B, including descriptions of ad hoc network characteristics in the multiple ad hoc networks 102, 112, and 122, such as the application programs they are running, derived from the service records and listed according to the selected attributes or ranked according to the signal characteristics. The network discovery menu lists the characteristics of each responding ad hoc network, in accordance with the type of characteristics of interest. If the user did not specify characteristics of interest, then the network discovery menu ranks the ad hoc networks by the received signal quality from the master device in each respective ad hoc network. The access code for each ad hoc network is associated with each respective entry in the menu, as shown in FIG. 2B. The access code addresses the packet to the master device in the selected ad hoc network. When the user selects an entry from the menu, the arriving device uses the access code to automatically join the selected ad hoc network.
[0103] FIG. 1E is a network diagram showing an alternate embodiment of the invention, wherein an ad hoc network 102' can have multiple ad hoc network information provider devices. The alternate ad hoc Internet gateway piconet 122' has multiple ad hoc network information providers 126 and 128. FIG. 1F shows the alternate embodiment in greater detail, wherein the slave(1) device 106 is the primary ad hoc network information provider device and slave(2) device 108 is the backup ad hoc network information provider device. A primary and a secondary ad hoc network information provider are created in each ad hoc network. The backup device can serve as a hot standby that assumes the role of the primary device when the original primary device leaves the ad hoc network. Either the master device 104 or a slave device can be either the primary or the backup ad hoc network information service provider.
[0104] FIG. 1G shows the alternate embodiment of the invention of FIG. 1E, wherein all of the devices 100, 104, 106, 108, 100' and 106' in the ad hoc network 102" are ad hoc network information provider devices. Many or all of the devices in an ad hoc network can assume the role of ad hoc network information provider. Then, when an arriving device sends an inquiry to the ad hoc network, any device can respond in the role of an ad hoc network information provider. Updated information is shared with the master device 104 and broadcast to all other slave devices 100, 106, 108, 100' and 106' in the ad hoc network over links 107, 109, 130, 141, and 143. Each device in the ad hoc network then stores a dynamic service record in its respective SDP service registry, containing the updated information.
[0105] FIG. 2A is a functional block diagram of the arriving wireless device 100 of FIG. 1. This figure applies to all wireless standards supporting ad hoc networks. Wireless device 100 can be embodied as a laptop computer, palmtop computer, handheld personal computer, pen-based computer, personal digital assistant (PDA), handheld scanner and data collector, handheld printer, or the like. The functional block diagram of FIG. 2A shows the various program modules stored in its memory 202 for the transport protocol group 214, middleware protocol group 224, and application group 234. The memory 202 is connected by the bus 204 to the radio 206, the keypad 208, the central processor 210, and the display 212.
[0106] For the Bluetooth standard, the radio 206 operates in the 2.4 GHz ISM radio band and uses Gaussian frequency shift keying (GFSK) modulation with one symbol per bit, to provide a gross bit rate of 1 Mbps. The 2.4
GHz ISM radio band is divided into 79 channels, each being 1 MHz wide. The radio 206 operates in a frequency-hopping spread spectrum (FHSS) pattern at a rate of 1600 hops per second. The pattern of the hops is a pseudo-random pattern which is based on the device's Bluetooth Device Address (BD_ADDR) value. The radiated peak output power of the radio 206
for a class 3 Bluetooth device is approximately one milliwatt (0 dBm), giving it a maximum communicating distance of approximately 10 meters. Class 2 devices operate at 2.5 milliWatt (4 dBm). Class 1 devices operate at 100 milliWatt (20 dBm), giving them a maximum range of 100 meters.
[0107] The various program modules stored in the memory 202 of FIG. 2A are sequences of operational instructions which, when executed by the central processor 210, carry out the methods of the invention. The application group 234 includes Create Registry For New Member Of Piconet application program 280 (FIG. 3a), Initial Menu application program 300 (FIG. 3b), Ad Hoc Network Search application program 412 (FIG. 3d), Service Record Update application program 330 (FIG. 3e), Network Discovery Menu application program 340 (FIG. 3f), Network Baseball application program 320 (FIG. 3c), Network Collaboration application program 350 (FIG. 3f). Also included are active SDP service registry 600 (FIG. 5) and network discovery table 360. Also included is the Search Options List table 700, which is selected by the user from the initial menu 205 of FIG. 1. Also included is the inquiry response table 710, which lists the essential information gathered from inquiry response messages, which is performed by the link controller in the user's device 100. This information is required to make a connection with any of the responding wireless devices. Also included is the network ranking table 720. The ranked ad hoc networks are listed in the ranking table 720 of FIG. 2A. Also included is the frequency hop synchronization (FHS) packet buffer 515.
[0108] The middleware protocol group 224 includes the Service Discovery Protocol 226 and the Object Exchange 228. The transport protocol group 214 includes the Logical Link Control and Adaptation Protocol (L2CAP) 220, the Link Controller and Baseband 216, and the Link Manager 218. The Link Controller carries out link level operations over several packet durations in response to higher level commands from the Link Manager. The Baseband handles channel coding and decoding and low level timing control and management of the link within a single data packet transfer.
[0109] FIG. 2B shows an example appearance of the arriving wireless device 100. This figure applies to all wireless standards supporting ad hoc networks. It shows the ad hoc network discovery menu displayed on display 212 to the user with the discovered ad hoc networks ranked by received signal strength. The arriving device 100 determined the characteristics of the received signals from the master devices 104, 114, and 124 over the respective links 140, 140', and 140" in the respective ad hoc networks 102, 112, and 122 in FIG. 1C. The arriving device 100 then compiles the network discovery menu in the arriving device, that ranks the ad hoc networks within its range by the received signal strength or other metric of the received signal quality. The arriving device 100
forms the network discovery menu, as shown in FIG. 2B, including descriptions of ad hoc network characteristics in the multiple ad hoc networks 102, 112, and 122, such as the application programs they are running, derived from the service records and listed according to the selected attributes or ranked according to the signal characteristics. If the user did not specify characteristics of interest, then the network discovery menu ranks the ad hoc networks by the received signal quality from the master device in each respective ad hoc network. The access code for each ad hoc network is associated with each respective entry in the menu, as shown in FIG. 2B. The access code addresses the packet to the master device in the selected ad hoc network. The figure shows the ad hoc network discovery menu in the arriving device 100, with hyperlinks 235
displayed with the discovered ad hoc networks, to enable the user to quickly join a selected ad hoc network. The first ad hoc network 102 is displayed with the hyperlink "ACCESS_CODE.sub.--1 ". The second ad hoc network 112 is displayed with the hyperlink "ACCESS_CODE.sub.--2". The third ad hoc network 122 is displayed with the hyperlink "ACCESS_CODE.sub.--3". When the user selects an entry from the menu, the arriving device uses the access code to automatically join the selected ad hoc network. The ad hoc network discovery menu of FIG. 2B lists the ad hoc networks in the order of the ad hoc baseball piconet 102 being the strongest, the ad hoc collaboration piconet 112 being the second strongest, and the public Internet gateway piconet 122 being the third strongest in received signal quality.
[0110] FIG. 2C shows an example appearance of the arriving wireless device 100. This figure applies to all wireless standards supporting ad hoc networks. It shows the ad hoc network discovery menu displayed to the user listing the discovered ad hoc networks by user selected characteristics, such as by user names. In this example, the user has selected option c-SELECT PARTICULAR SERVICE CLASS of the Initial menu 205
of FIG. 1, for example, looking for a list of all member names in the ad networks 102, 112, and 122. This preferences is used to configure the SDP service requests to the ad hoc network information providers by limiting the requests to the service class of User Names. The arriving device 100
then compiles the network discovery menu in the arriving device, that lists the ad hoc networks within its range by the names of the members in the networks. The arriving device 100 forms the network discovery menu, as shown in FIG. 2C, including descriptions of ad hoc network characteristics in the multiple ad hoc networks 102, 112, and 122, such as the application programs they are running, derived from the service records and listed according to the selected service class of User Names. The access code for each ad hoc network is associated with each respective entry in the menu, as shown in FIG. 2B. When the user selects an entry from the menu, the arriving device uses the access code to automatically join the selected ad hoc network. The ad hoc network discovery menu of FIG. 2C lists the ad hoc networks in the order of the user names, grouping them in their respective ad hoc networks.
[0111] FIG. 3 is a network flow diagram of the process flow in the ad hoc network 102 as the master Bluetooth device 104 connects with a first slave device 106 which becomes the ad hoc network information provider and then connects with a second slave device 108 which is not an ad hoc network information provider. The diagram continues by showing the process flow for the arriving Bluetooth device 100 running in the ad hoc network discovery mode and interacting with the ad hoc network 102 to prepare and display an ad hoc network discovery menu. Starting at step 250 for the master device 104 in FIG. 3, when the ad hoc network 102 is initially formed between the master 104 and the first slave Bluetooth device 106, the slave assumes the role of an ad hoc network information provider for the new piconet 102, in step 252. This part of the process is shown in greater detail in the flow diagram of FIG. 3A. In step 254, the slave 106 allocates a browsing hierarchy of service classes in its SDP service registry 600, as shown in FIG. 5, and waits for any update message from the master in step 255. The service classes in the SDP service registry 600 will provide a record to characterize the ad hoc network 102. Characteristics of the ad hoc network 102 to be stored in the SDP service registry 600 can include the type of distributed application program currently running, the number of members, the identity of its members, and the like.
[0112] As additional slave devices, device 108 for example, are added to the ad hoc network 102 and participate in the distributed application of the ad hoc network 102, they contribute to altering the status of the network 102. In order to maintain a record of the current status of the ad hoc network 102, each slave device 108 sends update messages to the master device 104, as shown in step 261. This part of the process is shown in greater detail in the flow diagram of FIG. 3C. The update messages are relayed in step 262 to the ad hoc network information provider 106, to update its SDP service registry 600, as shown in step 264. This part of the process is shown in greater detail in the flow diagram of FIG. 3A. This information can be frequently updated in the SDP service registry 600 to give the current state of an activity, such as the score of a collaborative baseball game.
[0113] Step 256 shows the master 104 linking with the second slave device 108. In one embodiment, if the slave is not the first slave in the piconet, then it assumes the status of not being an ad hoc network information provider, and therefore requests the address of the ad hoc network information provider 106 in step 258. Second slave device 108
then writes in its memory the address of the ad hoc network information provider 106 and its own status as a non-provider, as shown in step 260. This part of the process is shown in greater detail in the flow diagram of FIG. 3A.
[0114] When the new Bluetooth device 100 arrives within the communication range of any member of the ad hoc network in step 266, it begins searching with inquiry messages. This part of the process is shown in greater detail in the flow diagram of FIG. 3D. The browsing signals in step 268 are answered by the second slave device 108 detecting the inquiry in step 267, in this example. Since device 108 is an ordinary slave device in the ad hoc network 102, the slave 108 responds with the address of the ad hoc network information provider 106. The arriving device 100 then pages the ad hoc network information provider in step 270
to obtain information characterizing the ad hoc network 102. The ad hoc network information provider 106 responds in step 272 with information accessed from its SDP service registry 600 characterizing the ad hoc network 102, which it returns in step 274. The invention then compiles a network discovery menu in the arriving device in step 276 of FIG. 3. This part of the process is shown in greater detail in the flow diagram of FIG. 3F. The network discovery menu lists the characteristics of the ad hoc networks within its range. When the user selects an entry from the menu, the arriving device automatically joins the selected ad hoc network.
[0115] FIG. 3A is a flow diagram of the SDP service registry creation application program 280 in a Bluetooth device, for creating the SDP service registry in the device when the device becomes a member of an ad hoc network. The diagram shows that a first occurring slave device becomes the ad hoc information provider device for the ad hoc network and that subsequent devices are not ad hoc information provider devices. In an alternate embodiment, one or more subsequent devices can also become ad hoc network information provider devices. The SDP service registry creation application program 280 begins with step 282 where the device enters connected state in a piconet and has been assigned a member number (AM_ADDR) by the master device. Then step 283 decides whether this device is the first slave (AM_ADDR=1), which in this embodiment becomes the ad hoc network information provider. If this device is the first slave, then the program writes the device's status of "AD HOC NETWORK INFORMATION PROVIDER" in two places. Step 289 writes this status in the class-of-service (CoD) field 522 of the FHS packet buffer 515 in FIG. 4B. Then Step 290 writes this status as the attribute 614 in the SDP Service Registry 600 of FIG. 5. Then step 292 allocates a browsing hierarchy of service classes in the ad hoc network information provider's SDP service registry 600, as shown in FIG. 5. An example of such service classes is:
[0116] [1] PROGRAM TYPES IN THIS PICONET
[0117] [2] MEMBERS IN THIS PICONET
[0118] [3] ENCRYPTION TYPE IN THIS PICONET
[0119] [4] NUMBER OF DEVICES IN THIS PICONET
[0120] [5] OTHER SERVICE CLASSES IN PICONET
[0121] Step 292 then flows to step 295 which transfers the program flow to the Initial Menu application program (FIG. 3B). Step 292 also flows to step 294 which is a daemon thread that waits for any update message from other devices in this piconet relayed by the master. Step 294 flows to step 296 which receives service attribute update messages relayed by master. Then step 298 updates service attributes in ad hoc network information provider SDP service registry 600. Step 298 then loops back to step 294 of the daemon thread.
[0122] If the decision in step 283 was that this device is not first slave, then the program flows to step 284 which requests the address of the ad hoc network information provider from the master device. Then step 286 writes the device's status as "non-information provider" as an attribute 646 in its SDP service registry 640 of FIG. 5A. Then step 288
writes the address of the ad hoc network information provider as an attribute 648 in its SDP service registry 640.of FIG. 5A. Step 288 then flows to step 295 which transfers the program flow to the Initial Menu application program (FIG. 3B).
[0123] FIG. 3B is a flow diagram of the initial menu application program 300 in any Bluetooth device, for creating the initial menu 205 displayed to the user for selecting the ad hoc network discovery mode as shown in FIG. 1. A sub-menu can be displayed to enable the user to select a particular device class, a particular service class, and/or a particular service attribute to search for in the remote ad hoc networks.
[0124] The user of the arriving Bluetooth device can specify the type of ad hoc network characteristics of interest. The user may be looking for services such as a printer, fax machine, or public Internet gateway. These preferences can be used to configure the inquiry by the arriving device for a specific class of device, such as a printer or fax machine. The user may be looking for applications such as distributed games or other collaborative activities. These preferences can be used to configure SDP service requests by the arriving device for generic service classes such as games or specific service attributes such as application programs or member names.
[0125] The initial menu application program 300 begins with step 302 to display the initial menu 205. An example of the initial menu 205 is:
[0126] 1--TELEPHONE, INTERNET, FILE SHARING
[0127] 2--NETWORK BASEBALL
[0128] 3--COLLABORATION
[0129] 4--AD HOC NETWORK DISCOVERY
[0130] Then step 304 waits for the user to enter a menu option selection.
[0131] If step 305 determines that the user selects option 1--TELEPHONE, INTERNET, FILE SHARING, then the program flows to step 306 to go to the telephone, Internet, file sharing sub-menu.
[0132] If step 307 determines that the user selects option 2--NETWORK BASEBALL, then the program flows to step 308 go to ad hoc network baseball application program (FIG. 3C) If step 309 determines that the user selects option 3--COLLABORATION, then the program flows to step 310
to go to the ad hoc network collaboration application program (FIG. 3G)
[0133] If step 311 determines that the user selects option 4--AD HOC NETWORK DISCOVERY, then the program flows to step 312 to display the sub-menu. The sub-menu has six choices:
[0134] a--SELECT ALL AD HOC NETWORKS
[0135] b--SELECT PARTICULAR DEVICE CLASS
[0136] c--SELECT PARTICULAR SERVICE CLASS
[0137] d--SELECT PARTICULAR SERVICE ATTRIBUTE
[0138] e--SELECT CLASSES OF DEVICES TO BE BLOCKED
[0139] f--QUICK SEARCH
[0140] Step 315 determines if b--SELECT PARTICULAR DEVICE CLASS, c--SELECT PARTICULAR SERVICE CLASS, d--SELECT PARTICULAR SERVICE ATTRIBUTE, or e--SELECT CLASSES OF DEVICES TO BE BLOCKED was selected. If it was, then step 318 sets the class or attribute to the user's keypad entry and the program flows to the ad hoc network search application program (FIG. 3D). If Step 315 determines that "ALL NETWORKS" was selected, then step 316
sets both attribute and class to NULL and the program flows to the ad hoc network search application program (FIG. 3D). The user is given a "QUICK SEARCH" option in the initial menu 205 displayed on the device 100 of FIG. 1, which checks the data gathered in the inquiry response table 710
to determine whether the class-of-device (CoD) field 522 for a responding device has the status of "AD HOC NETWORK INFORMATION PROVIDER".
[0141] FIG. 3C is a flow diagram of an example network baseball application program 320 in a Bluetooth device, for conducting a game of network baseball in response to the user's selection from the initial menu application of FIG. 3B. The program includes a master broadcast routine 324 to forward new data to the ad hoc network information provider, if the device is a master device. The program includes an update score routine 326 to call an update routine shown in FIG. 3E, that creates updated service records to be sent to the master device for forwarding new data to the ad hoc network information provider. The program includes a play ball routine which is the core game program that generates new game data and calls the update routine shown in FIG. 3E to creates updated service records to be sent via the master device to the ad hoc network information provider.
[0142] The network baseball application program 320 begins with step 322
which determines that if the local device is a piconet master, then the program flows to the broadcast routine 324, otherwise it flows to update score routine 326.
[0143] The master broadcast routine 324 functions if the instant device is a master device. The master broadcast routine 324 determines if new data has been received from a slave device, and if it has, then the program forwards the new data to the ad hoc network information provider. If the new data has been generated by the master device, then the program sends the new data to the ad hoc network information provider. Otherwise the program flows to the update routine 326.
[0144] The update score routine 326 updates the game scoreboard with new data concerning the score. The routine then calls service record update routine (FIG. 3E) to create an updated service record. If the local device is not the ad hoc network info provider, then the program sends the updated service record to the master device for forwarding to the ad hoc network information provider. The update score routine 326 then flows to the play ball routine 328.
[0145] The play ball routine 328 contains the core network game program that generates new game data. The program then calls the service record update routine (FIG. 3E) to create updated service records. If the local device is not the ad hoc network info provider, then the program sends the updated service record to the master device for forwarding to the ad hoc network info provider.
[0146] FIG. 3D is a flow diagram of the ad hoc network discovery application program 412 in a wireless device. This figure applies to all wireless standards supporting ad hoc networks. The ad hoc network discovery application program 412 conducts ad hoc network discovery in response to the user's selection from the initial menu application of FIG. 3B. The program controls the interaction of the arriving wireless device 100 with remote ad hoc networks, and passes the resulting ranked list of discovered ad hoc networks to the ad hoc network discovery menu program of FIG. 3F.
[0147] The user of the arriving wireless device can specify the type of ad hoc network characteristics of interest. The user may be looking for services such as a printer, fax machine, or public Internet gateway. These preferences can be used to configure the inquiry by the arriving device for a specific class of device (CoD), such as a printer or fax machine. The user may be looking for applications such as distributed games or other collaborative activities. These preferences can be used to configure SDP service requests by the arriving device for generic service classes such as games or specific service attributes such as application programs or member names.
[0148] If the arriving device comes within the communications range of several ad hoc networks, it gathers information characterizing each ad hoc network from the respective ad hoc network information providers. The invention then compiles a network discovery menu in the arriving device, that lists the characteristics of the ad hoc networks within its range. The network discovery menu lists the characteristics of each responding ad hoc network, in accordance with the type of characteristics of interest. If the user did not specify characteristics of interest, then the network discovery menu ranks the ad hoc networks by the received signal quality from the master device in each respective ad hoc network. The access code for each ad hoc network is associated with each respective entry in the ad hoc network discovery menu. When the user selects an entry from the menu, the arriving device automatically joins the selected ad hoc network.
[0149] The ad hoc network discovery application program 412 of FIG. 3D has its entry point from the initial menu application (FIG. 3B) at step 400. The decision step 402 determines whether a network application has been selected, such as the network baseball or collaboration program. If it has, then the program flows to the selected step 404 or 406. Step 404
goes to the ad hoc network baseball application program of FIG. 3C. Step 406 goes to the ad hoc network collaboration application program of FIG. 3G. Both the ad hoc network baseball application program and the ad hoc network collaboration application program make calls to the service record update application program of FIG. 3E and send updated records to the master for relay to the ad hoc network information provider.
[0150] If the decision step 402 of FIG. 3D determines that the ad hoc network discovery option has been selected by the user, then the program flows to step 412 to begin the ad hoc network search program. Step 413
calls the link controller to send inquiries to remote wireless devices in the area and to build the inquiry response table 710. At any particular time a Bluetooth device is in one of several different states. Currently the user's device 100 is in the standby state, it is inactive, no data is being exchanged, and the radio 206 is not on. Step 413 invokes the link controller enter the inquiry state and to begin the process of attempting to discover all Bluetooth devices in the ten meter communications range. The device 100 begins to periodically transmit inquiry packets. FIG. 4A shows the Bluetooth packet structure for an inquiry packet 500 sent by user's arriving device 100. The general inquiry access code (GIAC) of the packet 500 is recognized by all Bluetooth devices as an inquiry message.
[0151] During the inquiry procedure invoked by step 413 of FIG. 3D, any other wireless devices that are in the inquiry scan state, are scanning for the receipt of inquiry packets 500. If a remote wireless device in the inquiry scan state receives the inquiry packet 500, it will respond with an inquiry response packet 510 that has sufficient information to enable the user's inquiring device 100 to build the inquiry response table 710 of essential information required to make a connection. Any remote wireless device recognizing inquiry packet 500 can respond. FIG. 4B shows the Bluetooth frequency hop synchronization (FHS) packet structure for an inquiry response packet 510. The example shown is the packet 510 sent by ad hoc network information provider 106 in FIG. 1A. FIG. 4B also shows the FHS packet buffer 515 in which the packet 510 has been constructed by device 106. As discussed for FIG. 3A, whenever a wireless device becomes an ad hoc network information provider, step 289
writes into the class-of-device (CoD) field 522 of its FHS packet buffer 515, its new status as "AD HOC NETWORK INFORMATION PROVIDER".
[0152] In step 413 of FIG. 3D, the user's inquiring device 100 constructs the inquiry response table 710 with the information in the inquiry response packets 510 received from responding devices, such as device 106. The inquiry response table 710 shows the essential information gathered by the link controller in the user's inquiring device 100, which is required to make a connection with any of the responding wireless devices. Any responding devices are flagged, such as device 106, that have a class-of-device (CoD) field 522 with the status of "AD HOC NETWORK INFORMATION PROVIDER".
[0153] There are several options that can be programmed for the decision step 414 of FIG. 3D, for processing the data gathered in the inquiry response table 710. Decision step 414 can be programmed to determine whether the class-of-device (CoD) field 522 for a responding device has the status of "AD HOC NETWORK INFORMATION PROVIDER". If so, then step 415
flows to step 416 to search the service records of the ad hoc network information provider. Since an analysis of the class-of-device (CoD) field 522 only requires an inquiry response packet 510 of FIG. 4B, and does not require the completion of a connection between the two devices, this option provides a quick search of responding devices. The user is given a "QUICK SEARCH" option in the initial menu 205 displayed on the device 100 of FIG. 1, which invokes step 415 to check the data gathered in the inquiry response table 710 to determine whether the class-of-device (CoD) field 522 for any responding device has the status of "AD HOC NETWORK INFORMATION PROVIDER".
[0154] Decision step 414 can be programmed to determine whether the class-of-device (CoD) field 522 for a responding device has another type of user-specified class-of-device (CoD) indicated in field 522 that matches an entry in the search options list table 700. If so, then step 417 flows to step 418 to search the service records of the other class of device. This option can be taken, for example, where the inquiring user has specified in the search options list table 700 that he/she wants to search for a class of device such as "PHOTOCOPIER". An optional program branch can be executed at this point for optional special processing of the service records from such a responding device. Thus, any devices with a desired class-of-device of "PHOTOCOPIER" would be is passed to step 418. In this example, none are found.
[0155] Decision step 414 can be programmed to determine whether the class-of-device (CoD) field 522 for a responding device has no user-specified class-of-device (CoD) indicated in field 522 that matches an entry in the search options list table 700. If so, then the user's device 100 can be programmed in step 420 to browse the service records of that device. This is a useful option where there is a chance that some ad hoc network information provider devices will have over-written the status value stored in their class-of-device field 522. An alternate program option is to allow step 420 to browse all responding the devices, without regard to the class-of-device (CoD) indicated in field 522.
[0156] Decision step 414 can be programmed to determine whether the user has specified a class-of-device (CoD) to be blocked. If a class-of-device has been specified to be blocked, then the program identifies any devices listed in the Search Options List 700 as having the blocked class-of-device. Any devices responding to the inquiry that have a class-of-device (CoD) matching one of the blocked CoDs specified by the user, is ignored. Thus, in the example above, any devices with a blocked class-of-device of "PRINTERS", "FAX MACHINES", or ADVERTISEMENTS" is ignored.
[0157] The requesting wireless device 100 goes through the steps 416, 418, and 420 of FIG. 3D, of searching and/or browsing for services in the SDP service records in the responding device 106. As was described above with respect to FIG. 3A, the ad hoc network information provider device 106
has constructed the SDP service registry 600 which stores service records in a browsing hierarchy as shown in FIG. 5. The service records are arranged into a hierarchy structured as a tree which can be browsed. The requesting device 100 can begin by examining the public browse root 602, and then follow the hierarchy out to service classes which are the branches of the tree, and from there to the leaf nodes, where individual services are described in service records. To browse service classes or to get specific information about a service, the requesting device 100
and the responding device 106 exchange messages carried in SDP packets. There are two types of SDP packets discussed here, the SDP Service Search Attribute Request packet 560 shown in FIG. 4E and the SDP Service Search Attribute Response packet 570 shown in FIG. 4F. The SDP Request packet 560 carries the SDP Service Search Attribute Request 567 which includes a service search pattern 568 and an attribute ID list 569. The service search pattern 568 is the description of the pattern for the responding device 106 to match in its registry 600 of FIG. 5. If the responding device 106 has the service requested, it responds with the service's handle. The service handle identifies the service for which the attributes are being requested. The attribute ID list 569 identifies the attributes that the requesting device 100 is requesting. The SDP response packet 570 returned by the responding device 106 in FIG. 4F, carries the SDP Service Search Attribute Response 577 which includes a service record handle list 578 and the attributes 579. The service record handle list 578 and the attributes 579 are then passed to step 421 of FIG. 3D, where the attributes for "INFO_PROVIDER" are examined to determine whether the responding device 106 in an ad hoc network information provider in a piconet. It is seen in FIG. 4F that the attribute 614" indicates that responding device 106 is in fact an ad hoc network information provider.
[0158] Steps 416, 418, and 420 of FIG. 3D, flow to step 421 which examines the service records to identify whether the responding device is an ad hoc network information provider for its respective piconet. If decision step 422 determines that the responding device 106 is an ad hoc network information provider, as specified in attribute 614 of the registry 600
of FIG. 5, then the program passes to step 426. Alternately, if decision step 422 determines that the responding device 108 is not an ad hoc network information provider, as specified in attribute 646 of the registry 640 of FIG. 5A, then step 424 uses the address of the ad hoc network information provider 106 provided in attribute 648 of FIG. 5A, which is in the same piconet as the responding device 108, to page the ad hoc network information provider 106 to obtain and search its SDP service records in its registry 600 of FIG. 5. Step 424 flows to step 426 which lists the service records of all ad hoc network information providers 106, 116, and 126 in the responding piconets. Step 426 lists the service records accessed from service registries 600, 600A, and 600B in FIGS. 5, 6A, and 6B, respectively.
[0159] In an alternate embodiment of the invention, the address of the Information Provider device in a new ad hoc network can be a default address. For example, when the invention in embodied in the Bluetooth Standard, IEEE 802.11 Wireless LAN Standard, or the HIPERLAN Type 2
Wireless LAN Standard, the Information Provider device in a new ad hoc network can have a default address to allow mobile stations to locate and identify the information provider device in an ad hoc network. The default address is known to every arriving device. For example, in the Bluetooth Standard, the default address can be the address of the first slave in the ad hoc network. As another example, in the IEEE 802.11
Wireless LAN Standard, the default address can be the address of the first device or alternately the second device in the ad hoc network. As still another example, in the HIPERLAN Type 2 Wireless LAN Standard the default address can be the address of the central controller device or alternately the second device in the ad hoc network. When an arriving device is close enough to the ad hoc network to either receive a periodic beacon signal from a device in that network or alternately to receive a response to its inquiry, the arriving device will know the default address of the information provider device in that network. If the arriving device is running the ad hoc network discovery menu option, then the arriving device can directly address a request to the information provider using the default address, to obtain the service records characterizing the ad hoc network.
[0160] Alternately, if decision step 422 of FIG. 3D, determines that the responding device is not aware of the ad hoc network provider invention, then the program flows to step 423. An Un-Aware wireless device does not have knowledge of the information provider feature. When an Un-Aware device receives the SDP service search attribute request of FIG. 4E from the user's arriving device 100, the attribute ID request list 569
includes the UUID: INFO_PROVIDER attribute 614'. The Un-Aware device does not have this attribute in its service registry, and thus it will respond with an SDP ErrorResponse that the request contained an invalid ServiceRecordHandle. The user's arriving device 100 will detect this in 421. Then the program flows to step 423 where the responding device can be listed with whatever information can be derived from its inquiry response packet 510 of FIG. 4B, including its Class-of-Device (CoD), such as "Fax_Machine" or "Printer". This information can be listed with the designation "Un-Aware Device", in the Ad Hoc Network Discovery Menu. If there are some general UUIDs that can be formulated by the user's device 100 in a subsequent SDP service search attribute request 560 of FIG. 4E, then step 423 can retry another service request. If the retried service request results in receiving more informative attributes from the Un-Aware device in a response packet 570 of FIG. 4F, then step 423 can also have them listed in the Ad Hoc Network Discovery Menu.
[0161] Then decision step 427 determines whether the user has specified any service classes or service attributes of interest. If the user has specified any service classes or service attributes, then step 432
analyzes the specified service classes or service attributes and step 434
ranks the ad hoc networks by the specified service classes or service attributes. The ranked ad hoc networks are listed in the ranking table 720 of FIG. 2A.
[0162] Alternately, if the user has not specified any service classes or service attributes, then step 428 determines the quality of the signal characteristics of the ad hoc network master devices in the responding piconets. The quality of the signal characteristics can be measured by the received signal strength, the bit error rate, or other quality of service (QoS) metrics. Then step 430 ranks the ad hoc networks by the quality of service (QoS) metrics. The ranked ad hoc networks are listed in the ranking table 720 of FIG. 2A. Both step 430 and 434 flow to step 436 in which the program flows to the ad hoc network discovery menu application program of FIG. 3F.
[0163] Examples of the metric used to rank the ad hoc networks by the received signal quality include Bit Error Rate accumulated over time, Packet Error Rate accumulated over time, received signal strength, link quality measurements, continuous-wave interference (for example, from microwave ovens or sodium vapor street lights), co-channel interference, clear channel assessment (collision avoidance), collisions per unit time, retry counts, and frames canceled per unit time.
[0164] FIG. 3E is a flow diagram of the service record update routine 330
in any Bluetooth device, that creates updated service records to be sent to the master device for forwarding new data to the ad hoc network information provider.
[0165] As additional slave devices are added to the ad hoc network and participate in the distributed application of the ad hoc network, they contribute to altering the status of the network. In order to maintain a record of the current status of the ad hoc network, each slave device sends update messages to the master device which are relayed to the ad hoc network information provider, to update its SDP service registry. This information can be frequently updated in the SDP service registry to give the current state of an activity, such as the score of a collaborative baseball game.
[0166] The service record update routine 330 is called by the network baseball application program 320 and the network collaboration application program 350.
[0167] The service record update routine 330 SETs VALUES received from the network baseball application program 320 and the network collaboration application program 350 in a format that complies with the SDP service record format. The program then writes updated service records to local SDP service registry in the required format.
[0168] FIG. 3F is a flow diagram of the ad hoc network discovery menu program 340 in a Bluetooth device, for receiving the resulting ranked list of discovered ad hoc networks from the ad hoc network discovery application program 412 of FIG. 3D and displaying the ad hoc network discovery menu shown in FIG. 2C.
[0169] If the arriving device comes within the communications range of several ad hoc networks, it gathers information characterizing each ad hoc network from the respective ad hoc network information providers. The invention then compiles a network discovery menu in the arriving device, that lists the characteristics of the ad hoc networks within its range. The network discovery menu lists the characteristics of each responding ad hoc network, in accordance with the type of characteristics of interest. If the user did not specify characteristics of interest, then the network discovery menu ranks the ad hoc networks by the received signal quality from the master device in each respective ad hoc network. The access code for each ad hoc network is associated with each respective entry in the menu. When the user selects an entry from the menu, the arriving device automatically joins the selected ad hoc network.
[0170] The ad hoc network discovery menu program 340 begins by displaying the ad hoc network discovery menu. The example menu shown in FIG. 3F is:
1
OPTION STRING 1 "BASEBALL CUBS VS. METS 3RD INNING SCORE 2 TO 2" 2 "CAD COLLABORATION NEED HELP DESIGNING BRIDGE TRUSS" 3 "INDlVIDUALS CONNECTED TO INTERNET GATEWAY DEVICE" WAIT FOR SELECTION
[0171] The ad hoc network discovery menu program 340 waits for the user to make a selection of one of the options. If the user selects option 1, for example, then the program sends a page to the ad hoc baseball piconet master device using ad hoc baseball piconet_access_code, in order to join the ad hoc baseball piconet. If the user selects option 2, for example, then the