|
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, notification
systems can send an e-mail when a new topic has been
added to 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
inserted into Wikipedia is adequate for such a
straightforward task. However, notifying individuals
when a building is on fire would require real-time
interaction, escalation, scheduling, rosters, and
fail-over scenarios.
Real-time
interaction
In the event of a fire, or any emergency situation that
requires human intervention, notification systems must
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.
Escalation
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.
Scheduling
When deciding 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:00pm and
7:00am. 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 not available.
Rosters
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.
Fail-over
scenarios
High availability means that a system must be up and
running 99.999% of the time. The only acceptable
downtime is for upgrades, which must be kept to an
absolute minimum. To achieve the goal of high
availability (HA), software-based notification systems
must take into consideration the failure of hardware
upon which they are running. The hardware failure could
be as simple as someone accidentally unplugging a
network connection, or as messy as a hard drive crash.
The "brains" of the notification systems are often
distributed across separate physical machines to ensure
that if one machine is no longer available, another
system can handle sending messages and resolving new
events.
Interactive media
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:
Voice (telephone, cellphone, VoIP)
Pager (SMS, SNPP)
Instant Messaging (Jabber, MSN, ICQ)
E-mail (POP, IMAP, SMTP)
Fax
Read Full Article at Wikipedia |