Legal claims defining the scope of protection, as filed with the USPTO.
1. A method, comprising: executing, by a first computer system, a first collaboration framework and an instance of an application, wherein executing the instance of the application comprises displaying an instance of a graphical user interface of the application on the first computer system; the first collaboration framework intercepting, via an operating system event handling mechanism on the first computer system, a local user input event targeted to the instance of the application, wherein the instance of the application applies a modification to the instance of the graphical user interface in response to receiving the user input event; in response to said intercepting, the first collaboration framework sending a message including the user input event to one or more other collaboration frameworks each executing on a respective other computer system that is executing a respective other instance of the application, wherein said executing each respective other instance of the application comprises displaying a respective other instance of the graphical user interface of the application on the respective other computer system; in response to receiving the message, each of the one or more other collaboration frameworks delivering, via an operating system event handling mechanism on the respective other computer system, the user input event to the respective other instance of the application executing on the respective other computer system, displays a respective other user interface; wherein the operating system event handling mechanism delivers the user input event to the respective other application as if the user input event originated locally from the respective other user interface displayed by the respective other application; and in response to receiving the user input event, the respective other instance of the application applying the modification to the respective other instance of the graphical user interface of the application displayed by the respective other computer system.
2. The method of claim 1 , wherein said intercepting comprises monitoring an event queue of the operating system event handling mechanism for the input event.
3. The method of claim 1 , wherein the input event is one of a mouse event, a keyboard event, or a pointer event.
4. The method of claim 1 , wherein said intercepting comprises the collaboration framework on the first computer system registering with the operating system event handling mechanism to receive, through a callback function, the input event.
5. The method of claim 1 , wherein said intercepting comprises: the collaboration framework on the first computer system capturing raw keyboard and mouse events; and the collaboration framework on the first computer system analyzing each captured event to determine whether the event is for the application.
6. The method of claim 1 , wherein said delivering comprises inserting the input event into an event queue of the operating system event handling mechanism on the respective other computer system.
7. The method of claim 1 , wherein the input event comprises a horizontal coordinate and a vertical coordinate, the method further comprising each of the one or more other collaboration frameworks translating the horizontal and vertical coordinates from a coordinate system of the instance of the application to a coordinate system of the respective other instance of the application.
8. The method of claim 1 , further comprising the first collaboration framework translating the input event to a non-platform-specific format prior to said sending a message.
9. The method of claim 8 , wherein the input event comprises a horizontal coordinate and an vertical coordinate; and wherein said translating the input event to a non-platform-specific format comprises the first collaboration framework translating the horizontal and vertical coordinates from a coordinate system of the instance of the application to a non-platform-specific coordinate system.
10. The method of claim 8 , further comprising each of the one or more other collaboration frameworks translating the received input event from the non-platform-specific format into a format usable by the respective other instance of the application prior to delivering the input event to the respective other instance of the application.
11. The method of claim 10 , wherein the input event comprises a horizontal coordinate and a vertical coordinate, the method further comprising each of the one or more other collaboration frameworks translating the horizontal and vertical coordinates to a coordinate system of the respective other instance of the application prior to delivering the input event to the respective other instance of the application.
12. The method of claim 1 , wherein the message comprises information identifying the application, the method further comprising the one or more of the other collaboration frameworks launching the respective other instances of the application in response to receiving the input event and based on the information identifying the application.
13. The method of claim 1 , wherein said sending the message comprises sending the message to yet another collaboration framework executing on yet another computer system, wherein the yet another computer system executes a different application than the application; the method further comprising the yet another collaboration framework translating the received input event into a format understandable by the different application.
14. The method of claim 1 , wherein the input event corresponds to a document opening in the instance of the application, the method further comprising: the first collaboration framework sending the document opened in the respective other instance of the application to each of the other collaboration frameworks; and in response to receiving the document, each of the one or more other collaboration frameworks instructing the respective other instance of the application to open the document.
15. The method of claim 1 , further comprising: the first collaboration framework sending a hand-off message to a second collaboration framework of the one or more other collaboration frameworks; and in response to receiving the hand-off message, the second collaboration framework: intercepting a local user input event targeted to a second instance of the respective other instances of the application; and sending a message including the intercepted local input event of the second instance of the application to the first collaboration framework and to each other one of the one or more other collaboration frameworks.
16. The method of claim 15 , further comprising: the first collaboration framework receiving the message from the second collaboration framework; and the first collaboration framework delivering the intercepted local input event of the second instance of the application in the message to the instance of the application.
17. The method of claim 1 , further comprising: the first collaboration framework storing the input event in a log of intercepted input events; one of the one or more other collaboration frameworks requesting one or more input events from the log; the first collaboration framework sending the one or more input events from the log to the requesting collaboration framework; and the requesting collaboration framework: receiving the one or more input events from the log; and delivering the one or more input events from the log to the respective other instance of the application.
18. A device, comprising: a processor; and a memory coupled to the processor, wherein the memory comprises program instructions configured to: execute a first collaboration framework and an instance of an application, wherein executing the instance of the application comprises displaying an instance of a graphical user interface of the application; wherein the first collaboration framework is configured to: intercept, via an operating system event handling mechanism executing on the device, a local user input event targeted to the instance of the application, wherein the instance of the application applies a modification to the instance of the graphical user interface in response to receiving the user input event; in response to said intercepting, send a message including the user input event to each of one or more other collaboration frameworks each executing on one of a respective one or more other devices that are each executing a respective other instance of the application, wherein said executing each respective other instance of the application comprises displaying a respective other instance of the graphical user interface of the application on the respective other device; wherein the message includes information usable by each of the one or more other collaboration frameworks to deliver the user input event, via an operating system event handling mechanism executing on the respective other device, to the respective other instance of the application executing on the respective other device as if the user input event originated locally from the respective other user interface displayed by the respective other application on the respective other device; and wherein the delivered user input event causes each of the respective other application instances to apply the modification to the respective instance of the graphical user interface.
19. The device of claim 18 , wherein as part of said intercepting the first collaboration framework is configured to monitor an event queue of the operating system event handling mechanism for the input event.
20. The device of claim 18 , wherein as part of said intercepting the first collaboration framework is configured to register with the event handling mechanism to receive, through a callback function, the input event.
21. The device of claim 18 , further comprising: a keyboard; and a mouse; wherein said as part of said intercepting the first collaboration framework is configured to: capture raw keyboard and mouse events; and analyze each captured event to determine whether the event is for the application.
22. The device of claim 18 , wherein the first collaboration framework is further configured to translate the input event to a non-platform-specific format prior to sending a message including the input event.
23. The device of claim 22 , wherein the input event comprises a horizontal coordinate and a vertical coordinate; and wherein the first collaboration framework is further configured to translate the horizontal and vertical coordinates from a coordinate system of the instance of the application to a non-platform-specific coordinate system prior to sending a message including the input event.
24. The device of claim 23 , wherein the first collaboration framework is configured to receive a message including an input event from one of the other collaboration frameworks, wherein the input event from the received message comprises a horizontal coordinate and an vertical coordinate; and wherein the first collaboration framework is configured to translate the horizontal and vertical coordinates of the input event from the received message to a coordinate system of the instance of the application.
25. The device of claim 18 , wherein the first collaboration framework is further configured to send a document in use by the instance of the application to each of the other collaboration frameworks.
26. The device of claim 18 , wherein the first collaboration framework is further configured to: store the input event in a log of intercepted input events; and in response to one or more of the one or more other collaboration frameworks requesting one or more of the input events in the log, send one or more input events from the log to the one or more requesting collaboration frameworks.
27. A computer accessible medium, comprising program instructions configured to implement: executing on a first computer system, a first collaboration framework and an instance of an application, wherein executing the instance of the application comprises displaying an instance of a graphical user interface of the application; intercepting, via an operating system event handling mechanism executing on the first computer system, a local user input event targeted to the instance of the application, wherein the instance of the application applies a modification to the instance of the graphical user interface in response to receiving the user input event; in response to said intercepting, the first collaboration framework sending a message including the user input event to each of one or more other collaboration frameworks each executing on one of a respective one or more other computer systems that are each executing a respective other instance of the application, wherein said executing each respective other instance of the application comprises displaying a respective other instance of the graphical user interface of the application on the respective other computer system; wherein the message includes information usable by each of the one or more other collaboration frameworks to deliver the user input event, via an operating system event handling mechanism executing on the respective other computer system, to the respective other instance of the application executing on the respective other device as if the user input event originated locally from the respective other user interface displayed by the respective other application on the respective other device; and wherein the delivered user input event causes each of the respective other application instances to apply the modification to the respective instance of the graphical user interface.
28. The computer accessible medium of claim 27 , wherein as part of said intercepting, the program instructions are configured to implement monitoring an event queue of the operating system event handling mechanism for the input event.
29. The computer accessible medium of claim 27 , wherein as part of said intercepting the program instructions are further configured to implement the collaboration framework on the first computer system registering with the operating system event handling mechanism to receive, through a callback function, the input event.
30. The computer accessible medium of claim 27 , wherein as part of said intercepting the program instructions are configured to implement: the first collaboration framework capturing raw keyboard and mouse events; and the first collaboration framework analyzing each captured event to determine whether the event is for the application.
31. The computer accessible medium of claim 27 , wherein the program instructions are further configured to implement the first collaboration framework translating the input event to a non-platform-specific format prior to said sending a message.
32. A system, comprising: a plurality of computer systems, each executing a respective collaboration framework and each executing a respective instance of an application, wherein said executing the instance of the application comprises displaying a respective instance of a graphical user interface of the application; wherein a first collaboration framework of the collaboration frameworks on a first of the plurality of computer systems is configured to: intercept, via an operating system event handling mechanism executing on the first computer system, a local user input event targeted to the instance of the application on the first computer system, wherein the instance of the application on the first computer system is configured to apply a modification to the respective instance of the graphical user interface in response to receiving the user input event; in response to said intercepting, send a message, including the user input event, to each of the one or more other collaboration frameworks; wherein in response to receiving the message from the first collaboration framework, each of one or more others of the plurality of collaboration frameworks is configured to deliver the user input event, via an operating system event handling mechanism executing on the respective computer system, to the respective other instance of the application executing on the respective other computer system and displaying a respective other instance of the user interface, as if the user input event originated locally from the respective other user interface displayed by on the respective other computer system; and wherein the delivered input event causes each of the respective other application instances to apply the modification to the respective instance of the graphical user interface.
Unknown
March 15, 2011
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.