Abstract

The present invention provides a method for transferring an application state, of a first application being executed on a first electronic device, from the first electronic device to a second electronic device that is coupled to communicate with the first electronic device. The method comprises transmitting at least one application state element to the second electronic device and executing a second application on the second electronic device according to the application state elements.

Description

FIELD OF THE INVENTION

[0001]

This invention relates to the field of software applications and specifically to transferring an application state from a first electronic device to a second electronic device.

BACKGROUND OF THE INVENTION

[0002]

Mobile electronic devices are becoming more and more ubiquitous because they help users manage their busy schedules and communicate with the world, as well as provide users with entertainment. For example, portable computers, such as notebook or laptop computers, personal data assistants (PDAs) and mobile telephones are becoming necessities for many. Notebook or laptop computers are very popular because they are extremely lightweight personal computers that can easily fit in a briefcase for the mobile businessperson. A PDA is a handheld mobile device that allows users to access information, keep track of their busy schedules, and communicate with others. A typical PDA can function as a mobile or cellular phone, fax sender, and personal organizer. Furthermore, many PDAs are capable of wireless connectivity and executing any number of software applications. It is very important for today's mobile professional to be able to access information from anywhere in the world. Similar to the portable computer, PDAs are very popular because they are designed to be highly portable. Some mobile electronic devices have entertainment functions and include MP3 players, such as the Apple iPod™ and handheld game consoles such as the Nintendo Gameboy™ line of products or Sony PlayStation Portable™.

[0003]

A common feature of portable devices, such as a PDA, is the ability for the mobile device to communicate with another electronic device, such as a desktop computer, laptop or another PDA, for the purposes of synchronizing various data. Typically, the PDA is coupled to communicate with the desktop computer, either wirelessly or through a serial port. When instruction from a user to synchronizing the devices is received, data such as contacts, e-mail, calendar items, memo items are synchronized by replacing old data with newer data. There are numerous computer software designed to synch two electronic devices and ensure that the newer data is retained and not overwritten by older data.

[0004]

Synching two electronic devices is typically limited only to the data elements described above. As a result, if a user decides to leave a first device, such as a desktop, while running a particular application and desires to continue working from a second device such as a PDA, that user will typically start the application from the PDA and start over again. For example, if the user is browsing the World Wide Web and wishes to continue browsing on a PDA, the user would start the browser on the PDA and enter the URL and start over.

[0005]

Methods for providing improved functionality between multiple devices is desired.

SUMMARY OF THE INVENTION

[0006]

According to one broad aspect of the invention, there is provided a method for transferring an application state, of a first application being executed on a first electronic device, from the first electronic device to a second electronic device that is coupled to communicate with the first electronic device. The method comprises transmitting at least one application state element to the second electronic device and commencing execution of a second application on the second electronic device according to the application state elements.

[0007]

Depending on the specific application and situation, it may be preferable to terminate the first application being executed by the first electronic device.

[0008]

Advantageously, the methods of the present invention provide for the transfer of an application state from a first device to a second device so that a user may continue his or her electronic activities in a more seamless manner.

[0009]

According to another aspect of the invention, there is provided a computer readable memory storing statements and instructions for use in the execution in a computer of the methods of the present invention. Preferably, the computer readable memory is in a mobile electronic device.

[0010]

According to another aspect of the invention, there is provided a data carrier product containing sequences of instructions which when executed causes the performance of the methods of the invention.

[0011]

According to another aspect of the invention, there is provided a software product containing sequences of instructions which when executed causes the performance of the methods of the invention.

[0012]

According to another aspect of the invention, there is provided an integrated circuit product containing sequences of instructions which when executed causes the performance of the methods of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013]

Embodiments of the invention may best be understood by referring to the following description and accompanying drawings. In the description and drawings, like numerals refer to like structures or processes. In the drawings:

[0014]

FIG. 1 is a flowchart illustrating operations for transferring an application state of an application from a first electronic device to a second electronic device according to a first embodiment of the invention;

[0015]

