CROSS-REFERENCE TO RELATED APPLICATIONSThe present application claims the benefit of priority under 35 U.S.C. § 119(e) from U.S. Provisional Patent Application No. 60/400,615 filed on Aug. 2, 2002 to Nair, et al. and entitled “Seamless Roaming Between Wireless Networks”.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relates generally to the field of wireless technology and, more particularly, to seamless roaming between wireless networks.
2. Description of the Related Art
Wireless technology allows electronic devices to communicate with one another without the use of physical lines (e.g., wire or fiber optic cable), and accordingly, has become increasingly popular in recent years. There are different types of access networks in wireless technology, for example, the wireless local area network (WLAN) and the wireless wide area network (WWAN). WWANs are used by traditional cellular companies to provide high-mobility access (e.g., for users moving in cars) over a broad coverage area. WLANs can be used in buildings (e.g., homes or businesses) for stationary or low mobility access.
While WLANs provide higher throughput rates (e.g., ranging from 11 Mbps to 54 Mbps), such networks generally do not provide a broad area of coverage, and thus, are not always suitable for high mobility access. On the other hand, while WWANs provide broad ranging coverage, they generally have lower throughput rates.
Previously developed techniques have provided for connections to both a WLAN and a WWAN by a mobile device. With these techniques, separate device applications were used to independently support and manage different kinds of connections. That is, one application would be used for WWAN connections, and another application would be used for WLAN connections. This was problematic in that the two applications were independent, and thus, did not provide the ability to coordinate connections for different types of wireless networks. Thus, whenever there was a loss of connection as a mobile device was moved out of the coverage area, of one kind of wireless network into the coverage area of another kind of network, the previously developed techniques were not able to automatically switch connections. Instead, a user had to manually switch from one application managing hardware for a connection of the first kind of wireless network to a different application managing hardware for a connection of the second kind of wireless network. In order to make this manual switch, the user was required to shut down all applications using the external network connection and then, after the switch was made, to reinitiate network connectivity and restart all applications. Accordingly, the previously developed techniques were disruptive, time consuming, and not user friendly.
Therefore, what is needed is a way to automatically and seamlessly switch between and among different types of wireless networks.
SUMMARY OF THE INVENTIONAccording to embodiments of the present invention, systems and methods provide uninterrupted and ubiquitous wireless access, with seamless hand-off between different kinds of networks. Thus, applications are not affected as a user roams between and among WLANs and WWANs. The embodiments of the present invention may also facilitate handing off a user to WLANs, whenever possible to more cost effectively use the available WWAN bandwidth. Important technical advantages of the present invention are readily apparent to one skilled in the art from the following figures, descriptions, and claims.
BRIEF DESCRIPTION OF THE DRAWINGSFor a more complete understanding of the present invention, for further features and advantages, applicants now make the following description, taken in conjunction with the accompanying drawings, in which:
FIG. 1 illustrates an environment in which systems and methods, according to embodiments of the present invention, may operate;
FIG. 2 illustrates an exemplary system for seamless roaming between wireless networks according to an embodiment of the present invention;
FIG. 3 illustrates an exemplary user interface component according to an embodiment of the present invention;
FIG. 4 illustrates an exemplary core component according to an embodiment of the present invention;
FIG. 5 illustrates a flow chart of an exemplary method for seamless roaming between wireless networks according to an embodiment of the present invention; and
FIG. 6 illustrates a flow chart of an exemplary method for network connection monitoring and maintenance according to an embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTIONTurning first to the nomenclature of the specification, the detailed description that follows is represented largely in terms of processes and symbolic representations of operations performed by conventional computer components, such as a local or remote central processing unit (CPU), processor, server, or other suitable processing device associated with a general purpose or specialized computer system, memory storage devices operatively associated with the processing device, and connected local or remote display devices. These operations may include the manipulation of data bits by the processing device and the maintenance of these bits within data structures resident in one or more of the memory storage devices. Such data structures impose a physical organization upon the collection of data bits stored within computer memory and represent specific electrical or magnetic elements. These symbolic representations are the means used by those skilled in the art of computer programming and computer construction to most effectively convey teachings and discoveries to others skilled in the art.
For purposes of this discussion, an application, process, method, routine, or sub-routine is generally considered to be a sequence of computer-executed steps leading to a desired result. These steps generally require manipulations of physical quantities. Usually, although not necessarily always, these quantities take the form of electrical, magnetic, or optical signals capable of being stored, transferred, combined, compared, or otherwise manipulated. It is conventional for those skilled in the art to refer to these signals as bits, values, elements, symbols, characters, text, terms, numbers, records, files, or the like. It should be kept in mind, however, that these and some other terms should be associated with appropriate physical quantities for computer operations, and that these terms are merely conventional labels applied to physical quantities that exist within and during operation of the computer.
It should also be understood that automatic manipulations within the computer system are often referred to in terms such as adding, comparing, moving, searching, or the like, which are typically associated with manual operations performed by a human operator. It must be understood that, in most instances, no involvement of the human operator is necessary, or even desirable, in the present invention. However, some of the operations described herein are machine operations performed in conjunction with the human operator, or user, that interacts with the computer or system. Therefore, unless noted as a manual, user operation, all operations are presumed to be automatic.
In addition, it should be understood that the programs, processes, methods, and the like, described herein are but an exemplary implementation of the present invention and are not related, or limited, to any particular computer, system, apparatus, or computer language. Rather, various types of general purpose computing machines or devices may be used with programs constructed in accordance with the teachings described herein. Similarly, it may prove advantageous to construct a specialized apparatus, or hardware device, to perform one or more of the method steps described herein by way of dedicated computer systems with hard-wired logic or programs stored in non-volatile memory, such as read-only memory (ROM).
Overview
According to embodiments of the present invention, systems and methods provide automatic and seamless roaming between wireless networks, including between different kinds of wireless networks (e.g., WLAN and WWAN). Embodiments of the present invention can provide seamless access between two disparate wireless access technologies, such as a WLAN and a WWAN. The systems and methods of the present invention can provide or support automatic detection and connection to WLANs and WWANs.
System For Seamless Roaming
FIG. 1 illustrates anenvironment10 in which embodiments of the present invention may operate. As depicted,environment10 includes a plurality of wireless networks through which awireless device12 may migrate and communicate. These networks can be, for example, a wireless wide area network (WWAN)14, a first wireless local area network (WLAN)16, and asecond WLAN18.
Eachwireless networks14,16,18 can be a communication network that supports wireless communication. Each network supports at least one wireless link or device connection. As such, the networks may support a variety of communications, including, but not limited to, analog cellular system, digital cellular system, Personal Communication System (PCS), Cellular Digital Packet Data (CDPD), ARDIS, RAM Mobile Data, Metricom Ricochet, paging, and Enhanced Specialized Mobile Radio (ESMR). Thewireless networks14,16,18 may utilize or support various protocols. Exemplary protocols forWLANs16,18 include IEEE 802.11, HomeRF, Bluetooth, HiperLAN and the like. Exemplary protocols forWWAN14 include Time Division Multiple Access (TDMA, such as IS-136), Code Division Multiple Access (CDMA), 1xRTT, General Packet Radio Service (GPRS), Enhanced Data rates for GSM Evolution (EDGE), Global System for Mobile communications (GSM), Universal Mobile Telecommunications System (UMTS), and Integrated Digital Enhanced Network (iDEN) Packet Data. Each connection of a wireless network may have a respective identifier such as, for example, a particular Internet Protocol (IP) address. Transmissions over thewireless networks14,16,18 may be analog or digital. The wireless networks may include or be supported by a public switched telephone network (PSTN) and/or a private system (e.g., cellular system) implemented with a number of switches, wire lines, fiber-optic cable, land-based transmission towers, space-based satellite transponders, and the like. In one embodiment, the wireless networks may include any other suitable communication system, such as a specialized mobile radio (SMR) system. Eachwireless network14,16,18 may have a respective range of operation. The ranges of the various wireless networks can overlap in coverage.
Thewireless networks14,16,18 can be maintained or operated by the same or different service providers. In general, a service provider can be an entity that delivers services to one or more users, who, for example, access the network with a wireless device. These services may include wireless service, and possibly a host of other services, including, for example, plain old telephone service (POTS), digital telephony service, cellular service, pager service, and the like. The user of thewireless device12 can be a subscriber to one or more of the services provided by one or more of the service providers with thewireless networks14,16,18.
Thewireless device12 can be an electronic device with capability for communicating by wireless technology. Thus,wireless device12 can be, for example, a laptop or desktop computer, a wireless personal digital assistant (PDA), a cellular phone, or any other wireless-capable, suitable electronic device. Thewireless device12 can be used by a respective user, who can move among and through the effective ranges of operation for thevarious wireless networks14,16,18. If thewireless device12 is within the range a particular wireless network, thedevice12 will be able to communicate through a link of that wireless network. Thewireless device12 may run one or more applications that exchange data/information through wireless networks as the applications are run. Such an application can be, for example, a network browser that exchanges information with the distributed application known as the “World Wide Web.” Another exemplary application can be electronic mail or instant messaging services.
In general, WLANs provide higher throughput rates (e.g., from 11 Mbps to 54 Mbps and higher), but are not conducive to use in higher mobility applications (e.g., such as when a user is in a car). WWANs can be used in high mobility applications, but do not provide as much throughput as WLANs. Thus, to increase throughput rates for the user of thewireless device12, it is desirable to connect to a WLAN when one is available and connection to it is possible, while connecting to a WWAN when a WLAN connection is not available or possible.
To provide uninterrupted and effective wireless access for thewireless device12 inexemplary environment10, the present invention provides systems and methods so that WLANs and WWANs are able to automatically and seamlessly hand-off communications with thewireless device12 as it roams between or among them, without the applications executing on thewireless device12 being adversely affected.
System For Seamless Roaming
FIG. 2 illustrates an exemplary system for seamless roaming between wireless networks according to an embodiment of the present invention. As shown, this system can be incorporated into or comprise awireless device12. Thewireless device12 can be any suitable electronic device such as, for example, a portable personal computer (PC), wireless PDA or cellular phone, having a data processing facility supported by memory (either internal or external) and being wireless network capable.
A number of networking hardware devices, such asWLAN hardware26,WWAN hardware28, andcombination hardware30, support connections betweenwireless device12 and various wireless networks.WLAN hardware26 supports connection with a WLAN.WWAN hardware28 supports connection with a WWAN.Combination hardware30 supports connection with either a WLAN or a WWAN. The networking hardware devices could be a wireless modem, a wireless network interface card (NIC), or any other suitable hardware peripheral device for supporting a wireless connection. In other embodiments, such devices can be implemented in any combination of hardware and software. Adriver layer32, which may be implemented in software or hardware or both, functions as a hardware controller for theWLAN hardware26,WWAN hardware28, andcombination hardware30.
A user interface (I/F)34 generally functions to enable a human user to interact with thewireless device12, for example, to run applications (e.g., word processing), browse the Internet, check email, and the like. The functionality of theuser interface34 can be performed by one or more suitable input devices (e.g., keypad, touch screen, input port, pointing device, microphone, and/or other device that can accept user input information) and one or more suitable output devices (e.g., video display, output port, speaker, or other device, for conveying information, including digital data, visual information, or audio information). In one embodiment, eachuser interface34 may comprise or be operable to display at least one graphical user interface (GUI) having a number of interactive devices, such as buttons, windows, pull-down menus, and the like to facilitate the entry, viewing, and/or retrieval of information.
Thewireless device12 may operate under the control of a suitable operating system (OS)20, such as, for example, MS-DOS, MAC OS, WINDOWS NT, WINDOWS 95, WINDOWS CE, OS/2, UNIX, LINUX, LINDOWS, XENIX, PALM OS, and the like. One ormore software applications22 may run on thewireless device12. Eachapplication22 may interact with theoperating system20. Theseapplications22 may support numerous services or functions such as, for example, document sharing, accounting, word processing, application sharing, file transfer, remote control, browser, voice over Internet Protocol (IP), user authentication, address book, files and folders, accounting, database management, and the like. At least a portion of theseapplications22 may require the exchange of information over the wireless network with other electronic devices as theapplications22 are executing on thewireless device12.
Aconnectivity application24, provided in the software layer, acts as a pseudo router of network addresses and connectivity. Theconnectivity application24 logically resides between the operatingsystem20 and thedriver layer32 of hardware controllers. Theconnectivity application24 may logically “sit on top” ofoperating system20.Connectivity application24 may support the detection of wireless connections that are available in any given location to thewireless device12. These connections include both WLAN and WWAN connections. Furthermore, unlike previously developed techniques, theconnectivity application24 maintains information and handles connectivity for different kinds of wireless networks. As such,connectivity application24 is able to coordinate the connection of thewireless device12 with different wireless networks, thereby providing seamless transition or handoff between the networks, including from a WLAN connection to a WWAN connection, and vice versa, as well as between WLAN or WWAN connections.Connectivity application24 may provide the IP address of the wireless connection in use to theoperating system20, which in turn publishes this IP address to allapplications22. As depicted, in one embodiment,connectivity application24 includes a user interface (UI)component36, acore component38, aWLAN interface component40, aWWAN interface component42, and acombination interface component44.
WLAN interface component40,WWAN interface component42, andcombination interface component44 provide or support an interface with thedriver layer32 comprising device drivers, which can be supplied by the respective hardware manufacturers of the networking hardware devices (e.g.,WLAN hardware26,WWAN hardware28, and combination hardware30).WLAN interface component40 may handle all the communications with, for example, any WiFi compliant 802.11a card and its driver.WLAN interface component40 can, for example, interface with the application program interface (API) of the WLAN card. Thiscomponent40 implements both the standard interfaces as well as specific aspects of communicating with the WLAN card, to retrieve common information such as Status, Signal Strength, MAC Address, Firmware version, and the like. TheWLAN interface component40 also handles sending and receiving messages to the card. TheWWAN interface component42 and thecombo interface component44 have similar functionality to its WLAN counterpart, except that it is implemented to communicate with the API of the WWAN card.
TheUI component36 provides support for the presentation (e.g., visually, audibly, physically, etc.) of information relating to the wireless connections for thewireless device12. This information may include, for example, network information forWWAN14 andWLANs16,18. TheUI component36 may also allow a user to configure or set (e.g., enabling and disabling) the wireless connections for thedevice12. In one embodiment, for example,UI component36 may enable a user to readily and easily, yet manually or automatically, switch from one wireless network connection (e.g., for WWAN14) to another wireless network connections (e.g., for WLAN16) with no adverse effect on applications running on thewireless device12.
Thecore component38 is in communication withUI component36,WLAN interface component40,WWAN interface component42, andcombination interface component44. Thecore component38 implements the logic for keeping track of, handling, and managing the connectivity to the wireless networks and informing theoperating system20 about any changes. Thecore component38 may also be responsible for automated switching of the connections which, in one embodiment, can be rule-based switching. Thecore component38 may automatically authenticate and connect thewireless device12 to preferred wireless networks that are detected.
In operation, as thewireless device12 is moved between or among the effective ranges of various wireless networks (WLAN or WWAN),connectivity application24 functions to change connections from one wireless network to another wireless network. In one aspect, the change of wireless connection can be automatic such that, for example, upon loss of connectivity from any one connection, theconnectivity application24 will automatically initiate a new connection and pass the respective IP address tooperating system20. Then, asapplications22 are subsequently refreshed using an IP connection, theapplications22 will automatically pick up the new IP address and start using the new address for wireless connectivity (e.g., according to the rules of core component38). This may occur without any noticeable loss of connectivity to the user of thewireless device12. In another aspect, the change of wireless connection can be manually initiated by the user.Connectivity application24 supports the detection of wireless connections that may be available for any given location. Information about the available wireless connections may be accessed by the user fromconnectivity application24 viauser interface34. Then, the user can select which wireless connection to use for connectivity (e.g., to the Internet).
As such, the system according to an embodiment of the present invention provides ubiquity of access to wireless data and efficiency of spectral usage in cellular bands when using wireless data. Thus, for example, Internet-enabledapplications22 do not experience a loss of connectivity as a result of connection loss bywireless device12 with either a WWAN or a WLAN. Nor do theapplications22 experience loss of connection as result of transition from one wireless network to another (e.g., from WWAN to WLAN). Furthermore, the system allows cellular service providers to offer wireless data services supported by a combination of their existing two-and-a-half generation (“2.5G”) networks (such as, but not limited to, GPRS, CDMA 1xRTT) and IEEE 802.11 WLAN networks (such as, but not limited to, 802.11a, 802.11b, 802.11g, etc.), with minimal risk of wireless data consuming the entire available capacity of the cellular networks.
User Interface Component
FIG. 3 illustrates an exemplaryuser interface component36 according to an embodiment of the present invention. As shown inFIG. 3, theuser interface component36 can be completely separated from the core functionality (e.g., managing connections) provided by core component38 (ofFIG. 2) of theconnectivity application24. This separability can be done in order to allow users of theconnectivity application24 to provide their own user interfaces to the application, each interface having the look and feel (along with branding) desired by the particular service provider. As shown,user interface component36 includes a third-generation (3G)UI subcomponent50, aWLAN UI subcomponent52, aninter-subcomponent communication module54, and a core interface (I/F)subcomponent56.
The3G UI subcomponent50 may handle the connect/disconnect functionality for various WWANs, which can be the 2.5G or 3G of mobile communications technology. Examples of such technologies include, but are not limited to GPRS, CDMA 1xRTT and iDEN Packet Data services (for 2.5G) and W-CDMA based services such as UMTS and CDMA 3xRTT (for 3G). Relative to first generation (e.g., analog cellular) and second generation (e.g., digital PCS), 2.5G and 3G technology provides increased bandwidth. For example, 3G technology provides up to 384 Kbps when a wireless device is stationary or moving at pedestrian speed, 128 Kbps in a car, and 2 Mbps in fixed applications.3G UI subcomponent50 may present or display information for the signal strength of each available WWAN (e.g., 2.5G or 3G) connection, as well as type of connection (e.g., circuit-switched or packet-switched). Thissubcomponent50 may also display or present information about the availability of WWAN service, or lack thereof.
WLAN UI subcomponent52 can, among other things, keep track of and/or present all identified WLANs in the particular location ofwireless device12, as well as their current connections and encryption status. ThisWLAN U subcomponent52 may also handle selection by a user and connection of thewireless device12 to the various WLANs.
Taken together,3G UI subcomponent50 andWLAN UI subcomponent52 provide the user of thewireless device12 with a real-time picture of all available connections to the various wireless networks, and may direct the user to a location where connectivity is available. A user of thewireless device12 can toggle connections between WWAN and WLAN connections by interacting with3G UI subcomponent50 andWLAN UI subcomponent52.
Theinter-subcomponent communication module54 is responsible for communicating the status of each of thesubcomponents50 and52. Theinter-subcomponent communication module54 may notifycore component38 of connection status change for each of these subcomponents. The core I/F subcomponent56 interacts withcore component38 ofconnectivity application24.Core interface54 may, among other things, communicate the status of the wireless connections and user interactions withUI component36 to thecore component38.
Core Component
FIG. 4 illustrates anexemplary core component38 according to an embodiment of the present invention. As shown, thecore component38 generally functions to handle and manage the connectivity to the wireless networks and inform theoperating system20 about any changes. As depicted, thecore component38 includes anactive connection selection60 and arules engine62.
Theactive connection selection60 keeps track of the various wireless connections which are presently available (including both WLAN and WWAN connections) and also the particular wireless connection, that is currently in use by thewireless device12. Theactive connection selection60 publishes the active connection information to theoperating system20; that is, it provides theoperating system20 with information (e.g., IP address) for the current wireless connection. The wireless connection currently in use can be changed by modifying (or toggling) currentactive connection60, either by a direct user intervention or as a result of one or more rules in therules engine62.
Therules engine62 may implement and execute a number of rules for automated switching of the wireless connections, and authentication and connection of thewireless device12 to a preferred wireless network. These rules may define, for example, what to do when a GPRS connection is lost.Rules engine62 may also allow the rules themselves to be created, modified, or deleted, thereby defining the characteristic behavior ofcore component38.
Therules engine62 is responsible for making the decision as to which wireless network (e.g.,WWAN14,WLAN16, or WLAN18) to connect in the event of lost connectivity or the availability of multiple wireless networks. Thecore component38 automatically detects any available wireless networks in the area ofwireless device12 and uses therules engine62 to determine to which network to connect. Therules engine62 functions on the basis of a combination of inputs from the user as well as predefined rules provided by one or more service providers (who operate or maintain the wireless networks and/or provide services to the user). By way of illustration, two examples of the operation ofrules engine62 according to the present invention are presented below.
The first rule example illustrations the operation of a user supplied rule. In a user's neighborhood, there are two wireless networks, Network A and Network B. Network A provides fast connectivity, but is unreliable and down about 50% of the time. Network B is highly reliable, but provides only about 50% of the data rate of Network A. The user creates a rule in therules engine62 that gives higher priority to the Network A, rather than Network B. When thecore component38 uses therules engine62 to decide to which detected network to connect, therules engine62 will recommend that thewireless device12 connect to Network A. In the event of loss of connectivity between thewireless device12 and Network A, thecore component38 will again use therules engine62, which returns a recommendation that thewireless device12 connect, secondarily, to Network B.
The second rule example illustrations the operation of a service provider supplied rule. A service provider provides WWAN services through Network P and WLAN services through Network Q. For technical reasons, such as preserving spectrum availability on the WWAN (Network P), a service provider may specify a rule in therule engine62 that recommends that a user, who is currently on the WWAN, must be intelligently switched to the WLAN, as soon as it becomes available, thereby minimizing the number of users on the WWAN.
Becausecore component38 maintains information and handles connectivity for various kinds of wireless networks (e.g., WWAN and WLAN),connectivity application24 is able to coordinate for seamless transition or handoff between wireless networks, including from a WLAN connection to a WWAN connection, and vice versa, or between different WWAN or WLAN connections. This seamless session switching functionality can be handled by a specific implementation of a well-defined standard such as, for example, Mobile Internet Protocol (IP) or IPv6 (which is also known as IPng, or IP next generation).
Method for Seamless Roaming
FIG. 5 illustrates a flow chart of anexemplary method100 for seamless roaming between wireless networks according to an embodiment of the present invention. As shown inFIG. 5, themethod100 can be performed, at least in part, by aconnectivity application24 running on awireless device12 that has mobility through the areas of coverage provided by one or more wireless networks. Themethod100 begins atstep102, where thewireless device12 searches for available wireless networks (e.g., WWAN, WLAN, etc.). Atstep104, theconnectivity application24 determines whether at least one network has been detected. If no network is detected, themethod100 returns to step102 where thewireless device12 continues to search for a wireless network.
If at least one network is detected, then atstep106wireless device12 searches therules engine62 of theconnectivity application24 to identify one or more applicable rules for connecting thewireless device12 to one of the detected networks. Atstep108, theconnectivity application24 directs thewireless device12 to connect to a particular detected network per the recommendation ofrules engine62. Once connected, the connection is monitored and maintained at step110 (discussed further, below).
FIG. 6 illustrates a flow chart of an exemplary method for network connection monitoring and maintenance according to an embodiment of the present invention. As shown inFIG. 6, the connectivity application monitors the current network connection atstep112. Such monitoring can include, for example, measuring the existence or strength of, or perceiving the desirability of maintaining, the current network connection. Atstep114, thewireless device12 determines whether there has been a loss in the wireless connection. If there is a loss, thenmethod100 returns to step102 where thewireless device12 searches for available wireless networks. Otherwise, if there has not been a loss of connection, then atstep116, theconnectivity application24 determines whether there has been any user intervention such as, for example, a user shutting down thewireless device12 or initiating a manual switching of the wireless connection between or among the different available networks. If there has not been any user intervention, then themethod100 returns to step112 where the current wireless connection is further monitored.
On the other hand, if atstep116 there has been user intervention, then atstep118 theconnectivity application24 determines whether there the user initiated an instruction to manually switch connection to another wireless network. If there is such an instruction, then atstep120 theconnectivity application24 directs thewireless device12 to connect to the network specified by the user. Upon making this user-initiated switch, themethod100 returns to step112 and begins monitoring of the new network connection. Otherwise, if there has been user intervention, but not to initiate a manual network connection switch, then themethod100 ends.
Although particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that changes and modifications may be made without departing from the present invention in its broader aspects, and therefore, the appended claims are to encompass within their scope all such changes and modifications that fall within the true scope of the present invention.