Google Summer of Code 2010


Nilupa Bandara


Student Major

Software Engineering

Student Degree

Masters Degree


Universidad Politécnica de Madrid

Assigned Mentor

Amila Suriarachchi <amilas AT apache DOT org>

Project Title

Distributed TCP Monitor for SOA Developers


Debugging a complex, composite, multi-hop SOA application is not an easy task. In such complex environments a tool which provides the ability to isolate what is happening when one injects a specific input to a SOA environment with different levels of details is extremely valuable. This project proposes an extensible tool for debugging/testing SOA applications which provides multiple views of message interactions in a SOA environment for a user-specified input.

Detailed Description:

Debugging a complex, composite, multi-party SOA application is not an easy task. You may not only have to capture messages that are routing through different nodes, but also to capture the messages which are generated as a result of subsequent implicit Web service invocations at different hops, plus some means of correlating them together.

One way of doing is to annotate a message with some special header (which could be a SOAP header or HTTP header) and inject it to a SOA environment. As the message passes through each node, some interceptors (which could be a Axis module, JAX-WS handler or AspectJ aspect) will be activated and start sending logs to central repository. Such logs will contain some metadata which is derived from the annotation of received messages hence can be easily correlated.

Subsequent implicit Web services invocations initiated by the primary input at different nodes will also get annotated hence will enable the interceptors in nodes which receive inputs of those implicit Web service invocations. In other words, the annotation is propagated like a chain-reaction enabling the interceptor at each node in the topology of the message flow to start sending message logs with some information for correlation.

A GUI client can be used as the viewer of the repository of log messages which shows the topology, properties of individual messages etc. which allows the SOA developer to know what exactly happened under the hood in their SOA applications. Further the SOA developers will be able to start viewing execution details such as logs related to JDBC query execution,JMS messaging etc by enabling few more interceptors to have an in-depth understanding of what exactly happened at a particular node(s). This project propose such a tool to test/debug SOA applications during development, testing stages.

Distributed TCP Monitor Architecture

Project Features


Additional Information

Project Schedule

April 26 - May 3

Try to gather more detail knowledge on the technologies that is used for this project

May 4 – May 24

Establish the general framework.

May 25 – July 12

Build the generic frame work.

July 13 – July 16

Reviews with the mentor(s) on what I've accomplished so far. Implement refinements if necessary.

July 17 – August 8

Build a set of Interceptors which log messages and propagate the debug context.

August 9 – August 16

Write user guide, improving code documentation


Amila Suriarachchi <amilas AT apache DOT org>


Andreas Veithen <veithen AT apache DOT org>

Srinath Perera <hemapani AT apache DOT org>


I am a second year masters student at Universidad Politécnica de Madrid specializing in Software Engineering. I did my bachelors at University of Moratuwa which is the leading technical university of the country with field specialization in Computer Science and Engineering. After graduation I joined software vendor company which develops software related to travel industry for which I worked for three years before being awarded a European Union scholarship to purse a masters course in Europe.

I am familiar with Java and Java related technologies such as Jakarta BSF, JDBC, Spring, OSGI and familiar with Web services frameworks such as Axis2. This project is a challenging but an interesting one. I am determined to put all my efforts, work hard on this project and make it a success.