Product Review: XCompress

By Peter A. Bromberg, Ph.D.
Printer - Friendly Version
Peter Bromberg
XCompress uses industry standard gzip compression to boost total bandwidth capacity -- reducing bandwidth expenses and making better use of current bandwidth resources. We have evaluated the XCompress product (it is being used on the site right now- in fact the page you are reading was sent to your browser compressed) and find it to be superior to native IIS compression for several reasons.

Prioritize Compression:

We have considerable experience with data compression over the wire - you'll find several articles on this site dealing with many aspects of compression. HTTP Compression is a fast and highly effective method for improving page response times and lowering bandwidth requirements. Most compressible transmissions — regardless of origination (i.e. XML, ASP, cgi, JSP, DHTML, HTML, java script, etc.) are typically compressed by 80% or more.

The benefits of compression with XCompress and its standardized lossless HTTP compression technology are easy to see.. XCompress reduces total bandwidth usage by about one third while improving network transmission times for compressed content by about 400% to effectively reduce capital and operating expenditures. XCompress is highly efficient – on average it only takes 2 milliseconds to compress a page. The major benefit of course is that the site visitor has a much more pleasant experience - especially if they are visiting your site over a dial-up connection.

Ease of Use:

When XCompress is installed and the license key configured, it adds a property page to every site on IIS:

All you need to do is select the MIME types you want compressed, as in the above example, and you are done! This is a major advantage over native IIS compression of application files (dynamic compression) because IIS can only work by file extension type, e.g. ".asp" , ".htm", etc. With the XCompress arrangement you can turn compression on or off for individual sites, and even enable or suppress compression on individual pages by simply adding a Response header. To illustrate the advantage of this arrangment so you can see it for yourself in realtime, I put together a frameset with two frames. Both frames have an ASP.NET page that does an XSL Transform on Shakespeare's Hamlet (the entire play) , and then sends it out to the browser. The only difference is that one of the frames has this line of code: Response.AddHeader "Compression-Control","no-compress" which tells XCompress not to compress the page.

Since seeing is believing, take a look at the results here. if you watch your browser's progress bar you'll see that the page HamletTransformnc.aspx (nc="no compression") continues to load and render long after the compressed page has been completely displayed and its scrollbar has stopped moving. You shouldn't need a degree in rocket science to figure out that this is one useful product. Decompression functionality is standard in 95% of available browsers without modifying the HTML, adding java script, or requiring a browser plug-in

Smart Compression Technology

XCompress uses patent-pending smart compression technology to ensure that end users receive optimized responses regardless of their browser type or the type of file they are requesting. XCompress delivers the right response to the browser for individual file types based on the browser’s capabilities, making reliable data transmission it's highest priority. Unlike other compression methods that can be limited by browser bugs, protocols, or file types, the XCompress smart compression technology adapts to the client.

XCompress COM Interface

XCompress is implemented in two independent pieces, an ISAPI Filter, and a COM interface. While no programming is required to implement the ISAPI filter, the COM interface allows programmers to compress specific responses and includes an uncompress method that allows designers of web services to communicate over HTTP in a compressed format from custom clients. For example, XCompress COM interface allows XML to be compressed or decompressed on the fly, regardless of the protocol. Programmers can compress XML and write that XML to disk for uncompressing when needed.

Microsoft IIS 4.0, 5.0 Integration

XCompress includes an intuitive MMC Snap-In interface that works with IIS Manager, and fully supports the compression of all ASP.NET page types.

Transparent Browser Compatibility

Obtain full functionality without client side plug-ins. XCompress’ Smart Compression Technology automatically detects browsers that cannot decompress and sends response in fully compatible HTTP standardized format.

Protocol Independent

XCompress applies compression regardless of protocol, and is not dependent on HTTP 1.0 or 1.1. This is a major advantage over native IIS compression.

Reports directly to Perfmon

XCompress has a full suite of performance counters that report benefit in real time. This can be very useful for testing and comparison purposes.

Complete programmable COM Interface

The XCompress COM interface allows full access from a variety of applications. Script based control and extreme flexibility is available. Applications are numerous: Web Services, Caching, Custom Clients, and Compression/Decompression of file formats that browsers can’t handle are just a few examples of the possibilities.

Seamless Network Support

XCompress works well with load-balancers such as Alteon, Cisco, F5 Networks and others.

Compress SSL

Y ou can apply compression before SSL Encryption to reduce CPU load and enhance SSL performance. Compress Microsoft XML 2.0 and higher

XML DataStream or SOAP can be compressed and delivered transparently to the client.

Compress Outlook Web Access (OWA) for Exchange Server

Compressing OWA lends all the benefits of compression to email. Compress attachments and all features within OWA.

You can view the XCompress Benefit Analysis page which allows you to enter any page on your site and see a realtime chart that details compression results at::

XCompress does not currently support IIS 6.0. However, support is planned once IIS 6.0 is commercially released. Compared to other compression products we've seen costing up to $1,300 per server, XCompress at $395 is quite reasonably priced, in our opinion.


IS 5.0 uses file extension to determine which content to compress. If the default settings need to be changed, administrators must modify the metabase by hand. Compression by file extension is a flawed approach because file extension does not always correlate to a single Content-Type. For example, an asp could generate a pdf file and an HTML file, but at this time, browsers have no capacity to decompress the pdf file type, but they can decompress HTML. XCompress resolves this problem by compressing by Content-Type.

IIS 5.0 only applies compression to requests originating from HTTP 1.1 enabled clients. However, HTTP version does not dictate whether the client can decompress the response, so this convention has negative results. For example, uncompressed content could be sent to clients who could have handled a compressed version. This results in slow page speed and wasted bandwidth – the very problems compression is meant to solve.

There may be instances where a web server administrator may only want to apply compression to a subset of sites on a machine. The IIS 5.0 compression feature does not allow this. If IIS 5.0 compression is activated, compression will be enabled for all sites on the machine. With XCompress, the administrator can choose which sites he wants to compress and can even select specific pages to leave uncompressed.

We're happy with XCompress, and we think you will be too. EggheadCafe has arranged for our interested visitors and members to download a supported fully functional evaluation copy of the XCompress product. To get yours, just click on the banner below.

Peter Bromberg is a C# MVP, MCP, and .NET consultant who has worked in the banking and financial industry for 20 years. He has architected and developed web - based corporate distributed application solutions since 1995, and focuses exclusively on the .NET Platform.