to transfer the data to the server. This information is stored in the instance of
QoSParameters
that is passed to
RequestDataMover.
7. If the request has no output stream, the ingoingFilter is exited.
8. The target server then handles the request and a reply is returned. The reply is passed
back to the ProxyFrame via the client side API.
9. The
outgoingFilter
of
HTTPQoS
gets passed the original request and reply that has just
been returned.
10. The request associated with the reply is passed to
RequestChecker
again to determine if
the reply needs to be analysed.
11. If
RequestChecker
indicates that the reply should be analysed, an instance of
QoSParameters
is instantiated to the original
QoSParameters
instance that was set in the
ingoingFilter
. This is possible because the request was also passed to the
outgoingFilter
,
and the value of the request header, requestID can be accessed from the headers of the
request. This values is then used to retrieve the instance of
QoSParameters
from the hash
table that was populated in ingoingFilter.
12.
QoSParameters
is populated various parameters such as the time that the reply returned
and as the reply status code.
13. If the reply has an input stream associated with it,
ReplyDataMover
is called and is
passed the instance of
QoSParameters
.
ReplyDataMover
then analyses the input stream
of the reply and calculates the amount of data and the time taken to transfer the data from
the target server.
QoSParameters
is then passed to
DBQoSLogger
, which inserts the
information stored in the instance of
QoSParameters
into a local database via
DBConnection
.
14. If the reply has no input stream,
QoSParameters
is passed to
DBQoSLogger
and inserted
into a local database via
DBConnection
.
15. The instance of
QoSParameters
is then removed from the hash table and the
outgoingFilter is exited and the full reply is returned to the end user via
HTTPD
16. If an HTTP exception occurs in the
ingoingFilter
or
outgoingFilter
, the
exceptionFilter
get passed the request and HTTP exception that occurred. An instance of
QoSParameters
is instantiated with a reference to the original
QoSParameters
instance that was set in the
ingoingFilter
. This is possible because the request is also passed to the
exceptionFilter
,
%