TriggerMan
and Vigilert (Database Alerting Software)
- Update - November 17, 2009:
The source code for TriggerMan
and it's successor Vigilert was released under a
very-BSD-like license (free and open source as
long as you put in the copyright attribution
notice) and is available for download here: http://github.com/aevernon/triggerman/
It currently has these system requirements:
-
- Vigilert is available as a middleware
on Windows NT/2000/XP for the following
database information sources: Oracle 8i
and higher, Microsoft SQL Server 7.0 and
higher, and Informix Dynamic Server 9.2
and higher.
-
- Vigilert is also available as a DataBlade for
Informix Dynamic Server 9.2 and higher on
Windows NT/2000/XP, Solaris 8 and higher,
HPUX 11.0, and Linux.
But the author told me that they intend to
make it work under PostgreSQL and offer
optional commercial support for it via his
company:
http://vegainformatics.biz/services.php
TriggerMan
was
a project done at the University of Florida
under the direction of Dr. Eric N. Hanson
under a grant from the Air Force Research
Laboratory. The final technical report
is here:
Support
of
Intelligent Integration of Information
Using an Asynchronous Trigger Processsor
AFRL-IF-RS-TR-2000-72,
Final Technical Report, June 2000
The
TriggerMan
architecture is made up of the following
components:
- the TriggerMan
DataBlade which lives
inside of Informix,
- data source applications, which are programs
that transmit a sequence of update descriptors
to TriggerMan
describing updates that have occurred in data
sources,
- TriggerMan client applications, which create
triggers, drop triggers, register for events,
receive event notifications when triggers
fire, etc.,
- one or more instances of the TriggerMan
driver program, each of which periodically
invokes a special TmanTest()
function in the TriggerMan
DataBlade, allowing
trigger condition testing and action execution
to be performed,
- the TriggerMan
console, a special application program that
lets a user directly interact with the system
to create triggers, drop triggers, start the
system, shut it down, etc.
Here were the requirements for
TriggerMan
at the time:
Window NT 4.0,
Informix Dynamic Server version 9.14 or later
for Windows NT, Microsoft Visual C++ 6.0, and
Microsoft Visual Basic 6.0 are required to
compile and run the software. The main
body of the
TriggerMan
cocde consists of 26,000 lines of C.
Other papers written about this project, design
documents, and instructions for it's use are
available here:
http://www.dbcenter.cise.ufl.edu/triggerman/
Vigilert
The developers of
TriggerMan
decided to commercialize their product in what
became Vigilert under the company
Velara
Software. The company folded in 2002,
apparently before they were able to produce in a
form deliverable to any customers. "Velara
released an alpha version of its scalable alerting
system, Vigilert, in March 2001."
Vigilert integrates automated alert
recognition directly into digital business
processes, which proactively and immediately
recognizes when important events take place. The
server then instantly notifies, or alerts, any
designated tool, application or device (fixed or
wireless) that is able to receive a message.
Middleware Vigilert
The first version
of Vigilert, which supports Oracle, Informix,
and Microsoft SQL server, and runs on
Windows NT 4.0 or higher, functions as a
middleware process separate from the database
system.
This version is the primary product platform,
because it is the appropriate mechanism for
integrating
and monitoring information from multiple
sources. The middleware version covers a broad
range of
database platforms, since it can connect to a
database over the company’s network. The
database
server can be running on any type of machine or
operating system.
DataBlade Vigilert
This version is a
unique alternative to the middleware version and
has special benefits for existing users
of Informix, processing certain types of rules
that involve multiple database tables several
times faster.
This version gives Velara an advantage in the
market in being able to target specific users,
because the
profile of the typical Informix customer is that
of a technology-driven, early adopter.
Both versions streamline business processes by
reducing latency (dead time) in business
workflow,
strengthen relationships by immediately
providing customers and suppliers with relevant
information,
reduce costs by permitting enterprises to work
more efficiently and act on exceptional events
early,
before they become expensive, and increase
revenue my providing superior alerting products
and
services to customers.
Program
Source Code
It's possible that we may be able to get the
source code to Triggerman or Vigilert from the
University of Florida. The University of Florida
may want money for it, however. Here are the email
replys I received from the authors of
Triggerman/Vigilert::
From: Eric
Hanson (SQL SERVER)
[Eric.N.Hanson@microsoft.com]
Sent: Tuesday, April 21, 2009 6:39 PM
To: Langley, Scott E
Subject: RE: Triggerman Project
Hi
Scott,
This
is
a blast from the past. Back from 99-2002 I
actually started a company to sell this but I
left the company and the company eventually
failed. I don’t know where the latest source
code is, or whether you could get rights to it
from the University of Florida. The person
most likely to know is Albert Vernon (my
co-founder and a former student at UF, aev@vernon.nu).
Best
regards,
Eric
From: Albert
Vernon [aev@vernon.nu]
Sent: Wednesday, April 22, 2009 11:36 AM
To: Langley, Scott E
Subject: Re: Triggerman Project
Hi, Scott.
After our company went under, the license to the
code reverted to the University of Florida
Office of Technology Licensing. As far as
I know, it remains available for licensing from
UF OTL, assuming they haven't lost it.
If I were doing a new database alerting project,
I'd probably write something from scratch based
on the ideas in the
TriggerMan
paper or perhaps the
NigaraCQ
paper. I'd also make the fundamental
change-capture mechanism a queue instead of a
database table. There are wonderful tools
now for writing large scale systems that were
not not available to us in the 90s such as the
Erlang programming language, Amazon's Elastic
Compute Cloud, and
FreeBSD's
kqueue facility. In addition, the Vigilert
code base is in C, only runs on Windows, and has
certainly suffered software rot since it has not
been maintained since 2002.
You may also wish to look at
StreamBase.com.
Those are interesting scenarios you
described. We explored adverse event reporting
and disease surveillance as possible
applications of TriggerMan.
One reason we had difficulty in selling it
as a product is that companies who needed
alerting already had their own in-house tools
that worked just fine. I imagine that is even
more the case now, a decade later, with better
hardware and more productive programming
languages.
I don't know how illuminating the TriggerMan
source code would be. I'd recommend reading
our original paper, which I have attached.
Negotiating a license from UF OTL is time
consuming. It took me six months when I did
it. They also tried to insert many onerous
clauses wanting royalties, stock options, and
profit sharing. If you do decide to pursue it,
the person below was my contact, assuming he
still works there.
Bruce Clary
University of Florida Office of Technology
Licensing
(352) 392-8929
bclary@ufl.edu
An approach worth considering for your
organization is throwing data (or perhaps just
metadata) into a central queue and have
various programs monitor it for events of
interest. Amazon Simple Queue Service combined
with RSS feeds might be a cheap way to
accomplish your goals.
http://aws.amazon.com/sqs/
-- ScottLangley - 23 Apr
2009