Web sites

Tools and Technologies


InternetWhat did we do before the internet? In a very short period of time the internet has revolutionized how we get information. If you want to learn about computer performance management, there are many web sites to help you. Want to learn about queuing theory, why not take a free online course from M.I.T.? Do you need tools to help manage your systems? There are many open source software tools out there. And if you are a developer, you have access to great development tools and technologies.

We have organized these resources into the following groups:

 


EducationArticles and Educational Materials

Many web sites provide educational information on performance management. If you do a search, however, you will get results for many vendor sites as well. Here are some links to educational materials that aren't from vendors trying to sell you something.

 

 

Wikipedia

Wikipedia is a tremendous resource. Unlike print based encyclopedias, Wikipedia can keep up with the rapidly changing world. It includes many excellent articles on subjects related to computer performance management. Here are some of them:

Many of these articles contain links to additional information.

MIT Open Courseware

MIT has made many of its courses available for free on the internet. You can take the Sloan School of Management's course Queues: Theory and Applications.

Computer Capacity Planning: Strategy and Methodologies

If you are a member of the ACM, you can get a copy of this article at http://portal.acm.org/citation.cfm?id=1113487.1113488.

Books Online

Dr. Myron Hlynka of the University of Windsor has a great site on queuing theory (http://web2.uwindsor.ca/math/hlynka/queue.html). It contains a list of queuing theory books available online. It actually contains more than just queuing theory books. Check it out at http://web2.uwindsor.ca/math/hlynka/qonline.html.

Microsoft Windows Developer Center

This site has the complete MSDN library online. It contains a section on performance monitoring. Go to http://msdn.microsoft.com/en-us/library/ee663269%28VS.85%29.aspx, and expand the tree to Win32 and COM Development\Diagnostics\Performance Monitoring.

Sun Developer Network

The Sun Developer Network Site provides great information for Java developers at http://java.sun.com. There is also a great deal of information on performance. The Java Performance Documentation page is a good starting point. It has links to tutorials, white papers, and online books. To learn about JMX, take the JMX Tutorial.

 


ToolsOpen Source Tools

Open source software is great, except when its not. We've had both good and bad experiences. It all depends on the project. Having said that, here are some open source tools that are very useful for performance management. They include programs for statistical analysis, curve fitting, and modeling.

Queuing Theory Software

Dr. Myron Hlynka of the University of Windsor has a great site on queuing theory (http://web2.uwindsor.ca/math/hlynka/queue.html). The site contains a list of queuing theory software. Check it out at http://web2.uwindsor.ca/math/hlynka/qsoft.html.

Fityk

Fityk is a GUI program for curve fitting. It runs on Windows, Max OS X, and Linux. It allows fitting many different functions to your data. If you need something more powerful than Excel for curve fitting, this is it. Get it at http://www.unipress.waw.pl/fityk.

System R

System R is a very powerful statistical analysis program. It includes curve fitting capabilities It runs on Windows, Max OS, and many Unix systems. Get it a http://www.r-project.org.

Java Modeling Tools (JMT)

JMT is an open source modeling tool written in Java. It provides both network queuing models and simulation models. The queuing models lack a number of capabilities, such as priority queuing, that are included in the simulation model. Get it at http://jmt.sourceforge.net.


ProgrammerFor Developers Only

We are developers. We thought we should let you know what tools we use and like. We hope you find these links and remarks useful.

 

Java SDK

All of our current development is done in Java. We use it to create desktop programs with Swing, as well as Web based applications. If you want to develop in Java, you need the Java SDK, which is available for free at http://java.sun.com. You will also need an IDE (integrated development environment). The two most popular are Eclipse and NetBeans. We use NetBeans.

NetBeans

We're big fans of NetBeans. We find it intuitive, easy to use, and loaded with features. You can download it from http://netbeans.org.

Google Web Toolkit (GWT)

If you are a software engineer, you know that programming web pages in JavaScript is much different than conventional programming. Many of the tools we expect are just missing. Google has come up with a brilliant way to create web applications that overcomes these problems. They have created a compiler that takes real Java as its source language, and compiles it into JavaScript. This has many benefits. For one, it lets the compiler take care of browser differences. The compiler generates different JavaScript for each browser you target, which makes the generated code much more efficient. It uses the same trick to support internationalization. It compiles a different script for each browser/language combination.

GWT also implements an RPC mechanism between the web server and the browser. Your client code can make asynchronous calls to obtain Java objects from the server.

Both Eclipse and NetBeans have plug-ins to support GWT development. Very cool. Download it at http://code.google.com/webtoolkit.

Ext GWT

Ext GWT is a class library that adds a number of features to GWT. It includes additional and enhanced components that look great. It also contains data binding features.

On the down side, the documentation is poor. You will have to study the samples, and even read the source code to figure out how it all works. There is a book out on Ext GWT, but it doesn't add much. It's open source if you are developing an open source project with a license compatible with the GNU GPL license V3. Otherwise you will need to purchase a commercial license.

We like Ext GWT because it's the only component library we have found that is based on GWT. The other component libraries merely wrap an existing JavaScript library, which removes the benefits of the GWT compiler approach. Find out more at http://www.extjs.com/products/gxt.

GWTEventService

We needed a way for our applications on the web server to call-back to the browser, what has been called reverse AJAX. GWTEventService provides this capability. It uses the Comet server/push technique to send events from the server to the browser. Better yet, is uses GWT RPC for the communications with the browser. Download it from http://code.google.com/p/gwteventservice.

Google Guice

Inversion of control has become very popular. Among other things, it makes testing code much simpler. Google Guice is a Java class library that provides facilities that replace using factory methods. Download it at http://code.google.com/p/google-guice.