Data transfer mechanism for handheld devices over a wireless communication link
First Claim
1. A system for transferring data over a network via a wireless communications link comprising:
- means for establishing a wireless communications link between a sender and a receiver;
means for breaking an electronic file into a plurality of virtual blocks;
means for creating a virtual datapool comprised of the plurality of virtual blocks;
means for determining the priority of at least one of the virtual blocks comprising the virtual datapool;
means for converting the plurality of virtual blocks into a plurality of transportation packets; and
means for controlling the transfer of the plurality of transportation packets between the sender and the receiver over the network;
further comprising at least one of;
means for communicating with an application program residing on the sender;
or means for communicating with an operating system residing on the sender;
or means for communicating with an application program residing on the receiver;
or means for communicating with an operating system residing on the receiver.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for transferring data between a handheld device and a network over a wireless communications link. A datapool manager breaks files into virtual blocks and adds the virtual blocks to a datapool. A communications manager converts the virtual blocks into transportation packets and controls the transfer of the transportation packets between the handheld device and the network. After a transportation packet is transferred, an acknowledgment is returned indicating that the transfer was successful. If the transfer of a file is interrupted, then, upon reestablishing the wireless link, only those transportation packets for which an acknowledgment has not been returned are transferred. To properly reconstruct the file, a pointer indicates the location of each transportation packet in the file. Furthermore, to enable the use of a partially transferred file, a table of information is maintained indicating the validity of the partially transferred file. Transportation packets are identified as instruction packets or data packets. When determining the order of transfer, priority is placed on the transfer of instruction packets.
-
Citations
28 Claims
-
1. A system for transferring data over a network via a wireless communications link comprising:
-
means for establishing a wireless communications link between a sender and a receiver;
means for breaking an electronic file into a plurality of virtual blocks;
means for creating a virtual datapool comprised of the plurality of virtual blocks;
means for determining the priority of at least one of the virtual blocks comprising the virtual datapool;
means for converting the plurality of virtual blocks into a plurality of transportation packets; and
means for controlling the transfer of the plurality of transportation packets between the sender and the receiver over the network;
further comprising at least one of;
means for communicating with an application program residing on the sender;
ormeans for communicating with an operating system residing on the sender;
ormeans for communicating with an application program residing on the receiver;
ormeans for communicating with an operating system residing on the receiver. - View Dependent Claims (2, 3)
-
-
4. A system for transferring data over a network via a wireless communications link comprising:
-
means for establishing a wireless communications link between a sender and a receiver;
means for breaking an electronic file into a plurality of virtual blocks;
means for creating a virtual datapool comprised of the plurality of virtual blocks;
means for determining the priority of at least one of the virtual blocks comprising the virtual datapool;
means for converting the plurality of virtual blocks into a plurality of transportation packets; and
means for controlling the transfer of the plurality of transportation packets between the sender and the receiver over the network;
further comprising means for avoiding data duplication and for buffering on the receiver.- View Dependent Claims (5)
-
-
6. A system for transferring data over a network via a wireless communications link comprising:
-
means for establishing a wireless communications link between a sender and a receiver;
means for breaking an electronic file into a plurality of virtual blocks;
means for creating a virtual datapool comprised of the plurality of virtual blocks;
means for determining the priority of at least one of the virtual blocks comprising the virtual datapool;
means for converting the plurality of virtual blocks into a plurality of transportation packets; and
means for controlling the transfer of the plurality of transportation packets between the sender and the receiver over the network;
wherein each of the plurality of virtual blocks comprises;
means for indicating a location of each of the plurality of virtual blocks in the electronic file;
means for indicating whether each of the plurality of virtual blocks is a virtual data block or a virtual instruction block;
means for identifying the electronic file associated with each virtual block; and
means for locating each of the plurality of virtual blocks within the electronic file.
-
-
7. A system for transferring data over a network via a wireless communications link comprising:
-
means for establishing a wireless communications link between a sender and a receiver;
means for breaking an electronic file into a plurality of virtual blocks;
means for creating a virtual datapool comprised of the plurality of virtual blocks;
means for determining the priority of at least one of the virtual blocks comprising the virtual datapool;
means for converting the plurality of virtual blocks into a plurality of transportation packets; and
means for controlling the transfer of the plurality of transportation packets between the sender and the receiver over the network;
wherein the controlling means indicates which of the plurality of transportation packets are in transit between the sender and the receiver.- View Dependent Claims (8, 9, 10)
means for identifying the electronic file associated with each of the data transportation packets;
means for indicating a size of the electronic file associated with each respective transportation packet;
means for indicating a location of each of the plurality of transportation packets within the electronic file; and
a data field.
-
-
11. A method for transferring data between a handheld device and a network over a wireless communication link comprising the steps of:
-
establishing a communications link between a client and a server;
breaking an electronic file into a plurality of virtual blocks;
creating a virtual datapool comprised of the plurality of virtual blocks;
determining the priority of at least one of the plurality of virtual data blocks;
converting the plurality of data blocks into a plurality of transportation packets; and
controlling the transfer of the plurality of transportation packets between the sender and the receiver;
further comprising at least one of the step of;
communicating with an application program residing on the sender;
orcommunicating with an operating system residing on the sender;
orcommunicating with an application program residing on the receiver;
orcommunicating with an operating system residing on the receiver. - View Dependent Claims (12, 13, 14, 15, 16)
a field for indicating the electronic file associated with the data transportation packets;
a field for indicating a size of the electronic file associated with each respective data transportation packet;
a field for providing a location of transportation packets within its associated electronic file; and
a data field.
-
-
16. The method as recited in claim 11, wherein the system transmits files and instruction commands to the application program.
-
17. A method for transferring data between a handheld device and a network over a wireless communication link comprising the steps of:
-
establishing a communications link between a client and a server;
breaking an electronic file into a plurality of virtual blocks;
creating a virtual datapool comprised of the plurality of virtual blocks;
determining the priority of at least one of the plurality of virtual data blocks;
converting the plurality of data blocks into a plurality of transportation packets; and
controlling the transfer of the plurality of transportation packets between the sender and the receiver;
further comprising the step of buffering transportation packets on the receiver. - View Dependent Claims (18)
-
-
19. A method for transferring data between a handheld device and a network over a wireless communication link comprising the steps of:
-
establishing a communications link between a client and a server;
breaking an electronic file into a plurality of virtual blocks;
creating a virtual datapool comprised of the plurality of virtual blocks;
determining the priority of at least one of the plurality of virtual data blocks;
converting the plurality of data blocks into a plurality of transportation packets; and
controlling the transfer of the plurality of transportation packets between the sender and the receiver;
wherein each of the plurality of virtual blocks comprises;
a field for indicating a location of each of the plurality of virtual blocks in the electronic file;
a field for indicating whether each of the plurality of virtual blocks is a virtual data block or a virtual instruction block;
a field for identifying the electronic file associated with each virtual bock; and
a field for locating each of the plurality of virtual blocks within the electronic file.
-
-
20. A method for transferring data between a handheld device and a network over a wireless communication link comprising the steps of:
-
establishing a communications link between a client and a server;
breaking an electronic file into a plurality of virtual blocks;
creating a virtual datapool comprised of the plurality of virtual blocks;
determining the priority of at least one of the plurality of virtual data blocks;
converting the plurality of data blocks into a plurality of transportation packets; and
controlling the transfer of the plurality of transportation packets between the sender and the receiver;
wherein the controlling step provides an indication of which of the plurality of transportation packets are in transit between the sender and the receiver.
-
-
21. A computer program product comprising a computer usable medium having computer readable program code embodied in the medium for transmitting data over a network via a wireless communication link, the computer program product having:
-
first computer program code for establishing a wireless communications link between a sender and a receiver;
second computer program code for breaking an electronic file into a plurality of virtual blocks;
third computer program code for creating a virtual datapool comprised of the plurality of virtual blocks;
fourth computer program code for determining the priority of at least one of the virtual blocks comprising the virtual datapool;
fifth computer program code for converting the plurality of virtual blocks into a plurality of transportation packets; and
sixth computer program code for controlling the transfer of the plurality of transportation packets between the sender and the receiver via the network. - View Dependent Claims (22, 23, 24, 25, 26)
indicating a location of each of the plurality of virtual blocks within the electronic file;
indicating whether each of the plurality of virtual blocks is a virtual data block or a virtual instruction block;
identifying the electronic file associated with each virtual block; and
indicating a location of each virtual block within its associated electronic file.
-
-
25. The computer program product as recited in claim 23, further comprising fourteenth computer program code for recording a number of consecutive blocks that have been received with respect to a first part of the electronic file.
-
26. The computer program product as recited in claim 23, further comprising fifteenth computer program code for:
-
identifying the electronic file associated with each of the data transportation packets;
indicating a size of the electronic file;
providing a location of each of the plurality of transportation packets with respect to a beginning of their respective electronic file; and
a data field.
-
-
27. A computer program product comprising a computer usable medium having computer readable program code embodied in the medium for transmitting data over a network via a wireless communication link, the computer program product having:
-
first computer program code for establishing a wireless communications link between a sender and a receiver;
second computer program code for breaking an electronic file into a plurality of virtual blocks;
third computer program code for creating a virtual datapool comprised of the plurality of virtual blocks;
fourth computer program code for determining the priority of at least one of the virtual blocks comprising the virtual datapool;
fifth computer program code for converting the plurality of virtual blocks into a plurality of transportation packets; and
sixth computer program code for controlling the transfer of the plurality of transportation packets between the sender and the receiver via the network;
further comprising at least one of;
seventh compute program code for communicating with an application program residing on the sender;
oreighth computer program code for communicating with an operating system residing on the sender;
orninth computer program code for communicating with an application program residing on the receiver;
ortenth computer program code for communicating with an operating system residing on the receiver.
-
-
28. A system for transferring data over a network via a wireless communications link comprising:
-
means for establishing a wireless communications link between a sender and a receiver;
means for breaking an electronic file into a plurality of virtual blocks;
means for creating a virtual datapool comprised of the plurality of virtual blocks;
means for determining the priority of at least one of the virtual blocks comprising the virtual datapool;
means for converting the plurality of virtual blocks into a plurality of transportation packets; and
means for controlling the transfer of the plurality of transportation packets between the sender and the receiver over the network; and
an application, wherein (1) when an application requests for a file transfer, the system logically chops the file into blocks; and
/or (2) an API is provided for the application to specify the portions of the file that have been modified and only those bocks in which there has been a modification are added to the virtual datapool, and only the modified portions of the file are transmitted.
-
Specification