Clouding IP LLC v. Oracle Corporation
Filing
1
COMPLAINT FOR PATENET INFRINGEMENT filed with Jury Demand against Oracle Corporation - Magistrate Consent Notice to Pltf. ( Filing fee $ 350, receipt number 311-1078455.) - filed by STEC IP LLC. (Attachments: # 1 Exhibit A Part 1 of 2, # 2 Exhibit A Part 2 of 2, # 3 Exhibit B, # 4 Exhibit C, # 5 Exhibit D, # 6 Exhibit E, # 7 Exhibit F Part 1 of 2, # 8 Exhibit F Part 2 of 2, # 9 Exhibit G Part 1 of 2, # 10 Exhibit G Part 2 of 2, # 11 Exhibit H, # 12 Exhibit I, # 13 Civil Cover Sheet)(dmp, )
EXHIBIT D
US005944839A
United States Patent
[ill
Isenberg
SYSTEM AND METHOD FOR
AUTOMATICALLY MAINTAINING A
COMPUTER SYSTEM
[54]
Patent Number:
[45]
[I91
Date of Patent:
Henri J. Isenberg, Los Angeles, Calif.
[73] Assignee: Symantec Corporation, Cupertino,
Calif.
[21] Appl. No.: 08/820,573
[22] Filed:
Mar. 19, 1997
[51] Int. C1.6 ...................................................... G06F 11/00
[52] U.S. C1. ................................. 714126; 714138; 714147;
706147
[58] Field of Search .................................. 706145, 54, 47,
706146; 3951183.02, 183.14, 183.15, 184.01,
185.01; 3641274, 274.1-274.7; 714126,
38, 39, 47, 48
~561
References Cited
U.S. PATENT DOCUMENTS
4,796,206 111989 B o s c o v e et al. ................... 3641555.01
5,455,947 1011995 Suzuki et al. ........................... 3951650
5,481,481 111996 Frey et al. ......................... 3641551.01
5,619,656 411997 Graf ................................... 3951200.11
5,809,493 911998 Ahamed et al. .......................... 206152
OTHER PUBLICATIONS
Se Young Park et al.; "OASIX: A Real-Time
Knowledge-Based System for UNIX Operations and
Administration"; 1991; pp. 389-392.
Jun Takamura; "An Expert System For Computer Operation
And User Assistance"; Aug. 1989; pp. 87-95.
R. L. Ennis et al.; A Continuous Real-Time Expert System
For Computer Operations; Jan. 1986; pp. 14-28.
L
ABSTRACT
A system and method for the automated maintenance of a
computer system. Ascheduler periodically activates sensors.
When activated, the sensors gather information about various aspects of the computer system. The sensors store this
information in a knowledge database. The knowledge database also contains cases, questions, and actions. The cases
describe potential computer problems and solutions. The
questions are used to diagnose the problems while the
actions describe steps that can be taken to solve the diagnosed problems. If the information gathered by the sensors
indicates a problem with the computer system, then the
sensors activate an artificial intelligence engine. The engine
uses the information in the knowledge database to evaluate
certain cases. If information necessary to evaluate a case is
not in the knowledge database, then the engine activates a
sensor to gather the information. As the cases are evaluated,
the confidence levels of certain other cases, questions, and
actions increase. If the confidence level of a case or question
rises above a predetermined threshold, then the engine
evaluates that case or question. If the confidence level of an
action rises above the threshold, then that action represents
the likely solution to the problem. Accordingly, the engine
activates a sensor to perform the action. If no case, question,
or action rises above the threshold, then the knowledge
database does not contain enough information to solve the
problem. In such a case, the engine saves the state of the
computer system and knowledge database. Then, a human
expert can update the database with the knowledge necessary to solve the problem.
17 Claims, 3 Drawing Sheets
I,
-
MONITOR
y o
KNOWLEDGE DB
~
SOLUTION
PERFORM
SOLUTION
YES
R"."mo"d-,'"
NO
Aug. 31,1999
Primary Examiner4ieu-Minh T. Le
Attorney, Agent, or F i r m q e n w i c k & West LLP
[571
[75] Inventor:
5,944,839
p
4
216
ADD NEW
PROBLEM TO
KNOWLEDGE DB
226
ANSWER QUESTION &
FEED ANSWER BACK
TO KNOWLEDGE DB
I
U.S. Patent
Aug. 31,1999
Sheet 1 of 3
5,944,839
SCHEDULER
110
112A
112B
112C
L
KNOWLEDGE
DB
114
Al ENGINE
116
FIGURE I
112D
U.S. Patent
Aug. 31,1999
Sheet 2 of 3
MONITOR
r
M
"
"
4
KNOWLEDGE DB
b
PERFORM
SOLUTION
218
TO GATHER?
I
1 YES
ADD NEW
PROBLEM TO
KNOWLEDGE DB
226
1 YES
ANSWER QUESTION &
FEED ANSWER BACK
TO KNOWLEDGE DB
FIGURE 2
U.S. Patent
Aug. 31,1999
Sheet 3 of 3
5,944,839
1
2
with the general operation of the computer system, including
the operating system and hardware. In addition, the sensors
act as inputs into the database.
The AI engine uses the sensor inputs to diagnose the likely
FIELD OF THE INVENTION
5 cause of the problem and determine the best solution. While
processing the problem, the AI engine may reach a point
This invention pertains in general to computer maintewhere additional data are meded. If so, the AI engine
Dance tools and in particular to a maintenance tool that
automatically repairs a computer system with little or no
requests the data
the
Or
Once the appropriate solution is determined from the data,
human intervention.
10 the AI engine activates the appropriate sensor to perform the
BACKGROUND OF THE INVENTION
repair.
A technical advantage of the present invention is that
Many strides have been made in the last few Years to
human intervention is not needed to diagnose and repair
simplify the operation of personal computers. Even today,
computer system problems,
however, most personal computers contain complicated 1s
Another technical advantage of the present invention is
software that is not understood by the typical computer user.
the reduced business cost associated within owning a perAs a result, this software is often not optimized to fully
sonal computer. Since human intervention is rarely required,
realize the power of the computer system. If the unoptimized
the cost of hiring a computer expert is avoided.
software is the operating system or other software critical to
Another technical advantage of the present invention is
the computer system, the user may suffer significant corn- 20
that the present invention is easily upgradeable. The present
puter delays or malfunctions.
invention can be programmed with new rules and sensors so
Therefore, there is a great need for technical support
that the invention can address an increasing number of
professionals who can diagnose, repair, and optimize percomputer problems.
sonal computers. However, these professionals are often
Further features and advantages of the invention will
unavailable or to expensive to call when a computer problem 25
occurs. Therefore, various companies have developed softapparent
the
description when taken in conjunction with the accompaware utilities that automate comauter svstem maintenance.
nying drawings.
Such utilities, however, rarely perform as well as a
support professional. Some utilities, such as SYSTEM
BRIEF DESCRIPTION OF THE DRAWINGS
30
AGENT by Microsoft Corp. (Redmond, Wash.), merely
FIG. 1 is a high-level block diagram illustrating the major
schedule a fixed set of tools to execute at predetermined
components of the Present invention;
intervals. This "canned" approach is limited in its flexibility
and ability to judge when to appropriately administer mainFIG. 2 is a flow chart illustrating the process by which the
tenance. Since maintenance can often take several hours, 35 present invention detects, diagnosis, and rectifies computer
moreover, a fixed schedule often performs far too much
problems; and
maintenance.
FIG. 3 is a high level block diagram of a computer system
Other utilities, such as NORTON'S SYSTEM DOCTOR
adapted to execute the present invention.
by Symantec Corp. (Cupertino, Calif.) attempt to sense
DETAILED DESCRIPTION OF THE
when computer maintenance is required. While this sensing 40
PREFERRED EMBODIMENTS
removes the necessity of a fixed schedule, it often misdiagthe
problem. As a
the
FIG. 3 illustrates a high level block diagram of a computer
applies an inappropriate solution.
system 300 adapted to execute the present invention.
There is a further need in the art for a computer utility that
Preferably, the computer system 300 is a conventional
has a flexible approach toward diagnosing and solving 45 personal computer or workstation having conventional hardcomputer system problems.
ware components such as processor 310, a memory 312, a
storage device 314, a network connection 316, a display 318,
There is a further need in the art for a computer utility that
a keyboard 320, and an input device 322, such as a mouse.
can learn from the results of prior diagnoses and solutions
The processor 310 may be a conventional processor that is
and apply that learned knowledge to future computer system
so commercially available such as a PENTIUMTM
processor by
problems.
Intel
(Santa
a
There is a further need in the art for a computer utility that
judges when it is appropriate to administer a selected course
Processor
IBM
(ArmOnk, N.Y.) Or
Inc. (Schaumburg, Ill.), an ALPHATM
processor by Digital
of maintenance.
Equipment Corporation (Maynard, Mass.), or a SPARCTM
ss processor by Sun Microsystems, Inc. (Mountain View,
SUMMARY OF THE INVENTION
Calif.). The computer system 300 can use conventional
The above and other needs are met by a computer utility
software operating environments that are commercially
that uses a set of sensors in combination with case base to
available such as MICROSOFT WINDOWSTM from
diagnose and solve computer system problems. The sensors
Microsoft Corporation (Redmond, Wash.), Apple System
are
and
executing On the 60 7.x from Apple Computer, Inc. (Cupertino, Calif.), or UNIXcomputer system. The sensors act as a monitoring system
based operating systems. A preferred embodiment of the
that monitors the operation of the computer system. When
present invention executes on a computer system 300 having
one of the sensors detects a problem, the sensor activates an
an ~
~ compatible l processor 310 executing the
t
~
artificial intelligence ("AI") engine.
MICROSOFT WINDOWS operating system. The present
The AI engine includes a large database, or case base, of 65 invention is typically stored on the storage device 314 and
knowledge held by computer experts. This knowledge
executed by the processor 310 from memory 312 as is well
includes that necessary to diagnose and correct problems
understood in the art.
SYSTEM AND METHOD FOR
AUTOMATICALLY MAINTAINING A
COMPUTER SYSTEM
5,944,839
3
4
In the following discussion, the term "computer problem"
refers to any aspect of the computer system 300 that is either
malfunctioning or not optimized. Therefore, computer problems include such things as a fragmented file on storage
device 314, an incorrect video driver, and a poorly configured memory manager.
FIG. 1 is a high-level block diagram of the major cornponents of a maintenance tool 100 according to the present
invention. FIG. 1 illustrates a scheduler 110, a number of
sensors 112a-112dj a knowledge database 114, also called a
"case base," and an artificial intelligence ("AI") engine 116.
The scheduler 110 is a software program that monitors the
system 300 for problems. The
11°
performs this monitoring by scheduling one or more of the
sensors 112 to execute at predetermined times.
The sensors 112 are software Programs that gather information from the computer system 300. There are two main
types of ~ensors
112: event Sensors and query Sensors. Event
sensors are those that sense data in response to an event. For
example, a free storage space sensor could sense every time
the free space on the storage device 314 shrinks below 10
megabytes. Query sensors, in contrast, are those that sense
data in
a query
an
a free
Vace sensor
sense and then
provide the amount of available storage space in response to
a request from another Program. A sensor 112 can sense its
data
the
Or, if
the
sensor can Prompt the user to input the required data. The
present invention preferably contains many different event
and query sensors. Each sensor 112 is responsible for
sensing a different aspect
the
system. In
addition, each sensor
can perform certain
OperatiOns
the type data it senses.
a free
'pace sensor can
in order to
more free space.
When a Sensor 112 is executed by the s~heduler
110, the
sensor 112 senses information about the computer system
300. This information is then stored in the knowledge
database 114 where it can be accessed by the A engine 116.
I
In One
the present
the
database is in the CBR Express case base format. Additional
information about the CBR Express case base format is
found in the CBR EXPRESS 2.0
SegundO,
Inference
and which is hereby incorporated by reference. Of course,
the present invention can use any knowledge database
format that supports the functions described below.
The knowledge database 114 contains ''cases" describing
computer problems and solutions. A case is evaluated by
answering a series of questions within the case. These
questions are sequenced such that answering the questions
the
problem and leads
a likely
solution.
Questions belong to one of four categories: YesiNo;
Numeric; Text; and List. YesiNo questions are those that
have Yes or No answers. Numeric questions are those having
answers that are integers. Text questions have textual
answers. Finally, List questions have answers selected from
a list of legal answers.
Each case also contains one or more actions. An action is
a statement that indicates a solution to a computer problem.
An action, however, may contain multiple steps necessary to
perform the solution. Actions are not case specific and may
be shared among multiple cases.
The cases within the knowledge database 114 are derived
from knowledge held by experts having backgrounds in
troubleshooting and maintaining computer system environments. Some areas of expertise represented in the knowledge
database include WINDOWS 95 and hardware installation.
Of course, other areas of expertise can easily be represented.
In addition, the cases 114 are customizable and easily
updated.
Each case can have a confidence value. The confidence
value of a case indicates the degree to which the tool 100
believes the case is relevant to the diagnosis of the computer
problem. Likewise, questions and actions can have confidence values. For a question, the confidence value indicates
the degree to which the tool 100 believes the question is
relevant to the diagnosis, F~~ an action, similarly, the
confidence value represents the likelihood that that action is
a solution to the computer problem,
~ h AI engine 116 is the portion of the tool 100 that
,
actually processes the cases in the knowledge database 114.
The AI engine 116 is preferably an inference engine implementing both forward and backward chaining methods for
determining possible solutions to the computer problem.
One embodiment of the present invention uses the CBR2
inference engine from Inference Corporation (El Segundo,
Calif,), However, any form of rule based AI engine, such as
an expert system or neural net, could be used.
The A engine 116 evaluates cases and adjust confidence
I
levels of other cases, questions, and actions according to
rules in the knowledge database. The rules answer questions
based on data in the knowledge database. Rules answer text
questions, for example, by matching specific words or
phrases found in the answer with particular key words in the
knowledge database. Once one or more questions have been
answered, the rules may be able to use those answers to
eliminate or answer other questions and adjust the confidence levels of other cases, actions, and questions.
The AI engine 116 uses the information supplied by the
sensors 112 to evaluate the cases, If needed information has
not already been collected by the sensors 112, the AI engine
116 ,ill ,,tivat, the particular sensor capable of gathering
the needed information. That sensor 112 will gather the
information from the computer system 300 or computer user
and place it in the knowledge database 114,
FIG, 2 is a flow chart illustrating the process by which the
present invention detects, identifies, and solves computer
problems. At step 210, the scheduler monitors the computer
system 300,
predetermined time intervals, the scheduler
110 activates various sensors 112 to determine the state of
the computer system 300 and store relevant data in the
knowledge database 114. If a problem is detected by one of
the sensors (step 212), then the sensor 112 triggers the AI
engine 116 to begin solving the problem,
lo
15
20
25
3002
30
35
40
45
55
60
65
At step 214, the A engine 116 runs the problem through
I
the knowledge database 114. This step involves evaluating a
series of cases and questions. If the data necessary to
evaluate a question are not known, then the AI engine 116
activates an appropriate query sensor to retrieve the data
necessary to complete the evaluation. The result of each
evaluation affects the confidence levels of certain other
cases, questions, and actions. If the confidence level of a
certain action rises above a predetermined threshold, say
85%, then that action is a likely solution (step 216).
Accordingly, the AI engine 116 directs the appropriate
sensor 112 to perform the action (step 218). If the sensor
cannot perform the action by itself, the sensor 112 will tell
the computer user to perform the action.
If no action rises above the threshold, then the A engine
I
116 evaluates the case or question having the highest confidence level (step 220). If more data is necessary to evaluate
the case or question (step 222), the A engine 116 directs the
I
appropriate sensor to gather the data (step 224). At step 228,
the A engine 116 evaluates the question or case and then
I
returns to step 214.
If the tool 100 has gathered all possible data and still does
not have a solution to the computer problem, then the A
I
5,944,839
5
6
engine 116 has failed to find a solution in the knowledge
determining, by the AI engine, a likely solution to the
database 114. This failure represents computer problem
problem from the gathered information; and
which is new to the tool. Accordingly, the tool 100 preferwhen a likely solution cannot be determined, saving a
ably saves the state of the computer system 300 and knowlstate of the computer system.
edge database 114 to a location where the state and database 5
7. The method of claim 6, wherein the selected ones of the
can be examined by a human computer expert (step 226).
plurality of sensors gather information by requesting input
Presumably, the human expert can then solve the computer
from a 'Omputer
user'
problem and add the solution to the knowledge database 114.
8. The method of claim 6, wherein the determining step
The invention has been described with reference to parcomprises the substeps of:
ticular preferred embodiments, but variations within the lo
inferring the likely solution to the problem from
spirit and scope of the invention will occur to those skilled
questions, actions, and rules contained in a knowledge
in the art.
database; wherein
What is claimed is:
the AI engine utilizes the selected ones of the plurality of
1,~
tfor automaticallylmaintaining a computer system
~
~
sensors to gather information when the knowledge
having a processor and a memory, the tool comprising:
database lacks information necessary to answer a quesa knowledge database stored in the memory and holding l5
tion.
a plurality of cases describing potential computer prob9. The method of claim 8, wherein the AI engine uses
lems and corresponding likely solutions;
forward chaining to infer the solution.
a plurality of sensors stored in the memory and executing
10. The method of claim 8, wherein the AI engine uses
on the processor and adapted for gathering data about 20 backward chaining to infer the solution,
the computer system, storing the data in the knowledge
11, The method of claim 6, wherein the AI engine is a
database, and detecting whether a computer problem
case-based inference engine,
exists from the data and the plurality of cases; and
12. The method of claim 6, further comprising the step of:
an A engine stored in the memory and executing on the
I
applying, by selected ones of the plurality of sensors, the
processor in response to detection of a computer prob- 25
likely solution to the computer system,
lem and utilizing the plurality of cases to determine a
13, ~h~ method of claim 12, wherein the applying step
likely solution to the detected computer problem,
comprises the substep of:
wherein
requesting that a computer user apply the likely solution.
when the
database lacks data necessary
14. The method of claim 6, wherein the detecting step
determine a likely solution to the computer problem, 30 comprises the steps of:
the AI engine activates a particular
in the
periodically activating selected ones of the plurality of
plurality of sensors to gather the necessary data and
sensors to gather information about the computer sysstore the data in the knowledge database, and
tem; and
wherein
the
determine whether a problem
when the knowledge database does not describe a likely 35
exists.
solution to the computer problem, the AI engine
saves the gathered data in the knowledge database as
A program
device
by a 'Omputer
system, the program storage device tangibly embodying a
a new case.
program of instructions executable by the computer system
2. The tool of claim 1, wherein each case comprises:
to perform method steps for automatically maintaining the
at least one question asking about a particular aspect of 40
system, the program storage device holding
the computer system that can be answered by the data
instructions for:
gathered by the plurality of sensors; and
sensing information about the computer system by at least
at least one action describing a likely solution to a
one sensor;
potential 'Omputer problem
in the
45
determining whether a computer problem exists from the
database.
sensed information;
3. The tool of claim 2, wherein the AI engine executes a
a plurality cases with the sensed
particular sensor of the plurality of sensors to carry out a
to determine whether a likely solution to the computer
likely solution to the computer problem detected by the
plurality of sensors.
problem exists;
when additional information is needed to determine a
4. The tool of claim 3, wherein the particular sensor 50
requests that a computer user carry out the likely solution to
likely solution to the computer problem, activating the
the computer problem.
at least one sensor to sense the additional information;
5. The tool of claim 1, wherein first selected ones of the
and
plurality of sensors gather data about the 'Omputer 'ystem
when a likely solution to the computer problem does not
by observing the computer system and second selected ones ss
saving the sensed information as a new case of
of the plurality of sensors gather data about the computer
the plurality of cases.
system by requesting data from a computer user.
device of
wherein the
16. The program
6, Amethod of optimizing a computer system, the method
at least one sensor senses information about the computer
comprising the steps of:
system by requesting information from a computer user.
detecting a problem in the computer system;
60
17. The program storage device of claim 15, wherein the
activating an AI engine in response to the problem detecsensing step comprises the substep of:
tion;
periodically activating the at least one sensor to gather
information about the computer system.
utilizing, by the AI engine, selected ones of a plurality of
sensors to gather information about the computer sys* * * * *
tem;
A
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?