throbber
USOO6982962B1
`
`12
`
`United States Patent
`
`10 Patent N0.:
`
`,
`,
`US 6 982 962 B1
`
`
`Lunsford et al.
`(45) Date of Patent:
`Jan. 3, 2006
`
`(54) SYSTEM AND METHOD FOR SELECTING A
`NETWORK ACCESS PROVIDER USING A
`PORTABLE INFORMATION DEVICE
`
`(75)
`
`Inventors: Eric Michael Lunsford, San Carlos,
`CA (US); Steve Parker, Centerville,
`UT (US); David Kammer, Seattle, WA
`(US); David Moore, Riverton, UT (US)
`
`(73) Assignee: 3Com Corporation, Marlborough, MA
`(US)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U'S'C' 154(b) by 0 days.
`
`.
`(21) Appl. No.. 09/546,887
`
`(22)
`
`Filed:
`
`Apr. 10, 2000
`
`Int. CL
`(51)
`(2006.01)
`H04B 7/005
`(52) US. Cl.
`....................................... 370/278; 455/557
`_
`_
`_
`(58) Field of Clasmficatlon Search ................ 370/278,
`.379/282’ 461’ 463’ 455/426’ 556} 557’ 575
`See apphcation file for complete search hlstory.
`.
`References Clted
`U.S. PATENT DOCUMENTS
`
`(56)
`
`.................... 705/1
`1/2000 Maes et al.
`6,016,476 A *
`
`6,134,453 A * 10/2000 Sainton et al.
`..
`..... 455/553
`
`.............. 455/428
`6,208,857 B1 *
`3/2001 Agre et al.
`.............. 715/708
`6,232,970 B1 *
`5/2001 Bodnar et al.
`
`7/2001 Stewart et al.
`.............. 342/457
`6,259,405 B1 *
`
`4/2003 Kuhn et al. ............. 704/275
`6,553,345 B1 *
`5/2003 Stewart et al.
`................ 705/52
`6,571,221 B1 *
`OTHER PUBLICATIONS
`
`Specification of the Bluetooth System, “Wireless Connec-
`ti0ns Made Easy”, Specification vol. 1, Dec. 1, 1999, pp.
`1-1082.
`Specification of the Bluetooth System, “Wireless Connec-
`ti0ns Made Easy”, Specification vol. 2, Dec. 1, 1999, pp.
`1-440.
`
`* cited by examiner
`Primary Examiner—Man U. Phan
`Assistant Examiner—Toan Nguyen
`(74) Attorney, Agent, or Firm—McDonnell Boehnen
`Hulbert & Berghoff LLP
`
`(57)
`
`ABSTRACT
`
`A system and method for selecting a network access pro-
`.
`.
`.
`.
`.
`.
`v1der usmg a portable mformatlon dev1ce (PID) includes
`.
`.
`,
`con51dermg the user 5 pre-stated preferences. The pre-stated
`preferences may include, but are not limited to, reliability,
`security, signal strength, cost or appropriateness of service
`provider. The network access providers may be chosen from,
`but not limited to, a network access server at a corporate
`office or a cellular telephone. A score is calculated for each
`available network access provider and a connection is made
`based on the optimum provider that fits with the preferences
`of the user.
`
`5 Claims, 7 Drawing Sheets
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`NETWORK
`ACCESS
`SERVER
`
`PREFERENCES
`
`1
`
`Exhibit 1030
`
`Apple, et al. v. Uniloc
`|PR2019—00251
`
`Exhibit 1030
`Apple, et al. v. Uniloc
`IPR2019-00251
`
`1
`
`

`

`US. Patent
`
`Jan. 3, 2006
`
`Sheet170f7
`
`US 6,982,962 B1
`
`XEOZFMZ
`
`mmmoo<
`
`Mm>mmw
`
`wmozwmmmmmm
`
`_\.O_u_
`
`2
`
`