FIG. 2 is a flowchart illustrating operations for transferring an application state of an application from a first electronic device to a second electronic device according to a second embodiment of the invention;

[0016]

FIG. 3 is a schematic showing a system for transferring an application state of an application from a first electronic device to a second electronic device according to the second embodiment of the invention; and

[0017]

FIG. 4 shows a mobile electronic device storing instructions which when executed causes the performance of the methods of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0018]

In the following description, numerous specific details are set forth to provide a thorough understanding of the invention. However, it is understood that the invention may be practiced without these specific details. In other instances, well-known software, circuits, structures and techniques have not been described or shown in detail in order not to obscure the invention.

[0019]

The advantages of the present invention are further illustrated by examples. The examples and their particular details set forth herein are presented for illustration only and should not be construed as a limitation on the claims of the present invention.

[0020]

Method. Generally, in accordance with an aspect of the invention, there is provided methods for transferring an application state, of a first application being executed on a first electronic device, from the first electronic device to a second electronic device. The second device is coupled to communicate with the first device. It will be understood by a person skilled in the art that coupled communication may be a direct connection through USB or similar ports between the first and second device, wirelessly or a combination thereof. It will be further understood that the two devices may be coupled to communicate indirectly through a network, preferably wirelessly. The first and second devices may be any electronic device capable of executing an application such as a personal computer, laptop or PDA, but is not limited to devices capable of running multiple applications. The first and second devices may therefore also include, without limitation, mp3 players, portable media players, gaming consoles or electronic book readers.

[0021]

Referring to FIG. 1, a flowchart illustrating operations 100 according to a first embodiment of the invention is provided. A decision at step 110 is made by a user to transfer the application state from a first device to a second device. At step 120, at least one application state element is transmitted to the second device. At step 130 a second application is executed on the second device according to the application state elements. At step 140, the first application on the first device is terminated.

EXAMPLE 1

[0000]

Media

[0022]

A user is listening to music media, such as a song, in mp3 format using a media player, such as Windows Media Player™ or Apple's iTunes™, executed from a desktop personal computer. The user also has a mobile mp3 player, such as an Apple iPod™ or Diamond RIO™, that is connected to the desktop computer. Alternatively, a user may have a PDA with a media player application capable of playing mp3s. Upon the user indicating a desire to switch to the mobile device by choosing “Switch to PDA”, application state elements regarding the media player's application state are transmitted from the desktop computer to the mp3 player. Application state elements in this example include, but are not limited to, any of a song file being played, an elapsed time on the song, a playlist and a shuffle order. The media player application on the mp3 player would be then be executed according to the application state elements and the original media player on the desktop terminated. As a result, the same song which was originally playing on the user's desktop will begin playing on the mp3 player from the same moment. Further, the media player's playlist and shuffle order would also be preserved. Advantageously, this provides a more seamless transition from a first device (desktop) to a second device (mp3 player).

[0023]

Although the first application executed from the first device is preferably the same application as the second application executed from the second device, it is possible to use different applications to transfer the same task. For example, the user may be using Windows Media Player™ to listen to an mp3 on the first device but using Winamp™ to listen to the mp3 on the second device. Further, it is also known to use middleware to resolve potential incompatibility issues between the first and second applications on the first and second devices respectively.

[0024]

In another embodiment of the invention, the first and second devices are both portable media players and application state elements are transferred there between. This allows two portable media players to be synchronized so that two individuals may listen to the same songs at the same time and in the same order. For example, A first mobile mp3 player is coupled to communicate with a second mobile mp3 player. At the direction of a user to “Transfer State”, application state elements from the first mp3 player are transferred to the second mp3 player. The media player application on the second mp3 player would then be executed according to the application state elements. Thus, the first and second mobile mp3 players would be playing the same media in the same order at the same time. As a result, respective first and second users would be provided with a synchronized experience.

[0025]

The methods of the present invention are equally applicable to streaming media. In this instance, as a media file is streamed from a remote location, application state elements for the streaming media would additionally include the URL or location of the media file sufficient to enable the second device to start the streaming of the media file to the second device. As with non-streaming media, other application state elements, such as elapsed play time, would be provided to the second device to facilitate a more seamless transfer of application state. It will also be understood that any of the streaming media or data regarding the elapsed playtime may involve instructing a remote third device to stream the media to the second device starting at the elapsed playtime.

