Management and workflow collaboration software systems are used by organizations to maintain the efficiency of workforces. Among other things, these systems, herein referred to as enterprise systems, allow employees to communicate, obtain information, requisition products and services, generate documents, and perform online training. Management systems may also connect portions of an organization that are separated geographically. As a result, management systems are often spread across multiple servers coupled to the network. The distributed nature of management systems along with the requirement that they perform numerous operations simultaneously makes them very large and complex.
Adding to the complexity of management systems is the fact that many of these systems have evolved over time. This evolution has largely been driven by customer needs and has resulted in rather basic management systems evolving into the large, complex ones predominant today. In addition, users must be able to write their own applications to extract maximum utility from management systems. The combination of old/new software executable instructions and customer developed software instructions may produce software environments that are difficult to troubleshoot. For example, an enterprise system may be executing hundreds or thousands of software agents as a matter of normal operation. A software agent as used herein refers to any self-contained potentially adaptive software application or an executable sequence of instructions, typically written by an end user. Software agents can be short lived, i.e. having lifetimes of less than a second, or can be long-lived having lifetimes measured in hours or days. Software agents may need to operate according to a schedule. And, if a particular agent is not operating at the appropriate time, it may be due to either a problem with the scheduled agent, a problem with one of the agents currently running, or a problem with processes that schedule agents. In addition, users can write agents that have infinite loops or run too long and consume too many resources. Typically, identifying the exact cause of late agents is problematic.
Systems and methods for monitoring agent activity may not easily identify problematic agents because there is no apriori mechanism for identifying when an agent may become problematic. Furthermore, existing tools may not isolate a particular, problematic agent.
There exists a need for systems and methods that identify and monitor agents that may become problematic before they actually cause a problem. In addition, there is a need for identifying and rank ordering agents that are causing problems so that system resources can be adaptively managed.