HTTP Tracing

This pages contains all useful information regarding the HTTP tracing and gives a general overview of the progress in this area.

Topic

The Invocation Sequence Sensor is developed to trace transactions(use cases) in an distributed environment consistent of multiple parties (e.g. DB-Servers, Java, Web Servers) that communicate via different protocols (e.g. COBRA, RMI, HTTP).
In this subproject the capabilities of tracing invocations through HTTP are explored to get an understanding of the possible difficulties and problems in tracing transactions over multiple parties.

Approach

The first goal is to implement the transmission of an transaction-ID in a basic web service so that the thread executing the service can be recognized.

To achieve that the following steps will be taken:

  1. Implementation of a basic web service (DONE)
  2. Researching and implementing the ID transmission (DONE)
  3. Researching and implementing a way to inject the ID transmission via instrumentation(In Progress)
  4. Implementing sensors for receiving the HTTP communication trace. (In Progress)
  5. Creating test cases to assure transparency (optional since HTTP header does not block the execution)

Implementation of a basic web service

A basic web service was implemented based on a on-line tutorial (link), to refresh the understanding of web services.

Researching and implementing the ID transmission

Further research for better understanding of HTTP and web components.
A simple HTTP client and server was implemented using basic Java libraries (java.net.HttpURLConnection and com.sun.net.httpserver).
The client and server was extended to transmit the a additional ID back and forward.

Researching and implementing a way to inject the ID transmission via instrumentation

To realize HTTP communication tracing, each side (sender and receiver) has to be instrumented and modified apropietly. This can be a difficult task because of the number of different solutions using HTTP communication.
To figure out a good instrumentation point (the group of used classes to modify), various implementations will be reviewed regarding their modularity and usage of common libraries.
In case that there will be no acceptable common instrumentation approach, separate instrumentation points will be addressed for each analyzed web solution.


Among server implementations the most popular will be analyzed:

And among client-side software and frameworks:

  • Apache HTTP Components (In Progress)
  • ...

The next step is to implement sensors to receive the communication trace.