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, )

Download PDF
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?