Claims
- 1. Collaboration apparatus for allowing a first user of a first application program operating on a first computer system with a first display device for displaying data in a first format and a second user of a second application program operating on a second computer system with a second display device that displays data in a second format different from the first format to concurrently process and display a first copy and a second copy of the same data in response to a device event signal, the collaboration apparatus comprising:
- (a) a first model object comprising methods for updating the first data copy, the first model object being responsive to a data change command for generating a first notification command indicating data changes;
- (b) a second model object comprising methods for updating the second data copy, the second model object being responsive to a data change command for generating a second notification command indicating data changes;
- (c) means, responsive to a first device event signal from the first user, for distributing a first data change command to the first model object and the second model object, the first and the second model objects making the same changes to the first and the second data copies;
- (d) a first view object comprising means for generating a first view of the first data copy and means responsive to the first notification commands for updating the first view to reflect the data changes in the first format; and
- (e) a second view object comprising means for generating a second view of the first data copy and means responsive to the second notification commands for updating the second view to reflect the data changes in the second format.
- 2. Collaboration apparatus as recited in claim 1, wherein the distributing means comprises means responsive to a data change command from the first user and a data change command from the second user for allowing only one user to enter data change commands.
- 3. Collaboration apparatus as recited in claim 1 wherein the distributing means comprises means responsive to data change commands for receiving and parsing the data change commands from more than two users.
- 4. Collaboration apparatus as recited in claim 1, wherein the first data change command is a word processing command.
- 5. Collaboration apparatus as recited in claim 1, wherein the first data change command is a graphic or an imaging command.
- 6. Collaboration apparatus as recited in claim 1, wherein the first data change command is a multimedia, operating system or database command.
- 7. Collaboration apparatus as recited in claim 1, wherein the first data change command is a repeating command.
- 8. Collaboration apparatus as recited in claim 1, wherein the first data change command is a non-repeating command.
- 9. Collaboration apparatus as recited in claim 1 wherein the distributing means comprises means responsive to data change commands for determining whether a data change command is from an authorized user and means for trapping unauthorized data change commands.
- 10. Collaboration apparatus as recited in claim 1 wherein the first view object and the second view object are created based on characteristics of the first display device and the second display device.
- 11. A method for allowing a first user of a first application program operating on a first computer system with a first display device for displaying data in a first format and a second user of a second application program operating on a second computer system with a second display device that displays data in a second format different from the first format to concurrently process and display a first copy and a second copy of the same data in response to a device event signal, the method comprising the steps of:
- (a) creating a first model object comprising methods for updating the first data copy, the first model object being responsive to a data change command for generating a first notification command indicating data changes;
- (b) creating a second model object comprising methods for updating the second data copy, the second model object being responsive to a data change command for generating a second notification command indicating data changes;
- (c) generating a first data change command from the device event signal and distributing the first data change command to the first model object and the second model object, the first and the second model objects making the same changes to the first and the second data copies;
- (d) creating a first view object comprising means for generating a first view of the first data copy and means responsive to the first notification commands for updating the first view to reflect the data changes in the first format; and
- (e) creating a second view object comprising means for generating a second view of the first data copy and means responsive to the second notification commands for updating the second view to reflect the data changes in the second format.
- 12. A method as recited in claim 11, wherein step (c) comprises the step of receiving a data change command from the first user and a data change command from the second user and allowing only one user to enter commands.
- 13. A method as recited in claim 11, wherein step (c) comprises the steps of receiving data change commands from more than two users and parsing data change commands from more than two users.
- 14. A method as recited in claim 11, wherein step (c) comprises the step of generating a word processing data change command.
- 15. A method as recited in claim 11, wherein step (c) comprises the step of generating a graphic or imaging data change command.
- 16. A method as recited in claim 11, wherein step (c) comprises the step of generating a multimedia, operating system or database data change command.
- 17. A method as recited in claim 11, wherein step (c) comprises the step of generating a repeating data change command.
- 18. A method as recited in claim 11, wherein step (c) comprises the step of generating a non-repeating data change command.
- 19. A method as recited in claim 11, wherein step (c) comprises the steps of receiving data change commands determining whether a data change command is from an authorized user and trapping unauthorized data change commands.
- 20. A method as recited in claim 11, wherein steps (d) and (e) comprise the steps of creating the first view object and the second view object based on characteristics of the first and second display devices.
- 21. A method as recited in claim 11, including the step of processing a script to generate the first data change command.
- 22. Collaboration apparatus for synchronizing a first view displayed in a first format on a first display device and a second view displayed in a second format different than the first format on a second display device, the first and second views being generated by an application program which processes data in response to device event signals, the apparatus comprising:
- (a) first means responsive to notification commands for updating the first view to display changes in the first format;
- (b) second means responsive to the same notification commands for updating the second view to display changes in the second format; and
- (c) a model object created by the application program and containing the data in a format which is independent of any specific view, the model object being responsive to the device event signals for generating the notification commands indicating data changes and forwarding the notification commands to the first and second updating means.
- 23. Collaboration apparatus as recited in claim 22 further comprising means manipulatable by a user for generating the device event signals and tracker means responsive to the device event signals for incrementally generating data change commands, each data change command indicating a change in the data since the last data change command.
- 24. Collaboration apparatus as recited in claim 23 wherein the tracker means comprises means responsive to the device event signals for generating incremental data change command objects and means responsive to the data change command objects for forwarding the data change command objects to the model object.
- 25. Collaboration apparatus as recited in claim 22 wherein the model object comprises means responsive to the data change commands for updating the data contained within the model object.
- 26. Collaboration apparatus as recited in claim 25 wherein the model object comprises means responsive to updates made to the data for generating change notifications.
- 27. A method for synchronizing a first view displayed in a first format on a first display device and a second view displayed in a second format different than the first format on a second display device, the first and second views being generated by an application program which processes data in response to device event signals, the method comprising the steps of:
- (a) creating a model object containing the data in a format which is independent of any specific view;
- (b) applying the device event signals to the model object to cause the model object to generate notification commands indicating data changes;
- (c) updating the first view in response to the notification commands to display changes in the first format; and
- (d) updating the second view in response to the same notification commands to display changes in the second format.
- 28. A method as recited in claim 27 further comprising the steps of:
- (e) generating device event signals in response to user manipulations; and
- (f) incrementally generating data change commands in response to the device event signals, each data change command indicating a change in the data since the last data change command.
- 29. A method as recited in claim 28 wherein step (f) comprises the steps of:
- (f1) generating incremental data change command objects;
- and
- (f2) forwarding the data change command objects to the model object.
- 30. A method as recited in claim 27 wherein step (b) comprises the step of:
- (b1) updating the data contained within the model object in response to the data change commands.
- 31. A method as recited in claim 30 wherein step (b1) comprises the step of generating change notifications in response to updates made to the data.
- 32. Collaboration apparatus for synchronizing a first view displayed in a first format on a first display device and a second view displayed in a second format different than the first format on a second display device, the first and second views being generated by an application program which processes data in response to device event signals, the apparatus comprising:
- (a) a first view object created by the application program from characteristics of the first display device and comprising first means responsive to notification commands for updating the first view to display changes in the first format;
- (b) a second view object created by the application program from characteristics of the second display device and comprising second means responsive to the notification commands for updating the second view to display changes in the second format; and
- (c) a model object created by the application program and containing the data in a format which is independent of any specific view, the model object being responsive to the device event signals for generating the notification commands and forwarding the notification commands to the first and second updating means.
- 33. Collaboration apparatus as recited in claim 32 wherein the collaboration apparatus further comprises means manipulatable by a user for generating the device event signals and tracker means responsive to the device event signals for incrementally generating data change commands, each data change command indicating a change in the data since the last data change command.
- 34. Collaboration apparatus as recited in claim 33 wherein the tracker means comprises means responsive to the device event signals for generating incremental data change command objects and means responsive to the data change command objects for forwarding the data change command objects to the model object.
- 35. Collaboration apparatus as recited in claim 32 wherein the model object comprises means responsive to the user commands for updating the data contained within the model object.
- 36. Collaboration apparatus as recited in claim 35 wherein the model object comprises means responsive to updates made to the data for generating change notifications.
- 37. A method for synchronizing a first view displayed on a first display device which displays graphic data and a second view displayed on a second display device which displays text data, the first and second views being generated by an application program which processes data in response to user commands, the method comprising the steps of:
- (a) creating a first view object which generates the first view the first view object being created from characteristics of the first display device;
- (b) creating a second view object which generates the second view, the second view object being created from characteristics of the second display device;
- (c) creating a model object containing the data in a format which is independent of the first view and the second view;
- (d) applying the user commands to the model object to generate data change notification commands;
- (e) forwarding the data change notification commands to the first and second view objects;
- (f) updating the first view in response to the data change notification commands to display changed graphic data; and
- (g) updating the second view in response to the data change notification commands to display changed text data.
- 38. A method as recited in claim 37 wherein step (d) comprises the steps of:
- (d 1) using apparatus manipulatable by a user to generate control signals; and
- (d2) incrementally generating user commands in response to the control signals, each user command indicating a change in the data since the last user command.
- 39. A method as recited in claim 38 wherein step (d2) comprises the steps of generating incremental user command objects in response to the control signals and forwarding the user command objects to the model object.
- 40. A method as recited in claim 37 wherein step (d) comprises the step of:
- (d3) updating the data contained within the model object in response to the user commands.
- 41. A method as recited in claim 40 wherein step (d) further comprises the step of:
- (d4) generating change notifications in response to updates made to the data.
- 42. Collaboration apparatus for allowing a first user of a first application program operating in a first computer system with a first display device which displays data in a first data format and a second user of a second application program operating in a second computer system with a second display device which displays data in a second data format that is not compatible with the first data format to concurrently process and display a first copy and a second copy of the same data in response to a user command, the collaboration apparatus comprising:
- (a) a first model object comprising methods for updating the first data copy, the first model object being responsive to a user command for generating a first notification command indicating data changes;
- (b) a second model object comprising methods for updating the second data copy, the second model object being responsive to a user command for generating a second notification command indicating data changes;
- (c) a model server comprising a list of users who have authority to make changes to the first and second data copies and means responsive to an user command incoming from an authorized user for distributing the incoming user command to the first model object and the second model object;
- (d) a first command dispatcher responsive to a first user command from the first user for forwarding the first user command to the model server for processing;
- (e) a first view object comprising means for generating a first view of the first data copy and means responsive to the first notification commands for updating the first view to reflect the data changes in accordance with the first data format; and
- (f) a second view object comprising means for generating a second view of the second data copy and means responsive to the second notification commands for updating the second view to reflect the data changes in accordance with the second data format and in a manner different from the first data format.
- 43. Collaboration apparatus as recited in claim 42 wherein the first model object comprises means responsive to an incoming user command for changing data in the first data copy.
- 44. Collaboration apparatus as recited in claim 42 wherein the second model object comprises means responsive to an incoming user command for changing data in the second data copy.
- 45. Collaboration apparatus as recited in claim 42 wherein the model server comprises means responsive to the first user command for returning the first user command to the first command dispatcher.
- 46. Collaboration apparatus as recited in claim 42 further comprising a second command dispatcher responsive to a second user command from the second user for forwarding the second user command to the model server for processing.
- 47. A method for allowing a first user of a first application program operating in a first computer system with a first display device which displays data in a first data format and a second user of a second application program operating in a second computer system with a second display device which displays data in a second data format that is not compatible with the first data format to concurrently process and display a first copy and a second copy of the same data in response to a user command, the method comprising the steps of:
- (a) creating a first model object comprising methods for updating the first data copy, the first model object being responsive to a user command for generating a first notification command indicating data changes;
- (b) creating a second model object comprising methods for updating the second data copy, the second model object being responsive to a user command for generating a second notification command indicating data changes;
- (c) creating a model server comprising a list of users who have authority to make changes to the first and second data copies;
- (d) forwarding a first user command generated by the first user to the model server for processing, the model server distributing the incoming first user command to the first model object and the second model object;
- (e) generating a first display of the first data copy in accordance with the first data format;
- (f) updating the first display to reflect the data changes in response to the first notification commands in accordance with the first data format;
- (g) generating a second display of the second data copy in accordance with the second data format; and
- (h) updating the second display to reflect the data changes in response to the second notification commands in accordance with the second data format and in a manner different from the first data format.
- 48. A method as recited in claim 47 wherein step (d) comprises the step of:
- (d1) returning the first user command to the first command dispatcher.
- 49. A computer program product for allowing a first user of a first application program operating on a first computer system with a first memory and a first display device for displaying data in a first format and a second user of a second application program operating on a second computer system with a second memory and a second display device that displays data in a second format different from the first format to concurrently process and display a first copy and a second copy of the same data in response to a device event signal, the computer program product comprising a computer usable medium having computer readable program code thereon, including:
- (a) program code for creating a first model object in the first memory, the first model object comprising methods for updating the first data copy, the first model object being responsive to a data change command for generating a first notification command indicating data changes;
- (b) program code for creating a second model object in the second memory, the second model object comprising methods for updating the second data copy, the second model object being responsive to a data change command for generating a second notification command indicating data changes;
- (c) program code responsive to a first device event signal from the first user, for distributing a first data change command to the first model object and the second model object, the first and the second model objects making the same changes to the first and the second data copies;
- (d) program code for creating a first view object in the first memory, the first view object comprising methods for generating a first view of the first data copy and methods responsive to the first notification commands for updating the first view to reflect the data changes in the first format; and
- (e) program code for creating a second view object in the second memory, the second view object comprising methods for generating a second view of the first data copy and methods responsive to the second notification commands for updating the second view to reflect the data changes in the second format.
- 50. A computer program product as recited in claim 49, wherein the distributing program code comprises program code responsive to a data change command from the first user and a data change command from the second user for allowing only one user to enter data change commands.
- 51. A computer program product as recited in claim 49 wherein the distributing program code comprises methods responsive to data change commands for receiving and parsing the data change commands from more than two users.
- 52. A computer program product as recited in claim 49, wherein the first data change command is a word processing command.
- 53. A computer program product as recited in claim 49, wherein the first data change command is a graphic or an imaging command.
- 54. A computer program product as recited in claim 49, wherein the first data change command is a multimedia, operating system or database command.
- 55. A computer program product as recited in claim 49, wherein the first data change command is a repeating command.
- 56. A computer program product as recited in claim 49, wherein the first data change command is a non-repeating command.
- 57. A computer program product as recited in claim 49 wherein the distributing program code comprises methods responsive to data change commands for determining whether a data change command is from an authorized user and methods for trapping unauthorized data change commands.
- 58. A computer program product as recited in claim 49 wherein the first view object and the second view object are created based on characteristics of the first display device and the second display device.
CROSS-REFERENCE TO RELATED PATENT APPLICATIONS
This is a continuation of application Ser. No. 08/023,993 filed Feb. 26, 1993, now abandoned.
This patent application is related to the patent application entitled Object Oriented Framework System, by Debra L. Orton, David B. Goldsmith, Christopher P. Moeller, and Andrew G. Heninger, filed Dec. 23, 1992, as application Ser. No. 07/996,171, now abandoned and assigned to Taligent, the disclosure of which is hereby incorporated by reference.
US Referenced Citations (37)
Foreign Referenced Citations (1)
Number |
Date |
Country |
O 319 232 |
Jul 1989 |
EPX |
Non-Patent Literature Citations (4)
Entry |
Michael Spenke and Thomas Berlage, article entitled The GINA Interaction Recorder, dated Aug. 10-14, 1992, German National Research Center for Computer Science, PO Box 1316, W-5205 Sankt Augustin 1, Germany. |
Thomas Berlage, article entitled From Undo to Multi-User Applications, undated, German National Research Center for Computer Science, PO Box 1316, W-5205 Sankt Augustin 1, Germany. |
Informationstechnik IT, V.32(4), Aug. 1980, Munchen BR, p. 231-240, E. Schnell et al. "Konzeptionelle Ansatze fur Kooperative Applikationen". |
Proceedings of the Conference on Computer-Supported Cooperative Work, CSCW, Nov. 4, 1992, Toronto, Canada, p. 138-146, J. Haake et al. "Supporting Collavorative Writing of Hyperdocuments in SEPIA". |
Continuations (1)
|
Number |
Date |
Country |
Parent |
023993 |
Feb 1993 |
|