Method and arrangement for managing connections for data transmission
A connection manager in vehicle telematics systems prioritizes and queues data transfer requests to efficiently utilize available wireless connections, addressing inefficiencies in existing systems by reducing costs and ensuring reliable data transfer.
Patent Information
- Application Number
- DE102017125568
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2016-11-04
- Filing Date
- 2017-11-01
- Publication Date
- 2025-10-02
- Estimated Expiration
- 2037-11-01
AI Technical Summary
Existing vehicle telematics systems inefficiently manage data transmission, often relying on costly cellular networks and failing to utilize available free wireless connections effectively, leading to unreliable and expensive data transfer.
Implementing a connection manager that prioritizes and queues data transfer requests based on predefined characteristics, using available wireless connections efficiently, including free and low-cost options, and managing failovers to optimize data transmission.
Enhances data transmission efficiency by reducing costs and ensuring reliable connectivity through intelligent use of available wireless networks, including free and low-cost options, thereby optimizing data transfer.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The illustrated embodiments generally relate to a method and arrangement for managing connections for data transmission. GENERAL STATE OF THE ART
[0002] Modern vehicles utilize a vast array of data services, ranging from in-vehicle computing systems to remote data transmission and access. Vehicle telematics units provide the ability to communicate with remote networks, and these communication services can be used to update firmware and software, receive media, and even send emails from the vehicle and manage calls.
[0003] Transferring data to and from remote networks requires some form of connection that can access and communicate with a remote network. A common solution to this need is the use of a cellular network. However, cellular networks often come with costs associated with data transmission. While the cost of a single transaction may be extremely small when an original equipment manufacturer (OEM) incurs costs for OEM-specified transactions, such as diagnostics and software updates, the costs can be significant when added together for all vehicles on the road.
[0004] Using Wi-Fi or other similar low-cost or free services may result in data backup, but data transfer under such conditions may require frequent reboots, as a vehicle tends to be moving, meaning the vehicle is unlikely to remain within range of a given connection for an extended period. Furthermore, such services may only be available during select periods or locations, making them an unreliable choice as the sole means of data transfer.
[0005] Systems according to the preamble of claim 1 are known from US 2016 / 0309539 A1 and US 2015 / 0195859 A1. US 2012 / 0218909 A1 provides a system according to the preamble of claim 3. Further relevant prior art is shown in US 8989954 B1. SUMMARY
[0006] The present invention comprises systems according to claims 1, 3, 4 and 9. Advantageous further developments are described in the subclaims.
[0007] In a first illustrative embodiment, a system includes a processor configured to receive a data transfer request including a priority designation. The processor is further configured to determine whether a wireless connection is available that has a predefined characteristic associated with the priority designation. The processor is further configured to process the request using the connection if available and to queue the request for later processing if the connection is unavailable.
[0008] In a second illustrative embodiment, a system includes a processor configured to receive a data transfer request, including a priority designation, from an application executing in a first vehicle module including the processor. The system is further configured to query an interface monitoring process of a second vehicle module to determine whether the second vehicle module has an available wireless connection having a predefined characteristic associated with the priority designation. The system is additionally configured to instruct the second vehicle module to service the request using the connection if available and to queue the request for later processing if the connection is unavailable.
[0009] In a third illustrative embodiment, a system includes a processor configured to receive a data transfer request including a free-only designation and an expiration designation. The processor is further configured to determine whether a wireless connection having free data transfer becomes available for use in servicing the request during a period of time defined by the expiration designation. The processor is additionally configured to service the request using the connection when the connection becomes available and to re-designate the request as a non-free request to be serviced by a non-free available connection once a period of time defined by the expiration designation passes and the request has not yet been serviced. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 shows an illustrative vehicle computing system; The Fig. 2A and Fig. 2B show an illustrative system for managing data connections; Fig. 3 shows an illustrative process for processing a data transfer request; Fig. 4 shows an illustrative data transfer process; Fig. 5 shows an illustrative control interface for data transmission; The Fig. 6A-6C show an illustrative data transfer process using a secondary device; and The Fig. 7A-7C show an illustrative data transfer process for facilitating restricted data transfer. DETAILED DESCRIPTION
[0010] Detailed embodiments of the present invention are disclosed herein as appropriate; however, it should be understood that the disclosed embodiments are merely exemplary of the invention that may be embodied in various and alternative forms. The figures are not necessarily to scale; some features may be exaggerated or reduced to show details of particular components. Accordingly, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a representative basis for teaching one skilled in the art to variously employ the present invention.
[0011] Fig. 1 illustrates an exemplary block structure for a vehicle-based computing system 1 (VCS) for a vehicle 31. An example of such a vehicle-based computing system 1 is the SYNC system manufactured by THE FORD MOTOR COMPANY. A vehicle equipped with a vehicle-based computing system may include a visual front-end interface 4 located within the vehicle. The user may also be able to interact with the interface, if provided, for example, via a touch-sensitive screen. In another illustrative embodiment, the interaction occurs through button presses, a voice dialog system with automatic speech recognition, and speech synthesis.
[0012] At the Fig. In the illustrative embodiment shown in Figure 1, a processor 3 controls at least a portion of the operation of the vehicle-based computing system. The processor, located in the vehicle, enables the processing of instructions and routines within the vehicle. Further, the processor is connected to both non-persistent memory 5 and persistent memory 7. In this illustrative embodiment, the non-persistent memory is random access memory (RAM) and the persistent memory is hard disk drive (HDD) or flash memory. In general, persistent (non-volatile) memory can include any form of storage that retains data when a computer or other device is turned off. These include, but are not limited to, HDDs, CDs, DVDs, magnetic tapes, solid-state drives, portable USB drives, and any other suitable form of persistent storage.
[0013] The processor is also equipped with a number of different inputs through which the user can connect to the processor. In this illustrative embodiment, a microphone 29, an auxiliary input 25 (for input 33), a USB input 23, a GPS input 24, screen 4, which may be a touchscreen display, and a BLUETOOTH input 15 are provided, respectively. An input selector 51 is also provided to allow a user to switch between different inputs. Inputs to both the microphone and the auxiliary port are converted from analog to digital by a converter 27 before being passed to the processor. Although not shown, many of the vehicle components and auxiliary components in communication with the VCS may utilize a vehicle network (such as, among others, a CAN bus) to pass data to and from the VCS (or components thereof).
[0014] Outputs to the system may include, among others, a visual display 4 and a speaker 13 or a stereo system output. The speaker is connected to an amplifier 11 and receives its signal through a digital-to-analog converter 9 from the processor 3. Output may also be provided to a remote BLUETOOTH device, such as PND 54, or a USB device, such as the vehicle navigation device 60, along the bidirectional data streams shown at 19 and 21, respectively.
[0015] In one illustrative embodiment, system 1 uses BLUETOOTH transceiver 15 to communicate 17 with a user's mobile device 53 (e.g., cell phone, smartphone, PDA, or any other Wi-Fi enabled device). The mobile device can then be used to communicate 59 with a network 61 external to vehicle 31, for example, through communication 55 with a cellular tower 57. In some embodiments, tower 57 may be a Wi-Fi access point.
[0016] An example of communication between the mobile device and the BLUETOOTH transceiver is represented by signal 14.
[0017] Pairing a mobile device 53 with the BLUETOOTH transceiver 15 can be initiated by a button 52 or a similar input. Accordingly, the CPU is instructed to pair the vehicle's integrated BLUETOOTH transceiver with a mobile device's BLUETOOTH transceiver.
[0018] Data may be communicated between the CPU 3 and the network 61, for example, using a data plan, data over voice, or DTMF tones associated with the mobile device 53. Alternatively, it may be desirable to provide an on-board modem 63 having an antenna 18 to communicate 16 data between the CPU 3 and the network 61 over the voice band. The mobile device 53 may then be used to communicate 59 with a network 61 external to the vehicle 31, for example, through communication 55 with a cellular tower 57. In some embodiments, the modem 63 may establish communication 20 with the tower 57 to communicate with the network 61. As a non-limiting example, the modem 63 may be a USB cellular modem and the communication 20 may be a cellular communication.
[0019] In one illustrative embodiment, the processor is provided with an operating system including an API for communicating with modem application software. The modem application software may access an embedded module or firmware on the BLUETOOTH transceiver to complete wireless communication with a remote BLUETOOTH transceiver (such as that in a mobile device). Bluetooth is a subset of the IEEE 802 Personal Area Network (PAN) protocols. IEEE 802 Local Area Network (LAN) protocols include WLAN and have considerable cross-functionality with IEEE 802 PAN. Both are suitable for wireless communication in a vehicle. Other communication means that may be used in this area are free-space optical communication (such as IrDA) and non-standardized consumer IR protocols.
[0020] In another embodiment, mobile device 53 includes a modem for voiceband or broadband data communication. In the data-over-voice embodiment, a technique known as frequency division multiplexing may be implemented when the mobile device owner can speak through the device while simultaneously transmitting data. At other times, when the owner is not using the device, the entire bandwidth (300 Hz to 3.4 kHz in one example) may be used for data transmission. Although frequency division multiplexing may be common and still is used in analog cellular communication between the vehicle and the Internet, it has been largely replaced by hybrids of code division multiplexing (CDMA), time division multiplexing (TDMA), and space division multiplexing (SDMA) for digital cellular communication.These are all ITU-IMT-2000 (3G)-compliant standards, which offer data transfer speeds of up to 2 MB for stationary or walking users and 385 KB for users in a moving vehicle. 3G standards are currently being replaced by IMT-Advanced (4G), which offers 100 MB for users in a vehicle and 1 GB for stationary users. If the user's mobile device is associated with a data plan, it is possible that the data plan allows broadband transmission and the system could utilize a significantly greater bandwidth (thereby increasing the data transfer speed). In yet another embodiment, the mobile device 53 is replaced by a cellular communication device (not shown) installed in the vehicle 31. In yet another embodiment, the ND 53 may be a wireless local area network (LAN) device, for example (and without limitation) using an 802.11ac wireless LAN.11g network (i.e. WLAN) or a WiMax network.
[0021] In one embodiment, incoming data from the mobile device can be forwarded via data-over-voice or a data plan through the onboard BLUETOOTH transceiver and into the vehicle's internal processor 3. In the case of certain temporary data, the data can be stored, for example, on the HDD or other storage medium 7 until the data is no longer needed.
[0022] Additional sources that may connect to the vehicle include a personal navigation device 54, such as one with a USB port 56 and / or antenna 58, an in-vehicle navigation device 60 with a USB 62 or other port, an on-board GPS device 24, or a separate navigation system (not shown) with connectivity to the network 61. USB is one of a class of serial network protocols. The serial protocols IEEE 1394 (FireWire™ (Apple), i.LINK™ (Sony), and Lynx™ (Texas Instruments)), EIA (Electronics Industry Association), IEEE 1284 (Centronics Port), S / PDIF (Sony / Philips Digital Interconnect Format), and USB-IF (USB Implementers Forum) form the backbone of serial device-to-device standards. The majority of protocols can be implemented for either electrical or optical communication.
[0023] In addition, the CPU could be in communication with a variety of other auxiliary devices 65. These devices may be connected via a wireless 67 or wired 69 connection. The auxiliary devices 65 may include, but are not limited to, personal media players, wireless health devices, wearable computers, and the like.
[0024] Additionally or alternatively, the CPU could be connected to a vehicle-based wireless router 73, for example, using a WLAN transceiver 71 (IEEE 803.11). This would allow the CPU to connect to remote networks within the range of the local router 73.
[0025] In addition to example processes being performed by a vehicle computing system located in a vehicle, in certain embodiments the example processes may be performed by a computing system in communication with a vehicle computing system. Such a system may include, but is not limited to, a wireless device (e.g., a cellular phone, among others) or a remote computing system (e.g., a server, among others) connected via the wireless device. Collectively, such systems may be referred to as vehicle-associated computing systems (VACS). In certain embodiments, certain components of the VACS may perform certain portions of a process, depending on the particular implementation of the system.For example, and not by way of limitation, if a process includes a step of sending or receiving information with a paired wireless device, it is likely that the wireless device will not perform that part of the process, since the wireless device would not "send and receive" information to or from itself. One of ordinary skill in the art will understand when it is inappropriate to apply a particular computing system to a given solution.
[0026] In each illustrative embodiment discussed herein, an exemplary, non-limiting example of a process performable by a computing system is presented. With respect to each process, the computing system executing the process may be configured, for the limited purpose of executing the process, as a special-purpose processor to perform the process. All processes need not be performed in their entirety and are understood as examples of types of processes that may be performed to achieve elements of the invention. Additional steps may be added to or removed from the exemplary processes as desired.
[0027] With respect to the illustrative embodiments described in the figures, it should be noted that a general-purpose processor may be temporarily activated as a special-purpose processor for the purpose of performing some or all of the example methods presented herein. When code providing instructions for performing some or all of the steps of the method is executed, the processor may temporarily be reinstated as a special-purpose processor until the method is completed. In another example, to a reasonable extent, firmware acting in accordance with a preconfigured processor may cause the processor to act as a special-purpose processor provided for the purpose of performing the method or a reasonable variation thereof.
[0028] Many vehicle telematics units use data in an unoptimized and expensive way. Essentially, these units perform data transfers on demand using whatever connection resources are available at the time. In some cases, the systems don't even use the most cost-effective or fastest available resources, instead relying on a pure cellular model.
[0029] Although cellular data services are inexpensive per instance, they are quite expensive overall and often don't match the fastest available connection. With the proliferation of free wireless hotspots across the country and plans to deploy millions of DSRC hotspots across road network infrastructure, there are already a large number of available alternatives to cellular networks for data transmission.
[0030] Additionally, most users have a wireless home network, and since data transmitted over this network is free (at least for now), regardless of the volume, these home networks represent a valuable resource in the data transmission option pool. Advantages of cellular are that it provides wide range and consistent coverage, and an OEM does not have to ask anyone, including a driver, for permission to use the network if the OEM pays the subscription costs. However, many drivers are unlikely to object to their own personal vehicles using their own personal networks to transmit data, especially if that data is designed to enhance the vehicle (such as OTA updates).
[0031] In the illustrative embodiments, an in-vehicle connection manager handles in-vehicle data transfer requests from applications. The connection manager also handles failover between data transfer options, finding options with sufficient bandwidth and latency (based on parameters specified or prespecified by a request). Furthermore, the illustrative connection manager handles requests designated as "free only" or "preferably free," such as non-time-critical requests.
[0032] An application can identify a priority ranking, which the connection manager can use to determine which interfaces to use to process the request and when to process the request. For example, high-priority requests can use the lowest-latency interface and execute immediately using any available interface. Medium-priority requests can use the highest-bandwidth interface and again execute immediately. Low-priority requests can use the connection with the highest available bandwidth that is also below a certain cost, with execution delayed, if necessary, for at least a predetermined period of time until a low-cost connection becomes available.
[0033] Some requests may also be labeled "free only" or "free preferred," indicating that the request should be delayed until a free transmission connection is available. These requests may also have a designated timeout associated with them or predefined, specifying that if a free interface becomes unavailable before the time period expires, the request will be processed by any or designated available non-free interfaces. Other requests may be labeled "off-peak" or "night only," which delays the request until off-peak or nighttime (presumably lower-cost) transmission becomes available.In this case, the connection management device can activate the TCU at an off-peak or night time to perform the request if the vehicle is not already in use at the required time.
[0034] The Fig. 2A and Fig. 2B show an illustrative system for managing data connections. In this illustrative example, the system includes a cellular modem 201 and an infotainment unit 231. The Fig. The cellular modem 201 shown in Figure 2A includes a cellular modem data connection manager daemon. An application executing in the vehicle or an electronic control unit (ECU) of the vehicle requests a data transfer 203, and the process forwards the request to a request handler 205. The request may include transfer requirements and / or a priority designation. In some cases, the priority designation may be used to specify the transfer requirements.
[0035] Depending on the type of transfer required (immediate or delayed), the request handler may push the request into a queue for immediate transfer 207 or it may push the request into a delay queue, which may delay processing of the request until a suitable time (specified by the parameter(s) or priority associated with the request).
[0036] The connection manager may also process the immediate transfer queue 211, which may result in processing some or all of the requests in the immediate transfer queue depending on the results of a query of available interfaces 213. Since certain requests may specify a particular latency or bandwidth, these requests may not necessarily be processed unless an interface exists that has characteristics sufficient to match the parameters.
[0037] A similar paradigm can be followed for processing the request delay queue 215, which may have different interface requirements associated with the requests stored therein, but will delay or process requests in a similar manner based on the properties of available interfaces versus the constraints associated with the requests.
[0038] Once the connection manager determines that processing a request is appropriate under the current conditions for a given request, the process may assign a transfer worker process 217 to process the transfer. A monitor process may monitor the workers' processing of the request 219 and handle a failover that may occur due to the loss of availability of a particular connection or interface or the change of a property.
[0039] In this example, the cellular modem has Wi-Fi 223 and cellular 225 options for use in handling data transmission, as well as an Ethernet connection 221 to handle transmission requests from another module, such as the infotainment unit 231.
[0040] Fig. Figure 2B shows the infotainment unit 231, which also includes an Ethernet connection 251 to forward requests to other modules and / or receive transmission requests from other modules.
[0041] In this illustrative embodiment, another application 233 requests a data transfer through the infotainment unit. The infotainment connection manager includes a request handler 235, which can also forward requests to the cellular modem when the infotainment unit lacks a consistent connection (such as cellular) for immediate processing of higher priority requests.
[0042] If the request requests immediate processing based on parameters associated with the request, including a priority ranking, the infotainment connection manager may push the request into an immediate download queue 239. This immediate download queue may be served at least in part by a cellular connection provided by the cellular modem and / or the request handler may push immediate requests into the cellular request handler process when no immediate connection is available to serve an immediate download queue in the infotainment unit.Additionally or alternatively, when the infotainment unit attempts to service the queued requests for an immediate download, the process may determine that some or all of the requests should be forwarded to the cellular modem unit for an immediate transfer if the process is unable to service the requests using interfaces available to the infotainment unit.
[0043] For requests requesting delayed processing (e.g., nighttime or free-only requests), the process may push those requests to the delay queue 237. As with the immediate queue in the infotainment unit module, if the delay queue does not have access to a suitable interface to service the request (e.g., without limitation, no Wi-Fi network connection to service free-only requests, or no cellular connection or Wi-Fi connection to service nighttime requests), the process may determine the availability of interfaces for use by each queue by querying the infotainment interface monitor 241.
[0044] For any request where an interface is available that meets the constraints of the request, the process may initiate a transfer worker 247 and monitor the transfer 249 in case a failover is needed due to the loss of a connection or the change of the state of a connection (e.g., transition from free to cost-based, night to day, etc.).
[0045] Various different vehicle modules may have independent communication capabilities, which may include, for example, access to a module-provided modem or Wi-Fi transceiver, or other wireless communication components provided for and used by that particular module. The illustrative embodiments allow alternative modules in a vehicle network to utilize the communication capabilities of other modules.
[0046] Fig. Figure 3 shows an illustrative process for handling a data transfer request. In this illustrative example, a request handling process receives a data transfer request from an in-vehicle application 301. The request may include a destination system for providing / receiving the transfer and a local file name for storing / accessing a transfer. The process extracts these parameters from the request 303, as well as a priority label from the request 305.
[0047] The process may place the request in an immediate download queue based on a priority ranking if a single immediate download queue is used. In an alternative example, multiple queues may be used, with the process moving to a lower priority queue if and when higher priority queues are empty. In this example, the process uses an immediate download queue and a delay queue. The delay queue contains only free requests that also have an associated delay, which may be requeued in the immediate download queue for execution over the cellular connection if no free data interface becomes available within the delay period.
[0048] In this example, if the request is a high-priority request (307), the process queues the request above the topmost medium-priority request (309). If the request is a medium-priority request (311), the process queues the request above the topmost low-priority request (313). If the request is a low-priority request (317), the process queues the request above the topmost free-priority request (315). This achieves a first-in, first-out ordering of requests, with a priority ranking providing a higher processing priority for a request. Other models can also be used; this is merely an illustrative method for queuing.
[0049] Other remaining requests are set as free-only requests 319 because, in this example, the request has a high, medium, or low priority, or a free-only priority. If the free-only request has an expiration time for the free-only period 321, the process puts the request in a delay queue. The delay queue holds free-only requests for a defined period (which can be defined for all requests as a group or individually), and then the process moves free-only requests to the immediate transmission queue for processing by a cellular interface, when available. The process places free-only requests with no expiration time at the bottom of the immediate transmission queue.
[0050] Fig. Figure 4 shows an illustrative data transfer process. In this example, the process receives a request from the immediate processing queue 401. If the immediate processing queue is empty 403, the process can retrieve a request from the delayed processing queue 405, which contains only free requests with a defined expiration time.
[0051] The process then queries available connection interfaces 407 to determine if the request can be satisfied using the parameters and / or constraints associated with the request 407. If the request can be satisfied under the associated constraints, the process begins transmitting 413 according to the request using an interface that satisfies the constraints. If the connection is lost at any point 415, the process may save a status of the transmission 417 and check if another available interface satisfies the constraints 409. If no interface is available, the process may requeue the request 411 and move on to the next request in the queue.
[0052] At each point in time the process attempts to process a data transfer, which can be continuous with a certain degree of consistency, the requests are processed in an ordered manner, with the request with the highest priority and constraints that can be satisfied by currently available connection interfaces being processed first. Other models can also be used to process requests, and flags can be set for the availability of specific interfaces when a request is queued, so that the request is processed at least when a flagged interface becomes available.
[0053] Fig. Figure 5 shows an illustrative control interface for data transmission. O-EMs can provide this interface to developers, or it can be a background interface accessible by those with deep diagnostic skills. Aspects of the interface can be visible to the driver / occupant, but the driver or occupant may not necessarily be able to change, for example, the priority of a request. If the interface is provided to drivers, for example, certain parameters can be controllable, and others can be fixed (so that the driver does not misprioritize a request). Access to fixed parameters can, if desired, be obtained through an override operation, allowing any definable parameter to be changed by a qualified party.In some cases, the driver may never be able to see or use this interface, and it may be exclusive to OEMs / developers.
[0054] The TCU console 501 provides a download category (or upload category) that specifies the priority of the request 505. In this example, the process allows for defining the priority specification as high, medium, low, free only, and / or night only. Certain applications may also have only a limited set of available definitions, with high priority and / or medium priority reserved for functions that are critical and important to the vehicle.
[0055] The console displays a destination location 509, which specifies where a file for transfer is obtained from. There is also a result location 511, which specifies where a file for transfer should be saved. If a download has not yet been started, a user can click a download button 513 to initiate the request.
[0056] Interface controllers 525 provide a list of available connection interfaces that can be updated 523 to reflect a current set of available connection interfaces. In this example, there are three available interfaces 515: a TCU WLAN, a 3G cellular connection, and a VCS WLAN connection. The 3G connection is currently handling the transmission, although this interface transmission may be terminated 517 and one of the other two available interfaces promoted 519, 521 to handle the connection.
[0057] The TCU console also displays a current download 527. This information includes the current interface in use 529 (which, in this case, is the 3G connection). The console also displays the various amounts of data in the target file that were downloaded through the various interfaces. Here, the TCU Wi-Fi downloaded 11% of the file 535, the VCS Wi-Fi downloaded 27% of the file, and the current cellular connection downloaded 4% of the file.
[0058] The Fig. 6A-6C show an illustrative data transfer process using a secondary device. In this illustrative example, the TCU module, which includes the cellular modem and a cellular modem application 601, wishes to download a file, but uses a network interface provided by the infotainment system to process the download.
[0059] The cellular modem application detects a new software update that is available 609 or is notified by some form of notification that a new update is available. Accordingly, the application generates and transmits a request for the update 611, which includes a priority rating (in this case, low).
[0060] Since the application is executing in the TCU, the TCU connection manager 603 first receives the application request 613. The connection manager pushes the request into the immediate download queue 615 in the appropriate position (e.g., among the medium and high priority requests). When queue servicing occurs, the queue servicing process retrieves the request from the immediate download queue 617 and queries the cellular modem (TCU) interface monitor process 619.
[0061] The interface monitoring process tracks which network interfaces are currently available for a particular module. It may also be aware of interfaces available for other modules and may be kept up-to-date with this alternative interface information through inter-module communication. In this example, the TCU interface monitor knows that the infotainment connection manager 605 has a Wi-Fi connection available for use in the broadcast.
[0062] In this example, if the request is not ready for processing (621), or if another parameter of the request (e.g., only at night) is not met, the process requeues the request (623) and moves on to the next request in the queue. If the conditions for processing the request are met, the process commits a worker to process the request (625).
[0063] In this example, two workers are committed, one in the TCU module to process the data coming from the infotainment module, and one in the infotainment module to process the actual download. A request forwarded to the infotainment connection manager may cause the infotainment connection manager to commit a download worker 627, which processes the download request 629 and retrieves the data to be downloaded from a download repository 607. The infotainment download worker forwards relevant data to a TCU download worker 631.
[0064] A TCU download monitoring process 633 may monitor download workers running in the TCU. This enables failover handling and the notification and logging of errors, as well as the requeuing of incomplete requests when no alternative interface is available to handle a failover request. The TCU monitoring process may transmit 635 an ongoing status of the request (which may include, for example, a completion status, the currently committed interface, etc.). The application waits 637 for completion of the request from the status transmission.
[0065] The Fig.7A-7C show an illustrative data transfer process for facilitating constrained data transfer. In this example, a request includes a free-only parameter indicating that only a free data transfer should be used to complete a requested transfer. The request also has an expiration timer associated with it, where the expiration timer indicates a period of time after which any or specific available connections can be used to complete the request. In some models, the entire delay queue (of free-only requests, including expiration timers) may have a fixed, predefined expiration time associated with it (e.g., any request remains in the queue for five hours), and in other models, the individual requests may have defined expiration timers associated with them per request.
[0066] A request 701 executed in the TCU module detects a new update that is available or is notified of it 707. Again, the application generates a request for the updated data 709. The application then forwards this request to the TCU connection manager, and the request includes a priority, which in this case is "free only." In this example, the request also includes an expiration parameter of 1 day.
[0067] In this example, the connection manager first pushes the request into a queue for immediate download 713 (for processing based on priority) if a free connection is currently available. A queue handler process 715 retrieves the request from the queue and queries the interface monitor 717 to determine if any free connections are available. In this example, no free connections are available, so the request is not processed immediately 719. If a free connection were available, the connection manager's queue handler process would commit a worker 741 to process the request.
[0068] Since the request is not ready for immediate processing, the connection manager pushes the request 721 into a delay queue 723, where requests with expiration times are processed. A delay queue handler process 725 retrieves requests from the delay queue and queries the interface monitor 729 to determine if there is an available no-cost interface to use in fulfilling the request(s). If the delay queue handler process cannot fulfill a request, the process determines whether time remains on the expiration timer 733. If time remains, the process requeues the request in the delay queue; otherwise, the process moves the request to an immediate queue for mobile processing.
[0069] It may also be the case that a particular request is designated as a night-only request, in which case the connection manager may place the request in a night-only queue 736 or delay processing of the request until a specified time. If the request is not a night-only request and if the delay timer has expired, the process queries the interface monitor 739 for a cellular (or other usable) 737 interface.
[0070] If the requested connection is unavailable, the request can be requeued to the appropriate queue (in this example, immediately or only at night). If cellular (or another requested connection) is available, the process can initiate 741 a download worker 743. The download worker downloads the request from a download repository 705.
[0071] As before, a monitoring process 745 monitors the download and transmits required status updates 747 and / or handles or orders the handling of failovers resulting from lost or changing connections. The application waits for the download monitor to complete the requested download 749.
[0072] While exemplary embodiments have been described above, it is not intended that these embodiments describe all possible forms of the invention. The terms used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the invention. Additionally, the features of various implementations may be combined to form further embodiments of the invention.
Claims
[1] System comprising: a processor configured to: to receive a data transfer request, the request including a priority designation indicating when, in relation to other requests, the request is to be processed and having a predefined property defining which type of connection is permitted to be used to process the request; determine whether a wireless connection is available that has the predefined characteristic; process the request using the connection, if available; to queue the request for later processing if the connection is not available, characterized by , that the priority designation includes at least one of: a high priority label and the predefined property is any available connection that also has the lowest latency when a large number of connections are available; a medium priority label and the predefined property is any available connection that also has the highest bandwidth when a plurality of connections are available; a low priority designation and the predefined property is any available connection for which the transmission cost for processing the request does not exceed the predefined maximum cost, which also has the highest bandwidth when a plurality of connections are available for which the transmission cost for processing the request does not exceed the predefined maximum cost; or the predefined property is any available connection for which there is no transmission cost for processing the request. [2] The system of claim 1, wherein the request further includes an expiration designation, wherein the processor is configured to re-designate a request designated as free only to be served by a non-free available connection when a period of time defined by the expiration designation passes and the request has not yet been served. [3] System comprising: a processor configured to: receive a data transfer request, including a priority designation that indicates when, with respect to other requests, the request is to be processed and having a predefined property that defines the use of which type of connection is permitted for processing the request, from an application executing in a first vehicle module, including the processor; characterized by , that the processor is further configured to query an interface monitoring process of a second vehicle module to determine whether the second vehicle module has an available wireless connection having the predefined characteristic; instruct the second vehicle module to process the request using the connection, if available; and to queue the request for later processing if the connection is not available, with the priority label includes a high priority label and the predefined property is any available connection that also has the lowest latency when a large number of connections are available or includes a medium priority label and the predefined property is any available connection that also has the highest bandwidth when a plurality of connections are available or includes a low priority label and the predefined property is any available connection for which transmission costs for servicing the request do not exceed predefined maximum costs, which also has the highest bandwidth when a plurality of connections are available for which transmission costs for servicing the request do not exceed predefined maximum costs. [4] System according to the preamble of claim 3, characterized by , that the processor is further configured to query an interface monitoring process of a second vehicle module to determine whether the second vehicle module has an available wireless connection having the predefined characteristic; instruct the second vehicle module to process the request using the connection, if available; and to queue the request for later processing if the connection is not available, whereby the predefined property is any available connection for which there is no transmission cost for processing the request. [5] The system of claim 4, wherein the request further includes an expiration designation, wherein the processor is configured to re-designate a request designated as only free to be served by a non-free available connection when a period of time defined by the expiration designation passes and the request has not yet been served. [6] The system of claim 3, wherein the connection includes a cellular connection. [7] The system of claim 3, wherein the connection includes a Wi-Fi connection. [8] The system of claim 3, wherein the connection includes a BLUETOOTH connection. [9] System comprising: a processor configured to: to receive a data transfer request, including a process identifier; to determine whether a wireless connection having free data transmission will become available for use in processing the request during a period defined by the expiration label; to process the request using the connection when the connection becomes available; and to re-designate the request as a non-free request to be processed by a non-free available connection once a period of time defined by the expiration designation has passed and the request has not yet been processed.
Citation Information
Patent Citations
Storage medium storing information processing program, information processing system, information processing apparatus and method for processing connection requests to establish connection to access points from a plurality of programs
US20120218909A1
Method and apparatus for application data transport handling
US20150195859A1
Communication apparatus, terminal apparatus, image processing system, and communication method
US20160309539A1
System and method for applications management in a networked vehicular environment
US8989954B1