[0026]

In some embodiments of the invention, when the second application on the second device has been executed according to the application state elements, that is, the same media is playing from the same point in time, there is a pause for a predetermined period of time before terminating the first application. Thus, for this predetermined period of time, the media is played simultaneously from both devices. Advantageously, this prevents the user from missing any media after the transfer but before using the second device, for example, by putting on headphones. In the case of media that is streamed from a server, the server authenticates both devices and facilities the transfer of application state by multicasting to both devices for the predetermined period of time. In another embodiment, the first application will continue indefinitely until the user terminates it manually.

[0027]

It will be understood by a person skilled in the art that application state elements may include any authentication information required to transfer the application state from the first device to the second device. For example, streaming media may only be available following authentication of a user. Further, if application level synching of streaming media is not available, it will be understood that middleware, of a type known in the art, may be employed to synch the elapsed playtime of the media on the first device with the media on the second device.

EXAMPLE 2

[0000]

Web Browsing

[0028]

A user is browsing the World Wide Web from a PDA, such as a BlackBerry™, available from Research in Motion Ltd. (RIM), using the BlackBerry's™ native web browser and has arrived at a desktop work station and wishes to transfer the application state to the desktop. The user couples the PDA to communicate with the desktop personal computer and chooses to “Switch to PC”. All application state elements required to transfer the application state of the web browser from the PDA to the PC is transmitted from the PDA to the PC, such as the URL and any required cookies. Preferably, the application state elements include the actual location on the web page. The personal computer then executes a web browser, such as Microsoft's Internet Explorer™ or Mozilla's Firefox™ according to the transmitted application state elements. The web browser on the personal computer therefore opens the same URL at the same place facilitating a continuous experience with the user's current activity - reading, enabling a transaction or playing an online game for example.

EXAMPLE 3

[0000]

Electronic Books

[0029]

A user is reading an electronic book (e-book) on a desktop computer and wishes to transfer the application state to a PDA. The user couples the PDA to communicate with the desktop personal computer and chooses “Switch to PDA”. All application state elements required to transfer the application state of the electronic book is transmitted from the PDA to the PC, such as the entire or the relevant portion of an electronic book file or a link to it and the last location within the e-book which was displayed. The personal computer then executes an appropriate application capable of reading the e-book file according to the transmitted application state elements. The user can then continue reading from the same location in the e-book on the PDA.

[0030]

Referring to FIG. 2, operations 200 for transferring an application state from a first device to a second device according to a second embodiment of the invention are shown. Some applications are coordinated through, and may require a user to log into, an application server. Operations 200 contain additional steps 210 and 220. At step 210, a user is logged off the first application from the first device. At step 220, the user is logged on the second application from the second device. Referring to FIG. 3, instructions representing operations 200 can be stored and executed on one of any of a desktop computer 310, a personal data assistant 320 and an application server 330, alone or in combination, in system 300. In system 300, each of desktop computer 310, personal data assistant 320 and application server 330 are coupled to communicate with each other.

EXAMPLE 4

[0000]

Instant Messaging

[0031]

Instant Messaging (“IM”) typically requires a user to be logged in to an application server. A user is logged in to an instant messaging system from a desktop computer and instant messaging several contacts. Upon deciding to leave the desktop computer and switch the application over to a PDA, which is coupled to communicate with the desktop, the user chooses a “Switch to PDA” option. Application state elements relating to the instant messenger are transmitted from the desktop to the PDA. Application state elements in this embodiment of the invention may include conversation logs, open conversations and log-in status. The instant messenger application is then executed from the PDA according the transmitted application state elements. The instant messenger on the PDA will therefore show open conversations with the same contacts with the same conversation histories. Further, the user will have the same log-in status such as, for example, any one of “online”, “offline”, “invisible”, “away”, “busy” and “do not disturb”. The user is then logged off of the instant messenger application from the desktop computer and logged in to the instant messenger application from the PDA. A user therefore experiences a transition of application state from the desktop to the PDA while continuing to instant message his/her contacts.

