[go: up one dir, main page]

GB2498229A - Synchronisation of transient state of first and counterpart applications - Google Patents

Synchronisation of transient state of first and counterpart applications Download PDF

Info

Publication number
GB2498229A
GB2498229A GB1204849.2A GB201204849A GB2498229A GB 2498229 A GB2498229 A GB 2498229A GB 201204849 A GB201204849 A GB 201204849A GB 2498229 A GB2498229 A GB 2498229A
Authority
GB
United Kingdom
Prior art keywords
application
text
transient state
content provided
counterpart
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.)
Withdrawn
Application number
GB1204849.2A
Other versions
GB201204849D0 (en
Inventor
Tanzim Husain
Graham Phillip Oldfield
Simon Paul Turvey
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Inc
Original Assignee
Nokia Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nokia Inc filed Critical Nokia Inc
Publication of GB201204849D0 publication Critical patent/GB201204849D0/en
Publication of GB2498229A publication Critical patent/GB2498229A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Apparatus (portable electronic device, laptop, mobile-phone, smartphone, tablet, personal digital assistant, digital camera, watch, desktop, monitor, server) using synchronisation command to synchronise transient state 506 of content 516 provided using a first application with transient state 558 of corresponding content provided using a counterpart application, the synchronisation command using the first application with last instance of transient state of the corresponding content provided using counterpart application. First application and counterpart application are executable on first device or on first 550 and second device 500. Persistent state of content provided using first application can also be synchronized. Applications can be available but not open prior to use of synchronisation command. The command can cause a first default application to open. Time intervals for synchronization are based on: use of synchronization command; generation of synchronisation comment, user activity associated with first/counterpart application. First and counterpart applications provide common level of or equivalent functionality and use different operating systems. Transient content can be: pointer, cursor, audio/video file position; zoom factor; location on page or of window on display; window size or form factor; toolbar settings, highlighted elements. Communication involving server; infra-red; Bluetooth (RTM); wireless; radio-frequency identification; telephonic, network, wired connection is also claimed.

Description

INTELLECTUAL
*. . PROPERTY OFFICE Application No. GB1204849.2 RTM Date:25 May2012 The following terms are registered trademarks and should be read as such wherever they occur in this document: Bluetooth Intellectual Properly Office is an operaling name of Ihe Patent Office www.ipo.gov.uk Synchronising the transient state of content in a counterpart application
Technical Field
The present disclosure relates to the field of user interfaces, associated methods, computer programs and apparatus, particularly in relation of synchronising the transient state of content in a counterpart application. Certain disclosed aspects/embodiments relate to portable electronic devices, for example so-called hand-portable electronic devices which may be hand-held in use (although they may be placed in a cradle in use). Such hand-portable electronic devices include so-called Personal Digital Assistants (PDAs), mobile phones, smartphones and tablet computers.
The portable electronic devices/apparatus according to one or more disclosed aspects/embodiments may provide one or more audio/text/video communication functions (e.g. tele-communication, video-communication, and/or text transmission (Short Message Service (SMS)/ Multimedia Message Service (MMS)/emailing) functions), interactive/non-interactive viewing functions (e.g. web-browsing, navigation, TV/program viewing functions), music recording/playing functions (e.g. MP3 or other format and/or (FM/AM) radio broadcast recording/playing), downloading/sending of data functions, image capture function (e.g. using a (e.g. in-built) digital camera), and gaming functions.
Background
Electronic apparatus and electronic devices are often configured to run one or more applications. Applications allowing a common level of functionality may be run at the same time on one or more such apparatus/devices. In some cases a number of such apparatus/devices may be linked by, for example, each being connected to a common remote server, or by each being connected in a network. In other cases, a number of such apparatus/devices may be standalone devices which may not be connected to each other.
A user may be able to perform a particular task using more than one electronic apparatus/device, and/or using more than one particular application.
The listing or discussion of a prior-published document or any background in this specification should not necessarily be taken as an acknowledgement that the document or background is part of the state of the art or is common general knowledge. One or more aspects/embodiments of the present disclosure may or may not address one or more of the
background issues.
Summary
In a first aspect there is provided an apparatus comprising at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following: use a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content provided using the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.
The first application may be executable on a first device; the counterpart application may be executable on a second device; and the synchronisation command may be configured to synchronise the transient state of content provided using the first application on the first device with the last instance of the transient state of the corresponding content provided using the counterpart application on the second device.
That is, the apparatus may be configured to use the synchronisation command at a first device to synchronise the transient state of content provided using the first application, the first application being located/executable on the first device. The synchronisation command relates to the transient state of corresponding content provided using the counterpart application on a second device, with the counterpart application being located/executable on the second device. The synchronisation command may thus be used to synchronise the transient state of content provided using the first application on the first device with the last instance of the transient state of the corresponding content provided using the counterpart application on the second device.
The first application and the counterpart application may be execLitable on a first device: and the synchronisation command may be configured to synchronise the transient state of content provided using the first application on the first device with the last instance of the transient state of the corresponding content provided using the counterpart application also on the first device.
That is, the apparatus may be configured to use the synchronisation command at a first device to synchronise the transient state of content provided using the first application, the first application being located/executable on the first device. The synchronisation command relates to the transient state of corresponding content provided using the counterpart application also on the first device, the counterpart application being located/executable also is on the first device. The synchronisation command may thus be used to synchronise the transient state of content provided using the first application on the first device with the last instance of the transient state of the corresponding content provided using the counterpart application also on the first device.
The synchronisation command may also be configured to synchronise the persistent state of content provided using the first application with the last instance of the persistent state of the corresponding content provided using the counterpart application.
The synchronisation command may be configured to be used to synchronise the transient state of content provided using a plurality of first applications with the transient state of corresponding content provided using a plurality of respective counterpart applications. That is, the transient state of content of more than one application may be synchronised with the transient state of corresponding content of more than one application using the synchronisation command.
The synchronisation command may be configured to be used to provide for synchronisation of one or more of the plurality of first applications, andlor one or more of the plurality of counterpart applications, one or more of which are available but not open prior to use of the synchronisation command. That is, not all the applications need be open to provide for synchronisation to take place. It may be that one counterpart application is open but the corresponding first application is not yet open but is available, when the synchronisation command is generated/used. The synchronisation command can then be used, for example, when the application is opened. It can even be used to synchronise the closed application such that when opened by the user, it appears synchronised.
The synchronisation command may be configured to be used to cause the first application to open. That is, the first application may be available but not yet open, and upon the synchronisation command being generated/used, the first application may be opened and the transient state of contents provided using the first application are synchronised with the last instance of the transient state of the corresponding content provided using the counterpart application.
The first application opened may be a default one of a plurality of available applications. The first application may be one of a plurality of available applications which are suitable for use with the transient state of content.
The synchronisation command may be configured to be used to provide for synchronisation in respect of an open first application. The first application may already be open on the first device upon the synchronisation command being generated/used.
The at least one memory and the computer program code may be configured to, with the at least one processor, cause the apparatus to use the synchronisation command based on one or more of: predetermined time intervals for synchronisation based on one or more of use of the synchronisation command, and generation of the synchronisation command; user activity associated with the first application; and user activity associated with the counterpart application.
Thus, the synchronisation command may be used at a predetermined time interval. This time interval may be the time interval between the generation of successive synchronisation commands, or between the use of successive synchronisation commands. The synchronisation command may be used based on user activity associated with the first application. That is, upon the user providing some interaction with the first application, the synchronisation command may be used. The synchronisation command may be used based on user activity associated with the counterpart application. That is, upon the user providing some interaction with the counterpart application, the synchronisation command may be used.
The first application and the counterpart application may be provided for use on the respective first and second devices by accessing respective one or more memories located with the first and second devices. Each device may store respective applications on their respective memories.
The transient state of content provided using the first application and the transient state of corresponding content provided using the counterpart application may each be provided on the respective first and second devices by accessing respective one or more memories located with the first and second devices. Each device may store respective applications and may store the transient state of content on their respective memories.
The first application and the counterpart application may be provided for use on the respective first and second devices by communication with at least one remote server. Thus, the first and second devices may require communication with at least one remote server to provide for use of the respective first and the counterpart application. In certain embodiments, the first and/or counterpart application can be considered to be distributed between the device and the server, with parts of the application on the respective device/server needing to be run together to perform the tasks provided by the application.
The first application and the counterpart application may be provided for use on the first device by accessing one or more memories located with the first device. The first device may store applications, and the transient state of content provided by such applications, in a memory associated with the device.
The first application and the counterpart application may be configured to provide a common level of functionality. Each application may have a common level of functionality, in that the same tasks may be performed using either application.
The first application and the counterpart application may be configured to provide equivalent functionality. For example, two word processing applications may be produced by different organisations, but may provide essentially the same functionality, that is, allow a user to perform the same tasks in a similar way (even with a different user interface) regardless of which application he chooses to use.
The first application and the counterpart application may be configured to each operate using is different operating systems. Each application may be configured to run on one or more operating systems. It may be that the first application can operate using one operating system, and the counterpart application can operate using a different operating system.
The first device and the second device may otherwise be independently operable to provide the respective functionality of the first application and of the counterpart application. The first device may be able to provide the functionality of the first application, and the second device may be able to provide the functionality of the counterpart application, with no communication between the first device and the second device. The two devices need not be connected, e.g. via a network, in order for each device to provide an application for use.
The first device and the second device may be configured to independently run a plurality of applications providing respective functionalities. The first device may be able to provide the functionality of several applications, and without being connected to the first device (e.g. via a network), the second device may be able to provide the functionality of several other applications, some of which may be counterparts to some applications available on the first device. That is, the two devices need not be connected in order for each device to provide a plurality of applications for use.
The transient state of content may comprise one or more of: a mouse pointer position, a text cursor position, a zoom factor, a location on a page, a window size, a position in an audio or video file, a window form factor, a location of a window on a display, toolbar settings, and a highlighted element.
The apparatus may be a portable electronic device, a laptop computer, a mobile phone, a smartphone, a tablet computer, a personal digital assistant, a digital camera, a watch, a non-portable electronic device, a desktop computer, a monitor, a server, or a module/circuitry for one or more of the same.
The apparatus may be the second device or a module/circuitry for one or more of the same.
The apparatus may be the first device or a module/circuitry for one or more of the same The first device and the second device may be configured to be communicatively linked by one or more of: an infra-red connection, a Bluetooth connection, a wireless connection, a radio frequency identification (REID) connection, a telephonic connection, a physical wired connection, a network connection, and manually.
In another aspect there is provided a method comprising: using a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content provided using the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.
In another aspect there is provided a computer readable medium comprising computer program code stored thereon, the computer readable medium and computer program code being configured to, when run on at least one processor, perform at least the following: use of a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content on the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.
In another aspect there is provided an apparatus comprising: means for using a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content provided using the first application with the last instance at the transient state of the corresponding content provided using the counterpart application.
It will be appreciated that the use of a synchronisation command on one hand is accompanied by the corresponding generation of the synchronisation command on the other hand. Such corresponding generation aspects are also included within the present disclosure.
For example, in another aspect there is provided an apparatus comprising: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following: generate a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content provided using the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.
In another aspect there is provided a method comprising generating a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content provided using the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.
In another aspect there is provided a computer readable medium comprising computer program code stored thereon, the computer readable medium and computer program code being configured to, when run on at least one processor, perform at least the following: generation of a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content on the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.
In another aspect there is provided an apparatus comprising means for generating a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content provided using the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.
The present disclosure includes one or more corresponding aspects, embodiments or features in isolation or in various combinations whether or not specifically stated (including claimed) in that combination or in isolation. Corresponding means for performing one or more of the discussed functions are also within the present disclosure.
Corresponding computer programs for implementing one or more of the methods disclosed are also within the present disclosure and encompassed by one or more of the described embodiments.
The above summary is intended to be merely exemplary and non-limiting.
Brief Description of the Figures
A description is now given, by way of example only, with reference to the accompanying drawings, in which: figure 1 illustrates an example apparatus according to the present disclosure; figure 2 illustrates another example apparatus according to the present disclosure; figure 3 illustrates a further example apparatus according to the present disclosure; figures 4a-4c illustrate a text editing application being synchronised over three different apparatus/devices; figures 5a-5b illustrate an application for image manipulation synchronised over two different apparatus/devices; figures 6a-6c illustrate a spreadsheet/data handling application synchronised over two different apparatus/devices; figures 7a-7b illustrate one device with two synchronised e-mail client applications; figure 8 illustrates a flowchart according to a method of the present disclosure; figure 9 illustrates a flowchart according to a second method of the present disclosure; figure 10 illustrates schematically a computer readable medium providing a program; and figure 11 illustrates a schematic representation of one example of a synchronisation command.
Description of Example Aspects/Embodiments
Many consumers own a number of different electronic devices. For example, an average person in the developed world may have a mobile phone (possibly a smart phone), a desktop computer! a laptop computer, a portable music player, and/or a tablet computer. Each of these devices has its own distinct functionality, but each device may also offer some overlapping functionality with one or more other devices. Each device often will be able to provide several different applications for use, whether stored on the device, stored at a remote server, or distributed over a network. Some applications may share a common level of functionality, such as a text-message editing application and a word processing application allowing the creation and editing of text based content. Some applications may have equivalent functionality such as two different e-mail clients allowing the same actions to be performed, but perhaps via differently organised menu systems.
Because of the multi-functionality of electronic devices and compatibility of the different applications available for use, users often utilise multiple devices at once. For example, a user at home may choose to browse the internet on their laptop, have a word document open on their desktop computer, while listening to music on their portable music player, and have their phone on standby on the desk beside them.
It may be beneficial to a user of such apparatus/devices to be able to perform tasks in one application, or in different applications, using more than one apparatus/device. For example, the user may wish to, after editing a word document on their desktop computer, transfer the document file to their laptop to continue working on the document using their laptop, for example if taking a train journey later that day. As another example, a user may be browsing the internet on their laptop, but wish to continue browsing using their mobile phone, for example if they are going out to meet a friend and do not want to take their laptop with them.
As another example, of a user wishing to use multiple devices, a user may be provided with data in a spreadsheet and wish to plot sophisticated graphs using that data a graph plotting application. As another example, a user may receive an e-mail on his or her smartphone, and wish to reply to that e-mail using a laptop computer or a tablet computer as they may find it easier to type on a larger keyboard than that available on the smartphone. As another example, a user may take a photograph using the camera built into his mobile phone, but may wish to manipulate the image using a photo editing application on his tablet computer, laptop, or desktop computer.
It may also be beneficial for a user not only to be able to perform a task in more than one application on different devices, but to have an easy and intuitive way of transferring the task being performed from one application to another. This may involve closing one application and opening another application in order to continue the task being performed. However, in doing this, it may be imagined that some information is lost due to the transfer. In the example of moving a word processing task from one application/device to another application/device, such information which would be lost during the transfer may include the position of the text cursor (caret) in the text, the zoom settings, the page being viewed, the font settings enabled (e.g. bold, italic, strikethrough). In the example of transferring the task of browsing an internet site containing video content, information lost of transferring the task from one application/device to another application/device may include the position on the webpage, the zoom factor, the resolution of the video, and the audio settings. It may provide a benefit to the user if such data were preserved between task transfers.
In any application running (and thUs open) on any given device, a lot of information is made available to that application. Some of that information can be considered to be persistent, and some of it can be considered "transient". We can refer to the application as having a "persistent" state and a "transient state". "Persistent" and "transient" states are known terms in the art. The persistent state can be thought of as the state that persists between open instances of an application. The persistent state represents data that is saved and can be viewed whenever the application is opened. In contrast, the transient state is the data that will not ordinarily persist between instances of an application (unless saved for a recovery file for use following a critical failure of the running application).
For example, two users might each use different programs on their own devices to open and edit a spreadsheet document. Some of the information, like the size of the spreadsheet and the contents of each cell are necessarily persistent between applications. Such information is persistent and saved by each application so that that information can be recalled next time the spreadsheet is opened. Whenever a user has the spreadsheet open there is a lot of information that won't be saved, such as the current view of the spreadsheet indicating what portion of the document is selected, or being looked at, what is the magnification, where the user's cursor is, and which cell is the user currently editing, when the application is actually closed. Such information can be regarded as the transient state and would not normally be saved by a given application.
If a first user is editing their spreadsheet and wishes to switch to using the second user's device with an alternative program, normally the first user would need to save and close (to avoid duplicate open instances of the same application) the spreadsheet on his device before re-opening it from the other device and thus losing all the transient information.
However, if the transient state information can be provided by one spreadsheet editor application to the other, between the two devices, then the second program could be configured using the transient information from the first device so that what the user sees on the second user's device is the equivalent to what he saw on his own device. The switch between using one device and another would be much smoother and save the user a lot of time getting the second editor back to the state in which the first editor was before the switch, in transferring the transient data than if the user was required to re-setup all the transient data upon opening the spreadsheet file in the second spreadsheet editor application on the second device.
The two spreadsheet editors could be different programs running on completely different devices with different operating systems and the programs' user interfaces might look very different, particularly if the devices have a different form factor (such as a mobile phone screen compared with a laptop screen). Provided that both programs are equipped to share transient state information, then such information could be moved between different applications on different devices.
To transfer transient state information between applications, the transient state needs to be shared, for example by being synchronised between the applications running on each device.
There are many ways in which this can be done. In one example, this may be achieved by replicating the transient state information locally at a given device. The information may be provided if required, for example after a prompt is provided, or after a predetermined time interval.
It may also provide a benefit to a user of multiple devices if there were a relatively easy and intuitive way to transfer an open instance of an application (a task) from one device/application to another device/application. For instance, closing the first application on the first device, and then opening the second application on a second device, may not be very intuitive for a user. If the user were able to, for example, perform a gesture on the touch sensitive screen of one device to transfer the open instance of the application to the second device and then the user may recommence working on the same task in the second application/device, then the user may experience a smoother and simpler way of transferring tasks in applications between devices.
Aspects of the current disclosure may be considered to provide features of an apparatus which may generate/use a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content provided using the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.
Example embodiments will now be described in detail with reference to the figures.
Figure 1 shows an apparatus 100 comprising a processor 110, memory 120, input I and output 0. In this embodiment only one processor and one memory are shown but it will be appreciated that other embodiments may utilise more than one processor and/or more than one memory (e.g. same or different processor/memory types). The apparatus 100 may be an application specific integrated circuit (ASIC) for a portable electronic device. The apparatus may also be a module for a device, or may be the device itself, wherein the processor is a general purpose CPU and the memory 120 is general purpose memory.
The input I allows for receipt of signalling to the apparatus 100 from further components. The output 0 allows for onward provision of signalling from the apparatus 100 to further components. In this embodiment the input I and output 0 are part of a connection bus that allows for connection of the apparatus 100 to further components. The processor 110 is a general purpose processor dedicated to executing/processing information received via the input I in accordance with instructions stored in the form of computer program code on the memory 120. The output signalling generated by such operations from the processor 110 is provided onwards to further components via the output 0.
The memory 120 (not necessarily a single memory unit) is a computer readable medium (such as solid state memory, a hard drive, ROM, RAM, Flash or other memory) that stores computer program code. This computer program code stores instructions that are executable by the processor 110, when the program code is run on the processor 110. The internal connections between the memory 120 and the processor 110 can be understood to provide active coupling between the processor 110 and the memory 120 to allow the processor 110 to access the computer program code stored on the memory 120.
In this embodiment the input I, output 0, processor 110 and memory 120 are electrically connected internally to allow for communication between the respective components I, 0, 110, 120, which in this example are located proximate to one another as an ASIC. In this way the components I, 0, 110, 120 may be integrated in a single chiplcircuit for installation in an electronic device. In other embodiments one or more or all of the components may be located separately (for example, throughout a portable electronic device such as devices 200, 300, or through a cloud', and/or may provide/support other functionality.
One or more examples of the apparatus 100 can be used as a component for another apparatus as in figure 2, which shows a variation of apparatus 100 incorporating the functionality of apparatus 100 over separate components. In other examples the device 200 may comprise apparatus 100 as a module (shown by the optional dashed line box) for a mobile phone or PDA or audio/video player or the like. Such a module, apparatus or device may just comprise a suitably configured memory and processor.
The example apparatus/device 200 comprises a display 240 such as, a Liquid Crystal Display (LCD), e-lnk, or touch-screen user interface. The device 200 is configured such that it may receive, include, and/or otherwise access data. For example, device 200 comprises a communications unit 250 (such as a receiver, transmitter, and/or transceiver), in communication with an antenna 260 for connection to a wireless network and/or a port (not shown). Device 200 comprises a memory 220 for storing data, which may be received via antenna 260 or user interface 230. The processor 210 may receive data from the user interface 230, from the memory 220, or from the communication unit 250. Data may be output to a user of device 200 via the display device 240, and/or any other output devices provided with apparatus. The processor 210 may also store the data for later user in the memory 220. The device contains components connected via communications bus 280.
The communications unit 250 can be, for example, a receiver, transmitter, and/or transceiver, that is in communication with an antenna 260 for connecting to a wireless network and/or a port (not shown) for accepting a physical connection to a network, such that data may be received via one or more types of network. The communications (or data) bus 280 may provide active coupling between the processor 210 and the memory (or storage medium) 220 to allow the processor 210 to access the computer program code stored on the memory 220.
The memory 220 comprises computer program code in the same way as the memory 120 of apparatus 100, but may also comprise other data. The processor 210 may receive data from the user interface 230, from the memory 220, or from the communication unit 250.
Regardless of the origin of the data, these data may be outputted to a user of device 200 via the display device 240, and/or any other output devices provided with apparatus. The processor 210 may also store the data for later user in the memory 220.
Device/apparatus 300 shown in figure 3 may be an electronic device (including a tablet personal computer), a portable electronic device, a portable telecommunications device, or a module for such a device. The apparatus 100 can be provided as a module for device 300, or even as a processor/memory for the device 300 or a processor/memory for a module for such a device 300. The device 300 comprises a processor 385 and a storage medium 390, which are electrically connected by a data bus 380. This data bus 380 can provide an active coupling between the processor 385 and the storage medium 390 to allow the processor 380 to access the computer program code.
The apparatus 100 in figure 3 is electrically connected to an input/output interface 370 that receives the output from the apparatus 100 and transmits this to the device 300 via data bus 380. Interface 370 can be connected via the data bus 380 to a display 375 (touch-sensitive or otherwise) that provides information from the apparatus 100 to a user. Display 375 can be part of the device 300 or can be separate. The device 300 also comprises a processor 385 that is configured for general control of the apparatus 100 as well as the device 300 by providing signalling to, and receiving signalling from, other device components to manage their operation.
The storage medium 390 is configured to store computer code configured to perform, control or enable the operation of the apparatus 100. The storage medium 390 may be configured to store settings for the other device components. The processor 385 may access the storage medium 390 to retrieve the component settings in order to manage the operation of the other device components. The storage medium 390 may be a temporary storage medium such as a volatile random access memory. The storage medium 390 may also be a permanent storage medium such as a hard disk drive, a flash memory, or a non-volatile random access memory The storage medium 390 could be composed of different combinations of the same or different memory types.
Figures 4a-4c illustrate an example embodiment of three apparatus (devices) in use: a portable electronic device such as a tablet PC 400 on the left, a desktop or laptop computer 430 in the centre, and a smartphone/mobile phone/PDA 460 on the right. It may be imagined that a user has all three devices 400, 430, 460 on a desk in front of him/her.
The user is composing 466 a message 462 in an application 468 running on the rightmost device 460. The text cursor 464 is positioned in the text at the place where the user is currently typing. The text cursor could of course be positioned in the middle of the text, for example, if the user is editing previously entered text or adding additional text into already-written text.
It can be seen that the centre device 430 is currently showing a sub-window 434 displaying the text composed so far in the corresponding application 442 (shown in figure 4c) running on the centre device 430 by the user. The text corresponds to that entered in the message currently being composed 466 on the rightmost device 460. The centre device 430 is also showing a separate application 432 in the background, and a further application 436 in a sub-window in the foreground. The leftmost device 400 is also displaying the text composed so far 402 in an open text-editing application 404. In this example, the three devices are configured to use and generate synchronisation commands. In the example of figure 4a, the three devices have previously synchronised the transient state of content (and synchronised any other (persistent) content) so that all the devices are currently displaying at least the same text "What shall we". The user has, since the last synchronisation, continued to compose the text message on the device 460 by adding the text "do with" so that the message displayed on device 460 currently reads "What shall we do with" 462. The user wishes to synchronise the transient state of content across all three devices, and also wishes to continue to compose the message on the centre laptop/desktop computer device 430.
Perhaps the user would rather type using the larger keyboard of the device 430 than the smaller keyboard of device 460.
Figure 4b shows that the user 438 is providing an input 440 on the (first) device 430. The user input 438 is instructing the (first) device 430 to generate a synchronisation command which will be used by the other two devices 400, 460. This input 438 may be considered to be user activity associated with the first application 442 (shown in figure 4c). The user input 438 made on the (first) device 430 is associated with the first application 442 in that the (first) device 430 is running the first application 442, shown in a sub-window 424 in figures 4a and 4b. It may be considered in this example that the user application 442 is running in the background of the device 430, and correspondingly the application 442 is shown as an indicator sub-window 434 until being actively used by a user (as in figure 4c). In other examples, the application 442 may be running in the background of the device 430 and no indicator may be displayed on the device 430. In another example, an indicator such as an is item in a task bar or an icon may be displayed to indicate that the application is running in the background, but such a task bar/icon indicator may not show any details of the activity taking place in the application.
Due to the user input 438 made in figure 4b, a synchronisation command is generated and used to synchronise the transient state of content 444, 446 provided using the first application 442 with the transient state of corresponding content 462, 464 provided using a counterpart application 468. This is shown in figure 4c. The transient state of content 444, 446 provided using the first application 442 which is running on the first device 430 includes the position of the text cursor 444, which is at the end of the message composed so far. In this example, the text entered so far 464 on the device 460 has not yet been saved, and so may also be considered to be transient data. It can be imagined that if the application 468 was closed before the content of the file (the text 462 "What shall we do with") had been saved, then on reopening the application, the text "What shall we do with" would not usually be available for the user. Usually, a user would be prompted with a message to save the text entered upon attempting to close the application had they not already saved it. In this example, however, the application has not been closed and so any such prompt would not have been provided.
The text entered so far 462 may be, in other examples, considered to be persistent, if the text has been saved (to a memory, for example). If the text 462 was saved, and the application was closed and opened again (in any application on any device which is configured to display text), then the saved text stored in the saved file would appear as it appeared just before the application was closed.
The synchronisation command in this example synchronises the transient state of content 444, 446 provided using the first application 442 with the last instance of the transient state of the corresponding content 462, 464 provided using the counterpart application 468. The last instance is the transient content just before the synchronisation command is generated/used; this includes the text 462 "What shall we do with" and the position of the text cursor 464 at the end of the text composed so far. After the synchronisation command has been generated/used, the first application 442 is now active and is displaying the text composed so far 446 "What shall we do with", as it appeared in the counterpart application just before the synchronisation, and the position of the text cursor 444 is also provided in the same way as in the counterpart application 468 on the second device 460 just prior to the synchronisation command being generated/used. The text cursor in this example is not shown any longer in the counterpart application 468, but it is now shown 442 in the first application 444 SO that the user may continue to compose his/her message using the first device 430.
Note also that, the synchronisation command has been used on the first device 430, and on the leftmost device 400, so that the application 404 running on device 400 is also showing the synchronised text "What shall we do with" 406. Prior to the synchronisation command, this device 400 (and the first device 430) displayed the previous text "What shall we" 402.
Therefore the synchronisation command has been used to synchronise the transient state of content provided using a plurality of applications 404, 442, with the transient state of content provided using a counterpart application 468.
In this example, all three applications 404, 442, 468 are already open upon the synchronisation commands being generated/used. In other examples, one or more applications may not be open prior to use of the synchronisation command, but they may be available (i.e. the application(s) may be stored on a memory of a device, or may be accessed from a remote server). In other example, the first and/or counterpart application(s) can be considered to be distributed between the device and the server, with parts of the application on the respective device/server needing to be run together to perform the tasks provided by the application.
The three applications 404, 442, 468 also all provide equivalent functionality in that they are all basic text editing applications. It may be imagined that in other examples, the three applications 404, 442, 468 may all provide a common level of functionality but not necessarily exactly the same overall functionality. For example, the device 400 may have available a text message editing application allowing for the composition and editing of relatively short text messages without any complex formatting. Devices 430 and 460 may have (possibly different) more sophisticated text editing application available such as word processing applications which allow for the composition and editing of longer and/or more complex text-based documents. In addition, the three applications 404, 442, 468 may operate using different operating systems.
The applications 404, 442, 468 in this example are also stored on respective memories located with each respective device 400, 430, 460. In other examples, the applications may be provided for use on the respective devices by communication with at least one remote server. In this example also, the transient state of content provided using the first application and the transient state of corresponding content provided using the counterpart applications are each provided on the respective first and other devices by accessing respective one or more memories located with the first and other devices. Thus there is a local copy of the transient state of content stored locally at each device/application.
Of course, in other examples the applications 404, 442, 468 may be separate instances of the same or different application(s) running on a single device (e.g. in different windows). In such cases, synchronisation of the applications' transient states of content may be performed internally within the single device.
It will be appreciated that in other examples, all three devices may display both the text cursor 444 (also the transient state of content along with the non-saved text) so that the user is able to edit the text in any application 404, 442, 468. In other examples also, rather than the user providing an input to the first device 430, it may be imagined that the user provides user activity by providing an input to the counterpart device 460, for example to push the application over to the first device 430 and cause a synchronisation command to be generated and used that way. In another example, it may be that the user need not provide any input or any activity, and that the synchronisation command is generated and used at predetermined time intervals for synchronisation.
It may be useful for the apparatus to use a synchronisation command upon user activity with either the first application or the counterpart application if, for example, the user has one or more devices which run on battery power, such as a mobile phone, smartphone or laptop.
Generating and using synchronisation commands at predetermined time intervals may not be required if the user is away from their desk for a period of time, and the generation/use of such synchronisation commands may unnecessarily drain the battery power of these devices.
For example, if the predetermined period of time for synchronisation is 5 seconds, and the user does not use the devices/apparatus for three hours (if, say, they are away from their desk at a meeting) then no inputs or user activity will be made and require synchronisation, but the battery power will be used by the synchronisation. In this scenario, it would be more useful for a user to generate/use synchronisation commands upon user activity with an application.
On the other hand, in the example of a user working at their desk, it may be useful for the synchronisation to take place regularly between devices without the need for the user to provide any specific user inputs in order to cause the synchronisation command to be generated/used. In this case generating/using a synchronisation command at regular intervals may benefit the user in that the transient state of content across all applications being used will be regularly synchronised without the user having to cause the synchronisation to happen. It may be that the user has the option of switching the trigger for synchronisation between occurring at predetermined time intervals for synchronisation, and between user activity triggering the synchronisation, depending on the user's current preferences.
The three devices 400, 430, 460 may be joined via the internet, and/or in a (private) sharing network to allow for the (e.g. secure) generation and use of synchronisation commands between them, and for the subsequent synchronisation the transient state of content provided using one application with the transient state of corresponding content provided using counterpart applications. The three devices 400, 430, 460 may also be independently operable, in that they may provide the functionality of each application available to each device without the need for any communicative network between devices, nor any synchronisation between devices of the transient state of content or other data. For example, the device 430 may operate perfectly well as a desktop computer without being networked or connected to any other device. Each of the three devices may also be able to independently run a plurality of applications (perhaps concurrently), each application providing its particular functionality. Thus, for example, the tablet device 400 may be able to run, several games, a music player, movie player, productivity packages, e-mail client(s), and other applications, without the need for any communication with the other two devices 430, 460.
Figures 5a-5b illustrate an example embodiment of two apparatus (devices) in use: a portable electronic device such as a mobile phone, smartphone or PDA 500 on the left, and a tablet computer 550 on the right. It may be imagined that a user has both devices 500, 550 to hand at the same time.
Device 500 has an in-built camera (not shown) and has an application available for use in taking photographs using the in-built camera. Figures 5a and Sb show the photo editing application running on the device 650 which has other functionality available to the user than the application running in device 500. For example, the device 500 can be used to make telephone calls, and so properties such as the current signal strength, Bluetooth connectivity and network connectivity are indicated in a status bar 502 alongside other indicators such as the current battery power and the time. Other information 504 such as the date and the weather at the current location of the device 500 are also displayed. Within the running photograph application on device 500, the user can see a photograph 516 that he has taken using the in-built camera, and which he has zoomed into to show a portion of the photograph 506, which includes a tree. There are options available for actions the user can take in relation to the current photograph, as shown by the icons 510, 512, 514. For example, the user has taken the photograph using the take photo" iconlbutton 510, and he may wish to send the photo to a contact in a message 512. He has used the zoom option 514, to zoom into an area of the photo 516. These are only example options of what a user may do in a photograph application; others may be envisaged.
The user has decided that he is happy with the zoomed area 506 of the photo 516 but would like to apply some shading effects to the image. The application running on the device 500 does not allow this functionality. Therefore the user has his tablet computer 550 available.
Device 550 in this example does not have an in-built camera, but it has an application available for photo editing which he wishes to use. Device 550 has other available functionality, as indicated by the icons 552; for example, the user can return to the home is page, compose an e-mail or other message, consult his calendar, enter a chat application to contact his friends, or refresh his screen. Other example functionality is of course possible.
Within the photo editing application available to the device 550, the user has many options available as indicated by the menu system 554 and the function icons 556. These menu options and function icons are shown to illustrate that the application running on device 550 has much more functionality than the application running on device 500. Therefore the user wishes to use the camera on his mobile phone 500, but edit his photos on the application available to his tablet computer 550.
In this example, the synchronisation command is generated/used to synchronise the transient state of content (including the zoomed area 558) provided using a first application (on the device 550) with the transient state of corresponding content (including the zoomed area 506) provided using a counterpart application. The first application is the photo editing application running on the first tablet computer device 550, and the counterpart application is the photo application running on the second mobile phone device 500. The synchronisation command has synchronised the transient state of content (the zoomed area 558 of the photograph) provided using the first application with the last instance of the transient state of the corresponding content (the zoomed area 506 of the photographs displayed on device 500) provided using the counterpart application. Therefore devices 500, 550, and the respective applications running on each are displaying the same content (both the persistent data, the photograph itself) and the same transient content (the zoomed area 506, 558) due to being synchronised. It may be imagined that the user is able to move the selected zoomed area 506 to a different area of the full photograph 516 (perhaps by dragging a zoom box indicated on the full photograph 516 to a different area on the photograph 516), and that upon the generation/use of the synchronisation command, the displayed zoomed area 558 of the photograph displayed on the first device 550 would be updated to match that selected from the full photo 516, and displayed 506 on the second device 500.
Figure Sb shows that the user 562 has applied a shading effect to the zoomed area of the photograph 560 using one of the options 556 available on the application running on device 550. The synchronisation command is generated/used again (although in other embodiments, synchronising back to the device 500 may not occur) to synchronise the transient state of content (now including the shading effect applied, but not yet saved) provided using a first application (now on the device 500) with the transient state of corresponding content (now including the shading effect 518) provided using a counterpart application (now on the device 550). The first application now is the photo application running on the mobile phone device 500, and the counterpart application is the photo editing application running on the tablet computer device 550. The synchronisation command has now synchronised the transient state of content (including the shading effect on the zoomed in area of the photograph 518) provided using the first application (on device 500) with the last instance of the transient state of the corresponding content (the shaded zoomed area 560 of the photograph on device 550) provided using the counterpart application. Therefore devices 500, 550, and the respective applications running on each are displaying the same content (both the persistent data, the photograph itself) and the same transient content (the zoomed area and the not-yet-saved, applied shading effect 518, 560) due to being synchronised.
The zoomed-in area and the shading effect applied may be, in other examples, considered to be persistent, if the zoomed in aiea and the shading effect applied had been saved (to a memory, for example). However, in this example, the user has not yet saved the changes made to the full original photograph (displayed 516 on device 500). He may wish to save any changes only after being happy with the overall zoom/effects applied so as not to lose any information captured in the original photograph 516.
In this example, both applications running on devices 500, 550 are already open upon the synchronisation commands being generated/used. In other examples, one or more applications may not be open prior to use of the synchronisation command, but they may be available (i.e. the application(s) may be stored on a memory of a device, or may be accessed from a remote server). The applications in this example provide a common level of functionality in that both allow some manipulation of photographs and images, but the application running on device 550 allows for more sophisticated image manipulation, whereas the application running on device 500 allows only relatively basic image manipulation. In addition, the two applications may operate using different operating systems.
is The applications in this example are also stored on respective memories located with each respective device 500, 550. In other examples, the applications may be provided for use on the respective devices by communication with at least one remote server. In this example also, the transient state of content provided using the first application and the corresponding transient state of content provided using the counterpart applications are each provided on the respective first and other devices by accessing respective one or more memories located with the first and other devices. Thus there is a local copy of the transient state of content stored locally at each device/application.
In this example the synchronisation command is generated and used at predetermined time intervals for synchronisation. In other examples, the synchronisation command may be used/generated dependent on user activity with one or other, or both, of the applications being used.
The two devices 500, 550 may be joined via the internet, and/or in a (private) sharing network to allow for the generation and use of synchronisation commands between them, and for the subsequent synchronisation the transient state of content provided using one application with the transient state of corresponding content provided using counterpart applications. The devices 500, 550 may also be independently operable, in that they may provide the functionality of each application available to each device without the need for any communicative network between devices, nor any synchronisation between devices of the transient state of content or other data.
Figures 6a-6c illustrate an example embodiment of two apparatus (devices) in use: a portable electronic device such as a mobile phone, smartphone or PDA 600 on the left, and a tablet computer (which could also be a desktop or laptop computer) 650 on the right. Again, a user may have both devices 600, 650 to hand at the same time.
A user is using a spreadsheet application 602 on device 600, which is currently displaying a series of cells 604. One cell 606 is highlighted as it is the cell currently in use. A user is entering numbers into cell 606 as indicated by the position of the text cursor 608. The highlighted cell 606 and text cursor position 608 are examples of transient data. Device 650 currently does not have any application running which shares a common level of functionality with the spreadsheet application 602, as illustrated by the blank screen 652.
The user has decided that she wishes to transfer the spreadsheet data, including the transient data, over to her computer 650 on which is available a data plotting application 660 (see figure 6c). The user wishes to perform some data manipulation which is not possible using the functionality of the spreadsheet application 602.
In this example, a synchronisation command is generated/used to synchronise the transient state of content (including the currently highlighted cell 606 and the text cursor position 608) provided using a first application 660 with the transient state of corresponding content provided using a counterpart application 602. The first application is the data manipulation application running on the first tablet computer device 650, and the counterpart application is the spreadsheet application running on the second mobile phone device 600.
In this example the synchronisation command is generated/used based on user activity associated with the counterpart application (although the counterpart application is not yet open on device 650 prior to use of the synchronisation command as shown in figures Ba and 6b, it is available to that device 650). The user 656 is providing a slide user input 658 to the screen of device 650 to instruct the device 650 to look for 654 a first application with at least a common level of functionality (but which may be an equivalent application) and to generate the synchronisation commancL The synchronisation command is therefore used to cause the first application 660 to open. In this example, the application made available 660 due to the generation/use of the synchronisation command is one of a plurality of available applications.
The chosen application 600 has been made available as a default one of the plurality of applications available to the first device 650. For example, the device 650 may have other available applications which share a common level of functionality with that of the application 602. The default application chosen 660 may be a default pre-selected by the user! it may be a default (determined by one, or other, of the devices) to be the most compatible with the data (persistent and transient state of content) being synchronised with, or it may be the last used suitable application available to the device 650. Other ways of selecting a default are possible also.
It will be appreciated that the user may be able to perform a gesture/activity relating to the first application, for example, by sliding a finger across the screen of the device 600, in order to cause the apparatus to generate/use a synchronisation command. In other examples, a synchronisation command may be generated/used based on predetermined time intervals for synchronisation. For example, the devices may synchronise their persistent and transient states of content every e.g. 5 minutes. The predetermined time interval may be selectable by the user. The user may be able to switch between the synchronisation command being generated/used based on either predetermined time intervals for synchronisation or user activity associated with either the first or the counterpart application.
In figure 6c, the synchronisation command has synchronised the transient state of content (the cell highlighting 664 and the text cursor position 666) provided using the first application 660 with the last instance of the transient state of the corresponding content (the cell highlighting 606 and the text cursor position 608) provided using the counterpart application 602. Therefore devices 600, 650 and the respective applications 602, 660 running on each device are displaying the same content (both the persistent data, such as the number of cells and the entries they contain) and the same transient content (the cell highlighting 606, 664 and the text cursor position 608, 666) due to being synchronised.
Figure 6c also shows that the application 660 has additional functionality to that available in the application 602, including different menu/icon based options 668, data plotting capability 670 and a different data entry mechanism (the displayed keypad 672). The two applications 602, 660, share a common level of functionality in that both can display and allow the editing of the spreadsheet 604, 662.
In this example, the application 602 is already running on device 600, but the application 660 is available but not open prior to the generation/use of the synchronisation command. In other examples, both applications may be open upon generation/use of the synchronisation command. In addition, the applications 602, 660 may operate using the same, or using different operating systems. Each device 600, 650 may be configured to independently run a plurality of applications providing respective functionalities.
Application 602 in this example is stored on memory located with the device 600, but application 660 is accessed from a remote server to be used by the device 650. In other examples, the application(s) may be available for use by each respective device by being distributed over a network including at least one remote server. In other examples, each device 600, 650 may have a corresponding memory located with it, on which is stored each application for use by that device. In this example, the transient state of content provided using the first application and the corresponding transient state of content provided using the counterpart application are each provided on the respective first and other devices by accessing respective one or more memories located with the first and other devices. Thus there is a local copy of the transient state of content stored locally at each device/application.
The two devices 600, 650 may be joined via the internet, and/or in a (private) sharing network to allow for the generation and use of synchronisation commands between them, and for the subsequent synchronisation the transient state of content provided using one application with the transient state of corresponding content provided using counterpart applications. The devices 600, 650 may also be independently operable.
Figures 7a-7b illustrate an example embodiment of an apparatus (one device, such as a desktop or laptop computer 700) in use. The apparatus 700 has available for use at least two e-mail clients. In this example a user wishes to switch from using one e-mail client to another e-mail client during the composition of a reply e-mail.
Figure 7a shows one e-mail client indicated by the icon 704. The e-mail client displays a number of different filing categories 702 (such as Inbox, Drafts, Deleted items, Outbox, reminders and Tasks). The e-mail client 704 also shows details of items currently in the Inbox 706. such as the name and the starting portion of any e-mails stored in the Inbox. The user is currently using the e-mail client 704 to compose a reply message which is displayed in a window 708. This reply e-mail contains the transient state of content, including the text currently composed but not saved 712 (for example, not yet saved as a draft), and the position of a text cursor 710 at the end of the message composed so far. Also included in the reply e-mail is other data content (so-called persistent content) which is the content of the e-mail being replied to 714, which includes the date and time at which the initial e-mail was received, the name of the sender, the subject of the e-mail, and the e-mail content.
Figure 7b shows that the user has switched to using another e-mail client (indicated by the icon 724). This other e-mail client 724 also displays a number of different filing categories 722 (such as Inbox, Drafts, Deleted items, and others are possible). The e-mail client 724 also shows details of items currently in the Inbox 726, such as the name and the starting portion of any e-mails in the Inbox. The generation/use of a synchronisation command between figures 7a and 7b means that the reply e-mail which was being composed by the user in the application 704 in figure 7a is displayed 728 in a portion of the display screen in figure 7b, and includes the same transient state of content (the text currently composed but not saved 732, and the position of a text cursor 730 at the end of the message composed so far.) Again, also included in the reply e-mail are other data content (so-called persistent content) which is the content of the e-mail being replied to 734 as before (714 of figure 7a), the subject of the e-mail, and the sender details (name and time of sending).
In this example, the first application 724 and the counterpart application 704 are executable on a first device, device 700. The synchronisation command is configured to synchronise the transient state of content 730, 732 provided using the first application 724 on the first device 700 with the last instance of the transient state of the corresponding content 710, 712 provided using the counterpart application 704, also on the first device 700.
The first application 724 and the counterpart application 702 are provided for use in this example on the first device 700 by accessing one or more memories located with the first device 700. In other examples it may be that the first application 724 and the counterpart application 704 are provided for use on the first device 700 by communication with at least one remote server.
In this example also, the transient state of content 730, 732 provided using the first application 724 and the corresponding transient state of content 710, 712 provided using the counterpart application 704 are each provided on the first device 700 by accessing one or more memories located with the first device 700. A local copy of the transient state of content stored is therefore locally at the device 700. It may be that, if the device 700 was in communication with one or more remote servers, that the transient state of content 730, 732 provided using the first application 724 and/or the corresponding transient state of content 710, 712 provided using the counterpart application 704 are provided on the first device 700 by accessing one or remote servers.
In this example the synchronisation command is generated and used at predetermined time intervals for synchronisation (for example, every minute). In other examples, the synchronisation command may be used/generated dependent on user activity with one or other, or both, of the applications being used.
The device 700 may be independently operable, in that it may function, including the generation and use of synchronisation commands, without any connection to an external network or other device(s), and provide the functionality of the first application and the counterpart application.
In the above examples, the transient state of content has been illustrated as being a text cursor position, a zoom factor, a location on a page, and a highlighted element. Other possible examples of the transient state on content include; a mouse pointer position (that is, the location of the mouse pointer on a screen); a window size (for example, if synchronising an application between two desktop computers, the size of a window displayed on a first device may be replicated in the corresponding window displayed on the second device); a position in an audio or video file (such as 25 minutes into a 2 hour movie, or 30 seconds from the end of a 3 minute audio track); a window form factor (for example, if synchronising an application between two laptop computers, the form factor of a window (e.g. 1 unit high x 1.5 units across) displayed on a first device may be replicated in the corresponding window displayed on the second device); a location of a window on a display (e.g. in the top right of a display), and toolbar settings (such as having bold" enabled in a toolbar of a word processor, or having a font setting in a toolbar of "Anal, 12 pt').
is In the above examples, the apparatus have been illustrated using the examples of a portable electronic device, a laptop computer, a mobile phone, a Smartphone, a tablet computer, a personal digital assistant, a non-portable electronic device, a desktop computer and a server.
Other possible apparatus include a digital camera, a watch, a monitor, or a module/circuitry for one or more of the same. The apparatus may be the first device only of two devices or the second device only of two devices, or a module/circuitry for one or more of the same.
Where the devices are configured to be communicatively linked, such a link may be by one or more of: an infra-red connection, a Bluetooth connection, a wireless connection, a radio frequency identification (RFID) connection, a telephonic connection, a physical wired connection, a network connection, and manually. In certain embodiments, the first and/or counterpart application(s) may be distributed between the device(s) and one or more servers, with parts of the application(s) on the respective device(s)/server(s) needing to be run together to perform the tasks provided by the application(s).
Figure 8 shows a flow diagram illustrating the method step 802 and is self-explanatory.
Similarly Figure 9 shows a flow diagram illustrating the method step 902 and is also self-explanatory Figure 10 illustrates schematically a computer/processor readable medium 1000 providing a program according to an embodiment. In this example, the computer/processor readable medium is a disc such as a digital versatile disc (DVD) or a compact disc (CD). In other embodiments, the computer readable medium may be any medium that has been programmed in such a way as to carry out an inventive function. The computer program code may be distributed between the multiple memories of the same type, or multiple memories of a different type, such as ROM, RAM, flash, hard disk, solid state, etc. An example representation of the synchronisation command is shown in figure 11. The synchronisation command 1100 may comprise a recipient address 1102 and/or a source address 1104. depending on how the synchronisation command 1100 is to be generated/used. For example, if the synchronisation command 1100 is generated at device A and is to be used at device A by a different application, then the recipient and source addressed may be of the respective applications, for example. If the synchronisation command 1100 is generated at device A and is to be used at device B, the recipient address 1102 will be required. Both the source address 1104 and the recipient address 1102 may be included in the synchronisation command 1100, but may not necessarily be required, for example, if the synchronisation command is provided as a general broadcast.
The synchronisation command 1100 will contain some information relating to the transient content 1106 with which one or more applications are to be updated upon generation/use of the synchronisation command 1100. Also, the application type and/or the characteristics of application to be used 1108 are included so that any device in receipt of the synchronisation command will know what application(s) is/are suitable for use in displaying the transient content 1106. Although not shown, details relating to the persistent content may also be provided as part of the synchronisation command 1100.
Any mentioned apparatus/device/server and/or other features of particular mentioned apparatus/device/server may be provided by apparatus arranged such that they become configured to carry out the desired operations only when enabled, e.g. switched on, or the like. In such cases, they may not necessarily have the appropriate software loaded into the active memory in the non-enabled (e.g. switched off state) and only load the appropriate software in the enabled (e.g. on state). The apparatus may comprise hardware circuitry and/or firmware. The apparatus may comprise software loaded onto memory. Such software/computer programs may be recorded on the same memory/processor/functional units and/or on one or more memories/processors/ functional units.
In some embodiments, a particular mentioned apparatus/device/server may be pre-programmed with the appropriate software to carry out desired operations, and wherein the appropriate software can be enabled for use by a user downloading a key", for example, to unlock/enable the software and its associated functionality. Advantages associated with such embodiments can include a reduced requirement to download data when further functionality is required for a device, and this can be useful in examples where a device is perceived to have sufficient capacity to store such pre-programmed software for functionality that may not be enabled by a user.
Any mentioned apparatus/circuitry/elements/processor may have other functions in addition to the mentioned functions, and that these functions may be performed by the same apparatus/circuitry/elements/processor. One or more disclosed aspects may encompass the electronic distribution of associated computer programs and computer programs (which may be source/transport encoded) recorded on an appropriate carrier (e.g. memory, signal).
Any computer' described herein can comprise a collection of one or more individual processors/processing elements that may or may not be located on the same circuit board, or the same region/position of a circuit board or even the same device. In some embodiments one or more of any mentioned processors may be distributed over a plurality of devices. The same or different processor/processing elements may perform one or more functions described herein.
With reference to any discussion of any mentioned computer and/or processor and memory (e.g. including ROM, CD-ROM etc), these may comprise a computer processor, Application Specific Integrated Circuit (ASIC), field-programmable gate array (FPGA), and/or other hardware components that have been programmed in such a way to carry out the inventive function.
The applicant hereby discloses in isolation each individual feature described herein and any combination of two or more such features, to the extent that such features or combinations are capable of being carried out based on the present specification as a whole, in the light of the common general knowledge of a person skilled in the art, irrespective of whether such features or combinations of features solve any problems disclosed herein, and without limitation to the scope of the claims. The applicant indicates that the disclosed aspects/embodiments may consist of any such individual feature or combination of features.
In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the disclosure.
While there have been shown and described and pointed out fundamental novel features as applied to preferred embodiments thereof, it will be understood that various omissions and substitutions and changes in the form and details of the devices and methods described may be made by those skilled in the art without departing from the spirit of the disclosure. For example, it is expressly intended that all combinations of those elements and/or method steps which perform substantially the same function in substantially the same way to achieve the same results are within the scope of the disclosure. Moreover, it should be recognized that structures and/or elements and/or method steps shown and/or described in connection with any disclosed form or embodiments may be incorporated in any other disclosed or described or suggested form or embodiment as a general matter of design choice.
Furthermore, in the claims means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents, but also equivalent structures. Thus although a nail and a screw may not be structural equivalents in that a nail employs a cylindrical surface to secure wooden pads together, whereas a screw employs a helical surface, in the environment of fastening wooden parts, a nail and a screw may be equivalent structures.

Claims (3)

  1. <claim-text>Claims 1. An apparatus comprising: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following: use a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content provided using the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.</claim-text> <claim-text>2. The apparatus of claim 1, wherein: the first application is executable on a first device; the counterpart application is executable on a second device; and the synchronisation command is configured to synchronise the transient state of content provided using the first application on the first device with the last instance of the transient state of the corresponding content provided using the counterpart application on the second device.</claim-text> <claim-text>3. The apparatus of claim 1, wherein: the first application and the counterpart application are executable on a first device; and the synchronisation command is configured to synchronise the transient state of content provided using the first application on the first device with the last instance of the transient state of the corresponding content provided using the counterpart application also on the first device.</claim-text> <claim-text>4. The apparatus of claim 1, wherein the synchronisation command is also configured to synchronise the persistent state of content provided using the first application with the last instance of the persistent state of the corresponding content provided using the counterpart application.</claim-text> <claim-text>5. The apparatus of claim 1, wherein the synchronisation command is configured to be used to synchronise the transient state of content provided using a plurality of first applications with the transient state of corresponding content provided using a plurality of respective counterpart applications.</claim-text> <claim-text>6. The apparatus of claim 4, wherein the synchronisation command is configured to be used to provide for synchronisation of one or more of the plurality of first applications, and/or one or more of the plurality of counterpart applications, one or more of which are available but not open prior to use of the synchronisation command.</claim-text> <claim-text>7. The apparatus of claim 1, wherein the synchronisation command is configured to be used to cause the first application to open.</claim-text> <claim-text>8. The apparatus of claim 6, wherein the first application opened is a default one of a plurality of available applications.</claim-text> <claim-text>9. The apparatus of claim 1, wherein the synchronisation command is configured to be used to provide for synchronisation in respect of an open first application.</claim-text> <claim-text>10. The apparatus of claim 1, wherein the at least one memory and the computer program code are configured to, with the at least one processor, cause the apparatus to use the synchronisation command based on one or more of: predetermined time intervals for synchronisation based on one or more of: use of the synchronisation command, and generation of the synchronisation comment; user activity associated with the first application; and user activity associated with the counterpart application.</claim-text> <claim-text>11. The apparatus of claim 2, wherein the first application and the counterpart application are provided for use on the respective first and second devices by accessing respective one or more memories located with the first and second devices.</claim-text> <claim-text>12. The apparatus of claim 2, wherein the transient state of content provided using the first application and the transient state of corresponding content provided using the counterpart application are each provided on the respective first and second devices by accessing respective one or more memories located with the first and second devices.</claim-text> <claim-text>13. The apparatus of claim
  2. 2. wherein the first application and the counterpart application are provided for use on the respective first and second devices by communication with at least one remote server.</claim-text> <claim-text>14. The apparatus of claim 3, wherein the first application and the counterpart application is are provided for use on the first device by accessing one or more memories located with the first device.</claim-text> <claim-text>15. The apparatus of claim 1, wherein the first application and the counterpart application are configure to provide a common level of functionality.</claim-text> <claim-text>16. The apparatus of claim 1, wherein the first application and the counterpart application are configured to provide equivalent functionality.</claim-text> <claim-text>17. The apparatus of claim 1, wherein the first application and the counterpart application are configured to each operate using different operating systems.</claim-text> <claim-text>18. The apparatus of claim 2. wherein the first device and the second device are otherwise independently operable to provide the respective functionality of the first application and of the counterpart application.</claim-text> <claim-text>19. The apparatus of claim 2, wherein the first device and the second device are configured to independently run a plurality ot applications providing respective functionalities.</claim-text> <claim-text>20. The apparatus of claim 1, wherein the transient state of content comprises one or more of: a mouse pointer position, a text cursor position, a zoom factor, a location on a page, a window size, a position in an audio or video file, a window form factor, a location of a window on a display, toolbar settings, and a highlighted element.</claim-text> <claim-text>21. The apparatus of claim 1, wherein the apparatus is a portable electronic device, a laptop computer, a mobile phone, a Smartphone, a tablet computer, a personal digital assistant, a digital camera, a watch, a non-portable electronic device, a desktop computer, a monitor, a server, or a module/circuitry for one or more of the same.</claim-text> <claim-text>22. The apparatus of claim 2, wherein the apparatus is the second device or a module/circuitry for one or more of the same.</claim-text> <claim-text>23. The apparatus of claim
  3. 3. wherein the apparatus is the first device or a module/circuitry for one or more of the same 24. The apparatus of claim 2, wherein the first device and the second device are configured to be communicatively linked by one or more of: an infra-red connection, a Bluetooth connection, a wireless connection, a radio frequency identification (REID) connection, a telephonic connection, a physical wired connection, a network connection, and manually.25. A method comprising: using a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content provided using the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.26. Computer program code configured to provide for: use of a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content on the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.27. An apparatus comprising: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following: generate a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content provided using the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.28. A method comprising: generating a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content provided using the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.29. Computer program code configured to provide for: generation of a synchronisation command to synchronise the transient state of content provided using a first application with the transient state of corresponding content provided using a counterpart application, the synchronisation command synchronising the transient state of content on the first application with the last instance of the transient state of the corresponding content provided using the counterpart application.</claim-text>
GB1204849.2A 2011-12-28 2012-03-20 Synchronisation of transient state of first and counterpart applications Withdrawn GB2498229A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2011/074193 WO2013097898A1 (en) 2011-12-28 2011-12-28 Synchronising the transient state of content in a counterpart application

Publications (2)

Publication Number Publication Date
GB201204849D0 GB201204849D0 (en) 2012-05-02
GB2498229A true GB2498229A (en) 2013-07-10

Family

ID=46052414

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1204849.2A Withdrawn GB2498229A (en) 2011-12-28 2012-03-20 Synchronisation of transient state of first and counterpart applications

Country Status (2)

Country Link
GB (1) GB2498229A (en)
WO (1) WO2013097898A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996729B2 (en) 2012-04-12 2015-03-31 Nokia Corporation Method and apparatus for synchronizing tasks performed by multiple devices
US9479568B2 (en) 2011-12-28 2016-10-25 Nokia Technologies Oy Application switcher
US9983771B2 (en) 2011-12-28 2018-05-29 Nokia Technologies Oy Provision of an open instance of an application

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819798B2 (en) 2011-12-29 2014-08-26 Ebay Inc. System and method for transferring states between electronic devices
CN111031108B (en) * 2019-11-29 2021-09-03 维沃移动通信有限公司 Synchronization method and electronic equipment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1215575A2 (en) * 2000-12-15 2002-06-19 DoCoMo Communications Laboratories USA, Inc. Method and system for effecting migration of application among heterogeneous device
WO2005109829A1 (en) * 2004-05-06 2005-11-17 Koninklijke Philips Electronics N.V. Method device and program for seamlessly transferring the execution of a software application from a first to a second device
EP1760584A1 (en) * 2005-08-23 2007-03-07 Research In Motion Limited Method and system for transferring an application state from a first electronic device to a second electronic device
US20090204966A1 (en) * 2008-02-12 2009-08-13 Johnson Conrad J Utility for tasks to follow a user from device to device
US20090213032A1 (en) * 2008-02-21 2009-08-27 Newport William T Computer System Having Shared Display Devices
WO2009152316A1 (en) * 2008-06-11 2009-12-17 Teliris, Inc. Surface computing collaboration system, method and apparatus
EP2261793A2 (en) * 2009-06-09 2010-12-15 Samsung Electronics Co., Ltd. Method for transmitting content with intuitively displayed content transmission direction and device using the same

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1215575A2 (en) * 2000-12-15 2002-06-19 DoCoMo Communications Laboratories USA, Inc. Method and system for effecting migration of application among heterogeneous device
WO2005109829A1 (en) * 2004-05-06 2005-11-17 Koninklijke Philips Electronics N.V. Method device and program for seamlessly transferring the execution of a software application from a first to a second device
EP1760584A1 (en) * 2005-08-23 2007-03-07 Research In Motion Limited Method and system for transferring an application state from a first electronic device to a second electronic device
US20090204966A1 (en) * 2008-02-12 2009-08-13 Johnson Conrad J Utility for tasks to follow a user from device to device
US20090213032A1 (en) * 2008-02-21 2009-08-27 Newport William T Computer System Having Shared Display Devices
WO2009152316A1 (en) * 2008-06-11 2009-12-17 Teliris, Inc. Surface computing collaboration system, method and apparatus
EP2261793A2 (en) * 2009-06-09 2010-12-15 Samsung Electronics Co., Ltd. Method for transmitting content with intuitively displayed content transmission direction and device using the same

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9479568B2 (en) 2011-12-28 2016-10-25 Nokia Technologies Oy Application switcher
US9983771B2 (en) 2011-12-28 2018-05-29 Nokia Technologies Oy Provision of an open instance of an application
US10171720B2 (en) 2011-12-28 2019-01-01 Nokia Technologies Oy Camera control application
US8996729B2 (en) 2012-04-12 2015-03-31 Nokia Corporation Method and apparatus for synchronizing tasks performed by multiple devices

Also Published As

Publication number Publication date
GB201204849D0 (en) 2012-05-02
WO2013097898A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
US11703990B2 (en) Animated visual cues indicating the availability of associated content
US9983771B2 (en) Provision of an open instance of an application
EP2843536B1 (en) Method and apparatus for sharing contents of electronic device
CN106164856B (en) Adaptive User Interaction Pane Manager
EP2774019B1 (en) Electronic device mode, associated apparatus and methods
US11057335B2 (en) Portable multifunction device, method, and graphical user interface for an email client
KR101679343B1 (en) Application Switcher
JP6438969B2 (en) Immersive document view
KR101577093B1 (en) Isolating received information on a locked device
CA2834005C (en) Methods and devices for generating action item from email
US20150160788A1 (en) Apparatus and associated methods
CN116324696A (en) software clipboard
US20160334967A1 (en) Sharing of user interface objects via a shared space
US20160132990A1 (en) Intelligibility of Messages
GB2498229A (en) Synchronisation of transient state of first and counterpart applications
EP2813981A1 (en) Method and apparatus pertaining to sharing content with scheduled-event participants
Carlson The iPad 2 pocket guide
EP2337329A1 (en) Multi-source picture viewer for portable electronic device
Ochsenkuehn et al. My IPhone and Me: For IPhone 4S and IOS 5
KR20120004857A (en) Mobile terminal and its event information management method

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)