`

`US. Patent
`
`Jan. 3, 2006
`
`SheetZ 0f7
`
`US 6,982,962 B1
`
`>Smm_o
`
`
`
`am3FDQHDOPDQZ.
`
`>Sama
`
`mmIHO
`
`\._.sz_
`
`%H3950
`
`wo<mKMFZ_mwwD
`
`%>mt3015
`
`momwmoomm
`
`dlm
`
`a>mOEwE
`
`%m®<MOhw<F<Q
`
`
`
`OZEOUmofiminmr
`
`
`
`.20“.ZO_._.<03nE<
`
`3
`
`

`

`US. Patent
`
`Jan. 3, 2006
`
`Sheet 3 0f 7
`
`US 6,982,962 B1
`
`08\V
`
`
`
`moz<xofihomwmo
`
`
`
`Axmmov5005?.
`
`
`20.00.. 9.830005%
`
`
`m>mm>oowamosmmmmflomkzoo>zozmmdt
`6838986
`
` aESQ8005mmzoF<E<o<oz<5528v.2:
`
`Ola
`
`
`
`23vmmjoEzoox2;oz<mmm<m
`
`olmw
`
`$53585%mmw<2<2xz:
`
`m.OE
`
`4
`
`

`

`US. Patent
`
`Jan. 3, 2006
`
`Sheet 4 0f 7
`
`US 6,982,962 B1
`
`8N\
`
`Q1%>2;
`
`
`
`meO.:261.:
`
`%w<_
`5:200:vaNmN
`6%.
`I.l
`
`n__>_._:
`
`omN
`
`va
`
`<4:
`
`
`
` %mm><._._<o_w>_._n_
`
`w.0_n_
`
`5
`
`

`

`US. Patent
`
`Jan. 3, 2006
`
`Sheet 5 0f 7
`
`US 6,982,962 B1
`
`START
`
`310
`
`300
`
`
`
`
`
`
`
`EVALUATE ACCESS
`PROVIDERS AGAINST
`USER PREFERENCES
`
`340
`
`
`
`
`
`IS AUTO
`
`CONNECT FLAG
`SET ?
`
`
`
`NO
`
`OUTPUT SORTED
`
`PROVIDERS TO USER
`
`LIST OF ACCESS
`
`DETECT AVAILABLE
`ACCESS PROVIDERS
`
`
`
`
`
`
`
`320
`
`330
`
`YES
`
`350
`
`360
`
`USER SELECTS
`PROVIDER FROM
`SORTED LIST
`
`
`J K. 370
`
`CONNECT WITH
`PROVIDER
`
`END
`
`380
`
`FIG. 5
`
`6
`
`

`

`US. Patent
`
`Jan. 3, 2006
`
`Sheet 6 0f 7
`
`US 6,982,962 B1
`
`START
`
`410
`
` 330
`
`
`
`USER LISTS DIFFERENT
`PREFERENCES (RELIABILITY,
`
`COST, SIGNAL STRENGTH ...... )
`
`/ 4
`
`20
`
`430
`
`440
`
`450
`
`460
`
`470
`
`FOR EACH PREFERENCE THE
`USER INDICATES AN IMPORTANCE
`
`LEVEL (WEIGHT) Wp OR A LIMIT
`
`FOR EACH PREFERENCE A
`HEURISTIC ROUTINE hp() IS RUN TO
`GATHER INFORMATION OR MAKE
`MEASUREMENTS TO EVALUATE
`EACH ACCESS PROVIDER
`
`NETWORK ACCESS PROVIDER
`
`A NORMALIZED VALUE
`
`np(hp()) IS CALCULATED
`FOR EACH PREFERENCE
`
`CALCULATE SCORE FOR EACH
`
`SORT LIST OF ACCESS PROVIDERS
`
`BASED ON CALCULATED SCORE
`
`END
`
`480
`
`FIG. 6
`
`7
`
`

`

