Abstract:
Providing an interface between a mobile device and a destination device may permit relatively seamless switching of connectivity between the mobile device and the destination device.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     Mobile devices, such as mobile telephones, personal digital assistants (PDAs), and paging devices, have become ubiquitous in the world today. In our fast-paced society, we rely on such devices to give us greater flexibility in our daily lives, for business, family, and pleasure. With the proliferation of mobile network devices has come a proliferation of mobile networks.  
         [0002]     With advances in network technologies come upgrades to networks. So, too, with different types of network communications (e.g., voice, facsimile, data), different types of network connections may exist within a particular network. Additionally, a particular mobile device may be capable of connecting to multiple networks and multiple different types of network connections within a single network. In traversing a network or networks, therefore, it is possible that a user will switch among various connections of various speeds and qualities of service and types.  
         [0003]     Some wireless networks today permit switching between cells of the same network (e.g., from one cell to another), but the switching operation is not always transparent to the user application. It is also possible in many networks to have a multi-network mobile device (e.g., a multi-mode mobile telephone), but switching among networks is generally apparent to the end server. For example, the application and/or the server may need to address disruptions in service during switching operations. Furthermore, with, for example, IP networks, the server connection is generally re-established using a new network address, which may cause disruptions to be apparent.  
         [0004]     Additionally, different connections within networks or in different networks may have different characteristics, for example, speed, latency, cost, or other factors or combinations of factors. As a result, not all connections may provide equivalent performance. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0005]     Preferred embodiments of the invention will now be described in connection with the associated drawings, in which:  
         [0006]      FIG. 1  depicts a conceptual block diagram of a system implementing an embodiment of the invention;  
         [0007]      FIG. 2  depicts a conceptual block diagram of an intermediate device according to an embodiment of the invention;  
         [0008]      FIG. 3  depicts a flowchart of a method implementing an embodiment of the invention; and  
         [0009]      FIG. 4  depicts a block diagram of a further embodiment of the invention. 
     
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0010]     In the following description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures, and/or techniques have not been shown in detail in order not to obscure an understanding of this description.  
         [0011]     References to “one embodiment”, “an embodiment”, “example embodiment”, “various embodiments”, etc., indicate that the embodiment(s) of the invention so described may include a particular feature, structure, or characteristic, but not every embodiment necessarily includes the particular feature, structure, or characteristic. Further, repeated use of the phrase “in one embodiment” does not necessarily refer to the same embodiment, although it may.  
         [0012]     In the following description and claims, the term “coupled,” along with its derivatives, may be used. It should be understood that “coupled” may mean that two or more elements are in direct physical or electrical contact with each other or that the two or more elements are not in direct contact but still cooperate or interact with each other.  
         [0013]     An algorithm is here, and generally, considered to be a self-consistent sequence of acts or operations leading to a desired result. These include physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers or the like. It should be understood, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.  
         [0014]     Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities within the computing system&#39;s registers and/or memories into other data similarly represented as physical quantities within the computing system&#39;s memories, registers or other such information storage, transmission or display devices.  
         [0015]     In a similar manner, the term “processor” may refer to any device or portion of a device that processes electronic data from registers and/or memory to transform that electronic data into other electronic data that may be stored in registers and/or memory. A “computing platform” may comprise one or more processors.  
         [0016]     Embodiments of the present invention may include apparatuses for performing the operations herein. An apparatus may be specially constructed for the desired purposes, or it may comprise a general purpose device selectively activated or reconfigured by a program stored in the device.  
         [0017]     Embodiments of the invention may be implemented in one or a combination of hardware, firmware, and software. Embodiments of the invention may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by a computing platform to perform the operations described herein. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.), and others.  
         [0018]     For the purposes of this disclosure, and in the appended claims, unless otherwise stated, a “connection” is not used to refer to a physical layer connection; rather, it refers to connection at least at the network layer (or higher) of the Open System Interconnect (OSI) protocol model. Examples of such connections include Internet Protocol (IP) sockets, logical connections, virtual connections, and other such types of higher-level connectivity.  
         [0019]      FIG. 1  depicts a system in which the present invention may be implemented. The mobile device  11  may run an application that requires communication with a destination device  18 . The mobile device  11  may be capable of connecting to a number of networks  12 ,  13 ,  15 . As shown, there may be regions in which the coverage areas of two or more networks overlap, e.g., the region denoted by reference numeral  14 . Other networks, e.g., that denoted by reference numeral  15 , may include multiple communication media. As mobile device  11  is moved from one location to another, the network or networks via which mobile device  11  will be capable of communicating may change. As a result, either of movement of mobile device  11  or variations or multiple media availability in a network serving mobile device  11  (i.e., mobile device  11  may actually be a stationary device, and the available medium or media may change; therefore, mobile device  11  is not to be understood as being limited to a device that may be easily moved or that actually does move), the actual routing of communications between the mobile device  11  and the destination device  18  may change.  
         [0020]     In order to make the change in routing appear as seamless as possible, use may be made of an intermediate device or gateway  16 . The gateway may be physically connected with each of networks  12 ,  13 , and  15 , as well as with network  17 , via which it may establish and maintain a connection with destination device  18 . Note that network  17  may be a “trivial” network, i.e., gateway  16  and destination device  18  may be directly physically connected. Once an application running on mobile device  11  causes a connection to be established with destination device  18  via gateway  16 , the connection between gateway  16  and destination device  18  may be maintained, regardless of any switching of the connection between mobile device  11  and gateway  16 .  
         [0021]      FIG. 2  shows a conceptual block diagram of how gateway  16  may be implemented. Gateway  16  may include physical connections  21  to the various networks via which the mobile device  11  may connect to the gateway  16 . It may also include at least one physical connection  23  to a network (which, as discussed above, may be a trivial network) via which communication may be established with destination device  18 . Physical connections  21 ,  23  may be coupled to a connection management module  22 . Connection management module  22 , which may be implemented in hardware, software, firmware, etc., or in combinations thereof, may play the role of establishing and managing connections between physical connections  21  and physical connection  23 , as well as the connections established and maintained to the mobile device  11  and the destination device  18  via those physical connections  21 ,  23 .  
         [0022]     Connection management module  22 , in turn, may comprise a number of components. First, connection management module  22  may include a switching module  24 . Switching module  24  may perform the actual establishment of connections, possibly in concert with other components of connection management module  22 .  
         [0023]     Next, connection management module  22  may include a security module  27 , which may be coupled to physical connections  21 ,  23  and to switching module  24 . Security module  27  may deal with authentication and privacy aspects of the connections. Such functions may include, but are not limited to, encryption/decryption, login procedures, and the like.  
         [0024]     For example, in implementing a login procedure, the switching module  24  may first establish a provisional connection with mobile device  11  via a physical connection  21 . The security module  27  may then exchange information with a mobile device  11  via a physical connection  21  and determine if the mobile device  11  is permitted access. If permitted access, security module  27  may indicate this to the switching module  24 , thus providing permission to establish a connection (or equivalently, to let the provisional connection remain). Note that the procedures implemented by security module  27  are not, however, limited to such login procedures and may include other login procedures or security-related functions.  
         [0025]     The connection management module  22  may further include a connection information module  26 . Connection information module  26  may provide performance-related information (and possibly other information) to a mobile device  11  via a physical connection  21 . For example, when a mobile device  11  establishes a connection to gateway  16 , it might be located in a particular network  12 ,  13 , or  15  (see  FIG. 1 ). The mobile device  11  may then move, e.g., to a region (e.g., that denoted by reference numeral  14 ) in which a connection to the gateway  16  may be established via more than one network (and/or medium, e.g., in the case of network  15 ). The mobile device  11  may then seek to establish a second connection via a new network. The connection information module  26  may provide information related to communication performance via the new network and/or comparative communication performance of the previous and new networks. Such information may include, but is not limited to, for example, speed, latency, cost, or other quality-of-service-related quantities, or functions of one or more of these. The information may be provided in response to a query received from mobile device  11 . This information may then be used by mobile device  11  to decide via which network to remain connected to gateway  16 .  
         [0026]     The connection management module  22  may further include a load balancing module  25 . Load balancing module  25  may be coupled to the physical connections  21  and/or to switching module  24  to monitor the communication traffic on each of the physical connections (i.e., on each of the networks  12 ,  13 ,  15 ). This information may then be furnished to the connection information module  26  and, in turn, sent to the mobile device  11 , to aid the mobile device  11  in determining by which network to connect.  
         [0027]     Load balancing module  25  may further include or interact with other modules performing other network management functions, as desired, including, for example, adaptive costing based on relative loading of a network (e.g., as the load on a particular network increases, the cost of obtaining a connection via that network may be adaptively increased in order to control further loading of that network).  
         [0028]     Operation of the gateway  16  will now be described in connection with the flowchart of  FIG. 3 , which illustrates the process that may occur when a mobile device  11  switches networks and/or media within a network. First, in Block  31 , gateway  16 , upon receiving appropriate signals from an application running on a mobile device  11  via a network  12 ,  13 , or  15 , may establish a first connection to mobile device  11  via, for example, network  12 . This process may involve authentication and/or other security procedures, which may be carried out by security module  27 .  
         [0029]     In conjunction with the connection to mobile device  11  in Block  31 , gateway  16  may further establish a connection to a desired destination device  18  in Block  32 . The destination device  18  may be determined by the application running on mobile device  11 .  
         [0030]     Upon moving or otherwise determining that it is within the coverage area of another network or communications medium, mobile device  11  may seek to establish a second connection. Again, after any security procedures, the gateway  16  may establish such a connection (Block  33 ), if possible. While establishing the second connection, the connection between gateway  16  and destination device  18  may be maintained without interruption. In particular, the connection between gateway  16  and destination device  18  may be maintained at least for the duration of the application being run on the mobile device  11 .  
         [0031]     Upon establishment of the second connection, the mobile device  11  may then opt to drop one of the connections. This may be based on the fact that the mobile device  11  has been relocated, or it may be based on some other criterion or criteria (e.g., cost, speed, etc.), information about which may have been provided by the gateway (e.g., by the connection information module  26 ). After appropriate signals have been exchanged, the gateway  16  may then drop one of the connections to mobile device  11 , leaving a single connection (Block  34 ).  
         [0032]     Note that, in some circumstances, it may be desirable for a mobile device to maintain multiple connections simultaneously. As a result, Block  34  may be an optional procedure, which may be demanded by the particular mobile device  11 , except where the mobile device moves out of the range of a particular network. In this latter case, Block  34  may be made mandatory for the connection via that network, in order to free connections for other mobile devices.  
         [0033]     As discussed above, connections may be of many types, and the connection between the mobile device  11  and the gateway  16  need not be the same type of connection as that between the gateway  16  and the destination device  18 . Such connections may include, for example, IP sockets, Signaling System 7 (SS7) connections, or other types of connections.  
         [0034]     Some embodiments of the invention, as discussed above, may be embodied in the form of software instructions on a machine-readable medium. Such an embodiment is illustrated in  FIG. 4 . The computer system of  FIG. 4  may include at least one processor  42 , with associated system memory  41 , which may store, for example, operating system software and the like. The system may further include additional memory  43 , which may, for example, include software instructions to perform various applications. The system may also include one or more input/output (I/O) devices  44 , for example (but not limited to), keyboard, mouse, trackball, printer, display, network connection, etc. The present invention may be embodied as software instructions that may be stored in system memory  41  or in additional memory  43 . Such software instructions may also be stored in removable or remote media (for example, but not limited to, compact disks, floppy disks, etc.), which may be read through an I/O device  43  (for example, but not limited to, a floppy disk drive). Furthermore, the software instructions may also be transmitted to the computer system via an I/O device  43 , for example, a network connection; in such a case, a signal containing the software instructions may be considered to be a machine-readable medium.  
         [0035]     The invention has been described in detail with respect to preferred embodiments, and it will now be apparent from the foregoing to those skilled in the art that changes and modifications may be made without departing from the invention in its broader aspects. The invention, therefore, as defined in the appended claims, is intended to cover all such changes and modifications as fall within the true spirit of the invention.