US20090204721A1 - System and method for copying data onto an expandable memory in a wireless device using a desktop interface - Google Patents
System and method for copying data onto an expandable memory in a wireless device using a desktop interface Download PDFInfo
- Publication number
- US20090204721A1 US20090204721A1 US12/069,884 US6988408A US2009204721A1 US 20090204721 A1 US20090204721 A1 US 20090204721A1 US 6988408 A US6988408 A US 6988408A US 2009204721 A1 US2009204721 A1 US 2009204721A1
- Authority
- US
- United States
- Prior art keywords
- application
- files
- desktop
- wireless device
- over
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W99/00—Subject matter not provided for in other groups of this subclass
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/26—Devices for calling a subscriber
- H04M1/27—Devices whereby a plurality of signals may be stored simultaneously
- H04M1/274—Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc
- H04M1/2745—Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc using static electronic memories, e.g. chips
- H04M1/2753—Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc using static electronic memories, e.g. chips providing data content
- H04M1/2757—Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc using static electronic memories, e.g. chips providing data content by data transmission, e.g. downloading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2250/00—Details of telephonic subscriber devices
- H04M2250/64—Details of telephonic subscriber devices file transfer between terminals
Definitions
- This invention relates generally to the field of data processing systems over wireless networks. More particularly, the invention relates to a system and method for synchronizing data stored on an expandable memory in a wireless device using a desktop interface application.
- wireless devices have become an increasingly important part of everyday life. Wireless devices have become popular due to their portability, convenience, and ease of use. Today, wireless devices are used for a myriad of different applications including telephony, email, personal digital assistants (PDAs) as well as a variety of other functions and services.
- PDAs personal digital assistants
- Integrated circuit technology has allowed for the miniaturization of circuits into smaller and smaller form factors, which has enabled additional functionality to be made available on wireless devices. Additionally, decreasing memory sizes have permitted wireless devices to store larger amounts of information. As a result, wireless networks are rapidly expanding bandwidth and services to accommodate this increase in wireless information and functionality.
- Wireless devices today are capable of sending and receiving electronic messages as well as performing other personal information management (PIM) functions.
- PIM personal information management
- many wireless services allow the storage of user-specific information on a user's wireless device such as calendar, contacts, etc.
- wireless devices are now being used for taking and storing pictures, listening to audio files, and watching video files.
- the increase in functionality has lead to larger file sizes.
- One limitation of current wireless networks; however, is that wireless networks have limited bandwidth and, since file sizes are becoming larger, it has become increasingly important to manage transmission of information over wireless networks.
- Wireless networks can send and receive information at a much lower rate than most wired networks today.
- This limited bandwidth of wireless networks is due primarily to the range in which wireless devices are operated. Users of wireless devices may be remote to the supporting wireless service, and, depending on the service, the coverage area may be limited in some areas. Because of this, many functions desired by wireless users may require too much bandwidth for practical use. For example, sending and receiving pictures stored on a wireless device may take up to 500 kilobytes (kb) or more of network bandwidth. On many of today's networks, such a bandwidth limitation leads to excessively long download times. This situation becomes even worse for sending and receiving larger files over the wireless network such as audio and video files. Accordingly, what is needed is a method to send and receive large files over a wireless network over time with limited user involvement.
- a method and apparatus implemented over a wireless network is described for copying files stored on an expandable memory of a wireless device onto an application running on a computer desktop where files are automatically transmitted over a data network whenever they are copied into the desktop application.
- the files are then transmitted to a wireless service where they are transmitted wirelessly, over time, to the wireless device for downloading.
- FIG. 1 illustrates a wireless service communicating with a wireless data processing device according to one embodiment of the invention.
- FIG. 2 illustrates a wireless data processing network which may be utilized in one embodiment of the invention.
- FIGS. 3 a - b illustrates a wireless service communicating with both a desktop interface and a wireless device according to one embodiment of the invention.
- FIG. 4 illustrates a method of wirelessly copying files from an application on a user's computer desktop onto an expandable memory in a wireless device according to one embodiment of the invention.
- FIGS. 5-8 illustrate embodiments of a user interface according to one embodiment of the invention.
- FIG. 9 illustrates a method of copying files from an application on a user's computer desktop with an expandable memory in a wireless device according to one embodiment of the invention.
- Coupled may mean that two or more elements are in direct physical or electrical contact. However, “coupled” may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
- the present invention also relates to apparatus for performing the operations herein.
- This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
- a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
- Embodiments of the invention may be implemented on a wireless device 10 which communicates with a data processing service 100 as illustrated generally in FIG. 1 .
- a service 100 and data processing device 110 are described in U.S. Pat. No. 6,721,804 entitled N ETWORK P ORTAL S YSTEM , A PPARATUS AND M ETHOD , Ser. No. 09/714,897, filed Nov. 15, 2000, which is assigned to the assignee of the present application and which is incorporated herein by reference.
- Certain features of the service 100 and an exemplary data processing device 110 will now be described followed by a detailed description of a system and method for copying data onto an expandable memory card in a wireless device over a wireless network using a desktop interface application.
- the service 100 converts standard applications and data into a format which each data processing device 110 can properly interpret.
- the service 110 includes content conversion logic 120 for processing requests for Internet content 140 .
- service 100 acts as a proxy for the data processing device 110 , forwarding Internet requests 140 and 141 to the appropriate Internet site 130 on behalf of the data processing device 110 , receiving responses from the Internet site 130 in a standard Internet format (e.g., web pages with embedded audio/video and graphical content, e-mail messages with attachments, . . . etc), and converting the standard Internet responses 124 into a format which the data processing device 110 can process (e.g., bytecodes as described in the co-pending applications).
- a standard Internet format e.g., web pages with embedded audio/video and graphical content, e-mail messages with attachments, . . . etc
- the conversion logic 120 may include a hypertext markup language (“HTML”) rendering module (not shown) for interpreting HTML code and downloading any embedded content in the HTML code (e.g., graphics, video, sound . . . etc) to the service 100 .
- the conversion logic 120 may then combine the HTML code and embedded content and generate a set of bytecodes for accurately reproducing the requested content on the data processing device 110 .
- the bytecodes may be Java bytecodes/applets.
- the conversion logic 120 may generate various other types of interpreted and/or non-interpreted code, depending on the particular type of data processing device 110 being used (e.g., one with an interpreter module or one without).
- one embodiment of the service 100 maintains an intimate knowledge of the capabilities/configuration of each data processing device 110 (e.g., screen size, graphics/audio capabilities, available memory, processing power, user preferences, . . . etc) it can reconstruct the requested Internet content accurately for the particular device characteristic, while at the same time minimizing the bandwidth required to transmit the content to the device 110 .
- the conversion logic 120 may perform pre-scaling and color depth adjustments to the requested content so that it will be rendered properly within the data processing device's 110 's display. In making these calculations, the conversion may factor in the memory and processing power available on the data processing device 110 .
- the conversion logic 120 may compress the requested content using a variety of compression techniques, and thereby preserve network bandwidth.
- the data processing network includes wireless data processing device 110 , wireless network 220 , service 100 , data network 230 and a user's personal computer (PC).
- Data network 230 can be any network amenable to sending and receiving packetized information and may include a set of one or more Application Programming Interfaces (APIs) which are a set of routines, protocols and tools that define how service 100 is invoked through a software application such as a Java applet (not shown).
- APIs Application Programming Interfaces
- Wireless device 110 sends and receives messages, files and other content to and from service 100 through wireless network 220 .
- Wireless device 110 includes interface 200 which provides a conduit between wireless network 220 and the functionality operable on wireless device 110 .
- Wireless device 110 may include a variety of functions.
- FIG. 2 illustrates wireless device 110 comprising the following functionality: email 202 , instant messaging 204 , calendar 206 , address book 208 , and telephony 210 .
- the present invention is not so limited and includes other functionality known in the art such as taking pictures, listening to audio files, watching video files and etc.
- Service 100 includes electronic circuitry (not shown) that communicates over wireless network 220 . Additionally, service 100 includes circuitry (not shown) to communicate over data network 230 to the user's PC. For example, wireless device 110 sends and receives messages, calls, and synchronization updates to wireless service 100 over wireless network 220 .
- Wireless service 100 transmits this information over data network 230 to the user's PC.
- This process also works in reverse where information passed from the user's PC to the service over data network 230 is sent to wireless device 110 over wireless network 220 . Details of this mechanism are further discussed below.
- System 300 includes computer desktop 301 , data network 304 , service 305 , wireless network 309 , and wireless device 310 .
- service 305 communicates with both desktop interface module 302 running on the user's desktop 301 and with the user's wireless device 310 .
- Service 305 includes dispatcher 306 , file proxy 307 , and user database 308 according to one embodiment of the invention.
- Wireless device 310 includes wireless transceiver 311 , file daemon module 312 , and expandable memory card 315 coupled to wireless device 310 through expandable memory interface 313 .
- Computer desktop 301 includes desktop interface module 302 and Java applet module 303 .
- Desktop interface 302 is a web page running on desktop 301 .
- desktop interface 302 provides a view onto user database 308 of service 305 .
- user-specific information and other metadata is stored in user database 308 at service 305 , and may include such information as calendar, contacts, etc. This information is synchronized with desktop interface 302 so that a user may view the information contained in database 308 using desktop interface 302 .
- desktop interface 302 may require a username and password to access service 305 over data network 304 .
- information is stored in different locations in wireless device 310 .
- One memory location is in volatile memory built into the device itself (not shown). This memory, like other volatile memories may have faster access times, but any information stored therein will be lost whenever power to the device is shut off.
- Another memory location is a non-volatile memory such as Flash memory built into the wireless device 310 .
- the contents of the built-in device memories are synchronized with service 305 . Information stored in the device memories, therefore, will always be available on the service 305 and may be accessed via another computing device such as a desktop computer 301 .
- Expandable memory card 315 Another memory location where information is stored on device 310 is on the expandable memory card 315 inserted into device 305 via expandable memory interface 313 .
- information stored in expandable memory card 315 is not synchronized with the desktop interface 302 .
- Expandable memory card 315 may be any type of expandable memory known in the art including Secure Digital (SD) cards, microSD cards, ISK3, etc. Information stored in expandable memory card 315 is stored in non-volatile memory which is not lost whenever the device is powered down.
- SD Secure Digital
- the desktop interface 302 includes a Java applet 303 through which data may be copied onto expandable memory card 315 .
- Java applet 303 in one embodiment, is an application running inside desktop interface 302 on desktop 301 , and provides a folder view of files and other data stored on expandable memory card 315 inserted in wireless device 310 .
- the invention is not so limited and may include any application running on user's desktop 301 which may or may not be embedded within desktop interface 302 .
- Java applet 303 may be implemented as a stand-alone Java application.
- Java applet 303 is not limited to Java program code and may be any application amenable to running on desktop 301 .
- Java applet 303 files may be copied onto expandable memory card 315 and/or onto the built-in non-volatile memory (not shown).
- Java applet 303 includes a folder view of the data stored on expandable memory card 315 .
- One embodiment of the folder view is illustrated in FIGS. 5-8 .
- the folder view provides a window in which to copy files that the user desires to have loaded onto expandable memory card 315 and/or the built-in non-volatile memory).
- Any type of files may be copied into the folder view of Java applet module 303 including data, PDF, pictures, music, video files, etc.
- files may be copied into Java applet 303 by dragging and dropping file identifiers using a screen pointer control device such as a mouse (not shown) from a location on desktop 301 into the folder view of Java applet 303 .
- the file identifiers may include icons, filenames, or other identifiers known in the art.
- the file identifiers may be stored in one or more other folders located on desktop 301 . Once a file identifier corresponding to a file located on the user's desktop is copied into the folder view of Java applet 303 running on desktop 301 (or within desktop interface 301 running on desktop 301 ) it is automatically transmitted over data network 230 to service 100 .
- the desktop interface module 302 is linked to the service 100 through an adapter-based Web services interface such as the one described in the co-pending U.S. application entitled SYSTEM AND METHOD FOR MANAGING WEB SERVICES DATA AND PRESENCE DATA RELATED TO A PLURALITY OF USERS, Ser. No. ______, Filed ______, which is assigned to the assignee of the present application and which is incorporated herein by reference.
- the desktop interface module 302 and Java applet 303 communicate with the service through a desktop interface adapter 352 .
- FIG. 3 b also illustrates one embodiment of the Web Service integration proxy 207 employed within the service 100 .
- the Web Service integration proxy 357 includes a “local” Web Services proxy 351 (i.e., “local” in this sense that it runs on the service 100 ), a plurality of Web Services adapters 352 - 355 communicably connected to the Web Services proxy 351 , and an authentication proxy 356 for performing the authentication operations described herein.
- a “local” Web Services proxy 351 i.e., “local” in this sense that it runs on the service 100
- a plurality of Web Services adapters 352 - 355 communicably connected to the Web Services proxy 351
- an authentication proxy 356 for performing the authentication operations described herein.
- SOAP Simple Object Access Protocol
- HTTP Hypertext Transport Protocol
- XML/RPC Real-Representational State Transfer
- a separate Web Services adapter 352 - 355 is used to communicate with Web Services proxies and client-based Web services programs (e.g., desktop interface 302 ) using the formats require by those proxies/programs.
- one embodiment of the invention includes a “global” or “default” Web Services adapter 355 for communicating with web services using standardized (i.e., non-proprietary) Web Services communication formats.
- the Web Services adapters 352 - 355 are “plugged in” to the Web Services Proxy 351 through an API exposed by the Web Services Proxy 351 .
- Each of the Web Services adapters 352 - 355 exchange data and program code with the Web Services Proxy Web Services proxy via this API.
- each adapter 352 - 355 communicates with a particular Web Service or program (e.g., the desktop interface 302 ) using the data schema required by that Web service or program.
- the adapter provides the data to the Web Services proxy 351 via the Web Services proxy API.
- the adapter 352 - 355 may also convert the data into a format interpretable by the Web Services proxy 351 .
- the Web Services proxy 351 extracts the underlying data and encapsulates the data into the communication format required for communicating to the wireless device 310 .
- the dispatcher 306 to which the wireless device 310 is currently connected transmits the data to the wireless device 310 using an asynchronous protocol specifically adapted for transmission over high-latency networks (e.g., wireless networks).
- asynchronous protocol specifically adapted for transmission over high-latency networks
- the dispatcher 306 transmits the data to the wireless device 310 using an asynchronous protocol specifically adapted for transmission over high-latency networks (e.g., wireless networks).
- the dispatcher 306 to which the wireless device 310 is currently connected transmits the data to the wireless device 310 using an asynchronous protocol specifically adapted for transmission over high-latency networks (e.g., wireless networks).
- the dispatcher 306 to which the wireless device 310 is currently connected transmits the data to the wireless device 310 using an asynchronous protocol specifically adapted for transmission over high-latency networks (e.g., wireless networks).
- the Web Services proxy 351 extracts the information and communicates the information to the appropriate Web Services adapter via the Web Service proxy API.
- a process according to one embodiment of the invention is illustrated in method 400 of FIG. 4 .
- the method shown in FIG. 4 is executed within the context of the adapter-based architecture shown in FIG. 3 b.
- this particular architecture is not required for implementing the underlying principles of the invention.
- Dispatcher 306 is configured to send and receive information over both data network 230 and wireless network 220 . Dispatcher 306 receives the automatically transmitted files from Java applet 303 and forwards them to file proxy module 307 where the files are temporarily stored before they are transmitted to device 110 for storage on expandable memory card 315 .
- File proxy 307 in one embodiment, is a service application that performs the synchronization between the built-in device memory and service 100 as discussed above. Additionally, file proxy 307 is operable to transcode files.
- Transcoding may be either performed as necessary or as desired by the user.
- Transcoding files involves changing the formatting or quality of a file without changing the content itself.
- transcoding may be performed so that a file may be displayed in such a way as to be compatible with the device with which it is being used. Additionally, a large file may be transcoded to lower quality so that it may be downloaded faster over a wireless network such as wireless network 220 .
- the transcoding is performed at file Proxy 307 .
- File proxy 307 knows to transcode certain files based on built-in knowledge of the user's particular wireless device. For example, a large MP3 file may be changed to low quality or to a different format that is capable of faster transmission over wireless network 220 .
- the transcoding may take place at Java applet 303 before it is transmitted to file proxy 307 of service 100 .
- a very large MP3 audio file may be dragged and dropped into the folder view in Java applet 303 where it will be automatically sent to service 100 in a different format chosen in advance to be more compatible with the user's specific model or type of wireless device such as wireless device 110 .
- the files are transcoded to the appropriate format before they are transmitted to wireless device 110 over wireless network 220 .
- File proxy 307 (via dispatcher 306 ) transmits the files to wireless device 110 via wireless network 220 where they are received at transceiver 311 .
- Transceiver 311 is operable to send and receive information over a wireless network such as wireless network 220 .
- Wireless transceiver 311 is coupled to file daemon module 312 which is always listening for information broadcast from service 100 over wireless network 220 .
- a file daemon such as file daemon 312 , works in the background and is transparent to the user.
- File daemon 312 is coupled to expandable memory card 315 via expandable memory interface 313 .
- step 404 when file daemon 312 receives the files transmitted over wireless network 220 , file daemon 312 writes the files to expandable memory card 315 via expandable memory interface 313 .
- device 310 sends an acknowledgement signal over wireless network 220 to service 100 indicating that downloading is completed.
- Service 100 receives the acknowledgement signal and transmits the acknowledgement signal to Java applet 303 over data network 230 .
- the acknowledgement signal is received by Java applet 303 , it may be displayed to the user in various ways.
- One way, for example, is for Java applet 303 to include a status viewer where the progress of a particular download could be tracked visually by a user.
- wireless device 110 may also include a status viewer (not shown) that shows the progress of information being downloaded onto expandable memory card 315 .
- wireless device 110 may include a status viewer that includes information such as date and time a particular download completed and whether there were any errors detected in transmission.
- a user may drag a set of audio files (such as MP3 files) from desktop 301 and drop the set of files into the folder view of Java applet 303 .
- these files will be automatically downloaded onto expandable memory 315 without further user management.
- Files stored on expandable memory card 315 may be downloaded onto the user's desktop 301 by copying desired files from the folder view of Java applet 303 onto desktop 301 (or some other file or folder on desktop 301 ).
- a process is initiated to update the folder view of Java applet 303 .
- files are added, modified or deleted from expandable memory card 315
- the folder view of Java applet 303 is updated with to accurately reflect the current contents of expandable memory 315 .
- files may be deleted from within the folder view of Java applet 303 .
- FIGS. 5-8 illustrate an exemplary embodiment of the operation described in FIG. 4 .
- FIG. 5 illustrates an exemplary embodiment of the folder view of Java applet 303 in the foreground and an arbitrary file folder on a user's computer desktop in the background.
- the copying process begins in FIG. 6 where the file, “my MP3,” is copied into an exemplary folder view of Java applet 303 .
- the process of copying the file to expandable memory card 315 is immediately initiated as depicted in FIG. 7 , which illustrates an exemplary embodiment of the status viewer for tracking the download progress.
- FIG. 7 illustrates an exemplary embodiment of the status viewer for tracking the download progress.
- FIG. 8 illustrates, in an exemplary embodiment, the results of the copying process where the file, “my MP3,” which was stored in an arbitrary file location on a user's desktop is now represented in the folder view of Java applet 303 indicating that the file has been downloaded onto and stored within expandable memory 315 of wireless device 110 .
- files contained in the folder view of Java applet 303 are those stored on whatever expandable memory card 315 is currently inserted in wireless device 110 .
- a new folder view is created in Java applet 303 . This process, described below, is performed each time Java application 303 is launched or the user switches to a new expandable memory card.
- Method 900 of FIG. 9 illustrates the process at the time when Java applet 303 is first launched.
- the current directory of filenames stored on expandable memory card 315 is continuously communicated from device 110 to file proxy 307 of service 100 at step 901 .
- step 902 whenever Java applet 303 is launched, a signal is automatically sent over data network 230 to file proxy 307 (via dispatcher 306 ) of service 100 .
- file proxy 307 receives the launch signal from Java applet 303
- file proxy 307 the current directory of filenames to Java applet 303 .
- Java applet 303 is updated with the current directory of filenames that reflects the data currently stored within the expandable memory card 315 of wireless device 110 .
- Java applet 303 is updated with the most recent data stored on expandable memory card 315 every time Java applet 303 is launched. Additionally, service 100 is also notified as to whether expandable memory card 315 is installed, how much memory is currently available, and other relevant information.
- the present invention in one embodiment is also operable to re-start downloading or uploading wherever it left off in the case when there is a disruption in the wireless connection. For example, if a user of wireless device 110 moves to a location out of range of wireless network 220 in the middle of a download/upload, the files will just pick up downloading/uploading where they left off when the user moves back into range. This allows for the seamless downloading of files using Java applet 303 with minimal user involvement and allows prohibitively large files to be downloaded wirelessly without the need for removing expandable memory 315 from wireless device 110 .
- Embodiments of the invention may include various steps as set forth above.
- the steps may be embodied in machine-executable instructions which cause a general-purpose or special-purpose processor to perform certain steps.
- these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
- processing logic may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), or a combination of both.
- Elements of the present invention may also be provided as a machine-storage medium for storing the machine-executable instructions.
- the machine-storage medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions.
- the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
- a remote computer e.g., a server
- a requesting computer e.g., a client
- a communication link e.g., a modem or network connection
Abstract
Description
- This invention relates generally to the field of data processing systems over wireless networks. More particularly, the invention relates to a system and method for synchronizing data stored on an expandable memory in a wireless device using a desktop interface application.
- The use of wireless devices has become an increasingly important part of everyday life. Wireless devices have become popular due to their portability, convenience, and ease of use. Today, wireless devices are used for a myriad of different applications including telephony, email, personal digital assistants (PDAs) as well as a variety of other functions and services. Integrated circuit technology has allowed for the miniaturization of circuits into smaller and smaller form factors, which has enabled additional functionality to be made available on wireless devices. Additionally, decreasing memory sizes have permitted wireless devices to store larger amounts of information. As a result, wireless networks are rapidly expanding bandwidth and services to accommodate this increase in wireless information and functionality.
- Wireless devices today are capable of sending and receiving electronic messages as well as performing other personal information management (PIM) functions. For example, many wireless services allow the storage of user-specific information on a user's wireless device such as calendar, contacts, etc. Further, wireless devices are now being used for taking and storing pictures, listening to audio files, and watching video files. The increase in functionality has lead to larger file sizes. One limitation of current wireless networks; however, is that wireless networks have limited bandwidth and, since file sizes are becoming larger, it has become increasingly important to manage transmission of information over wireless networks.
- Wireless networks can send and receive information at a much lower rate than most wired networks today. This limited bandwidth of wireless networks is due primarily to the range in which wireless devices are operated. Users of wireless devices may be remote to the supporting wireless service, and, depending on the service, the coverage area may be limited in some areas. Because of this, many functions desired by wireless users may require too much bandwidth for practical use. For example, sending and receiving pictures stored on a wireless device may take up to 500 kilobytes (kb) or more of network bandwidth. On many of today's networks, such a bandwidth limitation leads to excessively long download times. This situation becomes even worse for sending and receiving larger files over the wireless network such as audio and video files. Accordingly, what is needed is a method to send and receive large files over a wireless network over time with limited user involvement.
- A method and apparatus implemented over a wireless network is described for copying files stored on an expandable memory of a wireless device onto an application running on a computer desktop where files are automatically transmitted over a data network whenever they are copied into the desktop application. The files are then transmitted to a wireless service where they are transmitted wirelessly, over time, to the wireless device for downloading.
- A better understanding of the present invention can be obtained from the following detailed description in conjunctions with the following drawings, in which:
-
FIG. 1 illustrates a wireless service communicating with a wireless data processing device according to one embodiment of the invention. -
FIG. 2 illustrates a wireless data processing network which may be utilized in one embodiment of the invention. -
FIGS. 3 a-b illustrates a wireless service communicating with both a desktop interface and a wireless device according to one embodiment of the invention. -
FIG. 4 illustrates a method of wirelessly copying files from an application on a user's computer desktop onto an expandable memory in a wireless device according to one embodiment of the invention. -
FIGS. 5-8 illustrate embodiments of a user interface according to one embodiment of the invention. -
FIG. 9 illustrates a method of copying files from an application on a user's computer desktop with an expandable memory in a wireless device according to one embodiment of the invention. - Throughout the description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid obscuring the underlying principles of the present invention.
- References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. When a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
- In the following description and claims, the terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended to be synonymous with each other. Rather, in particular embodiments, “connected” may be used to indicate that two or more elements are in direct physical or electrical contact with each other. “Coupled” may mean that two or more elements are in direct physical or electrical contact. However, “coupled” may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
- Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations within a computer memory. These algorithmic 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. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps 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. 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 discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” 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 present invention also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
- The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
- Embodiments of the invention may be implemented on a
wireless device 10 which communicates with adata processing service 100 as illustrated generally inFIG. 1 . Embodiments of aservice 100 anddata processing device 110 are described in U.S. Pat. No. 6,721,804 entitled NETWORK PORTAL SYSTEM , APPARATUS AND METHOD , Ser. No. 09/714,897, filed Nov. 15, 2000, which is assigned to the assignee of the present application and which is incorporated herein by reference. Certain features of theservice 100 and an exemplarydata processing device 110 will now be described followed by a detailed description of a system and method for copying data onto an expandable memory card in a wireless device over a wireless network using a desktop interface application. As an initial matter, however, it should be noted that the specific data processing device and system architecture described in U.S. Pat. No. 6,721,804 are not required for implementing the underlying principles of the invention. Rather, the embodiments of the invention described below may be implemented on virtually any type of data processing device including standard personal computers, personal digital assistants and wireless telephones. - In one embodiment, the
service 100 converts standard applications and data into a format which eachdata processing device 110 can properly interpret. Thus, as illustrated inFIG. 1 , one embodiment of theservice 110 includescontent conversion logic 120 for processing requests forInternet content 140. More particularly,service 100 acts as a proxy for thedata processing device 110, forwardingInternet requests appropriate Internet site 130 on behalf of thedata processing device 110, receiving responses from theInternet site 130 in a standard Internet format (e.g., web pages with embedded audio/video and graphical content, e-mail messages with attachments, . . . etc), and converting the standard Internet responses 124 into a format which thedata processing device 110 can process (e.g., bytecodes as described in the co-pending applications). - For example, the
conversion logic 120 may include a hypertext markup language (“HTML”) rendering module (not shown) for interpreting HTML code and downloading any embedded content in the HTML code (e.g., graphics, video, sound . . . etc) to theservice 100. Theconversion logic 120 may then combine the HTML code and embedded content and generate a set of bytecodes for accurately reproducing the requested content on thedata processing device 110. As described above, in one embodiment, the bytecodes may be Java bytecodes/applets. However, theconversion logic 120 may generate various other types of interpreted and/or non-interpreted code, depending on the particular type ofdata processing device 110 being used (e.g., one with an interpreter module or one without). - Because one embodiment of the
service 100 maintains an intimate knowledge of the capabilities/configuration of each data processing device 110 (e.g., screen size, graphics/audio capabilities, available memory, processing power, user preferences, . . . etc) it can reconstruct the requested Internet content accurately for the particular device characteristic, while at the same time minimizing the bandwidth required to transmit the content to thedevice 110. For example, theconversion logic 120 may perform pre-scaling and color depth adjustments to the requested content so that it will be rendered properly within the data processing device's 110's display. In making these calculations, the conversion may factor in the memory and processing power available on thedata processing device 110. In addition, theconversion logic 120 may compress the requested content using a variety of compression techniques, and thereby preserve network bandwidth. - Referring now to
FIG. 2 which illustrates a wireless data processing network according to one embodiment of the invention. The data processing network includes wirelessdata processing device 110,wireless network 220,service 100,data network 230 and a user's personal computer (PC).Data network 230 can be any network amenable to sending and receiving packetized information and may include a set of one or more Application Programming Interfaces (APIs) which are a set of routines, protocols and tools that define howservice 100 is invoked through a software application such as a Java applet (not shown).Wireless device 110 sends and receives messages, files and other content to and fromservice 100 throughwireless network 220.Wireless device 110 includesinterface 200 which provides a conduit betweenwireless network 220 and the functionality operable onwireless device 110. -
Wireless device 110 may include a variety of functions. For example,FIG. 2 illustrateswireless device 110 comprising the following functionality:email 202,instant messaging 204,calendar 206,address book 208, andtelephony 210. The present invention, however, is not so limited and includes other functionality known in the art such as taking pictures, listening to audio files, watching video files and etc.Service 100 includes electronic circuitry (not shown) that communicates overwireless network 220. Additionally,service 100 includes circuitry (not shown) to communicate overdata network 230 to the user's PC. For example,wireless device 110 sends and receives messages, calls, and synchronization updates towireless service 100 overwireless network 220.Wireless service 100, in turn, transmits this information overdata network 230 to the user's PC. This process also works in reverse where information passed from the user's PC to the service overdata network 230 is sent towireless device 110 overwireless network 220. Details of this mechanism are further discussed below. - Referring now to
FIG. 3 a, which illustratessystem 300 according to one embodiment of the invention.System 300 includescomputer desktop 301,data network 304,service 305,wireless network 309, andwireless device 310. Insystem 300,service 305 communicates with bothdesktop interface module 302 running on the user'sdesktop 301 and with the user'swireless device 310.Service 305 includesdispatcher 306,file proxy 307, anduser database 308 according to one embodiment of the invention.Wireless device 310 includeswireless transceiver 311, file daemon module 312, andexpandable memory card 315 coupled towireless device 310 through expandable memory interface 313.Computer desktop 301 includesdesktop interface module 302 andJava applet module 303. -
Desktop interface 302, in one embodiment, is a web page running ondesktop 301. In this embodiment,desktop interface 302 provides a view ontouser database 308 ofservice 305. For example, user-specific information and other metadata is stored inuser database 308 atservice 305, and may include such information as calendar, contacts, etc. This information is synchronized withdesktop interface 302 so that a user may view the information contained indatabase 308 usingdesktop interface 302. Additionally,desktop interface 302 may require a username and password to accessservice 305 overdata network 304. - In one embodiment, information is stored in different locations in
wireless device 310. One memory location is in volatile memory built into the device itself (not shown). This memory, like other volatile memories may have faster access times, but any information stored therein will be lost whenever power to the device is shut off. Another memory location is a non-volatile memory such as Flash memory built into thewireless device 310. In one embodiment, the contents of the built-in device memories are synchronized withservice 305. Information stored in the device memories, therefore, will always be available on theservice 305 and may be accessed via another computing device such as adesktop computer 301. - Another memory location where information is stored on
device 310 is on theexpandable memory card 315 inserted intodevice 305 via expandable memory interface 313. In one embodiment, unlike information stored in the built-in memory of the device itself, information stored inexpandable memory card 315 is not synchronized with thedesktop interface 302.Expandable memory card 315 may be any type of expandable memory known in the art including Secure Digital (SD) cards, microSD cards, ISK3, etc. Information stored inexpandable memory card 315 is stored in non-volatile memory which is not lost whenever the device is powered down. - As illustrated in
FIG. 3 a, in one embodiment, thedesktop interface 302 includes aJava applet 303 through which data may be copied ontoexpandable memory card 315.Java applet 303, in one embodiment, is an application running insidedesktop interface 302 ondesktop 301, and provides a folder view of files and other data stored onexpandable memory card 315 inserted inwireless device 310. The invention, however, is not so limited and may include any application running on user'sdesktop 301 which may or may not be embedded withindesktop interface 302. For example,Java applet 303 may be implemented as a stand-alone Java application. In addition,Java applet 303 is not limited to Java program code and may be any application amenable to running ondesktop 301. - From
Java applet 303, files may be copied ontoexpandable memory card 315 and/or onto the built-in non-volatile memory (not shown). As discussed above, in one embodiment,Java applet 303 includes a folder view of the data stored onexpandable memory card 315. One embodiment of the folder view is illustrated inFIGS. 5-8 . The folder view provides a window in which to copy files that the user desires to have loaded ontoexpandable memory card 315 and/or the built-in non-volatile memory). Any type of files may be copied into the folder view ofJava applet module 303 including data, PDF, pictures, music, video files, etc. In one embodiment, files may be copied intoJava applet 303 by dragging and dropping file identifiers using a screen pointer control device such as a mouse (not shown) from a location ondesktop 301 into the folder view ofJava applet 303. The file identifiers may include icons, filenames, or other identifiers known in the art. The file identifiers may be stored in one or more other folders located ondesktop 301. Once a file identifier corresponding to a file located on the user's desktop is copied into the folder view ofJava applet 303 running on desktop 301 (or withindesktop interface 301 running on desktop 301) it is automatically transmitted overdata network 230 toservice 100. - In one embodiment, the
desktop interface module 302 is linked to theservice 100 through an adapter-based Web services interface such as the one described in the co-pending U.S. application entitled SYSTEM AND METHOD FOR MANAGING WEB SERVICES DATA AND PRESENCE DATA RELATED TO A PLURALITY OF USERS, Ser. No. ______, Filed ______, which is assigned to the assignee of the present application and which is incorporated herein by reference. In particular, as illustrated inFIG. 3 b, in one embodiment, thedesktop interface module 302 andJava applet 303 communicate with the service through adesktop interface adapter 352.FIG. 3 b also illustrates one embodiment of the Web Service integration proxy 207 employed within theservice 100. In the illustrated embodiment, the WebService integration proxy 357 includes a “local” Web Services proxy 351 (i.e., “local” in this sense that it runs on the service 100), a plurality of Web Services adapters 352-355 communicably connected to theWeb Services proxy 351, and anauthentication proxy 356 for performing the authentication operations described herein. - Certain Web Services exchange information with clients and servers on the Internet using various protocols and encodings, for example the Simple Object Access Protocol (SOAP). SOAP is a message-based protocol which employs an XML syntax to send text commands across the Internet using the Hypertext Transport Protocol (HTTP). Other Web Services protocols such as XML/RPC and REST (“Representational State Transfer”) may also be used consistent with the underlying principles of the invention.
- Although most Web Services use these standard protocols, many Web Services employs their own specific format (e.g., data schema and rules for communication) which must be followed in order to communicate with those Web services. In addition, each Web service employs its own unique API, i.e., the set of functions and interfaces exposed by the Web service. Thus, in one embodiment of the invention, a separate Web Services adapter 352-355 is used to communicate with Web Services proxies and client-based Web services programs (e.g., desktop interface 302) using the formats require by those proxies/programs. In addition, as illustrated in
FIG. 3 b, one embodiment of the invention includes a “global” or “default”Web Services adapter 355 for communicating with web services using standardized (i.e., non-proprietary) Web Services communication formats. - The Web Services adapters 352-355 are “plugged in” to the
Web Services Proxy 351 through an API exposed by theWeb Services Proxy 351. Each of the Web Services adapters 352-355 exchange data and program code with the Web Services Proxy Web Services proxy via this API. - In operation, each adapter 352-355 communicates with a particular Web Service or program (e.g., the desktop interface 302) using the data schema required by that Web service or program. The adapter provides the data to the
Web Services proxy 351 via the Web Services proxy API. In one embodiment, the adapter 352-355 may also convert the data into a format interpretable by theWeb Services proxy 351. TheWeb Services proxy 351 extracts the underlying data and encapsulates the data into the communication format required for communicating to thewireless device 310. If the wireless device is currently online, then thedispatcher 306 to which thewireless device 310 is currently connected transmits the data to thewireless device 310 using an asynchronous protocol specifically adapted for transmission over high-latency networks (e.g., wireless networks). For upstream communication, when the user of thewireless device 310 transmits information to the Web Service or program, the information is transmitted through the dispatcher using the same protocol. TheWeb Services proxy 351 extracts the information and communicates the information to the appropriate Web Services adapter via the Web Service proxy API. The Web Services adapter then communicates the new information to its associated Web Service or program using the required data schema and other communication standards required by the Web Service or program. - One notable benefit of this architecture is that if a particular Web Services proxy or program (e.g., the desktop interface 302) modifies its communication standards/protocol, then only the specific adapter for that web services proxy needs to be modified or replaced. The remaining software executed on the
Web Services Proxy 357 and each of thewireless devices 310 does not need to be changed. Thus, the network bandwidth, as well as the engineering time which would normally be required to upgrade eachindividual wireless device 310 is conserved. - A process according to one embodiment of the invention, is illustrated in
method 400 ofFIG. 4 . In one embodiment, the method shown inFIG. 4 is executed within the context of the adapter-based architecture shown inFIG. 3 b. However, this particular architecture is not required for implementing the underlying principles of the invention. - At
step 401, the user copies or moves files from the user'scomputer desktop 301 into the folder view ofJava applet 303. The copied files are then immediately and automatically transmitted overdata network 230 and received bydispatcher 306 ofservice 100 instep 402.Dispatcher 306 is configured to send and receive information over bothdata network 230 andwireless network 220.Dispatcher 306 receives the automatically transmitted files fromJava applet 303 and forwards them to fileproxy module 307 where the files are temporarily stored before they are transmitted todevice 110 for storage onexpandable memory card 315.File proxy 307, in one embodiment, is a service application that performs the synchronization between the built-in device memory andservice 100 as discussed above. Additionally,file proxy 307 is operable to transcode files. Transcoding may be either performed as necessary or as desired by the user. Transcoding files involves changing the formatting or quality of a file without changing the content itself. In the present invention, transcoding may be performed so that a file may be displayed in such a way as to be compatible with the device with which it is being used. Additionally, a large file may be transcoded to lower quality so that it may be downloaded faster over a wireless network such aswireless network 220. In one embodiment, the transcoding is performed atfile Proxy 307.File proxy 307 knows to transcode certain files based on built-in knowledge of the user's particular wireless device. For example, a large MP3 file may be changed to low quality or to a different format that is capable of faster transmission overwireless network 220. In another embodiment, the transcoding may take place atJava applet 303 before it is transmitted to fileproxy 307 ofservice 100. For example, a very large MP3 audio file may be dragged and dropped into the folder view inJava applet 303 where it will be automatically sent toservice 100 in a different format chosen in advance to be more compatible with the user's specific model or type of wireless device such aswireless device 110. In either case, however, the files are transcoded to the appropriate format before they are transmitted towireless device 110 overwireless network 220. - In
step 403, File proxy 307 (via dispatcher 306) transmits the files towireless device 110 viawireless network 220 where they are received attransceiver 311.Transceiver 311 is operable to send and receive information over a wireless network such aswireless network 220.Wireless transceiver 311 is coupled to file daemon module 312 which is always listening for information broadcast fromservice 100 overwireless network 220. A file daemon, such as file daemon 312, works in the background and is transparent to the user. File daemon 312 is coupled toexpandable memory card 315 via expandable memory interface 313. Atstep 404, when file daemon 312 receives the files transmitted overwireless network 220, file daemon 312 writes the files toexpandable memory card 315 via expandable memory interface 313. Atstep 405,device 310 sends an acknowledgement signal overwireless network 220 toservice 100 indicating that downloading is completed.Service 100 receives the acknowledgement signal and transmits the acknowledgement signal toJava applet 303 overdata network 230. Once the acknowledgement signal is received byJava applet 303, it may be displayed to the user in various ways. One way, for example, is forJava applet 303 to include a status viewer where the progress of a particular download could be tracked visually by a user. Additionally,wireless device 110 may also include a status viewer (not shown) that shows the progress of information being downloaded ontoexpandable memory card 315. In other embodiments,wireless device 110 may include a status viewer that includes information such as date and time a particular download completed and whether there were any errors detected in transmission. - In this manner, files desired by the user to be placed on
expandable memory card 315 can be done so wirelessly. All a user needs to do is copy the desired files into the folder view ofJava applet 303 and the files will be instantly and automatically downloaded (over time) toexpandable memory card 315 throughservice 100. One of the advantages of this process is that there is no need for a user to takeexpandable memory card 315 out ofwireless device 110 and plug it into the user's computer (e.g., through a Universal Serial Bus connection). Another advantage of this approach is that files that used to be prohibitively large for downloading purposes over a wireless network can be accomplished over time without user management. This allows the user to perform other tasks while large files are downloading onto the user's wireless device. For example, just before driving to work, a user may drag a set of audio files (such as MP3 files) fromdesktop 301 and drop the set of files into the folder view ofJava applet 303. In this embodiment, these files will be automatically downloaded ontoexpandable memory 315 without further user management. - The above process also works in reverse. Files stored on
expandable memory card 315 may be downloaded onto the user'sdesktop 301 by copying desired files from the folder view ofJava applet 303 onto desktop 301 (or some other file or folder on desktop 301). In addition, whenever a change is made to the contents ofexpandable memory 315, a process is initiated to update the folder view ofJava applet 303. Whenever files are added, modified or deleted fromexpandable memory card 315, the folder view ofJava applet 303 is updated with to accurately reflect the current contents ofexpandable memory 315. Likewise, files may be deleted from within the folder view ofJava applet 303. As a result, whenever files are copied, modified, or deleted from the folder view ofJava applet 303, that file will be added, modified or deleted, respectively, fromexpandable memory 315 and vice versa so that the folder view inJava applet 303 accurately reflects the data stored onexpandable memory card 315. -
FIGS. 5-8 illustrate an exemplary embodiment of the operation described inFIG. 4 . Specifically,FIG. 5 illustrates an exemplary embodiment of the folder view ofJava applet 303 in the foreground and an arbitrary file folder on a user's computer desktop in the background. The copying process begins inFIG. 6 where the file, “my MP3,” is copied into an exemplary folder view ofJava applet 303. The process of copying the file toexpandable memory card 315 is immediately initiated as depicted inFIG. 7 , which illustrates an exemplary embodiment of the status viewer for tracking the download progress.FIG. 8 illustrates, in an exemplary embodiment, the results of the copying process where the file, “my MP3,” which was stored in an arbitrary file location on a user's desktop is now represented in the folder view ofJava applet 303 indicating that the file has been downloaded onto and stored withinexpandable memory 315 ofwireless device 110. - As a result, files contained in the folder view of
Java applet 303 are those stored on whateverexpandable memory card 315 is currently inserted inwireless device 110. Whenever a user switches to a new expandable memory card, a new folder view is created inJava applet 303. This process, described below, is performed eachtime Java application 303 is launched or the user switches to a new expandable memory card.Method 900 ofFIG. 9 illustrates the process at the time whenJava applet 303 is first launched. The current directory of filenames stored onexpandable memory card 315 is continuously communicated fromdevice 110 to fileproxy 307 ofservice 100 atstep 901. Atstep 902, wheneverJava applet 303 is launched, a signal is automatically sent overdata network 230 to file proxy 307 (via dispatcher 306) ofservice 100. Atstep 903, whenfile proxy 307 receives the launch signal fromJava applet 303,file proxy 307 the current directory of filenames toJava applet 303. Atstep 904,Java applet 303 is updated with the current directory of filenames that reflects the data currently stored within theexpandable memory card 315 ofwireless device 110. - As a result of the above,
Java applet 303 is updated with the most recent data stored onexpandable memory card 315 everytime Java applet 303 is launched. Additionally,service 100 is also notified as to whetherexpandable memory card 315 is installed, how much memory is currently available, and other relevant information. - The present invention, in one embodiment is also operable to re-start downloading or uploading wherever it left off in the case when there is a disruption in the wireless connection. For example, if a user of
wireless device 110 moves to a location out of range ofwireless network 220 in the middle of a download/upload, the files will just pick up downloading/uploading where they left off when the user moves back into range. This allows for the seamless downloading of files usingJava applet 303 with minimal user involvement and allows prohibitively large files to be downloaded wirelessly without the need for removingexpandable memory 315 fromwireless device 110. - Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions which cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
- These processes are performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), or a combination of both.
- Elements of the present invention may also be provided as a machine-storage medium for storing the machine-executable instructions. The machine-storage medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
- Throughout the foregoing description, for the purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. For example, although the embodiments described above are limited to a wireless implementation, the underlying principles of the invention may be employed in a variety of different types of networks. Similarly, while the protocol stack described above is implemented using Java, the underlying principles of the invention are not limited to any particular programming language.
- Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow.
Claims (27)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/069,884 US8370519B2 (en) | 2008-02-12 | 2008-02-12 | Copying data onto an expandable memory in a wireless device using a desktop interface |
US13/757,577 US9495323B2 (en) | 2008-02-12 | 2013-02-01 | Copying data onto an expandable memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/069,884 US8370519B2 (en) | 2008-02-12 | 2008-02-12 | Copying data onto an expandable memory in a wireless device using a desktop interface |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/757,577 Continuation US9495323B2 (en) | 2008-02-12 | 2013-02-01 | Copying data onto an expandable memory |
Publications (2)
Publication Number | Publication Date |
---|---|
US20090204721A1 true US20090204721A1 (en) | 2009-08-13 |
US8370519B2 US8370519B2 (en) | 2013-02-05 |
Family
ID=40939840
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/069,884 Active 2029-11-17 US8370519B2 (en) | 2008-02-12 | 2008-02-12 | Copying data onto an expandable memory in a wireless device using a desktop interface |
US13/757,577 Active 2028-03-18 US9495323B2 (en) | 2008-02-12 | 2013-02-01 | Copying data onto an expandable memory |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/757,577 Active 2028-03-18 US9495323B2 (en) | 2008-02-12 | 2013-02-01 | Copying data onto an expandable memory |
Country Status (1)
Country | Link |
---|---|
US (2) | US8370519B2 (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090210502A1 (en) * | 2008-02-19 | 2009-08-20 | Danger, Inc. | System and method for bypassing uploading of data from a wireless device using outbound attachment caching |
US7831676B1 (en) * | 2007-02-21 | 2010-11-09 | Nagar Ajay R | Method and system for handling email |
US20100325090A1 (en) * | 2009-06-22 | 2010-12-23 | Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd | Electronic device for facilitating file copying |
CN102523328A (en) * | 2011-11-22 | 2012-06-27 | 中兴通讯股份有限公司 | Wireless communication terminal and user information processing method thereof |
US20140365679A1 (en) * | 2008-04-03 | 2014-12-11 | Microsoft Corporation | Streaming Video over a Wireless Network |
US20160050100A1 (en) * | 2014-08-15 | 2016-02-18 | CleverAnt | Method, system and computer program product for using an intermediation function |
US9495323B2 (en) | 2008-02-12 | 2016-11-15 | Microsoft Corporation | Copying data onto an expandable memory |
CN106936904A (en) * | 2017-03-07 | 2017-07-07 | 济南浪潮高新科技投资发展有限公司 | A kind of picture upload method and device |
US9887764B1 (en) * | 2015-04-07 | 2018-02-06 | Syed Karim | Systems for harvesting, storing, and sharing data files |
US20190200070A1 (en) * | 2017-12-21 | 2019-06-27 | Sling Media Pvt Ltd | Streaming methods and systems using tuner buffers |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020120696A1 (en) * | 1998-05-29 | 2002-08-29 | Mousseau Gary P. | System and method for pushing information from a host system to a mobile data communication device |
US20020163780A1 (en) * | 2001-05-02 | 2002-11-07 | Palm, Inc. | Synchronization cradle with expansion card slots |
US20040103174A1 (en) * | 2002-11-05 | 2004-05-27 | Balducci Juan V. Esteve | Folder synchronization |
US20040204085A1 (en) * | 2002-11-05 | 2004-10-14 | Microsoft Corporation | Scheduling of synchronization operation on a mobile device based on predetermined subset of user actions |
US20050147130A1 (en) * | 2003-12-23 | 2005-07-07 | Intel Corporation | Priority based synchronization of data in a personal area network |
US20050203976A1 (en) * | 2004-02-11 | 2005-09-15 | University Of California | Systems, tools and methods for transferring files and metadata to and from a storage means |
US20060188864A1 (en) * | 2005-01-31 | 2006-08-24 | Pankaj Shah | Automated transfer of data from PC clients |
US20070288551A1 (en) * | 2006-06-09 | 2007-12-13 | Sidon Laurent F | Distribution of Files from Mobile Devices |
US20070288484A1 (en) * | 2005-08-10 | 2007-12-13 | Huawei Technologies Co., Ltd. | Method and download agent for implementing parallel download |
US20080214215A1 (en) * | 2007-03-02 | 2008-09-04 | Aaltonen Janne L | Systems and methods for facilitating information control of a device by proxy |
US20090011747A1 (en) * | 2007-07-05 | 2009-01-08 | Research In Motion Limited | File Sharing with a Hostile System |
US20090063711A1 (en) * | 2007-08-31 | 2009-03-05 | Palm, Inc. | Prevention of inadvertent data synchronization to and from removable memory sources on a handheld connected device |
US20090100149A1 (en) * | 2001-05-21 | 2009-04-16 | Greg Arnold | Method and system for using tokens to conduct file sharing transactions between handhelds and a web service |
US7533349B2 (en) * | 2006-06-09 | 2009-05-12 | Microsoft Corporation | Dragging and dropping objects between local and remote modules |
US7546353B2 (en) * | 1999-12-02 | 2009-06-09 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7693949B2 (en) * | 2000-06-20 | 2010-04-06 | Palmsource Inc. | Data exchange between a handheld device and another computer system using an exchange manager via synchronization |
US7739410B2 (en) * | 2007-01-07 | 2010-06-15 | Apple Inc. | Synchronization methods and systems |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100389867B1 (en) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | Flash memory management method |
TWI240864B (en) * | 2001-06-13 | 2005-10-01 | Hitachi Ltd | Memory device |
JP2004294584A (en) * | 2003-03-26 | 2004-10-21 | Sony Corp | Musical data transferring and recording method and musical sound reproducing apparatus |
US6993618B2 (en) * | 2004-01-15 | 2006-01-31 | Super Talent Electronics, Inc. | Dual-mode flash storage exchanger that transfers flash-card data to a removable USB flash key-drive with or without a PC host |
US20090011793A1 (en) * | 2005-01-13 | 2009-01-08 | Pocrass Alan L | Flash Memory Cell Phone With Integrated Male And Female Connectors |
US20060259521A1 (en) * | 2005-05-16 | 2006-11-16 | Anthony Armenta | Interface for synchronization of documents between a host computer and a portable device |
JP2007043367A (en) * | 2005-08-02 | 2007-02-15 | Kyocera Corp | Information receiving device and data download method |
US7966355B2 (en) * | 2007-02-13 | 2011-06-21 | Modu Ltd. | Interface for extending functionality of memory cards |
US8370519B2 (en) | 2008-02-12 | 2013-02-05 | Microsoft Corporation | Copying data onto an expandable memory in a wireless device using a desktop interface |
-
2008
- 2008-02-12 US US12/069,884 patent/US8370519B2/en active Active
-
2013
- 2013-02-01 US US13/757,577 patent/US9495323B2/en active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020120696A1 (en) * | 1998-05-29 | 2002-08-29 | Mousseau Gary P. | System and method for pushing information from a host system to a mobile data communication device |
US7546353B2 (en) * | 1999-12-02 | 2009-06-09 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7693949B2 (en) * | 2000-06-20 | 2010-04-06 | Palmsource Inc. | Data exchange between a handheld device and another computer system using an exchange manager via synchronization |
US20020163780A1 (en) * | 2001-05-02 | 2002-11-07 | Palm, Inc. | Synchronization cradle with expansion card slots |
US20090100149A1 (en) * | 2001-05-21 | 2009-04-16 | Greg Arnold | Method and system for using tokens to conduct file sharing transactions between handhelds and a web service |
US20040103174A1 (en) * | 2002-11-05 | 2004-05-27 | Balducci Juan V. Esteve | Folder synchronization |
US20040204085A1 (en) * | 2002-11-05 | 2004-10-14 | Microsoft Corporation | Scheduling of synchronization operation on a mobile device based on predetermined subset of user actions |
US20050147130A1 (en) * | 2003-12-23 | 2005-07-07 | Intel Corporation | Priority based synchronization of data in a personal area network |
US20050203976A1 (en) * | 2004-02-11 | 2005-09-15 | University Of California | Systems, tools and methods for transferring files and metadata to and from a storage means |
US20060188864A1 (en) * | 2005-01-31 | 2006-08-24 | Pankaj Shah | Automated transfer of data from PC clients |
US20070288484A1 (en) * | 2005-08-10 | 2007-12-13 | Huawei Technologies Co., Ltd. | Method and download agent for implementing parallel download |
US20070288551A1 (en) * | 2006-06-09 | 2007-12-13 | Sidon Laurent F | Distribution of Files from Mobile Devices |
US7533349B2 (en) * | 2006-06-09 | 2009-05-12 | Microsoft Corporation | Dragging and dropping objects between local and remote modules |
US7739410B2 (en) * | 2007-01-07 | 2010-06-15 | Apple Inc. | Synchronization methods and systems |
US20080214215A1 (en) * | 2007-03-02 | 2008-09-04 | Aaltonen Janne L | Systems and methods for facilitating information control of a device by proxy |
US20090011747A1 (en) * | 2007-07-05 | 2009-01-08 | Research In Motion Limited | File Sharing with a Hostile System |
US20090063711A1 (en) * | 2007-08-31 | 2009-03-05 | Palm, Inc. | Prevention of inadvertent data synchronization to and from removable memory sources on a handheld connected device |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7831676B1 (en) * | 2007-02-21 | 2010-11-09 | Nagar Ajay R | Method and system for handling email |
US9495323B2 (en) | 2008-02-12 | 2016-11-15 | Microsoft Corporation | Copying data onto an expandable memory |
US20090210502A1 (en) * | 2008-02-19 | 2009-08-20 | Danger, Inc. | System and method for bypassing uploading of data from a wireless device using outbound attachment caching |
US7970881B2 (en) * | 2008-02-19 | 2011-06-28 | Microsoft Corporation | Bypassing uploading of data from a wireless device using outbound attachment caching |
US20110213853A1 (en) * | 2008-02-19 | 2011-09-01 | Microsoft Corporation | Bypassing uploading of data from a wireless device using outbound attachment caching |
US8086719B2 (en) * | 2008-02-19 | 2011-12-27 | Microsoft Corporation | Bypassing uploading of data from a wireless device using outbound attachment caching |
US20140365679A1 (en) * | 2008-04-03 | 2014-12-11 | Microsoft Corporation | Streaming Video over a Wireless Network |
US9143547B2 (en) * | 2008-04-03 | 2015-09-22 | Microsoft Technology Licensing, Llc | Streaming video over a wireless network |
US20100325090A1 (en) * | 2009-06-22 | 2010-12-23 | Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd | Electronic device for facilitating file copying |
WO2013075426A1 (en) * | 2011-11-22 | 2013-05-30 | 中兴通讯股份有限公司 | Wireless communication terminal and user information processing method thereof |
CN102523328A (en) * | 2011-11-22 | 2012-06-27 | 中兴通讯股份有限公司 | Wireless communication terminal and user information processing method thereof |
US20160050100A1 (en) * | 2014-08-15 | 2016-02-18 | CleverAnt | Method, system and computer program product for using an intermediation function |
US9875290B2 (en) * | 2014-08-15 | 2018-01-23 | Deloitte It Inc. | Method, system and computer program product for using an intermediation function |
US9887764B1 (en) * | 2015-04-07 | 2018-02-06 | Syed Karim | Systems for harvesting, storing, and sharing data files |
CN106936904A (en) * | 2017-03-07 | 2017-07-07 | 济南浪潮高新科技投资发展有限公司 | A kind of picture upload method and device |
US20190200070A1 (en) * | 2017-12-21 | 2019-06-27 | Sling Media Pvt Ltd | Streaming methods and systems using tuner buffers |
Also Published As
Publication number | Publication date |
---|---|
US20130151644A1 (en) | 2013-06-13 |
US8370519B2 (en) | 2013-02-05 |
US9495323B2 (en) | 2016-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9495323B2 (en) | Copying data onto an expandable memory | |
US11375345B2 (en) | Message extension app store | |
EP3255909B1 (en) | Messaging application interacting with one or more extension applications | |
US9332063B2 (en) | Versatile application configuration for deployable computing environments | |
US9990370B1 (en) | System and method for local file management and editing utilizing remote applications | |
US9003059B2 (en) | Running applications in an online or offline mode based on the availability of the connection to the remote web server | |
US9519654B2 (en) | Method, device, processing center and system for desktop synchronization | |
US20190190968A1 (en) | Method for Migrating Data and Terminal | |
US20060200570A1 (en) | Discovering and mounting network file systems via ad hoc, peer-to-peer networks | |
US20020174206A1 (en) | Web-based file manipulating system | |
US20080263139A1 (en) | Method for providing content to a mobile device, gateway for providing content and mobile device | |
US20120166516A1 (en) | Systems and methods for establishing and maintaining virtual computing clouds | |
US20140032489A1 (en) | Method and apparatus for viewing collaborative documents | |
US20060265472A1 (en) | Systems and methods for providing short message service features and user interfaces therefor in network browsing applications | |
US9361296B2 (en) | Method and apparatus for processing collaborative documents | |
JP2007172044A (en) | Picture display method and picture display device | |
WO2003019415A2 (en) | Web server resident on a mobile computing device | |
CN108306966B (en) | Document processing method, device, system, terminal and server | |
CN104885432A (en) | Server and file sharing method | |
CN113422791A (en) | Cloud service configuration method and device, electronic equipment and computer-readable storage medium | |
US7937441B2 (en) | Data-control device and method of controlling same | |
KR101868173B1 (en) | Method and apparatus for sharing application database | |
EP1866905B1 (en) | Dual purpose video adapter port | |
WO2006040991A1 (en) | Terminal device, server device, and web service providing system | |
JP2023047632A (en) | Information processing system, server system, method for processing information, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: DANGER, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YOST, KARL STEVEN;SONG, JAIGAK;MIDDLETON, JUSTIN;AND OTHERS;REEL/FRAME:020560/0327;SIGNING DATES FROM 20080129 TO 20080205 Owner name: DANGER, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YOST, KARL STEVEN;SONG, JAIGAK;MIDDLETON, JUSTIN;AND OTHERS;SIGNING DATES FROM 20080129 TO 20080205;REEL/FRAME:020560/0327 |
|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: MERGER;ASSIGNOR:DANGER, INC.;REEL/FRAME:027039/0009 Effective date: 20110106 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034542/0001 Effective date: 20141014 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |