The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Notify - Framework for asynchronously, remotely notifying users.

DESCRIPTION

The Notify package aims to simplify applications that need to be able to communicate remotely with users in a reliable fashion over various kinds of medium, such as via Email or pager. The package provides a definition for notification objects, transport objects for sending and receiving notifications, and a notification pool manager for managing the creation, update, and resolution of notification transactions.

This package manages transport and the underlying transaction mechanisms for communication. It does not, however, dictate the notification protocol, which is left for application implementation.

SYNOPSIS

See below.

REQUIRES

  Tie::Persistent
  Mail::Box
  Mail::Sender

INTRODUCTION

If you are reading this document, then you have probably installed this module already :) If not, try the time honoured:

    perl -MCPAN -e'install Notify'

The package is composed of the following modules:

  Notify::Notice

      A simple object defining notification attributes. It provides
      a layer of abstraction for operations on notification data
      structures. The object has a loose structure and is meant
      to be easily extensible in the future.

  Notify::NoticePool

      A notification management object. Allows for the creation,
      updating, and deletion of notifications. All notifications
      added into the pool are persistent and maintain history
      until they are resolved. An asynchronous method is provided
      to advance notification transactions as the application
      requires.

      This module also defines the the two methods required by
      a transport object: the send and receive methods. See the
      POD for more detail.

  Notify::Email

      Implements a transport via Email notification. Notifications
      are sent with the app name and notification ID in the
      subject header. Notifications are also extracted, processed,
      and removed automatically from the monitored mail box by
      the transport object.

The individual modules provide more information in their respective POD documentation (e.g., perldoc Notify::NoticePool), so give them a look.

CREATING A NEW TRANSPORT MODULE

The transport module interface is defined in the POD documentation for Notify::NoticePool. Transport modules are registered during the instantiation of the NoticePool object by instatiating a transport object and passing it in as a field in the 'transport' key of the NoticePool constructor, e.g:

    'email' => new Notify::Email ({ ... });

If you're interested in seeing support for another transport object, or adding your own, please contact me (see author information below). Please note that this interface is subject to change as the package develops.

GETTING STARTED

The Notify::NoticePool is the central object in the package and its POD documentation describes how to integrate the Notify package into an application. Check it out with a 'perldoc Notify::NoticePool'.

AUTHOR

Michael Gilfix <mgilfix@eecs.tufts.edu> Copyright (C) 2001

All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

perl (1), Notify::NoticePool, Notify::Notice, Notify::Email