This application claims priority under 35 USC §§119 and 120 to South Korean Patent Application Serial No. 10-2012-0078050, filed Jul. 18, 2012, the entirety of which is incorporated herein by reference.
The disclosure relates to a synchronization system for a clipboard. In particular, the disclosure relates to a synchronization system that synchronizes in a manner such that a plurality of client terminals having system clipboards may share a common account and are able to share feeds created by cutting and copying particular data in a particular client terminal.
Terminal systems, such as smart phones, tablet PCs, and personal PCs, typically use and execute a proprietary operating system (OS) or an open source platform. These terminal systems also have a memory that is part of the terminal system in which data may be stored. In a Microsoft WINDOWS OS based system, a well-known clipboard may be used to temporarily store data. The clipboard is a memory area that is reserved for space to temporarily store selected data so that after copying or cutting various data including images and text, the selected data can be pasted into the same or other documents. In other words, by using the clipboard to cut, copy, or paste in various application programs such as word processor or excel, data may be copied from one program to another through the clipboard.
Korean public patent 2006-0128196 disclosed technology that enables the user to save data provided by a plurality of application programs on multiple clipboards and afterwards modify/delete/relocate data of the clipboard. Furthermore, Korean public patent 2008-0064824 disclosed technology that enables access to the clipboard that can be shared among multiple participants so that participants of a conversation may share the data on the clipboard.
However, despite the known systems that allows users to “share” the data in the clipboard, there is not a known system that allows the data copied to the clipboard to be automatically sent to a different client terminal and saved. As a result, when a user owns multiple terminal systems, the user is not able to cut and/or copy data into the clipboard from a first terminal system and then paste that data into a document or application running on a second terminal system.
Moreover, inconvenience is another problem for the known systems. Specifically, the known system does not provide any history of the data on the clipboard. The history may ease storage and management of the data in the clipboard for a plurality of client systems possessed by an individual by listing what is finally shared by all client terminals through each of the data synchronizations.
The disclosure is particularly applicable to a client server based clipboard synchronization system and it is in this context that the disclosure will be described. It will be appreciated, however, that the system and method may also be implemented using cloud computing, in a mainframe/terminal model, as a software as a service model and the like.
The system and method assists in resolving the limitations noted above so that when the synchronization system for clipboard synchronizes the data in the clipboard such that a plurality of client terminals that share a common account are able to share the data/feed that has been cut or copied by a particular client terminal. The system and method may also provide history keeping that eases storage and management for the plurality of client terminals. The history keeping may list the data/feed(s) that are finally shared by all client terminals through each of the data synchronizations.
As shown in
Each client terminal 100 of the system (as shown in
Each client terminal 100 also may have an event monitor 130 which monitors if a feed is saved in the system clipboard due to an event of cutting or copying occurs on the client terminal. The client element 120 may then transmit the feed saved in the system clipboard to the synchronization system when the event is sensed/determined by the event monitor. Each client terminal also may have a feed list manager 140 that manages a list regarding multiple feeds saved in the system clipboard 110. The client element 120 may test if the feed transmitted to the synchronization system is a novel feed distinct from the feed originally saved and managed by the feed list manager. The client element 120 may then transmit the feed to the synchronization system only if it is a novel feed. Each client terminal 100 also may have a meta data creator 150 that creates meta data included within each feed transmitted to the synchronization system. Each client terminal 100 also may have a keep box 170 that is a memory source to store those selected by the use among feeds temporarily saved in the system clipboard, in at least one of said client terminal or synchronization server for clipboard.
Using the system, the method synchronizes a feed created by cutting and copying particular data in a particular client terminal and shares the feed among a plurality of client terminals that share a common account. Also, in the plurality of client terminals, the final result of what is shared by all client terminals through synchronization of each of the formed feeds in multiple client terminals is tracked and may be displayed.
As shown in
As shown in
To achieve this, as shown in
In the system, if a feed is created/formed by cutting or copying a particular piece of data in client terminal 100, the piece of data is saved in the system clipboard 110. The feed saved in system clipboard 110 may be then transmitted to the synchronization system 200. The synchronization system 200 may then transmit the feed to another client terminal 100 so that the feed is saved in the corresponding system clipboard 110 of the other client terminal. The client element 120 transmits the feed(s) saved in the system clipboard 110 to synchronization system 200. In other words, as explained above, if a novel feed is formed at a client terminal 100, this will automatically be transmitted to other client terminals 100 synchronized of a common account.
The system may use various methods to transmit feed saved in system clipboard 110 to synchronization system 200. For example, polling and push are two examples of such methods that may be incorporated into the client element 120. The polling is a method for transmitting the feed that is most recently saved by the client element 120 during a certain time period (for example, around one second) and the method checks for changes in the feeds by continuously polling the system clipboard 110 once every certain time period. When the system uses a push system that operates like an interrupt, the push system only generates a signal when a change in the feed occurs so a periodic check in not needed. In the push system, when a new feed is detected, the feed may be communicated to the synchronization system 200.
In one implementation, the client element 120 may be implemented as a processor. The client element 120 may also be implemented as a plurality of lines of computer code executed by the processor of the client terminal that are may be downloaded from the synchronization system 200 and installed on the client terminal 100. The client element 120 may incorporate a function to test if the feed transmitted to synchronization system 200 is a novel feed distinct from the feed originally saved and managed by feed list manager 140. More particularly, if the client element 120 monitors the system clipboard 110 to transmit feed to the synchronization system 200 with a predetermined time interval, such as 1 second for example, the synchronization system 200 may store redundant feeds (e.g., a feed that is the same as an already received feed.) Therefore, the client element 120 uses the test to transmit a feed to the synchronization system 200 only if the feed is a novel feed (e.g., a feed that is different from the other feeds received by the synchronization system 200.
The synchronization system 200 may also have a history manager 240, that may be implemented in software executed on the synchronization system 200, that manages multiple feeds saved in the feed storage device 210. The synchronization element 230 may have a function to test if the feed transmitted to the other client terminal is a novel feed different from the feed originally saved and managed by the history manager, and transmitting to said other client terminal only if it is a novel feed. The synchronization system 200 may also have a metadata storage device 250 that saves meta data included in the feed transmitted from said client terminal.
The client element 120 provides the function of sorting feed lists that are displayed through the display 101 of client terminal 100. The sorting is done based on a user's orders/selections input to the client terminal 100 through the one or more input/output devices 105 of client terminal 100. For example, for sorting, in case of selecting a sorting method according to time, feed is displayed on the screen ordered in the order of creation in either ascending order or descending order. In the case of selecting a sorting method according to the format of the feed, text only, image only, or both are displayed. The sorting can be applied to all synchronized client terminals 100 at the same time. Alternatively, the sorting may be done independently respective to each of the other clients as well. In the case when sorting is done independently, by accessing other client terminals 100, the sorting of the terminal may each be changed through synchronization system 200. For example, the sorting of smart phone 100a can be changed by personal PC 100c.
The event monitor 130 monitors, on the client terminal, if a feed is saved in the system clipboard 110 by the occurrence of a cutting or copying command by the user on the client terminal. The event monitor 130 then provides the client element 120 with the result of the monitoring of event monitor 130 and thus notifies the client element of the occurrence of a novel feed. The event monitor 130 decreases computing throughput and significantly decreases the possibility of transmitting redundant feed to synchronization system 200 since there is no need to monitor system clipboard 110 for every 1 second interval at client application 120, but only monitor system clipboard 110 when an even occurs. However, it is possible for a user to copy or cut the same feed more than once and thus it is preferable to run the test described above. In other embodiments, the function of the event monitor 130 may be incorporated into the client element 120 and since client element 120 may be implemented by a processor, event monitor 130 and client element 120 both may be implemented on a single processor.
The feed list manager 140 manages a list of multiple feeds saved in the system clipboard 110 for each client terminal 100. In feed list management, various types of managements are included, in addition to recording and marking of the time that a feed is saved in the system clipboard 110 and displaying feed saved in system clipboard 110 on the screen of the display 100 of the client terminal 100. In particular, in case there is a feed transmitted from a client terminal is not part of the system, the function of listing the feed list on client terminal 100 and saving only those feeds selected by the user at system clipboard 110 is included. The feed list manager 140 may use various methods for displaying the feed list on the screen of client terminal 100, such as directly displaying original feed consisting of file formats such as image and text, or listing only the file names of the saved feed. Alternatively, the function of list manager 140 may be provided at synchronization system 200, and the management list is downloaded real-time at client terminal 100 and displayed. As explained below, the history manager 240 of synchronization system 200 may provide these functions.
The meta data creator 150 forms meta data relevant to the formed feed and inserts the meta data in the corresponding feed. Meta data may include a variety of information including creation time of feed, file format of feed, and ID of the client terminal 100 feed is created.
Alternatively, the meta data creator 150 function may be implemented by the client element 120 so that the meta data creator 150 and client element 120 may be implemented on a single processor.
As shown in
The keep box 170 is a memory source for storing feeds selected by the user among those temporarily saved in system clipboard 110. The keep box 170 in each client terminal may provide long-term storage of feeds selected by the user among those displayed on client terminal 100 by feed list manager 140, and permanently stored if there is no particular deletion command.
The system clipboard 110 may use a first in first out (FIFO) method. In the method, for example, if the number of feed exceeds 100, the novel feed is saved and the oldest feed is automatically deleted. Therefore, feeds selected by the user or important feeds (for example, feeds consisting of over 100 letters) are automatically saved in keep box 170. Feeds saved in keep box 170 may be sorted by client element 120. In addition to the keep box on each client terminal, there may also be a keep box (not shown) in the synchronization system 200 as well to enable sharing of the feeds in the keep box at any client terminal 100.
The push notifier 180 push notifies to the user that a situation requiring a motion of foreground has occurred. Such push notifier may set at ‘setting page’ whether to and how to push notify, as explained below. During background motion condition, if novel feed is transmitted from another client terminal 100 or novel feed is created in the corresponding client terminal 100 and a novel feed is accepted, it is push notified for need of foreground condition. A background motion condition denotes a condition in which, while using another application program (for example, MS power point, word, etc.), the clipboard 110 is always monitored and changes in the synchronization system 200 is monitored so that synchronization is realized. The background operation is transparent to the user since it is running in the background. The foreground condition relates to a condition wherein the user is able to directly recognize and use through screen displays, etc., and the condition may be directly controlled through Graphic User Interface (GUI), etc. displayed on the screen.
As shown in
The history manager 240 manages a plurality of feeds saved in feed storage device 210. The history manager 240 operates similarly to the feed list manager 140 of client terminal 100, and the management result is provided to client terminal 100. An example of a page provided by the history manager 240 is shown in
The history manager 240 displays feeds saved at feed storage device 210 at client terminals 100 accessed to synchronization system 200, if those necessary are selected among feeds shown at client terminal 100 the selected feeds being saved at system clipboard 110 of client terminal 100. In other words, the user may choose feeds to be copied at system clipboard 110 of client terminal 100. However, the disclosure is not limited to this, and in case a feed is displayed at history manager 240 and novel feed occurs, it is possible to have all feeds automatically be saved at system clipboard 110.
The meta data storage device 250 saves meta data included in feed(s) transmitted from client terminal 100. It is distinguishable between client terminal 100 that analyzes meta data and transmits feed and other client terminals 100, thus it is possible to transmit said transmitted feed to another client terminal 100. Also, display as in
Hereinafter, embodiments of a synchronization system are described and illustrated for different operating systems (or open source platform) of each client terminal. Specifically, the client terminal of
As shown in
For example, if a history page listing feeds is displayed after login, when the web client is implemented, a feed of client terminal 100 may be uploaded through a web browser to synchronization system 200 once every second. In this case, on the terminal side or system side, a test is run to determine if the feed is novel. If the feed is novel, then the feed is transmitted to another client terminal 100 that shares a common account (i.e., common e-mail address), and saved at system clipboard 110 of client terminal 100 that received the feed. In addition, after logging in each feed is displayed through a history page, and the user may delete, copy to the keep box 170 or another terminal, or sort the displayed feed. As described, there are various forms of sorting such as sorting by time, sorting by feed format, and sorting by client terminal.
An example of the general layout of the web page in the web client is shown in
The keep box may be limited to a particular numbers of feeds. For example, the keep box 170 may be limited to 50 feeds. Then, if a command to add a new feed is made when keep box 170 is in full condition with all 50 feeds, a warning is sent to the user rather than accepting the feed. In order to add a new feed to keep box 170 when it is full, the system will require an already stored feed to be deleted to empty the keep box 170. In condition where history page is displayed, if a new feed is created at another client terminal to update on web client, the new feed is copied (i.e., saved) real-time at system clipboard of client terminal 100 that is browsing as above.
Next, as shown in
As shown in
As shown in
As shown in
On the push notification page, if a novel feed is formed by cutting or copying at the iOS implemented client terminal and it is necessary to transmit to another client terminal 100, push notification is set to be conducted as selected by the user. In addition, if a feed is formed at another client terminal 100 and it is necessary to receive this, push notification is set to be conducted as selected by the user. In addition, the iOS client terminal history page and keep box 170 are provided and these functions identical to those explained with reference to
As shown in
As shown in
As shown in
As shown in
As shown in
In one implementation, the feeds in the system may be divided into two categories which are a feed with a piece of text only and a feed with an image only. The feeds are stored in a single MySQL table that is part of the synchronization system described above with each feed having identical numbers given to them. The feeds of a user may be stored in two queues. A first queue may be used to store a user's normal feed which can store maximum of 10-100 feeds. The second queue may be used for storing only starred feed which can store feeds with a maximum of number of stars of each user. The queues may be operated in FIFO (First In First Out) manner so that the oldest feed from the normal feed queue gets popped out when the 11th feed (for a first queue that holds 10 feeds) gets pushed into the queue. When the synchronization system sends user's feed results to the clients, the synchronization system sorts the two queues with their identical numbers and then stores the feeds in a MySQL database table in chronological order. The synchronization system may use server-side script to perform these operations.
While the foregoing has been with reference to a particular embodiment of the invention, it will be appreciated by those skilled in the art that changes in this embodiment may be made without departing from the principles and spirit of the disclosure, the scope of which is defined by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2012-0078050 | Jul 2012 | KR | national |