The present invention relates to information technology, and deals more particularly with providing collaboration using message exchanges.
In today's work environment, there is frequently a need for collaborative work efforts. For example, groups of people may need to work together as a team to resolve issues. Collaboration software may be used for enabling the team members to communicate.
The present invention is directed to providing collaboration. In one aspect, this comprises embedding content for a collaboration in an e-mail message and sending the e-mail message to participants in the collaboration (optionally, excepting that one of the participants who provides the embedded content).
In another aspect, this comprises generating a unique identifier for a collaboration; embedding content for the collaboration in a plurality of e-mail messages for the collaboration; embedding the generated unique identifier in each of the plurality of e-mail messages, thereby enabling collecting together all of the plurality e-mail messages which embed content for the collaboration; inserting, in a message header of each of the plurality of e-mail messages, an indication that the content for the collaboration is embedded in that e-mail message; and sending each of the plurality of e-mail messages to participants in the collaboration (optionally, excepting that one of the participants who provides the embedded content for that e-mail message).
Embodiments of these and other aspects of the present invention may be provided as method, systems, and/or computer program products. It should be noted that the foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined by the appended claims, will become apparent in the non-limiting detailed description set forth below.
The present invention will be described with reference to the following drawings, in which like reference numbers denote the same element throughout.
Embodiments of the present invention are directed toward collaboration among groups of people. The people may be collaborating as a team for a work-related project, for example. (Note, however, that the reason for a particular collaboration is not limiting to the present invention, and a work-related theme is used herein by way of illustration but not of limitation). E-mail messaging is leveraged to provide collaboration support, whereby an embodiment of the present invention embeds collaboration content in e-mail messages, and those e-mail messages are transported between e-mail clients as if they were conventional e-mail messages, as will be discussed in more detail herein.
Collaboration software is sometimes referred to as “teamroom software” or a teamroom solution. One example is the Lotus Notes® software product marketed by International Business Machines Corporation (“IBM”). (“Lotus Notes” is a registered trademark of IBM in the United States, other countries, or both.)
Teamrooms may be used for assigning work items, managing issues, sharing information, tracking progress, and so forth. A drawback of some existing teamroom solutions is that setup processing is required, in advance, and administration of the teamroom is an ongoing requirement. For example, setting up a teamroom may require creating (i.e., defining) the teamroom, managing user security access, informing others of the teamroom location, creating categories for use in the teamroom, and so forth. Many current teamroom solutions also require a server for hosting the teamroom database. This requires hardware to be purchased and administered, in addition to administering the teamroom software.
In addition, allowing people outside the company that hosts the teamroom to participate in the teamroom (such as information technology employees in an outside company for which a software error is being debugged by the collaboration hosting company) may be problematic in known solutions, since the people in the outside company may not be able to access the teamroom due to security firewalls or other access restrictions. Web-based solutions that provide teamrooms have been developed in an attempt to resolve these issues. However, the setup processing and ongoing administrative requirements still exist in Web-based solutions known to the present inventors.
The overhead of setup processing efforts may be worthwhile on large projects, but often there are small or short-term efforts—including single-topic collaborations—where teams need to collaborate. In such cases, it is desirable to collaborate without the setup processing of a teamroom solution or other collaboration tool.
Embodiments of the present invention leverage e-mail support to provide a distributed approach to collaboration (which is in contrast to existing collaboration tools that use a centralized paradigm). Collaboration content is embedded in e-mail messages to provide collaboration information and capabilities. The high setup overhead of known collaboration techniques is therefore avoided. Plug-in software is used, in an approach illustrated in
Collaboration support as disclosed herein is distributed, in contrast to known centralized collaboration approaches.
Note also that another e-mail client 160 is able to communicate with e-mail client 110 and/or 150 even though e-mail client 160 does not include a collaboration plug-in (or other collaboration support) as disclosed herein. Upon receiving an e-mail message containing collaboration content as disclosed herein, e-mail client 160 continues to interpret and process that e-mail message in a conventional manner (that is, as if the content was simply a conventional e-mail message) using e-mail application software of the client 160. (Note that the e-mail client 160 does not send collaboration content embedded in e-mail messages back to e-mail clients 110, 150 using techniques disclosed herein.)
A user of an embodiment of the present invention interacts with a collaboration message through the graphical user interface (“GUI”) of an e-mail application. (The term “collaboration message”, as used herein, refers to collaboration content embedded in an inbound e-mail message or prepared for transmission in an outbound e-mail message.) In one approach, the user may initiate a collaboration by selecting a collaboration choice—for example, using a drop-down menu, pop-up menu, tab, or icon—provided within the e-mail GUI, and may then begin to compose a collaboration message. In another approach, the user may compose a message within a conventional-style e-mail GUI, and then activate collaboration functionality (again, using a drop-down menu, pop-up menu, or other mechanism) to further process that message as collaboration content.
A number of different collaboration message types may be supported by an embodiment of the present invention. These message types include, by way of illustration but not of limitation, question-related or problem-related messages; informational messages; action item messages; investigation messages; team member voting or polling messages; and escalation messages. (An embodiment may support additional, fewer, or different message types without deviating from the scope of the present invention.)
A template may be provided for each collaboration message type, allowing a user to type content into fields of that template or to otherwise provide content for fields of the template (e.g., by copy and paste, drag and drop, and so forth). As one alternative to using a template, a user may select portions of already-provided content (using a conventional content selection approach, such as double-clicking with a pointing device or by dragging a pointing device while depressing a button to create a bounding box, for example) and may then identify a collaboration function to apply to that selected content. As an example of this latter approach, the user might highlight a section of text and, upon activating a right mouse button to display collaboration choices, might select “Use selection as collaboration topic” or “Use selection as collaboration message body”.
Embodiments of the present invention preferably organize received collaboration content using a folder approach, in a similar manner to folders that are used for organizing conventional e-mail messages. This is illustrated in the sample GUI 200 of
A “Collaboration—Question/Problem” tab 220 is presented in the sample GUI 200, responsive to selection of the question/problem folder 214, and a question/problem form view is therefore opened in a pane of the GUI, as shown generally at 230. In the example, a tabular view is provided, and this tabular view has an entry (i.e., a row in the table, in this example) corresponding to each of the instances 215-218. The sample question/problem form view 230 includes a column 240 for the unique identifier (“ID”) of this question/problem collaboration instance; a title column 250 that may be used for displaying a short description of the question/problem; a creator column 260 for identifying the team member who created this instance; a status column 270 for presenting a current status of this instance; and a form actions column 280 where available form actions may be represented (for example, as clickable buttons for invoking corresponding functionality). In an alternative approach, column 280 may be omitted and the actions may be invoked in another manner.
Sample GUI 200 also illustrates a toolbar 222 that presents a number of selectable choices which may be used for operating on collaboration content, and a search capability for searching within content of collaboration messages is illustrated at 225.
Suppose that the user wishes to initiate a new collaboration. The user may select the “Create new form” button 235 to initiate a collaboration having the currently-displayed question/problem collaboration type.
Using templates, with their fixed and predetermined fields, ensures that team members who interact with collaboration messages (also referred to herein as “participants” in the collaboration) using an embodiment of the present invention will have uniform views of particular collaboration content. The fields provided by templates for each type of collaboration will typically vary, and the templates will serve to constrain content that may be provided for a collaboration instance of a particular type and to guide users in creating necessary content for a collaboration of that type.
As can be seen in
A group of buttons or icons may be provided, as shown at 340-343, to enable the user to invoke an action pertaining to the collaboration. In this example, a “Submit New [collaboration instance]” button 340 is selected by the user when data entry for the various fields 321-330 is complete. The value for field 322 may be created, for example, responsive to button 340 (and a value has therefore not been illustrated in
The user identifies the recipients for the collaboration message (Block 420). As discussed above with respect to fields 325 and 326 of
An embodiment of the present invention then builds a collaboration message comprising the user-provided input and programmatically-generated information, and embeds that collaboration message into an e-mail message (Block 440). The e-mail addresses from field 325 of template 320 may be programmatically supplied as the “to:” list for the e-mail message. The “from:” address for the e-mail message may be set to the e-mail address associated with the user of the e-mail client at which the updates are created. (This particular e-mail address is preferably removed when building the “to:” list.) Optionally, a “cc:” list for the e-mail message may be composed from the e-mail addresses from field 326. The e-mail message “subject” may be programmatically built from field 321, and the body of the e-mail message preferably contains all of the content from template 320 (including headers or codes to distinguish among the various fields). The unique collaboration ID value, illustrated in the example at 310, may be inserted into a message header of the e-mail message. The e-mail message, with its embedded collaboration content, is then sent to the recipients (Block 450), after which the processing of
As noted above with respect to e-mail client 160 in
When the test in Block 610 has a positive result, on the other hand, then this is an e-mail message with an embedded collaboration message. Processing therefore continues at Block 630 by locating the unique collaboration ID from the message (e.g., by searching the message headers). Block 640 tests whether this collaboration ID is already known at the receiver. If not, then the recipient has not yet processed any messages pertaining to this particular collaboration. Block 650 therefore creates a new folder for this collaboration. This may comprise, for example, creating a subdirectory for the collaboration within a directory structure that corresponds to a collaboration type indicated by the collaboration ID. See reference number 519 of
Block 660 stores the incoming e-mail message in the corresponding folder—that is, in an existing folder when control reaches Block 660 from Block 640, and in the newly-created folder when control reaches Block 660 from Block 650. An embodiment of the present invention correlates the collaboration ID on all messages that pertain to a particular initially-created collaboration, thereby enabling updates and various other responses to be organized and collected together. A particular folder or directory may therefore store multiple messages. In one approach, all of the related messages (that is, all of the messages that pertain to a particular initially-created collaboration) contain the same unique collaboration ID, and the individual messages each contain a unique timestamp value. Providing the unique collaboration ID on the related messages enables aggregating the messages, and the timestamps enable sorting or ordering the messages (e.g., for sequential display). The unique timestamp value may be appended to, or separate from, the collaboration ID. Because team members may be geographically dispersed, a time-keeping convention such as Greenwich Mean Time (“GMT”) or Universal Time (“UT”) may be used for the timestamp.
Block 670 tests whether this newly-arrived e-mail message, and its embedded collaboration message, is to be displayed on the recipient's e-mail GUI. If not, then the processing of
A recipient of collaboration messages (such as a team member) may update, respond to, or otherwise interact with a previously-received collaboration message. The recipient may navigate the hierarchical summary view, as illustrated at 205 in
In the example, collaboration template 720 is displayed for the recipient “Joe Smith”, and the corresponding question/problem collaboration instance has already been updated by a different recipient. See entry 729a in field 729, where a recipient “Fred Culver” has provided a posting pertaining to this question/problem collaboration. Entry 729a is depicted in
A group of buttons or icons may be provided, as shown at 740-743, to enable the user to invoke an action pertaining to the collaboration. In this example, a “Submit Update” button 740 is selected by the user when his data entry updates (that is, fields 728a, 729b, in this example) are complete and he wishes to submit those updates. Other illustrated selections include “Add New Team Member” button 741, “Remove Me As Member” button 742, and “Form Help” button 743. As will be obvious, the buttons 740-743 illustrated in
An embodiment of the present invention then builds a collaboration message comprising the existing content and user-provided updates, and embeds that collaboration message into an e-mail message (Block 830). The collaboration message also includes the collaboration ID of the original collaboration, thereby enabling the updates to be correlated with previous messages for this collaboration. As noted earlier, the message also contains a unique timestamp value (which is programmatically generated) corresponding to the time of the update, and these timestamps may be used to sequentially order related messages for the collaboration. The e-mail addresses for the team members are contained within the collaboration message (as shown at field 725 of template 720), and may be programmatically supplied as the “to:” list for the e-mail message. The “from:” address for the e-mail message may be set to the e-mail address associated with the user of the e-mail client at which the updates are created. (This particular e-mail address is preferably removed when building the “to:” list.) Optionally, a “cc:” list for the e-mail message may be composed from the e-mail addresses from field 726. The e-mail message “subject” may be programmatically built from field 721, and the body of the e-mail message preferably contains all of the content from template 720 (including headers or codes to distinguish among the various fields). The unique collaboration ID value, illustrated in the example at 710, may be inserted into a message header of the e-mail message.
The e-mail message, with its embedded, newly-updated collaboration content, is then sent to the recipients (Block 840), after which the processing of
At some point, the creator of a particular collaboration instance may decide that this collaboration is complete. The collaboration creator may navigate the hierarchical summary view, as illustrated at 205 in
A group of buttons or icons may be provided, as shown at 940-944, to enable the user to invoke an action pertaining to the collaboration. In this example, the illustrated selections include “Submit Update” button 940, “Add New Team Member” button 941, “Investigation Complete” button 942, “Begin Voting” button 943, and “Form Help” button 944. As will be obvious, the buttons 940-944 illustrated in
When the collaboration creator selects the “Investigation Complete” button 942, the status of the collaboration is changed to closed, and a notification message may be sent by embedding an updated collaboration message in an e-mail message. Logic for creating this message may operate as discussed above with respect to
A resulting view of closing the collaboration instance of the example question/problem scenario is shown in
Referring now to
Team members may be invited to vote on proposed solutions for question/problem collaborations. This may occur responsive to the collaboration creator selecting a “Begin Voting” button as illustrated at 943 of
Variations may exist in the collaboration support provided by different embodiments of the present invention, without deviating from the scope of the present invention. Examples include templates allowing a collaboration creator to specify a date by which a team member's answer is expected; a date by which a problem resolution is expected; an identification of e-mail addresses for persons to be notified when an escalation is deemed necessary for a particular collaboration; a security classification for a collaboration; and so forth. Furthermore, while the sample views (such as
Optionally, functionality may be provided for exporting a collaboration or collection of collaborations (including of all the related messages for each collaboration). As one example, this exporting may be useful when the collaboration history documents how a problem was resolved. The exported information may be used as an entry in a “frequently-asked questions”, or “FAQ”, repository, for example. As another example, team collaboration may be used for creating a user guide or other publication, whereby different team members are responsible for creating different chapters or other portions of the publication. Once the various contributions are ready, they may be exported for aggregating into a consolidated publication, for storage on a content server, and so forth.
While sample GUI views (such as GUI 200 of
Collaboration messages may be stored in storage that is local to, or locally-accessible to, a team member's computing resources. In one approach, collaboration content is extracted each time an e-mail message embedding collaboration content is received at the local e-mail client, and this extracted content is used to populate a local collaboration data repository. Views of collaboration content may then be created from entries in the collaboration data repository. In another approach, the original e-mail messages that embed the collaboration content are maintained, and views of collaboration content are generated by processing the embedded content.
If a new team member is added to an already-existing collaboration, an embodiment of the present invention may distribute existing collaboration content to that new team member, such that the team member's e-mail client can display a full history of the collaboration (for example, by presenting of view of all of the previously-exchanged collaboration messages). This may comprise a “push” of content, whereby content is distributed to the e-mail client of the new team member from the (existing) team member who adds the new team member. As one alternative, a “pull” approach may be used, whereby the new team member's e-mail client requests the full history of the collaboration. A target of this request may be, for example, the creator of the collaboration. In both the “push” and “pull” approach, an automated distribution request may be generated, responsive to the addition of the team member. When the original e-mail messages that embed the collaboration content are maintained, these e-mails may be distributed directly to the new team member. When collaboration content is extracted and stored in a collaboration repository without maintaining the original e-mail messages, new e-mail messages may be programmatically generated to distribute the existing collaboration content to the new team member (in an analogous manner to that which has been described above, with regard to
As will be appreciated by one of skill in the art, embodiments of the present invention may be provided as (for example) methods, systems, and/or computer program products. 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, etc. Furthermore, the present invention may take the form of a computer program product which is embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and so forth) having computer-usable program code embodied therein, where this computer program product may be used by or in connection with a computer or any instruction execution system. For 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 may 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.
Referring now to
Input/output (“I/O”) devices (including but not limited to keyboards 1218, displays 1224, pointing devices 1220, other interface devices 1222, etc.) can be coupled to the system either directly or through intervening I/O controllers or adapters (1216, 1226).
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 (as shown generally at 1232). Modems, cable modem attachments, wireless adapters, and Ethernet cards are just a few of the currently-available types of network adapters.
Still referring to
The gateway computer 1346 may also be coupled 1349 to a storage device (such as data repository 1348).
Those skilled in the art will appreciate that the gateway computer 1346 may be located a great geographic distance from the network 1342, and similarly, the wireless devices 1310 and/or workstations 1311 may be located some distance from the networks 1342 and 1344, respectively. For example, the network 1342 may be located in California, while the gateway 1346 may be located in Texas, and one or more of the workstations 1311 may be located in Florida. The wireless devices 1310 may connect to the wireless network 1342 using a networking protocol such as the Transmission Control Protocol/Internet Protocol (“TCP/IP”) over a number of alternative connection media, such as cellular phone, radio frequency networks, satellite networks, etc. The wireless network 1342 preferably connects to the gateway 1346 using a network connection 1350a such as TCP or User Datagram Protocol (“UDP”) over IP, X.25, Frame Relay, Integrated Services Digital Network (“ISDN”), Public Switched Telephone Network (“PSTN”), etc. The workstations 1311 may connect directly to the gateway 1346 using dial connections 1350b or 1350c. Further, the wireless network 1342 and network 1344 may connect to one or more other networks (not shown), in an analogous manner to that depicted in
The present invention has been described with reference to flow diagrams and/or block diagrams according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flow diagram flow or flows and/or block diagram 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 flow diagram flow or flows and/or block diagram 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 flow diagram flow or flows and/or block diagram block or blocks.
While embodiments of the present invention have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims shall be construed to include the described embodiments and all such variations and modifications as fall within the spirit and scope of the invention.