sent to the server and the
outgoingFilter
is called when a reply is returned from the server. If
an exception occurs in
ingoingFilter
or
outgoingFilter
, an exception is caught and the
exceptionFilter
is called. The use of
HTTPQoS
within Jigsaw for a typical HTTP request is
new presented.
4.4.3 Operation of the Jigsaw Proxy and the HTTPQoS filter
The use of the Jigsaw proxy with the HTTPQoS filter occurs as follows for a typical HTTP
request.
1. The end user's browser is configured to pass all HTTP requests via the local proxy.
When the end user enters a URL in their web browser, the request is passed to the
HTTPD
, which passed the request to the ProxyFrame.
2. The ProxyFrame then uses the HTTP client side API to make the request to the target
server. Any requests that are passed to the client side API will use the
HTTPQoS
filter.
For the request, the
ingoingFilter
method of
HTTPQoS
gets called and it's passed the
full request object.
3. The request is passed to
RequestChecker
, which determines if the request needs to be
monitored.
RequestChecker
examines the request's URL and method and if there is a
mapping in any of the SLAs that corresponds to the request URL and method, the
request should be monitored.
4. Assuming the request should be monitored, an instance of
QoSParameters
is created. A
unique identifier for the request is generated and assigned to a request header called
requestID
. Various data relating to the request is inserted into the instance of
QoSParameters
.
5. The instance of
QoSParameters
is then inserted into a hash table indexed by the
requestID so that the instance of
QoSParameters
can be referenced later when the reply
is received.
6. If the request has an output stream associated with it,
RequestDataMover
is called and is
passed the instance of
QoSParameters
. It then analyses the output stream of the request.
RequestDataMover
calculates the amount of data in the output stream and the time taken
$