A.Net and Java-Based System Monitoring Tool for the Web Final Presentation Capstone Group #2 – Fall /17/2005
2 Team Information Romeo Chua (lead) Aaron McDowell Amber Patel Syed Umair
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 3 Team Information(Cont.) Mentor Girish Bajaj Software Engineer Tietronix Software, Inc. ( Instructor Dr. Kwok Bun Yue Associate Professor of Computer Science – UHCL URL :
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 4 Contents Project Abstract... Umair Project Requirements... Umair Prototype Development... Umair Technologies... Umair System Design and Architecture... Romeo Project Demonstration... Aaron
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 5 Contents (Cont.) Project Timeline … Amber Team Roles … Amber Future Enhancements… Amber Conclusions … Amber References… Amber
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 6 Project Abstract Problem Monitor system performance values remotely Purpose Develop a web-based performance monitoring/gathering tool Customer Information Tietronix Software Inc.
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 7 Project Abstract(Cont.) What is performance monitoring Performance objects Performance counters Current tools −OS level : Task Manager (taskman) and Performance Monitor (perfmon) built-in Windows utilities −Commercial applications for monitoring −Require physical presence at application site
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 8 Contents Project Abstract... Umair Project Requirements... Umair Prototype Development... Umair Technologies... Umair System Design and Architecture... Romeo Project Demonstration... Aaron
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 9 Project Requirements Performance Monitor Gather system information API for other applications Low resource consumption Performance Analyzer Display aggregates of gathered data
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 10 Project Requirements (Cont.) Web User Interface −Java, Apache Struts technologies −Java-Com Bridge via.Net remote object invocation Environment −Windows 2003/2000 Server −Jboss application server
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 11 Contents Project Abstract... Umair Project Requirements... Umair Prototype Development... Umair Technologies... Umair System Design and Architecture... Romeo Project Demonstration... Aaron
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 12 Prototype Development Reason −To select development language for building the project −c# in.NET vs win32 programming Design Two identical console application which monitors same performance counter values for certain duration of time.
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 13 Prototype Development …(cont) Result and Conclusion Memory UsageCPU UsageRuntime Prototype Private Bytes Peak Private Bytes Working Set Peak Working Set Priority Kernel Time User Time Avg Win3210,008K10,280K11,996K12,124K sec 0.18 sec 10ms.NET using C# 13,024K13,172K15,004K15,072K8.40 sec 0.35 sec 10ms
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 14 Contents Project Abstract... Umair Project Requirements... Umair Prototype Development... Umair Technologies... Umair System Design and Architecture... Romeo Project Demonstration... Aaron
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 15 Technologies NET Framework 1.1 (C#) Java-Com Bridge (Jawin OSS) Java Web Applications programming (Java Struts and JBoss) XML
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 16 Contents Project Abstract... Umair Project Requirements... Umair Prototype Development... Umair Technologies... Umair System Design and Architecture... Romeo Project Demonstration... Aaron
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 17 System Design and Architecture (Cont.) Server Machine – Windows 2003 Server OS Client Machine Firewall Web Brower TieMon DLL (C#) JBoss Web App Server The Internet TieMon Web Application (Java Struts) MS.Net Framework 1.1 Inter Process Communication File Access Ethernet Network File System
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 18 System Design and Architecture (Cont.) TieMon DLL Design −Provides a list of performance counters available in the system as an XML file −Parses an XML input string containing the user list of counters −Uses the local server file system for transferring data (counter lists and results) between itself and the TieMon WebApp −Performs monitoring in a separate thread, at specified intervals for a specified total amount of time
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 19 System Design and Architecture (Cont.) TieMon DLL Design (cont.) −Stores results into an array for each performance counter instance, and dump to a file when a memory limit has been reached −Capable of providing partial results for a process that disappears −Capable of providing partial results when told to stop monitoring −Override specified interval for per-second counters.
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 20 System Design and Architecture (Cont.) TieMon DLL Classes −TieMonDotNet.cs/TieMonDotNetItf.cs Main Class that provides the functionality for system performance monitoring. Provides the interfaces for the TieMon web application to call for initialization, creating the counter list, set up the user provider counter list, and to start, cancel and get the progress of the monitoring. −TieMonResults.cs Holds the results associated with a PerformanceCounter object Provides GetSize() and DumpResults() methods
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 21 System Design and Architecture (Cont.) TieMon DLL Classes (cont.) −TieMonXmlUtils.cs Parses the user counter input list (XML file) Provides an arraylist of TieMonResults for use by the main class −TieMonFileUtils.cs Has a private constructor and provides static methods for performing simple file operations (check file existence, accessibility, and converting file contents from a file to a string)
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 22 System Design and Architecture (Cont.) TieMonDotNet Main Class Interface Details −Initialize Called to initialize the settings for the TieMon DLL. Must be called prior to other methods. Sets the directory for the results file, path to the DTD for parsing a user input string, and a memory size limit for dumping the results −CreateCounterList Creates the list of available counters in the system. Counters for the processes include PID values Written as XML into the filename and path specified as the parameter
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 23 System Design and Architecture (Cont.) TieMonDotNet Main Class Interface (cont.) −SetInputCounterList Parses the user’s list of desired counters to monitor. List is in XML format Returns an error if an invalid performance counter, or if the counter is for a process category, checks to make sure the PID and process names match. Also checks for well-formed XML input, as well validating against a DTD
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 24 System Design and Architecture (Cont.) TieMonDotNet Main Class Interface (cont.) −DoMonitoring Creates a thread to do the monitoring, and monitors at the given intervals, for the specified amount of time If the counter is a per second counter, it will override the interval provided Dumps results to the file when the amount of stored results in memory has reached the memory size limit
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 25 System Design and Architecture (Cont.) TieMonDotNet Main Class Interface (cont.) −GetProgress Returns the percent amount of work done. −CancelMonitoring Stops the monitoring thread and dumps all remaining results in memory to the dump file −IsMonitoring Returns true if the monitoring thread is running −GetWorkingDirectory Returns the directory where the DLL is being run (for debugging)
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 26 System Design and Architecture (Cont.) Implementation Issues −Passing complex objects between the DLL and Java Used simple types to pass information −Negative values in some of the results Used larger integer type (long) −Some measured counters returned zero Fixed error in using the PerformanceCounter object −Slow PerformanceCounter.NextValue() when the CreateCounterList() method is called. Maybe a.NET bug. Referenced in MS Knowledgebase
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 27 System Design and Architecture (Cont.) TieMon Web Application Design −J2EE 1.3 Compatible −Struts Framework −Interfaces with the TieMon DLL −Single User Design
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 28 System Design and Architecture (Cont.) TieMon Web Application Flow Diagram
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 29 Contents Project Abstract... Umair Project Requirements... Umair Prototype Development... Umair Technologies... Umair System Design and Architecture... Romeo Project Demonstration... Aaron
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 30 Project Demonstration For Local Server Remote Server
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 31 Contents (Cont.) Project Timeline … Amber Team Roles … Amber Future Enhancements… Amber Conclusions … Amber References… Amber
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 32 Project Timeline hed.jpg Research And Requirements Prototype and Comparison Java-Com Bridge Monitor and Web Application Integrating and Implementation
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 33 Contents (Cont.) Project Timeline … Amber Team Roles … Amber Future Enhancements… Amber Conclusions … Amber References… Amber
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 34 Team Roles Romeo Chua (Lead) −Java and.NET Development −Web Master Aaron McDowell −Java Web Applications Programming −Requirements Development
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 35 Team Roles(Cont.) Amber Patel −Java and.NET Development −Research and Design Syed Umair −Win32,.NET Development −Research and Design − Web Master
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 36 Contents (Cont.) Project Timeline … Amber Team Roles … Amber Future Enhancements… Amber Conclusions … Amber References… Amber
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 37 Future Enhancement Performance Alerter An Interactive UI Integration with other Applications Research on Counters Multi user support Derive aggregate results from base counter values
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 38 Contents (Cont.) Project Timeline … Amber Team Roles … Amber Future Enhancements… Amber Conclusions … Amber References… Amber
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 39 Conclusions Project fully met the customer requirements. Lessons learned:- −Importance of monitoring application −Adapting to constantly changing requirement −Comparing different programming languages −Java and.NET intercommunication
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 40 Contents (Cont.) Project Timeline … Amber Team Roles … Amber Future Enhancements… Amber Conclusions … Amber References… Amber
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 41 References Research Articles: M. W. Knop, P. K. Paritosh, P. A. Dinda, and J. M. Schopf. Windows performance monitoring and data reduction using watchtower and argus. Technical Report NWU-CS-01-6, Department of Computer Science, Northwestern University, June 2001 G. Sampemane, S. Pakin, A. Chien, Performance Monitoring on an HPVM Cluster, Proceedings of the 2000 Java-Com Bridge Java Struts 1.2
11/17/2005http://dcm.cl.uh.edu/c6838f5gp7Slide 42 Questions ? Thanks !