Visualizing Service Oriented Architecture in .NET

Both the size and complexity of systems based on the more and more popular Service Oriented Architechtures (SOA) are dynamically increasing. To see understand these systems is a serious engineering task for everyone, even for the designers. The aim of my thesis is to help users without any special knowledge to develop an insight into an arbitrary SOA system.

The final program developed for this purpose has two main parts:

The first part of the system integrates into the system that we are about to analyse, thus it is able to automatically send information about its inner state. This integration is based on a simple interface, which is not modifying the operation of the SOA system. It does not affect the source code of the service, it only creates an event after a service call and before the response. In this manner forwarding the information regarding the state of the system is unnoticed.

The other part of the program is a graphical user interface, which is able to present the stored SOA data from a database. There we can visualise the services of the system, the computer which they are deployed on, and the connections between these two and the data in detail. The system is represented as a graph, where the services and computers are the vertices and the connections between them are the edges.

In addition to this hierarchical but static view, this program is able to animate the message flow of the system. So we can watch how the SOA system solves the task as an animation. We can follow the calls and responses of each services played continuously or step by step.