A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The present invention relates generally to communications and information handling, and more particularly to methods and systems involving tracking, notification, and customized messages.
In many situations, persons need to be notified of changing conditions. This is true of persons working on a project, for example. Each person may need to be notified of different conditions. The changing conditions may be contained in a large collection of information, like a database, table or schedule. However, it can be very inefficient to communicate such a large collection of information to each person, and to have each person search it. Various approaches have been proposed for scheduling events, and communicating calendars or schedules. These examples do not communicate information that is customized for various users. Thus there is a need for systems and methods of targeted notification.
An example of a solution to problems mentioned above comprises parsing stored information, and automatically sending at least one customized message; components of the customized message are derived from the parsing. Another example comprises extracting message components from stored information, creating a customized message, based on a recipient's role in a project, and automatically sending the customized message to the recipient, wherein the customized message contains the message components, the stored information contains information concerning the project; and the recipient is a person responsible for at least part of the project.
A better understanding of the present invention can be obtained when the following detailed description is considered in conjunction with the following drawings. The use of the same reference symbols in different drawings indicates similar or identical items.
The examples that follow involve the use of one or more computers and may involve the use of one or more communications networks, or the use of various devices capable of handling messages, such cell phones or two-way pagers. The present invention is not limited as to the type of computer or device on which it runs, and not limited as to the type of network used.
The following are definitions of terms used in the description of the present invention and in the claims:
“Component” means any element or part, and may include elements consisting of hardware or software or both.
“Computer-usable medium” means any carrier wave, signal or transmission facility for communication with computers, and any kind of computer memory, such as floppy disks, hard disks, Random Access Memory (RAM), Read Only Memory (ROM), CD-ROM, flash ROM, non-volatile ROM, and non-volatile memory.
“Customized” means adapted, adjusted or tuned.
“Defect” means any event or feature that may be unexpected, undesirable, or incorrect.
“Dependency” refers to any condition where certain data, files, hardware, or software are required for proper performance, or completion of a task.
“Mapping” means associating, matching or correlating.
“Output” or “Outputting” means producing, transmitting, or turning out in some manner, including but not limited to printing on paper, or displaying on a screen, writing to a disk, or using an audio device.
“Parse” means to analyze or break down.
“Project” means any assignment, enterprise, job, undertaking or venture, in any industry or profession; for example, it may involve providing services, or a mixture of goods and services.
“Storing” data or information, using a computer, means placing the data or information, for any length of time, in any kind of computer memory, such as floppy disks, hard disks, Random Access Memory (RAM), Read Only Memory (ROM), CD-ROM, flash ROM, non-volatile ROM, and non-volatile memory.
“Targeted Notifications Tracking” (TNT) refers to any automated solution involving tracking, notification, and customized messages targeted to specific recipients.
“Web application” means any application utilizing a web browser or hypertext transfer protocol (HTTP).
While the computer system described in
Consider the following scenario where targeted notifications tracking may be useful. Sheila manages a large software project that involves 30 software developers. The project has 5 different modules, each owned by a team of 6 developers. At the beginning of the project, Sheila identifies several dependencies for each of the teams. She then proceeds set up a dependency meeting, where various dependencies are discussed and tracked. She further creates a mailing list with all the developers on it. Each week she sends out a spreadsheet to all the participants with the latest status information on each dependency. As time progresses, several dependencies are closed, and the developers responsible for those no longer need to attend a dependency meeting, nor be on the list to receive the spreadsheet update. But Sheila is a very busy, and she does not have time clean up her list. This would imply keeping track of who needs to be sent the spread sheet. So all 30 developers still receive the e-mail notifications with a huge spread sheet attachment, for issues that only concern 5 of the developers. Furthermore, there is a significant loss of productivity for developers who have to scan the entire spreadsheet each time, to find out whether they are responsible for any open issues. This can lead, in some instances, to the developers ignoring the whole spreadsheet.
However, consider how Sheila may use a system and method of targeted notifications tracking like the one shown in
The following are some possible advantages of utilizing a system and method of targeted notifications tracking like the one shown in
TNT server 280 may serve as a means for parsing stored information at 290. TNT server 280, message server 230, network 220, and message clients at 250 may serve as means for automatically sending customized messages shown at 260 and 240. Components of customized messages are derived from parsing performed by TNT server 280. A storage device at 290 and TNT server 280 may serve as means for storing and updating information. TNT server 280 may serve as means for extracting from stored information at 290 message components such as message recipients, message subjects and message content. Storage component 290 and TNT server 280 may serve as means for creating customized messages at 260. Creating customized messages 260 may be based on the role of a recipient at 250. For example each customized message at 260 maybe based on a row in a table stored at 290. Customized messages shown at 260 and 240 preferably have content limited to a problem for which a recipient, using one of the message clients at 250, is responsible.
Preferably, the process of sending customized messages 240 should be automated, and stored information (report storage 290) should be kept current.
Continuing with details that may be involved in
In this example, the TNT application at 280 may be implemented with the JAVA programming language for example, and thus it is independent of any particular operating system. The parsing performed by the TNT application at 280 may be implemented with a scripting language such as PERL or PHP, for example, both of which are independent of any particular operating system.
Sending messages at 240 may comprise utilizing one or more communication technologies. Message server 230, network 220 and message clients 250 represent means for utilizing one or more communication technologies, such as e-mail, text-to-speech, voice mail, voice over IP, wireless text messages, instant messaging, short message services, and posting on a web site (using content pushed to web sites). Wireless text messages may be implemented with JAVA Standard Micro Edition, for example. The utilization of e-mail protocols may be accomplished with the JAVAMAIL application programming interface (API). The JAVAMAIL API Design Specification is freely available from Sun Microsystems, Inc., and includes source code for creating and sending e-mail messages.
Block 303 represents creating a collection of information, such as a report to track project activities. For example, the project manager identifies tasks, roles, responsibilities, dependencies, defects, deadlines, etc., and consolidates a report to keep track of individual components of a project. For example, the report can be generated in a spreadsheet format, identifying the component and the characteristics of the component from a project management perspective (owner, contact info, deadline, dependency, defects, etc.). The process may proceed to block 305 after the information is stored (symbolized by arrow connecting to block 304). Block 304 represents storing information. For example, the generated tracking report can be stored in a file, database or some kind of storage medium.
Block 305 represents invoking the TNT manager or TNT application. The TNT application may be run in an interactive mode, or in an automated, scheduled job mode. It reads the report from the storage medium (symbolized by double-headed arrow connecting to block 304). The data is parsed according to a registered protocol, and a determination is made as to who needs to be notified, with what information. At decision block 306, TNT determines whether new notifications need to be sent out. If so, the “Yes” branch is taken to 307, or else the process ends (the “No” branch is taken to 309).
Block 307 represents TNT creating and sending out customized notification messages, using any protocol (e.g., e-mail, page, etc.). This may involve extracting from the stored information (symbolized by double-headed arrow connecting to block 304) one or more message components such as message recipients, message subjects, and message contents. Messages are sent automatically; a user need not compose and send messages one at a time.
Block 308 represents updating the report, and filing a log of activity (symbolized by arrow connecting to block 304). Block 308 represents one possible point in the process where stored information may be updated. For example, a new description of a defect may be received and added to stored information. Block 309 represents the end of one TNT iteration.
Regarding
Regarding user interface (UI) 420, the TNT utility 480 could be invoked with a graphical user interface (GUI), or TNT utility 480 may be run as a command—line application. The TNT utility 480 may be run in an interactive mode, or in an automated, scheduled job mode. Another possibility would be to implement it as a web application (i.e., a computer application executable over an intranet or the Internet).
Regarding the input 460 for the TNT utility 480, the stored information is described as a spreadsheet saved as a comma-separated value (CSV) file at 440. (Comma-separated value refers to an ASCII file where each individual data field is separated by commas.) However, the stored information could have any one of several formats such as XML. Alternatively, the input information could be stored as a database structure. The user at 410 may provide input 460 for the TNT utility 480 by opening (arrow 450) spreadsheet 440 with the TNT utility 480.
The TNT utility 480 accounts for special notification message instructions or formatting through configuration file 470. (See the sample TNT configuration file below, in the discussion of
Defect information (in column 522, rows 507-511).
Each problem or issue is shown in its own row (see rows 504-505, and rows 510 -511).
The spreadsheet in
Continuing with details of the example in
TNT accounts for special notification message instructions through a configuration file. See the sample TNT configuration file below:
In conclusion, we have shown examples of systems and methods of targeted notification.
One of the possible implementations of the invention is an application, namely a set of instructions (program code) executed by a processor of a computer from a computer-usable medium such as a memory of a computer. Until required by the computer, the set of instructions may be stored in another computer memory, for example, in a hard disk drive, or in a removable memory such as an optical disk (for eventual use in a CD ROM) or floppy disk (for eventual use in a floppy disk drive), or downloaded via the Internet or other computer network. Thus, the present invention may be implemented as a computer-usable medium having computer-executable instructions for use in a computer. In addition, although the various methods described are conveniently implemented in a general-purpose computer selectively activated or reconfigured by software, one of ordinary skill in the art would also recognize that such methods may be carried out in hardware, in firmware, or in more specialized apparatus constructed to perform the method.
While the invention has been shown and described with reference to particular embodiments thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and detail may be made therein without departing from the spirit and scope of the invention. The appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention. Furthermore, it is to be understood that the invention is solely defined by the appended claims. It will be understood by those with skill in the art that if a specific number of an introduced claim element is intended, such intent will be explicitly recited in the claim, and in the absence of such recitation no such limitation is present. For non-limiting example, as an aid to understanding, the appended claims may contain the introductory phrases “at least one” or “one or more” to introduce claim elements. However, the use of such phrases should not be construed to imply that the introduction of a claim element by indefinite articles such as “a” or “an” limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases “at least one” or “one or more” and indefinite articles such as “a” or “an;” the same holds true for the use in the claims of definite articles.