At IBM's Watson lab, our team
did some work in OPS5 with
the RETE algorithm.
The resulting program was called
an expert system.

The team then continued with
a new programming language,
YES/L1. Using DeRemer's LALR
work in parsing, YES/L1 was
a preprocessor to IBM's language
PL/I.
The language had extensions
for expert system rules,
and that was based on the RETE algorithm.

We IBM made YES/L1 an IBM Program
Product, their highest quality
software product category,
with name KnowledgeTool.

Our team worked with GM
to make a deployment.
We wrote several papers
and gave one at an AAAI IAAI
conference at Stanford.

The work continued with
Resource Object Data Manager (RODM).
The role of RODM was automation for
system and network monitoring
and management.

So, RODM was some active storage
that sat between (A) some target
systems in a network or server farm
and (B) some managing systems
for the target systems.

For this work, RODM permitted building
software objects. The objects
were in an inheritance hierarchy.
Each object
had fields for data and methods
with code. The intention was that
the code would be rules written in
KnowledgeTool.

The objects in RODM were dynamic
in that they could be changed, say,
roughly like files and directories
in a traditional hierarchical
file system, during execution.
There was use of

Ronald Fagin,
Jurg Nievergelt,
Nicholas Pippenger,
H. Raymond Strong,
'Extendible hashing—a fast access method for dynamic files',
"ACM Transactions on Database Systems",
ISSN 0362-5915,
Volume 4, Issue 3, September 1979,
Pages: 315 - 344.

for keeping track of the names
and Cartesian trees for
dynamic storage management.

RODM had transactional integrity
with automatic deadlock
detection and resolution.

The role of RODM was
(A) have a place to write
software for system and network
automation,
(B) have tools, infrastructure, etc.
such code needed
readily available,
(C) be able to write code
using expert system rules,
e.g., in KnowledgeTool,
(D) present to the writer of
rules and code an automatically
up to date object model
of the target systems,
(D) via the transactional integrity, etc.,
have coordination
among several rules and
several systems much as
in relational database.

The most common approach to monitoring
was use of thresholds
on variables one at a time.

Such monitoring is necessarily
essentially a continually applied
statistical hypothesis test
with null hypothesis that
the system is healthy and a
detection of a problem is
essentially the same as
rejection of that null hypothesis.

Well, to have a more powerful
test, that is, better combinations
of rates of false alarms and
missed detections, it would
be good to have the tests be
multi-dimensional, that is,
consider several variables jointly
instead of separately and independently.
So, wanted some statistical hypothesis
tests that were multi-dimensional.

Next, commonly in statistical hypothesis
testing, know the probability distribution
of the data under the null hypothesis,
but there have been tests that were
distribution-free, that is, that made
no assumptions about probability
distributions. For the work
in system monitoring and management,
with multi-dimensional data,
distribution-free tests were
essential since in practice finding the
distributions of multi-dimensional
data was hopeless.

So, needed some statistical hypothesis
tests that were both
multi-dimensional and distribution-free.
So, invented some.

The intention was that
such hypothesis tests would
commonly be better means of
problem detection than
the usual rule left hand sides, i.e.,

When CPU_busy > 90% AND
paging_rate > 100 AND

later shipped by IBM as part
of NetView system monitoring and
management automation.

An intention was that
rules written in KnowledgeTool
would run in RODM.