|This article does not cite any references or sources. (December 2009)|
A modern notification system is a combination of software and hardware that provides a means of delivering a message to a set of recipients. For example, a notification system can send an e-mail when an article has been changed in Wikipedia. The complexity of the notification system is often dependent on the types of messages that must be sent. An e-mail noting when a page has been changed in Wikipedia is adequate for such a straightforward task. However, notifying individuals when a building is on fire would require real-time interaction, escalation, scheduling[disambiguation needed], rosters, and fail-over scenarios.
Notification system features
A notification system is only as good as the contact data contained within. Uploading recipient data is not ideal, as data can be wrong (miskeyed number or letter), false (purposely wrong data), or invalid (phone number has changed). Therefore, notification systems with opt-in data collection can validate data in real time for all said errors and more. In addition, due to the escalation of unwanted email (spam) and unwanted calls (do not call list), notification system providers are wary of violating existing laws and/or blacklisting by 3rd parties who carry the notification. An opt-in process of collecting data harbors the provider from unlawful use, because each recipient is giving the notification provider permission to contact him or her.
In the event of a fire, or any emergency situation that requires human intervention, notification systems can provide a way of accepting feedback. The feedback can be used to determine what tasks the system should perform. For example, a chief firefighter, when notified of a pending fire, must acknowledge that the truck is en route, thus eliminating the need for further notifications.
Priority / pre-emption
Somewhat related to real-time interaction, above, certain notifications may bear more importance than others (for example, a fire alert would be more important than a cafeteria menu notification). Such types of notification would need to override any existing notifications of a lower priority. An emergency communication system is a specific type of notification system that would consider this requirement.
The criticality of an event might change before the event is finally resolved. Sometimes a small failure may trigger a chain of failures that can lead to events that require immediate attention. For example, an e-mail that fails to send is not a significant error, and may be classified as a warning. However, the original incident that noted the e-mail failure may spawn a ping of the mail server responsible for relaying the e-mails. If the ping fails, the event may be escalated to a severe level, to indicate that a more important issue requires resolution.
When cellpone the list of recipients to notify of an event, a notification system might take into consideration the hours in which a recipient can be notified. Someone working a midnight shift may be available for handling emergencies between 11:00 pm and 7:00 am. The system should make no attempt to notify this person outside of those hours. A notification system could take into consideration vacation times, weekends, holidays, and so forth, to prevent notifying people when they are available
If a notification system cannot contact the intended party, often it is not sufficient to let the matter drop. In the previous example, the chief firefighter was informed of a pending fire. However, if the chief was assisting a tree-bound cat, the notification might not reach its target. Consequently the system must find another person to notify, typically by scanning a predefined roster.
Highly available systems that include incredibly large pre-arranged percentages of time may not be even able to allot for minimal, yet inherently required scheduled maintenance windows which result in some form of downtime of the systems itself. To mitigate this scenario, these systems typically incorporate levels of redundancy to ensure continued operation in the event part of it cannot. To achieve the goal of high availability (HA), notification within these systems must be taken into consideration for the failure of its redundant parts when it occurs, as further failures will likely compromise availability unless the initial partial failure is first recovered or if proactive actions need to be taken first. Failures can be as easily recoverable as a physically disconnected networking connection, or as catastrophic as a hard drive crash. The redundancy typically consists of distributed systems that may be able act independently albeit lacking redundancy. The role of notification would also be redundant, at which point the responsibility would be delegated somewhere within the remaining operational parts.
The number of ways a person can interact with technology has steadily increased. Advanced notification systems support at least one and sometimes all of the following communications media:
- Text messaging (SMS)
- Voice (telephone, cellphone, VoIP, outdoor loudspeaker, indoor PA system)
- E-mail (POP, IMAP, SMTP)
- Desktop alert (dialog, balloon, modal window, toast)
- Pager (SNPP)
- Instant messaging (IRC, ICQ, AIM, Yahoo! Messenger, MSN, XMPP, iMessage)
- RSS (RSS reader, digital signage)
Notification systems are used in the following industries:
- Financial institutions (banks, stockbrokers, credit unions)
- Emergency services (police, fire department, ambulance)
- Manufacturing (computer hardware, motorcycles, television )
- SCADA (power generation, water treatment, refining )
- Information technology (help desk, networks, software monitors)
- Weather (storms, earthquake, tsunami)