Electrical computers and digital processing systems: multicomput – Computer conferencing – Cooperative computer processing
Reexamination Certificate
1999-02-02
2001-12-25
Dinh, Dung C. (Department: 2153)
Electrical computers and digital processing systems: multicomput
Computer conferencing
Cooperative computer processing
C709S204000, C709S201000, C709S203000, C709S241000, C709S241000
Reexamination Certificate
active
06334141
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention generally relates to collaboration systems implemented on networked computers and, more particularly, to a distributed server that substitutes for a centralized server in real-time collaboration sessions.
2. Background Description
Software for collaborative work, i.e., work involving many users and/or agents falls into two categories of use. One is termed asynchronous collaboration and the other, synchronous collaboration. Examples of software for asynchronous collaboration are groupware such as Lotus Notes and Microsoft Exchange. These along with other examples such as discussion groups where data is changed batchwise have the characteristic that neither do they require, nor do they particularly cater to the concurrent presence of many users and agents in the work environment. The work environment can include all users and agents that use computers that are connected to each other by networks such as the Internet or intranets. In contrast to software for asynchronous collaboration, software for synchronous collaboration is designed to cater to concurrent users and agents. It includes collaboration tools such as chat, concurrent whiteboards and the more sophisticated SameTime environment. These tools provide for real-time interaction among groups using the same shared workspace. Whatever be the work space—document, spreadsheet, CAD drawing, etc.—it can be seen and modified by the collaborators, simultaneously. Modifications to the work space are made available to all group members, immediately and synchronously.
Synchrony in multiple updates made by collaboration participants has to be ensured by the underlying synchronous collaboration implementation. One of the common ways by which this is done currently is by the inclusion of a centralized server. A centralized server is a software process running on one host machine, a computer or computing element, that introduces a serialization order among multiple, concurrent modifications. Thus multiple, simultaneous updates to a shared work space are communicated to the server which converts them into a sequential stream of updates to the work space. The sequential stream of updates is then reflected back to all participants, each of whom is assumed to be running a software process, a client, in order to interact with the work space. Each participant or client thus sees the shared work space develop in an identical manner—basically starting from the same initial state and changing under the same stream of updates—as any other participant or client of the collaboration. This method of streaming updates is parameterised by the definition of a modification. What is a modification? Is it a sequence of user-level operations and/or some translation of the same? Is it the complete, changed work space itself? Is it an object difference—changed work space minus unchanged work space? What is the role of history of serialization in serialization itself? Is there any role? Answers to each of these questions can affect what the collaboration session means to its users and also cause a different implementation of synchronous collaboration. Yet what all of these implementations have in common is their dependence on one server process to make serialization decisions for them. As collaboration needs scale up (e.g., the number of clients changing the work space, the number of changes to the work space, and the number of synchronous views of the work space goes up) the single server process running on a single machine and the interconnection network bringing about communication between the server and the clients can become severely loaded with computation and communication requirements. Indeed since the architecture of the collaboration implementation is such that it focuses all communication to one point in the interconnection network, namely the server's machine, the development of an unbalanced load in the interconnection network takes place. It is possible that the interconnection network cannot effectively service the “hot spot” of communication, viz. the server's machine, despite being relatively lightly loaded in other parts of the network. The result can be unacceptable delays and degradation in performance from the perspective of collaboration participants.
SUMMARY OF THE INVENTION
It is therefore an object of the present invention to address the problem of the development of unacceptable communication and computation bottlenecks in and around a centralized server by providing a way to break the one, centralized software server process into multiple, independently communicating, asynchronous, independent (i.e., no shared memory, data, variables) software processes that comprise a distributed server.
According to the invention, there are provided multiple software processes as part of a distributed server. The distributed server provides a functionality that is equivalent to the basic functionality provided by a centralized server, namely, the modification-serialization functionality. The multiple software processes of the distributed server can be distributed to different machines (which can be heterogeneous or homogeneous) available on the interconnection network and can be run simultaneously on the machines. Thus, the distributed sever can avoid focusing all communication to one point in the interconnection network and can diffuse away the “hot spot” of a centralized server into different parts of the network. The distributed server's processes can also avoid dedicated server machines by residing and running solely on the machines hosting the clients.
The invention disclosed herein provides a method of building a distributed server that substitutes for a centralized server in any real-time collaboration session that satisfies the requirements that: (a) an unchanging disjoint partitioning of the session's complete shared work space (comprising of one or more disjoint partitions that together at any time cover the entire work space at the time) be available at all times during the collaboration session, i.e., although the contents of any partition can be changed in the collaboration session, no partition can be created and/or deleted during the collaboration session; and (b) at least one client (actively or passively) participate in the collaboration session, and that any client that (actively or passively) participates in the collaboration session does so for the entire duration of the session.
Work space partitionings required by a distributed server can very well have hierarchical partitions and other partition groups within themselves. The distributed server is capable of handling hierarchical partitions and other partition groups comprehensively. Multiple partition groups and hierarchies can coexist and be in various stages of simultaneous processing. Partition hierarchies and groups can be created, used, and abandoned dynamically.
The invention disclosed herein is general because distributed servers are able to work in variously-parameterized collaboration sessions, wherein the parameters are the choices that define a modification. The invention disclosed herein is extensible because the inter-partition synchronization it provides to collaboration clients is simple and comprehensive as also is the underlying mechanism that supports inter-partition synchronization.
REFERENCES:
patent: 5583993 (1996-12-01), Foster et al.
patent: 5822585 (1998-10-01), Noble et al.
patent: 5841980 (1998-11-01), Waters et al.
patent: 5862330 (1999-01-01), Anupam et al.
patent: 6078948 (2000-06-01), Podgorny et al.
patent: 6151621 (2000-11-01), Colyer et al.
patent: 6161146 (2000-12-01), Kley et al.
patent: 6182085 (2001-01-01), Eichstaedt et al.
Kumar Suresh
Varma Pradeep
Dinh Dung C.
International Business Machines - Corporation
Kaufman Stephen C.
McGuireWoods LLP
Salad Abdullahi E.
LandOfFree
Distributed server for real-time collaboration does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Distributed server for real-time collaboration, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Distributed server for real-time collaboration will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2600847