BACKGROUNDConventional wireless devices are typically capable of connecting to networks serviced by a single network carrier. However, being restricted to a single network limits the coverage, quality of service, cost, and feature set available to the end user. For example, a wireless device serviced by a particular network carrier is typically required to connect to the carrier's associated network unless the network is currently unavailable. Consequently, the end user is limited to the coverage area, upload and download speeds, network features and services, and associated prices offered by the single network carrier. If the conventional wireless device loses the available connection, or the end user wants to switch to a different network carrier's available network, the end user has been required to reconnect using another device, or to replace the wireless device's SIM (SIM/USIM/CMSIM) card to one associated with the different network carrier. Because the end user cannot know the quality of the connection to the different network before SIM card replacement and reconnection, quality of service (QoS) is based on trial and error. This manual process can be tedious. In addition, though a particular network may provide better features, prices, data speeds, or QoS at a particular time and/or location, the end user has no way of automatically determining which network is currently most desirable. Thus, end users have been required to accept a suboptimal user experience.
SUMMARY OF THE INVENTIONThe present disclosure is directed to mobile network management using multiple wireless modems, substantially as shown in and/or described in connection with at least one of the figures, and as set forth more completely in the claims.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 presents an exemplary system for providing mobile network management using multiple wireless modems, according to one implementation of the present application;
FIG. 2 presents an exemplary connectivity application core for providing mobile network management using multiple wireless modems, according to an implementation of the present application;
FIG. 3 presents an exemplary rules engine including several rules for mobile network management using multiple wireless moderns, according to one implementation of the present application;
FIG. 4 presents an exemplary flowchart illustrating a method for providing mobile network management using multiple wireless modems, according to one implementation of the present application; and
FIG. 5 presents another exemplary flowchart illustrating a method for providing mobile network management using multiple wireless modems, according to one implementation of the present application.
DETAILED DESCRIPTIONThe following description contains specific information pertaining to implementations in the present disclosure. The drawings in the present application and their accompanying detailed description are directed to merely exemplary implementations. Unless noted otherwise, like or corresponding elements among the figures may be indicated by like or corresponding reference numerals. Moreover, the drawings and illustrations in the present application are generally not to scale, and are not intended to correspond to actual relative dimensions.
The present application presents a solution that utilizes a wireless device connected to multiple wireless moderns, each associated with a different mobile network carrier, to automatically detect available WWAN networks corresponding to each of the wireless modems. One or more of the available networks may be selected by the wireless device and the wireless device may be connected to the selected network using the associated wireless modem. Selection from the available networks may be based on real-time conditions of the networks and/or the wireless device as well as user-controlled and carrier-controlled policies utilizing an intelligent rules engine embedded within the wireless device. Thus, the wireless device may automatically and seamlessly provide the best network coverage, data rates, network service features and/or lowest cost based on a pre-defined set of connection rules or manual end user network selection. In addition, the present application provides this solution without requiring new device hardware, firmware, drivers, or device APIs for existing legacy equipment. For the purpose of this application, the term “wireless device” may relate to any electronic device which is configured to communicate with one or more other electronic devices directly over wireless communication channels, or indirectly over wireless communication channels by way of a wired connection to one or more electronic devices which may in turn enable communication over wireless communication channels. Non-limiting examples of such “wireless devices” may include a PC, smart phone, PDA, laptop or PC tablet.FIG. 1 presents an exemplary system for providing mobile network management using multiple wireless modems, according to one implementation of the present application. As shown inFIG. 1,system100 may includewireless device130 connected to several wireless moderns, for example,wireless modem122,wireless modem124, andwireless modem126. Each of the wireless modems may be part of a separate mobile device, for example, a smartphone, a PDA, a laptop, a tablet PC, or any other mobile device capable of wireless communication. In one alternative, each of the wireless moderns may be a part ofwireless device130 itself, each configured through the use of a different SIM card programmed for use on either the same wireless network or on a different wireless network. In another alternative, each of the wireless modems may be contained in a single combination modern. In such an alternative implementation, each ofwireless modems122,124 and126 may be contained within combination modern128. The outline ofcombination modem128 is shown as a dotted line to signify thatwireless moderns122,124 and126 may be contained in the combination modern if present insystem100.System100 may further include several wireless networks, such as WWAN102, WWAN104 and WWAN106, over which each ofwireless modems122,124,126 may connect for sending and/or receiving desired content. Each of WWANs122,124,126 may be one of a 2G network, a 3G network, a 4G network, an LTE network, or any other wireless network without limitation. Additionally, each of WWANs122,124,126 may be serviced by a different wireless carrier. However, the present application is not limited in this manner, and two or more of WWANs122,124,126 may be serviced by the same wireless carrier.Wireless device130 may potentially connect to one or more of WWANnetworks102,104,106 through a respective one ofwireless modems122,124,126 depending on which connection or connections is/are most desirable for a particular wireless device state and/or network-wide state.
Wireless device130 may includedevice driver layer140,memory155 includingconnectivity application150, user interface (UI)190 andprocessor195.Connectivity application150 may run onwireless device130, as a software program for example, and may be configured to support multiple wireless modems at the same time.Connectivity application150 may support each ofwireless moderns122,124,126 through a respective one ofdevice interface modules162,164 and166. For example, each ofdevice interface modules162,164,166 is configured to communicate with and control a respective one ofwireless modems122,124,126 using a corresponding device driver installed indevice driver layer140. Wherecombination modem128 is present insystem100, one ofdevice interface modules162,164, and166 may be configured to communicate withcombination modem128. In the alternative, each ofdevice interface modules162,164 and166 may be configured to communicate with a respective one ofwireless modems122,124 and126 withincombination modem128. Inter-Subcomponentcommunication module170 is configured to provide communication between device interface modules as well as between each device interface module andcore180. For example, one or more parameters relating to each of WWANs102,104,106 may be transmitted from the respective wireless modem, throughdevice driver layer140 to a respective device interface module. Each ofdevice interface modules162,164,166 forwards the parameters tointer-subcomponent module170, which forwards the parameters tocore180.Core180 evaluates the parameters according to one or more user-controlled and/or carrier-controlled rules. Based on this evaluation,core180 determines which wireless modern to connect to and passes this determination tointer-subcomponent module170, which requests an operation from the appropriate wireless modern using the associated device interface module.
Processor195 may be configured to perform any calculations withinwireless device130 as necessary, according to one or more implementations of the present application. UI190 may be configured to capture user actions and/or user preferences, which may be utilized bycore180 in determining the appropriate wireless modem for connection withwireless device130. A more detailed description of the operation ofcore180 is discussed regardingFIG. 2.
FIG. 2 presents an exemplary connectivity application core for providing mobile network management using multiple wireless modems, according to an implementation of the present application.FIG. 2 showscore280, which may includerules engine220. One or more rules may be input torules engine220, including carrier-controlled rules, and/or user-controlled rules based on the user's requirements or preferences. Thus, the wireless modem connected at a particular time may be changed either by direct user intervention or by automatic application of one or more rules ofrules engine220. Thus,rules engine220 is responsible for determining which wireless network to connect to in the event the current connection is lost, connection quality is reduced, or new networks become available.
In addition, carrier-controlled rules may be applied to a group of wireless devices based on any number of criteria. Non-limiting examples of such rule-grouping criteria may include grouping based on a wireless device make or model, a particular geographical location, a particular subscriber plan or entitlement, custom created groups of subscribers, or any combination of subscriber information, service type, application type or network type. In this way multiple sets of network connection rules may be developed for different groupings of wireless devices, allowing simultaneous achievement of multiple user-controlled and/or carrier-controlled goals. In addition, the goal or goals for which network connection policies are focused may be modified by the carrier and/or the end user at any time. A more detailed example of rules fed torules engine220 is discussed regardingFIG. 3.
FIG. 3 presents an exemplary rules engine including several policy-based rules for mobile network management using multiple wireless modems, according to one implementation of the present application. For example,FIG. 3 showsrules engine320 including exemplary rules301-308.Rules engine320 may use rules301-308 in determining which network to connect to according to current network parameters and/or user preferences. N1 may correspond to a first wireless network, for example,WWAN102 ofFIG. 1. N2 may correspond to a second wireless network, for example,WWAN104 ofFIGS. 1. And N3 may correspond to a third wireless network, for example,WWAN106 ofFIG. 1. Likewise, L1, L2 and L3 may correspond to respective first, second and third geographical locations of the wireless device. Finally, F1 may refer to a specific feature, function or service only available on certain networks. Thus,exemplary rule301 may set an absolute priority for connection to networks N1-N3. Exemplary rules302-304 may set conditional priorities for connection to specific networks based on a current geographical location of the wireless device.Exemplary rule305 may set relative priority regarding network connection based on a particular available network's classification as a home or roaming network. Exemplary rules306-307 may set relative priority for connection to networks based on parameters or characteristics of a particular network, such as data rate and/or signal strength. Finally,exemplary rule308 may set relative priority for connection to networks based on a particular network supporting a particular feature or function F1. How one or more implementations of the present application carry out policy-based mobile network management using multiple wireless modems may be described in more detail regardingFIG. 4.
FIG. 4 presents an exemplary flowchart illustrating a method for providing mobile network management using multiple wireless modems, according to one implementation of the present application.Flowchart400 begins atStart401. The method continues toaction402, which includes searching for available networks. For example,wireless device130 may prompt each ofwireless modems122,124 and126 to transmit parameters regarding the availability of its respective wireless network. Ataction403, a determination as to whether any networks are available or detected is made. If a network is not detected, the method may cycle back toaction402 and continue searching for available networks until one is found. If a network is detected the method continues toaction404, which includes searching the rules engine. For example,wireless device130 may utilize any received parameters relating to the detected network(s) in applying one or more user-controlled and/or carrier-controlled rules, such as one or more of exemplary rules301-308 ofFIG. 3, to determine the most appropriate network for connection towireless device130. The method continues toaction405, which includes connecting according to the rules engine recommendation. At this point any existing connections may be disconnected.
At this point, manual selection via the user interface of the wireless device may be taken into account. In such a case, a plurality of parameters relating to the networks may be communicated to a display ofwireless device130, for example,UI190. A user ofwireless device130 may input a selection of one or more of the associated networks intoUI190. At this point the method continues withaction406, which includes determining if a manual user network selection has been made. If a manual user selection has been made, the method continues toaction407, which includes determining if the user-selected network is available. If the selected network is available, a connection is made according to the user intervention as shown byaction408 and the method continues to connection andmonitoring maintenance420. Likewise, if no manual user network selection was made ataction406, or the user selected network was not available ataction407, the method continues to connection andmonitoring maintenance420.
At this point the method continues withaction409, which includes scanning available networks. Thereafter,action410 includes determining whether signal strength of the currently connected network has been reduced since selection. If no reduction in signal strength is determined, a second determination as to whether signal strength of any available network has increased since selection is carried out inaction411. If the determination to either ofactions410 or411 is affirmative, the method cycles back toaction404 where the rules engine is searched and any received parameters relating to detected networks are again applied to one or more rules to determine the most appropriate network for connection.
However, if the determination to bothactions410 and411 are negative, the method continues toaction412, where it is determined whether the current connection is lost. If so, the method cycles back toaction402 where another search for available networks is carried out. Ifaction412 results in a determination that the current connection was not lost, the method advances toaction413, which includes a determination as to whether a new network was found. If a new network is found, the method cycles back toaction404, where the rules engine is searched again and any received parameters relating to detected networks are evaluated according to one or more rules to determine the most appropriate network for connection. If the determination ataction413 is negative, the method cycles back toaction409, where a scan for available networks is again made.
FIG. 5 presents another exemplary flowchart illustrating a method for providing mobile network management using multiple wireless modems, according to one implementation of the present application.Flowchart500 may be based, at least in part, on the method shown inflowchart400 ofFIG. 4.Action510 offlowchart500 includes receiving a plurality of parameters relating to a plurality of wireless networks using a plurality of wireless modems each operable for communication according to one of the plurality of wireless networks. Such parameters may include, as an example and without limitation, a data upload rate, a data download rate, a time of day, a day of the year, a location, a cost of communicating over a particular wireless network, a signal strength associated with the particular wireless network, a carrier identification associated with the particular wireless network, and an availability of a particular network service.
Action520 offlowchart500 includes evaluating the plurality of parameters according to the one or more connection rules. For example, rulesengine320 may evaluate the parameters according to one or more rules, such as rules301-308 ofFIG. 3.
Action530 offlowchart500 includes establishing, based on the evaluation, a connection to a first wireless network of the plurality of wireless networks using a first wireless modem of the plurality of wireless moderns operable for communication according to the first wireless network. For example,core180 may directinter-subcomponent communication module170 to establish a connection toWWAN106 usingwireless modem126 throughdevice interface module162 and the appropriate device driver withindevice driver layer140.
Action540 offlowchart500 includes scanning the plurality of wireless networks using the plurality of wireless moderns for a change in the plurality of parameters. For example,wireless device130 may scan the available networks usingwireless modems122,124,126 and may directly or indirectly detect changes in a general geographical location ofwireless device130, the strength of one or more available networks, and/or a data rate of the one or more available networks.
Action550 offlowchart500 includes evaluating the change and the plurality of parameters according to the one or more connection rules. For example, once a change in one or more parameters has been detected, the change as well as each of the parameters absolute values may be evaluated according to one or more rules, such as rules301-308, withinrules engine320.
Action560 offlowchart500 includes establishing, based on the evaluation of the change and the plurality of parameters, a connection to a second wireless network of the plurality of wireless networks using a second wireless modem of the plurality of wireless modems. For example,wireless device130 may be communicating onWWAN106 usingwireless modem126. However, if a drop in data rate or signal strength ofWWAN106 is detected,wireless device130 may establish a higher data rate or higher signal strength connection for communication onWWAN102 usingwireless modem122.
In addition,wireless device130 need not be limited to communicating over a single network at any point in time. For example,wireless device130 may route a first portion of a wireless communication over one of the available networks, while routing a second portion of the wireless communication over a different one of the available networks. In this way, network resources may be further optimized by directing traffic to different networks simultaneously based on the type, frequency, or amount of traffic. For example, if an Application X generally sends and receives large amounts of data, the user may prefer to direct traffic to and from Application X overWWAN106. In addition, Application Y may require very little bandwidth and so the user may want to direct traffic to and from Application Y overWWAN104 to spread out the total bandwidth requirements ofwireless device130. In addition, an application that communicates a small amount of data during a first timeframe and an escalating amount of data during a second timeframe may be transitioned from a first network to a second network as the amount of data communicated exceeds a predetermined threshold in order to reduce the cost of service for the user and/or carrier.
Thus, constantly changing network-wide data may be taken into account in determining appropriate wireless network connection priorities. By analyzing real-time as well as previously collected network parameters reported by a collection of mobile devices and/or from a collection of wireless modems, a real-time macro-level coordination of connections to one or more wireless networks may be realized in order to achieve one or more user-controlled and/or carrier-determined goals.
Examples of such user-controlled and/or carrier-controlled goals may include reducing congestion on a particular wireless network, reducing user and/or carrier costs by selecting the current lowest cost wireless network, matching particular application data with the most appropriate available wireless network, and ensuring highest user QoS regardless of the wireless connection.
Thus, the present application presents a solution providing mobile network management using multiple wireless modems, based on real-time conditions and events of the wireless device and/or on one or more available wireless networks as evaluated against user-controlled and/or carrier-controlled rules utilizing an intelligent rules engine embedded within the wireless device. Accordingly, end users and carriers alike are able to manage network connections utilizing policies based on a pre-defined set of rules in order to achieve a better, seamless user experience at any point in time.
From the above description it is manifest that various techniques can be used for implementing the concepts described in the present application without departing from the scope of those concepts. Moreover, while the concepts have been described with specific reference to certain implementations, a person of ordinary skill in the art would recognize that changes can be made in form and detail without departing from the scope of those concepts. As such, the described implementations are to be considered in all respects as illustrative and not restrictive. It should also be understood that the present application is not limited to the particular implementations described above, but many rearrangements, modifications, and substitutions are possible without departing from the scope of the present disclosure.