Claims
- 1. A method of downloading data from a first computing device over a wireless channel to a second computing device, the method comprising the steps of:
a) initializing a data session over the wireless channel between the first computing device and the second computing device; and b) evaluating transmission characteristics of the wireless channel for said data session, including an available bandwidth for data transmissions; and c) determining a packet size to be used for data packets transferring data to the second computing device during said data session; and d) notifying the second computing device of a number of packets (N) to be sent to the second computing device; and e) counting said data packets when they are successfully received at the second computing device during said data session; f) generating a completion signal when all of said number of packets a are received during said data session; and g) re-initializing said data session to start a second data session if said data session is interrupted before said number of packets (N) are received at the second computing device; h) wherein during said second data session only packets that were not originally successfully received are transferred from the first computing device to the second computing device.
- 2. The method of claim 1, wherein during step (c) an optimal packet size is determined for the second computing device by considering computing resources, memory resources and/or power resources available to the second computing device.
- 3. The method of claim 1, further including a step: providing a packet number within a header of each data packet sent to the second computing device.
- 4. The method of claim 1, further including a step: decrypting data contents of said data packets.
- 5. The method of claim 1, further including a step: assembling an application file to be stored on the computing device based on said data packets.
- 6. A method of installing a software application from a server to a wireless client device through a channel, the method comprising the steps of:
a) initializing a data link over the channel between the wireless client device and the server; b) evaluating transmission bandwidth of said data link; c) identifying characteristics of the wireless client device, including computing, memory and power resources available to such device; d) determining an optimal packet size for transferring data to such device based on steps (b) and (c); e) transferring the software application over the data link using said optimal packet size to the wireless client device so that the software application can be installed on such device.
- 7. The method of claim 6, further including a step of: sending a list of available applications that can be installed on the wireless client device.
- 8. The method of claim 7, further including a step of: determining said list of available applications by identifying a capacity of the wireless client device and determining whether what software applications have already been installed at the wireless client device.
- 9. The method of claim 6, further including a step of: encrypting data for the software application before step (e).
- 10. The method of claim 6, wherein the software application consists of N separate optimally sized packets, and if an interruption occurs during step (e) after K packets have been sent (where K<N), said transferring step (e) is re-initiated at a later time at which point a remaining number of packets (N-K) are transferred.
- 11. A method of providing an alert message to a user of a wireless client device through a channel, the method comprising the steps of:
a) receiving an alert message at a server, said alert message including any or all of the following: (1) a message for a user of the wireless client device; (2) a command to be executed by the wireless client device; (3) data to be used by the wireless device while executing said command; wherein said alert message is associated with a particular type of wireless client device and/or a particular type of user of a particular wireless client device; b) processing said alert message at said server for propagation to one or more of said particular type of wireless client devices, said processing including formatting said alert message so that it can be displayed and/or executed if necessary on said particular type of wireless client device; and c) transmitting said alert message to said particular type of wireless client device in response to a request for a data transmission through the channel from such particular type of wireless client device.
- 12. The method of claim 11, wherein said alert message includes a priority value, such that users of said particular type of wireless client device can control whether or not to receive such alert messages by specifying a threshold value which said priority value must exceed.
- 13. The method of claim 11, wherein said alert message is only sent to said particular type of user if a subscription option has been selected by said particular type of user.
- 14. The method of claim 11, wherein said alert message is generated by a vendor of a software application executing on the particular wireless client device.
- 15. The method of claim 14, wherein said alert message refers to a software update, and/or a virus alert.
- 16. A method of uploading a software application to a server for distribution to a wireless client device, the method comprising the steps of:
a) processing the software application to generate a device-specific version of the software application, said device-specific version of the software application being customized for a particular mobile client device; b) initiating an upload session over the Internet between a first computer storing the device-specific version of software application and the server using a web-based interface; c) transmitting device identification information from said first computer to the server to identify a class of mobile client devices suitable for receiving the device specific version of the software application; d) transmitting device state information from said first computer to the server to identify computing resources and/or memory resources required by said class of mobile client devices to implement said device specific version of the software application.
- 17. The method of claim 16, further including a step of: transmitting encryption selection information to the server, which encryption selection information identifies an encryption module to be used with said device-specific version of the software application.
- 18. The method of claim 17, wherein said device state information further includes information identifying display settings to be used on said class of mobile client devices.
- 19. The method of claim 16, wherein a secure file transfer protocol session is set up between the first computer and the server when said first computer has a preferred subscriber relationship with the server.
- 20. The method of claim 16, further including a step: verifying that said device-specific version of the software is authentic at the server before distributing such software to any mobile client device.
- 21. A mobile computing device configured for executing a software application installation routine comprising:
a first communication software module adapted for receiving data packets over a wireless channel to a remote server; and a second software application listing module for identifying a software application available for download from said remote server and for making a request to said remote server for said software application; and a third packet handling software module adapted for:
a) configuring computing and memory resources of the mobile computing device to accommodate data packets associated with said software application; and b) processing said data packets associated with said software application as they are received over the wireless channel; and c) determining if all data packets associated with said software application have been received; and d) installing the software application on the mobile computing device when all of said data packets for said software application are received.
- 22. The mobile computing device of claim 21, wherein said third packet handling software is further adapted to re-initialize communications with said remote server if an interruption occurs before all of said data packets associated with said software application are received.
- 23. The mobile computing device of claim 22, wherein said third packet handling software module maintains a count for said data packets associated with said software application, and reads a packet number contained in a header for each of such data packets during step (c).
- 24. The mobile computing device of claim 21, further including a decryption software module for decrypting data packets after they are received.
- 25. The mobile computing device of claim 21, further including an alarm software module for processing an alarm message sent to the mobile computing device, and for effectuating any control operations contained in said alarm message using at least some control data embedded in said alarm message.
- 26. The mobile computing device of claim 21, further including a device state software module for determining resource information for the mobile computing device, including at least an operating system used by the mobile computing device, available computing resources, available memory resources, and available power resources, which resource information is communicated to said remote server.
- 27. The mobile computing device of claim 26, wherein said device state software module further determines I/O resources, including display and user input capability available on mobile computing device, and any peripheral devices connected to the mobile computing device.
- 28. The mobile computing device of claim 27, wherein said device state software module further determines a bandwidth used during a prior data session with said remote server, and any other application software installed on the mobile computing device.
- 29. The mobile computing device of claim 21, further including a command execution software module for carrying out commands native to the mobile computing device, including execution of one or more of said first communication software module, said second software application listing module, and/or said third packet handling software module.
- 30. The mobile computing device of claim 21, further including a data handling module for converting received data in said data packets into a native format for the mobile computing device, and for saving said received data in a database for application software available for execution on the mobile computing device.
- 31. The mobile computing device of claim 21, further including a graphical user interface (GUI) module for presenting commands, options, and messages to a display of the mobile computing device.
- 32. The mobile computing device of claim 26, wherein said data packets use a packet size that is determined based on said resource information.
- 33. The mobile computing device of claim 21 wherein said mobile computing device includes:
a) processing means for executing said first communication software module, said second software application listing module, said third packet handling software module; b) a wireless transceiver for communicating over said wireless channel under control of said first communication software module; c) memory means for storing said data packets in cooperation with said processing means and said third packet handling software module; d) a user interface for displaying said a list of software applications available for download from said remote server under control of said second software application listing module; e) input means for receiving input data from a user concerning a selection for said list of software applications; f) an operating system, which operating system coordinates said first communication software module, said second software application listing module, said third packet handling software module, as well as other operations involving said input means, said user interface, said processing means, said wireless transceiver and said memory means to effectuate said software application installation routine.
- 34. A packet processing system for communicating data from a first computing device to a second computing device over a wireless channel comprising:
a) a communications transceiver for transmitting and receiving data packets associated with a data session over the wireless channel; and b) a data session initialization routine executing on the packet processing system, said data session initialization routine being adapted for setting up a data link over the wireless channel to communicate a data file between the first computing device and the second computing device; and c) wherein said data session initialization routine receives device resource information concerning the second computing device; d) further wherein said data session initialization routine determines an approximate bandwidth available for said data session over the wireless channel; and e) a packet transfer routine for formatting said data file into a sequence of N separate data packets, said packet transfer routine using a packet size based on said device resource information and said approximate bandwidth.
- 35. The packet processing system of claim 34, wherein each of said packets have a format that includes: (1) a packet header; (2) a packet data field; (3) at least one packet data boundary field identifying a start and/or end of data in said packet data field.
- 36. The packet processing system of claim 35, wherein said packet header includes: (a) a packet id; (b) a packet number; (c) a data file ID associated with said data file.
- 37. The packet processing system of claim 36, wherein at least one of said packet headers further includes (d) a total number of packets for said data session; (e) a type of encryption used for said data session; (f) a packet type for said packet.
- 38. The packet processing system of claim 34, wherein said approximate bandwidth is determined by a time measurement generated from setting a timer on the second computing device and measuring a time required for receiving a first reference file from the first computing device.
- 39. The packet processing system of claim 38, wherein said time measurement is repeated at least one more time for a second reference file.
- 40. The packet processing system of claim 38, wherein a second timer is used on the first computing device to determine a latency of such first computing device compared to a latency of the wireless channel.
- 41. A computing system configured as a wireless internet server and comprising:
a) a communications routine for transmitting and receiving data packets associated with a data session with a client computing device over the wireless channel; and b) a data session initialization routine for setting up a data ink over the wireless channel to transfer a data file to said client computing device; and c) a device recognition routine for identifying a device ID associated with said client computing device; and d) wherein said device ID is used by the computing system with a lookup table to determine appropriate transmission parameters to be used for said data session based on device characteristics for said client computing device; e) a packet transfer routine for formatting said data file into a sequence of data packets for transmission by said communications routine, said packet transfer routine using said appropriate transmission parameters to determine a nominal packet format to be used for said data session; and f) wherein said data file includes one of the following: (1) a software application executable on said client computing device; and/or (2) an alarm message intended for a user of the client computing device.
- 42. The computing system of claim 41, wherein said packet transfer routine further uses a measurement of an approximate bandwidth available for said data sessions to determine said packet format, including a data packet size.
- 43. The computing system of claim 41, further including an update routine for tracking downloads made to said client-computing device.
- 44. The computing system of claim 41, wherein said device characteristics are stored in a database on the computing system and include: (1) a device type; (2) computing resources available with said client computing device; (3) memory resources available with said client computing device.
- 45. The computing system of claim 44, wherein said database further includes device characteristics including: battery resources for said client computing device.
- 46. The computing system of claim 44, wherein said database further includes device characteristics including: prior bandwidth used by downloads by said client computing device.
- 47. The computing system of claim 44, wherein said database further includes device characteristics including: prior software applications and/or alarms propagaged to said client computing device.
- 48. The computing system of claim 44, further including an interface module for receiving software applicants and/or alarm messages from a remote server for distribution to said client computing device.
- 49. The computing system of claim 44, further including an accounting module for providing a report concerning a number of downloads made by the computing system of a particular software application.
- 50. The computing system of claim 49 wherein said accounting module provides a report on an identity of providers of said data files.
- 51. The computing system of claim 50 wherein said accounting module provides a report on users who have made a download of a specific software application.
- 52. The computing system of claim 44 further including a fault recovery module for creating companion computing systems to service said data session in the event of failure of the computing system.
- 53. A system for distributing data over a wireless channel comprising:
a) a client device for initiating a data session and providing a request for a data file; and b) a server device for responding to said request for said data file, and setting up a data link over the wireless channel to said client device; and c) a packet transmission system coupled to said server device, for formatting said data file into data packets, said data packets having a format derived from analyzing device characteristics of said client device and transmission characteristics of the wireless channel; and d) a packet receive system coupled to said client device for unpacking said data packets into a format suitable for use on said client device, said packet receive system being further configured for re-initiating a separate data session in the event said data file is not completely received.
- 54. The system of claim 54, wherein said packet receive system causes only data packets that were not received during said data session to be transferred during said separate data session.
- 55. The system of claim 54, wherein said device characteristics include a processor, a memory, and a power source associated with said client device.
- 56. The system of claim 54, wherein said data file includes both software applications and/or an alarm message for said client device.
- 57. The system of claim 54, wherein said client device includes a routine for identifying software applications available for download from said server device.
- 58. The system of claim 54, wherein said server device stores device specific information for each client device that can access said server device, including device IDs and prior downloads made to such devices.
- 59. The system of claim 54, further including an interface routine for receiving uploads of software applications and alarm messages.
- 60. The system of claim 54, wherein an available bandwidth in the data channel is determined prior to said data session.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional No. 60/344,727 filed Dec. 24, 2001, and which is incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60344727 |
Dec 2001 |
US |