[0032]

It will be understood that depending on the instant messenger application, some application state elements may not be implemented until after the user has logged in from the second device. In these instances, application state elements will be implemented by the second device following logging into the application server.

[0033]

Although the application state elements are described as being transmitted from the desktop computer to the PDA, it will be understood that with respect to applications that involve a separate application server, it is also possible for application state elements, that are resident on the application server, to be downloaded therefrom.

[0034]

In one embodiment of the invention, a user's IM contacts or “buddies” do not see a change in the user's online status. A person skilled in the art would understand that this could be achieved by various means. For example, once the “Switch to PDA” option has been selected, in addition to the transfer of application state elements described above, the application server maintains the online status of the user despite the user being temporarily disconnected. Any messages directed to the user during this time may be temporarily stored in a memory and then sent to the second device once the second device has logged in the application server.

[0035]

In another embodiment of the invention, the IM application server is disposed to automatically attempt to “Switch to PDA” if connection to the user's personal computer is lost, for example, as a result of the user logging off or shutting down the personal computer.

[0036]

Although the methods of the invention have been described with respect to only one application state being transferred from a first device to a second device. A person skilled in the art would understand that the states of multiple applications may be transmitted from the first device to a second device. For example, application state elements regarding both web browsing and a media player could be transferred and the user would be able to seamlessly continue web browsing and listening to the same song from a second device.

[0037]

The methods of the present invention have been described with reference to particular examples of types of software applications but are not limited thereto. The methods may be employed to transfer the application state of any application from a first electronic device to a second electronic device. For example, operations 100, or operations 200 if connection to a remote game server is required, would allow the transfer of a game from a first electronic device, such as a desktop, to a second electronic device, such as a PDA or a handheld game console.

[0038]

Device. Referring to FIG. 4, a mobile electronic device 402 capable of executing instructions representing the methods of the present invention is shown. The mobile electronic device 402 is preferably a two-way communication device having at least voice and advanced data communication capabilities, including the capability to communicate with other computer systems. Depending on the functionality provided by mobile electronic device 402, it may be referred to as a data messaging device, a two-way pager, a cellular telephone with data messaging capabilities, a wireless Internet appliance, or a data communication device (with or without telephony capabilities). Mobile electronic device 402 may communicate via a network 400, in this embodiment, any one of a plurality of fixed transceiver stations within its geographic coverage area.

[0039]

Mobile electronic device 402 will normally incorporate a communication subsystem 411, which includes a receiver, a transmitter, and associated components, such as one or more (preferably embedded or internal) antenna elements and, local oscillators (LOs), and a processing module such as a digital signal processor (DSP) (all not shown). Communication subsystem 411. As will be apparent to those skilled in field of communications, particular design of communication subsystem 411 depends on the communication network in which mobile electronic device 402 is intended to operate. In this embodiment of the invention communication subsystem 411 includes a receiver configured to receive data from a positioning system 470 to accurately determine the global position of mobile electronic device 402.

[0040]

Network access is associated with a subscriber or user of mobile electronic device 402 and therefore mobile electronic device 402 requires a Subscriber Identity Module or “SIM” card 462 to be inserted in a SIM IF 464 in order to operate in the network. Mobile electronic device 202 is a battery-powered device so it also includes a battery IF 454 for receiving one or more rechargeable batteries 456. Such a battery 456 provides electrical power to most if not all electrical circuitry in mobile electronic device 402, and battery IF 454 provides for a mechanical and electrical connection for it. The battery IF 454 is coupled to a regulator (not shown) which provides power V+ to all of the circuitry.

[0041]

