SHIGA Requirements Document 10-19-2001 1) Monitor network sockets for availability 2) Monitor sockets for specific established protocols. Enable a flexible framework so that future, additional, yet-to-be-determined protocols can be monitored. 3) Have two modes, A) standalone, and B) cooperative (working in conjunction with other instances running on other machines that are part of the same distributed application) 4) Notification and logging of events 5) Application must be configurable via XML files 6) Port scanner module 7) Configurable socket monitoring intervals (frequency). 8) "Monitoring" consists of specifying a "monitor" (perform a test with an expected positive or negative result), assigning an "event" based on the result of the test, and taking an "action" based on the event. 9) Must be 100% pure Java. Seamless portability across Windows, Solaris, and Linux. 10) Performance, such as monitoring frequency must be linearly scalable to available system resources. 11) Must be configurable via a GUI 12) GUI must provide visual representation of monitoring status / results (e.g. cool flashing lights, graphs) 13) GUI is mainly for standalone mode, whereas the XML files are mainly for cooperative mode 14) When in cooperative mode instances of this app running in different VMs or physical machines can be linked or chained together to monitor a large distributed application 15) Event actions will consist of emails and paging, but will allow for others as they come up 16) A cooperative deployment can be remotely monitored via a "control port"