HomeDigital EditionSys-Con RadioSearch Web Services Cd
B2B Beginning WS Business Process Management Case Studies Content Management Distributing Computing e-Business Electronic Data Interchange Enterprise Industry Insight Integration Interviews Java & Web Services .NET Portal Product Reviews Scalability & Performance Security SOAP Source Code UDDI Wireless WS Standards WS Tips & Techniques WSDL WS Editorials XML

With Web services becoming more prevalent in organizations, keeping tabs on performance, analyzing problems, and managing overall quality of service is as important as ever. One tool that provides a monitoring and analysis solution specifically for Web services is SIFT 1.5 by Service Integrity.

SIFT is designed to seamlessly integrate with existing Web services to provide extensive runtime statistics. At the time of this writing, the product was only available for applications built with Microsoft .NET; however, versions that will monitor Java Web services from various application-server vendors are now available.

Application Architecture
There are three main components to the SIFT application: Application Modules, Stream Analyzer, and Stream Sensors. The Application Modules provide administrators with a GUI interface to collect, manipulate, and analyze a wealth of performance-related data for all available services. The Stream Analyzer inspects XML data on the wire as it passes from client to server. Finally, the Stream Sensors are components installed into IIS (and other application servers as future versions are completed) that intercept data necessary for the SIFT application.

Using SIFT
SIFT installation is straightforward and easy. SIFT requires Microsoft Windows 2000 SP3 or Windows XP Pro SP1 or higher, 128 Mb of RAM, 10 or more Mb of hard disk space for logging, the .NET Framework 1.0 SP2, IIS with ASP.NET support, and the Visual J# Redistributable package 1.0. For the server side, the installation procedure creates a new Web service on the host machine that the SIFT GUI communicates with. This service hooks into IIS to collect runtime statistics on all services running on the machine. The client install provides the SIFT Console for administrators to perform all analytical and monitoring tasks. It should be noted that the console need not reside on the machine that is being monitored.

Setting Up
When the SIFT Console is launched, the user is presented with an option to add remote servers to monitor. Once a server address is provided, a list of available Web Services is presented. Any number of services may be selected for monitoring. For this review, I've created a simple Web service to be monitored that displays summary info and line item data in a basic financial ledger.

Figure 1 shows the Services Group of the SIFT Console that displays all configured host machines. Under each machine, the list of services to be monitored is shown and the rules for generating the logs may be edited.

Logging rules define the file size, rollover frequency, and archiving constraints; and the fields to be captured. In addition to the set of fields provided by SIFT, custom field specific to the services monitored may be added. For example, if an error condition is encountered in business logic, an application-specific error message might be sent to the calling client. A custom field may be defined in SIFT to locate elements within generated error messages to track the frequency of the business error. Once the services to be monitored and all logging rules have been set up, SIFT is ready to go in its default state.

Collecting Data
The Dashboard group in the SIFT Console provides graphing capabilities for viewing archived and real-time performance information. By default, SIFT monitors a host's average response time, the amount of traffic, and the total operations for all hosts. Graphs and charts may be organized into individual dashboards to group related information cleanly.

Custom graphs provide greater insight into the executing services. SIFT provides a wizard interface to construct graphs from any of the logging fields configured in the Services group. Data may be presented in either a time-based or metric versus metric graph. Time-based graphs present data as a line chart while metric versus metric graphs may be line charts, pie charts or bar graphs (see Figure 2).

Within each chart, up to eight series may be created, each assigned to a unique variable in the log file. In the metrics versus metrics charts, data represented by each variable may be aggregated using a standard set of functions including Sum, Average, Count, Maximum, Minimum, and Standard Deviation. Data may be further focused by adding filters to the values in the log fields graphed. Values may be constrained by the top 10 or top 25, or a Regular Expression; or they may be broken up into numeric ranges to produce a histogram. Once the charts are set up, they may be toggled to collect live data at a configurable interval or to look at a set of frozen historical data.

Reporting and Analysis
SIFT provides three types of reports that may be generated for statistical analysis:

  • Performance: Indicates the number of requests the system serviced and the response times for those requests
  • Traffic: Presents the number of bytes transferred to and from one or more hosts
  • Usage: Reports on the total number of hits a particular Web service received

    Each report may be configured to look at a specific time interval.

    Events and Notification
    In addition to providing analytical and performance monitoring capabilities, SIFT includes functionality to create and send SNMP traps. Created in the Events group, Alerts may be configured to send SNMP traps based on constraints established for metrics within a service log. They may be set up for four metrics:

  • Average response time: The average response times for all requests over a minute
  • Error rate: The percentage of the total number of requests over a minute that produced an error
  • Operation count: The number of operations that occurred over a minute
  • Total bytes transferred: The total amount of data transferred over a minute

    Setting up an alert involves establishing the minimum and maximum value thresholds for a log metric and the number of consecutive violations against those thresholds. To assist the administrator in determining the appropriate constraints for an alert, SIFT provides a graphical representation of historical data. Highlighted in the display are the boundaries of the alert's data thresholds. As the minimum and maximum values are adjusted, the display updates the highlighted range and displays the total number of alerts that would be generated from the current settings. Once the minimum and maximum

    values are set, the count of consecutive violations must be specified. When complete, SIFT will create and send SNMP traps whenever the monitored Web service executes outside of the boundaries configured in the Alert item.

    Summary
    Web services continue to permeate throughout organizations to expose business logic to client systems. More and more services are being exposed across multiple physical systems, thus enhancing the need for effective monitoring and analysis. Service Integrity's SIFT provides a strong analytical tool geared specifically to Web services to assist administrators in this task.

    Company Information
    Service Integrity
    199 Wells Avenue, Suite 107
    Newton, MA 02459
    617-965-0281
    e-mail: sales@serviceintegrity.com

    Licensing Information
    $2000/server
    $500/developer seat

    Requirements
    Windows 2000 SP3, Windows X Pro SP1, or higher
    128 Mb RAM; 10 or more MB hard disk space
    .NET Frameword 1.0 SP@, IIS with ASP.NET support
    Visual j# Redistributable package 1.0

    Author Bio
    Brian R. Barbash is the product review editor for Web Services Journal. He is a consultant for the Consulting Group of Computer Sciences Corporation, where he specializes in application architecture and development, business and technical analysis, and Web design. bbarbash@sys-con.com

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.

      E-mail: info@sys-con.com

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.