Mobile electronic device 402 includes a controller such as a microprocessor 438 which controls overall operation of mobile electronic device 402. Communication functions, including at least data and voice communications, are performed through communication subsystem 411. Microprocessor 438 also interacts with additional device subsystems such as a display 422, a backlight 423 for illuminating display 422, a flash memory 424, a random access memory (RAM) 426, auxiliary input/output (I/O) subsystems 428, a serial port 430, a keyboard 432, a speaker 434, a microphone 436, a short-range communications subsystem 440, and any other device subsystems generally designated at 442. Microprocessor is also capable of adjusting the intensity of backlight 420 according to a state of at least one light condition affecting ambient light at the global position of the device. Some of the subsystems shown in FIG. 4 perform communication-related functions, whereas other subsystems may provide “resident” or on-device functions. Notably, some subsystems, such as keyboard 432 and display 422, for example, may be used for both communication-related functions, such as entering a text message for transmission over a communication network, and device-resident functions such as a calculator or task list. Operating system software used by microprocessor 438 is preferably stored in a persistent store such as flash memory 424, which may alternatively be a read-only memory (ROM) or similar storage element (not shown). Those skilled in the art will appreciate that the operating system, specific device applications, or parts thereof, may be temporarily loaded into a volatile store such as RAM 426.

[0042]

Microprocessor 438, in addition to its operating system functions, preferably enables execution of software applications on mobile electronic device 402. A predetermined set of applications which control basic device operations, including at least data and voice communication applications, will normally be installed on mobile electronic device 402 during its manufacture. A preferred application that may be loaded onto mobile electronic device 402 may be a personal information manager (PIM) application having the ability to organize and manage data items relating to the user such as, but not limited to, instant messaging (IM), e-mail, calendar events, voice mails, appointments, and task items. Naturally, one or more memory stores are available on mobile electronic device 402 and SIM 462 to facilitate storage of PIM data items and other information.

[0043]

The PIM application preferably has the ability to send and receive data items via the wireless network. In a preferred embodiment, PIM data items are seamlessly integrated, synchronized, and updated via the wireless network, with the mobile electronic device user's corresponding data items stored and/or associated with a host computer system thereby creating a mirrored host computer on mobile electronic device 402 with respect to such items. This is especially advantageous where the host computer system is the mobile electronic device user's office computer system. Additional applications may also be loaded onto mobile electronic device 402 through network 400, an auxiliary I/O subsystem 428, serial port 430, short-range communications subsystem 440, or any other suitable subsystem 442, and installed by a user in RAM 426 or preferably a non-volatile store (not shown) for execution by microprocessor 438. Such flexibility in application installation increases the functionality of mobile electronic device 402 and may provide enhanced on-device functions, communication-related functions, or both. For example, secure communication applications may enable electronic commerce functions and other such financial transactions to be performed using mobile electronic device 402.

[0044]

In a data communication mode, a received signal such as a text message, an e-mail message, or web page download will be processed by communication subsystem 411 and input to microprocessor 438. Microprocessor 438 will preferably further process the signal for output to display 422, to auxiliary I/O device 428 or both. A user of mobile electronic device 402 may also compose data items, such as e-mail messages, for example, using keyboard 432 in conjunction with display 422 and possibly auxiliary I/O device 428. Keyboard 432 is preferably a telephone type keypad, full alphanumeric keyboard or full or condensed QWERTY keypad. These composed items may be transmitted over a communication network through communication subsystem 411.

[0045]

For voice communications, the overall operation of mobile electronic device 402 is substantially similar, except that the received signals would be output to speaker 434 and signals for transmission would be generated by microphone 436. Alternative voice or audio I/O subsystems, such as a voice message recording subsystem, may also be implemented on mobile electronic device 402. Although voice or audio signal output is preferably accomplished primarily through speaker 434, display 422 may also be used to provide an indication of the identity of a calling party, duration of a voice call, or other voice call related information, as some examples.

[0046]

Serial port 430 in FIG. 4 is normally implemented in a personal digital assistant (PDA)-type communication device for which synchronization with a user's desktop computer is a desirable, albeit optional, component. Serial port 430 enables a user to set preferences through an external device or software application and extends the capabilities of mobile electronic device 402 by providing for information or software downloads to mobile electronic device 402 other than through a wireless communication network. The alternate download path may, for example, be used to load an encryption key onto mobile electronic device 402 through a direct and thus reliable and trusted connection to thereby provide secure device communication.

