Jon’s tool was great at collecting data from many different namespaces: Active Directory directory service, the registry, Microsoft Windows Management Instrumentation (WMI), and others. When a customer was having a problem, a Customer Service and Support engineer asked the administrator to run the tool, and then the support engineer examined the rich information that the tool collected to try to diagnose the root cause of the customer's problem.
The tool was collecting a lot of great information, but we needed a way to automatically parse and analyze it. That's when we called on the services of Jack Bennetto, an expert in automation who knows lots about XML Path Language (XPath), a comprehensive language used for navigating through the hierarchy of an XML document. In a few weeks, Jack had developed an analysis engine that we grafted onto Jon’s collection engine. With Jack's new engine we could author a series of "rules" that would generate a message based on a given threshold. If the collected value was outside the tolerable range, a rule would "fire."
Things were going great, and we decided to run our new tool against the internal Exchange topology here at Microsoft. This did not go well. It took over 24 hours for the tool to run. That was much too long, because this tool was designed to help customers who were in the grip of an e-mail downtime nightmare. We needed a performance expert who understood how to make this tool scale better. Enter Kevin Chase, one of the finest debugging engineers you're likely to meet at Microsoft. After Kevin made his changes, our collection time for the global Exchange topology was down to two hours, and individual servers would scan in less than five minutes.
The tool was now working really well, but its analysis capabilities were limited. We needed a richer set of the rules that are applied to collected data. Fortunately, the rules for data collection and analysis were stored in an XML file that we could easily update without having to recompile the code.
After we had tried the tool at several customer sites, it became apparent that e-mail issues aren’t isolated to the Exchange Server software itself. Many times, e-mail problems occur because the underlying infrastructure, such as the operating system or name resolution scheme, isn’t working correctly. We expanded the scope of the rules to cover such dependencies. We had to look holistically at the entire ecosystem, not only at Exchange and the components that run under Exchange, but also at applications that run on top of Exchange. This is where Independent Software Vendors (ISVs), such as the antivirus vendors, were engaged to supply a set of rules for their software.
All this hard work and collaboration paid off when, in early September 2004, we released Exchange Server Best Practices Analyzer Tool v1.0 as a free download.