WO2008021837A2 - Data transfer system and method - Google Patents

Data transfer system and method Download PDF

Info

Publication number
WO2008021837A2
WO2008021837A2 PCT/US2007/075395 US2007075395W WO2008021837A2 WO 2008021837 A2 WO2008021837 A2 WO 2008021837A2 US 2007075395 W US2007075395 W US 2007075395W WO 2008021837 A2 WO2008021837 A2 WO 2008021837A2
Authority
WO
WIPO (PCT)
Prior art keywords
network
data
message
destination server
file
Prior art date
Application number
PCT/US2007/075395
Other languages
French (fr)
Other versions
WO2008021837A3 (en
Inventor
David Stanley
Original Assignee
Drivecam, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Drivecam, Inc. filed Critical Drivecam, Inc.
Publication of WO2008021837A2 publication Critical patent/WO2008021837A2/en
Publication of WO2008021837A3 publication Critical patent/WO2008021837A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Definitions

  • the present invention relates to data or file transfer from a local device to a remote server or other device over a network.
  • Private company networks typically have firewalls or other protection between the private network and the Internet, to protect the private or company network against outsiders accessing its own private data resources. Accordingly, files transmitted through a company network from a source such as a vehicle mounted event detector, must be temporarily stored in memory somewhere on the company network before being transmitted to an outside evaluation server. The required intermediate write permission in these conventional systems are significantly problematic, especially when the company network policies forbid such write permissions.
  • a method for transmitting data files through a private network is provided.
  • a configurable segment of data is first read from a file to be transmitted from a user device to a destination server through the private network.
  • a network message addressed to the destination server is then created, the message comprising a header and a data payload, and the data segment from the file to be transmitted is then placed in the data payload of the network message.
  • the network message is then sent over the private network and a public network to the destination server. The process is repeated until the entire data file has been sent in a series of network messages to the destination server.
  • the data segments are extracted from the network messages and used to reconstruct the file at the destination server. If the file is small enough, it may be transmitted with only one message.
  • the contents of a data file can be sent through a private network to a destination server without requiring temporary storage at an intermediate, private network server.
  • the network messages may be sent to the destination server through the private network and a public network such as the Internet.
  • the data segments may be attached to the network messages using Direct Internet Message Encapsulation (DIME) or similar specifications for sending and receiving Internet messages with additional file attachments.
  • DIME Direct Internet Message Encapsulation
  • Internet messages are normally in Simple Object Access Protocol (SOAP) which specifies how to encode a Hypertext Transfer Protocol (HTTP) header and Extensible Markup Language (XML) file. Such messages are much more likely to be transmitted through security firewall servers of private networks without requiring "write" permissions on the web service directory.
  • SOAP Simple Object Access Protocol
  • HTML Hypertext Transfer Protocol
  • XML Extensible Markup Language
  • DIME allows the contents of a data file to be attached to network messages which can be transported through an Internet connection without being blocked by a firewall.
  • this method may be used for sending data collected by various event monitors in a security or monitoring system or the like. For example, fleet drivers may be monitored to collect data regarding risky driving behavior, accidents and other incidents. Various event capture devices in the vehicle will collect driving event data which must then be transmitted to an evaluation server for review and evaluation of the data. This is normally done by sending the event files from the vehicles to a local fleet server in a private network, and then across the Internet to the fleet monitoring system server.
  • the method of this invention allows data files to be transmitted through the local fleet network without requiring write permissions on the network web service directory. This method will also be useful in many other applications where data is collected and subsequently must be transmitted through a private network to a remote server over the Internet.
  • a data transfer system for transferring data files from a local device to a destination server through a private network.
  • the local device has a processor configured to read successive configurable segments of data from a selected file until the entire file has been read.
  • the processor has a message generator module configured to create a series of network messages addressed to the destination server, each network message having a header and a data payload, and to place each segment of data in the data payload of a respective network message.
  • the processor further comprises a transmission module configured to send the series of network messages directly through the private network and a public network to the destination server.
  • the destination server has a processor configured to receive the network messages and to reconstruct the selected file from the data segments extracted from the series of network messages.
  • the network messages are DIME messages and are configured for direct transmission through the private network without requiring temporary storage at a private network server.
  • Figure 1 is a block diagram illustrating an example of transmission of data through a private network and public network to a destination server according to an exemplary embodiment of the invention
  • Figure 2 is a block diagram illustrating a file transmitting system of the user device of Figure 1 ;
  • Figure 3 is a block diagram illustrating a file receiving system of the destination server of Figure 1;
  • Figure 4 is a flow diagram illustrating a data transfer method according to the exemplary embodiment
  • Figure 5 is a block diagram illustrating an exemplary wireless communication device that may be used in connection with the various embodiments described herein;
  • FIG. 6 is a block diagram illustrating an exemplary computer system which may be used in connection with the various embodiments described herein. -A-
  • Certain embodiments as disclosed herein provide for transmission of various types of data files through a private network without requiring "Write" permissions on the private network server.
  • one method as disclosed herein allows for transmission of data files of driving event information collected by fleet vehicles through a private fleet network and a public network such as the Internet to a driving event evaluation server.
  • Figure 1 illustrates the path of data transfer from a user device 10 to a remote or destination server 12 according to an exemplary embodiment of the invention.
  • the user device 10 may comprise any type of computing device and associated data storage device, where data is collected in data files for subsequent transmission to a destination server 12 where the data is evaluated or used.
  • One example of this is in a driving fleet, where it is desirable to collect driving event data for each fleet driver and vehicle for subsequent evaluation of potentially risky driving behavior or conditions.
  • the method and system of this invention may be used in any situation where data files are to be transmitted to a remote server on a public network through a private network.
  • the user device 10 communicates with an access point 14 of the private network 15 via link 11.
  • the access point may be a wireless access point, a wired or wireless docking station, or the like, and the link 11 may be a wire link or a wireless link.
  • Private network 15 is associated with a local or private server 16 and is linked to a public network 18 such as the Internet through a firewall 20.
  • User device 10 includes a data transmission system as illustrated in Figure 2 for converting data from stored data files into a format suitable for transmission through a private network without requiring an intermediate write permission at a private network server.
  • the data transmission system comprises a file reader module 50 connected to data storage module 52 of the user device, a network message or Direct Internet Message Encapsulation (DIME) generator module 54, and a communication module 55 for transmitting messages created by module 54 through access point 14 to the private network 15.
  • Figure 3 illustrates the modules at the destination server for receiving and processing the messages delivered to the destination server from the user device through private and public networks 15, 18.
  • the message receiving modules comprise a communication module 56 for receiving messages from the public network 18, and a message processor module 58 for processing the messages, as described in more detail below in connection with Figure 4.
  • Message processor module 58 is connected to a data processor or storage module 60 of the destination server for processing or storing data files created by module 58.
  • FIG. 4 is a flow diagram illustrating the steps of a method according to an exemplary embodiment of the invention for transmitting a data file through the private and public networks 15, 18 of Figure 1 to the destination server 12 without requiring intermediate write permissions at the private network. The same basic method may be used for various transmission paths which involve one or more private networks.
  • a data file 22 is first selected by the user device 10 for transmission to the remote or destination server 12 (step 24).
  • the user device includes programmed instructions for configuring the data in a file 22 selected from data storage unit 52 for transmission to the destination server.
  • a configurable segment Sl of data is read from the file by the file reader module 50.
  • a network message Mi addressed to the destination server is then created (26) by network message generator module 54.
  • the network message may be any type of Internet message similar to an electronic mail message which can be transmitted across any number of local or private servers 16 (also known as Onsite Client Servers or OCS).
  • Network message Mi may be created with a communications specification which defines a format for attaching files to messages sent between application programs over the Internet, such as Direct Internet Message Encapsulation (DIME) or the like.
  • DIME messages are created by a DIME generator and consumed by a DIME parser.
  • Message Mi has a header H and a data payload P, and the payload is populated with the data segment Sl previously read from the data file (step 28).
  • the message Mi is then sent by communication module 55 through the private network 15 and public network 18 to the communication module 56 at destination server 12 (step 30), as indicated in Figure 1.
  • Communication modules 55 and 56 may be wireless or wire communication modules. If more data remains in the file 22 (step 32), the next configurable segment S2 of data is read by file reader module 50 at step 25, a second network message M 2 is created by network message or DIME generator module 54 (step 26), and the data payload of message M 2 is populated with the data segment (step 28), before sending message M 2 through networks 15 and 18 to the destination server 12 (step 30). These steps are repeated until the entire file has been read and messages M 1 , M 2 , M n have been sent to the destination or remote server, where n is the total number of configurable segments of data in the file.
  • steps 24 to 32 are shown as a sequence in Figure 4, it will be understood that the creation of a new network message may commence as soon as a previous network message has been created (i.e. at the completion of step 28), in parallel with transmission of the previously created message at step 30.
  • the messages M 1 , M 2 , M n are received at the destination server (step 34), and the data segment is extracted from each message by the processor module 58 (step 35).
  • the original data file is then reconstructed from the extracted data segments (step 36), and the reconstructed data file is stored or further processed as desired, according to programmed instructions at the destination server.
  • This method allows file transfer to be executed across any number of private network OCSs or local servers without reconstructing or writing the file until the destination is reached. This will considerably simplify file transfer since there will be no need to have any intermediate write permissions at the OCSs. Successive segments of each data file are simply populated in the data payload of a series of network messages such as DIME messages which utilize the World Wide Web (www) Hypertext Transfer Protocol (HTTP) in the header. Since HTTP requests are usually allowed through firewalls, the network messages can be transmitted through any number of private networks without needing intermediate write permissions at the private network or OC servers.
  • DIME messages which utilize the World Wide Web (www) Hypertext Transfer Protocol (HTTP) in the header. Since HTTP requests are usually allowed through firewalls, the network messages can be transmitted through any number of private networks without needing intermediate write permissions at the private network or OC servers.
  • the file data is not distinguished from the rest of the data in the network message transmitted through the private network, and does not have to be reconstructed and written to any intermediate server of a private network, as is the normal rule for conventional data files.
  • the remote server is configured to receive the series of messages associated with each file, and extract the sequence of data segments from the payloads of the messages before reconstructing/writing the file on the remote server.
  • the method and system of this invention may be used is for evaluating driving data for an organization having a fleet of motor vehicles, although it is applicable to many different data collection scenarios where the collected data has to be transmitted to a remote server through one or more private networks.
  • each vehicle in the fleet will have an on-board computer unit or user device linked to one or more driving event data collection devices, such as cameras and various sensors. Data from these devices is collected in a data storage area of the computer unit for subsequent transmission to the remote evaluation server for further analysis.
  • the method and system of this invention allows such data to be transmitted in separate segments as the payload of a series of network messages, avoiding the need for write permissions on a private network such as the network of the organization having the fleet vehicles.
  • the user device 10 of Figure 1 will include any suitable computing device and data storage, as well as the communication device 55 for transmitting and receiving data over link 11 to a network 15.
  • link 11 may be a wired or wireless link
  • the communication device may provide for wired, wireless or both wired and wireless communications.
  • Figure 5 illustrates an exemplary wireless communication device which may be used to transmit network messages M 1 , M 2 , M n from user device 10.
  • a similar wireless communication device may be used as module 56 at the remote server 12 for receiving the network messages and providing them to the server for further processing in order to reconstruct the data file.
  • Fig. 5 is a block diagram illustrating an exemplary wireless communication device 650 that may be used in connection with the various embodiments described herein.
  • the wireless communication device 650 may be used in conjunction with user device 10 to transmit the network messages, and a wireless communication device 650 may also be used in conjunction with the remote or destination server 12 for receiving the network messages.
  • wireless communication device 650 comprises an antenna 652, a multiplexor 654, a low noise amplifier (“LNA”) 656, a power amplifier (“PA”) 658, a modulation circuit 660, and a baseband processor 662.
  • LNA low noise amplifier
  • PA power amplifier
  • a central processing unit (“CPU”) 668 with a data storage area 670 is connected to the baseband processor 662, and a hardware interface 672 is connected to the baseband processor.
  • CPU central processing unit
  • Multiplexor 654 acts as a switch, coupling antenna 652 between the transmit and receive signal paths.
  • received RF signals are coupled from a multiplexor 654 to LNA 656.
  • LNA 656 amplifies the received RF signal and couples the amplified signal to a demodulation portion of the modulation circuit 660.
  • modulation circuit 660 will combine a demodulator and modulator in one integrated circuit ("IC").
  • the demodulator and modulator can also be separate components.
  • the demodulator strips away the RF carrier signal leaving a base-band receive signal, which is sent from the demodulator output to the base-band processor 662.
  • the baseband processor 662 also codes digital signals for transmission and generates a baseband transmit signal that is routed to the modulator portion of modulation circuit 660.
  • the modulator mixes the baseband transmit signal with an RF carrier signal generating an RF transmit signal that is routed to the power amplifier 658.
  • the power amplifier 658 amplifies the RF transmit signal and routes it to the multiplexor 654 where the signal is switched to the antenna port for transmission by antenna 652.
  • the baseband processor 662 is also communicatively coupled with the central processing unit 668.
  • the central processing unit 668 has access to data storage area 670.
  • the central processing unit 668 is preferably configured to execute instructions (i.e., computer programs or software) that can be stored in the data storage area 670. Computer programs can also be received from the baseband processor 662 and stored in the data storage area 670 or executed upon receipt.
  • the central processing unit 668 is also preferably configured to receive notifications from the hardware interface 672 when new devices are detected by the hardware interface.
  • Hardware interface 672 can be a combination electromechanical detector with controlling software that communicates with the CPU 668 and interacts with new devices.
  • the hardware interface 672 may be a firewire port, a USB port, a Bluetooth or infrared wireless unit, or any of a variety of wired or wireless access mechanisms. Examples of hardware that may be linked with the device 650 include data storage devices, computing devices, headphones, microphones, and the like.
  • the term "computer readable medium” is used to refer to any media used to provide executable instructions (e.g., software and computer programs) to the wireless communication device 650 for execution by the central processing unit 668.
  • Examples of these media include the data storage area 670, microphone 666 (via the baseband processor 662), antenna and multiplexor 654 (also via the baseband processor 662), and hardware interface 672.
  • These computer readable mediums are means for providing executable code, programming instructions, and software to the wireless communication device 650.
  • the executable code, programming instructions, and software when executed by the central processing unit 668, preferably cause the central processing unit 668 to perform the inventive features and functions previously described herein.
  • the central processing unit (CPU) at the user device is configured to create network messages and populate the data payload of such messages with successive configurable segments of data from a data file, while the CPU at the destination server is configured to extract the data segments from successive messages received at the destination server, reconstruct the original data file from the data segments, and write the data file to the server.
  • CPU central processing unit
  • the central processing unit 668 is also preferably configured to receive notifications from the hardware interface 672 when new devices are detected by the hardware interface.
  • Hardware interface 672 can be a combination electromechanical detector with controlling software that communicates with the CPU 668 and interacts with new devices.
  • the hardware interface 672 may be a firewire port, a USB port, a Bluetooth or infrared wireless unit, or any of a variety of wired or wireless access mechanisms.
  • Fig. 6 is a block diagram illustrating an exemplary computer system 750 that may be used in connection with the various embodiments described herein.
  • the computer system 550 may be used in conjunction with the user device 10.
  • a similar computer system may be used in conjunction with the remote server.
  • a computer processor at the user device 10 will be programmed to carry out steps 24 to 32 of Figure 4, while a computer processor at the remote server will be programmed to carry out steps 34 to 36 of Figure 4.
  • other computer systems and/or architectures may be used, as will be clear to those skilled in the art.
  • the computer system 750 preferably includes one or more processors, such as processor 752. Additional processors may be provided, such as an auxiliary processor to manage input/output, an auxiliary processor to perform floating point mathematical operations, a special-purpose microprocessor having an architecture suitable for fast execution of signal processing algorithms (e.g., digital signal processor), a slave processor subordinate to the main processing system (e.g., back-end processor), an additional microprocessor or controller for dual or multiple processor systems, or a coprocessor.
  • processors such as processor 752.
  • Additional processors may be provided, such as an auxiliary processor to manage input/output, an auxiliary processor to perform floating point mathematical operations, a special-purpose microprocessor having an architecture suitable for fast execution of signal processing algorithms (e.g., digital signal processor), a slave processor subordinate to the main processing system (e.g., back-end processor), an additional microprocessor or controller for dual or multiple processor systems, or a coprocessor.
  • Such auxiliary processors may be discrete processors or may be integrated with the processor 752.
  • the processor 752 is preferably connected to a communication bus 754.
  • the communication bus 754 may include a data channel for facilitating information transfer between storage and other peripheral components of the computer system 750.
  • the communication bus 754 further may provide a set of signals used for communication with the processor 752, including a data bus, address bus, and control bus (not shown).
  • the communication bus 754 may comprise any standard or non-standard bus architecture such as, for example, bus architectures compliant with industry standard architecture ("ISA”), extended industry standard architecture (“EISA”), Micro Channel Architecture (“MCA”), peripheral component interconnect (“PCI”) local bus, or standards promulgated by the Institute of Electrical and Electronics Engineers (“IEEE”) including IEEE 488 general-purpose interface bus (“GPIB”), IEEE 696/S-100, and the like.
  • ISA industry standard architecture
  • EISA extended industry standard architecture
  • MCA Micro Channel Architecture
  • PCI peripheral component interconnect
  • IEEE Institute of Electrical and Electronics Engineers
  • IEEE Institute of Electrical and Electronics Engineers
  • GPIB general- purpose interface bus
  • IEEE 696/S-100 IEEE 696/S-100
  • Computer system 750 preferably includes a main memory 756 and may also include a secondary memory 758.
  • the main memory 756 provides storage of instructions and data for programs executing on the processor 752.
  • the main memory 756 is typically semiconductor-based memory such as dynamic random access memory (“DRAM”) and/or static random access memory (“SRAM”).
  • DRAM dynamic random access memory
  • SRAM static random access memory
  • Other semiconductor-based memory types include, for example, synchronous dynamic random access memory (“SDRAM”), Rambus dynamic random access memory (“RDRAM”), ferroelectric random access memory (“FRAM”), and the like, including read only memory (“ROM”).
  • the secondary memory 758 may optionally include a hard disk drive 760 and/or a removable storage drive 762, for example a floppy disk drive, a magnetic tape drive, a compact disc (“CD”) drive, a digital versatile disc (“DVD”) drive, etc.
  • the removable storage drive 762 reads from and/or writes to a removable storage medium 764 in a well- known manner.
  • Removable storage medium 764 may be, for example, a floppy disk, magnetic tape, CD, DVD, etc.
  • the removable storage medium 764 is preferably a computer readable medium having stored thereon computer executable code (i.e., software) and/or data.
  • the computer software or data stored on the removable storage medium 764 is read into the computer system 750 as electrical communication signals 778.
  • secondary memory 758 may include other similar means for allowing computer programs or other data or instructions to be loaded into the computer system 750.
  • Such means may include, for example, an external storage medium
  • Computer system 750 may also include a communication interface 774.
  • the communication interface 774 allows software and data to be transferred between computer system 750 and external devices (e.g. printers), networks, or information sources.
  • external devices e.g. printers
  • computer software or executable code may be transferred to computer system 750 from a network server via communication interface 774.
  • Examples of communication interface 774 include a modem, a network interface card ("NIC"), a communications port, a PCMCIA slot and card, an infrared interface, and an IEEE 1394 fire-wire, just to name a few.
  • Communication interface 774 preferably implements industry promulgated protocol standards, such as Ethernet IEEE 802 standards, Fiber Channel, digital subscriber line (“DSL”), asynchronous digital subscriber line (“ADSL”), frame relay, asynchronous transfer mode (“ATM”), integrated digital services network (“ISDN”), personal communications services (“PCS”), transmission control protocol/Internet protocol (“TCP/IP”), serial line Internet protocol/point to point protocol (“SLIP/PPP”), and so on, but may also implement customized or non-standard interface protocols as well.
  • Software and data transferred via communication interface 774 are generally in the form of electrical communication signals 778. These signals 778 are preferably provided to communication interface 774 via a communication channel 776.
  • Communication channel 776 carries signals 778 and can be implemented using a variety of wired or wireless communication means including wire or cable, fiber optics, conventional phone line, cellular phone link, wireless data communication link, radio frequency (RF) link, or infrared link, just to name a few.
  • wired or wireless communication means including wire or cable, fiber optics, conventional phone line, cellular phone link, wireless data communication link, radio frequency (RF) link, or infrared link, just to name a few.
  • Computer executable code i.e., computer programs or software
  • main memory 756 and/or the secondary memory 758 are stored in the main memory 756 and/or the secondary memory 758.
  • Computer programs can also be received via communication interface 774 and stored in the main memory 756 and/or the secondary memory 758.
  • Such computer programs when executed, enable the computer system 750 to perform the various functions of the present invention as previously described.
  • the term "computer readable medium” is used to refer to any media used to provide computer executable code (e.g., software and computer programs) to the computer system 750. Examples of these media include main memory 756, secondary memory 758 (including hard disk drive 760, removable storage medium 764, and external storage medium 772), and any peripheral device communicatively coupled with communication interface 774 (including a network information server or other network device). These computer readable mediums are means for providing executable code, programming instructions, and software to the computer system 750.
  • the software may be stored on a computer readable medium and loaded into computer system 750 by way of removable storage drive 762, interface 770, or communication interface 774. In such an embodiment, the software is loaded into the computer system 750 in the form of electrical communication signals 778.
  • the software when executed by the processor 752, preferably causes the processor 752 to perform the inventive features and functions previously described herein.
  • Various embodiments may also be implemented primarily in hardware using, for example, components such as application specific integrated circuits ("ASICs"), or field programmable gate arrays ("FPGAs"). Implementation of a hardware state machine capable of performing the functions described herein will also be apparent to those skilled in the relevant art. Various embodiments may also be implemented using a combination of both hardware and software.
  • ASICs application specific integrated circuits
  • FPGAs field programmable gate arrays
  • DSP digital signal processor
  • a general-purpose processor can be a microprocessor, but in the alternative, the processor can be any processor, controller, microcontroller, or state machine.
  • a processor can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
  • a software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium including a network storage medium.
  • An exemplary storage medium can be coupled to the processor such the processor can read information from, and write information to, the storage medium.
  • the storage medium can be integral to the processor.
  • the processor and the storage medium can also reside in an ASIC.

Abstract

A data transfer system and method allows data files to be transmitted from a user device through a private network and a public network to a destination server without requiring write permission at an intermediate server of the private network. A configurable segment of data is read from a file to be transmitted. A network message having a header and a data payload is then created and addressed to a destination server associated with a public network. The data segment is placed in the data payload of the network message. The network message is then sent over the private and public networks to the destination server. The process is repeated until the entire data file has been sent in a series of network messages to the destination server. The file is reconstructed at the destination server from the data segments in the series of received network messages.

Description

DATA TRANSFER SYSTEM AND METHOD
Background
1. Field of the Invention
[01] The present invention relates to data or file transfer from a local device to a remote server or other device over a network.
2. Related Art
[02] In order to transfer data files over a network through an Internet connection or the like, an intermediate "write" permission is normally required if the files are temporarily stored in memory at an intermediate location. One example of this situation is in a fleet management system in which driving data is collected in vehicle mounted event detectors, and may then be transmitted over a private network to an evaluation server that is accessible via the Internet or some other public network.
[03] Private company networks typically have firewalls or other protection between the private network and the Internet, to protect the private or company network against outsiders accessing its own private data resources. Accordingly, files transmitted through a company network from a source such as a vehicle mounted event detector, must be temporarily stored in memory somewhere on the company network before being transmitted to an outside evaluation server. The required intermediate write permission in these conventional systems are significantly problematic, especially when the company network policies forbid such write permissions.
[04] Therefore, what is needed is a system and method that avoids the need for a temporary write permission which could potentially compromise network security.
Summary
[05] According to one aspect of the present invention, a method for transmitting data files through a private network is provided. A configurable segment of data is first read from a file to be transmitted from a user device to a destination server through the private network. A network message addressed to the destination server is then created, the message comprising a header and a data payload, and the data segment from the file to be transmitted is then placed in the data payload of the network message. The network message is then sent over the private network and a public network to the destination server. The process is repeated until the entire data file has been sent in a series of network messages to the destination server. The data segments are extracted from the network messages and used to reconstruct the file at the destination server. If the file is small enough, it may be transmitted with only one message.
[06] Using the method or methods as described above, the contents of a data file can be sent through a private network to a destination server without requiring temporary storage at an intermediate, private network server. The network messages may be sent to the destination server through the private network and a public network such as the Internet. The data segments may be attached to the network messages using Direct Internet Message Encapsulation (DIME) or similar specifications for sending and receiving Internet messages with additional file attachments. Internet messages are normally in Simple Object Access Protocol (SOAP) which specifies how to encode a Hypertext Transfer Protocol (HTTP) header and Extensible Markup Language (XML) file. Such messages are much more likely to be transmitted through security firewall servers of private networks without requiring "write" permissions on the web service directory. DIME allows the contents of a data file to be attached to network messages which can be transported through an Internet connection without being blocked by a firewall. [07] In one example, this method may be used for sending data collected by various event monitors in a security or monitoring system or the like. For example, fleet drivers may be monitored to collect data regarding risky driving behavior, accidents and other incidents. Various event capture devices in the vehicle will collect driving event data which must then be transmitted to an evaluation server for review and evaluation of the data. This is normally done by sending the event files from the vehicles to a local fleet server in a private network, and then across the Internet to the fleet monitoring system server. The method of this invention allows data files to be transmitted through the local fleet network without requiring write permissions on the network web service directory. This method will also be useful in many other applications where data is collected and subsequently must be transmitted through a private network to a remote server over the Internet.
[08] According to another aspect of the present invention, a data transfer system is provided for transferring data files from a local device to a destination server through a private network. The local device has a processor configured to read successive configurable segments of data from a selected file until the entire file has been read. The processor has a message generator module configured to create a series of network messages addressed to the destination server, each network message having a header and a data payload, and to place each segment of data in the data payload of a respective network message. The processor further comprises a transmission module configured to send the series of network messages directly through the private network and a public network to the destination server. The destination server has a processor configured to receive the network messages and to reconstruct the selected file from the data segments extracted from the series of network messages.
[09] In one embodiment, the network messages are DIME messages and are configured for direct transmission through the private network without requiring temporary storage at a private network server.
[10] Other features and advantages of the present invention will become more readily apparent to those of ordinary skill in the art after reviewing the following detailed description and accompanying drawings.
Brief Description of the Drawings
[11] The details of the present invention, both as to its structure and operation, may be gleaned in part by study of the accompanying drawings, in which like reference numerals refer to like parts, and in which:
[12] Figure 1 is a block diagram illustrating an example of transmission of data through a private network and public network to a destination server according to an exemplary embodiment of the invention;
[13] Figure 2 is a block diagram illustrating a file transmitting system of the user device of Figure 1 ;
[14] Figure 3 is a block diagram illustrating a file receiving system of the destination server of Figure 1;
[15] Figure 4 is a flow diagram illustrating a data transfer method according to the exemplary embodiment;
[16] Figure 5 is a block diagram illustrating an exemplary wireless communication device that may be used in connection with the various embodiments described herein; and
[17] Figure 6 is a block diagram illustrating an exemplary computer system which may be used in connection with the various embodiments described herein. -A-
Detailed Description
[18] Certain embodiments as disclosed herein provide for transmission of various types of data files through a private network without requiring "Write" permissions on the private network server. For example, one method as disclosed herein allows for transmission of data files of driving event information collected by fleet vehicles through a private fleet network and a public network such as the Internet to a driving event evaluation server.
[19] After reading this description it will become apparent to one skilled in the art how to implement the invention in various alternative embodiments and alternative applications. However, although various embodiments of the present invention will be described herein, it is understood that these embodiments are presented by way of example only, and not limitation. As such, this detailed description of various alternative embodiments should not be construed to limit the scope or breadth of the present invention as set forth in the appended claims.
[20] Figure 1 illustrates the path of data transfer from a user device 10 to a remote or destination server 12 according to an exemplary embodiment of the invention. The user device 10 may comprise any type of computing device and associated data storage device, where data is collected in data files for subsequent transmission to a destination server 12 where the data is evaluated or used. One example of this is in a driving fleet, where it is desirable to collect driving event data for each fleet driver and vehicle for subsequent evaluation of potentially risky driving behavior or conditions. However, it will be understood that there are many other possible applications of the method and system of this invention in many different fields, such as security, inventory management, quality control in various industries, and the like. The method and system of this invention may be used in any situation where data files are to be transmitted to a remote server on a public network through a private network.
[21] As illustrated in Figure 1, the user device 10 communicates with an access point 14 of the private network 15 via link 11. The access point may be a wireless access point, a wired or wireless docking station, or the like, and the link 11 may be a wire link or a wireless link. Private network 15 is associated with a local or private server 16 and is linked to a public network 18 such as the Internet through a firewall 20. [22] User device 10 includes a data transmission system as illustrated in Figure 2 for converting data from stored data files into a format suitable for transmission through a private network without requiring an intermediate write permission at a private network server. The data transmission system comprises a file reader module 50 connected to data storage module 52 of the user device, a network message or Direct Internet Message Encapsulation (DIME) generator module 54, and a communication module 55 for transmitting messages created by module 54 through access point 14 to the private network 15. Figure 3 illustrates the modules at the destination server for receiving and processing the messages delivered to the destination server from the user device through private and public networks 15, 18. The message receiving modules comprise a communication module 56 for receiving messages from the public network 18, and a message processor module 58 for processing the messages, as described in more detail below in connection with Figure 4. Message processor module 58 is connected to a data processor or storage module 60 of the destination server for processing or storing data files created by module 58.
[23] Figure 4 is a flow diagram illustrating the steps of a method according to an exemplary embodiment of the invention for transmitting a data file through the private and public networks 15, 18 of Figure 1 to the destination server 12 without requiring intermediate write permissions at the private network. The same basic method may be used for various transmission paths which involve one or more private networks. [24] Referring to Figures 1, 2 and 4, a data file 22 is first selected by the user device 10 for transmission to the remote or destination server 12 (step 24). The user device includes programmed instructions for configuring the data in a file 22 selected from data storage unit 52 for transmission to the destination server. In a first step 25, a configurable segment Sl of data is read from the file by the file reader module 50. A network message Mi addressed to the destination server is then created (26) by network message generator module 54. The network message may be any type of Internet message similar to an electronic mail message which can be transmitted across any number of local or private servers 16 (also known as Onsite Client Servers or OCS). Network message Mi may be created with a communications specification which defines a format for attaching files to messages sent between application programs over the Internet, such as Direct Internet Message Encapsulation (DIME) or the like. DIME messages are created by a DIME generator and consumed by a DIME parser. Message Mi has a header H and a data payload P, and the payload is populated with the data segment Sl previously read from the data file (step 28). [25] The message Mi is then sent by communication module 55 through the private network 15 and public network 18 to the communication module 56 at destination server 12 (step 30), as indicated in Figure 1. Communication modules 55 and 56 may be wireless or wire communication modules. If more data remains in the file 22 (step 32), the next configurable segment S2 of data is read by file reader module 50 at step 25, a second network message M2 is created by network message or DIME generator module 54 (step 26), and the data payload of message M2 is populated with the data segment (step 28), before sending message M2 through networks 15 and 18 to the destination server 12 (step 30). These steps are repeated until the entire file has been read and messages M1, M2, Mn have been sent to the destination or remote server, where n is the total number of configurable segments of data in the file.
[26] Although steps 24 to 32 are shown as a sequence in Figure 4, it will be understood that the creation of a new network message may commence as soon as a previous network message has been created (i.e. at the completion of step 28), in parallel with transmission of the previously created message at step 30.
[27] The messages M1, M2, Mn are received at the destination server (step 34), and the data segment is extracted from each message by the processor module 58 (step 35). The original data file is then reconstructed from the extracted data segments (step 36), and the reconstructed data file is stored or further processed as desired, according to programmed instructions at the destination server.
[28] This method allows file transfer to be executed across any number of private network OCSs or local servers without reconstructing or writing the file until the destination is reached. This will considerably simplify file transfer since there will be no need to have any intermediate write permissions at the OCSs. Successive segments of each data file are simply populated in the data payload of a series of network messages such as DIME messages which utilize the World Wide Web (www) Hypertext Transfer Protocol (HTTP) in the header. Since HTTP requests are usually allowed through firewalls, the network messages can be transmitted through any number of private networks without needing intermediate write permissions at the private network or OC servers. The file data is not distinguished from the rest of the data in the network message transmitted through the private network, and does not have to be reconstructed and written to any intermediate server of a private network, as is the normal rule for conventional data files. The remote server is configured to receive the series of messages associated with each file, and extract the sequence of data segments from the payloads of the messages before reconstructing/writing the file on the remote server.
[29] As noted above, one situation where the method and system of this invention may be used is for evaluating driving data for an organization having a fleet of motor vehicles, although it is applicable to many different data collection scenarios where the collected data has to be transmitted to a remote server through one or more private networks. In the specific instance mentioned above, each vehicle in the fleet will have an on-board computer unit or user device linked to one or more driving event data collection devices, such as cameras and various sensors. Data from these devices is collected in a data storage area of the computer unit for subsequent transmission to the remote evaluation server for further analysis. The method and system of this invention allows such data to be transmitted in separate segments as the payload of a series of network messages, avoiding the need for write permissions on a private network such as the network of the organization having the fleet vehicles.
[30] The user device 10 of Figure 1 will include any suitable computing device and data storage, as well as the communication device 55 for transmitting and receiving data over link 11 to a network 15. As noted above, link 11 may be a wired or wireless link, and the communication device may provide for wired, wireless or both wired and wireless communications. Figure 5 illustrates an exemplary wireless communication device which may be used to transmit network messages M1, M2, Mn from user device 10. A similar wireless communication device may be used as module 56 at the remote server 12 for receiving the network messages and providing them to the server for further processing in order to reconstruct the data file.
[31] As noted above, Fig. 5 is a block diagram illustrating an exemplary wireless communication device 650 that may be used in connection with the various embodiments described herein. For example, the wireless communication device 650 may be used in conjunction with user device 10 to transmit the network messages, and a wireless communication device 650 may also be used in conjunction with the remote or destination server 12 for receiving the network messages. However, other wireless communication devices and/or architectures may also be used, as will be clear to those skilled in the art. [32] In the illustrated embodiment, wireless communication device 650 comprises an antenna 652, a multiplexor 654, a low noise amplifier ("LNA") 656, a power amplifier ("PA") 658, a modulation circuit 660, and a baseband processor 662. A central processing unit ("CPU") 668 with a data storage area 670 is connected to the baseband processor 662, and a hardware interface 672 is connected to the baseband processor. [33] In the wireless communication device 650, radio frequency ("RF") signals are transmitted and received by antenna 652. Multiplexor 654 acts as a switch, coupling antenna 652 between the transmit and receive signal paths. In the receive path, received RF signals are coupled from a multiplexor 654 to LNA 656. LNA 656 amplifies the received RF signal and couples the amplified signal to a demodulation portion of the modulation circuit 660.
[34] Typically modulation circuit 660 will combine a demodulator and modulator in one integrated circuit ("IC"). The demodulator and modulator can also be separate components. The demodulator strips away the RF carrier signal leaving a base-band receive signal, which is sent from the demodulator output to the base-band processor 662. [35] The baseband processor 662 also codes digital signals for transmission and generates a baseband transmit signal that is routed to the modulator portion of modulation circuit 660. The modulator mixes the baseband transmit signal with an RF carrier signal generating an RF transmit signal that is routed to the power amplifier 658. The power amplifier 658 amplifies the RF transmit signal and routes it to the multiplexor 654 where the signal is switched to the antenna port for transmission by antenna 652. [36] The baseband processor 662 is also communicatively coupled with the central processing unit 668. The central processing unit 668 has access to data storage area 670. The central processing unit 668 is preferably configured to execute instructions (i.e., computer programs or software) that can be stored in the data storage area 670. Computer programs can also be received from the baseband processor 662 and stored in the data storage area 670 or executed upon receipt.
[37] The central processing unit 668 is also preferably configured to receive notifications from the hardware interface 672 when new devices are detected by the hardware interface. Hardware interface 672 can be a combination electromechanical detector with controlling software that communicates with the CPU 668 and interacts with new devices. The hardware interface 672 may be a firewire port, a USB port, a Bluetooth or infrared wireless unit, or any of a variety of wired or wireless access mechanisms. Examples of hardware that may be linked with the device 650 include data storage devices, computing devices, headphones, microphones, and the like. [38] In this description, the term "computer readable medium" is used to refer to any media used to provide executable instructions (e.g., software and computer programs) to the wireless communication device 650 for execution by the central processing unit 668. Examples of these media include the data storage area 670, microphone 666 (via the baseband processor 662), antenna and multiplexor 654 (also via the baseband processor 662), and hardware interface 672. These computer readable mediums are means for providing executable code, programming instructions, and software to the wireless communication device 650. The executable code, programming instructions, and software, when executed by the central processing unit 668, preferably cause the central processing unit 668 to perform the inventive features and functions previously described herein. In other words, the central processing unit (CPU) at the user device is configured to create network messages and populate the data payload of such messages with successive configurable segments of data from a data file, while the CPU at the destination server is configured to extract the data segments from successive messages received at the destination server, reconstruct the original data file from the data segments, and write the data file to the server.
[39] The central processing unit 668 is also preferably configured to receive notifications from the hardware interface 672 when new devices are detected by the hardware interface. Hardware interface 672 can be a combination electromechanical detector with controlling software that communicates with the CPU 668 and interacts with new devices. The hardware interface 672 may be a firewire port, a USB port, a Bluetooth or infrared wireless unit, or any of a variety of wired or wireless access mechanisms. [40] Fig. 6 is a block diagram illustrating an exemplary computer system 750 that may be used in connection with the various embodiments described herein. For example, the computer system 550 may be used in conjunction with the user device 10. A similar computer system may be used in conjunction with the remote server. A computer processor at the user device 10 will be programmed to carry out steps 24 to 32 of Figure 4, while a computer processor at the remote server will be programmed to carry out steps 34 to 36 of Figure 4. However, other computer systems and/or architectures may be used, as will be clear to those skilled in the art.
[41] The computer system 750 preferably includes one or more processors, such as processor 752. Additional processors may be provided, such as an auxiliary processor to manage input/output, an auxiliary processor to perform floating point mathematical operations, a special-purpose microprocessor having an architecture suitable for fast execution of signal processing algorithms (e.g., digital signal processor), a slave processor subordinate to the main processing system (e.g., back-end processor), an additional microprocessor or controller for dual or multiple processor systems, or a coprocessor.
Such auxiliary processors may be discrete processors or may be integrated with the processor 752.
[42] The processor 752 is preferably connected to a communication bus 754. The communication bus 754 may include a data channel for facilitating information transfer between storage and other peripheral components of the computer system 750. The communication bus 754 further may provide a set of signals used for communication with the processor 752, including a data bus, address bus, and control bus (not shown). The communication bus 754 may comprise any standard or non-standard bus architecture such as, for example, bus architectures compliant with industry standard architecture ("ISA"), extended industry standard architecture ("EISA"), Micro Channel Architecture ("MCA"), peripheral component interconnect ("PCI") local bus, or standards promulgated by the Institute of Electrical and Electronics Engineers ("IEEE") including IEEE 488 general- purpose interface bus ("GPIB"), IEEE 696/S-100, and the like.
[43] Computer system 750 preferably includes a main memory 756 and may also include a secondary memory 758. The main memory 756 provides storage of instructions and data for programs executing on the processor 752. The main memory 756 is typically semiconductor-based memory such as dynamic random access memory ("DRAM") and/or static random access memory ("SRAM"). Other semiconductor-based memory types include, for example, synchronous dynamic random access memory ("SDRAM"), Rambus dynamic random access memory ("RDRAM"), ferroelectric random access memory ("FRAM"), and the like, including read only memory ("ROM").
[44] The secondary memory 758 may optionally include a hard disk drive 760 and/or a removable storage drive 762, for example a floppy disk drive, a magnetic tape drive, a compact disc ("CD") drive, a digital versatile disc ("DVD") drive, etc. The removable storage drive 762 reads from and/or writes to a removable storage medium 764 in a well- known manner. Removable storage medium 764 may be, for example, a floppy disk, magnetic tape, CD, DVD, etc.
[45] The removable storage medium 764 is preferably a computer readable medium having stored thereon computer executable code (i.e., software) and/or data. The computer software or data stored on the removable storage medium 764 is read into the computer system 750 as electrical communication signals 778.
[46] In alternative embodiments, secondary memory 758 may include other similar means for allowing computer programs or other data or instructions to be loaded into the computer system 750. Such means may include, for example, an external storage medium
772 and an interface 770. Examples of external storage medium 772 may include an external hard disk drive or an external optical drive, or and external magneto-optical drive. [47] Other examples of secondary memory 758 may include semiconductor-based memory such as programmable read-only memory ("PROM"), erasable programmable read-only memory ("EPROM"), electrically erasable read-only memory ("EEPROM"), or flash memory (block oriented memory similar to EEPROM). Also included are any other removable storage units 772 and interfaces 770, which allow software and data to be transferred from the removable storage unit 772 to the computer system 750. [48] Computer system 750 may also include a communication interface 774. The communication interface 774 allows software and data to be transferred between computer system 750 and external devices (e.g. printers), networks, or information sources. For example, computer software or executable code may be transferred to computer system 750 from a network server via communication interface 774. Examples of communication interface 774 include a modem, a network interface card ("NIC"), a communications port, a PCMCIA slot and card, an infrared interface, and an IEEE 1394 fire-wire, just to name a few.
[49] Communication interface 774 preferably implements industry promulgated protocol standards, such as Ethernet IEEE 802 standards, Fiber Channel, digital subscriber line ("DSL"), asynchronous digital subscriber line ("ADSL"), frame relay, asynchronous transfer mode ("ATM"), integrated digital services network ("ISDN"), personal communications services ("PCS"), transmission control protocol/Internet protocol ("TCP/IP"), serial line Internet protocol/point to point protocol ("SLIP/PPP"), and so on, but may also implement customized or non-standard interface protocols as well. [50] Software and data transferred via communication interface 774 are generally in the form of electrical communication signals 778. These signals 778 are preferably provided to communication interface 774 via a communication channel 776. Communication channel 776 carries signals 778 and can be implemented using a variety of wired or wireless communication means including wire or cable, fiber optics, conventional phone line, cellular phone link, wireless data communication link, radio frequency (RF) link, or infrared link, just to name a few.
[51] Computer executable code (i.e., computer programs or software) is stored in the main memory 756 and/or the secondary memory 758. Computer programs can also be received via communication interface 774 and stored in the main memory 756 and/or the secondary memory 758. Such computer programs, when executed, enable the computer system 750 to perform the various functions of the present invention as previously described.
[52] In this description, the term "computer readable medium" is used to refer to any media used to provide computer executable code (e.g., software and computer programs) to the computer system 750. Examples of these media include main memory 756, secondary memory 758 (including hard disk drive 760, removable storage medium 764, and external storage medium 772), and any peripheral device communicatively coupled with communication interface 774 (including a network information server or other network device). These computer readable mediums are means for providing executable code, programming instructions, and software to the computer system 750. [53] In an embodiment that is implemented using software, the software may be stored on a computer readable medium and loaded into computer system 750 by way of removable storage drive 762, interface 770, or communication interface 774. In such an embodiment, the software is loaded into the computer system 750 in the form of electrical communication signals 778. The software, when executed by the processor 752, preferably causes the processor 752 to perform the inventive features and functions previously described herein.
[54] Various embodiments may also be implemented primarily in hardware using, for example, components such as application specific integrated circuits ("ASICs"), or field programmable gate arrays ("FPGAs"). Implementation of a hardware state machine capable of performing the functions described herein will also be apparent to those skilled in the relevant art. Various embodiments may also be implemented using a combination of both hardware and software.
[55] Furthermore, those of skill in the art will appreciate that the various illustrative logical blocks, modules, and method steps described in connection with the above described figures and the embodiments disclosed herein can often be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative blocks, modules, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled persons can implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the invention. In addition, the grouping of functions within a module, block, or step is for ease of description. Specific functions or steps can be moved from one module, block or step to another without departing from the invention.
[56] Moreover, the various illustrative logical blocks, modules, and methods described in connection with the embodiments disclosed herein can be implemented or performed with a general purpose processor, a digital signal processor ("DSP"), an ASIC, FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor can be a microprocessor, but in the alternative, the processor can be any processor, controller, microcontroller, or state machine. A processor can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. [57] Additionally, the steps of a method or algorithm described in connection with the embodiments disclosed herein can be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium including a network storage medium. An exemplary storage medium can be coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium can be integral to the processor. The processor and the storage medium can also reside in an ASIC.
[58] The above description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles described herein can be applied to other embodiments without departing from the spirit or scope of the invention. Thus, it is to be understood that the description and drawings presented herein represent a presently preferred embodiment of the invention and are therefore representative of the subject matter which is broadly contemplated by the present invention. It is further understood that the scope of the present invention fully encompasses other embodiments that may become obvious to those skilled in the art and that the scope of the present invention is accordingly limited by nothing other than the appended claims.

Claims

Claims
1. A method of transmitting data files through a private network without write permission, comprising the steps of:
reading at least a first configurable segment of data from a file to be transmitted from a user device to a destination server through a private network;
creating a first network message addressed to the destination server, the first network message comprising a header and a data payload;
placing the first data segment in the data payload of the first network message;
sending the first network message through the private network and a public network to the destination server without temporary storage at a local server of the private network; and
reconstructing at least a portion of the file from the first data segment in the first network message at the destination server.
2. The method as claimed in claim 1, further comprising reading a second configurable segment of data from the file;
creating a second network message addressed to the destination server, the second network message comprising a header and a data payload;
placing the second data segment in the data payload of the second network message; and
sending the second network message through the private network and a public network to the destination server without temporary storage at a local server of the private network;
reconstructing at least a portion of the file from the first and second data segments in the first and second network messages at the destination server.
3. The method as claimed in claim 1, wherein the data file contains a total of n data segments, and the steps of reading a data segment, creating a network message, and placing the data segment in the data payload of the network message are repeated until all of the data segments in the file have been placed in a series of n network messages which are sent through the private and public networks to the destination server, and the file is reconstructed at the destination server from the series of n data segments in the successive n network messages.
4. The method as claimed in claim 1, wherein each network message is a Direct Internet Message Encapsulation ("DIME") message.
5. A method of transmitting data files through a private network without write permission, comprising the steps of:
reading a first configurable segment of data from a file to be transmitted from a user device to a destination server through a private network;
creating a first network message addressed to the destination server, the first network message comprising a header and a data payload;
placing the first data segment in the data payload of the first network message;
reading a second configurable segment of data from the file;
creating a second network message addressed to the destination server, the second network message comprising a header and a data payload;
placing the second data segment in the data payload of the second network message;
sending the first and second network messages through the private network and a public network to a destination server; and
reconstructing the file from the first and second data segments in the first and second network messages at the destination server.
6. The method as claimed in claim 5, wherein the data file contains a total of n data segments, and the steps of reading a data segment, creating a network message, and placing the data segment in the data payload of the network message are repeated until all of the data segments in the file have been placed in a series of n network messages which are sent through the private and public networks to the destination server, and the file is reconstructed at the destination server from the series of n data segments in the successive n network messages.
7. The method as claimed in claim 5, wherein the public network is the Internet.
8. The method as claimed in claim 5, wherein each network message is sent to the destination server without temporary data storage at a private network server.
9. The method as claimed in claim 5, wherein each network message is a Direct Internet Message Encapsulation ("DIME") message.
10. The method as claimed in claim 5, wherein the step of sending the network message comprises transmitting the network message over a first link to an access point of the private network, and transmitting the network message directly from the access point through the private network and the public network to the destination server without temporary data storage at a private network server.
11. The method as claimed in claim 10, wherein the first link is a wire link.
12. The method as claimed in claim 10, wherein the first link is a wireless link.
13. A method for transmitting data files through a private network, comprising: reading a configurable segment of data from a file to be transmitted from a user device to a destination server through the private network; creating a network message addressed to the destination server, the message comprising a header and a data payload; placing the data segment from the file to be transmitted in the data payload of the network message; sending the network message through the private network and a public network to the destination server; repeating the foregoing steps with successive segments of data from the data file until the entire data file has been sent in a series of network messages to the destination server; and reconstructing the file at the destination server from the data segments in the series of network messages.
14. A data transfer system, comprising:
a local device having a series of stored files;
a private network having a series of access points;
the local device having a communication module for connection to at least one access point of the private network;
a public network communicating with the private network; and
at least one destination server communicatively coupled with the private network via the public network;
the local device having a file reader module configured to select a file from the stored files and read n successive configurable segments of data from the selected file until the entire file has been read, and a network message generator module linked to the file reader module and configured to create a series of n network messages addressed to the destination server, each network message having a header and a data payload, and to place each successive data segment in a respective network message in the series;
the communication module being linked to the network message generator module and configured to send the series of network messages through the private network and the public network to the destination server; and
the destination server having a receiver module configured to receive the network messages and a processor module configured to reconstruct the selected file from the successive data segments in the series of network messages.
15. The system as claimed in claim 14, further comprising an intermediate server associated with the intermediate network, the network messages being configured for direct transmission over the intermediate network without requiring temporary storage at the intermediate server.
16. The system as claimed in claim 14, wherein the public network is the Internet.
17. The system as claimed in claim 14, wherein the processor is configured to place each data segment in the data payload of a respective Direct Internet Message Encapsulation ("DIME") message.
18. A data transfer system, comprising:
a local device having at least one file for selective transfer to a destination server through at least one private network;
the local device processor having reader means for reading successive configurable segments of data from the file until the entire file has been read, message generator means for creating network messages addressed to the destination server, the number of network messages corresponding to the number of configurable data segments in the file, each network message having a header and a data payload containing a respective data segment, and transmission means for transmitting each network message through said private network and a public network; and
a destination server associated with said public network for receiving each network message, the destination server having processor means for reconstructing the originally read data segment from the network message.
19. The system as claimed in claim 18, wherein the message generator means comprises means for placing successive data segments in the data payloads of respective successive network messages, and the transmission means comprising means for transmitting said network messages in series successively over said private and public networks to the destination server; and the processor means at the destination server comprising means for reconstructing the file from data segments in the series of network messages.
20. The system as claimed in claim 18, wherein the message generator means comprises means for generating a Direct Internet Message Encapsulation (DIME) message.
PCT/US2007/075395 2006-08-18 2007-08-07 Data transfer system and method WO2008021837A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/465,765 2006-08-18
US11/465,765 US20080043736A1 (en) 2006-08-18 2006-08-18 Data Transfer System and Method

Publications (2)

Publication Number Publication Date
WO2008021837A2 true WO2008021837A2 (en) 2008-02-21
WO2008021837A3 WO2008021837A3 (en) 2008-11-13

Family

ID=39082906

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2007/075395 WO2008021837A2 (en) 2006-08-18 2007-08-07 Data transfer system and method

Country Status (2)

Country Link
US (1) US20080043736A1 (en)
WO (1) WO2008021837A2 (en)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8520069B2 (en) 2005-09-16 2013-08-27 Digital Ally, Inc. Vehicle-mounted video system with distributed processing
US8503972B2 (en) 2008-10-30 2013-08-06 Digital Ally, Inc. Multi-functional remote monitoring system
US20100157061A1 (en) * 2008-12-24 2010-06-24 Igor Katsman Device and method for handheld device based vehicle monitoring and driver assistance
DE112012003061T5 (en) 2011-07-21 2014-05-15 Bendix Commercial Vehicle Systems, Llc Vehicle Fleet Management System and Methods to Control and Improve Driver Performance in Fleet Vehicles
US10367878B2 (en) * 2012-03-31 2019-07-30 Bmc Software, Inc. Optimization of path selection for transfers of files
US10272848B2 (en) 2012-09-28 2019-04-30 Digital Ally, Inc. Mobile video and imaging system
WO2014052898A1 (en) 2012-09-28 2014-04-03 Digital Ally, Inc. Portable video and imaging system
US9780967B2 (en) 2013-03-14 2017-10-03 Telogis, Inc. System for performing vehicle diagnostic and prognostic analysis
WO2014159127A1 (en) 2013-03-14 2014-10-02 Telogis Inc. System and method for crowdsourcing vehicle-related analytics
US9958228B2 (en) 2013-04-01 2018-05-01 Yardarm Technologies, Inc. Telematics sensors and camera activation in connection with firearm activity
US10764542B2 (en) 2014-12-15 2020-09-01 Yardarm Technologies, Inc. Camera activation in response to firearm activity
US9253452B2 (en) 2013-08-14 2016-02-02 Digital Ally, Inc. Computer program, method, and system for managing multiple data recording devices
US10075681B2 (en) 2013-08-14 2018-09-11 Digital Ally, Inc. Dual lens camera unit
US9159371B2 (en) 2013-08-14 2015-10-13 Digital Ally, Inc. Forensic video recording with presence detection
US10390732B2 (en) 2013-08-14 2019-08-27 Digital Ally, Inc. Breath analyzer, system, and computer program for authenticating, preserving, and presenting breath analysis data
CN109977086B (en) * 2013-11-29 2023-09-01 华为终端有限公司 Method for sharing application between terminals and terminal
CA2958584C (en) 2014-08-18 2021-02-23 Trimble Navigation Limited System and method for modifying onboard event detection and/or image capture strategy using external source data
US10161746B2 (en) 2014-08-18 2018-12-25 Trimble Navigation Limited Systems and methods for cargo management
US9714037B2 (en) 2014-08-18 2017-07-25 Trimble Navigation Limited Detection of driver behaviors using in-vehicle systems and methods
CA2964772C (en) 2014-10-20 2020-09-01 Taser International, Inc. Systems and methods for distributed control
US9841259B2 (en) 2015-05-26 2017-12-12 Digital Ally, Inc. Wirelessly conducted electronic weapon
US10013883B2 (en) 2015-06-22 2018-07-03 Digital Ally, Inc. Tracking and analysis of drivers within a fleet of vehicles
US10192277B2 (en) 2015-07-14 2019-01-29 Axon Enterprise, Inc. Systems and methods for generating an audit trail for auditable devices
US10204159B2 (en) 2015-08-21 2019-02-12 Trimble Navigation Limited On-demand system and method for retrieving video from a commercial vehicle
US10904474B2 (en) 2016-02-05 2021-01-26 Digital Ally, Inc. Comprehensive video collection and storage
US10521675B2 (en) 2016-09-19 2019-12-31 Digital Ally, Inc. Systems and methods of legibly capturing vehicle markings
US10911725B2 (en) 2017-03-09 2021-02-02 Digital Ally, Inc. System for automatically triggering a recording
US11024137B2 (en) 2018-08-08 2021-06-01 Digital Ally, Inc. Remote video triggering and tagging
US11699308B2 (en) 2019-07-29 2023-07-11 Toyota Motor North America, Inc. Tracking of transport data
US11500571B2 (en) 2019-07-29 2022-11-15 Toyota Motor North America, Inc. Tracking of transport data
US11217041B2 (en) 2019-07-29 2022-01-04 Toyota Motor North America, Inc. Tracking of transport data
US11950017B2 (en) 2022-05-17 2024-04-02 Digital Ally, Inc. Redundant mobile video recording

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5050166A (en) * 1987-03-17 1991-09-17 Antonio Cantoni Transfer of messages in a multiplexed system
US20030079041A1 (en) * 2001-06-04 2003-04-24 Nct Group, Inc. System and method for increasing the effective bandwidth of a communications network
US20040243668A1 (en) * 2003-05-30 2004-12-02 Microsoft Corporation Application programming interface for implementing directory service access using directory service markup language

Family Cites Families (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3405757A1 (en) * 1983-02-26 1984-10-04 Edmund 7016 Gerlingen Zottnik ACCIDENT RECORDER
US4646241A (en) * 1984-06-21 1987-02-24 United Technologies Corporation Solid-state flight data recording system
JPS6177484A (en) * 1984-09-25 1986-04-21 Mitsubishi Electric Corp Security system
US4843578A (en) * 1984-10-01 1989-06-27 Wade Ted R Vehicle speed monitoring and logging means
HU206415B (en) * 1986-12-29 1992-10-28 Karolyne Otta Method for recording travel data of a motor vehicle into the memory of electronic tachograph, and device for implementing said method
US4949186A (en) * 1987-02-13 1990-08-14 Peterson Roger D Vehicle mounted surveillance system
US4758888A (en) * 1987-02-17 1988-07-19 Orbot Systems, Ltd. Method of and means for inspecting workpieces traveling along a production line
US4804937A (en) * 1987-05-26 1989-02-14 Motorola, Inc. Vehicle monitoring arrangement and system
US4806931A (en) * 1988-01-25 1989-02-21 Richard W. Clark Sound pattern discrimination system
US5534425A (en) * 1988-02-03 1996-07-09 Iowa State University Research Foundation, Inc. Soybeans having low linolenic acid content and method of production
DE3807727A1 (en) * 1988-03-09 1989-09-21 Robot Foto Electr Kg MONITORING DEVICE FOR SECURING AUTOMATES
US4939652A (en) * 1988-03-14 1990-07-03 Centrodyne Inc. Trip recorder
US4930742A (en) * 1988-03-25 1990-06-05 Donnelly Corporation Rearview mirror and accessory mount for vehicles
US4843463A (en) * 1988-05-23 1989-06-27 Michetti Joseph A Land vehicle mounted audio-visual trip recorder
US5012335A (en) * 1988-06-27 1991-04-30 Alija Cohodar Observation and recording system for a police vehicle
US4936533A (en) * 1988-11-15 1990-06-26 Donnelly Corporation Mounting assembly for vehicle accessories
US4896855A (en) * 1988-11-21 1990-01-30 Cincinnati Microwave, Inc. Pivotal windshield mount
KR910009444B1 (en) * 1988-12-20 1991-11-16 삼성전자 주식회사 Semiconductor memory device
US4945244A (en) * 1988-12-23 1990-07-31 Castleman Robert D Electronic infrared detector
US5712679A (en) * 1989-01-16 1998-01-27 Coles; Christopher Francis Security system with method for locatable portable electronic camera image transmission to a remote receiver
US4992943A (en) * 1989-02-13 1991-02-12 Mccracken Jack J Apparatus for detecting and storing motor vehicle impact data
US5646856A (en) * 1989-06-08 1997-07-08 Kaesser; Juergen Vehicle navigation system
US5140436A (en) * 1989-11-02 1992-08-18 Eastman Kodak Company Pre-event/post-event recording in a solid state fast frame recorder
US5196938A (en) * 1989-11-20 1993-03-23 Eastman Kodak Company Solid state fast frame recorder having independently selectable frame rate and exposure
US5140434A (en) * 1990-01-29 1992-08-18 Eastman Kodak Company Record on command recording in a solid state fast frame recorder
US5027104A (en) * 1990-02-21 1991-06-25 Reid Donald J Vehicle security device
EP0446054B1 (en) * 1990-03-09 1997-10-08 Canon Kabushiki Kaisha Signal recording system
JP2920653B2 (en) * 1990-03-15 1999-07-19 アイシン精機株式会社 In-vehicle imaging device
US5111289A (en) * 1990-04-27 1992-05-05 Lucas Gary L Vehicular mounted surveillance and recording system
JPH0715391B2 (en) * 1990-05-09 1995-02-22 矢崎総業株式会社 Digital operation recording device
US5144661A (en) * 1991-02-11 1992-09-01 Robert Shamosh Security protection system and method
US5100095A (en) * 1991-03-01 1992-03-31 Donnelly Corporation Breakaway vehicle accessory mount
DE69219006T2 (en) * 1991-05-21 1997-11-13 Matsushita Electric Ind Co Ltd Vehicle position determining device
US5321753A (en) * 1991-07-08 1994-06-14 The United States Of America As Represented By The United States Department Of Energy Secure communication of static information by electronic means
DE4127395A1 (en) * 1991-08-19 1993-02-25 Siemens Ag METHOD AND DEVICE FOR DETECTING AND LOCATING CHANGES ON A COMPONENT OF A TURBINE
US5178448A (en) * 1991-09-13 1993-01-12 Donnelly Corporation Rearview mirror with lighting assembly
US5327288A (en) * 1991-09-13 1994-07-05 Donnelly Corporation Reduced vibration day/night rearview mirror assembly
US5544060A (en) * 1991-10-16 1996-08-06 Zexel Usa Corporation Vehicle mounted navigation system with preview function
US5654892A (en) * 1991-10-18 1997-08-05 Zexel Usa Corporation Navigation system displaying forthcoming turns
US5435184A (en) * 1991-10-31 1995-07-25 Pineroli; Bruno Device for determining running variables in a motor vehicle
US5223844B1 (en) * 1992-04-17 2000-01-25 Auto Trac Inc Vehicle tracking and security system
US5523811A (en) * 1992-04-17 1996-06-04 Canon Kabushiki Kaisha Camera device for moving body
US5387926A (en) * 1992-06-30 1995-02-07 California Institute Of Technology High speed digital framing camera
JPH0785280B2 (en) * 1992-08-04 1995-09-13 タカタ株式会社 Collision prediction judgment system by neural network
DE69330482T2 (en) * 1992-08-19 2001-12-13 Aisin Aw Co Vehicle navigation system
JPH0674086A (en) * 1992-08-27 1994-03-15 Nippondenso Co Ltd Self-diagnostic device for vehicle
DE4332612C2 (en) * 1992-09-25 1996-02-22 Yazaki Corp Exterior view monitoring method for motor vehicles
KR950008673B1 (en) * 1992-12-05 1995-08-04 삼성전자주식회사 Wordline boosting and the same control circuit of semiconductor intergrated circuit
US5430432A (en) * 1992-12-14 1995-07-04 Camhi; Elie Automotive warning and recording system
US5308247A (en) * 1993-01-21 1994-05-03 Dyrdek Robert D Electrical connector assembly for automobile rearview mirror and light assembly and method of assembling the same
US5330149A (en) * 1993-01-28 1994-07-19 Donnelly Corporation Breakaway accessory mounting for vehicles
US5311197A (en) * 1993-02-01 1994-05-10 Trimble Navigation Limited Event-activated reporting of vehicle location
JP2983407B2 (en) * 1993-03-31 1999-11-29 三菱電機株式会社 Image tracking device
JP2521024B2 (en) * 1993-04-20 1996-07-31 淡路フェリーボート株式会社 Traffic accident data recorder and traffic accident reproduction system
US5559496A (en) * 1993-05-19 1996-09-24 Dubats; William C. Remote patrol system
US5504482A (en) * 1993-06-11 1996-04-02 Rockwell International Corporation Automobile navigation guidance, control and safety system
US5548273A (en) * 1993-06-29 1996-08-20 Competition Components International Pty Ltd Vehicle driving monitor apparatus
DE4322937A1 (en) * 1993-07-09 1995-01-12 Hohe Kg Information device in a motor vehicle
US5495242A (en) * 1993-08-16 1996-02-27 C.A.P.S., Inc. System and method for detection of aural signals
US5422543A (en) * 1993-09-27 1995-06-06 Weinberg; Stanley Flash monitor alarm system
JP3064759B2 (en) * 1993-09-28 2000-07-12 株式会社日立製作所 Apparatus for monitoring surroundings of vehicle, driving support system for vehicle, and driving support apparatus
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
US5515285A (en) * 1993-12-16 1996-05-07 Car Trace, Incorporated System for monitoring vehicles during a crisis situation
JP3522317B2 (en) * 1993-12-27 2004-04-26 富士重工業株式会社 Travel guide device for vehicles
US5430431A (en) * 1994-01-19 1995-07-04 Nelson; Louis J. Vehicle protection system and method
US5537156A (en) * 1994-03-24 1996-07-16 Eastman Kodak Company Frame buffer address generator for the mulitple format display of multiple format source video
US5497419A (en) * 1994-04-19 1996-03-05 Prima Facie, Inc. Method and apparatus for recording sensor data
JP3357749B2 (en) * 1994-07-12 2002-12-16 本田技研工業株式会社 Vehicle road image processing device
BR9403037A (en) * 1994-09-02 1996-09-03 Metagal Ind & Comercio Improvement together with courtesy lighting of internal rear-view mirror
US5659355A (en) * 1994-10-31 1997-08-19 Eastman Kodak Company CCD dark mean level correction circuit employing digital processing and analog subtraction requiring no advance knowledge of dark mean level
US5499182A (en) * 1994-12-07 1996-03-12 Ousborne; Jeffrey Vehicle driver performance monitoring system
US6037977A (en) * 1994-12-23 2000-03-14 Peterson; Roger Vehicle surveillance system incorporating remote video and data input
US5642106A (en) * 1994-12-27 1997-06-24 Siemens Corporate Research, Inc. Visual incremental turn detector
US5539454A (en) * 1995-02-06 1996-07-23 The United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Video event trigger and tracking system using fuzzy comparators
US5717456A (en) * 1995-03-06 1998-02-10 Champion International Corporation System for monitoring a continuous manufacturing process
US5638273A (en) * 1995-03-29 1997-06-10 Remote Control Systems, Inc. Vehicle data storage and analysis system and methods
US5596382A (en) * 1995-04-10 1997-01-21 Terry D. Scharton Impact activated triggering mechanism for a camera mounted anywhere in a vehicle
JPH08286257A (en) * 1995-04-18 1996-11-01 Konica Corp Data recorder for camera
US5669698A (en) * 1995-05-24 1997-09-23 Veldman; Roger L. Modular rearview mirror assembly and method for making same
US5610580A (en) * 1995-08-04 1997-03-11 Lai; Joseph M. Motion detection imaging device and method
US5667176A (en) * 1995-12-04 1997-09-16 Zamarripa; Michael P. Radar detector unit mounting device for attachment to rearview mirror
US5790973A (en) * 1995-12-19 1998-08-04 Prince Corporation Last exit warning system
US5719554A (en) * 1997-02-24 1998-02-17 Gagnon; Richard B. Automobile erratic behavior monitoring apparatus
US6253129B1 (en) * 1997-03-27 2001-06-26 Tripmaster Corporation System for monitoring vehicle efficiency and vehicle and driver performance
US6092193A (en) * 1997-05-29 2000-07-18 Trimble Navigation Limited Authentication of accumulated instrument data
US6064792A (en) * 1997-08-02 2000-05-16 Fox; James Kelly Signal recorder with deferred recording
US6028528A (en) * 1997-10-24 2000-02-22 Mobile-Vision, Inc. Apparatus and methods for managing transfers of video recording media used for surveillance from vehicles
AU4223399A (en) * 1998-06-01 1999-12-20 Robert Jeff Scaman Secure, vehicle mounted, incident recording system
US6011492A (en) * 1998-06-30 2000-01-04 Garesche; Carl E. Vehicle warning system for visual communication of hazardous traffic conditions
JP4287532B2 (en) * 1999-03-01 2009-07-01 矢崎総業株式会社 Vehicle rear side monitoring device
US6185490B1 (en) * 1999-03-15 2001-02-06 Thomas W. Ferguson Vehicle crash data recorder
US6246933B1 (en) * 1999-11-04 2001-06-12 BAGUé ADOLFO VAEZA Traffic accident data recorder and traffic accident reproduction system and method
US6928471B2 (en) * 2001-05-07 2005-08-09 Quest Software, Inc. Method and apparatus for measurement, analysis, and optimization of content delivery
US7100190B2 (en) * 2001-06-05 2006-08-29 Honda Giken Kogyo Kabushiki Kaisha Automobile web cam and communications system incorporating a network of automobile web cams
US7370261B2 (en) * 2005-05-09 2008-05-06 International Business Machines Corporation Convolution-encoded raid with trellis-decode-rebuild
US7382933B2 (en) * 2005-08-24 2008-06-03 International Business Machines Corporation System and method for semantic video segmentation based on joint audiovisual and text analysis

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5050166A (en) * 1987-03-17 1991-09-17 Antonio Cantoni Transfer of messages in a multiplexed system
US20030079041A1 (en) * 2001-06-04 2003-04-24 Nct Group, Inc. System and method for increasing the effective bandwidth of a communications network
US20040243668A1 (en) * 2003-05-30 2004-12-02 Microsoft Corporation Application programming interface for implementing directory service access using directory service markup language

Also Published As

Publication number Publication date
US20080043736A1 (en) 2008-02-21
WO2008021837A3 (en) 2008-11-13

Similar Documents

Publication Publication Date Title
US20080043736A1 (en) Data Transfer System and Method
EP3220572B1 (en) Key management method, vehicle-mounted network system and key management device
EP3219553B1 (en) Update management method, update management device, and control program
CN101194233B (en) System and method of testing wireless component applications
US11848755B2 (en) Anomaly detection device, anomaly detection method, and recording medium
US10298492B2 (en) System and method for interworking between vehicle controller and external resource
EP1726124B1 (en) System and method for remotely monitoring equipment with the aid of at control, device, radiocommunications module and corresponding program
US8589595B2 (en) Communications device and system for implementing a management system remote from devices
CN102970279B (en) Adaptive communication system of automobile electronic device based on serial ports
DK2144460T3 (en) A method, system, packet data gateway, and computer program for providing connection to the supply of data
CN107005453B (en) Method and system for secure two-way communication of industrial devices
CN112422506B (en) Intrusion detection defense method and system based on DoIP protocol
CN110933021B (en) Method and device for anomaly detection in a vehicle
CN103959711A (en) Network traffic management system using monitoring policy and filtering policy, and method thereof
TW201840215A (en) PRIVACY AND SECURITY IN UICC/eSE LOGGING
CN105635241A (en) Method, system and computer-readable recording medium for managing abnormal state of vehicle
WO2007066279A2 (en) Accounting information filtering method and apparatus
EP3078167B1 (en) Method, secure element and system for monitoring controller area network devices
WO2010035137A2 (en) Secure managed data collection and transmission
CN109255260B (en) Beidou police safety terminal processing method
WO2021145116A1 (en) Abnormality detection method, program, and abnormality detection system
CN111865747B (en) EVPN-based two-layer data transmission method, device, equipment and medium
KR101603546B1 (en) Method and apparatus for providing vehicle communication network
CN103377346B (en) attachment management method and system
CN114422625B (en) Data access method and gateway

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07813865

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

122 Ep: pct application non-entry in european phase

Ref document number: 07813865

Country of ref document: EP

Kind code of ref document: A2