Update procedure and system for virtual DNS entries for dynamic IP address change of a server housed in a vehicle
Patent Information
- Application Number
- DE102017110135
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2016-05-20
- Filing Date
- 2017-05-10
- Publication Date
- 2025-03-27
- Estimated Expiration
- 2037-05-10
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
TECHNICAL AREA
[0001] Aspects of the disclosure generally relate to updating virtual Domain Name System (DNS) entries for web servers housed in the vehicle. GENERAL STATE OF THE ART
[0002] Remote requests for vehicle services, such as locking and unlocking the doors, can be transmitted via a backend telematics server. The backend telematics server receives the service request and issues a control command to the vehicle's telematics control unit. This command can be sent to the vehicle's telematics control unit via a cellular communication channel. The backend telematics server can be operated by the vehicle manufacturer and may incur ongoing operating and maintenance costs for the manufacturer.
[0003] Once a vehicle has been sold to a customer, adding new features to the vehicle's telematics control unit can be challenging. While new features can be implemented via an over-the-air software update to the telematics control unit, the development and testing costs for adding new features to the backend telematics server can be substantial, as the changes may affect a large number of vehicles.
[0004] Document US 2014 / 0133392 A1 discloses a method for establishing a packet data connection. This involves accessing a Domain Name System (DNS) to obtain an Internet Protocol (IP) address for a vehicle telematics unit.
[0005] Document US 2015 / 0058488 A1 discloses a method, systems and non-transitory computer-readable media for improved Domain Name System (DNS) caching. SUMMARY
[0006] To solve the underlying problem, the invention proposes a system according to claim 1 and methods according to claims 8 and 12. Preferred embodiments of the invention are the subject of the dependent claims. In one or more exemplary embodiments, a system comprises a mobile device with a processor, a memory in which a virtual domain name server and a web control application are stored, and a transmitter-receiver programmed to recognize, using the web control application executed by the processor, that a web request to be sent via the transmitter-receiver contains a hostname of a vehicle that is available for communication with the transmitter-receiver in a wide area communication network.The mobile device accesses the virtual domain name server run by the processor to determine if it stores a network address for the hostname locally in memory. If so, the mobile device establishes a web connection using the web control application to the network address retrieved from the virtual domain name server. If not, it establishes a web connection using the web control application to a network address resolved from a remote domain name server based on the hostname available for communication with the sender-receiver in a wide area communications network.The mobile device receives a changed network address for the vehicle's hostname via an SMS message addressed to a phone number of the mobile device; and it updates a network address mapping of the virtual Domain Name Server locally on the mobile device to show the changed network address as associated with the hostname.
[0007] In one or more exemplary embodiments, a method comprises: identifying a web request hostname as the vehicle hostname by a mobile device; accessing a virtual domain name server run by the mobile device to discover a network address for the vehicle hostname; establishing a web connection by the mobile device to the network address to contact a web server run by the vehicle; followed by displaying an access portal with a list of telematics web applications installed on the vehicle's web server; and accessing one of the telematics web applications via the web connection to request the vehicle to execute a telematics command.Receiving a changed network address for the hostname via an SMS (Short Message Service) message addressed to a telephone number of the mobile device; and updating a network address mapping of the virtual domain name server local to the mobile device to show the changed network address as associated with the hostname.
[0008] In one or more exemplary embodiments, a method comprises: receiving a network address for a vehicle hostname, available for communication with a sender-receiver of the mobile device over a wide area communications network, by a mobile device in a short message (SMS) message addressed to a telephone number of the mobile device; updating a network address mapping of a virtual domain name server run by the mobile device to display the network address as a wide area communications network address corresponding to the hostname; and identifying a web request to be sent via the sender-receiver, containing the hostname, using a web control application run by the mobile device.Accessing the virtual domain name server to determine if the mobile device locally stores a network address for the hostname in a memory of the vehicle; and if so, initiating a web connection to a web server run by the vehicle using the web control application, to the network address obtained from the virtual domain name server, and otherwise initiating the web connection to the vehicle's web server using the web control application to a network address resolved by the hostname via a remote domain name server available for communication with the send-receiver over the wide area communications network.The mobile device displays an access portal containing a list of telematics web applications installed on the vehicle's web server; and accesses one of the vehicle's web server's telematics web applications via the web connection to request the vehicle to execute a telematics command. BRIEF DESCRIPTION OF THE DRAWINGS Fig. Figure 1 represents an exemplary system comprising a vehicle with an integrated web server that can be controlled via a remote service application of a mobile device; Fig. Figure 2A shows an example diagram of the telematics control unit that detects a change in the vehicle's network address; Fig. Figure 2B shows an example diagram of the telematics control unit that notifies the mobile device of the vehicle's updated network address; Fig. Figure 2C shows an example diagram of the mobile device that updates the virtual DNS server with the updated network address of the vehicle; Fig. Figure 2D shows an example diagram of the mobile device sending a web request to the vehicle using the updated network address; Fig. Figure 2E shows an exemplary diagram of the mobile device that sends a wake-up message to the vehicle; Fig. Figure 3A represents an example user interface of the vehicle's web server access portal; Fig. Figure 3B represents an example user interface of an application of the vehicle's web server access portal; Fig. Section 4 presents an exemplary procedure for updating DNS entries with an updated network address of the vehicle; Fig. Section 5 presents an exemplary procedure for sending a web request from a mobile device to the vehicle; Fig. Section 6 presents an exemplary method for displaying an access portal of the vehicle's web server by the mobile device; and Fig. Figure 7 presents an exemplary procedure for adding web applications to the web server. DETAILED DESCRIPTION
[0009] Detailed embodiments of the present invention are disclosed in this document as required; however, it is understood that the disclosed embodiments are merely examples of the invention, which can be implemented in various and alternative forms. The figures are not necessarily to scale; some features may be enlarged or reduced to illustrate details of certain components. Accordingly, specific structural and functional details disclosed in this document are not to be interpreted as limiting, but merely as a representative basis to teach a person skilled in the art the diverse uses of the present invention.
[0010] A telematics scheme can be implemented without using a backend telematics server. Instead, a vehicle's telematics control unit (TCU) can use an integrated web server to control telematics functions based on network traffic directed to the vehicle. The integrated web server can monitor incoming network traffic for mobile device connections. For example, the network connection could be a cellular connection over a mobile communications network. Alternatively, the network connection could be a local connection between the mobile device and the vehicle, such as over a Wi-Fi network.
[0011] A mobile application installed on the user's mobile device can be used to display an access portal hosted on the web server. For example, the mobile application could be a web browser application. In another example, the mobile application could be an application specifically configured to interact with integrated vehicle web servers. In yet another example, the web servers could initiate a network connection with the mobile device. The access portal can allow the user to select telematics functions to be executed or to run applications installed on the web server. For example, the user could use the portal to select a key fob application and send a request to the key fob application to execute a "door unlock" command.To perform a telematics function, a remote service request can be sent from the user's mobile device to the telematics control unit's web server via the network connection.
[0012] Requesting a mobile network operator to assign a static IP (Internet Protocol) address or other address to vehicle modems can be difficult and / or expensive. Consequently, while the vehicle is in motion, the IP or other address assigned to the vehicle's modem by the mobile network can change. Furthermore, it can be difficult for a mobile device user to access the vehicle's web server via the IP address. Instead, it can be more convenient for the user to be able to use a hostname (e.g., www.Dan-ford-F150.ford.com) to access the web server, rather than the dynamic IP address. To ensure that the Domain Name System (DNS) entries match the current vehicle address, the TCU can automatically send a DNS (Domain Name System) update to the domain name's zone file on the internet in response to the modem's IP address change.However, DNS address updates can take up to 48 hours to propagate across the internet. During this period, users will receive an error message when using the vehicle's hostname, which is still associated with an outdated IP address.
[0013] To allow mobile devices to continue accessing the TCU despite the IP address change, the TCU can maintain a list of paired mobile phones used to access the web server and their corresponding mobile phone numbers. When the TCU detects a change in the vehicle's mobile connection's IP address, it can send an SMS message to all mobile devices on the list, notifying them of the vehicle's new IP address. The TCU can also update the DNS records as a standard update to the domain's zone file.
[0014] A virtual DNS server application installed on the user's mobile device can act as a virtual DNS server, monitoring and recording IP address mapping overrides for the vehicle-specific hostname URL (for example, www.Dan-ford-F150.ford.com). In response to the mobile device receiving the SMS message, the virtual DNS server updates the IP address mapping to associate the vehicle's hostname URL with the new IP address. When the user searches for the vehicle's URL, the virtual DNS server automatically redirects the URL to the vehicle's current IP address. To the user, it appears as if the DNS record has been changed on the internet. Consequently, the vehicle may still be accessible to the mobile device even though the actual DNS record change has not yet been completed.Thus, the user can always access the web server located in the vehicle using the URL of the hostname, even though the vehicle's web server is available under a dynamic IP address.
[0015] Fig. Figure 1 represents an exemplary system 100 comprising a vehicle 102 with an integrated web server 140, which can be controlled via a web control application 138 of a mobile device 122. As shown, the vehicle 102 includes a vehicle drive 104 connected to one or more vehicle wheels to propel the vehicle 102. The vehicle 102 also includes a plurality of vehicle ECUs 106 that communicate via one or more buses 108 of the vehicle to control the vehicle drive 104 and other functions of the vehicle 102, such as actuators 110 for locking the vehicle doors or actuators 112 for the brakes. The vehicle 102 also includes a telematics control unit 116, which has a firewall 126 and is configured to communicate with the coupled mobile devices 122 via a wireless transceiver / modem 118.The telematics control unit 116 can also be connected to the vehicle's bus 108 via a filter 124. The system 100 also includes a mobile device 122, which has a web control application 138 and a virtual DNS server 148 and is capable of communicating with the vehicle 102 via a communication network 114, with a DNS server 142 that stores DNS entries 144. The vehicle 102 can be configured to store data 128 from paired devices, including telephone numbers of mobile devices 122, to enable the vehicle 102 to send messages to the mobile devices 122 specifying the current network address in the communication network 114 of the web server 140. Although in . Fig. Figure 1 is an example of a System 100; the examples of components shown are not intended to be restrictive. In reality, System 100 may have more or fewer components, and additional or alternative components and / or implementations may be used.
[0016] The vehicle 102 can be various types of automobiles, soft-roaders (crossover utility vehicles - CUVs), off-road vehicles (sport utility vehicles - SUVs), trucks, motorhomes (RVs), boats, aircraft, or other mobile machinery for transporting people and / or goods. The vehicle propulsion system 104 can include one or more engines configured to provide the motive power to propel the vehicle 102. For example, the vehicle 102 can be powered by an internal combustion engine connected to the drive wheels via a transmission and differential.In another example, vehicle 102 could be a hybrid electric vehicle (HEV) powered by both an internal combustion engine and one or more electric motors, such as a series hybrid electric vehicle (SHEV), a parallel hybrid electric vehicle (PHEV), a parallel / series hybrid electric vehicle (PSHEV), or a vehicle with a CNG (compressed natural gas) engine. Since the type and configuration of vehicle 102 can vary, its capabilities can also vary. Among other things, vehicle 102 may have different capabilities in terms of payload capacity, passenger capacity, and towing capacity.
[0017] The vehicle 102 can comprise a variety of electronic control units (ECUs) 106 configured to execute or store various functions of the vehicle 102 via the vehicle battery and / or drive system. As shown in the figure, the exemplary ECUs 106 of the vehicle are provided as individual ECUs 106-A to 106-F. However, the vehicle's ECUs 106 can share physical hardware, firmware, and / or software, allowing the functions of multiple ECUs 106 to be combined into a single ECU 106 and the functions of several of these ECUs 106 to be distributed among a variety of ECUs 106. The vehicle's ECUs 106 can comprise various components of the vehicle 102 configured to receive updates to their associated software, firmware, or configuration settings.
[0018] In some examples, an engine control unit (ECU) 106-A can be configured to provide monitoring and control of the vehicle's drive system 104. A body control unit (ECU) 106-B can manage various performance control functions, such as exterior lighting, interior lighting, keyless entry, door locking actuators 110 for locking and unlocking the doors, remote start, and checking the status of access points. A brake control unit 106-C can be configured to transmit actuators 112 for the brakes or other vehicle safety systems 102. A climate control unit (ECU) 106-E can be configured to provide control of components of the heating and cooling system (e.g., compressor clutch, blower fan, temperature sensors, etc.).A Global Navigation Satellite System (GNSS) controller ECU 106-F can be configured to provide vehicle location information using a system such as the US GPS (Global Positioning System), the European Galileo system, the Russian GLONASS system, or the Chinese Compass / Beidou system.
[0019] The vehicle's bus 108 can include various available methods for communication between the vehicle's ECU 106. Among others, the vehicle's bus 108 can include one or more of the following networks: a local area network (CAN), an Ethernet network, or a media-oriented system transfer network (MOST).
[0020] The telematics control unit 116 can be configured to provide telematics services to the vehicle 102. These services can include, among others, navigation, route guidance, vehicle diagnostics, local business search, accident notifications, and hands-free calling. To support these and other telematics services, the telematics control unit 116 can use network hardware configured to enable communication between the vehicle's ECU 106 and other devices of the system 100. The telematics control unit 116 can also include computer hardware that supports the execution of the functions of the telematics control unit 116 described in this document. This computer hardware can include, among other things, one or more processors configured to execute instructions loaded from a storage medium into memory.
[0021] The telematics control unit 116 can use the modem services of a wireless transceiver 118 to communicate via the communication network 114. When connected to the communication network 114, the wireless transceiver 118 can be assigned a network address 120. For example, the routable network addresses 120 can include Internet Protocol version 6 (IPv6) or Internet Protocol version 4 (IPv4) addresses. The network addresses 120 assigned to the telematics control units 116 can be unique within the entire communication network 114. For example, the network address 120 can be an IP address assigned to the telematics control unit 116 by a DHCP (Dynamic Host Configuration Protocol) server of the communication network 114 from a pool of available addresses.The IP address can be assigned to the telematics control unit 116 for a specific period, sometimes referred to as a lease, after which the address is reset and returned to the pool. In such examples, the network address 120 of the telematics control unit 116 can change over time. For instance, if the vehicle 102 moves from one area to another (e.g., from one operator to another, from one geographic area to another), the network operator can assign a different network address 120 to the vehicle 102.
[0022] The wireless transceiver 118 can include network hardware configured to enable communication between the vehicle 102 and other devices of the system 100 via the communication network 114. The communication network 114 can include one or more interconnected communication networks such as the Internet, a satellite network, a local area network, a wide area network, a wireless local area network (WLAN), including dedicated short range communication (DSRC), a cellular network, and a telephone network, etc. Furthermore, the wireless transceiver 118 can be configured to communicate with a user's mobile device 122 via one or more of the following: Bluetooth, Wi-Fi, and wired USB.
[0023] To ensure a secure functional separation of the telematics control unit 116 from the transmissions of the vehicle bus 108 of the vehicle ECU 106, the telematics control unit 116 can be configured to send remote commands to the vehicle bus 108 via a filter 124. The filter 124 can implement a command checker to prevent commands from the network control application 138 from being implemented that could put the vehicle 102 into a state unsuitable for carrying out repair or diagnostic operations, for example, filtering out requests to command an electric vehicle 102 to shift out of the park position, release a parking brake, trigger an actuating device for the parking lock, or other operations related to putting the vehicle 102 into a state of motion or potential motion.
[0024] Firewall 126 can implement address filtering to prevent commands from the web control application 138 from being requested by an illegitimate mobile device 122. Accordingly, Firewall 126 can implement a verification function, such as checking the certificate of a mobile device 122, to ensure that the connected mobile devices 122 are authorized to use the functions of the telematics control unit 116 of the vehicle 102.
[0025] The first time a mobile device 122 is connected to the telematics control unit 116, it can undergo a process in which the telematics control unit 116 searches for mobile devices 122, and the user manually confirms the detection of the mobile device 122 to be connected to the telematics control unit 116. This process is called pairing. The telematics control unit 116 can store data 128 of paired devices, indicating device identifiers, or other information relating to mobile devices 122 that were previously paired with the telematics control unit 116. The device data 128 can, for example, refer to the unique device identifiers of mobile devices 122 that were previously paired with the telematics control unit 116 of the vehicle 102 (e.g., telephone numbers, IMEI data, etc.).) have been paired, confidential information shared between the paired mobile device 152 and the telematics control unit 116, such as connection keys and / or personal identification numbers (PINs), and the last used information or information about the device's location, so that the telematics control unit 116 can automatically reconnect to the mobile devices 122 without user intervention, based on the data in the paired device data 128. Accordingly, once the pairing procedure has been carried out, the telematics control unit 116 can use the paired device data 128 to reconnect to the mobile device 122 when the wireless transceiver 118 detects that the mobile device 122 is in close proximity to the telematics control unit 116.
[0026] The mobile devices 122 can be any portable computing devices, such as mobile phones, tablet computers, smartwatches, laptop computers, portable music players, or other devices capable of communicating via the communication network 114. For example, the mobile devices 122 can communicate with the communication network 114 and with the vehicle 102's wireless transceiver 118 using a modem or transceiver 130. The mobile devices 122 can include one or more processors 132 configured to execute instructions from mobile applications loaded from a storage medium 136 of the mobile device 122 into a memory 134 of the mobile device 122. The web control application 138 can be an example of a mobile application installed on the mobile device 122.The web control application 138 can be configured to receive input (e.g., user input to a user interface of the mobile device 122) and sends commands to the vehicle 102 via the telematics control unit 116, as described in more detail below.
[0027] The web server 140 can include various types of computing devices, such as memory on which computer-executable instructions can be stored, with the instructions being executable by one or more processors of the computing device. The web server 140 can be configured to store an access portal that is accessible via the communication network 114 for mobile devices 122. For example, the web server 140 can be configured to provide the access portal via the wireless transceiver 118 to devices connected to the web server 140. Furthermore, the web server 140 can run a server application that can be accessed via a dedicated client application on a connecting mobile device 122.Accordingly, the access portal of the web server 140 can provide the mobile devices 122 with a user interface that enables the mobile devices 122 to request telematics commands.
[0028] The web server 140 can authenticate the mobile device 122 to ensure that the mobile device 122 is authorized to access the provided user interface. If authentication is successful, the web server 140 can send the requested telematics commands (for example, a "door unlock" command) to the vehicle's bus 108 for control and processing. The web server 140 can also send command results to the mobile device 122 in response to the command request.
[0029] The domain name server 142 can be configured to store DNS records 144 that map hostnames 146 to network address 120. The hostnames 146 can refer to a name assigned to vehicle 102 and be used to identify vehicle 102 by name rather than network address 120. For example, the hostnames 146 can be named in a predefined format using information related to the vehicle 102 being accessed. For example, the hostnames 146 can be defined as subdomains of a vehicle-specific top-level domain or URLs that point to a location on a top-level domain specific to web servers 140 for vehicles 102. For example, a hostname 146 for vehicle 102 might be www.Dan-ford-F150.com.For example, the user can register vehicle 102 using a domain registration service with a user-selected hostname 146. In some examples, as part of the procedure for pairing mobile device 122 with vehicle 102, the mobile device 122 can receive the hostname 146 from vehicle 102.
[0030] The Domain Name Server 142 can comprise various types of computing equipment, for example, a computer workstation, a server, a desktop computer, a virtual server instance running from a mainframe server, or another computer system and / or device. Each of these devices can generally include memory 134 on which computer-executable instructions can be stored, the instructions being executable by one or more processors 132 (of which only one is shown for simplicity). Such instructions and other data can be stored using a variety of computer-readable media. A computer-readable storage medium (also called processor-readable medium or memory 136) comprises a non-volatile (e.g., physical) medium involved in providing data (e.g., instructions) that can be executed by a computer (e.g., a processor).can be read by the processor 132 of the domain name server 142 or the mobile device 122. In general, the processors 132 receive instructions, e.g., via the computer-readable storage medium 136 from the memory 134, etc., and execute these instructions, thereby performing one or more procedures, including one or more of the procedures described in this document. Computer-executable instructions can be assembled or interpreted by computer programs created using a variety of programming languages and / or technologies, including, but not limited to, either alone or in combination, Java, C, C++, C#, Objective-C, Fortran, Pascal, Visual Basic, JavaScript, Perl, Python, PL / SQL, etc.
[0031] Mobile device 122 can access Domain Name Server 142 to determine the network address 120 of vehicle 102 based on the hostname 146 of vehicle 102. For example, web control application 138 can send the hostname 146 of web server 140 of vehicle 102 to Domain Name Server 142. Domain Name Server 142 can access DNS records 144 to look up hostnames 146 and can return the network address 120 of the vehicle, which is associated with hostname 146, to mobile device 122.
[0032] To ensure that DNS entry 144 of Domain Name Server 142 corresponds to the current network address 120 of vehicle 102, the telematics control unit 116 can automatically send a notification of the DNS change to Domain Name Server 142 via communication network 114 in response to the change in network address 120 of modem 118. This notification can indicate the new network address 120 and hostname 146 of vehicle 102. Upon receiving this notification, Domain Name Server 142 can update the network address 120 associated with hostname 146 of vehicle 102. However, it can take hours or days for DNS address updates to propagate across the internet. During this propagation period, a mobile device 122 accessing the domain name server 142 may receive an incorrect network address 120 of the vehicle 102.
[0033] Application 148 of the virtual DNS server can be installed on the mobile device 122 to function as a virtual DNS server. Application 148 of the virtual DNS server can be configured to store overrides of the mapping of the vehicle's hostname 146 to the network address 120 for vehicle-specific hostnames 146. For example, application 148 of the virtual DNS server can update the hosts file or other mechanism of the mobile device 122 that is used to map hostnames to IP addresses near the mobile device 122.
[0034] To ensure that the entries in application 148 of the virtual DNS server correspond to the current network address 120 of the vehicle 102, the telematics control unit 116 can automatically send a notification of the DNS entry change to the mobile device 122 via the communication network 114 in response to the change in the network address 120 of the modem 118. This message can be sent via SMS, thus eliminating the need for an internet connection, and can include an encoding of the new network address 120 for the vehicle 102. Application 148 of the virtual DNS server can be configured such that, upon receiving the SMS message from the mobile device 122, it updates the mapping of network address 120 to assign the vehicle's hostname 146 to the new network address 120.
[0035] To conserve battery power or to meet charging requirements when the ignition is off, the web server 140 can cease operation under certain conditions, for example, when the vehicle 102 is switched off. In some cases, the user of the mobile device 122 may wish to send a request for a web command when the web server 140 is in a disabled state. To reactivate the web server 140, the mobile device 122 can send a wake-up message to the telematics control unit 116 of the vehicle 102. For example, the mobile device 122 can attempt to establish a network connection to the web server 140 of the vehicle 102, and if the web server 140 does not respond within a predefined timeout period, the mobile device 122 can send the wake-up message to the vehicle 102. For example, the wake-up message could be an SMS message sent over a cellular connection (i.e., via a mobile network).h. a different address than the network address 120) is sent to a telephone number or other identifier of the wireless transceiver 118. In response to receiving the wake-up message, the telematics control unit 116 can wake up the integrated web server 140. The telematics control unit 116 can also send a confirmation SMS in response to the wake-up message, for example, when the web server 140 is reactivated and available for use. The confirmation SMS can include the current network address of the web server 140. Upon receiving the confirmation SMS, the mobile device 122 can re-initiate access to the web server 140.
[0036] By using the Webserver 140, the operating and maintenance costs of managing a backend telematics server can be avoided. For example, the Webserver 140 of the telematics control unit 116 can be updated via a downloaded update that adds new features without affecting the functions of other vehicles 102. Furthermore, third parties can use the services of the integrated Webserver 140 to install user-specific applications on the telematics control unit 116 to provide diagnostic data to the customer. For example, the user can search for applications and install them on the Webserver 140 in a similar way to installing applications on the mobile device 122.
[0037] Fig. Figure 2A shows an example diagram 200-A of the telematics control unit 116, which detects a change 202 with respect to the network address 120 of the vehicle 102. For example, the telematics control unit 116 can query the current status of the network interface of the wireless transceiver / modem 118 to determine whether the network address 120 has changed. The query can be performed regularly (e.g., every minute, every second, etc.) or in response to various events (e.g., after a predefined timeout has expired, after a predefined distance has been traveled, etc.). In another example, the telematics control unit 116 can establish a notification callback with the transceiver / modem 118 and receive a callback notification in response to the change in network address 120.
[0038] Fig. Diagram 2B shows an example diagram 200-B of the telematics control unit 116, which notifies the mobile device 122 of the updated network address 120 of the vehicle 102. For example, in response to the determination of the updated network address 120, as shown in diagram 200-A, the telematics control unit 116 sends a notification 204 of network address 120 to the mobile devices 122, as indicated by the data of the paired devices 128. For example, the data of the paired devices 128 may include the telephone numbers of mobile devices 122 that are authorized to access the features of the telematics control unit 116, and the telematics control unit 116 may send notification messages 206 via SMS to the telephone numbers of each of the authorized mobile devices 122. The notification messages 206 can include the network address 120 of the transmitter / receiver / modem 118 of the vehicle 102.The notification messages 206 can include an identifier of the vehicle 102 (e.g., the hostname 146 of the vehicle 102, the chassis number, or other identifier of the vehicle 102, etc.) to enable the virtual DNS server 148 of the mobile device 122 to understand which of the vehicles 102 with the current network address 120 is meant.
[0039] Fig. Diagram 200-C shows an example of mobile device 122 updating the virtual DNS server 148 with the updated network address 120 of vehicle 102. In response to receiving the notification message 206, the receiving mobile device 122 can update the hosts file or some other mechanism of mobile device 122 208, as shown in Diagram 200-B, which is used to map hostnames 146 to network addresses 120 located near mobile device 122.
[0040] Fig. Diagram 2D shows an example diagram 200-D of the mobile device 122, which sends a web request 210 to the vehicle 102 using the updated network address 120. For example, the web control application 138, installed on the mobile device 122, can send the web request 210 to the web server 140 of the vehicle 102 to request, for instance, that a telematics function be executed or that an application stored on the web server 140 be run. The web server 140 can also provide the mobile device 122 with a web response 212, which may indicate the result of the web request 212. Thus, the mobile device 122 can communicate with the web server 140 of the vehicle 102 using the updated network address 120, despite the changes experienced by the vehicle 102 with respect to the network address 120.
[0041] Fig. Diagram 2E shows an example diagram 200-E of the mobile device 122, which sends a wake-up message 214 to the vehicle 102. As mentioned above, to conserve battery power or to meet charging requirements when the ignition is off, the vehicle 102 can suspend the operation of the web server 140 under certain conditions, for example, when the vehicle 102 is switched off. In some cases, the user may wish to send a web request 210 to be processed by the vehicle 102 when the web server 140 is in a disabled state. To reactivate the web server 140, a wake-up message 214 can be sent to the telematics control unit of the vehicle 102. For example, the mobile device 122 may attempt to establish a network connection to the vehicle 102's integrated web server 140, and if the web server 140 does not respond within a predefined timeout period (e.g., 10 minutes), the mobile device 122 may attempt to establish a network connection to the vehicle 102's integrated web server 140, and if the web server 140 does not respond within a predefined timeout period (e.g., 10 minutes), the mobile device 122 may attempt to reactivate the web server 140.If the mobile device 122 reacts (e.g., after one minute, three minutes, etc.), it can send the wake-up message 214 to the vehicle 102. The wake-up message 214 can be an SMS message 216 or any other message sent to the modem 118 in the vehicle via a connection other than the inactive connection used by the web server 140. In response to receiving the wake-up message 214, the telematics control unit 116 can wake up the integrated web server 140, which can then be assigned a network address 120.
[0042] The telematics control unit 116 can also send a response to the wake-up message 214, for example, when the web server 140 is reactivated and available for use. This response could be, for example, the notification message 206 discussed above in relation to diagram 200-B. Upon receiving this response, the mobile device 122 can be informed that the web server 140 is reactivated and available for use. Accordingly, in response to receiving the response, the mobile device 122 can send the web request 210 to the vehicle 102.
[0043] Fig. 3A represents an example user interface 300-A of the access portal of the web server 140 of the vehicle 102. The user interface 300-A can be displayed on a screen or other display 302 of the mobile device 122 and may include an application listing 304 of one or more applications that are installed and available on the web server 140. The application listing 304 can be retrieved from the web server 140 by the web control application 138 as soon as the mobile device 122 is authorized to use the web server 140. For example, the application listing 304 may include an application 306-A for key fob controls, which provides telematics functions for locking and unlocking; an application 306-B for battery control, which provides telematics functions for battery charge status; and an application 306-C for vehicle diagnostics, which provides telematics functions for diagnostics for the vehicle 102.It should be noted that these are only examples and more, fewer, and other applications 306 may be available. The user interface 300-A may also include a title 308 (e.g., a title for content provided by the web server 140), indicating that the application listing 304 consists of web applications of the vehicle that can be used by the user.
[0044] A user of the user interface 300-A can tap or otherwise select an application collection 304 to access the corresponding web applications. For example, the elements of the application collection 304 can be implemented as HTML (Hypertext Markup Language) controls (e.g., buttons, a list, etc.) which, when selected, send information to the web server 140 indicating which function has been requested. In another example, the elements of the application collection 304 can include Java controls, UIKit controls, or another form of user interface that can be hosted on the web server 140 and provided to the mobile device 122, which is to be rendered to the display 302 by the web control application 138 of a mobile device 122 for access by the user.
[0045] Fig. Figure 3B represents an example user interface 300-B of an application of the vehicle's web server access portal. For example, user interface 300-B can be displayed on the screen 302 of the mobile device 122, responding to the selection of one of the applications displayed in the application listing 304 of the access portal. As shown in the illustration, user interface 300-B displays telematics functions of application 306-A for key fob controls, for example, in response to a user selection of application 306-A for key fob controls from application listing 304.
[0046] The exemplary application to 306-A for key fob controllers comprises a group of controllers 310 that can be used to invoke key fob-like telematics functions of the vehicle 102. These controllers may include a locking controller 310-A, which, when selected, makes a request to lock the doors of the vehicle 102; an unlocking controller 310-B, which, when selected, makes a request to unlock the doors of the vehicle 102; an alarm controller 310-C, which, when selected, makes a request to invoke the alarm of the vehicle 102; a trunk release controller 310-D, which, when selected, makes a request to unlock the trunk of the vehicle 102; and a start controller 310-E, which, when selected, makes a request to start the vehicle 102.In a similar manner to that described above, the controls 310 can be HTML controls provided in web content by the web server 140 and, when selected, cause the web control application 138 of a mobile device 122 to send information to the web server 140 indicating which function was requested. Alternatively or additionally, the controls 310 can include Java controls, UIKit controls, or another form of user interface that can be rendered by the web control application 138 of a mobile device 122 for user access on the display 302. The user's web requests 210 to perform the telematics functions can be received by the web server 140 and processed as described above. Fig. 2A-2E are described and processed.
[0047] Fig. Figure 4 presents an example procedure 400 for updating DNS records with an updated network address 120 of vehicle 102. For example, procedure 400 can be executed from vehicle 102. Fig. 1 including the telematics control unit 116 and the modem 118.
[0048] In process 402, vehicle 102 detects a change in its network address 120. An example of such a detection is shown above. Fig. Figure 2A illustrates this. At operation 404, vehicle 102 accesses the data 128 on paired devices to detect mobile devices 122 that are to be updated with the network address 120. At operation 406, vehicle 102 sends the updated network address 120 to the detected mobile devices 122. An example is shown above in relation to Fig. 2B is shown.
[0049] In case of a 408 error, vehicle 102 sends the updated network address 120 to domain name server 142 to update the DNS records 144. For example, the telematics control unit 116 can automatically send a notification about the DNS record change to domain name server 142 via the communication network 114. The DNS record change notification can indicate the new network address 120 of vehicle 102 and the hostname 146 of vehicle 102. In response to receiving this notification, domain name server 142 can update the network address 120 associated with the hostname 146 of vehicle 102. After operation 408, procedure 400 ends.
[0050] Fig. Figure 5 presents an exemplary procedure 500 for sending a web request 210 from a mobile device 122 to the vehicle 102. For example, the procedure 50 can be executed from the mobile device 122 Fig. 1 including the web control application 138 and the virtual DNS server 148.
[0051] At 502, vehicle 102 recognizes a hostname 146 belonging to vehicle 102 in a request. For example, the user of mobile device 122 can use the web control application 138 to send a notification to vehicle 102, addressing the notification to vehicle 102 using hostname 146. In response to the request, the virtual DNS server 148 can analyze the request and determine that hostname 146 is included. For example, the virtual DNS server 148 can determine that the address is specified by a hostname 146 and not by a network address 120.
[0052] In operation 504, vehicle 102 determines whether hostname 146 has an entry in virtual DNS server 148. For example, virtual DNS server 148 might compare hostname 146 against a hosts file or other store of local DNS information that maps hostname 146 to corresponding network addresses 120. Virtual DNS server 148 might also perform further checks on hostname 146, such as ensuring that the hostname follows a specific format or points to a domain for vehicle 102's web browser 140, before accessing the local DNS information store. If hostname 146 is valid for vehicle 102 and matches an entry in the local DNS information store, control proceeds to operation 506. Otherwise, control proceeds to operation 508.
[0053] In operation 506, vehicle 102 replaces hostname 146 with the network address 120 of vehicle 102. For example, virtual DNS server 148 can replace the hostname 146 of the request with the corresponding network addresses 120 obtained by mapping the local DNS information. After operation 506, control proceeds to operation 510.
[0054] At operation 508, vehicle 102 accesses domain name server 142 to resolve hostname 146 to a network address 120. For example, virtual DNS server 148 can replace the hostname 146 in the request with the corresponding network addresses 120 obtained from domain name server 142. After operation 508, the control transitions to operation 510.
[0055] In operation 510, vehicle 102 executes the request from operation 502 using the resolved network address 120. Accordingly, vehicle 102 can remain available to mobile device 122 by using the virtual DNS server 148, even though the current DNS records 144 of the domain name server 142 have not been updated for vehicle 102 with a web server 140 located at a dynamic network address 120.
[0056] Fig. Section 6 presents an exemplary procedure 600 for displaying an access portal of the web server 140 of the vehicle 102 by the mobile device 122. For example, the procedure 600 can be carried out by the web control application 138 of the mobile device 122.
[0057] At operation 602, mobile device 122 receives the list of web applications. For example, mobile device 122 can request the available applications via the web session with web server 140, which is set up at operation 510. At operation 604, mobile device 122 displays the access portal, including the list of web applications. An example access portal, displayed by web control application 138, which represents application listing 304, is shown above in relation to Fig. 3A is shown.
[0058] In process 606, the mobile device 122 receives a command input via the user interface. For example, a user can select one of the applications listed in application listing 304 of the access portal and can further select a telematics command from the selected application. An example user interface of an application is shown below. Fig. 3B is shown.
[0059] For operations marked 608, the mobile device 122 sends web request 210 to the vehicle 102. For example, web request 210 could be a command to lock or unlock the doors from a key fob application. In another example, web request 210 could be a request for the battery charge status from a battery status application. The vehicle 102 can then receive and process web request 210 sent by the web control application 138. For operation 610, the mobile device 122 receives a web response 212 from the vehicle 102. For example, the command response 218 could indicate whether the doors of the vehicle 102 were successfully locked or unlocked. In another example, the web response 212 could indicate the current battery charge status. For operation 612, the mobile device 122 updates the user interface.In some examples, the web control application 138 can update the user interface to indicate the current locking status of the vehicle 102 or its charging status. Procedure 600 ends after operation 612.
[0060] Fig. Figure 7 presents an exemplary procedure 700 for adding web applications to the web server 140. For example, the procedure 700 can be carried out by the web control application 138 of the mobile device 122 in communication with the web server 140 of the vehicle 102.
[0061] In operation 702, web server 140 detects new or updated web applications. For example, web server 140 can periodically query an application store for updates to currently installed web applications. For instance, web server 140 can provide the application store server with identifiers of currently installed web applications and their current versions, and receive information about which web applications have available updates. In another example, the user can detect one or more new applications to install on web server 140. One possibility is that the user can browse the application store server using mobile device 122 and select one or more web applications to install on web server 140.For example, requests to install the web applications can be sent as web requests 210 to the web server 140 when the mobile device 122 is connected to the web server 140 in a web session.
[0062] In process 704, web server 140 installs new or updated web applications on web server 140. For example, web server 140 can download the new or updated web applications from the application store and install them on web server 140. In process 706, web server 140 detects new or updated web applications. These new or updated web applications can then become available in application listing 304 of the access portal. After process 706, process 700 ends.
[0063] In general, computer systems and / or devices such as the ECU 106, the Telematics Control Unit 116, the Mobile Device 122, the Filter 124, and the Domain Name Server 142 can run any number of computer operating systems, including but not limited to versions and / or variants of the Microsoft Windows® operating system, the Unix operating system (e.g., the Solaris® operating system distributed by Oracle Corporation in Redwood Shores, California), the AIX-UNIX operating system distributed by International Business Machines in Armonk, New York, the Linux operating system, the Mac OS X and iOS operating systems distributed by Apple Inc. in Cupertino, California, the BlackBerry operating system distributed by Research In Motion in Waterloo, Canada, and the Android operating system developed by the Open Handset Alliance.
[0064] Computer devices such as the controllers 106, the telematics control unit 116, the mobile device 122, the filter 124, and the address resolution server 140 generally comprise computer-executable instructions that can be carried out by one or more processors of the computer devices. Computer-executable instructions, such as those of the web control application 138, can be assembled or interpreted by computer programs created using a variety of programming languages and / or technologies, including, but not limited to, either alone or in combination, Java™, C, C++, Visual Basic, JavaScript, Perl, etc. Generally, a processor or microprocessor receives instructions, for example, from memory, a computer-readable medium, etc., and executes these instructions, thereby performing one or more procedures, including one or more of the procedures described in this document.Such instructions and other data can be stored and transmitted using a variety of computer-readable media.
[0065] A computer-readable storage medium (also called a processor-readable medium) comprises a non-volatile (e.g., physical) medium involved in providing data (e.g., instructions) that can be read by a computer (e.g., by a processor in a computer device). Such a medium can take a variety of forms, including non-volatile and volatile media. Non-volatile media include, for example, image and magnetic disks and other permanent storage media. Volatile media can include, for example, dynamic random access memory (DRAM), which typically forms main memory. Such instructions can be transmitted via one or more transmission media, including coaxial cable, copper wire, and fiber optics, including wires that comprise a system bus connected to a computer's processor.Common forms of computer-readable media include, for example, a floppy disk, a hard disk, a magnetic tape, other magnetic medium, a CD-ROM, a DVD, other optical medium, punched cards, punched tape, other physical medium with hole patterns, a RAM, a PROM, an EPROM, a FLASH EEPROM, other memory chip or cassette, or other medium that can be read by a computer.
[0066] Databases, data repositories, or other data stores described in this document, such as those described by Domain Name Server 142, may include various types of mechanisms for storing, accessing, and retrieving different kinds of data, including a hierarchical database, a group of files in a file system, an application database in a proprietary format, a relational database management system (RDBMS), and so on. Each of these data stores is generally contained within a computer device that uses a computer operating system such as one of those listed above, and it is accessed in one or more possible ways over a network. A file system can be accessed by a computer operating system and can contain data stored in various formats.An RDBMS generally uses the structured query language SQL (Structured Query Language) in addition to a language for creating, storing, editing and executing stored procedures such as PL / SQL listed above.
[0067] In some examples, system elements can be implemented as computer-readable instructions (e.g., software) on one or more computer devices (e.g., servers, PCs, etc.) that are stored on a computer-readable storage medium associated with these devices (e.g., disks, memory, etc.). A computer program product can comprise such instructions stored on a computer-readable medium for performing the functions described in this document. Some or all of the operations performed by the controllers 106, the telematics control unit 11, the mobile device 122, the filter 124, and the address resolution server 140, as disclosed in this document, can be such computer program products (e.g., the web control application 138).In some examples, these computer program products may be provided as software which, when executed by one or more processors, performs the operations described in this document. Alternatively, the computer program products may be provided as hardware or firmware, or combinations of software, hardware, and / or firmware.
Claims
[1] System comprising: a mobile device having a processor, a memory storing a virtual domain name server and a web control application, and a transceiver, programmed to it detects, using the web control application executed by the processor, that a web request to be sent via the transceiver contains a host name of a vehicle that is available for communication with the transceiver in a wide area communications network; it accesses the virtual domain name server executed by the processor to determine whether the mobile device locally stores a network address for the host name in memory; if so, it establishes a web connection using the web control application to the network address retrieved from the virtual domain name server, and if not, it establishes the web connection using the web control application to a network address resolved via a remote domain name server from the host name available for communication with the transceiver in a wide area communications network; it receives a changed network address for the vehicle's host name via an SMS message addressed to a telephone number of the mobile device; and it updates a network address mapping of the virtual domain name server locally on the mobile device to show the changed network address as associated with the host name. [2] The system of claim 1, wherein the mobile device is further programmed to: it displays an access portal that includes a list of telematics web applications installed on a web server of the vehicle; and it accesses one of the telematics web applications via the web connection to send a request to the vehicle to execute a telematics command. [3] The system of claim 2, wherein one of the telematics web applications is a key fob application and the telematics command is a door locking or unlocking command. [4] The system of claim 2, wherein one of the telematics web applications is an application for an electric vehicle and the telematics command is to request a current battery charge status of the vehicle. [5] The system of claim 1, wherein the mobile device is further programmed to determine that the hostname is the hostname of a vehicle by comparing the hostname to a list of vehicle hostnames programmed on the vehicle. [6] The system of claim 1, wherein the mobile device is further programmed to identify that the host name is the host name of a vehicle by determining that the host name points to a vehicle-specific top-level domain programmed on the mobile device. [7] The system of claim 1, wherein the network address is one of an Internet Protocol version 6 (IPv6) address or an Internet Protocol version 4 (IPv4) address. [8] Method comprising: identifying, by a mobile device, a hostname of a web request as a vehicle hostname; Accessing a virtual domain name server run by the mobile device to detect a network address for the vehicle host name, Establishing a web connection by the mobile device to the network address to contact a web server executed by the vehicle; Display of an access portal with a list of telematics web applications installed on the vehicle's web server; Access one of the telematics web applications via the web connection to request the vehicle to execute a telematics command, Receiving a changed network address for the host name via a Short Message Service (SMS) message addressed to a telephone number of the mobile device; and Updating a network address mapping of the virtual domain name server local to the mobile device to show the changed network address as associated with the host name. [9] The method of claim 8, wherein the host name of the vehicle comprises a vehicle make, a vehicle model, a vehicle year, and a vehicle name. [10] The method of claim 8, wherein the network address is one of an Internet Protocol version 6 (IPv6) address or an Internet Protocol version 4 (IPv4) address. [11] The method of claim 8, further comprising detecting that the host name is the host name of the vehicle by comparing the host name to a list of host names of the vehicle programmed on the mobile device. [12] Method comprising: Receiving, by a mobile device, a network address for a host name of a vehicle available for communication with a transceiver of the mobile device over a wide area communications network in a Short Message Service (SMS) message addressed to a telephone number of the mobile device; updating a network address mapping of a virtual domain name server executed by the mobile device to indicate the network address as a wide area communications network address corresponding to the host name; Identifying a web request to be sent via the transceiver that includes the host name using a web control application executed by the mobile device; Accessing the virtual domain name server to determine whether the mobile device locally stores a network address for the host name in a memory of the vehicle; and if so, initiating a web connection to a web server running by the vehicle using the web control application to the network address retrieved from the virtual domain name server, and otherwise initiating the web connection to the vehicle's web server using the web control application to a network address resolved from the host name via a remote domain name server available for communication with the transceiver over the wide area communication network; Displaying, by the mobile device, an access portal containing a listing of telematics web applications installed on the vehicle's web server; and Accessing one of the vehicle's web server's telematics web applications via the web connection to request the vehicle to execute a telematics command.
Citation Information
Patent Citations
Mobile terminating packet connection
US20140133392A1
Enhanced caching of domain name system (DNS) and reverse DNS queries for traffic management for signaling optimization in a mobile network
US20150058488A1