1. Field of the Invention
The present invention relates to the field of electronic communication and data processing. More specifically, embodiments of the present invention relate to methods and systems which expand the available ways for two or more portable computer systems to exchange and share information.
2. Related Art
As the components required to build a computer system have reduced in size, new categories of portable electronic devices and computer systems have emerged. One of the new categories is the “palmtop” computer system. A palmtop computer system is a computer that is small enough to be held in the hand of a user and can therefore be “palm-sized.” Most palmtop computer systems are used to implement various Personal Information Management (PIM) applications such as an address book, a daily organizer (calendar, datebook, etc.) and electronic notepads, to name a few. Palmtop computers with PIM software have been known as Personal Digital Assistants (PDAs). Many PDAs have a small and flat display screen associated therewith. Moreover, PDAs and cell phone technology are being integrated together resulting in a single intelligent device that provides wireless communication capability.
User convenience and device value are very important factors for portable electronic devices and systems that may include portable electronic devices. Typically, portable electronic devices are employed while the user is on the run, e.g., in business meetings, on business travel, personal travel, in a vehicle, on foot, etc. Because the user may be occupied or busy while using the portable electronic device, the number of user steps or user tasks required to access information from an electronic device (or to store information into the electronic device) is crucial for producing a commercially successful product. That is, the more difficult it is to access data from an electronic device, the less likely the user will perform those tasks to obtain the information. Likewise, the easier information is to obtain, the more likely the portable electronic device will be used to obtain that information and the more likely the portable electronic device will become a part of the user's everyday activities. Similarly, the more useful the device, the more the device will be used and acquired.
The portability and convenience of palmtops has made it increasingly desirable to increase the number and types of applications that can run on them. It is advantageous to expand the capabilities of a palmtop so that it can provide many of the same, if not the same, services provided by a desktop or laptop computer system, particularly with regard to access to the World Wide Web. As such, information currently available via the Internet using personal computers, such as on-line access to news and financial information, can also be provided via a palmtop. In addition, a palmtop can be used for electronic mail (“e-mail”) and multi-player gaming, and features such as voice recognition can also be added.
It has proven convenient to allow handheld computer systems to share files directly with each other. In the past, some handheld computer systems have been implemented with short range, point-to-point communication ports. One such wireless point-to-point communication mechanism uses infra-red (IR) technology and is called “beaming.” Using IR technology, the sending device and the receiving device are generally placed in close proximity with each other and the IR are oriented such that each is directed toward the other. A point-to-point transaction can then occur. While this communication method has many advantages, it is also disadvantageous because it requires the sender and the receiver to be in close proximity to each other and also because it does not allow other devices to easily share in the transaction. In addition to both devices being in the same proximity, the transaction is conducted in a symmetrical fashion, e.g., both devices must be present, powered on, ready to receive beamed data, etc.
Web or networked sharing has been used for file transactions between two or more devices that are not local. Web or networked sharing involves a server acting as an intermediary between the sender and the receiver. Heretofore, networked sharing among handheld computer systems has proven inconvenient for a number of reasons. In order for a receiving device to locate a file, a host computer system is typically used. The host computer system needs to locate the file, then download the file using a software browser. The file is generally received in a compressed format to decrease the time required for the download. Therefore, the user needs to electronically unpack the file, which requires a second software tool. Then, the user needs to install the unpacked file into a special downloader tool designed for the handheld. The downloader tool, a third software tool, then installs the application on the handheld.
The process for installing an updated application onto a palmtop via the computer system can be somewhat complex. For an occasional user not familiar with the particulars of locating, downloading and decompressing files, or not familiar with the specific hardware and software configurations of his/her palmtop, the task of installing an update may prove to be a difficult challenge. Because of the complexity of the above transaction, and the many different software tools it requires, an impediment exists today for easy networked sharing between handheld devices.
Accordingly, what is needed is a system and method for facilitating networked file sharing between two or more handheld computer systems that reduces or eliminates the impediments described above. What is further needed is a solution that is operable within a wired or a wireless network and which operates with or without a host computer system. It is appreciated that embodiments of the present invention provide the above advantages and others not specifically mentioned above but described in the sections to follow.
Generally, embodiments of the present invention allow for a networked handheld to share a file with another handheld device, irrespective of its current proximity or availability to the handheld initiating the sharing (“the sending handheld”). Sharing occurs by the sharing handheld passing a token to a web server. The token contains information regarding the name of the file to be shared along with the identify of the receiving handheld. The token is a compact record which can be transferred over wireless networks in a much more efficient manner than sending the entire file. A variation of this embodiment allows for a networked handheld to share a file directly, by uploading the file from the handheld along with the token. This would occur if the shared file did not already exist on the web service. The token is then used to update the account information of the receiving handheld in order to cause a download to occur between the server and the receiving handheld when the receiver next synchronizes with the server.
A method and system are described herein for supporting web file sharing transactions via a networked handheld computer system. In a system having a server that automatically detects when new files or information are made available for a networked handheld computer system, a method is described for allowing one handheld computer system to facilitate the transfer of a file to another handheld computer system using the server. On the server, each registered handheld has account information indicating the applications (and versions) that it supports and has currently installed.
In one embodiment, the account information includes an application version record that includes, for each entry, the name of the application, its current version number, an identification of the sending device, and a short description of the application or version. As part of the file sharing transaction, using a token, a sending handheld computer system updates the server-account information of a receiving handheld to indicate that a download is required the next time the receiving handheld is networked with the server. A new file name may be recorded in the account information, or, a new version of an existing file name may be updated. The new application is then automatically downloaded to the receiving handheld during its next synchronization with the server.
In another embodiment, an in-box of the handheld receiving a file from another networked handheld is updated to reflect the availability of a new file. The receiving handheld is alerted through a separately defined mechanism that could include email notification, or other altering mechanism. Subsequently, the file is downloaded according to the rules defined by the user in the policy manager.
Policy directives are available that can restrict which users have authority to send files to the receiving user. In one embodiment, the receiver may grant permission to a specific user. In another embodiment, permission may be granted to an entire group of senders, such as a common work group designation. Alternatively, the receiver may require all downloads to be authorized by a direct user confirmation before the operation can be completed. File downloads can be performed “wired” in the cradle with a host computer system, or wireless directly between the server and the handhelds. The invention may be practiced on wired or wireless networks. The shared file may be any binary information, e.g., an application, data, images, etc.
More specifically, an embodiment of the present invention includes a system comprising: a receiver handheld device; a remote server containing an account reserved for the receiver handheld device which describes a complement of information stored in the receiver handheld device; a sender handheld device for requesting the server to add information to the receiver by modifying the receiver's account (e.g., via a token) to identify an information that resides on the remote server but not on the receiver handheld device; wherein the receiver handheld device is for establishing a connection with the remote server; and wherein the remote server is for automatically determining, from the account, that the information is new to the receiver handheld device and automatically for downloading the information to the receiver handheld device.
Embodiments include the above and wherein the sender and the receiver handheld devices are handheld computer systems and wherein the information is a version of an application program and wherein the remote server is a web based server.
Embodiments include the above and wherein the account comprises an application version record table comprising an entry for each application stored in the receiver handheld device and wherein each entry comprises: an application identifier; a version identifier; and an identifier of the device that created the entry.
Embodiments include the above and wherein the remote server is also for determining if the sender handheld device has authority to download to the receiver handheld device as a precursor to downloading the information to the receiver handheld device.
In the following detailed description of the present invention, a method and system for using tokens to perform file sharing transactions involving a web server and two or more handheld computer systems, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be recognized by one skilled in the art that the present invention may be practiced without these specific details or with equivalents thereof. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.
Some portions of the detailed descriptions which follow (e.g., processes 600 and 700) are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits that can be performed on computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer executed step, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “checking,” “accessing” or “processing” or “computing” or “suspending” or “resuming” or “translating” or “calculating” or “determining” or “scrolling” or “displaying” or “recognizing” or “executing” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The processes and systems of the present invention described herein are applicable to communication between electronic devices which may include computer systems, portable computer systems, cell phones, pagers, etc. Some portable computer systems called personal digital assistants (PDAs) are handheld. Although applicable across a wide variety of platforms and devices, an embodiment of the present invention is described herein by example using an exemplary portable or mobile computer system, e.g., a PDA.
Base station 32 may be both a transmitter and receiver base station, which can be implemented by coupling it into an existing public telephone network 34. Implemented in this manner, base station 32 enables handheld computer system 100 to communicate with a proxy server computer system 36, which is coupled by wire to the existing public telephone network 34. Furthermore, proxy server computer system 36 is coupled to the Internet 52, thereby enabling handheld computer system 100 to communicate with the Internet 52. When communicating with a Web site over Internet 52, protocols such as CTP (Compact Transport Protocol) and CML (Compact Markup Language) can be used by portable computer system 100 in the present embodiment.
It should be appreciated that one of the functions of proxy server 36 is to perform operations over the Internet 52 on behalf of handheld computer system 100. For example, proxy server 36 has a particular Internet address and acts as a proxy device for handheld computer system 100 over the Internet 52.
It should be further appreciated that other embodiments of a communications network, planned or envisioned, may be utilized in accordance with the present invention. For example, a wireless connection may be made from handheld computer system 100 directly to the Internet 52.
The data and information which are communicated between base station 32 and handheld computer system 100 are the same type of information and data that can conventionally be transferred and received over a public telephone wire network system. However, a wireless communication interface is utilized to communicate data and information between handheld computer system 100 and base station 32. It should be appreciated that one embodiment of a wireless communication system in accordance with the present invention is the Mobitex wireless communication system. Alternatively, a wireless GSM network may be employed.
A communication link is also coupled to a cradle 60 (or cable dock) for receiving and initiating communication with an exemplary handheld computer system 100 over line 265. Cradle 60 provides an electrical and mechanical communication interface between the computer system 100 for two way communications. In one embodiment, the communication link including cradle 60 and line 265 is a serial communication link or can be a USB link. Computer system 100 may also contain a wireless infrared communication mechanism 64 for sending and receiving information to or from other devices. As discussed more fully below, computer system 100 also contains one or more other wireless communication mechanisms, e.g., cellular phone, Bluetooth and/or wireless LAN (e.g., IEEE 802.11), for instance, all of which can be used to establish the communication link between the portable computer system 100 and the host computer system or with the Internet directly 66 (as shown in
Also included in computer system 100 of
System 110 also includes an optional cursor control or directing device 107 coupled to the bus for communicating user input information and command selections to the central processor 101. In one implementation, device 107 is a touch screen device (also a digitizer) incorporated with screen 105. Device 107 is capable of registering a position on the screen 105 where the stylus makes contact and the pressure of the contact. The digitizer can be implemented using well known devices, for instance, using the ADS-7846 device by Burr-Brown that provides separate channels for spatial stroke information and pressure information.
The display device 105 utilized with the computer system 100 may be a liquid crystal device, cathode ray tube (CRT), field emission device (FED, also called flat panel CRT) or other display device suitable for creating graphic images and alphanumeric characters recognizable to the user. Any of a number of display technologies can be used, e.g., LCD, FED, plasma, etc., for the flat panel display 105. In one embodiment, the display 105 is a flat panel multi-mode display capable of both monochrome and color display modes.
Signal communication device 108, also coupled to bus 99, can be a serial port (or USB port) for communicating with the cradle 60. In addition to device 108, wireless communication links can be established between the device 100 and a host computer system (or another portable computer system) using a Bluetooth wireless device 360, an infrared device 355, or a GSM radio device 240. Device 100 may also include a wireless modem device 240 and/or a wireless radio, e.g., a GSM wireless radio with supporting chipset. The wireless modem device 240 is coupled to communicate with the processor 101 but may not be directly coupled to port 108. In one implementation, the Mobitex wireless communication system may be used to provide two way communication between system 100 and other networked computers and/or the Internet via a proxy server. In other embodiments, TCP protocol can be used or SMS (Short Message Service) can be used.
Sharing occurs by the sharing handheld 100a passing a token (Token A) to a web server 400a. The token (Token A) contains information regarding the name of the file to be shared along with the identify of the receiving handheld. The token is a compact record which can be transferred over wireless networks in a much more efficient manner than sending the entire file. This would occur if the shared file did not already exist on the web service. The token is then used to update the account information (on the server) of the receiving handheld in order to cause a file download 518 to occur between the server 400a and the receiving handheld 100b when the receiver 100b next synchronizes with the server 400a.
In yet another embodiment, an in-box of the handheld 100b receiving a file from another networked handheld 100a is updated to reflect the availability of a new file. The receiving handheld is alerted through a separately defined mechanism that could include email notification, or other altering mechanism. Subsequently, the receiver may click-on, or otherwise select, the name of the file in the in-box and it will be downloaded according to the rules defined by the user in the policy manager.
The server 410 may be a web server, or any type of remote server that can be accessed by the handheld devices 100a, 100b. In the example of
The server 410 of
The server 410 of
The file download manager 420 also interfaces with a database of individual user account information 430 which is also a part of server 410. Database 430 includes a separate account for each registered handheld. The account is a short list that specifies the current applications, their version numbers and descriptions that are currently installed on the registered handheld. This information is updated on each synchronization procedure. The file download manager 420 interfaces with database 405 and database 430 to determine if updated versions of software, or other information, are available within database 405 for a particular registered handheld. This process is described in co-pending U.S. patent application Ser. No. 09/579,865, filed May 25, 2000, entitled “Automatic Selection and Updating of Software Application Version,” by Flores, McIlroy, and Lemke, assigned to the assignee of the present invention and hereby incorporated by reference.
As discussed more below, an account may also specify an application (or other information) that is to be installed on the registered handheld but is not currently installed therein. Using this technique, a sending handheld 100a can effectively send information to a receiving handheld 100b via the server 410 by merely updating the account information of a receiving handheld 100b. In this case, on the next synchronization process performed by the receiving device 100b, the new information may potentially be downloaded to it. Server 410 also contains a policy manager 425. The policy manager 425 enforces certain restrictions on the scope of allowable devices that may send information, via the server 410, to a particular receiving handheld. Alternatively, the policy manager 425 may also require user confirmation (on the receiving end) to complete transactions.
Importantly, in accordance with the present invention, a sending device 100a may create a new entry in the table 430a of a receiving device in order to transfer information to the receiver 100b. In this case, the sending device's identifier will be placed in the user ID field 510 for the new entry. The application identifier (and version number) of this new entry will indicate an application, or other information, within database 405 that is to be downloaded to device 100b when device 100b next performs a synchronization with the server 410.
More specifically,
In addition, the security definitions include an express permission granted identification 525. Within 525 can be stored identifications of individual devices that have permission to conduct transactions with the receiving device 100b. Permission conflicts between 520 and 525 are generally resolved in favor of the express grants of 525. In the user message 530, user confirmation may be required to complete transactions regardless of the permissions granted in 520 and 525. In this case, a user message or cue may be stored in 530 and will be presented to the user of the receiver handheld 100b in order to allow downloads to complete. Specific user confirmation instructions may also be stored in 530. The user message 530 may indicate the source of the downloaded information.
At step 610, the sender handheld computer registers or otherwise accesses the remote server and attempts to modify the application version record table assigned to the receiver handheld. The sender handheld attempts to modify the table by adding an entry that will identify application X but will have a zero version number. This may occur by the sender sending a short token to the server that identifies the application, its version number and the receiver device. The token will then cause the table to be modified for the receiver by adding the entry described above. This entry will require that the application manager automatically download application X to the receiver handheld on its next synchronization with the server. The entry will also identify the sender handheld device and include a short description of application X.
At step 615, the policy manager on the remote server determines if the sender handheld has the authority to modify the application version record table of the receiver handheld. If so, then at step 630, the new entry is placed into the application version record table of the receiver handheld and process 600 terminates. If authorization is not found, then access to the record table may be outright denied (at 620) to the sender handheld, at which case process 600 terminates. Alternatively, at step 620, user authorization may be required as a default. In this case, the record table is allowed to be modified (step 630) but at step 625 the policy manager is updated such that the user of the receiver device will be required to make a confirmation before the transaction can be completed.
At step 710, the file download manager on the server automatically determines that application X is required to be downloaded to the receiver handheld. This is performed by the file download manager comparing the entries of the application version record table against the applications of the applications repository. If an application having a newer version number is stored in the applications repository (as compared to the entries of the application version record table), then that application is a candidate to be downloaded to the receiver handheld. It is appreciated that step 710 is performed whether synchronization is being performed with a server resident database (
At step 720, the server determines whether or not appropriate authorization exists for the transaction to take place. The server compares the identification of the sender device against the policy manager of the receiver device. If permission is granted to the sender device and no user confirmation is required, then step 730 is entered where the application X is automatically installed onto the receiver device during synchronization. If permission was not established, or if permission was established but user confirmation is required, then step 715 is entered. At step 715, the user of the receiver handheld is given a message requesting confirmation for the download. If confirmation is given, then step 730 is entered, otherwise the download is not completed (step 735).
Accordingly, the transaction described by processes 600 and 700 allows file sharing between two or more handheld devices using a server as an intermediary. The download operation performed by step 630 is performed automatically without any requirements of the user to access special software tools or perform complex software operations. In effect, the download can be performed transparently to the user. The file sharing processes of the present invention are also advantageous because they can be applied to remotely located devices.
Using these security options, different security policies can be maintained between a sender and a receiver. For instance, under a first policy, a receiver (Tom) may give explicit permission to a sender (Joe) that information may be received from him. Joe then transacts by sending a token to the server to send a game to Tom. The game then appears in Tom's synchronization registry and can be downloaded to Tom's handheld on its next synchronization with the server.
Alternatively, under a second policy, no permission may be given ahead of time. In this case, Joe performs a transaction by sending a token to the server to give the game to Tom. The server then prompts Tom, e.g., by any alert mechanism, for acceptance. If accepted, the game then appears in Tom's synchronization registry and can be downloaded to Tom's handheld on its next synchronization with the server.
The preferred embodiment of the present invention, a method and system for using tokens to perform file sharing transactions involving a web server and two or more handheld computer systems, is thus described. While the present invention has been described in particular embodiments, it should be appreciated that the present invention should not be construed as limited by such embodiments, but rather construed according to the below claims.