[0047]

Short-range communications subsystem 440 of FIG. 4 is an additional optional component which provides for communication between mobile electronic device 402 and different systems or devices, which need not necessarily be similar devices. For example, subsystem 240 may include an infrared device and associated circuits and components, or a Bluetooth™ communication module to provide for communication with similarly-enabled systems and devices. Bluetooth™ is a registered trademark of Bluetooth SIG, Inc.

[0048]

In accordance with an embodiment of the invention, mobile electronic device 402 is configured for sending and receiving data items and includes a PIM for organizing and managing data items relating to the user such as, but not limited to, instant messaging (IM), e-mail, calendar events, calendar appointments, and task items, etc. By way of example, mobile electronic device 402 is configured for voice (which may include push to talk over cellular (POC)) and data services, voice mail service, e-mail service, SMS and chat services to which the user subscribes. To provide a user-friendly environment to control the operation of mobile electronic device 402, PIM together with the operation system and various software applications resident on the station 402 provides a GUI having a main screen from which to access various services via applications stored on said device or available to it.

[0049]

Some or all the instructions representing the methods of the present invention may be stored in any of the memory stores described above and executed by microprocessor 438. Mobile electronic device 402 may act as either the first or second device of the present invention and it will be clear to a person skilled in the art that transmission of the application state elements can be accomplished by push to or pull from the other device. Similarly, instructions relating terminating the first application on the first device or conversely, executing the second application on the second device may both originate from microprocessor 438 on mobile electronic device 402 and cause further execution by a microprocessor on the other device.

[0050]

Data Carrier Product. The sequences of instructions which when executed cause the methods described herein to be performed by system 500 can be contained in a data carrier product for transmission such as embodied in a carrier wave according to one embodiment of the invention.

[0051]

Computer Software Product. The sequences of instructions which when executed cause the methods described herein to be performed by system 500 can be contained in a computer software product according to one embodiment of the invention. This computer software product can be loaded into and run by system 500.

[0052]

Integrated Circuit Product. The sequences of instructions which when executed cause the methods described herein to be performed by system 500 can be contained in an integrated circuit product including a coprocessor or memory according to one embodiment of the invention. This integrated circuit product can be installed in system 500.

[0053]

Although preferred embodiments of the invention have been described herein, it will be understood by those skilled in the art that variations may be made thereto without departing from the spirit of the invention or the scope of the appended claims.

Claims (18)

1. A method for transferring an application state, of a first application being executed on a first device, from the first electronic device to a second electronic device that is coupled to communicate with the first electronic device, comprising:

receiving an instruction from a user to transfer the application state;

transmitting at least one application state element to the second electronic device;

automatically commencing execution of a second application on the second electronic device according to the application state elements.

2. The method of claim 1, wherein prior to transmitting the application state elements, an instruction to transfer the application state is received.

3. The method of claim 1, wherein following executing the second application, the first application is terminated on the first electronic device.

4. The method of claim 1, wherein the first application and the second application are the same.

5. The method of claim 1, comprising logging off a user from the first application from the first electronic device.

6. The method of claim 5, comprising logging in the user to the second application from the second electronic device.

7. The method of claim 1, wherein the application is a media player.

8. The method of claim 7, wherein the at least one application state element is selected from the group consisting of a media, a streaming media location, a media title, a playlist, a shuffle order and an elapsed play time.

9. The method of claim 1, wherein the application is a browser.

10. The method of claim 9, wherein the at least one application state is selected from the group consisting of a URL and a page location.

11. The method of claim 1, wherein the application is an instant messenger.

12. The method of claim 11, wherein the at least one application state element is selected from the group consisting of conversation logs, open conversations and log-in status.

13. The method of claim 12, comprising logging out of an instant messenger account from the first device and logging in to the instant messenger account from the second device.

14. The method of claim 1, wherein the application is a video game.

15. A computer readable storage device storing statements and instructions for use in the execution in a computer of the method of claim 1.