Source: https://patents.google.com/patent/US9066370B2/en
Timestamp: 2019-12-06 03:58:54
Document Index: 41272236

Matched Legal Cases: ['Application No. 61', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 61', '§112']

US9066370B2 - Providing data to a mobile application accessible at a mobile device via different network connections without interruption - Google Patents
Providing data to a mobile application accessible at a mobile device via different network connections without interruption Download PDF
US9066370B2
US9066370B2 US13/784,486 US201313784486A US9066370B2 US 9066370 B2 US9066370 B2 US 9066370B2 US 201313784486 A US201313784486 A US 201313784486A US 9066370 B2 US9066370 B2 US 9066370B2
US13/784,486
US20130229270A1 (en
2012-03-02 Priority to US201261606053P priority Critical
2013-03-04 Application filed by Seven Networks Inc filed Critical Seven Networks Inc
2013-03-04 Priority to US13/784,486 priority patent/US9066370B2/en
2013-03-05 Assigned to SEVEN NETWORKS, INC. reassignment SEVEN NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SRINIVASAN, SURESH, LEE, YUAN KANG, SENGUPTA, CHAITALI
2013-09-05 Publication of US20130229270A1 publication Critical patent/US20130229270A1/en
2015-06-23 Publication of US9066370B2 publication Critical patent/US9066370B2/en
System and method of providing data to a mobile application accessible at a mobile device via different network connections without interruption are disclosed. The method, which may be implemented on a system includes, receiving data for the mobile application over a network connection different from a first network connection, and/or providing the data received over the network connection including any other data received from the first network connection, to the mobile application in a manner that is without interruption in data flow. The data is provided to the mobile application without interruption even when connections to the different network connections require change in IP addresses.
This application claims the benefit of U.S. Provisional Patent Application No. 61/606,053 entitled “MOBILE BASED SEAMLESS CONNECTIVITY,”, which was filed on Mar. 2, 2012, the contents of which are all incorporated by reference herein.
This application is related to U.S. patent application Ser. No. 13/784,544 entitled “MOBILE DEVICE WHICH HANDS OVER CONNECTIVITY FROM ONE NETWORK CONNECTION TO ANOTHER NETWORK CONNECTION WITHOUT INTERRUPTION IN APPLICATION DATA FLOW AND METHODS THEREFOR,”, concurrently filed herewith, the contents of which are all incorporated by reference herein.
This application is related to U.S. patent application Ser. No. 11/929,376 entitled “SYSTEM, METHOD, AND COMPUTER-READABLE MEDIUM FOR USER EQUIPMENT MANAGING MULTIPLE RADIO NETWORKS FOR HANDOVER AND LOW-POWER OPERATIONS,”, which was filed on Oct. 30, 2007, now U.S. Pat. No. 8,126,461, which claims the benefit of U.S. Provisional Patent Application No. 60/863,931 entitled “SYSTEM, METHOD, AND COMPUTER-READABLE MEDIUM FOR USER EQUIPMENT CONVERGENCE MANAGEMENT,”, which was filed on Nov. 1, 2006, the contents of which are all incorporated by reference herein.
This application is related to U.S. patent application Ser. No. 11/929,066 entitled “SYSTEM, METHOD, AND COMPUTER-READABLE MEDIUM FOR SELECTING A NETWORK FOR CONNECTIVITY AND HANDOVER BASED ON APPLICATION REQUIREMENTS,”, which was filed on Oct. 30, 2007, now U.S. Pat. No. 8,279,831, which claims the benefit of U.S. Provisional Patent Application No. 60/863,931 entitled “SYSTEM, METHOD, AND COMPUTER-READABLE MEDIUM FOR USER EQUIPMENT CONVERGENCE MANAGEMENT,”, which was filed on Nov. 1, 2006, the contents of which are all incorporated by reference herein.
This application is related to U.S. patent application Ser. No. 11/929,231 entitled “SYSTEM, METHOD, AND COMPUTER-READABLE MEDIUM FOR USER EQUIPMENT DECISION-MAKING CRITERIA FOR CONNECTIVITY AND HANDOVER,”, which was filed on Oct. 30, 2007, which claims the benefit of U.S. Provisional Patent Application No. 60/863,931 entitled “SYSTEM, METHOD, AND COMPUTER-READABLE MEDIUM FOR USER EQUIPMENT CONVERGENCE MANAGEMENT,”, which was filed on Nov. 1, 2006, the contents of which are all incorporated by reference herein.
This application is related to U.S. patent application Ser. No. 12/354,640 entitled “CLIENT-BASED MULTIMODE HANDOVER IN COMMUNICATION SYSTEMS,”, which was filed on Jan. 19, 2009, which claims the benefit of U.S. Provisional Patent Application No. 61/021,569 entitled “CLIENT-BASED MULTIMODE HANDOVER IN COMMUNICATION SYSTEMS,”, which was filed on Jan. 16, 2008, the contents of which are all incorporated by reference herein.
Network operators/carriers have the will and the resources to fix the wireless network overload problem. However, the increased availability of applications only makes network congestion worse with constant signaling from the application to the application stores and/or websites.
In mobile or wireless networks, specifically, where access to the data channel is negotiated with each request after the radio has transitioned to the idle state, not only floods the network with requests potentially blocking other devices from network access (the control channel has limited bandwidth) but also holding the radio on for longer periods of time for data that is providing no useful value. This results in excess data transfer and shortening the already problematic battery life of mobile devices such as super phones, smartphones, tablets, laptops, and other wireless devices/clients.
As WiFi networks and services become more ubiquitous and accessible, in particular, accessible in both indoor and outdoor environments, integration and utilization by mobile devices is becoming a mechanism through which network operators can alleviate mobile traffic load when a secure and seamless experience for users can be provided. In some instances, LAN based networks such as WiFi networks and services can also be used as a mechanism to enhance mobile device performance when used in conjunction with cellular networks and connections.
FIG. 1A illustrates an example diagram of a mobile device or system which can access different network connections (e.g., simultaneously or via handover) to conserve network and optimize network resources or to optimize and enhance application performance at a mobile device in communicating with remote entities such as a remote application server or content providers.
FIG. 1B illustrates another example diagram of a mobile device having a local proxy and an optional local cache, which facilitates access different network connections (e.g., simultaneously or via handover) to conserve network and optimize network resources or to optimize and enhance application performance at a mobile device in communicating with remote entities such as a remote application server or content providers.
FIG. 2A depicts a diagram illustrating a mobile device having a connectivity engine to facilitate connection management between a cellular and a LAN-based (e.g., WLAN, WIFI) connection to service an application on the mobile device, for instance, a change in connection from a WIFI or similar connection to a cellular-based connection.
FIG. 2B depicts a diagram illustrating a mobile device having a connectivity engine to facilitate connection management between a cellular and a LAN-based (e.g., WLAN, WIFI) connection to service an application on the mobile device, for instance, a handover from a cellular/mobile connection to a LAN-based (WLAN or WIFI) or similar connection).
FIG. 3 depicts a block diagram illustrating an example of components of the mobile device including local proxy having a connectivity engine able to provide data to a mobile application via different and multiple network connections without interruption and/or able to hand over connectivity from one network connection to another network connection.
FIG. 4 depicts a diagram illustrating the association of relays with different applications by the connectivity engine to manage different protocols such that data flow to different applications utilizing different protocols can be serviced continuously.
FIG. 5 illustrates a flow chart showing an example flow for providing data to a mobile application accessible at a mobile device via different network connections without interruption.
FIG. 6 illustrates a flow chart showing an example flow for continuously delivering data to an application when a network connection becomes unavailable.
FIG. 7 illustrates a flow chart of handover from one connection to a second connection at a mobile device which provides an application at the mobile device with continuous data flow.
Embodiments of the present disclosure include providing data to a mobile application accessible at a mobile device via different network connections without interruption.
There are multiple factors that contribute to the proliferation of data: the end-user, mobile devices, wireless devices, mobile applications, and the network. As mobile devices evolve, so do the various elements associated with them-availability, applications, user behavior, location thus changing the way the networks can interact with the device and the application.
Fortunately, smart devices or other mobile and portable devices now have multimode network capabilities. These devices are capable of communicating via different radio connections with different communication networks. Such networks include cellular networks (e.g. Global System for Mobile communication GSM, General Packet Radio Service GPRS, Code Division Multiple Access CDMA, Third Generation 3G, 3G+, 3.5G, WiMAX, LTE, 4G, etc.) or wireless broadband (e.g. Wireless Fidelity WiFi), WLAN. Multimode devices can communicate with different communication networks not only at the time a handover is conducted but also during normal operation to optimize connection parameters, e.g. maximize download bandwidth and speed, and thus improve user experience and performance.
One communication protocol on the Internet is Transmission Control Protocol TCP at Open System Interconnection OSI layer 4. Higher layer protocols, such as HTTP, SMTP, FTP (all OSI layer 7) use TCP directly. When a vertical handover occurs and the IP address is changed, a TCP session may break. This can cause an interruption in the data that goes from the communication network to an application running on a mobile device and result a disruption in the user experience. In other words, the application on the mobile interrupts and the user may realize this interruption.
Mobile IP can for example, operate by keeping maintaining the IP that is used between the end hosts' TCP session, and hence the application does not see a disruption. In Mobile IP the mobile device has a single home address. That is, when at home the mobile device uses the home address, and reaches the rest of the world using home address. When not at home, the mobile device registers with a Home Agent with the current local address called “care of address”. To the rest of the world, the mobile device is reached at home address. The Home Agent routes packets to/from the mobile device from/to rest of the world (from home address to care of address). The protocol stacks on top of IP uses home address, even when mobile is elsewhere. Hence all TCP, RTP, SIP, HTTP, SSL, etc. upper layer protocols and applications are not aware of location change and do not need to be modified. Mobile IP has several drawbacks. For example a Home Agent, i.e. additional infrastructure, is required. From the user's standpoint, mobile IP generally requires a subscription with a network provider that may be costly
The disclosed technology, in one embodiment provides a continued session for an application accessible via or on a mobile device, for example, in case of a handover between different networks, i.e. making the handover seamless or transparent for the application on the mobile device.
This can for example, be achieved by connecting the application on the mobile device to a communication network via an intermediate stage or interface (e.g., a local proxy, a network interface or a connectivity engine on the mobile device), the latter taking care of connection(s) to one or more communication networks. That is, the interface communicates with one or more communication networks which may change over time. In addition, the interface communicates with the application running on the mobile device. In case of a handover between one or more communication networks, the interface can manage the different network connection parameters, e.g. new IP address and an interrupted TCP connection. The communication between the interface and the application is preferably unchanged. For example, the interface and the application can communicate using TCP or UDP. In other words, the interface is an intermediate stage (e.g., a local proxy a network interface or a connectivity engine on the mobile device) between the application and the one or more communication network(s) and may provide one continuous session to the application even in case of one or more handovers.
The disclose technology, in one embodiment includes, a method for seamless handover from a first wireless connection to a second wireless connection. First data for an application is received from a first wireless connection by an interface. Second data for the application are received from a second wireless connection by the interface. Then the application is provided with a preferably continuous data flow from the interface based on the first and second data. The term continuous in this context means that a communication session, e.g. using a TCP connection, is not interrupted.
It is noted that the term “handover” can include a change from one connection to another connection and also include to hold a first connection and add a second or more connections, e.g. to increase and/or to maximize network or connection bandwidth to enhance performance.
The second data from the second wireless connection can be received at the time a handover from the first wireless connection to the second wireless connection is imminent or after the handover. According to one embodiment, the amount of the first data to be received via the first wireless connection before handover is determined. For example, the amount of data to be received via the first wireless connection can depend on the connection quality or bandwidth of the first and/or second wireless connection. The decision to handover can be dependent on the quality of both networks, with bandwidth of both networks being one of the factors. The amount of data that comes from the first network depends on how long the first network is used—how long the network is used is a function of when the handover occurs, which in turn can depend on the quality of the second network.
In one embodiment, the interface or network interface includes a connectivity engine, or a mobile seamless connectivity engine. The data between the interface and the application can include, for example, UDP or TCP, e.g. wherein source port and destination port remain constant in contrast to communication between the network interface and the application server.
The disclosed technology maintains the data stream going from the interface to the application requiring the data continuous during a handover, e.g. a vertical handover, also in case the IP address is changed. Hence, during the handover, there is no disruption in the data stream that goes to the application and the handover is “seamless” or generally continuous for the application.
FIG. 1A illustrates an example diagram of a mobile device 150 or system which can access different network connections 106 and/or networks 108A-N (e.g., simultaneously or via handover) to conserve network and optimize network resources or to optimize and enhance application performance at a mobile device in communicating with remote entities such as a remote application server or content providers 110.
FIG. 1B illustrates another example diagram of a mobile device 150 having a local proxy 175 and an optional local cache 185, which facilitates access different network connections (e.g., simultaneously or via handover) via multiple networks (e.g., network 106 and/or networks 108A-N) to conserve network and optimize network resources or to optimize and enhance application performance at the mobile device 150 in communicating with remote entities such as a remote application server or content providers 110 and/or 120A-N.
The mobile/client device 150 can be any system and/or device, and/or any combination of devices/systems that is able to establish a connection, including wired, wireless, cellular connections with another device, a server and/or other systems such as host server 100 and/or application server/content provider 110. Client/mobile device 150 will typically include a display and/or other output functionalities to present information and data exchanged between among the devices 150 and/or application server/content providers 110 and 120A-C. The application server/content provider 110 can by any server including third party servers or service/content providers further including advertisement, promotional content, publication, or electronic coupon servers or services. Similarly, separate advertisement servers 120A, promotional content servers 120B, and/or e-Coupon servers 120C as application servers or content providers are illustrated by way of example.
For example, the client/mobile device 150 can include mobile, hand held or portable devices, wireless devices, or non-portable devices and can be any of, but not limited to, a server desktop, a desktop computer, a computer cluster, or portable devices, including a notebook, a laptop computer, a handheld computer, a palmtop computer, a mobile phone, a cell phone, a smart phone, a PDA, a Blackberry device, a Palm device, any tablet, a phablet (a class of smart phones with larger screen sizes between a typical smart phone and tablet), a handheld tablet (e.g., an iPad, the Galaxy series, the Nexus series, the Kindles, Kindle Fires, any Android-based tablet, Windows-based tablet, Amazon-based, or any other tablet), any portable readers/reading devices, a hand held console, a hand held gaming device or console, a head mounted device, a head mounted display, a thin client (e.g., Chrome books) or any Super Phone such as the iPhone, and/or any other portable, mobile, hand held devices, or fixed wireless interface such as a M2M device, etc. In one embodiment, the client devices 150 (or mobile devices 150), and application server 110 are coupled via a network 106 and/or networks 108A-N.
The input mechanism on client devices 150 can include touch screen keypad (including single touch, multi-touch, gesture sensing in 2D or 3D, etc.), a physical keypad, a mouse, a pointer, a track pad, a stylus, a stylus detector/sensor/receptor, motion detector/sensor (e.g., including 1-axis, 2-axis, 3-axis accelerometer, etc.), a face detector/recognizer, a retinal detector/scanner, a light sensor, capacitance sensor, resistance sensor, temperature sensor, proximity sensor, a piezoelectric device, device orientation detector (e.g., electronic compass, tilt sensor, rotation sensor, gyroscope, accelerometer), or any combination of the above.
Signals received or detected indicating user activity at client devices 150 through one or more of the above input mechanism, or others, can be used in the disclosed technology in acquiring context awareness at the client device 150. Contextual data can be collected for use in managing multi-network situations at a mobile device 150, to optimize the use of multiple networks in view of the available device resources and available network resources, for example to determine whether it would be optimal to operate to enhance performance by utilizing multiple available networks or simply to perform a handover because one network is unavailable or inaccessible, or perform a handover because one network is preferential from a power consumption standpoint with respect to the other available networks given the device's current battery power level, etc.
Context awareness at client devices 150 generally includes, by way of example but not limitation, client device 150 operation or state acknowledgement, management, user activity/behavior/interaction awareness, detection, sensing, tracking, and/or application (e.g., mobile applications) type, behavior, activity, operating state, etc. Context awareness in the present disclosure also includes knowledge and detection of network side contextual data and can include network information such as network capacity, bandwidth, traffic, type of network/connectivity, and/or any other operational state data. Network side contextual data can be received from and/or queried from network service providers (e.g., cell provider 112 and/or Internet service providers) of the network 106 and/or network 108A-N (e.g., by the host server and/or devices 150). In addition to application context awareness as determined from the client 150 side, the application context awareness may also be received from or obtained/queried from the respective application/service providers 110 (by the host 100 and/or client devices 150) for use in determining appropriate handover situations when multiple networks are available.
Contextual information obtained for client/mobile devices 150, networks 106/108, applications (e.g., mobile applications), application server/provider 110, or any combination of the above, to manage the traffic in the system to satisfy data needs of the client devices 150 (e.g., to satisfy application or any other request including HTTP request). In one embodiment, the traffic is managed to satisfy data requests made in response to explicit or non-explicit user 103 requests and/or device/application maintenance tasks.
The traffic can be managed such that network consumption, for example, use of the cellular network is conserved for effective and efficient bandwidth utilization through handovers or effective utilization of multiple networks at a mobile device 150. In addition, the device 150 side resources (e.g., including but not limited to battery power consumption, radio use, processor/memory use) can be optimized with a general philosophy for resource conservation while still optimizing performance and user experience through the disclosed management of providing data to mobile applications utilizing different network connections and managing handover situations from one network to another network.
For example, in context of battery conservation, the device 150 can observe user activity (for example, by observing user keystrokes, backlight status, or other signals via one or more input mechanisms, etc.) and alters device 150 behaviors by selecting a network over another network which is less resource consuming. Alternatively, if the device 150 was connected to multiple networks, it can automatically disconnect or adjust the number of networks it was utilizing for the mobile applications to conserve battery power until the device battery is restored, for example.
In general, the networks 106 and/or 108A-N, over which the client devices 150, the host server 100, and/or application server 110 communicate, may be a cellular network, a broadband network, a telephonic network, an open network, such as the Internet, or a private network, such as an intranet and/or the extranet, or any combination thereof. For example, the Internet can provide file transfer, remote log in, email, news, RSS, cloud-based services, instant messaging, visual voicemail, push mail, VoIP, and other services through any known or convenient protocol, such as, but is not limited to the TCP/IP protocol, UDP, HTTP, DNS, FTP, UPnP, NSF, ISDN, PDH, RS-232, SDH, SONET, etc.
The networks 106 and/or 108A-N can be any collection of distinct networks operating wholly or partially in conjunction to provide connectivity to the client devices 150 and may appear as one or more networks to the serviced systems and devices. In one embodiment, communications to and from the client devices 150 can be achieved by, an open network, such as the Internet, or a private network, broadband network, such as an intranet and/or the extranet. In one embodiment, communications can be achieved by a secure communications protocol, such as secure sockets layer (SSL), or transport layer security (TLS).
FIG. 2A depicts a diagram illustrating a mobile device 250 having a connectivity engine 276 to facilitate connection management between a cellular and a LAN-based (e.g., WLAN, WIFI) connection or any other networks e.g., networks 106 or 108A-N) to service an application 210 on the mobile device, for instance, a change in connection from a WIFI or similar connection to a cellular-based connection.
The mobile device 250, in one embodiment includes a local proxy having a connectivity engine 276 (e.g., a Mobile Seamless Connectivity Engine (MSCE)) as an interface/network interface or intermediate stage between different communication networks and the mobile application 210 with a respective application server/content provider 110. The local proxy 275 or the connectivity engine/network interface 276 communicates, i.e. receives and/or sends data, with the mobile application 210. Further, the connectivity engine/network interface 276 can be coupled to a connection manager, e.g. controlling the network connections and detecting and/or managing handovers.
In one example, the mobile device 250 can be connected to the Internet to one of the application servers/content providers 110, e.g. CNN, Youtube etc. In one example, the mobile device 250 can be initially connected to a LAN (e.g., WLAN-based network, e.g., the WiFi network) and then to a cellular network (e.g., 3G, enhanced 3G, LTE, or other mobile network). For example, if the user changes from an area covered by WiFi to an area only covered by cellular network), or if the user moves from an area with better Wifi coverage than cellular coverage (e.g., indoors vs. outdoors), the mobile device may initially preferentially use WiFi connection.
In addition, if the mobile operator, user, or device determines that the user has exceeded or is near exceeding data usage, the device can preferentially automatically select to initially use a LAN based network when available or when certain criteria is met (e.g., when the requested content is resource intensive, etc. such as involving media transmission or downloads or uploads of large content files).
At the point where a cellular or mobile network (e.g., 3G, LTE, 4G or other mobile connection is available, necessary, or otherwise requested by the user or allowed by the carrier), the mobile device 250 can still selectively use WiFi and/or the mobile network. In an example where the mobile device 250 leaves an area covered by WiFi the mobile device uses the 3G connection. At any stage, the local proxy 275 or the connectivity engine 376 (e.g., or the Mobile Seamless Connectivity Engine) provides the application 210 accessed or on the mobile device 250 with data in a continuous or near continuous session, in a manner that is uninterrupted or otherwise that does not disrupt user experience or otherwise undetectable by a user, i.e. the communication or operation between the local proxy 275 having the connectivity engine/network interface 276 and the mobile application 210 is not affected by switching connections among communication networks or utilizing multiple communication networks 106 and/or 108A-N.
FIG. 2B depicts a diagram illustrating a mobile device 250 having a connectivity engine/network interface 276 in a local proxy 275 to facilitate connection management between a cellular and a LAN-based (e.g., WLAN, WIFI) connection among multiple networks 106 and/or 108A-N to service an application 210 on the mobile device 210, for instance, a handover from a cellular/mobile connection to a LAN-based (WLAN or WIFI) or similar connection).
For instance, in diagram 280, the mobile device 250 communicates via a cellular network (e.g., 3G) and in diagram 290, via a WLAN (e.g., Wifi) network. When a handover from, for example, 3G to WiFi occurs (e.g. a “vertical handover”), the connectivity engine/network interface 276 in the local proxy 275 (e.g., or the Mobile Seamless Connectivity Engine MSCE) starts a TCP connection using a new network connection with the server. At the time the handover is performed the data may not be completely downloaded by the mobile device 250, e.g. due to a download not yet completed or an ongoing data transfer like a video telephone call.
For example, while a Youtube video is being downloaded handover occurs. In such a case the connectivity engine/network interface 276 in the local proxy 275 (e.g., or the Mobile Seamless Connectivity Engine) may requests the server to send the data that the application has not yet received, i.e. the remaining video data. That is, in case an object is not yet completed, the connectivity engine/network interface 276 in the local proxy 275 (e.g., or the Mobile Seamless Connectivity Engine) can retrieve, download, or receive the remainder of the object from the application server/content provider 110. It is noted that while the connection from the connectivity engine/network interface 276 in the local proxy 275 (e.g., or the Mobile Seamless Connectivity Engine) to the Internet is changed from 3G to WiFi, the connection from the connectivity engine/network interface 276 in the local proxy 275 (e.g., or the Mobile Seamless Connectivity Engine) to the application 210 remains unchanged.
In other words, to the mobile application 210, the change in network connections, e.g. from 3G to WiFi, is transparent (e.g., not visible or detectable). To the application server/content provider 110, a new TCP session has started with a new client. At the application level, the application server 110 can note that the same application 210 has requested the remainder of the object. The local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) can anchor the “socket” session to the client application so that the IP address change or change in other protocol identifier is transparent or un-detectable by the mobile application 210 and/or the user of the mobile application 210.
FIG. 3 depicts a block diagram illustrating an example of components of the mobile device including local proxy having a connectivity engine able to provide data to a mobile application via different and multiple network connections without interruption and/or is able to hand over connectivity from one network connection to another network connection.
The mobile device 250 includes either accessible or installed there on multiple applications 210, a local proxy 275 having a connectivity engine/network interface 276 (e.g., a mobile seamless connectivity engine). The local proxy 275 may also include a connection manager 277. The mobile device 250 also includes a processor, a memory and multiple radios each operable to connect to one or more networks and also coupled to the connectivity engine/network interface 276.
In one embodiment, the radios are included in a radio interface 208 and can include, one or more of, a cellular radio, a Bluetooth radio, a WiFI or WLAN radio interface. In one embodiment, the mobile device 250 also includes an RFID based near-field communication chip.
The local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) can be intermediate stage or interface between the networks 106 and/or 108A-N and the mobile application(s) 210 on the mobile device 250. The mobile device 210 can communicate with any application server 110, e.g. for retrieving video sites (e.g., social networking sites, blogs feeds, youtube, vimeo, etc.), web sites (Yahoo!, Google, CNN, etc.), IM service (MSN, AOL, etc.), Email service, FTP site, App stores, etc. Hence, the mobile applications 210 accessed via or executed on the mobile device may be any program, e.g. a video player, an internet browser, voice over IP application, e-mail program.
In one embodiment, a radio of the radio interface 208 is disconnected before the other radio of the radio interface 208 is connected; and, the network interface 276 of the local proxy 275 determines an amount of the additional data to be downloaded for continuous receipt by the application 210. In one embodiment, the other radio of the radio interface 208 is connected before the radio in the radio interface 208 is disconnected; and, the network interface 276 of the local proxy 275 determines an amount of the additional data to be downloaded for continuous receipt by the application 210.
In general, the mobile device 250 is able to service the application 210 using data received via one of the radios in the radio interface 208 connected to a network of the networks 106 and 108A-N and further service the application 210 using additional data received using the radio or another radio in the radio interface 208 connected to a different network among the networks 106 and 108A-N, such that the data and the additional data is received by the application 210 continuously. In one embodiment, the data and the additional data is received by the application continuously even when the different network causes a new TCP session to be established, or even when connections to the different network connections require change in IP addresses.
Specifically, for example, during operation, when the network connection is made over a LAN-based network connection at the mobile device 250, the mobile device 250 retrieves or receives the data, e.g. a video or other multimedia data file, and the mobile application can perform playbeack plays it. In one embodiment, the local proxy 275 or the connectivity engine/network interface 276 can provide socket service to the mobile application and forwards the received data to the video application. In addition, the local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) can forward data content to the mobile application 210. If and when the network connection changes from one network to another (e.g., from WLAN/WIFI to mobile/cellular, in other words, there is a handover of the network connection).
In one embodiment, the handover occurs by breaking the first network connection then the second connection is established, otherwise referred to as “break-then-make.” When the first network connection (e.g., the LAN-based or WIFI connection) is broken, the local proxy 275 or the connectivity engine/network interface 276 can be informed, e.g. by the connection manager 277, of the disconnection. The local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) can also, in one embodiment, automatically detect the disconnection or unavailability of the first network connection.
The local proxy 275 or the connectivity engine/network interface 276 can further determine, compute, or extract where the disconnection point is in the data, content or media stream. When the new connection is made, in one case, for example, to a cellular network, the connection manager 277 can inform the local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) that a new connection or network is available.
The local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) can request and/or retrieve the remainder of the data and/or content (e.g., any media, multimedia content) from the application server 110. When the video data arrives on the new connection, the local proxy 275 or the connectivity engine/network interface 276 provides the data or content back to the mobile application(s) 210 (e.g. video application). The local proxy 275 or the connectivity engine/network interface 276 ensures that the “new” data ensures consistency with the data already received from the previous connection (e.g., via the LAN-based network), at or near the point where it was last received. As the new data is provided to the video application, the mobile application 210 can continue receipt of the video without knowledge that a handover has just occurred from one network to another (e.g., a WLAN based network to a cellular based network).
In essence, the mobile application and any other application 210 on the mobile device 250 can be serviced using a first data set for the application 210 from one network connection and a second data set for the application from the other network connection, such that the first and second data sets are is received by the application 210 continuously during any hand over from one network to another without interruption to the mobile application, without interruption in the user experience, or detectable change in operation in user experience when there is any change in network connectivity at the mobile device 250.
In one embodiment, the local proxy 275 or the connectivity engine/network interface 276 can predict or anticipate that a currently connected network connection may not be available or may soon become disconnected for one reason or another (e.g., by way of carrier/network operator policy, proximity to towers, geography, location information, time of day, discovery of other networks, user preference, data usage, data plan, device type, device limitations, etc.). This information can be used to “pre-fetch” some of the data in anticipation or prediction of a handover or availability of another network.
In such situations, and in view of such predication or anticipation that a network connection may soon be no longer available or may be disconnected the local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) can manage a make-then-break handover, in other words, establish a second connection before the current connection is disconnected. The local proxy 275 or the connectivity engine/network interface 276 can connect with the application server 110 when it predicts, anticipates or determines that a change in network connection or handover can or will occur in the near future or is already imminent. The connectivity engine/network interface 276 can determine or estimate an amount of data to be accessed and/or retrieved and can request the amount of the needed data/content over the second network interface. Once the new content is received or retrieved, the local proxy 275 or the connectivity engine/network interface 276 can provide the data/content to the application at an exact or near exact point where the data or content from the previous connection leaves off. The local proxy 275 can also retrieve or download partially overlapping content or data to ensure data is provided to the mobile application 210 without gaps or otherwise in a manner that is without noticeable interruption either to the application 210 and/or to a user.
In one embodiment, the local proxy 275 or the connectivity engine/network interface 276 utilizes that some communication protocols such as the HTTP protocol allows objects to be partially retrieved. For example, if a content portion (e.g., a portion of a media file) has been downloaded or retrieved by the mobile device 250, the remaining part of the content portion can be retrieved by partial retrieval. This can be performed by, for example, the HTTP GET request using the RANGE field to specify the data to be downloaded. The partial GET method, for example, can reduce unnecessary network usage by allowing partially received content continued in part or in whole without transferring the data already received by the mobile device 250.
Using partial retrieval, any object or data/content whose download or retrieval process is disrupted by a network change, handover or add of an additional network, can continue to be retrieved or downloaded on the new or added network. Since the local proxy 275 or the connectivity engine/network interface 276 provides a socket service (stream or datagrams) to the mobile application 210, the local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) can track, determine, monitor, or estimate an amount of data that has been retrieved, and the local proxy 275 or the connectivity engine/network interface 276 can perform a partial retrieval (e.g., partial GET) for the needed amount of data to ensure uninterrupted servicing of the mobile application 210 by the application server 110 and/or to ensure user experience with the mobile application 210 in the event of the handover or with the addition of networks and/or with utilization of multiple networks 106 and/or 108A-N at overlapping or partially overlapping periods of time.
As the needed or remaining data is retrieved over the new connection or new network, the local proxy 275 or the connectivity engine/network interface 276 can provide to the mobile application 210 the needed data, and the application is not aware of the disruption in the network connection. Note that the mobile device 250 includes multiple mobile applications 210 and for each of the multiple applications 210 continuous data flow to each of the multiple applications during the hand over is ensured in a similar fashion. The multiple applications can be identified into different application classes by the local proxy 275 or the connectivity engine/network interface 276. Furthermore, a given application class can be associated with a relay based on a protocol utilized by the application class, and the relay provides the continuous data for to each of the other applications in the application class on the mobile device 250.
In one example, a video application allows the handover to occur seamlessly using the disclosed technology described above. For instance, video or media applications typically buffer video data and delays playback so that interruptions in the download do not disturb continuous playback to the user. However, using the disclosed make-then-break method, the local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) can continue video download or other media retrieval or playback with virtually no disruption.
The local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) can also make general web browser experience seamless and without interruption to the user during vertical handovers or when network connections change from one connection to another, or when multiple networks are utilized at a mobile device 250. For instance, a web page is made up of a large number of objects, where each can be identified by the universal resource identifier (URI). During the downloading of the web objects and the rendering of the web page to the user, multiple objects may be simultaneously retrieved by the mobile host.
The local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) can make the web page downloading seamless, continuous, or otherwise uninterrupted to the user during a handover by resuming the downloading of any objects that were interrupted during the handover. The local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) would make use of GET or partial GET of those objects that were only partially downloaded before the handover.
In one embodiment, the local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) has the option of not resuming interrupted downloaded objects, if the local proxy 275 or the connectivity engine/network interface 276 determines that the object is not of sufficient importance.
The local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) can also coordinate with the connection manager 277 so that objects being downloaded on the previous or first connection are continued until completion, and that new or newer objects are downloaded on the new or added connections or networks. This can be applied if the current or previous connection is able to offer enough bandwidth to continue retrieval current or old objects. With such a method, for example, the local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) coordinates with the connection manager to know of the connection quality on the old and new network connections.
From the application standpoint, objects are passed from the local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine), and the change in connection/network or addition of a network or utilization of multiple networks is not apparent to the application 210, i.e. the change is transparent to the application 210. In addition, the connectivity engine/network interface 276 manages object downloads, or retrievals of web objects in a manner that is transparent to a user, such that user experience is not affected or otherwise undetectable by a user when the network connections are changed from one network connection to another or when multiple and/or different networks are utilized to provide data to mobile applications 210 at the mobile device 250.
The disclosed technology can be applied to any application and application-level protocol that supports partial retrievals, for example HTTP, FTP, SMTP, POP, IM. The disclosed embodiments can also include any application and application-level protocol that supports partial uploading, for example HTTP, FTP, and email protocols. Live/non-live and real-time, near-real time, non-real time streaming applications and protocols are supported because session continuation is inherent in a live session (e.g., RTP, RTCP protocols). For example, when a streaming session (e.g., live or non-live) is interrupted on an existing connection, the streaming session content can be moved to the a new network and continued to be downloaded from the new network. In a situation where a make-then-break method can be used, the streaming session can be switched with little or no disruption. In the case of break-then-make, the streaming session may experience a momentary disruption when the connection to the network (e.g., WIFI or Internet) is not available.
The local proxy 275 or the connectivity engine/network interface 276 (e.g., or the Mobile Seamless Connectivity Engine) can also be used to enhance the speed of the reception of an object when multiple connections (e.g., cellular and LAN/WIFI/WLAN/WIMAX, etc.) are available. When the application requests an object, the local proxy 275 or the connectivity engine/network interface 276 can retrieve different parts of the object on one or more of the available network connections. The amount of the object retrieved on each of the network interfaces depends on its connection quality, which can be determined by the connection manager.
When the data is retrieved, the local proxy 275 or the connectivity engine/network interface 276 sends the data to the application 210 in one stream, and the application uses the data without knowing that the data came from multiple connections. That is, different parts of an object are received via different network connections, e.g. WiFi and cellular data such as LTE, 4G or 3G, and can be assembled to one stream which is provided to the application 210. The assembling step may comprise bringing the data in a certain order, e.g. in case of video data. This feature can allow objects to be retrieved faster and enhances user experience and can in some instances, minimize data load of cellular of data providers if content can be retrieved from both LAN-based connections and cellular networks and aggregated to be provided to a mobile application 210.
In one embodiment, the local proxy 275 or the connectivity engine/network interface 276 is operable to aggregate data received from the radios and provide the data from the radios to the application(s) 210 in a continuous fashion. Furthermore, the local proxy 275 or the connectivity engine/network interface 276 is generally operable to aggregate data received over at least two of the one or more networks 106 and 108A-N to expedite data retrieval for the application(s) 210 on the mobile device 210.
The local proxy 275 or the connectivity engine/network interface 276 is capable of separating the types of applications into application classes, and to deploy one or more Relays, e.g. one for each application class. In addition, The local proxy 275 or the connectivity engine/network interface 276 can use one or more relays to monitor one or more socket and to coordinate handovers. Relays, in one embodiment monitor socket traffic to determine the status of the download or retrieval. During handovers, for example, the relays can coordinate the transfer of the data from one network to another. The coordination is optionally conducted via the connection manager 277.
For each socket, the local proxy 275 or the connectivity engine/network interface 276 can, for example, monitor its content to determine what is communicated within each socket. To do this, the local proxy 275 or the connectivity engine/network interface 276 identifies the application-layer protocol that is used, for example, HTTP or FTP. Thus, the local proxy 275 or the connectivity engine/network interface 276 can provide a handover solution that is application-protocol based. The application classes are shown in 402 and can include by way of example:
Live, real time, or near real time Streaming, non-live streaming
Each socket can be assigned to an Application-Class Relay, depending on the protocol used on that relay. When no handover occurs, each socket connects, communicates, then terminates, according to the application using the socket. The relay does not have to do anything. The local proxy 275 or the connectivity engine/network interface 276 performs typical socket functions. When a handover or change in network connection occurs, the relay can determine the status of the communication(s) on the socket. For each relevant socket, the relay can open a new connection on the new interface with the remote application server 110, and keeps open the socket to the local application on the mobile device. In addition, if the communication of an object was interrupted (e.g. downloading a video file), the relay can request the remainder of the content from the application server 110.
In process 502, data for the mobile application a first network connection is received. In process 510, data for the mobile application is received over a network connection different from the first network connection. The first network can be connected to at the mobile device to increase bandwidth or enhance bandwidth to optimize performance, for example. This can occur in response to, for example, in process 504, the first network connection is disconnected at the mobile device, or, in process 506, anticipate or predict that the first network connection is to be disconnected at the mobile device, and/or in process 508, the mobile device connects to the network connection in addition to the first network connection.
In general, the network connection and the first network connection are accessible to the mobile device at overlapping or partially overlapping periods of time. Furthermore, any different network connection parameters utilized by the first network connection and the first network connection are typically transparent to the mobile application.
In process 512, an amount of the data received from the first network connection to effectuate data flow without interruption to the mobile application can be determined.
In process 514, the data received over the network connection including any other data received from the first network connection, is provided to the mobile application in a manner that is without interruption in data flow. In one embodiment, the network connection is a cellular connection including one or more of 2G, EDGE, 3G, 3.5G, HSPA, 4G or LTE connection and the first network connection includes a WIFI or WiMax connection. In one embodiment, the network connection is a 3G connection and the first network connection is a 4G or LTE connection. Note that in general, the data is provided to the mobile application without interruption even when connections to the different network connections require change in IP addresses, or other types of identifiers.
In process 602, disconnection of the network connection during operation of an application is detected or anticipated. In process 604, a connection with another network connection is established. In process 606, an amount data to needed to provide uninterrupted or continuous data flow to the application is determined. Note that in one embodiment, the amount of data is retrieved using a partial retrieval method, as in process 614. The partial retrieval method can include by way of example but not limitation, an HTTP GET request via the RANGE field. The partial retrieval method can also include one or more of, FTP, POP, IM, or streaming application such as RTP or RTCP protocol.
In process 608, the amount of data is retrieved via the other network connection. In process 610, the data is provided to the application in a continuous manner, when the network connection becomes unavailable such that the disconnection of the network connection and the connection with the other network connection is transparent to the application in process 612. Note that the network connection and the other network connection can be accessible to the mobile device at overlapping or partially overlapping periods of time; the network connection and the other first network connection may not be accessible to the mobile device at overlapping periods of time for continuous data flow to the application to be effectuated. The data can be provided to the mobile application without interruption even when connections to the different network connections require change in IP addresses.
In process 702, a connection quality or bandwidth with a first connection is determined. In process 704, an amount of the first data set to be retrieved for the application from the first connection is determined. In process 706, a first data set for an application is retrieved or received from a first connection. In process 708, connection quality or bandwidth with a second connection In process 710, an amount of the second data set to be retrieved for the application from the second connection is determined. In one embodiment, a second data set is retrieved or received for the application from a second connection, when the first connection is disconnected, as in process 712. In one embodiment, a second data set for the application is retrieved or received from a second connection, at or around the handover from the first connection to the second connection, as in process 714.
In one embodiment, a second data set for the application is retrieved or received from a second connection, in anticipation of the handover from the first connection to the second connection as in process 716. In one embodiment, a second data set for the application is retrieved or received from a second connection, when the first connection is still active and both connections are active for an overlapping period of time, as in process 718. In process 720, an application class to which the first and second datasets are directed is identified by an interface through which the first and second data sets are retrieved.
In process 722, the interface is associated with a relay for the application class based on a protocol utilized for the application class. In process 724, a relay is associated with the application and a socket based on a protocol used with the relay. In one embodiment, the relay is generally implemented specifically for the protocol such that multiple different communication protocols are compatible with the disclosed technology. Therefore, different application classes are associated with different relays based on the utilized communication protocol. In process 726, the relay opens a new connection with the second connection and maintains the socket connection with the application. In process 728, the relay requests the second set of data to be provided to the application in an uninterrupted manner and the application can be provided with a continuous data flow using the first and second data sets. In one embodiment, the continuous data flow is provided to the application in a TCP session or as UDP data.
While the machine-readable medium or machine-readable storage medium is shown in an exemplary embodiment to be a single medium, the term “machine-readable medium” and “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” and “machine-readable storage medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the presently disclosed technique and innovation.
In general, the routines executed to implement the embodiments of the disclosure may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.” The computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer that, when read and executed by one or more processing units or processors in a computer, cause the computer to perform operations to execute elements involving the various aspects of the disclosure.
While certain aspects of the disclosure are presented below in certain claim forms, the inventors contemplate the various aspects of the disclosure in any number of claim forms. For example, while only one aspect of the disclosure is recited as a means-plus-function claim under 35 U.S.C. §112, ¶6, other aspects may likewise be embodied as a means-plus-function claim, or in other forms, such as being embodied in a computer-readable medium. (Any claims intended to be treated under 35 U.S.C. ¶112, ¶6 will begin with the words “means for.”) Accordingly, the applicant reserves the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the disclosure.
1. A method of providing data to a plurality of mobile applications accessible at a mobile device via multiple different network connections without interruption, the method comprising:
receiving, by a connectivity engine of the mobile device, data for a first and a second mobile application over a second network connection different than a first network connection;
anticipating that the first network connection is to be disconnected;
in response to anticipating that the first network connection is to be disconnected:
determining an amount of data to be received from the first network connection to provide a first mobile application with continuous data flow when connecting to the second network connection; and
determining an amount of data to be received from the first network connection to provide a second mobile application with continuous data flow when connecting to the second network connection; and
providing the determined amount of data received over the second network connection after providing, data received by the connectivity engine from the first network connection to the first mobile application and the second mobile application in a continuous data flow without interruption;
wherein the amount of the data received for the first mobile application and the second mobile application from the first network connection is determined based on connection quality or bandwidth of the second network connection or the first network connection;
wherein the connectivity engine anchors the continuous data flow such that different network connection parameters utilized by the second network connection and the first network connection are not visible to or detectable by the mobile application.
2. The method of claim 1, wherein, the data is provided to the first mobile application and the second mobile application without interruption even when the second network connection or the first network connections requires a change in IP address.
3. The method of claim 1, wherein, the second network connection and the first network connection are accessible to the mobile device at overlapping or partially overlapping periods of time.
aggregating by the connectivity engine, the data received over at least two of the multiple different networks connections to expedite data retrieval for the first mobile application and the second mobile application.
5. The method of claim 1, wherein, the data for the first mobile application and the data for the second mobile application is received over the second network connection in response to the first network connection being disconnected at the mobile device.
6. The method of claim 1, wherein, the anticipating or predicting is location based.
7. The method of claim 1, wherein, the data for the mobile application is received over the first network connection different than the first network connection in response to the mobile device becoming connected to the second network connection in addition to the first network connection.
8. The method of claim 7, wherein, the mobile device becomes connected to the second network connection to increase bandwidth.
9. The method of claim 1, wherein, the second network connection is a cellular connection including one or more of 3G, 3.5G, HSPA, 4G or LTE connection and the first network connection includes a WIFI or WiMax connection.
10. The method of claim 1, wherein, the second network connection is a 3G connection and the first network connection is a 4G or LTE connection.
11. The method of claim 1, wherein the determined amount of the data received from the first network connection is determined based on connection quality and bandwidth of the second network connection and the first network connection.
12. The method of claim 1, wherein, the determined amount of data received over the second network connection and the data received by the connectivity engine from the first network connection are retrieved or received at an interface able to identify an application class of the application to which the data is directed, wherein, the interface is associated with a relay for the application class based on a protocol utilized for the application class.
13. A mobile device having a plurality of mobile applications installed thereon, the mobile device comprising:
one or more radios each operable to connect to a first network and a second network;
a memory coupled to the processor having instructions stored thereon which, when executed by the processor, causes the mobile device to:
anticipate that the first network is to be disconnected;
in response to anticipating that the first network is to be disconnected:
determine an amount of data to be received from the first network connection to provide a first mobile application with continuous data flow when connecting to the second network connection; and
determine an amount of data to be received from the first network connection to provide a second mobile application with continuous data flow when connecting to the second network connection;
service the first application using the determined data received via a radio connected to the second network and further service the first mobile application using additional data received using the radio or another radio connected to a different network,
service the second mobile application using data received via the radio connected to the second network and further service the second application using additional data received using the radio or another radio connected to a different network,
wherein the data and the additional data is received by the first and second mobile application in a continuous data flow without interruption,
wherein the amount of the additional data received from the additional network is determined based on connection quality or bandwidth of the first network or the second network;
wherein a connectivity engine of the mobile device anchors the continuous data flow such that second network connection parameters utilized by the first network and the second network are not visible to or detectable by the application.
an interface coupled to the radios, the interface configured to aggregate data received from the radios and provide the aggregated data to the first and second mobile application in the continuous data flow without interruption.
15. The mobile device of claim 14, wherein, the interface is configured to aggregate data received over the first and second networks to expedite data retrieval for the first and second mobile application, wherein the data is received over the at least two of the one or more network concurrently.
16. The mobile device of claim 14, wherein, the interface provides a socket to each of the first and second mobile application and provides the aggregated data to the first and second mobile application; and wherein the socket is assigned based on a protocol used by each of the first and second mobile application.
17. The mobile device of claim 13, wherein, the radio is disconnected before the another radio is connected.
18. The mobile device of claim 13, wherein, the another radio is connected before the radio is disconnected.
19. The mobile device of claim 13, wherein, the data and the additional data is received by the first and second mobile application continuously even when the different network causes a new TCP session to be established.
20. The mobile device of claim 13, wherein, the radios include a cellular radio and or a Bluetooth radio.
21. The mobile device of claim 13, wherein, the radios include a WiFI or WLAN interface.
22. The mobile device of claim 13, wherein, the radios include a cellular radio able to connect to a 3G network, an LTE network, an enhanced 3G network or a 4G network.
23. The mobile device of claim 13, wherein, the each of the first and second mobile application includes one or more of, a mobile browser, a video application, a streaming service, an email service, and an FTP site/service.
24. The mobile device of claim 13, wherein, the first and second mobile application includes, one or more of, a VoiP application, a gaming application.
25. A system for providing data to a mobile application via multiple different network connections without interruption, the system comprising:
a connectivity engine configured for:
receiving data for a first mobile application and a second mobile application over a second network connection different from a first network connection;
determining an amount of data to be received from the first network connection to provide a first mobile application with continuous data flow when connected to the second network connection; and
providing the determined amount of data received over the second network connection after providing data received by the connectivity engine from the first network connection to the first mobile application and the second mobile application in a continuous data flow without interruption,
wherein the amount of the data received for the first mobile application and the second mobile application from the first network connection is determined based on connection quality or bandwidth of at least one of the second network connection or the first network connection,
26. A method of providing data to a mobile application accessible at a mobile device via multiple different network connections without interruption, the method comprising:
receiving, by a connectivity engine of the mobile device, data for the mobile application over a second network connection different than a first network connection;
in response to anticipating that the first network connection is to be disconnected, determining an amount of data to be received from the first network connection to provide the mobile application with continuous data flow when connecting to the second network connection;
providing the determined amount of data received over the second network connection after providing data received by the connectivity engine from the first network connection to the mobile application in a continuous data flow without interruption;
wherein the amount of the data received from the first network connection is determined based on connection quality or bandwidth of the second network connection or the first network connection;
wherein the connectivity engine anchors the continuous data flow such that different network connection parameters utilized by the network connection and the first network connection are not visible to or detectable by the mobile application,
wherein the determined amount of data received over the second network connection and the data received by the connectivity engine from the first network connection are retrieved or received at an interface able to identify an application class of the application to which the data is directed, wherein, the interface is associated with a relay for the application class based on a protocol utilized for the application class.
US13/784,486 2012-03-02 2013-03-04 Providing data to a mobile application accessible at a mobile device via different network connections without interruption Active US9066370B2 (en)
US201261606053P true 2012-03-02 2012-03-02
US13/784,486 US9066370B2 (en) 2012-03-02 2013-03-04 Providing data to a mobile application accessible at a mobile device via different network connections without interruption
PCT/US2013/028922 WO2013131098A1 (en) 2012-03-02 2013-03-04 Providing data to a mobile application accessible at a mobile device via different network connections without interruption and mobile devices which hands over connectivity from one network connection to another network connection without interruption in application data flow and methods therefor
GB1304182.7A GB2511562B (en) 2012-03-02 2013-03-04 Providing data to a mobile application accessible at a mobile device via different network connections without interruption and mobile device which hands over
US13/784,544 US8886195B2 (en) 2012-03-02 2013-03-04 Mobile device which hands over connectivity from one network connection to another network connection without interruption in application data flow and methods therefor
US14/744,993 US20150289188A1 (en) 2012-03-02 2015-06-19 Providing data to a mobile application accessible at a mobile device via different network connections without interruption
US13/784,544 Continuation US8886195B2 (en) 2012-03-02 2013-03-04 Mobile device which hands over connectivity from one network connection to another network connection without interruption in application data flow and methods therefor
US14/744,993 Continuation US20150289188A1 (en) 2012-03-02 2015-06-19 Providing data to a mobile application accessible at a mobile device via different network connections without interruption
US20130229270A1 US20130229270A1 (en) 2013-09-05
US9066370B2 true US9066370B2 (en) 2015-06-23
ID=49042513
US13/784,544 Active 2033-04-09 US8886195B2 (en) 2012-03-02 2013-03-04 Mobile device which hands over connectivity from one network connection to another network connection without interruption in application data flow and methods therefor
US13/784,486 Active US9066370B2 (en) 2012-03-02 2013-03-04 Providing data to a mobile application accessible at a mobile device via different network connections without interruption
US14/744,993 Abandoned US20150289188A1 (en) 2012-03-02 2015-06-19 Providing data to a mobile application accessible at a mobile device via different network connections without interruption
US (3) US8886195B2 (en)
EP (1) EP2839716A4 (en)
GB (1) GB2511562B (en)
WO (1) WO2013131098A1 (en)
US9571974B2 (en) 2014-10-20 2017-02-14 Samsung Electronics Co., Ltd. Device searching method and electronic device supporting the same
GB2511562B (en) 2012-03-02 2015-08-12 Seven Networks Inc Providing data to a mobile application accessible at a mobile device via different network connections without interruption and mobile device which hands over
JP5907033B2 (en) * 2012-09-28 2016-04-20 ブラザー工業株式会社 Communication device
JP6036118B2 (en) 2012-09-28 2016-11-30 ブラザー工業株式会社 Communication device
US8995299B2 (en) 2013-02-27 2015-03-31 Telefonaktiebolaget L M Ericsson (Publ) Aggregation of carriers of a cellular radio network with carriers of an auxiliary network
US9402217B1 (en) * 2013-03-06 2016-07-26 Sprint Spectrum L.P. Network management using access point performance values
KR20150045639A (en) * 2013-10-21 2015-04-29 삼성전자주식회사 Method and its apparatus for selectioning network in beamforming system
CN104602308B (en) 2013-10-30 2018-10-30 国际商业机器公司 Method and system for switching over terminal between multiple wireless aps
EP2871871B1 (en) 2013-11-12 2019-07-17 Telefonaktiebolaget LM Ericsson (publ) Remote socket connection
EP2887732B1 (en) * 2013-12-19 2017-06-14 Sony Corporation Method for operating a user equipment in a wireless radio network
JP6187241B2 (en) * 2013-12-24 2017-08-30 ソニー株式会社 Control apparatus, electronic device, control system, and control method
JP6299354B2 (en) 2014-04-08 2018-03-28 富士通株式会社 Wireless communication apparatus, wireless communication method, and wireless communication program
KR20150128346A (en) 2014-05-09 2015-11-18 삼성전자주식회사 Apparatus and method for auto link change in wireless communication device
KR20170034020A (en) 2015-09-18 2017-03-28 삼성전자주식회사 Method for handover in wireless communication system and apparatus therefore
US10187300B2 (en) 2015-12-08 2019-01-22 Carrier Corporation Fallback mobile proxy
CN106231067A (en) * 2016-07-13 2016-12-14 浪潮电子信息产业股份有限公司 A kind of quick test Android App starts the method for flow
US10469341B2 (en) 2017-10-26 2019-11-05 Microsoft Technology Licensing, Llc Intelligent connection management for multiple interfaces
US20040028030A1 (en) 2002-08-12 2004-02-12 Cheng-Shing Lai Method for dialing an internet protocol phone
US20060018309A1 (en) 2004-07-05 2006-01-26 Yoon-Sun Lee Home network system and a method for performing continuous data transfer in the home network system
US20060223465A1 (en) 2005-03-29 2006-10-05 Fujitsu Limited Dual mode communication system, dual mode communication method and dual mode communication user equipment
US20060285519A1 (en) 2005-06-15 2006-12-21 Vidya Narayanan Method and apparatus to facilitate handover key derivation
US20080214190A1 (en) 2007-01-18 2008-09-04 Nokia Corporation Circuit switched domain services with long term evolution/sytem architecture evolution access
US20090075657A1 (en) 2006-05-05 2009-03-19 T-Mobile International Ag Method for optimizing the load distribution between a first mobile radio network and a second mobile radio network
US20100178941A1 (en) 2007-06-18 2010-07-15 Sung-Duck Chun Paging information transmission method for effective call setup
US20100273486A1 (en) 2006-10-11 2010-10-28 Yash Kharia System and method for optimizing battery power
US20130107859A1 (en) 2011-10-27 2013-05-02 Qualcomm Incorporated AVOIDING VOICE OVER INTERNET PROTOCOL (VoIP) PACKET LOSS DUE TO INTER-RADIO ACCESS TECHNOLOGY (RAT) HANDOVER
EP1892917B1 (en) * 2006-08-24 2009-02-25 NTT DoCoMo, Inc. Method and apparatus for seamless handover
TWI392309B (en) * 2008-12-11 2013-04-01 Ind Tech Res Inst Apparatus and method for splicing multimedia session on communication networks
HUE036370T2 (en) * 2011-04-13 2018-07-30 Deutsche Telekom Ag Method for transmitting a mpls header, method for establishing a mpls path and method for performing a handover of an mpls path
2013-03-04 GB GB1304182.7A patent/GB2511562B/en active Active
2013-03-04 WO PCT/US2013/028922 patent/WO2013131098A1/en active Application Filing
2013-03-04 US US13/784,544 patent/US8886195B2/en active Active
2013-03-04 US US13/784,486 patent/US9066370B2/en active Active
2013-03-04 EP EP13755791.4A patent/EP2839716A4/en not_active Withdrawn
2015-06-19 US US14/744,993 patent/US20150289188A1/en not_active Abandoned
International Application No. PCT/US2007/083114, International Preliminary Report on Patentability, 10 pages, Feb. 5, 2009.
International Application No. PCT/US2007/083114, International Search Report & Written Opinion, 7 pages, Apr. 9, 2008.
International Application No. PCT/US2009/031291, International Search Report & Written Opinion, 13 pages, Jun. 2, 2009.
IPRP for Application No. PCT/US2013/028922 mailed Sep. 12, 2014.
Non-final Office Action mailed Apr. 7, 2015 for U.S. Appl. No. 12/354,640.
Office Action for U.S. Appl. No. 13/784,544 mailed Jun. 12, 2014.
GB2511562A (en) 2014-09-10
GB201304182D0 (en) 2013-04-24
GB2511562A8 (en) 2014-10-29
US20130229976A1 (en) 2013-09-05
US20130229270A1 (en) 2013-09-05
WO2013131098A1 (en) 2013-09-06
US20150289188A1 (en) 2015-10-08
EP2839716A1 (en) 2015-02-25
GB2511562B (en) 2015-08-12
US8886195B2 (en) 2014-11-11
EP2839716A4 (en) 2015-12-23
EP2621144B1 (en) 2014-06-25 System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US8782222B2 (en) 2014-07-15 Timing of keep-alive messages used in a system for mobile network resource conservation and optimization
JP5678185B2 (en) 2015-02-25 Distributed caching for resource and mobile network traffic management
JP5620578B2 (en) 2014-11-05 Mobile network traffic regulation across multiple applications
EP2792188B1 (en) 2019-03-20 Mobile network reporting and usage analytics system and method using aggregation of data in a distributed traffic optimization system
EP3422775A1 (en) 2019-01-02 Optimization of resource polling intervals to satisfy mobile device requests
EP2789185B1 (en) 2018-03-07 Mobile traffic optimization based on public or private network destination
DE202012004677U1 (en) 2012-09-20 Client device for transferring the application state across different devices
CN103201735B (en) 2016-05-04 A system and method for performing a domain name server prefetching
JP2010530110A (en) 2010-09-02 System, method, apparatus and computer program product for downloading content for offline browsing
US10397367B2 (en) 2019-08-27 Optimization of resource polling intervals to satisfy mobile device requests
US20060223593A1 (en) 2006-10-05 Content delivery system and method for a mobile communication device
EP2596658B1 (en) 2018-05-09 Aligning data transfer to optimize connections established for transmission over a wireless network
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SRINIVASAN, SURESH;LEE, YUAN KANG;SENGUPTA, CHAITALI;SIGNING DATES FROM 20130301 TO 20130303;REEL/FRAME:029928/0958