The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:
Embodiments of the present invention provide a method, system and computer program product for reducing resource usage in a cluster through meeting affinity. In accordance with an embodiment of the present invention, participants to an e-meeting can establish affinity with a particular server in a clustered collaborative system. Specifically, a participant to an e-meeting, such as the moderator of the e-meeting, can select a particular server to which affinity is to be maintained, and the other participants to the e-meeting can be notified of the selected server. Thereafter, the participants can establish affinity with the selected server thereby obviating the need to replicate e-meeting data across different servers in the clustered collaborative system.
In further illustration,
The clustered collaborative system can include session affinity logic 170 coupled to the sprayer 140. The session affinity logic 170 can include program code enabled to establish session affinity for an individual one of the participant computing platforms 110A, 110B with a selected one of the clones 150. To achieve session affinity, the program code can be enabled to provide a session identifier for the selected one of the clones 150 to a participant computing platform 110A, 110B at the outset of a session. For each communicative transaction thereafter, the program code of the session affinity logic 170 can direct the communicative transaction to the selected one of the clones 150 indicated by the session identifier.
Notably, the clustered collaborative system further can include a set of meeting servlets 180 corresponding to individual ones of the clones 150. Each meeting servlet 180 can include program code enabled to establish an e-meeting for a group of participants via corresponding participant computing platforms 110A, 110B. The program code of the meeting servlet 180 further can be enabled to facilitate the establishment of meeting affinity for the participants to the e-meeting and to utilize a meeting affinity identifier in lieu of a session identifier when configuring subsequent requests for routing to specified ones of the clones 150. Specifically, in operation a particular one of the participants to the e-meeting, such as a moderator of the e-meeting, through moderator participant platform 110A can determine session affinity for a clone 150 in the cluster 120 in a session identifier 100A. Meeting affinity code 190 for the moderator participant platform 110A can publish the session identifier 100A as a meeting identifier 100B to other participant platforms 110B for the e-meeting.
Thereafter, the meeting affinity code 190 for each of the participant platforms 110A, 110B can utilize the meeting identifier 100B as a session identifier in forcing session affinity to the same one of the clones 150 in the cluster of servers 120. In this way, meeting affinity can be established for all participants to the e-meeting. As an alternative, meeting affinity can be established just for a single tool within the e-meeting, such as a white boarding session, or a screen sharing session. In consequence, the resources 160 for the selected one of the clones 150 will be the same for all of the participants to the e-meeting thereby eliminating the need to replicate resources across multiple ones of the clones 150 in the cluster of servers 120.
In yet further illustration,
Thereafter, in step 240 the moderator can send the meeting identifier to the participants to the e-meeting via sideband channel such as a lightweight session initiated protocol (SIP) message. Alternatively, the participants to the e-meeting can acquire the meeting identifier from a shared desktop of the moderator. As yet another alternative, the participants to the e-meeting can acquire the meeting identifier from a central repository through the meeting servlet. In any case, in step 250, the participants can change their session affinity for e-meeting related requests to the clone specified by the meeting identifier by forwarding a request to the meeting servlet. In step 260, the meeting servlet can respond to each of the participants with a cookie containing the identity of the clone for the e-meeting. Finally, in step 270, the e-meeting can be conducted knowing that meeting affinity has been established for the moderator and the remaining participants without tampering with session affinity for requests that are not related to the e-meeting.
Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.