In order to facilitate a fuller understanding of the present invention, reference is now made to the appended drawings. These drawings should not be construed as limiting the present invention, but are intended to be exemplary only.
Team Room A Application 42 and Team Room B Application 48 provide team rooms that are virtual, shared “areas” or “workspaces” that support communication, coordination, and collaboration between their respective team members. Specifically, Team Room A Application 42 creates a virtual workspace that is shared by members 10 of Team Room A, and Team Room B Application creates a virtual workspace that is shared by the members 11 of Team Room B. Team Room A Application 42 enables the members 10 of Team Room A to store, organize, and retrieve Team Room resources, such as Team Room A Artifacts 46, which may be related to a team project for which the members 10 of Team Room A are responsible. Team Room A Application 42 controls the Artifacts 46 and other Team Room resources such that accesses to and/or other operations on them can by default only be performed by the members 10 of Team Room A. Team A Artifacts 46 may include any specific type of information, for example, code files, designs, project documentation, presentations, schedules, and/or application programs. Team Room A Application 42 further provides interactive discussion among members 10, for example through an instant messaging and/or any other specific type of communication application.
Similarly, Team Room B Application creates a virtual workspace that is shared by members 11 of Team Room B, and Team Room B Application 48 creates a virtual workspace that is shared by the members 11 of Team Room B. Team Room B Application 48 enables the members 11 of Team Room B to store, organize, and retrieve Team Room resources, such as Team Room B Artifacts 52, which may be related to a team project for which the members 11 of Team Room B are responsible. Team Room B Application 48 controls the Artifacts 52 and other Team Room resources such that accesses to and/or other operations on them can by default only be performed by the members 11 of Team Room B. Team Room B Artifacts 52 may include any specific type of information, for example, code files, designs, project documentation, presentations, schedules, and/or application programs. Team Room B Application 48 further provides interactive discussion among members 11, for example through an instant messaging and/or any other specific type of communication application.
Team Room A Tasks 44 are tasks that the Team Room A Members 10 have planned, are engaged in, and/or have completed, and are maintained by the Team Room A Application 42 for the purpose of enhancing cross-team awareness and coordination. Each of the tasks stored in the Tasks 44 indicates or contains task-related information such as: which of the Team Room Team Members 10 are assigned to the task, the status of the task (e.g. completed, planned, or underway), a priority associated with the task (e.g. high priority or low priority), a description of the task, and which of the Team Room A Artifacts 46 are associated with the task. Team Room A Tasks 44 are also examples of the resources of Team Room A.
Team Room B Tasks 50 are tasks that the Team Room B Members 11 have planned, are engaged in, and/or have completed, and are maintained by the Team Room B Application 48 for the purpose of enhancing cross-team awareness and coordination. Each of the tasks stored in the Tasks 50 indicates or contains task-related information such as: which of the Team Room Team Members 11 are assigned to the task, the status of the task (e.g. completed, planned, or underway), a priority associated with the task (e.g. high priority or low priority), a description of the task, and which of the Team Room B Artifacts 52 are associated with the task. Team Room B Tasks 50 are also examples of the resources of Team Room B.
While
A member of a Team Room is considered to be “present” in that Team Room if that member navigated to the Team Room, for example through a menu structure or other user interface construct. In this way the member is said to have “entered” the Team Room. Presence in a Team Room involves having the client software for the Team Room currently executing on the member's client computer system, such that the user interface for that Team Room is being generated and displayed to the member on the member's client computer system. Additionally, when a Team Room member is present in a Team Room they are available to immediately participate in on-line discussions or other real time, synchronous communications related to the resources, such as artifacts, tasks, etc., of the Team Room. For example, a Team Room member that is present in a Team Room is available to receive instant messages in the Team Room user interface, from other Team Room members, regarding the contents of the Team Room. Since access to Team Rooms is restricted, a Team Room member must typically logon to a Team Room application program in order to become present in an associated Team Room. Such a logon procedure may include providing a user name and password, or following some other appropriate logon procedure. Once a person has entered a Team Room, they are considered present until they navigate away from the Team Room, thus “leaving” the team room. Leaving a Team Room may, for example, involve logging off of the Team Room application program, closing the client software program or user interface through which they access the Team Room, entering another Team Room, or some other appropriate procedure. In one embodiment of the disclosed system, a user may only be present in one Team Room at a time.
The client computer systems 12, 22, 32, 72 and 82 of
The Awareness Information 54 conveyed from the Team Room A Application program 42 includes information indicating whether any team room members of Team Room A are currently present in Team Room A, and/or how many team room members of Team Room A are currently present in Team Room A. The awareness information 55 conveyed from the Team Room B Application program 48 includes information indicating whether any team room members of Team Room B are currently present in Team Room B, and/or how many team room members of Team Room B are currently present in Team Room B.
The Awareness Information 54 conveyed from Team Room A Application program 42 to the Client Software 18 may further include indication of how many new documents there are in Team Room A, and/or the names of such new documents, where new documents include those documents created in Team Room A since the last time User A 14 left Team Room A, and/or those documents contained in Team Room A that User A 14 has never accessed. Similarly, the Awareness Information 54 conveyed from Team Room A Application program 42 to the Client Software 18 may further include indication of how many modified documents there are in Team Room A, and/or the names of such modified documents, where modified documents may include those documents modified in Team Room A since the last time User A 14 left Team Room A, and/or those documents contained in Team Room A that User A 14 has not accessed since they were modified.
The Awareness Information 55 conveyed from Team Room B Application program 48 to the Client Software 18 may further include indication of how many new documents there are in Team Room B, and/or the names of such new documents, where new documents may include those documents created in Team Room B since the last time User A 14 left Team Room B. Similarly, the Awareness Information 55 conveyed from Team Room B Application program 48 to the Client Software 18 may further include indication of how many modified documents there are in Team Room B, and/or the names of such modified documents, where modified documents may include those documents modified in Team Room B since the last time User A 14 left Team Room B.
The Awareness Information 54 conveyed from the Team Room A Application program 42 may further include information indicating whether any on-line discussions or other synchronous interactions are currently taking place between Team Room A members, and/or indications of what Team Room A tasks members of Team Room A are currently engaged in. The awareness information 55 conveyed from the Team Room B Application program 48 may similarly include information indicating whether any on-line discussions or other synchronous interactions are currently taking place between Team Room B members, and/or indications of what Team Room B tasks members of Team Room B are currently engaged in.
Client software 18 provides the User Interface 16 responsive to the Awareness Information 54, the Awareness Information 55, and an Importance Profile 17. The Importance Profile 17 contains information indicating the importance of various Team Room resources to User A 14. In one embodiment, the relative importance of a Team Room resource is determined based on whether that resource is associated with a task to which the user is assigned. Accordingly, in such an embodiment, a resource may be determined to be relatively more important to a given user than other resources in the event that the resource is associated with a task to which that user is assigned. In another embodiment, the importance of a given document to a user may be determined based on whether the user authored or modified the document, such that those documents that were authored or modified by a user are determined to be relatively more important to that user than other documents.
Alternatively, the Importance Profile 17 may be used to record the number of times User A 14 has accessed a document contained in Team Room A, and based on that number, the Client Software 18 may determine whether that document is important to User A 14. Documents that have been accessed more often than other documents may be considered relatively more important. This approach to importance determination based on frequency of access may further be applied to any specific type of resource within a Team Room. In another alternative approach, a user may expressly provide indications of which resources within a Team Room are to be considered relatively important, for example through the User Interface 16, and these indications may be stored in the Importance Profile 17.
While the Importance Profile 17 is shown for purposes of illustration as being located on the Client Computer System 12, the disclosed system may be alternatively embodied such that the Importance Profile 17 is stored partly or wholly on the Team Room Computer Server System 40. Moreover, while for purposes of concise and clear illustration only the Importance Profile 17 for User A 14 is shown in
Client software 18, 28, 38, 78 and 88 may, for example, use a client-server approach to operating with the server software 42 and 48. Alternatively, the client software 18, 28, 38, 68, 78 and 88 may include Web browser program functionality operable to request and receive Web page content, including HTML (Hypertext Markup Language) code or the like, from their respective Team Room applications, and to render such Web page content in their respective user interfaces.
The client computer systems 12, 22, 32, 72 and 82, and Team Room Server Computer System 40, may each include at least one processor, program storage, such as memory, for storing program code executable on the processor, and one or more input/output devices and/or interfaces, such as data communication and/or peripheral devices and/or interfaces. The client computer systems 12, 22, 32, 72 and 82, and the Team Room Server Computer System 40 may each further include appropriate operating system software. The client computer systems 12, 22, 32, 72 and 82 may further include portions of an integrated development environment (IDE), such as the Eclipse IDE as provided by the Eclipse Foundation.
While for purposes of clear illustration and concise explanation
In the following explanatory discussion, with regard to
The disclosed system includes an underlying notification mechanism that lets the client software that creates the user interface 100 know immediately of any changes to spaces as they occur, as illustrated in
As further shown in
The detail information provided in the tooltip 113 shown in
Based on the awareness information provided at step 154, at step 156 the client software on the user's computer system updates visual representations of the team rooms to which the user belongs as the awareness information is received from the server team room software, and reflecting the contents of the user's importance profile. Thus the notification functionality in the server team room software allows the client software to update a user interface construct such as the space bars of
The disclosed system provides a number of advantages over existing team room solutions. First, unlike using email or polling-based RSS feeds to make members aware of team room changes and status, the disclosed system makes members aware of team room changes and status in real-time. Email and RSS are generally “pull” mechanisms, since a user must explicitly “check email” or “read an RSS feed” to obtain information, by which time the awareness data is as old as the messages that were sent or published. In contrast, the disclosed system supports real time notifications (i.e. “push” functionality) from team room server software, that are provided immediately upon the occurrence of a team room change. As a result, a user will see up-to-date information immediately through the user interface, without having to visit each team room.
In addition, using the disclosed system, users can easily maintain an awareness of all their team rooms at once. For example, users of the disclosed system are able to conveniently determine how many people are in each team room, and how many new and modified documents there are at any given time. This up-to-the-minute information is likely to lead users to make better decisions about when to visit their various team rooms.
Further, while techniques such as email or RSS typically require a user to leave the team room application for another application (i.e. the email client or RSS reader), the disclosed system does not require a user to leave the team room application—or even their current team room user interface—to see the status of other team rooms to which they belong.
Moreover, while the above description is focused on providing awareness information to a member of multiple team rooms, the disclosed system may alternatively be embodied as a technique for monitoring the status of other online activities in which a user participates. For example, in one such alternative embodiment involving online, multiplayer games, a user may be provided a user interface for an online game that includes visual representations of multiple games in which the user is participating. Such visual representations of games would be updated in real time to indicate status information regarding each game such as whether or not any other players are currently playing the game, how many other players are playing the game, whether any players that are important to the user are playing the game, how many important players are playing, etc.
The figures include block diagram and flowchart illustrations of methods, apparatus(s) and computer program products according to an embodiment of the invention. It will be understood that each block in such figures, and combinations of these blocks, can be implemented by computer program instructions. These computer program instructions may be loaded onto a computer or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus create means for implementing the functions specified in the block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the block or blocks.
Those skilled in the art should readily appreciate that programs defining the functions of the present invention can be delivered to a computer in many forms; including, but not limited to: (a) information permanently stored on non-writable storage media (e.g. read only memory devices within a computer such as ROM or CD-ROM disks readable by a computer I/O attachment); (b) information alterably stored on writable storage media (e.g. floppy disks and hard drives); or (c) information conveyed to a computer through communication media for example using wireless, baseband signaling or broadband signaling techniques, including carrier wave signaling techniques, such as over computer or telephone networks via a modem.
While the invention is described through the above exemplary embodiments, it will be understood by those of ordinary skill in the art that modification to and variation of the illustrated embodiments may be made without departing from the inventive concepts herein disclosed. Moreover, while the preferred embodiments are described in connection with various illustrative graphical user interface constructs, one skilled in the art will recognize that they may be embodied using a variety of other alternative graphical user interfaces.