Many different types of computing systems have attained widespread use around the world. These computing systems include personal computers, servers, mainframes and a wide variety of stand-alone and embedded computing devices. Sprawling client-server systems exist, with applications and information spread across many PC networks, mainframes and minicomputers. In a distributed system connected by networks, a user may access many application programs, databases, network systems, operating systems and mainframe applications. Computers provide individuals and businesses with a host of software applications including word processing, spreadsheet, and accounting. Further, networks enable high speed communication between people in diverse locations by way of e-mail, websites, instant messaging, and web-conferencing.
A common architecture for high performance, single-chip microprocessors is the reduced instruction set computer (RISC) architecture characterized by a small simplified set of frequently used instructions for rapid execution. Thus, in a RISC architecture, a complex instruction comprises a small set of simple instructions that are executed in steps very rapidly. These steps are performed in execution units adapted to execute specific simple instructions. In a superscalar architecture, these execution units typically comprise load/store units, integer Arithmetic/Logic Units, floating point Arithmetic/Logic Units, and Graphical Logic Units that operate in parallel. In a processor architecture, an operating system controls operation of the processor and components peripheral to the processor. Executable application programs are stored in a computer's hard drive. The computer's processor causes application programs to run in response to user inputs.
Computers also facilitate communications between computer users. For example, suppose a couple of computer users working for a company are assigned to the same project and wish to communicate with one another electronically concerning the project. When a project participant wants to send a project related message to another project participant the participant opens a window at his or her computer, selects the recipient, specifies the subject, and types in the message. The participant then sends the message. A server that connects to both computers of the sender and recipient receives the message and routes the message to the designated recipient. The message appears in a window on the recipient's computer monitor video screen and the recipient then reads the message. The recipient may then respond by typing a response and sending the response to the sender. The sender receives the response and may respond to the recipient, and so forth.
There may be other project members that may be interested in the subject and text of the conversation between the first two project members. One way to inform the other project members is to broadcast the emails or instant messages exchanged between the two members to all the other members of the project. However, this is undesirable because some project members may not be interested in listening in on the conversation and the compulsory receipt of these messages clutters the project member's mailbox. Another way of informing other project members of the conversation is to explicitly copy the emails or instant messages to other project members. However, this requires explicit action on the part of the message sender and, again, may send the message to a member that does not desire to receive the communication. Another drawback is that a project member may wish to overhear a conversation between two other project members, but only if the conversations pertains to a particular subject relating to the project. Presently, systems provide no mechanism for the third party to gain knowledge of only those conversations relating to a particular subject.
Thus, there is a need for systems and method that allow selective listening in of conversations relating to a project. There is a need for a system which allows for a third party to request to listen in on an ongoing conversation or opt not to listen in on the conversation. Further, there is a need to allow a user to search for those conversations that relate to a particular subject of interest to the user, and exclude those messages that do not relate to the subject of interest.