JADS Limited (England)

Other software‎ > ‎

Web Traffic Manager

Introduction

The Web Traffic Manager (WTM) routes Internet traffic to multiple services based on the request. WTM allows configuration and code changes to be performed with zero down time. This enables a significant amount of flexibility when providing multiple web services on one domain.

Features

  • Route one domain name to multiple web servers (reverse proxy).
  • Load balance over multiple backend web servers.
  • Automatically reject excessive connections or requests from an IP address (DoS).
  • Make an external service appear as part of your domain.
  • Use your own SSL certificate to secure services (SSL offloading).
  • Improve performance by connection caching.
  • Marshal many client connections to few backend connections with keep-alive.
  • Provide HTTP/1.1 and SSL to older web services.
  • Add and remove backend web servers without downtime.
  • Configure redirects to other pages and servers.
  • Modify headers and content on the fly using custom filters.
  • Generate content using custom handlers (lightweight, stream level HttpServlets).
  • Create and run basic HttpServlets (more support soon).
  • Add and modify routes, filters and handlers without a restart.
  • RESTful interface for changing settings and routes.
  • Automatically retry when internal connection errors occur.
  • Use as HTTP and SSL proxy for routing internal traffic out of a firewall.
  • Support for SMTP relay and custom mail handlers.
  • Automatically phase in code changes without dropping connections.

Usage

Web Traffic Manager is distributed as a core jar file with additional jars for each protocol.

To launch, issue the following command:

java -jar wtm-core.jar -cp wtm-http.jar:wtm-smtp.jar -http 8080 -smtp 8025

This will start WTM listening for HTTP connections on port 8080 and SMTP connections on port 8025. Please note, adding a classpath after the core jar means classes can be reloaded without a restart by touching the corresponding routes or filters file or updating the configuration by internal interfaces.

Upon first launch WTM will create the following files:
  • http_routes.txt - Used to specify routes for HTTP services (based on path).
  • smtp_routes.txt - Used to specify routes for SMTP services (based on email).
  • http_filters.txt - Used to specify classes that modify requests and response data.
  • smtp_filters.txt - Used to specify classes that modify commands and actions.
  • settings.properties - Used to customise how WTM runs and the features enabled.
Routes and settings are automatically loaded and used without a restart within 5 seconds of modification.

To start as an SSL service:

java -jar -Djavax.net.ssl.keyStore=mykeystore -Djavax.net.ssl.keyStorePassword=mykeypass wtm.jar -cp wtm-http.jar:wtm-example.jar -https 8443

You will need to provide a Java key store containing your domain's certificate.

Performance

Web Traffic Manager is designed to be very fast.

Running WTM on a low-end, 2GHz dual core machine with 50 concurrent requests yields the following results:

Over 12,000 requests per second when returning small responses. (ab results)
Over 400 Mbytes/sec data transfer per second when returning large responses. (ab results)

Graphical User Interface

A web-based configuration system is now available. More details soon.

Status and Licencing

Please Contact JADS Limited.