`US. Patent
`
`Jan. 3, 2006
`
`Sheet 7 0f 7
`
`US 6,982,962 B1
`
`float device_score[ num_devices_discovered() ];
`
`for (int i = O,
`{
`
`i < num_devices_discovered(), i++)
`
`device_score[i] = 0;
`
`for( intj = 0;j < num_properties(); j++)
`{
`
`int prop_score = test_property__of__device(j /*property number*/, i
`/*device number*l)
`float normalized_score = normalizer(j /*property number*l,
`prop_score);
`float weighted_score = normalized_score * get_weight_for_property(j
`/*property number*l);
`device_score[i] = device_score[i] + weighted_score;
`
`}
`
`} i
`
`nt prefered_device_number = 0;
`float prefered_device_score = device_score[O]
`for (int k = 1; k < num_devices__discovered(), k++)
`{
`
`if( prefered_device_score < device_score[k] )
`{
`
`prefered_device_number = k;
`prefered_device_score < device_score[k];
`
`}
`
`}
`
`FIG. 7
`
`8
`
`

`

`US 6,982,962 B1
`
`1
`SYSTEM AND METHOD FOR SELECTING A
`NETWORK ACCESS PROVIDER USING A
`PORTABLE INFORMATION DEVICE
`
`COPYRIGHT AUTHORIZATION
`
`A portion of the disclosure of this patent document
`contains material, which is subject to copyright protection.
`The copyright owner has no objection to the facsimile
`reproduction by anyone of the patent document or the patent
`disclosure, as it appears in the Patent and Trademark Office
`patent file or records, but otherwise reserves all copyright
`rights whatsoever.
`
`FIELD OF THE INVENTION
`
`to portable
`invention relates in general
`This present
`information devices. More specifically, it relates to a system
`and method for selecting a network access provider using a
`portable information device.
`
`BACKGROUND OF THE INVENTION
`
`(PID)
`the use of portable information devices
`As
`increases, reliance on PID’s to provide optimum function-
`ality does too. An example of a PID is a personal digital
`assistant (PDA), such as one of the PalmTM series of PDA’s
`offered by Palm, Inc. The PID’s include a variety of func-
`tionality, such as wireless phone or two-way radio function-
`ality.
`Typically the PID can access a data network, such as, for
`example, a local area network (LAN), a wide area network
`(WAN), or more typically, a collection of interconnected
`LANs and WANs, also known as the Internet using a
`network access provider. The network access provider can
`be accessed through a cellular telephone or through a
`computer network which essentially function as nodes to
`connect with a data network. The user of the PID typically
`has to choose between the network access providers prior to
`accessing the data network.
`There is a need to simplify the user’s experience of
`choosing a suitable connection to an optimum network
`access provider using a PID.
`
`SUMMARY OF THE INVENTION
`
`The present invention includes a system and a method for
`selecting a network access provider using a portable infor-
`mation device (PID). The system and the method of the
`present invention simplifies the user’s experience by auto-
`mating the selection process and in addition may be the
`connection process to a network access provider. The selec-
`tion and perhaps eventual connection to a network access
`provider is based upon a user’s pre-stated preferences such
`as, for example, security, reliability, signal strength, cost or
`appropriateness of service provider. The relative importance
`of the preferences to each user are also considered when
`selecting the network access provider. The service providers
`may be chosen from, but not limited to, a network access
`server at a corporate office or a cellular telephone.
`In a preferred embodiment, the method of the present
`invention includes the user indicating a level of importance
`for each preference or criterion. The preferences or criteria
`as described before include, but are not limited to, security,
`reliability, signal level, cost and ownership. The level of
`importance represents a weight for each preference and may
`be stored as a value between 0 and 1. For certain criteria that
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`cannot be normalized, such as, for example, cost, the user
`inputs minimum or maximum limit values that are used to
`define a normalization range. The method further includes a
`routine for evaluating each criteria, such as, for example, for
`the criterion cost, the routine first makes necessary mea-
`surements by getting cost estimates for the different network
`access providers and then evaluating the importance of the
`criterion.
`
`The method further includes a PID performing an inquiry
`to find available devices that provide network access. The
`PID may follow the short-range radio link guidelines speci-
`fied in the Bluetooth specification to perform an inquiry
`using the discovery protocol. The PID makes a connection
`with the devices to learn the device’s user friendly name.
`The method of the present invention then includes the PID
`computing a value or a score for each device by first running
`the heuristic routines for all the preferences and then mul-
`tiplying the weight of the preferences with the normalized
`value output by the heuristic routine.
`The method then includes sorting the list of the devices
`based upon the scores. If the user has configured the PID to
`auto-connect to the best available device for the user, the
`PID then attempts to connect to the best available device
`(device with the highest score, for example) automatically.
`The PID moves down the list of the devices if it were unable
`
`to reach the first device or network access provider.
`In an alternate embodiment, the PID may show the list of
`available devices to the user in a ranked order according to
`the calculated score. The user then selects which device to
`
`connect to using the rankings.
`The foregoing and other objects, features and advantages
`of the system and method for selecting a network access
`provider using a PID will be apparent from the following
`more particular description of preferred embodiments of the
`system and method as illustrated in the accompanying
`drawings in which like reference characters refer to the same
`parts throughout the different views. The drawings are not to
`scale, emphasis instead being placed upon illustrating the
`principles of the invention.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`inventions are
`Preferred embodiments of the present
`described with reference
`to the
`following drawings,
`wherein:
`
`FIG. 1 is a block diagram illustrating a preferred embodi-
`ment of the system of the present invention;
`FIG. 2 is a block diagram illustrating a PID according to
`an exemplary embodiment of the present invention;
`FIG. 3 is a stack layer diagram illustrating the layers of an
`RF protocol stack according to a preferred embodiment of
`the system of the present invention;
`FIG. 4 is a stack layer diagram illustrating the layers of an
`infrared protocol stack according to a preferred embodiment
`of the system of the present invention;
`FIG. 5 shows a flowchart illustrating the method of a
`preferred embodiment of the present invention;
`FIG. 6 shows a flowchart
`illustrating the method for
`evaluating the access providers in accordance with a pre-
`ferred embodiment of the present invention; and
`FIG. 7 is a listing of an exemplary functional code for
`calculating a score for different access providers in accor-
`dance with a preferred embodiment of the present invention.
`
`9
`
`

`

`US 6,982,962 B1
`
`3
`DETAILED DESCRIPTION OF PREFERRED
`EMBODIMENTS
`
`The present invention is directed to a system and a method
`for selecting a network access provider using a PID.
`FIG. 1 is a block diagram showing an exemplary embodi-
`ment of the system of the present invention. A PID 10 is able
`to interface with different network access providers such as,
`for example, a cellular telephone 12 and a network access
`server 14. The PID 10 and related devices may use a link,
`such as, for example, an RF link 15, 17 which may be
`implemented using all or parts of a specialized protocol,
`such as the Bluetooth system protocol stack. The PID 10
`includes a list of user preferences 16 that the PID 10 uses to
`evaluate the different network access providers.
`FIG. 2 is a functional block diagram showing an exem-
`plary embodiment of the PID 10 that can communicate with
`network access providers. The link interface or data inter-
`face circuitry 20 illustrates, but
`is not
`limited to,
`two
`alternative link interfaces for establishing a wireless link to
`the network access providers. The wireless link 15, 17 is
`preferably an RF link as defined by the Bluetooth commu-
`nications specification. However, the wireless link 15, 17
`can take on other forms, such as, an infrared communica-
`tions link as defined by the Infrared Data Association
`(IrDA). The PID 10 includes a processor 50 that is capable
`of executing an RF stack 150, and an IrDA stack 120 that
`communicate with a data interface circuitry 20 through bus
`110. Processor 50 is also connected through bus 110 to user
`interface circuitry 40, data storage 90 and memory 100. The
`processor 50 also includes a heuristic application 130 which
`assists in calculating the scoring function 140 to determine
`the optimum network access provider.
`in this exemplary
`Data interface circuitry 20 includes,
`embodiment, a first and second port, such as, an infrared and
`RF interface ports. The first wireless link interface, the RF
`link interface, may include a first connection 22 which
`includes radio-frequency (RF) circuitry 24 for converting
`signals into radio-frequency output and for accepting radio-
`frequency input. The RF circuitry 24 can send and receive
`RF data communications via a transceiver that establishes
`
`communication port 26. RF communication signals received
`by the RF circuitry 24 are converted to electrical signals and
`relayed to the RF stack 150 in processor 50 via bus 110. The
`radio interface 24, 26, and links 15, 17 between a PID and
`access provider devices may be implemented according to
`the Bluetooth specifications, described at www.bluetooth-
`.com, and incorporated in its entirety herein.
`The second alternative wireless link interface may include
`a second connection 28, which further includes infrared
`circuitry 30 for converting signals into infrared output and
`for accepting infrared input. An infrared communication
`port 32 may also be included within the second alternative
`link interface. The infrared circuitry 30 can send and receive
`infrared data communications via a transceiver that estab-
`
`lishes communication port 32. Infrared communication sig-
`nals received by infrared circuitry 30 are converted into
`electrical signals that are relayed to the IrDA stack 120 in
`controller 50 via bus 110. The infrared circuitry 30 operates
`according
`to
`the
`IrDA specifications
`available
`at
`www.IrDA.org.
`The two alternative link interfaces described above are
`
`merely exemplary, and additional means for implementing
`the interface between a PID and an access provider device
`may also be utilized. Although two link interfaces are shown
`in FIG. 2, there may be only one such interface in the PID
`
`4
`10. More than one link interface may be included to improve
`flexibility and to provide redundancy in case of failure of
`one of the link interfaces.
`
`A user interface circuitry 40 includes hardware and soft-
`ware components that provide user
`input and output
`resources for functions in the processor 50. The user inter-
`face circuitry 40 includes a display output 60, a display input
`70, and an additional input/output interface 80.
`The display output 60 preferably receives digital infor-
`mation representing graphical data from the processor 50
`and converts the information to a graphical display, such as
`text and or/images, for display on a display screen, for
`example.
`The display input 70 may receive data inputs, such as
`graphical data inputs, from a user of the PID 10. The
`graphical data inputs are preferably entered by the user with
`a stylus on a pressure-sensitive display screen, and may
`include text, drawings, or other objects that are capable of
`being graphically presented.
`The additional input/output interface 80 allows the user to
`enter other types of data besides graphical data into the PID
`10. For example, audio data, additional graphical data, or
`additional input, such as video camera input for example,
`may be entered through the additional input/output interface
`80. The data may also include data formatted for operation
`with particular applications on the PID 10. For example,
`email data, calendar data, contact data, database data,
`spreadsheets, notes, game data, etc may also be entered.
`Touch-sensitive screen buttons are an exemplary method for
`a user to enter control data into the PID 10.
`
`The processor 50 may include an operating system, as
`well as application and communication software, to imple-
`ment the functions of the PID 10. The operating system may
`be any suitable commercially available operating system, or
`any proprietary operating system. The operating system and
`software may be stored in the data storage 90, in the memory
`100, or may be embedded in the processor 50. Although the
`processor 50 is shown connected to the data storage 90
`through a bus 110, other configurations may also be used.
`Similarly, the memory 100 may be configured other than as
`shown in FIG. 2, and may be embedded within the processor
`50.
`
`Bluetooth is a short-range radio link intended to replace
`the cable(s) connecting portable and/or fixed electronic
`devices. Bluetooth technology features low power, robust-
`ness, low complexity and low cost. It operates in the 2.4 Ghz
`unlicensed ISM (Industrial, Scientific and Medical) band.
`Devices equipped with Bluetooth are capable of exchanging
`data at speeds up to 720 kbps at ranges up to 10 meters. It
`should be noted that higher power devices than typical
`Bluetooth enabled PIDs, such as, for example, a Network
`Access Point, may communicate via Bluetooth with an RF
`enabled PID over a greater range, such as, for example,
`approximately 100 meters.
`A frequency hop transceiver is used to combat interfer-
`ence and fading. A shaped, binary FM modulation is applied
`to minimize transceiver complexity. A slotted channel is
`applied with a nominal slot length of 625 us. For full duplex
`transmission, a Time-Division Duplex (TDD) scheme is
`used. On the channel, information is exchanged through
`packets. Each packet
`is transmitted on a different hop
`frequency. Apacket nominally covers a single slot, but can
`be extended to cover up to five slots.
`The Bluetooth protocol uses a combination of circuit and
`packet switching. Slots can be reserved for synchronous
`packets. Bluetooth can support an asynchronous data chan-
`nel, up to three simultaneous synchronous voice channels, or
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`10
`
`10
`
`

`

`US 6,982,962 B1
`
`5
`a channel which simultaneously supports asynchronous data
`and synchronous voice. Each voice channel supports a 64
`kb/s synchronous (voice) channel in each direction. The
`asynchronous channel can support maximal 723.2 kb/s
`asymmetric, or 433.9 kb/s symmetric.
`The Bluetooth system consists of a radio unit, a link
`control unit, and a support unit for link management and
`host terminal interface functions. The link controller carries
`
`out the baseband protocols and other low-level link routines.
`The Bluetooth system provides a point-to-point connec-
`tion (only two Bluetooth units involved), or a point-to-
`multipoint connection. In the point-to-multipoint connec-
`tion, the channel is shared among several Bluetooth units.
`Two or more units sharing the same channel form a piconet.
`One Bluetooth unit acts as the master of the piconet, whereas
`the other units act as slaves. Upto seven slaves can be active
`in a piconet.
`The Bluetooth link controller has two major states:
`STANDBY and CONNECTION, in addition, there are seven
`substates, page, page scan, inquiry,
`inquiry scan, master
`response, slave response, and inquiry response. The sub-
`states are interim states that are used to add new slaves to a
`
`piconet.
`The STANDBY state is the default state in the Bluetooth
`
`unit. In this state, the Bluetooth unit is in a low-power mode.
`The controller may leave the STANDBY state to scan for
`page or inquiry messages, or to page or inquiry itself. When
`responding to a page message, the unit enters the CON-
`NECTION state as a slave. When carrying out a successful
`page attempt, the unit enters the CONNECTION state as a
`master.
`
`In order to establish new connections the procedures
`inquiry and paging are used. The inquiry procedure enables
`a unit to discover which units are in range, and what their
`device addresses and clocks are. During an inquiry substate,
`the discovering unit collects the Bluetooth device addresses
`and clocks of all units that respond to the inquiry message.
`It can then, if desired, make a connection to any one of them.
`The inquiry message broadcasted by the source does not
`contain any information about the source. However, it may
`indicate which class of devices should respond. There is one
`general
`inquiry access code (GIAC) to inquire for any
`Bluetooth device, and a number of dedicated inquiry access
`codes (DIAC) that only inquire for a certain type of devices.
`Aunit that wants to discover other Bluetooth units enters an
`
`inquiry substate. In this substate, it continuously transmits
`the inquiry message (which is an ID packet) at different hop
`frequencies. A unit
`that allows itself to be discovered,
`regularly enters the inquiry scan substate to respond to
`inquiry messages.
`FIG. 3 is a protocol diagram 200 illustrating the layers of
`the Bluetooth (RF) protocol stack 150 that may be used in
`a preferred embodiment of the present invention. An RF
`protocol stack is implemented at each of the connection
`endpoints of an RF link. For example, a PID 10 and network
`access providers or devices as shown in FIG. 1, could each
`implement an RF stack to enable a link. The required layers
`of the RF link using the Bluetooth system are the Baseband
`layer 210, the Link Manager Protocol layer (LMP) 220, the
`Logical Link Control and Adaptation Protocol (L2CAP)
`layer 230, Telephony Control Protocol (TCS) layer 240,
`RFCOMM layer 250, Service Discovery Protocol layer 260
`and Object Exchange Protocol (OBEX) layer 270.
`FIG. 4 is a protocol diagram 280, illustrating the layers of
`the IrDA protocol stack 120 shown in FIG. 2. For example,
`the PID 10 and the cellular telephone 12 each implement an
`IrDA protocol stack to enable the link 15.
`
`6
`The required layers of an IrDA protocol stack 120 are the
`physical layers 282, the IrLAP layer 284, the IrLMP layer
`286 and the IAS layer 290. The physical layer 282 specifies
`optical characteristics of the link, encoding of the data, and
`framing for various speeds. The IrLAP (Link Access Pro-
`tocol) layer 284 establishes the basic reliable connection
`between the two ends of the link. The IrLMP (Link Man-
`agement Protocol) layer 286 multiplexes services and appli-
`cations on the IrLAP connection. The IAS (Information
`Access Service) layer 290 provides a directory of services
`on an IrDA device.
`
`The IrDA protocol also specifies a number of optional
`protocol layers, these protocol layers being Tiny TP 288,
`IrOBEX 294, IrCOMM 296 and IrLAN 292. Tiny TP (Tiny
`Transport Protocol) 288 adds per-channel flow control to
`keep traffic over the IrDA link moving smoothly. IrOBEX
`(Infrared Object Exchange Protocol) 294 provides for the
`easy transfer of files and other data objects between the IrDA
`devices at each end of the link. IrCOMM 296 is a serial and
`
`parallel port emulation that enables existing applications that
`use serial and parallel communications to use IrDA without
`change. IrLAN (Infrared Local Area Network) 292 enables
`walk-up infrared LAN access for laptops and other devices.
`The use of the optional layers depends upon the particular
`application in the IrDA device. The IrDA protocol stack 120
`is defined by such standard documents as “IrDA Serial
`Infrared Physical Layer Link Specification”,
`“IrDA
`‘IrCOMM’: Serial and Parallel Port Emulation over IR (wire
`replacement)”, “IrDA Serial Infrared Link Access Protocol
`(IrLAP)”, “IrDA Infrared Link Management Protocol
`(IrLMP)”, and “IrDA ‘Tiny TP’: A Flow-Control Mecha-
`nism for use with IrLMP”, and related specifications pub-
`lished by the IrDA and available at www.irda.org/standards/
`specifications.asp and is incorporated in it’s entirely by
`reference herein.
`
`Typically, PIDs, such as, the Palm Pilot, and the cellular
`telephone, already have an IrDA stack implemented in them
`to support their infrared link to other devices and the benefits
`of the IrDA stack are already available. Similarly, many
`personal computers and laptops are equipped with an IrDA
`stack and infrared port
`to communicate with peripheral
`devices, such as, printers. Therefore,
`it may be simply a
`matter of implementing the method of the present invention
`in order to obtain the benefits of the present invention.
`FIG. 5 is a flowchart illustrating a method of a preferred
`embodiment in accordance with the present invention. The
`process 300 to connect to a network access provider starts at
`step 310. At step 320, the PID detects available network
`access providers. The PID may use the Bluetooth discovery
`protocol to perform an inquiry to find available devices of a
`given class. The PID may have to connect to each discovered
`device in order to learn the device’s user friendly name.
`The process then proceeds to step 330 at which step the
`PID evaluates the network access providers against a user’s
`preferences. The evaluation process is described in detail
`with respect to FIG. 6. The evaluation process calculates a
`score for each device or network access provider and sorts
`the list of devices based upon the score.
`At step 340, if the auto-connect flag is set, by which the
`user has configured the device to attempt to auto-connect to
`the best available device, then the process proceeds to step
`370. At step 370, the PID attempts to connect to the best
`device available to use the services. If the connection fails,
`the PID then moves through the list in order and attempts to
`connect to the optimum device per the user’s preferences.
`However, at step 340, if the auto-connect flag is not set
`and the user does not want the PID to attempt to auto-
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`11
`
`11
`
`

`

`US 6,982,962 B1
`
`7
`connect, then the PID displays the sorted list of network
`access providers to the user per step 350. In the alternative,
`the rank order of the devices is displayed as a percentage.
`Further, in an alternate embodiment, the user may have the
`ability to select a given device to see the rankings of the
`individual heuristic, expressed, but not limited to, percent-
`ages. At step 360, the user then selects the device the PID
`needs to connect. The PID then connects with the selected
`
`provider at step 370. If disabled by the user, the process to
`connect to an appropriate provider ends at step 380 else it
`iterates to keep connecting to an optimum provider.
`FIG. 6 illustrates the process 330 to evaluate the access
`providers against a user’s preferences for an optimum con-
`nection to a network access provider. The process 330
`begins at step 410. The user inputs preferences or criteria
`that the PID processes to determine the optimum network
`access provider for the particular user, per step 420. The
`preferences include, but are not limited to, security, reliabil-
`ity of access, signal level, cost and ownership. The user
`additionally rates the importance of the preferences at step
`430. For each preference, the user may, in a user interface
`implementation, configure a slider, for example, to indicate
`how important a particular preference is to the user. This
`assigned importance level is analogous to a weight and may
`be stored as a value between 0 and 1 and is referred to as the
`
`weight for the preference Wp. For preferences that cannot be
`normalized, for example, the criterion of cost that cannot be
`assured to fall within a certain range, the user inputs limit
`conditions. Thus, a minimum and maximum limit value can
`be used to define a normalization range. For example, the
`most amount
`the user is willing to pay per minute for
`Internet access.
`
`At step 440, each preference or criteria has an associated
`heuristic routine or application as referred to in FIG. 2,
`which is a function for evaluating the preference and
`referred to as hp( ) for each preference p. The heuristic
`application makes any measurements necessary to perform
`the evaluation. The measurements may include, but are not
`limited to, getting the cost from the devices or providers or
`radio signal strength. At step 450, each heuristic routine
`calculates a normalized value of hp() which is referred to as
`np(hp( )). In the case when the value is non-normalizable, the
`routine uses the range specified by the limits input by the
`user as the normalization range. A value above and below
`the range is returned as, for example, infinity or negative
`infinity. At step 460, a score is calculated for each network
`access provider or device. The score for each device is
`calculated by summing the weighted score of each property.
`FIG. 7 is an exemplary listing of functional code to
`calculate the device score. For each property or preference
`of a device, a normalized score or value (np(hp( ))) is first
`calculated. A weighted score for each property is then
`calculated by multiplying each normalized score of a prop-
`erty (np(hp( ))) with the weight of the property (WP). The
`device score (Sd) in turn,
`is calculated by summing the
`weighted score for each of the properties (preferences) of the
`particular device.
`Referring back to FIG. 6, at step 470, after computing
`score (Sd) for each device,
`the PID sorts the list of the
`devices based upon the value of the device score,
`for
`example, the first device on the list has the highest score. If
`the device score of two or more devices is the same, the first
`one in the list is selected. The process 330 ends at step 480.
`It should be understood that
`the programs, processes,
`methods and systems described herein are not related or
`
`8
`limited to any particular type of computer or network system
`(hardware or software), unless indicated otherwise. Various
`types of general purpose or specialized computer systems
`may be used with or perform operations in accordance with
`the teachings described herein.
`In view of the wide variety of embodiments to which the
`principles of the present invention can be applied, it should
`be understood that the illustrated embodiments are exem-
`
`plary only, and should not be taken as limiting the scope of
`the present invention. For example, the steps of the flow
`diagrams may be taken in sequences other than those
`described, and more or fewer elements may be used in the
`block diagrams. In addition, protocols of various types are
`referenced throughout. While preferred and alternate
`embodiments may implement selected protocols, any suit-
`able replacement protocol not mentioned, or any function
`not part of a protocol used to replace a corresponding
`function from a protocol may be implemented without
`departing from the scope of the invention. While various
`elements of the preferred embodiments have been described
`as being implemented in software, in other embodiments
`hardware or firmware implementations may alternatively be
`used, and vice-versa.
`The claims should not be read as limited to the described
`order or elements unless stated to that effect. Therefore, all
`embodiments that come within the scope and spirit of the
`following claims and equivalents thereto are claimed as the
`invention.
`What is claimed is:
`
`1. A method for connecting to a data network access
`provider comprising:
`a portable information device wirelessly detecting and
`communicating with a plurality of available data net-
`work access provider devices;
`the portable information device evaluating the plurality of
`available data network access provider devices against
`a user’s pre-stated preferences; and
`the portable information device connecting with at least
`one of the plurality of data network access provider
`devices based upon the user’s preferences,
`wherein the step of the portable information device evalu-
`ating the plurality of available data network access
`provider devices further comprises:
`the user indicating an importance level for each pre-stated
`preference;
`the portable information device implementing a routine to
`gather the information about each pre-stated prefer-
`ence;
`the portable information device calcula

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket