US20060294418A1 - System and method for automatically executing corresponding operations on multiple maps, windows, documents, and/or databases - Google Patents
System and method for automatically executing corresponding operations on multiple maps, windows, documents, and/or databases Download PDFInfo
- Publication number
- US20060294418A1 US20060294418A1 US11/158,789 US15878905A US2006294418A1 US 20060294418 A1 US20060294418 A1 US 20060294418A1 US 15878905 A US15878905 A US 15878905A US 2006294418 A1 US2006294418 A1 US 2006294418A1
- Authority
- US
- United States
- Prior art keywords
- master
- slave
- slaves
- operator
- document
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
Definitions
- the invention is related to systems and methods for executing corresponding operations on sets of data, and particularly to a system and method for automatically executing corresponding operations on multiple maps, windows, multiple documents and/or databases.
- a master operation to be executed on a master set of data and then to automatically execute corresponding operations on one or more sets of data (one or more “slaves”).
- the corresponding operations are the same as the master operation.
- the master operation, the corresponding operations, and the data sets are found in a variety of forms.
- the master operation and each of the corresponding operations can consist of a logical step in a chain of commands, a computation, a re-categorization of a data set, addition or removal or editing of an annotation, in the case of maps a geographical displacement, and countless other forms.
- an operation will not affect the data set's permanent structure but is only an operational convenience, for example, as with a geographical rotation of a structure executed to assist in execution of a design program.
- a geographic displacement which may encompass a rotation
- master and slave(s) are not indeterminate designations, but rather designations that vary from one particular use of the invention to the next. In some embodiments, master and slave(s) are designations that result from operations that are performed by an operator rather than from a permanent classification of a particular window/document/database.
- Window-type operating systems as used in computers and computer networks, are among the most commonly used environments for processing data. It is well known to cut and paste by “cutting” desired material from one source location or source document and “pasting” the material in a second target location or target document. It is also well known to “drag and drop” by “dragging” desired material from one source location or source document and “dropping” the material in a second target location or target document. Typically, a separate “cut and paste” operation (or, minimally, a separate “paste” operation) or a separate “drag and drop” operation must be executed for each target location or target document.
- one map may show a given area's highway and road system, and another map may show the same area's restaurants.
- the invention receives a master operation that is executed by an operator on a master window, a master document, or a master database, and causes corresponding operations to be automatically executed on one or more slaves, which can each be a window, a document, or a database.
- embodiments of the invention can operate with master and slave documents that are initially either open or closed or both, depending on the operator's desires and the current state of the computing device. If necessary, embodiments of the invention are capable of opening documents that are closed. Nevertheless, the invention works similarly on maps, windows, documents, and databases.
- the computer architecture comprises an event handler that could be generally programmed by one of skill in the art and is responsible for causing needed or requested operations to be automatically executed according to an appropriate protocol.
- the event handler capable of receiving selections of master and slave is part of the operating system, and, in other embodiments, it is separate from the operating system. Where the event handler capable of receiving selections of master and slave is part of the operating system, the event handler directly causes other segments of the operating system to execute the master operation on the master and to execute the corresponding operations on the slave(s). The event handler locates all slaves and relays to each of them a message directing that an operation be executed on each of them that corresponds to the operation executed on the master.
- the corresponding operation to be executed on a slave may be identical to the operation executed on the master. This is likely to be true where the master and slave are both operating in the same application, and may be true as well where the master and slave are documents that operate in different applications. In other embodiments, that will not be true and for one or more of the slave(s), the corresponding operation will be different from the operation executed on the master.
- the system includes a matrix of corresponding operations that is consulted by the event handler to determine—for each of the one or more slave documents—which operation corresponds to the operation executed on the master document. There is not necessarily any relationship between different matrix elements.
- a matrix of corresponding operations for an application involving N windows/documents/databases will be of dimension N 2 . Where the corresponding operation is the same in all cases as the master operation, the matrix of corresponding operations is an identity matrix.
- All embodiments operate with one master and with one or more slave(s). It should be understood that master and slave are not necessarily permanent or even semi-permanent designations. Master and slave are designations that may only last for the duration of a particular use of the invention. A map, window, document, or database that is the master in one use of the invention could be the slave in the next use of the invention. Similarly, a map, window, document, or database that is the slave in one use of the invention could be the master in the next use of the invention. Moreover, although there is only one master for a given use of the invention, any number of slave(s) may be present. For simplicity, in some diagrams, we have limited our to one slave, but this is purely for convenience only and does not reflect any limitation of the invention to one slave. One or more slave(s) are possible for a given embodiment.
- Various embodiments include, as examples, methods for selecting the master, such as executing a master operation on the master, operator input designating the master, selecting a “corresponding operations-multiple maps/windows/documents/databases” command that initiates the functioning of the invention and then selecting the master, by pre-selecting the master as a default master, and by pre-selecting the master as a default master and opening the master.
- methods for selecting the master can be programmed by those skilled in the art.
- Various embodiments include, as examples, methods for selecting the slave(s), such as (1) operator input designating the slave(s); (2) selecting a “corresponding operations-multiple maps/windows/documents/databases” command and then selecting the slave(s); (3) pre-selecting the one or more slaves as one or more default slaves; and, (4) by pre-selecting the one or more slaves as the one or more default slaves and opening the master.
- the selection of the slave(s) can be considered as simultaneously creating a connection between the master and each of the slave(s). Other methods for making the selections of the slave(s) will be evident to those skilled in the art.
- event handler function will incorporate the event handler function as part of the operating system, as a separate routine incorporated into other software, as a stand-alone routine, or in other forms.
- Other embodiments incorporating the event handler function into the system can be programmed by those skilled in the art.
- the master and/or one or more slaves and/or the master operation will be selected by default.
- the operator selects the one or more slaves by creating a correspondence between the master and each of the one or more slaves.
- the master and slaves are similar documents (as with different “drafts” of the same document) created in a word processing program.
- a group of documents is selected prior to operation of the invention.
- the group comprises three documents, but any number is possible.
- all documents are synchronized together so that an operator who scrolls down any one of the documents will cause a corresponding scrolling down to happen simultaneously in the other documents. Moreover, every time an operator scrolls down one of the documents, that document becomes the new master document.
- the master and the one or more slave document(s) are photographs.
- a master operation that is executed on a given photograph can be automatically executed on other photographs.
- a master window and/or the slave window(s) display electronic maps.
- the different windows may display different views of the same map or views of different maps (or, trivially, the same views of the same map).
- the invention functions identically regardless of whether the maps depicted in the various windows are the same or not.
- FIG. 1 is an illustration that shows how an operator, using an embodiment of the invention, can execute a master operation in a master window or on a master document or a master database and thereby cause a corresponding operation to be automatically executed on a slave without having to separately execute the respective operations on each slave.
- FIGS. 2A-2D are a series of illustrations that show a more specific example of how an operator, using an embodiment of the invention, can cause an operation executed on one map/document/window/database to be automatically executed on a second map/document/window/database.
- FIGS. 3A-3U are a series of illustrations that illustrate in more detail how the system operates in an embodiment in which the event handler capable of receiving selections of master and slave is part of the operating system, and in which the operator selects two slave windows, selecting each by creating a correspondence between a master window and a slave window.
- FIGS. 4A-4M are a series of illustrations that illustrate in more detail how the system operates in an embodiment in which the event handler capable of receiving selections of master and slave is not part of the operating system, and in which the operator selects a slave document by creating a correspondence between a master document and a slave document.
- FIGS. 5A-5E are a series of illustrations of one embodiment of the invention in which the event handler capable of receiving selections of master and slave is part of the operating system, and in which the master document and the one or more slave document(s) are photographs.
- FIGS. 6A-6C are a series of screenshots of one embodiment of the invention involving three similar word processing documents, in which scrolling down by an operator through any one of the three documents will cause a corresponding scrolling down to happen simultaneously in one or both of the other two documents.
- FIG. 7 is a flow chart that illustrates a summary of the typical flow of a process in accordance with the invention in an embodiment in which the event handler capable of receiving selections of master and slave is part of the operating system.
- FIG. 8 is a flow chart that illustrates a summary of the typical flow of a process in accordance with the invention in an embodiment in which the event handler capable of receiving selections of master and slave is not part of the operating system.
- FIG. 9 is a flow chart that illustrates in more detail the typical flow of a process in accordance with the invention in an embodiment in which the event handler capable of receiving selections of master and slave is part of the operating system.
- FIG. 10 is a flow chart that illustrates in more detail the typical flow of a process in accordance with the invention in an embodiment in which the event handler capable of receiving selections of master and slave is not part of the operating system. As an example, only one slave is illustrated in the figure. Any number of slave(s) equal to or greater than one is possible.
- FIG. 11 is a flow chart that illustrates a simplified summary of the typical flow of a process in accordance with an embodiment of the invention, according to which the invention permits changes in both master and slave during operation of the invention.
- FIG. 12 is a block diagram that schematically illustrates, as an example, a system that can be used with an embodiment of the invention, including an optional matrix of corresponding operations, according to the below description.
- embodiments of the invention are capable of causing a master operation that is executed in a master window or on a master map, master document or master database to also be automatically executed in its corresponding form, respectively, in one or more slave windows and/or on one or more slave maps, slave documents or slave databases.
- windows must be open in order to exist, though they may be minimized, whereas documents and databases may be open or closed.
- documents and databases may be stored in any one of a number of permanent storage media, whereas windows only exist during the time the operator has them on the screen, either in maximized or minimized form.
- embodiments of the invention can operate with master and slave(s) that are initially either open or closed or both, depending on the operator's desires and the current state of the computing device. If necessary, the invention is capable of opening documents or databases that are closed. Nevertheless, the invention works similarly on maps, windows, documents, and databases.
- the computer architecture comprises an event handler that is responsible for causing needed or requested operations to be executed according to an appropriate protocol.
- Event handlers are well known in the art and are found in all of the most commonly used personal computer operating systems: Windows, Mac-OS, and Unix.
- the event handler “listens” to events and tracks when input is received that causes the functioning of the invention to begin or that is otherwise relevant to the functioning of the invention.
- the event handler capable of receiving selections of master and slave is comprised in the operating system. Where the event handler capable of receiving selections of master and slave is not incorporated into the operating system, an embodiment of the invention will mimic the functions executed by the event handler when incorporated into the operating system.
- embodiments of the invention can operate with master and slave documents or databases that are initially either open or closed or both, depending on the operator's desires and the current state of the computing device. If necessary, embodiments of the invention are capable of opening documents that are closed. Nevertheless, the invention works similarly on maps, windows, documents, and databases.
- FIG. 1 is an illustration depicting a system, including a display 101 and a user interface 102 , that shows how an operator 104 using an embodiment of the invention can execute a master operation 120 on a master map 106 or on a master document or on a master database or in a master window and thereby cause a corresponding operation to be automatically executed on a slave map 110 or on a slave document or on a slave database or in a slave window without having to separately execute the operation on each slave.
- the operator 104 transmits the master operation 120 to a master document 106 .
- an embodiment of the invention causes a corresponding operation 130 (which may be operation 120 ) to be transmitted to the slave document 110 .
- a corresponding operation 130 which may be operation 120
- FIGS. 2A-2D are a series of illustrations that show a more specific example of how an operator 204 , using an embodiment of the invention, can cause an operation 220 executed on a master map/document/window/database 206 to be automatically executed on a slave map/document/window/database 210 without having to separately execute the operation on each document or database or in each window.
- both master and slave are maps. This figure illustrates an embodiment in which the master operation and the corresponding operation are the same operation.
- FIG. 2A operator 204 sends master operation 220 (as an example, a rotation counterclockwise by 23 degrees) to be performed on master 206 .
- Master 206 in this example, comprises five roads 209 .
- master operation 220 is performed on master 206 .
- FIG. 2C embodiments of the invention automatically cause corresponding operation 230 (as an example, a rotation that in this case happens to be identical to master operation 220 ) to be sent to slave 210 .
- Slave 210 in this example, comprises four locations 211 .
- corresponding operation 230 is performed on slave 210 .
- Various embodiments include, as examples, methods for selecting the master such as executing a master operation on the master, selecting the master, selecting a “corresponding operations-multiple maps/windows/documents/databases” command and then selecting the master, by pre-selecting the master as a default master, and by pre-selecting the master as a default master and opening the master.
- an operator's designation of a master operation to be executed on a specific master simultaneously specifies a master operation and selects a master.
- any subsequent maps, windows, documents, or databases on which the operator clicks are thereby designated as slave(s).
- Other methods for selecting the master will be well-known to those skilled in the art.
- Various embodiments include, as examples, methods for selecting the slave(s) such as operator input, by pre-selecting the one or more slaves as one or more default slaves, and by pre-selecting the one or more slaves as the one or more default slaves and opening the slave.
- Correspondences may be implemented by saving them in memory or through a side file containing a correspondence between maps, documents, windows, or databases that are operationally connected to each other.
- the selection of the slave(s) can be visualized as simultaneously creating a connection between the master and each of the slave(s). Other methods for making the selections of the slave(s) will be well-known to those skilled in the art.
- various embodiments will incorporate the event handler capable of receiving selections of master and slave as part of the operating system, as a separate routine incorporated into other software, as a stand-alone routine, or in other forms.
- the event handler capable of receiving selections of master and slave is part of the operating system, it causes the operating system to execute the requested operations on master and slave(s).
- the event handler locates all slave(s) and relays to each of them a message directing that an operation be executed on each of them that corresponds to the master operation executed on the master.
- FIGS. 3A-3U are a series of illustrations that illustrate in more detail how the system 300 including a display 301 and a user interface 302 operates in an embodiment in which an event handler 308 capable of receiving selections of master and slave is part of the operating system, and in which an operator 304 selects a master 306 and two slaves 310 and 314 .
- master 306 comprises streets 309
- first slave 310 comprises first locations 311
- second slave 314 comprises second locations 317 .
- maps are illustrated as an example, the principles are the same for embodiments involving windows, documents, or databases.
- the corresponding operations are identical to the master operation. In general, the corresponding operations need not be identical to the master operation and often will not be identical.
- the operator 304 selects a first slave 310 by creating a first correspondence 312 between the master 306 and the first slave 310 , and the operator selects a second slave 314 by creating a second correspondence 316 between the master 306 and the second slave 314 .
- FIGS. 3A-3U illustrate two slave maps 310 and 314 , any number of slaves equal to or greater than one is possible. Any number of other maps that are not selected by the operator 304 as master 306 or slave 310 / 314 may again be simultaneously present but are not relevant to the operation of the invention and, thus, are not depicted.
- the system 300 includes a display 301 and a user interface 302 .
- An operator 304 selects a master 306 and sends to the event handler 308 a master address 320 designating and enabling the location of the master 306 .
- the event handler 308 receives the master address 320 .
- an input device (not illustrated) will be used to make the designation, while in other embodiments no input device is present and the designation is made by other means such as a set of batch commands (not illustrated) or default selection (not illustrated).
- the event handler 308 uses the master address 320 to locate and activate the master 306 .
- the activation of the master 306 is symbolically represented in the diagram by a boldface frame around the inside edge of the master 306 .
- the event handler 308 awaits the selection by the operator 304 of a first slave 310 .
- the operator 304 selects the first slave 310 , which has a first slave address 330 .
- first slave address 330 is sent to the event handler 308 designating and enabling the location of the first slave 310 .
- the event handier 308 receives the first slave address 330 from the operator 304 designating and enabling the location of the first slave 310 .
- the event handler 308 uses the first slave address 330 to locate and activate the first slave 310 .
- the activation of the first slave 310 is symbolically represented in the diagram by a boldface frame around the inside edge of the first slave 310 .
- the event handler 308 uses the master address 320 and the first slave address 330 to send an instruction 334 to create a first correspondence 312 between the master 306 and the first slave 310 .
- the event handler 308 awaits the selection by the operator 304 of a second slave 314 .
- the operator 304 selects the second slave 314 , which has a second slave address 340 .
- second slave address 340 is sent to the event handler 308 , designating and enabling the location of the second slave 314 .
- the event handler 308 receives the second slave address 340 from the operator 304 designating and enabling the location of the second slave 314 .
- the event handler 308 uses the second slave address 340 to locate and activate the second slave 314 .
- the activation of the second slave 314 is symbolically represented in the diagram by a boldface frame around the inside edge of the second slave 314 .
- the event handler 308 uses the master address 320 and the second slave address 340 to send an instruction 344 to create a second correspondence 316 between the master 306 and the second slave 314 .
- the event handler 308 awaits a master operation 350 by the operator 304 on the master 306 .
- the operator 304 selects a master operation 350 (as an example, a counterclockwise rotation by 23 degrees).
- master operation 350 is sent to the event handler 308 .
- Event handler 308 receives the master operation 350 and, using the master address 320 , locates the master 306 and sends the master operation 350 on to master 306 .
- Master operation 350 is performed on master 306 .
- the master operation 350 has just been performed on master 306 .
- the counter-clockwise rotation of master 306 has rotated the master 306 including each of the streets 309 .
- the event handler 308 uses the master address 320 to perform the action 356 of checking for and finding the first correspondence 312 .
- the first correspondence 312 enables event handler 308 to retrieve first slave address 330 , corresponding to first slave 310 .
- event handler 308 determines a first corresponding operation 358 to be executed on first slave 310 .
- the event handler 308 sends the first corresponding operation 358 on to be executed on first slave 310 .
- the first corresponding operation 358 (as an example, also a counter-clockwise rotation) has just been performed on first slave 310 .
- the counter-clockwise rotation of first slave 310 has rotated first slave 310 including each of the first locations 311 .
- the event handler 308 uses the master address 320 to perform the action 362 of checking for and finding the second correspondence 316 .
- the second correspondence 316 enables event handler 308 to retrieve second slave address 340 , corresponding to second slave 314 .
- event handler 308 determines a second corresponding operation 364 to be executed on second slave 314 .
- the event handler 308 sends the second corresponding operation 364 on to be executed on second slave 314 .
- the second corresponding operation 364 (as an example, also a counter-clockwise rotation) has just been performed on second slave 314 .
- the counter-clockwise rotation of second slave 314 has rotated second slave 314 including each of the second locations 317 .
- FIGS. 4A-4M are a series of illustrations that illustrate in more detail how the system 400 , including a display 401 and a user interface 402 , operates in an embodiment in which an event handler 408 capable of receiving selections of master and slave is not part of the operating system, and in which an operator 404 selects a master 406 and a slave 410 .
- master 406 comprises streets 409
- slave 410 comprises locations 411 .
- maps are illustrated as an example, the principles are the same for embodiments involving windows, documents, or databases.
- the corresponding operation is identical to the master operation. In general, the corresponding operation need not be identical to the master operation and often will not be identical.
- the operator 404 selects the slave 410 by creating a correspondence 412 between the master 406 and the slave 410 . It is assumed, as an example only, that master 406 and slave 410 are in the same application 413 . Although FIGS. 4A-4M illustrate only one slave 410 , any number of slave(s) equal to or greater than one is possible. Any number of other documents that are not selected by the operator 404 as master 406 or slave 410 may be simultaneously present but are not relevant to the operation of the invention and thus are not depicted.
- the system 400 includes a display 401 and a user interface 402 .
- the operator 404 selects a master 406 and sends to the event handler 408 a master address 420 designating and enabling the location of the master 406 .
- the event handler 408 receives the master address 420 .
- an input device (not illustrated) will be used to make the designation, while in other embodiments no input device is present and the designation is made by other means such as a set of batch commands (not illustrated) or default selection (not illustrated).
- the event handler 408 sends the master address 420 to application 413 , which uses master address 420 to locate and activate the master 406 .
- the activation of the master 406 is symbolically represented in the diagram by a boldface frame around the inside edge of the master 406 .
- the event handler 408 awaits the selection by the operator 404 of a slave 410 .
- the operator 404 selects a slave 410 having a slave address 430 .
- slave address 430 is sent to the event handler 408 .
- the event handler 408 receives from the operator 404 the slave address 430 designating and enabling the location of the slave 410 .
- the event handler 408 sends the slave address 430 to application 413 .
- FIG. 4C the event handler 408 awaits the selection by the operator 404 of a slave 410 .
- the operator 404 selects a slave 410 having a slave address 430 .
- slave address 430 is sent to the event handler 408 .
- the event handler 408 receives from the operator 404 the slave address 430 designating and enabling the location of the slave 410 .
- application 413 uses slave address 430 to locate and activate the slave 410 .
- the activation of the slave 410 is symbolically represented in the diagram by a boldface frame around the inside edge of the slave 410 .
- the application 413 uses the master address 420 and the slave address 430 to send an instruction 434 to create a correspondence 412 between the master 406 and the slave 410 .
- the event handler 408 awaits a master operation by the operator 404 on the master 406 .
- the operator 404 selects a master operation 440 (as an example, a zoom).
- master operation 440 is sent to the event handler 408 .
- Event handler 408 receives the master operation 440 and sends the master operation 440 to the application 413 .
- Application 413 executes master operation 440 on master 406 .
- master operation 440 has just been performed on master 406 .
- the zoom of master 406 has resulted in previously visible outer segments of streets 409 disappearing off the outside edges of master 406 .
- FIG. 4J The zoom of master 406 has resulted in previously visible outer segments of streets 409 disappearing off the outside edges of master 406 .
- the event handler 408 sends an instruction 441 to application 413 to check for a correspondence 412 .
- application 413 uses the master address 420 to perform the action 442 of checking for and finding the correspondence 412 .
- correspondence 412 enables application 413 to retrieve slave address 430 , corresponding to slave 410 .
- application 413 determines a corresponding operation 458 to be executed on slave 410 .
- FIG. 4N application 413 executes the corresponding operation 458 on the slave 410 .
- corresponding operation 458 (as an example, also a zoom) has just been performed on slave 410 .
- the zoom of slave 410 has resulted in one previously visible location 411 disappearing off the outside edges of slave 410 and an increased separation between the still visible locations 411 .
- FIGS. 5A-5E are a series of illustrations of one embodiment of the invention in which the event handler 508 capable of receiving selections of master and slave is part of the operating system (not illustrated), and in which the master document 506 and the slave document(s) 510 , 514 , and 518 are photographs.
- the operator 504 transmits a master operation 520 to the event handler 508 .
- the event handler 508 carries out the master operation 520 on the master photograph 506 .
- the event handler carries out a first corresponding operation 558 on the first slave photograph 510 .
- the event handler 500 carries out a second corresponding operation 564 on the second slave photograph 514 .
- the event handler carries out a third corresponding operation 572 on the third slave photograph 518 .
- FIGS. 6A-6C are a series of screenshots of one embodiment of the invention involving, as an example, three similar word processing documents, first document 606 , second document 610 , and a third document 614 that highlights the differences between the first two documents.
- a group of documents is selected prior to operation of the invention.
- the group comprises three documents, but any number of documents equal to two or more permits the operation of the invention.
- the documents are synchronized together so that an operator who scrolls down any one of the documents will automatically cause a corresponding scrolling down to happen simultaneously in each of the other documents.
- every time an operator scrolls down one of the documents that document becomes the new master document.
- first document 606 is the Gettysburg Address as delivered by Abraham Lincoln
- second document 610 is an “edited” version of the same speech
- third document 614 compares the differences between first documents 606 and second 610 .
- FIG. 6A shows screenshots of the beginnings of documents 606 , 610 and 614 . If an operator scrolls down to the middle of first document 606 , an embodiment of the invention causes a scrolling down to automatically be performed to bring into view the corresponding middle sections of second document 610 and third document 614 . Conversely, if an operator scrolls down to the middle of second document 610 (or to the middle of third document 614 ), an embodiment of the invention causes a scrolling down to automatically be performed to bring into view the corresponding middle sections of the other two documents. In any of these cases, FIG. 6B illustrates the screenshots of the corresponding middle sections of documents 606 , 610 and 614 that will appear due to the operation of this embodiment of the invention.
- FIG. 6C illustrates the screenshots of the corresponding bottom sections of documents 606 , 610 and 614 that will appear due to the operation of this embodiment of the invention.
- FIG. 7 is a flow chart that illustrates a simplified summary of the typical flow of a process in accordance with an embodiment of the invention in which an event handler capable of receiving selections of master and slave is part of the operating system.
- an event handler receives a master address corresponding to a selected master.
- the event handler receives one or more slave address(es) corresponding to one or more slave(s).
- the event handler creates correspondence(s) between master and slave(s).
- the event handler receives a master operation.
- the event handler sends the master operation on to be performed on the master, and the master operation is performed on the master.
- step 710 the event handler checks for and finds correspondence(s).
- step 712 based on the correspondence(s), the event handler sends corresponding operation(s) to be executed on the slave(s).
- step 714 the corresponding operation(s) are executed on the slave(s). Any number of slave(s) equal to or greater than one is possible.
- FIG. 8 is a flow chart that illustrates a summary of the typical flow of a process in accordance with an embodiment of the invention in which an event handler capable of receiving selections of master and slave is not part of the operating system, and in which an operator selects a master and a slave.
- an event handler receives a master address corresponding to a selected master.
- the event handler receives one or more slave address(es) corresponding to one or more slave(s).
- the event handler creates correspondence(s) between master and slave(s).
- the event handler receives a master operation.
- the event handler sends the master operation to the application, which performs the master operation on the master.
- step 810 the application checks for and finds correspondence(s).
- step 814 the application(s) execute(s) the corresponding operation(s) on the slave(s). Any number of slave(s) equal to or greater than one is possible. Any number of application(s) equal to or greater than one and equal to or less than the total combined number of master and slave(s) is possible.
- FIG. 9 is a flow chart that illustrates in more detail the typical flow of a process in accordance with an embodiment of the invention.
- FIG. 9 depicts an embodiment in which the event handler capable of receiving selections of master and slave is part of the operating system. As an example, only one slave is illustrated in the figure. Any number of slave(s) equal to or greater than one is possible. As an example, the master and slaves remain the same here, although generally and as illustrated in FIG. 11 , the invention permits changes in both master and slave during operation of the invention.
- step 900 an operator selects a master that has a master address.
- an event handler receives the master address.
- the event handler locates and activates the master.
- the event handler awaits the operator's selection of a slave.
- the operator selects a slave that has a slave address.
- the event handler receives the slave address.
- the event handler locates and activates the slave.
- the event handler creates a correspondence between the master and slave.
- step 916 it is queried whether there are any more slaves. If the answer is yes, then the process loops back to step 906 . If in step 916 the answer is no, then the process continues to step 918 .
- the event handler awaits the operator's master operation on the master.
- step 920 the event handler receives the selected master operation.
- step 922 the event handler sends the master operation on to be executed on the master, and the master operation is executed on the master.
- step 924 the event handler checks for and finds correspondence(s).
- step 925 the correspondence(s) enable the event handler to retrieve the slave address.
- step 926 a matrix of corresponding operations is optionally consulted.
- the event handler determines a corresponding operation with regard to the slave.
- the event handler sends the corresponding operation on to be executed on the slave.
- the corresponding operation is executed on the slave.
- step 934 it is asked whether there are any more correspondence(s) left to process. Generally speaking, there will be more correspondence(s) left to process when slave(s) are remaining that have not yet been considered, and there will be no more correspondences to process when no slaves are remaining that have not yet been considered. If in step 934 the answer is yes, then the process loops back to step 926 . If in step 934 the answer is no, then in step 936 , the process is completed.
- FIG. 10 is a flow chart that illustrates in more detail the typical flow of a process in accordance with an embodiment of the invention.
- FIG. 10 depicts an embodiment in which the event handler capable of receiving selections of master and slave is not part of the operating system. As an example, only one slave is illustrated in the figure. Any number of slave(s) equal to or greater than one is possible. Any number of application(s) equal to or greater than one and equal to or less than the total combined number of master and slave(s) is possible. As an example, the master and slaves remain the same here, although generally and as illustrated in FIG. 11 , the invention permits changes in both master and slave during operation of the invention.
- step 1000 an operator selects a master that has a master address.
- an event handler receives the master address.
- the event handler sends the master address to the application.
- the application locates and activates the master.
- the event handler awaits the operator's selection of a slave.
- the operator selects a slave that has a slave address.
- the event handler receives the slave address.
- the event handler sends the slave address to the application.
- step 1013 the application uses the slave address to locate and activate the slave.
- step 1014 using the master address and the slave address, the application creates a correspondence between the master and slave.
- step 1016 it is queried whether there are any more slaves. If the answer is yes, then the process loops back to step 1006 . If in step 1016 the answer is no, then the process continues to step 1018 . In step 1018 , the event handler awaits the operator's master operation on the master.
- step 1020 the event handler receives the selected master operation.
- step 1022 the event handler sends the master operation to the application, which performs the master operation on the master.
- step 1024 the application checks for and finds correspondence(s).
- step 1025 the correspondence(s) enable the application to retrieve the slave address.
- step 1026 a matrix of corresponding operations is optionally consulted.
- step 1028 the application determines a corresponding operation with regard to the slave.
- step 1032 the application performs the corresponding operation on the slave.
- step 1034 it is ascertained whether there are any more correspondence(s) left to process. Generally speaking, there will be more correspondence(s) left to process when slave(s) are remaining that have not yet been considered, and there will be no more correspondences to process when no slaves are remaining that have not yet been considered. If in step 1034 the answer is yes, then the process loops back to step 1026 . If in step 1034 the answer is no, then in step 1036 , the process is completed.
- FIG. 11 is a flow chart that illustrates a simplified summary of the typical flow of a process in accordance with an embodiment of the invention, according to which the invention permits changes in both master and slave during operation of the invention.
- FIG. 11 depicts an embodiment in which the event handler capable of receiving selections of master and slave is not part of the operating system.
- an event handler receives selections of files of interest, wherein a file of interest is defined one of a map, a document, a window, and a database.
- the event handler receives a designation of a master address corresponding to a master (or alternatively, the master is determined by a default).
- the event handler receives one or more slave address(es) corresponding to one or more slave(s).
- the event handler creates correspondence(s) between master and slave(s).
- the event handler receives a master operation.
- step 1108 the event handler sends the master operation on to be performed on the master, and the master operation is performed on the master.
- step 1110 the event handler checks for and finds correspondence(s).
- step 1112 based on the correspondence(s), the event handler sends corresponding operation(s) to be executed on the slave(s).
- step 1114 the corresponding operation(s) are executed on the slave(s).
- step 1116 the event handler receives an optional revision of selections of files of interest. This revision may comprise one or more of addition of one or more new files of interest, addition of one of more new slaves, removal of one of more existing files of interest, and removal of one or more existing slaves. Any number of slave(s) equal to or greater than one is possible. The number of slaves can change with successive operations of the invention. The process then loops back to step 1101 and the next iteration of the invention begins.
- the event handler capable of receiving selections of master and slave is part of the operating system and in other embodiments, it is separate from the operating system. Where the event handler capable of receiving selections of master and slave is part of the operating system, the event handler directly causes other segments of the operating system to execute the requested master operation on the master and to execute the corresponding operation(s) on the slave(s). The event handler locates all slave(s) and relays to each of them a message directing that an appropriate corresponding operation be executed on each of them that corresponds to the master operation executed on the master.
- the corresponding operation to be executed on a slave may be identical to the master operation executed on the master. This is likely to be true where the master and slave are both operating in the same application, and may be true as well where the master and slave are documents that operate in different applications. In other embodiments, that will not be true and for one or more of the slaves, the corresponding operation will be different from the master operation.
- the system includes a matrix of corresponding operations, which is optionally consulted by the event handler to determine which corresponding operation corresponds to the master operation.
- All embodiments operate with one master and with one or more slave(s). It should be understood that master and slave are designations that may only last for the duration of a particular use of the invention. Master and slave are not necessarily permanent or even semi-permanent designations. A map, window, document or database that is the master in one use of the invention could be the slave in the next use of the invention. Similarly, a map, window, document or database that is the slave in one use of the invention could be the master in the next use of the invention. Moreover, although there is only one master for a given use of the invention, any number of slave(s) may be present. For simplicity, in some diagrams we have limited our to one slave, but this is purely for convenience only and does not reflect any limitation of the invention. One or more slaves are possible for a given embodiment.
- no specific input device is associated with the invention.
- a virtually limitless variety of input device can be used in conjunction with embodiments of the present invention to enable the operator to select master, slave, and master operation.
- Examples of input devices that may be used include a mouse, a keyboard, a touchpad, a data glove, a voice interface, and a stylus on a personal digital assistant (PDA).
- PDA personal digital assistant
- embodiments of the invention may operate without any input device at all, according to embodiments in which master and slave and master operation are selected without use of an input device.
- a master and a slave are pre-selected as defaults and are opened up by the operating system. In this embodiment, the operator inputs the master operation although that can also be set by default.
- a mouse may be designed so that the selection of master and slave(s) is done with a left click, a center click, a right click, or any one of a large set of other possibilities.
- the specific type of input device and input mode does not substantially affect the functioning of the invention.
- Various embodiments include, as examples, methods for selecting the master such as executing a master operation on the master, operator input designating the master, selecting a “corresponding operations-multiple maps/windows/documents/databases” command and then selecting the master, by pre-selecting the master as a default master, and by pre-selecting the master as a default master and opening the master.
- methods for selecting the master such as executing a master operation on the master, operator input designating the master, selecting a “corresponding operations-multiple maps/windows/documents/databases” command and then selecting the master, by pre-selecting the master as a default master, and by pre-selecting the master as a default master and opening the master.
- Other methods for selecting the master will be well known to those skilled in the art.
- Various embodiments include, as examples, methods for selecting the slave(s) such as operator input designating the slave, selecting a “corresponding operations-multiple maps/windows/documents/databases” command and then selecting the slave, pre-selecting the one or more slaves as one or more default slaves, and by pre-selecting the one or more slaves as the one or more default slaves and opening the master.
- the selection of the slave(s) can be conceptualized as simultaneously creating a correspondence between the master and each of the slave(s). Other methods for making the selections of the slave(s) will be well known to those skilled in the art.
- event handler function will incorporate the event handler function as part of the operating system, as a separate routine incorporated into other software, as a stand-alone routine, or in other forms.
- Other embodiments incorporating the event handler function into the system will be well known to those skilled in the art.
- the master will be selected by default.
- the operator selects the slave by creating a correspondence between the master and each of the one or more slaves.
- one way to do this is to include a menu item that the operator can select that “corresponds this master window [or document or database] with others.” Selection of this menu item notifies the event handler that any other map, window, document or database on which the operator clicks now is not being requested for focus but rather is being designated for correspondence with the master.
- Correspondences may be implemented through a side file containing correspondences between maps, windows, documents, or databases that are operationally connected.
- the master and the one or more slaves are selected by the operator as files of interest, wherein a file is defined as one of a map, a document, a window, and a database. According to this set of embodiments, the master is subsequently selected from among said files of interest.
- the selection of the master is subject to change on subsequent applications of the method disclosed by the invention.
- the selection of the one or more slaves is subject to change on subsequent applications of the method disclosed by the invention. This can be accomplished by one or more of adding one or more slaves to the files of interest or to the slaves, and deleting one or more existing slaves from the files of interest or from the slaves.
- the operation that is executed on master and slave(s) is a drag and drop. In another embodiment, the operation that is executed on master and slave(s) is a cut and paste. In another embodiment, the operation that is executed on master and slave(s) is a paste.
- the master is designated by a selection of the operator, using an input device or by other means. According to this embodiment, simply by designating a master operation to be executed on a specific master, the operator has simultaneously specified a master operation and has selected a master. In one embodiment, any subsequent maps, windows, documents, or databases on which the operator clicks are thereby designated as slave(s).
- the operator may actively select the mode of corresponding operations-multiple maps/windows/documents/databases,” and only after that mode is selected does the option become operational of designating a master and a master operation through input device selection.
- the operator actively selects the master by inputting a specific master operation to be executed on a specific master.
- all slave(s) are then set by default.
- the default cannot be overridden except by initiating another master operation.
- the default may be overridden by operator input.
- the operator actively selects the master by inputting a specific master operation to be executed on a specific master.
- the slave(s) are manually selected. If no slave(s) are selected, the invention does not function.
- a pre-selected master functions as the default selection that must be overridden if a different master is desired.
- only pre-selected default slave(s) that are open are used. The operator may be queried as to whether he or she wishes to select further slave(s) and also whether he or she wishes to remove any of the pre-designated slave(s).
- a default master is used as the master only, if it is open. In this embodiment, if the default master is not open, the operator is prompted to select an open master.
- the master operation is selected by default. In one embodiment, the selection may be overridable by operator input. In other embodiments, if no master operation is selected or if the operation is meaningless on master and slave(s), the invention fails to function.
- the documents used are created in a word processing program such as Microsoft Word or Corel Word Perfect.
- a group of documents is selected prior to operation of the invention.
- the documents are synchronized together so that an operator who scrolls down any one of the three documents will automatically cause a corresponding scrolling down to happen simultaneously in each of the other documents.
- every time an operator scrolls down one of the documents that document becomes the new master document.
- the selected group of documents comprises two similar but non-identical versions of the same document, plus a third document comparing the differences between documents 1 and 2.
- document 606 is the Gettysburg Address as delivered by Abraham Lincoln
- document 610 is an “edited” version of the same speech
- document 614 compares the differences between documents 606 and 610 .
- the master and the one or more slave(s) are photographs.
- a master operation that is executed on a master photograph is executed in its corresponding form on slave photographs.
- the master window and the one or more slave window(s) all show different views of the same photograph.
- a master operation that is executed on a master window is executed in its corresponding form on slave windows.
- a masterwindow and/or slave window(s) display electronic maps.
- the different windows may display different views of the same map or views of different maps (or, trivially, the same views of the same map).
- the invention functions identically regardless of whether the maps depicted in the various windows are the same or not.
- the process typically begins by the computer system or on other processor executing an embodiment of the invention, displaying or providing a means for allowing an operator to select a master.
- the operator uses a computer system that includes a computer display, and some form of graphical interface executing thereon, for example, a Unix Windows environment, a Mac OS, or a Microsoft Windows environment or some other graphical application environment.
- GUI graphical operator interface
- Other implementations of the invention can be designed for use with specific graphical devices and systems for example with in-car navigation systems, or with specialized navigation systems for use in marine, aviation, navigation, and military applications.
- FIG. 12 is a block diagram that schematically illustrates, as an example, a system 1200 that can be used with an embodiment of the invention, including an optional matrix of corresponding operations 1214 to which reference can be made in determining the corresponding operation(s) to be executed on slave(s) 1210 .
- matrix 1214 There is not necessarily any relationship between different elements in matrix 1214 .
- master and slave(s) are the same type of map/window/document/database, reversing slave and master may lead to an utterly different value of matrix 1214 and thus a completely different corresponding operation.
- a matrix of corresponding operations 1214 for an application involving N maps/windows/documents/databases must account for all possible permutations of the maps/windows/documents/databases.
- the dimension of matrix 1214 for an application involving N windows/documents/databases will be N 2 . In those cases in which the corresponding operation is the same in all cases as the master operation, the matrix of corresponding operations 1214 is an
- At least one slave is not on the same computer as the master.
- the system may comprise at least two computers.
- the at least two computers communicate by means of a remote communication system.
- the remote communication system is one of the Internet, an intranet, and another interconnected network.
- the remote communication system is a windowing system.
- the remote communication system is an operating system.
- the system 1200 allows for corresponding operations to be executed in multiple windows or on multiple documents or on multiple databases in accordance to various embodiments of the invention.
- only one slave 1210 is illustrated in the figure. Any number of slave(s) 1210 equal to or greater than one is possible.
- the system 1200 typically includes a computing device 1205 which may comprise one or more of an event handler 1216 , one or more memories 1218 , one or more processors 1219 , and one or more storages or repositories 1220 of some sort.
- the system may further include a display device 1222 , including a graphical operator interface or GUI 1223 operating thereon by which the system can display master 1208 , slave(s) 1210 , and other information.
- the system 1200 shown can be used to display to an operator 1204 a master 1206 and a slave 1210 as well as optionally providing a means to select a master operation.
- Master 1206 and/or slave(s) 1210 may be retrieved from external storage 1203 (which in some instances may be the same storage as storage 1220 ).
- FIG. 12 also illustrates an optional matrix of corresponding operations 1214 external to the logic of the system that is then used to determine the corresponding operation.
- the system further includes one or more apparatuses capable of receiving instructions from the operator needed to operate embodiments of the invention such as designations of master, slave, master operation, and/or desired embodiment of the invention.
- apparatuses can include a range of input devices familiar to those skilled in the art such as a mouse, a keyboard, a touchpad, a data glove, a voice interface, and a stylus on a personal digital assistant (PDA).
- PDA personal digital assistant
- Embodiments of the invention also offers the ability to function without an input device, via a range of possibilities including default designations of master, slave(s), and or master operation.
- Embodiments of the present invention include a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to program a computer to execute any of the processes of the present invention.
- the storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.
- Embodiments of the present invention include software, stored on any one of the computer readable medium (media), for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human operator or other mechanism utilizing the results of the present invention.
- Such software may include, but is not limited to, device drivers, operating systems, and user applications.
- Such computer readable media further includes software for executing the present invention, as described above.
- the software modules for implementing the teachings of the present invention including, but not limited to, allowing the operator to select the master, one or more slave(s), and/or the master operation, either by default or through direct selection; storing correspondence(s) between master and slave(s); arranging to execute the master operation on the master; and arranging to automatically execute corresponding operation(s) on the one or more slave(s) according to the processes of the present invention.
- the software modules are comprised within the operating system library.
- the software modules are separate from the operating system.
- software modules are comprised within the operating system library and other software modules are separate from the operating system.
- Embodiments of the present invention may be conveniently implemented using a conventional general purpose or a specialized digital computer or microprocessor programmed according to the teachings of the present disclosure, as will be apparent to those skilled in the computer art.
Abstract
Description
- A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
- The invention is related to systems and methods for executing corresponding operations on sets of data, and particularly to a system and method for automatically executing corresponding operations on multiple maps, windows, multiple documents and/or databases.
- In today's modern computerized society, ever-increasing demands are being placed on existing computers, computer networks, servers, and other information processing systems. Approaches designed to maximize the use of information resources have become not only advisable but often necessary.
- Often it is desirable to receive a master operation to be executed on a master set of data and then to automatically execute corresponding operations on one or more sets of data (one or more “slaves”). In one embodiment, the corresponding operations are the same as the master operation. The master operation, the corresponding operations, and the data sets are found in a variety of forms. The master operation and each of the corresponding operations can consist of a logical step in a chain of commands, a computation, a re-categorization of a data set, addition or removal or editing of an annotation, in the case of maps a geographical displacement, and countless other forms. In some embodiments, an operation will not affect the data set's permanent structure but is only an operational convenience, for example, as with a geographical rotation of a structure executed to assist in execution of a design program. As another example, in the case of electronic maps, it may be desirable to simultaneously execute a geographic displacement (which may encompass a rotation) of multiple sets of map data.
- Typically, master and slave(s) are not indeterminate designations, but rather designations that vary from one particular use of the invention to the next. In some embodiments, master and slave(s) are designations that result from operations that are performed by an operator rather than from a permanent classification of a particular window/document/database.
- Window-type operating systems, as used in computers and computer networks, are among the most commonly used environments for processing data. It is well known to cut and paste by “cutting” desired material from one source location or source document and “pasting” the material in a second target location or target document. It is also well known to “drag and drop” by “dragging” desired material from one source location or source document and “dropping” the material in a second target location or target document. Typically, a separate “cut and paste” operation (or, minimally, a separate “paste” operation) or a separate “drag and drop” operation must be executed for each target location or target document.
- In the case of electronic maps, it is frequently desired to simultaneously make a given modification of two maps displaying different characteristics of a given geographic region. As an example, one map may show a given area's highway and road system, and another map may show the same area's restaurants.
- In the case of different programs, such as two different word processing programs, or a word processing program and a spreadsheet program, it may be desired to automatically execute the corresponding operation in both programs. As one of many examples, it may be desirable to automatically execute a change of font, a change of color, or a right justification in both a word processing program and a spreadsheet program.
- As one example, in comparing two similar documents in a word processing system, it would be desirable to have the ability to synchronize the first document with the second document, so that an operator who scrolls down the first document will cause a corresponding scrolling down to happen simultaneously in the second document. In the case where a third document has been generated, highlighting the differences between the first two documents, it would also be desirable to have the ability to synchronize the first document with the third document (and similarly, to synchronize the second document with the third document) so that an operator who scrolls down the first (or second) document will cause a corresponding scrolling down to happen simultaneously in the third document. It would also be desirable to synchronize together all three documents so that an operator who scrolls down any one of the three documents will cause a corresponding scrolling down to happen simultaneously in the other two documents.
- Generally described, under embodiments of the invention, the invention receives a master operation that is executed by an operator on a master window, a master document, or a master database, and causes corresponding operations to be automatically executed on one or more slaves, which can each be a window, a document, or a database.
- In the case of documents, embodiments of the invention can operate with master and slave documents that are initially either open or closed or both, depending on the operator's desires and the current state of the computing device. If necessary, embodiments of the invention are capable of opening documents that are closed. Nevertheless, the invention works similarly on maps, windows, documents, and databases. The computer architecture comprises an event handler that could be generally programmed by one of skill in the art and is responsible for causing needed or requested operations to be automatically executed according to an appropriate protocol.
- In some embodiments, the event handler capable of receiving selections of master and slave is part of the operating system, and, in other embodiments, it is separate from the operating system. Where the event handler capable of receiving selections of master and slave is part of the operating system, the event handler directly causes other segments of the operating system to execute the master operation on the master and to execute the corresponding operations on the slave(s). The event handler locates all slaves and relays to each of them a message directing that an operation be executed on each of them that corresponds to the operation executed on the master.
- In some embodiments, the corresponding operation to be executed on a slave may be identical to the operation executed on the master. This is likely to be true where the master and slave are both operating in the same application, and may be true as well where the master and slave are documents that operate in different applications. In other embodiments, that will not be true and for one or more of the slave(s), the corresponding operation will be different from the operation executed on the master. In one embodiment, the system includes a matrix of corresponding operations that is consulted by the event handler to determine—for each of the one or more slave documents—which operation corresponds to the operation executed on the master document. There is not necessarily any relationship between different matrix elements. A matrix of corresponding operations for an application involving N windows/documents/databases will be of dimension N2. Where the corresponding operation is the same in all cases as the master operation, the matrix of corresponding operations is an identity matrix.
- All embodiments operate with one master and with one or more slave(s). It should be understood that master and slave are not necessarily permanent or even semi-permanent designations. Master and slave are designations that may only last for the duration of a particular use of the invention. A map, window, document, or database that is the master in one use of the invention could be the slave in the next use of the invention. Similarly, a map, window, document, or database that is the slave in one use of the invention could be the master in the next use of the invention. Moreover, although there is only one master for a given use of the invention, any number of slave(s) may be present. For simplicity, in some diagrams, we have limited ourselves to one slave, but this is purely for convenience only and does not reflect any limitation of the invention to one slave. One or more slave(s) are possible for a given embodiment.
- Various embodiments include, as examples, methods for selecting the master, such as executing a master operation on the master, operator input designating the master, selecting a “corresponding operations-multiple maps/windows/documents/databases” command that initiates the functioning of the invention and then selecting the master, by pre-selecting the master as a default master, and by pre-selecting the master as a default master and opening the master. Other methods for selecting the master can be programmed by those skilled in the art. Various embodiments include, as examples, methods for selecting the slave(s), such as (1) operator input designating the slave(s); (2) selecting a “corresponding operations-multiple maps/windows/documents/databases” command and then selecting the slave(s); (3) pre-selecting the one or more slaves as one or more default slaves; and, (4) by pre-selecting the one or more slaves as the one or more default slaves and opening the master. The selection of the slave(s) can be considered as simultaneously creating a connection between the master and each of the slave(s). Other methods for making the selections of the slave(s) will be evident to those skilled in the art. Moreover, various embodiments will incorporate the event handler function as part of the operating system, as a separate routine incorporated into other software, as a stand-alone routine, or in other forms. Other embodiments incorporating the event handler function into the system can be programmed by those skilled in the art.
- In certain embodiments, the master and/or one or more slaves and/or the master operation will be selected by default. In certain embodiments, the operator selects the one or more slaves by creating a correspondence between the master and each of the one or more slaves.
- In one embodiment of the invention, the master and slaves are similar documents (as with different “drafts” of the same document) created in a word processing program. According to this embodiment of the invention, a group of documents is selected prior to operation of the invention. In this example, the group comprises three documents, but any number is possible. According to the invention, all documents are synchronized together so that an operator who scrolls down any one of the documents will cause a corresponding scrolling down to happen simultaneously in the other documents. Moreover, every time an operator scrolls down one of the documents, that document becomes the new master document.
- In one embodiment of the invention, the master and the one or more slave document(s) are photographs. A master operation that is executed on a given photograph can be automatically executed on other photographs.
- In some embodiments of the invention, a master window and/or the slave window(s) display electronic maps. The different windows may display different views of the same map or views of different maps (or, trivially, the same views of the same map). The invention functions identically regardless of whether the maps depicted in the various windows are the same or not.
-
FIG. 1 is an illustration that shows how an operator, using an embodiment of the invention, can execute a master operation in a master window or on a master document or a master database and thereby cause a corresponding operation to be automatically executed on a slave without having to separately execute the respective operations on each slave. -
FIGS. 2A-2D are a series of illustrations that show a more specific example of how an operator, using an embodiment of the invention, can cause an operation executed on one map/document/window/database to be automatically executed on a second map/document/window/database. -
FIGS. 3A-3U are a series of illustrations that illustrate in more detail how the system operates in an embodiment in which the event handler capable of receiving selections of master and slave is part of the operating system, and in which the operator selects two slave windows, selecting each by creating a correspondence between a master window and a slave window. -
FIGS. 4A-4M are a series of illustrations that illustrate in more detail how the system operates in an embodiment in which the event handler capable of receiving selections of master and slave is not part of the operating system, and in which the operator selects a slave document by creating a correspondence between a master document and a slave document. -
FIGS. 5A-5E are a series of illustrations of one embodiment of the invention in which the event handler capable of receiving selections of master and slave is part of the operating system, and in which the master document and the one or more slave document(s) are photographs. -
FIGS. 6A-6C are a series of screenshots of one embodiment of the invention involving three similar word processing documents, in which scrolling down by an operator through any one of the three documents will cause a corresponding scrolling down to happen simultaneously in one or both of the other two documents. -
FIG. 7 is a flow chart that illustrates a summary of the typical flow of a process in accordance with the invention in an embodiment in which the event handler capable of receiving selections of master and slave is part of the operating system. -
FIG. 8 is a flow chart that illustrates a summary of the typical flow of a process in accordance with the invention in an embodiment in which the event handler capable of receiving selections of master and slave is not part of the operating system. -
FIG. 9 is a flow chart that illustrates in more detail the typical flow of a process in accordance with the invention in an embodiment in which the event handler capable of receiving selections of master and slave is part of the operating system. -
FIG. 10 is a flow chart that illustrates in more detail the typical flow of a process in accordance with the invention in an embodiment in which the event handler capable of receiving selections of master and slave is not part of the operating system. As an example, only one slave is illustrated in the figure. Any number of slave(s) equal to or greater than one is possible. -
FIG. 11 is a flow chart that illustrates a simplified summary of the typical flow of a process in accordance with an embodiment of the invention, according to which the invention permits changes in both master and slave during operation of the invention. -
FIG. 12 is a block diagram that schematically illustrates, as an example, a system that can be used with an embodiment of the invention, including an optional matrix of corresponding operations, according to the below description. - Generally described, embodiments of the invention are capable of causing a master operation that is executed in a master window or on a master map, master document or master database to also be automatically executed in its corresponding form, respectively, in one or more slave windows and/or on one or more slave maps, slave documents or slave databases.
- Generally speaking, windows must be open in order to exist, though they may be minimized, whereas documents and databases may be open or closed. Again, in general, documents and databases may be stored in any one of a number of permanent storage media, whereas windows only exist during the time the operator has them on the screen, either in maximized or minimized form. In the case of documents and databases, embodiments of the invention can operate with master and slave(s) that are initially either open or closed or both, depending on the operator's desires and the current state of the computing device. If necessary, the invention is capable of opening documents or databases that are closed. Nevertheless, the invention works similarly on maps, windows, documents, and databases.
- The computer architecture comprises an event handler that is responsible for causing needed or requested operations to be executed according to an appropriate protocol. Event handlers are well known in the art and are found in all of the most commonly used personal computer operating systems: Windows, Mac-OS, and Unix. The event handler “listens” to events and tracks when input is received that causes the functioning of the invention to begin or that is otherwise relevant to the functioning of the invention. According to some embodiments, the event handler capable of receiving selections of master and slave is comprised in the operating system. Where the event handler capable of receiving selections of master and slave is not incorporated into the operating system, an embodiment of the invention will mimic the functions executed by the event handler when incorporated into the operating system.
- Typical Usage
- Generally speaking, embodiments of the invention can operate with master and slave documents or databases that are initially either open or closed or both, depending on the operator's desires and the current state of the computing device. If necessary, embodiments of the invention are capable of opening documents that are closed. Nevertheless, the invention works similarly on maps, windows, documents, and databases.
-
FIG. 1 is an illustration depicting a system, including adisplay 101 and a user interface 102, that shows how anoperator 104 using an embodiment of the invention can execute amaster operation 120 on amaster map 106 or on a master document or on a master database or in a master window and thereby cause a corresponding operation to be automatically executed on aslave map 110 or on a slave document or on a slave database or in a slave window without having to separately execute the operation on each slave. Theoperator 104 transmits themaster operation 120 to amaster document 106. Subsequently, an embodiment of the invention causes a corresponding operation 130 (which may be operation 120) to be transmitted to theslave document 110. In this figure, to simplify matters and, as an example, only oneslave document 110 is illustrated. Any number ofslave documents 110 could, in fact, be selected. -
FIGS. 2A-2D are a series of illustrations that show a more specific example of how anoperator 204, using an embodiment of the invention, can cause anoperation 220 executed on a master map/document/window/database 206 to be automatically executed on a slave map/document/window/database 210 without having to separately execute the operation on each document or database or in each window. As examples, both master and slave here are maps. This figure illustrates an embodiment in which the master operation and the corresponding operation are the same operation. - In
FIG. 2A ,operator 204 sends master operation 220 (as an example, a rotation counterclockwise by 23 degrees) to be performed onmaster 206.Master 206, in this example, comprises fiveroads 209. InFIG. 2B ,master operation 220 is performed onmaster 206. InFIG. 2C , embodiments of the invention automatically cause corresponding operation 230 (as an example, a rotation that in this case happens to be identical to master operation 220) to be sent toslave 210.Slave 210, in this example, comprises fourlocations 211. InFIG. 2D , correspondingoperation 230 is performed onslave 210. - Various embodiments include, as examples, methods for selecting the master such as executing a master operation on the master, selecting the master, selecting a “corresponding operations-multiple maps/windows/documents/databases” command and then selecting the master, by pre-selecting the master as a default master, and by pre-selecting the master as a default master and opening the master. In one embodiment, an operator's designation of a master operation to be executed on a specific master simultaneously specifies a master operation and selects a master. In one embodiment, any subsequent maps, windows, documents, or databases on which the operator clicks are thereby designated as slave(s). Other methods for selecting the master will be well-known to those skilled in the art. Various embodiments include, as examples, methods for selecting the slave(s) such as operator input, by pre-selecting the one or more slaves as one or more default slaves, and by pre-selecting the one or more slaves as the one or more default slaves and opening the slave. Correspondences may be implemented by saving them in memory or through a side file containing a correspondence between maps, documents, windows, or databases that are operationally connected to each other. The selection of the slave(s) can be visualized as simultaneously creating a connection between the master and each of the slave(s). Other methods for making the selections of the slave(s) will be well-known to those skilled in the art.
- Moreover, various embodiments will incorporate the event handler capable of receiving selections of master and slave as part of the operating system, as a separate routine incorporated into other software, as a stand-alone routine, or in other forms. Where the event handler capable of receiving selections of master and slave is part of the operating system, it causes the operating system to execute the requested operations on master and slave(s). The event handler locates all slave(s) and relays to each of them a message directing that an operation be executed on each of them that corresponds to the master operation executed on the master.
-
FIGS. 3A-3U are a series of illustrations that illustrate in more detail how thesystem 300 including adisplay 301 and auser interface 302 operates in an embodiment in which anevent handler 308 capable of receiving selections of master and slave is part of the operating system, and in which anoperator 304 selects amaster 306 and twoslaves master 306 comprisesstreets 309,first slave 310 comprisesfirst locations 311, andsecond slave 314 comprisessecond locations 317. Although maps are illustrated as an example, the principles are the same for embodiments involving windows, documents, or databases. In this example, the corresponding operations are identical to the master operation. In general, the corresponding operations need not be identical to the master operation and often will not be identical. Theoperator 304 selects afirst slave 310 by creating afirst correspondence 312 between themaster 306 and thefirst slave 310, and the operator selects asecond slave 314 by creating asecond correspondence 316 between themaster 306 and thesecond slave 314. AlthoughFIGS. 3A-3U illustrate twoslave maps operator 304 asmaster 306 orslave 310/314 may again be simultaneously present but are not relevant to the operation of the invention and, thus, are not depicted. InFIG. 3A , thesystem 300 includes adisplay 301 and auser interface 302. Anoperator 304 selects amaster 306 and sends to the event handler 308 amaster address 320 designating and enabling the location of themaster 306. Theevent handler 308 receives themaster address 320. In some embodiments, an input device (not illustrated) will be used to make the designation, while in other embodiments no input device is present and the designation is made by other means such as a set of batch commands (not illustrated) or default selection (not illustrated). InFIG. 3B , theevent handler 308 uses themaster address 320 to locate and activate themaster 306. The activation of themaster 306 is symbolically represented in the diagram by a boldface frame around the inside edge of themaster 306. InFIG. 3C , theevent handler 308 awaits the selection by theoperator 304 of afirst slave 310. InFIG. 3D , theoperator 304 selects thefirst slave 310, which has afirst slave address 330. Through the operation of the invention,first slave address 330 is sent to theevent handler 308 designating and enabling the location of thefirst slave 310. The event handier 308 receives thefirst slave address 330 from theoperator 304 designating and enabling the location of thefirst slave 310. InFIG. 3E , theevent handler 308 uses thefirst slave address 330 to locate and activate thefirst slave 310. The activation of thefirst slave 310 is symbolically represented in the diagram by a boldface frame around the inside edge of thefirst slave 310. InFIG. 3F , theevent handler 308 uses themaster address 320 and thefirst slave address 330 to send aninstruction 334 to create afirst correspondence 312 between themaster 306 and thefirst slave 310. - In
FIG. 3G , theevent handler 308 awaits the selection by theoperator 304 of asecond slave 314. InFIG. 3H , theoperator 304 selects thesecond slave 314, which has asecond slave address 340. Through the operation of the invention,second slave address 340 is sent to theevent handler 308, designating and enabling the location of thesecond slave 314. Theevent handler 308 receives thesecond slave address 340 from theoperator 304 designating and enabling the location of thesecond slave 314. InFIG. 3I , theevent handler 308 uses thesecond slave address 340 to locate and activate thesecond slave 314. The activation of thesecond slave 314 is symbolically represented in the diagram by a boldface frame around the inside edge of thesecond slave 314. InFIG. 3J , theevent handler 308 uses themaster address 320 and thesecond slave address 340 to send aninstruction 344 to create asecond correspondence 316 between themaster 306 and thesecond slave 314. - In
FIG. 3K , theevent handler 308 awaits amaster operation 350 by theoperator 304 on themaster 306. InFIG. 3L , theoperator 304 selects a master operation 350 (as an example, a counterclockwise rotation by 23 degrees). Through the operation of the invention,master operation 350 is sent to theevent handler 308.Event handler 308 receives themaster operation 350 and, using themaster address 320, locates themaster 306 and sends themaster operation 350 on tomaster 306.Master operation 350 is performed onmaster 306. InFIG. 3M , themaster operation 350 has just been performed onmaster 306. The counter-clockwise rotation ofmaster 306 has rotated themaster 306 including each of thestreets 309. - In
FIG. 3N , theevent handler 308 uses themaster address 320 to perform theaction 356 of checking for and finding thefirst correspondence 312. InFIG. 3O , thefirst correspondence 312 enablesevent handler 308 to retrievefirst slave address 330, corresponding tofirst slave 310. After optionally consulting a matrix of corresponding operations,event handler 308 determines a firstcorresponding operation 358 to be executed onfirst slave 310. InFIG. 3P , theevent handler 308 sends the firstcorresponding operation 358 on to be executed onfirst slave 310. InFIG. 3Q , the first corresponding operation 358 (as an example, also a counter-clockwise rotation) has just been performed onfirst slave 310. The counter-clockwise rotation offirst slave 310 has rotatedfirst slave 310 including each of thefirst locations 311. - In
FIG. 3R , theevent handler 308 uses themaster address 320 to perform theaction 362 of checking for and finding thesecond correspondence 316. InFIG. 3S , thesecond correspondence 316 enablesevent handler 308 to retrievesecond slave address 340, corresponding tosecond slave 314. After optionally consulting a matrix of corresponding operations,event handler 308 determines a secondcorresponding operation 364 to be executed onsecond slave 314. InFIG. 3T , theevent handler 308 sends the secondcorresponding operation 364 on to be executed onsecond slave 314. InFIG. 3U , the second corresponding operation 364 (as an example, also a counter-clockwise rotation) has just been performed onsecond slave 314. The counter-clockwise rotation ofsecond slave 314 has rotatedsecond slave 314 including each of thesecond locations 317. -
FIGS. 4A-4M are a series of illustrations that illustrate in more detail how thesystem 400, including adisplay 401 and auser interface 402, operates in an embodiment in which anevent handler 408 capable of receiving selections of master and slave is not part of the operating system, and in which anoperator 404 selects amaster 406 and aslave 410. In this example,master 406 comprisesstreets 409, andslave 410 compriseslocations 411. Although maps are illustrated as an example, the principles are the same for embodiments involving windows, documents, or databases. In this example, the corresponding operation is identical to the master operation. In general, the corresponding operation need not be identical to the master operation and often will not be identical. Theoperator 404 selects theslave 410 by creating acorrespondence 412 between themaster 406 and theslave 410. It is assumed, as an example only, thatmaster 406 andslave 410 are in thesame application 413. AlthoughFIGS. 4A-4M illustrate only oneslave 410, any number of slave(s) equal to or greater than one is possible. Any number of other documents that are not selected by theoperator 404 asmaster 406 orslave 410 may be simultaneously present but are not relevant to the operation of the invention and thus are not depicted. - In
FIG. 4A , thesystem 400 includes adisplay 401 and auser interface 402. Theoperator 404 selects amaster 406 and sends to the event handler 408 amaster address 420 designating and enabling the location of themaster 406. Theevent handler 408 receives themaster address 420. In some embodiments, an input device (not illustrated) will be used to make the designation, while in other embodiments no input device is present and the designation is made by other means such as a set of batch commands (not illustrated) or default selection (not illustrated). InFIG. 4B , theevent handler 408 sends themaster address 420 toapplication 413, which usesmaster address 420 to locate and activate themaster 406. The activation of themaster 406 is symbolically represented in the diagram by a boldface frame around the inside edge of themaster 406. InFIG. 4C , theevent handler 408 awaits the selection by theoperator 404 of aslave 410. InFIG. 4D , theoperator 404 selects aslave 410 having aslave address 430. Through the operation of the invention,slave address 430 is sent to theevent handler 408. Theevent handler 408 receives from theoperator 404 theslave address 430 designating and enabling the location of theslave 410. InFIG. 4E , theevent handler 408 sends theslave address 430 toapplication 413. InFIG. 4F ,application 413 usesslave address 430 to locate and activate theslave 410. The activation of theslave 410 is symbolically represented in the diagram by a boldface frame around the inside edge of theslave 410. InFIG. 4G , theapplication 413 uses themaster address 420 and theslave address 430 to send aninstruction 434 to create acorrespondence 412 between themaster 406 and theslave 410. - In
FIG. 4H , theevent handler 408 awaits a master operation by theoperator 404 on themaster 406. InFIG. 4I , theoperator 404 selects a master operation 440 (as an example, a zoom). Through the operation of the invention,master operation 440 is sent to theevent handler 408.Event handler 408 receives themaster operation 440 and sends themaster operation 440 to theapplication 413.Application 413 executesmaster operation 440 onmaster 406. InFIG. 4J ,master operation 440 has just been performed onmaster 406. The zoom ofmaster 406 has resulted in previously visible outer segments ofstreets 409 disappearing off the outside edges ofmaster 406. InFIG. 4K , theevent handler 408 sends aninstruction 441 toapplication 413 to check for acorrespondence 412. InFIG. 4L ,application 413 uses themaster address 420 to perform theaction 442 of checking for and finding thecorrespondence 412. InFIG. 4M ,correspondence 412 enablesapplication 413 to retrieveslave address 430, corresponding toslave 410. After optionally consulting a matrix of corresponding operations,application 413 determines acorresponding operation 458 to be executed onslave 410. InFIG. 4N ,application 413 executes thecorresponding operation 458 on theslave 410. InFIG. 4O , corresponding operation 458 (as an example, also a zoom) has just been performed onslave 410. The zoom ofslave 410 has resulted in one previouslyvisible location 411 disappearing off the outside edges ofslave 410 and an increased separation between the stillvisible locations 411. -
FIGS. 5A-5E are a series of illustrations of one embodiment of the invention in which theevent handler 508 capable of receiving selections of master and slave is part of the operating system (not illustrated), and in which themaster document 506 and the slave document(s) 510, 514, and 518 are photographs. InFIG. 5A , theoperator 504 transmits amaster operation 520 to theevent handler 508. InFIG. 5B , theevent handler 508 carries out themaster operation 520 on themaster photograph 506. InFIG. 5C , the event handler carries out a firstcorresponding operation 558 on thefirst slave photograph 510. InFIG. 5D , the event handler 500 carries out a secondcorresponding operation 564 on thesecond slave photograph 514. InFIG. 5E , the event handler carries out a thirdcorresponding operation 572 on thethird slave photograph 518. -
FIGS. 6A-6C are a series of screenshots of one embodiment of the invention involving, as an example, three similar word processing documents, first document 606, second document 610, and a third document 614 that highlights the differences between the first two documents. According to this embodiment of the invention, a group of documents is selected prior to operation of the invention. In this case, the group comprises three documents, but any number of documents equal to two or more permits the operation of the invention. The documents are synchronized together so that an operator who scrolls down any one of the documents will automatically cause a corresponding scrolling down to happen simultaneously in each of the other documents. Moreover, every time an operator scrolls down one of the documents, that document becomes the new master document. In this example, first document 606 is the Gettysburg Address as delivered by Abraham Lincoln, second document 610 is an “edited” version of the same speech, and third document 614 compares the differences between first documents 606 and second 610. -
FIG. 6A shows screenshots of the beginnings of documents 606, 610 and 614. If an operator scrolls down to the middle of first document 606, an embodiment of the invention causes a scrolling down to automatically be performed to bring into view the corresponding middle sections of second document 610 and third document 614. Conversely, if an operator scrolls down to the middle of second document 610 (or to the middle of third document 614), an embodiment of the invention causes a scrolling down to automatically be performed to bring into view the corresponding middle sections of the other two documents. In any of these cases,FIG. 6B illustrates the screenshots of the corresponding middle sections of documents 606, 610 and 614 that will appear due to the operation of this embodiment of the invention. - If the operator then scrolls down to the bottom of first document 606, an embodiment of the invention causes a corresponding scrolling down to automatically be performed to bring into view the corresponding bottom sections of second documents 610 and third document 614. Conversely, if an operator scrolls down to the bottom of second document 610 (or to the bottom of third document 614), an embodiment of the invention causes a corresponding scrolling down to automatically be performed to bring into view the corresponding bottom sections of the other two documents. In any of these cases,
FIG. 6C illustrates the screenshots of the corresponding bottom sections of documents 606, 610 and 614 that will appear due to the operation of this embodiment of the invention. -
FIG. 7 is a flow chart that illustrates a simplified summary of the typical flow of a process in accordance with an embodiment of the invention in which an event handler capable of receiving selections of master and slave is part of the operating system. Instep 700, an event handler receives a master address corresponding to a selected master. Instep 702, the event handler receives one or more slave address(es) corresponding to one or more slave(s). Instep 704, the event handler creates correspondence(s) between master and slave(s). Instep 706, the event handler receives a master operation. Instep 708, the event handler sends the master operation on to be performed on the master, and the master operation is performed on the master. Instep 710, the event handler checks for and finds correspondence(s). Instep 712, based on the correspondence(s), the event handler sends corresponding operation(s) to be executed on the slave(s). Instep 714, the corresponding operation(s) are executed on the slave(s). Any number of slave(s) equal to or greater than one is possible. -
FIG. 8 is a flow chart that illustrates a summary of the typical flow of a process in accordance with an embodiment of the invention in which an event handler capable of receiving selections of master and slave is not part of the operating system, and in which an operator selects a master and a slave. Instep 800, an event handler receives a master address corresponding to a selected master. Instep 802, the event handler receives one or more slave address(es) corresponding to one or more slave(s). Instep 804, the event handler creates correspondence(s) between master and slave(s). Instep 806, the event handler receives a master operation. Instep 808, the event handler sends the master operation to the application, which performs the master operation on the master. Instep 810, the application checks for and finds correspondence(s). Instep 814, the application(s) execute(s) the corresponding operation(s) on the slave(s). Any number of slave(s) equal to or greater than one is possible. Any number of application(s) equal to or greater than one and equal to or less than the total combined number of master and slave(s) is possible. -
FIG. 9 is a flow chart that illustrates in more detail the typical flow of a process in accordance with an embodiment of the invention.FIG. 9 depicts an embodiment in which the event handler capable of receiving selections of master and slave is part of the operating system. As an example, only one slave is illustrated in the figure. Any number of slave(s) equal to or greater than one is possible. As an example, the master and slaves remain the same here, although generally and as illustrated inFIG. 11 , the invention permits changes in both master and slave during operation of the invention. - In
step 900, an operator selects a master that has a master address. Instep 902, an event handler receives the master address. Instep 904, using the master address, the event handler locates and activates the master. Instep 906, the event handler awaits the operator's selection of a slave. Instep 908, the operator selects a slave that has a slave address. Instep 910, the event handler receives the slave address. Instep 912, using the slave address, the event handler locates and activates the slave. Instep 914, using the master address and the slave address, the event handler creates a correspondence between the master and slave. Instep 916, it is queried whether there are any more slaves. If the answer is yes, then the process loops back tostep 906. If instep 916 the answer is no, then the process continues to step 918. Instep 918, the event handler awaits the operator's master operation on the master. - In
step 920, the event handler receives the selected master operation. Instep 922, the event handler sends the master operation on to be executed on the master, and the master operation is executed on the master. Instep 924, the event handler checks for and finds correspondence(s). Instep 925, the correspondence(s) enable the event handler to retrieve the slave address. - In
step 926, a matrix of corresponding operations is optionally consulted. Instep 928, the event handler determines a corresponding operation with regard to the slave. Instep 930, the event handler sends the corresponding operation on to be executed on the slave. Instep 932 the corresponding operation is executed on the slave. Instep 934, it is asked whether there are any more correspondence(s) left to process. Generally speaking, there will be more correspondence(s) left to process when slave(s) are remaining that have not yet been considered, and there will be no more correspondences to process when no slaves are remaining that have not yet been considered. If instep 934 the answer is yes, then the process loops back tostep 926. If instep 934 the answer is no, then instep 936, the process is completed. -
FIG. 10 is a flow chart that illustrates in more detail the typical flow of a process in accordance with an embodiment of the invention.FIG. 10 depicts an embodiment in which the event handler capable of receiving selections of master and slave is not part of the operating system. As an example, only one slave is illustrated in the figure. Any number of slave(s) equal to or greater than one is possible. Any number of application(s) equal to or greater than one and equal to or less than the total combined number of master and slave(s) is possible. As an example, the master and slaves remain the same here, although generally and as illustrated inFIG. 11 , the invention permits changes in both master and slave during operation of the invention. - In
step 1000, an operator selects a master that has a master address. Instep 1002, an event handler receives the master address. Instep 1003, the event handler sends the master address to the application. Instep 1004, using the master address, the application locates and activates the master. Instep 1006, the event handler awaits the operator's selection of a slave. Instep 1008, the operator selects a slave that has a slave address. Instep 1010, the event handler receives the slave address. Instep 1012, the event handler sends the slave address to the application. Instep 1013, the application uses the slave address to locate and activate the slave. Instep 1014, using the master address and the slave address, the application creates a correspondence between the master and slave. Instep 1016, it is queried whether there are any more slaves. If the answer is yes, then the process loops back tostep 1006. If instep 1016 the answer is no, then the process continues to step 1018. Instep 1018, the event handler awaits the operator's master operation on the master. - In
step 1020, the event handler receives the selected master operation. Instep 1022, the event handler sends the master operation to the application, which performs the master operation on the master. Instep 1024, the application checks for and finds correspondence(s). Instep 1025, the correspondence(s) enable the application to retrieve the slave address. - In
step 1026, a matrix of corresponding operations is optionally consulted. Instep 1028, the application determines a corresponding operation with regard to the slave. Instep 1032, the application performs the corresponding operation on the slave. Instep 1034, it is ascertained whether there are any more correspondence(s) left to process. Generally speaking, there will be more correspondence(s) left to process when slave(s) are remaining that have not yet been considered, and there will be no more correspondences to process when no slaves are remaining that have not yet been considered. If instep 1034 the answer is yes, then the process loops back tostep 1026. If instep 1034 the answer is no, then instep 1036, the process is completed. -
FIG. 11 is a flow chart that illustrates a simplified summary of the typical flow of a process in accordance with an embodiment of the invention, according to which the invention permits changes in both master and slave during operation of the invention. -
FIG. 11 depicts an embodiment in which the event handler capable of receiving selections of master and slave is not part of the operating system. Instep 1100, an event handler receives selections of files of interest, wherein a file of interest is defined one of a map, a document, a window, and a database. Instep 1101, the event handler receives a designation of a master address corresponding to a master (or alternatively, the master is determined by a default). Instep 1102, the event handler receives one or more slave address(es) corresponding to one or more slave(s). Instep 1104, the event handler creates correspondence(s) between master and slave(s). Instep 1106, the event handler receives a master operation. Instep 1108, the event handler sends the master operation on to be performed on the master, and the master operation is performed on the master. Instep 1110, the event handler checks for and finds correspondence(s). Instep 1112, based on the correspondence(s), the event handler sends corresponding operation(s) to be executed on the slave(s). Instep 1114, the corresponding operation(s) are executed on the slave(s). Instep 1116, the event handler receives an optional revision of selections of files of interest. This revision may comprise one or more of addition of one or more new files of interest, addition of one of more new slaves, removal of one of more existing files of interest, and removal of one or more existing slaves. Any number of slave(s) equal to or greater than one is possible. The number of slaves can change with successive operations of the invention. The process then loops back tostep 1101 and the next iteration of the invention begins. - In some embodiments of the invention, the event handler capable of receiving selections of master and slave is part of the operating system and in other embodiments, it is separate from the operating system. Where the event handler capable of receiving selections of master and slave is part of the operating system, the event handler directly causes other segments of the operating system to execute the requested master operation on the master and to execute the corresponding operation(s) on the slave(s). The event handler locates all slave(s) and relays to each of them a message directing that an appropriate corresponding operation be executed on each of them that corresponds to the master operation executed on the master.
- In some embodiments the corresponding operation to be executed on a slave may be identical to the master operation executed on the master. This is likely to be true where the master and slave are both operating in the same application, and may be true as well where the master and slave are documents that operate in different applications. In other embodiments, that will not be true and for one or more of the slaves, the corresponding operation will be different from the master operation. In one embodiment, the system includes a matrix of corresponding operations, which is optionally consulted by the event handler to determine which corresponding operation corresponds to the master operation.
- All embodiments operate with one master and with one or more slave(s). It should be understood that master and slave are designations that may only last for the duration of a particular use of the invention. Master and slave are not necessarily permanent or even semi-permanent designations. A map, window, document or database that is the master in one use of the invention could be the slave in the next use of the invention. Similarly, a map, window, document or database that is the slave in one use of the invention could be the master in the next use of the invention. Moreover, although there is only one master for a given use of the invention, any number of slave(s) may be present. For simplicity, in some diagrams we have limited ourselves to one slave, but this is purely for convenience only and does not reflect any limitation of the invention. One or more slaves are possible for a given embodiment.
- Additionally, no specific input device is associated with the invention. As is known to those skilled in the art, a virtually limitless variety of input device can be used in conjunction with embodiments of the present invention to enable the operator to select master, slave, and master operation. Examples of input devices that may be used include a mouse, a keyboard, a touchpad, a data glove, a voice interface, and a stylus on a personal digital assistant (PDA). Moreover, embodiments of the invention may operate without any input device at all, according to embodiments in which master and slave and master operation are selected without use of an input device. In one embodiment, a master and a slave are pre-selected as defaults and are opened up by the operating system. In this embodiment, the operator inputs the master operation although that can also be set by default.
- As is known to those skilled in the art, a virtually limitless variety of input modes are available for a given input device. A mouse may be designed so that the selection of master and slave(s) is done with a left click, a center click, a right click, or any one of a large set of other possibilities. As will be well-known to those skilled in the art, the specific type of input device and input mode does not substantially affect the functioning of the invention.
- Various embodiments include, as examples, methods for selecting the master such as executing a master operation on the master, operator input designating the master, selecting a “corresponding operations-multiple maps/windows/documents/databases” command and then selecting the master, by pre-selecting the master as a default master, and by pre-selecting the master as a default master and opening the master. Other methods for selecting the master will be well known to those skilled in the art. Various embodiments include, as examples, methods for selecting the slave(s) such as operator input designating the slave, selecting a “corresponding operations-multiple maps/windows/documents/databases” command and then selecting the slave, pre-selecting the one or more slaves as one or more default slaves, and by pre-selecting the one or more slaves as the one or more default slaves and opening the master. The selection of the slave(s) can be conceptualized as simultaneously creating a correspondence between the master and each of the slave(s). Other methods for making the selections of the slave(s) will be well known to those skilled in the art. Moreover, various embodiments will incorporate the event handler function as part of the operating system, as a separate routine incorporated into other software, as a stand-alone routine, or in other forms. Other embodiments incorporating the event handler function into the system will be well known to those skilled in the art.
- In certain embodiments, the master will be selected by default. In certain embodiments, the operator selects the slave by creating a correspondence between the master and each of the one or more slaves. As an example, one way to do this is to include a menu item that the operator can select that “corresponds this master window [or document or database] with others.” Selection of this menu item notifies the event handler that any other map, window, document or database on which the operator clicks now is not being requested for focus but rather is being designated for correspondence with the master. Correspondences may be implemented through a side file containing correspondences between maps, windows, documents, or databases that are operationally connected.
- In another set of embodiments, the master and the one or more slaves are selected by the operator as files of interest, wherein a file is defined as one of a map, a document, a window, and a database. According to this set of embodiments, the master is subsequently selected from among said files of interest.
- According to another set of embodiments, the selection of the master is subject to change on subsequent applications of the method disclosed by the invention. According to another set of embodiments, the selection of the one or more slaves is subject to change on subsequent applications of the method disclosed by the invention. This can be accomplished by one or more of adding one or more slaves to the files of interest or to the slaves, and deleting one or more existing slaves from the files of interest or from the slaves.
- In one embodiment, the operation that is executed on master and slave(s) is a drag and drop. In another embodiment, the operation that is executed on master and slave(s) is a cut and paste. In another embodiment, the operation that is executed on master and slave(s) is a paste.
- In one embodiment, where at least one map, window, document or database is open, the master is designated by a selection of the operator, using an input device or by other means. According to this embodiment, simply by designating a master operation to be executed on a specific master, the operator has simultaneously specified a master operation and has selected a master. In one embodiment, any subsequent maps, windows, documents, or databases on which the operator clicks are thereby designated as slave(s).
- In another embodiment, the operator may actively select the mode of corresponding operations-multiple maps/windows/documents/databases,” and only after that mode is selected does the option become operational of designating a master and a master operation through input device selection.
- According to another set of embodiments, the operator actively selects the master by inputting a specific master operation to be executed on a specific master. In some embodiments, all slave(s) are then set by default. In some embodiments, the default cannot be overridden except by initiating another master operation. In another set of embodiments, the default may be overridden by operator input.
- In another embodiment, the operator actively selects the master by inputting a specific master operation to be executed on a specific master. The slave(s) are manually selected. If no slave(s) are selected, the invention does not function.
- In another embodiment, a pre-selected master functions as the default selection that must be overridden if a different master is desired.
- In one embodiment, only pre-selected default slave(s) that are open are used. The operator may be queried as to whether he or she wishes to select further slave(s) and also whether he or she wishes to remove any of the pre-designated slave(s).
- In another embodiment, if no slave(s) are open, the invention simply does not operate. In this embodiment, a corresponding operation can occur only on a document that is open.
- In one embodiment, a default master is used as the master only, if it is open. In this embodiment, if the default master is not open, the operator is prompted to select an open master.
- In another embodiment, the master operation is selected by default. In one embodiment, the selection may be overridable by operator input. In other embodiments, if no master operation is selected or if the operation is meaningless on master and slave(s), the invention fails to function.
- In one embodiment of the invention, the documents used are created in a word processing program such as Microsoft Word or Corel Word Perfect. According to this embodiment of the invention, a group of documents is selected prior to operation of the invention. The documents are synchronized together so that an operator who scrolls down any one of the three documents will automatically cause a corresponding scrolling down to happen simultaneously in each of the other documents. Moreover, every time an operator scrolls down one of the documents, that document becomes the new master document. As one example, the selected group of documents comprises two similar but non-identical versions of the same document, plus a third document comparing the differences between
documents - When all three documents are on the screen in separate windows, the invention allows for a scrolling down through any one of the three documents to cause a corresponding scrolling down to happen virtually simultaneously in the other two documents. All three documents are synchronized together so that an operator who scrolls down any one of the three documents will cause a corresponding scrolling down to happen simultaneously in the other two documents. In an example of this embodiment illustrated in
FIG. 6 , document 606 is the Gettysburg Address as delivered by Abraham Lincoln, document 610 is an “edited” version of the same speech, and document 614 compares the differences between documents 606 and 610. - In one embodiment of the invention, the master and the one or more slave(s) are photographs. A master operation that is executed on a master photograph is executed in its corresponding form on slave photographs.
- In another embodiment of the invention, the master window and the one or more slave window(s) all show different views of the same photograph. A master operation that is executed on a master window is executed in its corresponding form on slave windows.
- In some embodiments of the invention, a masterwindow and/or slave window(s) display electronic maps. The different windows may display different views of the same map or views of different maps (or, trivially, the same views of the same map). The invention functions identically regardless of whether the maps depicted in the various windows are the same or not.
- As shown in
FIGS. 7 and 8 (and in more detail inFIGS. 9 and 10 ), the process typically begins by the computer system or on other processor executing an embodiment of the invention, displaying or providing a means for allowing an operator to select a master. However, embodiments do exist in which the master and/or one or more slave(s) and/or the master operation may be selected by default. In a typical implementation, the operator uses a computer system that includes a computer display, and some form of graphical interface executing thereon, for example, a Unix Windows environment, a Mac OS, or a Microsoft Windows environment or some other graphical application environment. It will be evident to one skilled in the art that embodiments of the invention can be equally used with other forms of graphical operator interface (GUI). Other implementations of the invention can be designed for use with specific graphical devices and systems for example with in-car navigation systems, or with specialized navigation systems for use in marine, aviation, navigation, and military applications. - System Implementation
-
FIG. 12 is a block diagram that schematically illustrates, as an example, asystem 1200 that can be used with an embodiment of the invention, including an optional matrix of correspondingoperations 1214 to which reference can be made in determining the corresponding operation(s) to be executed on slave(s) 1210. There is not necessarily any relationship between different elements inmatrix 1214. Specifically, even where master and slave(s) are the same type of map/window/document/database, reversing slave and master may lead to an utterly different value ofmatrix 1214 and thus a completely different corresponding operation. A matrix of correspondingoperations 1214 for an application involving N maps/windows/documents/databases must account for all possible permutations of the maps/windows/documents/databases. The dimension ofmatrix 1214 for an application involving N windows/documents/databases will be N2. In those cases in which the corresponding operation is the same in all cases as the master operation, the matrix of correspondingoperations 1214 is an identity matrix. - Although this diagram depicts components as logically separate, such depiction is merely for illustrative purposes. It will be apparent to those skilled in the art that the components portrayed in this figure can be combined or divided into separate software, firmware and/or hardware components. Furthermore, it will also be apparent to those skilled in the art that such components, regardless of how they are combined or divided, can execute on the same computing device or can be distributed among different computing devices connected by one or more networks or other suitable communication means.
- In one set of embodiments, at least one slave is not on the same computer as the master. In another set of embodiments, the system may comprise at least two computers. In certain sets of embodiments, the at least two computers communicate by means of a remote communication system. In one set of embodiments, the remote communication system is one of the Internet, an intranet, and another interconnected network. In another set of embodiments, the remote communication system is a windowing system. In another set of embodiments, the remote communication system is an operating system.
- The
system 1200 allows for corresponding operations to be executed in multiple windows or on multiple documents or on multiple databases in accordance to various embodiments of the invention. As an example, only oneslave 1210 is illustrated in the figure. Any number of slave(s) 1210 equal to or greater than one is possible. - As shown in
FIG. 12 , thesystem 1200 typically includes acomputing device 1205 which may comprise one or more of anevent handler 1216, one ormore memories 1218, one ormore processors 1219, and one or more storages orrepositories 1220 of some sort. The system may further include adisplay device 1222, including a graphical operator interface orGUI 1223 operating thereon by which the system can display master 1208, slave(s) 1210, and other information. - The
system 1200 shown can be used to display to an operator 1204 amaster 1206 and aslave 1210 as well as optionally providing a means to select a master operation.Master 1206 and/or slave(s) 1210 may be retrieved from external storage 1203 (which in some instances may be the same storage as storage 1220).FIG. 12 also illustrates an optional matrix of correspondingoperations 1214 external to the logic of the system that is then used to determine the corresponding operation. - In some embodiments, the system further includes one or more apparatuses capable of receiving instructions from the operator needed to operate embodiments of the invention such as designations of master, slave, master operation, and/or desired embodiment of the invention. Such apparatuses can include a range of input devices familiar to those skilled in the art such as a mouse, a keyboard, a touchpad, a data glove, a voice interface, and a stylus on a personal digital assistant (PDA). Embodiments of the invention also offers the ability to function without an input device, via a range of possibilities including default designations of master, slave(s), and or master operation.
- Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art. Embodiments of the invention may also be implemented by the preparation of application specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art.
- Embodiments of the present invention include a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to program a computer to execute any of the processes of the present invention. The storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.
- Embodiments of the present invention include software, stored on any one of the computer readable medium (media), for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human operator or other mechanism utilizing the results of the present invention. Such software may include, but is not limited to, device drivers, operating systems, and user applications. Ultimately, such computer readable media further includes software for executing the present invention, as described above.
- Included in the programming (software) of the general/specialized computer or microprocessor are software modules for implementing the teachings of the present invention including, but not limited to, allowing the operator to select the master, one or more slave(s), and/or the master operation, either by default or through direct selection; storing correspondence(s) between master and slave(s); arranging to execute the master operation on the master; and arranging to automatically execute corresponding operation(s) on the one or more slave(s) according to the processes of the present invention. In one set of embodiments, the software modules are comprised within the operating system library. In another set of embodiments, the software modules are separate from the operating system. In another set of embodiments, software modules are comprised within the operating system library and other software modules are separate from the operating system.
- Embodiments of the present invention may be conveniently implemented using a conventional general purpose or a specialized digital computer or microprocessor programmed according to the teachings of the present disclosure, as will be apparent to those skilled in the computer art.
- The foregoing description of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to the practitioner skilled in the art. Particularly, it will be evident that the above described system and method for executing corresponding operation(s) on multiple documents or in multiple windows can be incorporated into other types of software applications beyond those described. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention for various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.
Claims (34)
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/158,789 US7552187B2 (en) | 2005-06-22 | 2005-06-22 | System and method for automatically executing corresponding operations on multiple maps, windows, documents, and/or databases |
PCT/US2006/024165 WO2007002207A2 (en) | 2005-06-22 | 2006-06-20 | System and method for automatically executing corresponding operations on multiple maps, windows, documents, and/or databases |
JP2008518356A JP2008544406A (en) | 2005-06-22 | 2006-06-20 | System and method for automatically performing corresponding processing on multiple maps, windows, documents and / or databases |
EP06773701A EP1899812A4 (en) | 2005-06-22 | 2006-06-20 | System and method for automatically executing corresponding operations on multiple maps, windows, documents, and/or databases |
CA002613380A CA2613380A1 (en) | 2005-06-22 | 2006-06-20 | System and method for automatically executing corresponding operations on multiple maps, windows, documents, and/or databases |
US12/016,888 US20080168151A1 (en) | 2005-06-22 | 2008-01-18 | System and method for automatically executing corresponding operations using peer groups |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/158,789 US7552187B2 (en) | 2005-06-22 | 2005-06-22 | System and method for automatically executing corresponding operations on multiple maps, windows, documents, and/or databases |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/016,888 Continuation-In-Part US20080168151A1 (en) | 2005-06-22 | 2008-01-18 | System and method for automatically executing corresponding operations using peer groups |
Publications (2)
Publication Number | Publication Date |
---|---|
US20060294418A1 true US20060294418A1 (en) | 2006-12-28 |
US7552187B2 US7552187B2 (en) | 2009-06-23 |
Family
ID=37569038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/158,789 Active 2027-07-04 US7552187B2 (en) | 2005-06-22 | 2005-06-22 | System and method for automatically executing corresponding operations on multiple maps, windows, documents, and/or databases |
Country Status (5)
Country | Link |
---|---|
US (1) | US7552187B2 (en) |
EP (1) | EP1899812A4 (en) |
JP (1) | JP2008544406A (en) |
CA (1) | CA2613380A1 (en) |
WO (1) | WO2007002207A2 (en) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080301564A1 (en) * | 2007-05-31 | 2008-12-04 | Smith Michael H | Build of material production system |
US20080300864A1 (en) * | 2007-05-31 | 2008-12-04 | Smith Michael H | Syndication of documents in increments |
US20080300863A1 (en) * | 2007-05-31 | 2008-12-04 | Smith Michael H | Publishing tool for translating documents |
US20090198787A1 (en) * | 2008-02-06 | 2009-08-06 | Oracle International Corporation | Data streaming to multiple browser windows |
US20100131591A1 (en) * | 2008-11-26 | 2010-05-27 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
US20100223566A1 (en) * | 2009-02-03 | 2010-09-02 | Calgary Scientific Inc. | Method and system for enabling interaction with a plurality of applications using a single user interface |
US8949378B2 (en) | 2011-03-21 | 2015-02-03 | Calgary Scientific Inc. | Method and system for providing a state model of an application program |
US9602581B2 (en) | 2012-03-02 | 2017-03-21 | Calgary Scientific Inc. | Remote control of an application using dynamic-linked library (DLL) injection |
CN106656205A (en) * | 2016-09-30 | 2017-05-10 | 清华大学深圳研究生院 | Polarization code decoding method and system capable of reducing memory consumption |
US9686205B2 (en) | 2013-11-29 | 2017-06-20 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
US9720747B2 (en) | 2011-08-15 | 2017-08-01 | Calgary Scientific Inc. | Method for flow control and reliable communication in a collaborative environment |
US9729673B2 (en) | 2012-06-21 | 2017-08-08 | Calgary Scientific Inc. | Method and system for providing synchronized views of multiple applications for display on a remote computing device |
US9741084B2 (en) | 2011-01-04 | 2017-08-22 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
US9986012B2 (en) | 2011-08-15 | 2018-05-29 | Calgary Scientific Inc. | Remote access to an application program |
US10015264B2 (en) | 2015-01-30 | 2018-07-03 | Calgary Scientific Inc. | Generalized proxy architecture to provide remote access to an application framework |
US10055105B2 (en) | 2009-02-03 | 2018-08-21 | Calgary Scientific Inc. | Method and system for enabling interaction with a plurality of applications using a single user interface |
US10284688B2 (en) | 2011-09-30 | 2019-05-07 | Calgary Scientific Inc. | Tiered framework for proving remote access to an application accessible at a uniform resource locator (URL) |
US10454979B2 (en) | 2011-11-23 | 2019-10-22 | Calgary Scientific Inc. | Methods and systems for collaborative remote application sharing and conferencing |
US11030399B2 (en) * | 2017-10-27 | 2021-06-08 | Fujifilm Business Innovation Corp. | Information processing apparatus and non-transitory computer readable medium |
US11310348B2 (en) | 2015-01-30 | 2022-04-19 | Calgary Scientific Inc. | Highly scalable, fault tolerant remote access architecture and method of connecting thereto |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9003426B2 (en) | 2011-12-09 | 2015-04-07 | Z124 | Physical key secure peripheral interconnection |
US20130198867A1 (en) | 2011-12-09 | 2013-08-01 | Z124 | A Docking Station for Portable Devices Providing Authorized Power Transfer and Facility Access |
US9507930B2 (en) | 2003-04-25 | 2016-11-29 | Z124 | Physical key secure peripheral interconnection |
US8762882B2 (en) | 2007-02-05 | 2014-06-24 | Sony Corporation | Information processing apparatus, control method for use therein, and computer program |
KR101406289B1 (en) * | 2007-03-08 | 2014-06-12 | 삼성전자주식회사 | Apparatus and method for providing items based on scrolling |
JP4982890B2 (en) * | 2007-03-14 | 2012-07-25 | 学校法人同志社 | Image output device, image output system, and program |
US7792904B2 (en) * | 2008-01-15 | 2010-09-07 | International Business Machines Corporation | Sharing material in a master-slave configuration using an instant messaging infrastructure |
JP5680267B2 (en) * | 2008-08-06 | 2015-03-04 | コンテンツ株式会社 | Image output system, image output apparatus, image output method, and program |
JP4656218B2 (en) * | 2008-09-10 | 2011-03-23 | カシオ計算機株式会社 | Image display device, image display method, and image display program |
US20110289404A1 (en) * | 2010-05-19 | 2011-11-24 | Alexandra Fleur | System and methods for document critique |
US8930605B2 (en) | 2010-10-01 | 2015-01-06 | Z124 | Systems and methods for docking portable electronic devices |
WO2012045084A2 (en) * | 2010-10-01 | 2012-04-05 | Imerj, Llc | Systems and methods relating to user interfaces for docking portable electronic devices |
US9383770B2 (en) | 2011-08-31 | 2016-07-05 | Z124 | Mobile device that docks with multiple types of docks |
US9244491B2 (en) | 2011-08-31 | 2016-01-26 | Z124 | Smart dock for auxiliary devices |
US9246353B2 (en) | 2011-08-31 | 2016-01-26 | Z124 | Smart dock charging |
US9182935B2 (en) | 2011-09-27 | 2015-11-10 | Z124 | Secondary single screen mode activation through menu option |
US9086840B2 (en) | 2011-12-09 | 2015-07-21 | Z124 | RSID proximity peripheral interconnection |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870301A (en) * | 1995-03-30 | 1999-02-09 | Fujitsu Limited | System control apparatus including a master control unit and a slave control unit which maintain coherent information |
US20020062377A1 (en) * | 2000-11-20 | 2002-05-23 | Hillman Matthew F. | Scalable directory, master and slave server based architecture for hosting application services |
US20020147784A1 (en) * | 2001-04-06 | 2002-10-10 | Stephen Gold | User account handling on aggregated group of multiple headless computer entities |
US6539445B1 (en) * | 2000-01-10 | 2003-03-25 | Imagex.Com, Inc. | Method for load balancing in an application server system |
US20030126133A1 (en) * | 2001-12-27 | 2003-07-03 | Slamdunk Networks, Inc. | Database replication using application program event playback |
US20030158886A1 (en) * | 2001-10-09 | 2003-08-21 | Walls Jeffrey J. | System and method for configuring a plurality of computers that collectively render a display |
US6615223B1 (en) * | 2000-02-29 | 2003-09-02 | Oracle International Corporation | Method and system for data replication |
US20040172425A1 (en) * | 2003-02-28 | 2004-09-02 | Microsoft Corporation | Method for managing file replication in applications |
US20050102440A1 (en) * | 2001-11-08 | 2005-05-12 | Nobuo Higaki | Circuit group control system |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01140194A (en) * | 1987-11-26 | 1989-06-01 | Mita Ind Co Ltd | Multi-window display system |
JPH0580968A (en) * | 1991-09-24 | 1993-04-02 | Matsushita Electric Ind Co Ltd | Multiwindow processing method and its device |
JP3517420B2 (en) * | 1992-08-04 | 2004-04-12 | 株式会社日立製作所 | Telepointer display method |
JPH08137656A (en) * | 1994-11-09 | 1996-05-31 | Toshiba Corp | Document edit device |
JPH11126150A (en) * | 1997-10-23 | 1999-05-11 | Fujitsu Ltd | Graphic information display processor and its program storage medium |
KR19990087910A (en) * | 1998-05-27 | 1999-12-27 | 포만 제프리 엘 | associative interaction unrelated windows |
JP2000206875A (en) | 1999-01-12 | 2000-07-28 | Japan Radio Co Ltd | Electronic map display device |
US6421071B1 (en) * | 1999-06-10 | 2002-07-16 | Lucent Technologies Inc. | Synchronous scrolling of time stamped log files |
JP2001265311A (en) * | 2000-03-17 | 2001-09-28 | Hitachi Information Systems Ltd | Time series data file display system and method therefor, and recording medium on which processing program therefor is recorded |
JP2002311817A (en) * | 2001-04-10 | 2002-10-25 | Mitsubishi Electric Corp | Navigation device for mobile object |
JP2003075473A (en) * | 2001-09-06 | 2003-03-12 | Keyence Corp | Time-base interlocked scrolling method for measuring apparatus |
-
2005
- 2005-06-22 US US11/158,789 patent/US7552187B2/en active Active
-
2006
- 2006-06-20 JP JP2008518356A patent/JP2008544406A/en active Pending
- 2006-06-20 WO PCT/US2006/024165 patent/WO2007002207A2/en active Application Filing
- 2006-06-20 CA CA002613380A patent/CA2613380A1/en not_active Abandoned
- 2006-06-20 EP EP06773701A patent/EP1899812A4/en not_active Withdrawn
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870301A (en) * | 1995-03-30 | 1999-02-09 | Fujitsu Limited | System control apparatus including a master control unit and a slave control unit which maintain coherent information |
US6539445B1 (en) * | 2000-01-10 | 2003-03-25 | Imagex.Com, Inc. | Method for load balancing in an application server system |
US6615223B1 (en) * | 2000-02-29 | 2003-09-02 | Oracle International Corporation | Method and system for data replication |
US20020062377A1 (en) * | 2000-11-20 | 2002-05-23 | Hillman Matthew F. | Scalable directory, master and slave server based architecture for hosting application services |
US20020147784A1 (en) * | 2001-04-06 | 2002-10-10 | Stephen Gold | User account handling on aggregated group of multiple headless computer entities |
US20030158886A1 (en) * | 2001-10-09 | 2003-08-21 | Walls Jeffrey J. | System and method for configuring a plurality of computers that collectively render a display |
US20050102440A1 (en) * | 2001-11-08 | 2005-05-12 | Nobuo Higaki | Circuit group control system |
US20030126133A1 (en) * | 2001-12-27 | 2003-07-03 | Slamdunk Networks, Inc. | Database replication using application program event playback |
US20040172425A1 (en) * | 2003-02-28 | 2004-09-02 | Microsoft Corporation | Method for managing file replication in applications |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361294B2 (en) | 2007-05-31 | 2016-06-07 | Red Hat, Inc. | Publishing tool for translating documents |
US20080300864A1 (en) * | 2007-05-31 | 2008-12-04 | Smith Michael H | Syndication of documents in increments |
US20080300863A1 (en) * | 2007-05-31 | 2008-12-04 | Smith Michael H | Publishing tool for translating documents |
US20080301564A1 (en) * | 2007-05-31 | 2008-12-04 | Smith Michael H | Build of material production system |
US10296588B2 (en) | 2007-05-31 | 2019-05-21 | Red Hat, Inc. | Build of material production system |
US8205151B2 (en) * | 2007-05-31 | 2012-06-19 | Red Hat, Inc. | Syndication of documents in increments |
US20090198787A1 (en) * | 2008-02-06 | 2009-08-06 | Oracle International Corporation | Data streaming to multiple browser windows |
US7707513B2 (en) * | 2008-02-06 | 2010-04-27 | Oracle International Corporation | System for streaming data from server to multiple slave browser windows in client computer through a master browser window |
US10334042B2 (en) | 2008-11-26 | 2019-06-25 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
US8799354B2 (en) | 2008-11-26 | 2014-08-05 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
US9367365B2 (en) | 2008-11-26 | 2016-06-14 | Calgary Scientific, Inc. | Method and system for providing remote access to a state of an application program |
US10965745B2 (en) | 2008-11-26 | 2021-03-30 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
US20100131591A1 (en) * | 2008-11-26 | 2010-05-27 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
US9871860B2 (en) | 2008-11-26 | 2018-01-16 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
US10055105B2 (en) | 2009-02-03 | 2018-08-21 | Calgary Scientific Inc. | Method and system for enabling interaction with a plurality of applications using a single user interface |
US20100223566A1 (en) * | 2009-02-03 | 2010-09-02 | Calgary Scientific Inc. | Method and system for enabling interaction with a plurality of applications using a single user interface |
US10410306B1 (en) | 2011-01-04 | 2019-09-10 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
US9741084B2 (en) | 2011-01-04 | 2017-08-22 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
US8949378B2 (en) | 2011-03-21 | 2015-02-03 | Calgary Scientific Inc. | Method and system for providing a state model of an application program |
US10158701B2 (en) | 2011-03-21 | 2018-12-18 | Calgary Scientific Inc.. | Method and system for providing a state model of an application program |
US10474514B2 (en) | 2011-08-15 | 2019-11-12 | Calgary Scientific Inc. | Method for flow control and for reliable communication in a collaborative environment |
US9720747B2 (en) | 2011-08-15 | 2017-08-01 | Calgary Scientific Inc. | Method for flow control and reliable communication in a collaborative environment |
US9992253B2 (en) | 2011-08-15 | 2018-06-05 | Calgary Scientific Inc. | Non-invasive remote access to an application program |
US9986012B2 (en) | 2011-08-15 | 2018-05-29 | Calgary Scientific Inc. | Remote access to an application program |
US10693940B2 (en) | 2011-08-15 | 2020-06-23 | Calgary Scientific Inc. | Remote access to an application program |
US10904363B2 (en) | 2011-09-30 | 2021-01-26 | Calgary Scientific Inc. | Tiered framework for proving remote access to an application accessible at a uniform resource locator (URL) |
US10284688B2 (en) | 2011-09-30 | 2019-05-07 | Calgary Scientific Inc. | Tiered framework for proving remote access to an application accessible at a uniform resource locator (URL) |
US10454979B2 (en) | 2011-11-23 | 2019-10-22 | Calgary Scientific Inc. | Methods and systems for collaborative remote application sharing and conferencing |
US9602581B2 (en) | 2012-03-02 | 2017-03-21 | Calgary Scientific Inc. | Remote control of an application using dynamic-linked library (DLL) injection |
US9729673B2 (en) | 2012-06-21 | 2017-08-08 | Calgary Scientific Inc. | Method and system for providing synchronized views of multiple applications for display on a remote computing device |
US9686205B2 (en) | 2013-11-29 | 2017-06-20 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
US9979670B2 (en) | 2013-11-29 | 2018-05-22 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
US10728168B2 (en) | 2013-11-29 | 2020-07-28 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
US10015264B2 (en) | 2015-01-30 | 2018-07-03 | Calgary Scientific Inc. | Generalized proxy architecture to provide remote access to an application framework |
US11310348B2 (en) | 2015-01-30 | 2022-04-19 | Calgary Scientific Inc. | Highly scalable, fault tolerant remote access architecture and method of connecting thereto |
CN106656205A (en) * | 2016-09-30 | 2017-05-10 | 清华大学深圳研究生院 | Polarization code decoding method and system capable of reducing memory consumption |
US11030399B2 (en) * | 2017-10-27 | 2021-06-08 | Fujifilm Business Innovation Corp. | Information processing apparatus and non-transitory computer readable medium |
US11562132B2 (en) | 2017-10-27 | 2023-01-24 | Fujifilm Business Innovation Corp. | Information processing apparatus and non-transitory computer readable medium |
Also Published As
Publication number | Publication date |
---|---|
EP1899812A4 (en) | 2011-01-19 |
WO2007002207A3 (en) | 2007-05-18 |
US7552187B2 (en) | 2009-06-23 |
CA2613380A1 (en) | 2007-01-04 |
JP2008544406A (en) | 2008-12-04 |
WO2007002207A2 (en) | 2007-01-04 |
EP1899812A2 (en) | 2008-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7552187B2 (en) | System and method for automatically executing corresponding operations on multiple maps, windows, documents, and/or databases | |
US11544257B2 (en) | Interactive table-based query construction using contextual forms | |
US11385786B2 (en) | Spin control user interface for selecting options | |
US11544248B2 (en) | Selective query loading across query interfaces | |
US5140677A (en) | Computer user interface with window title bar mini-icons | |
US20080168151A1 (en) | System and method for automatically executing corresponding operations using peer groups | |
US6175364B1 (en) | Framework and method for interfacing a GUI, container with a GUI component | |
JP4347371B2 (en) | Hierarchical file structure component selection system and method | |
US6966033B1 (en) | Methods and apparatus for graphically managing resources | |
US6944829B2 (en) | Configurable user-interface component management system | |
US20110072396A1 (en) | Gallery User Interface Controls | |
US6177935B1 (en) | Computer object managing container and managing method thereof | |
JP2001092914A (en) | Method and system for introducing new element within cell named range in electronic spreadsheet in various modes | |
US6567825B2 (en) | System and method for processing a working file | |
US9105222B2 (en) | Display control apparatus and display control method | |
CA2299866C (en) | Document and task coordination system for a computer | |
US20070061743A1 (en) | Customization of visual editing elements | |
JP2007323343A (en) | Method, apparatus and program for controlling window display | |
JP3738358B2 (en) | Window display control device | |
US11789687B2 (en) | Depicting display regions on a desktop | |
US20060288294A1 (en) | Method, graphical interface and computer-readable medium for forming a batch job | |
US7975219B2 (en) | Method, graphical interface and computer-readable medium for reformatting data | |
US20090307625A1 (en) | Method, device, data carrier and computer program product for representing data in a user interface | |
US6650344B1 (en) | Method and system for displaying computer documents | |
US6880006B1 (en) | System and method for contextual passive rule-based navigation between applications supporting network-disconnected use |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TELE ATLAS NORTH AMERICA, INC., NEW HAMPSHIRE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FUCHS, GIL;REEL/FRAME:016939/0665 Effective date: 20051025 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: TOMTOM NORTH AMERICA INC., NEW HAMPSHIRE Free format text: CHANGE OF NAME;ASSIGNOR:TELE ATLAS NORTH AMERICA INC.;REEL/FRAME:042010/0421 Effective date: 20110214 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |