Thursday, May 16, 2013

Meteorite: Analyze the impact of changing a service contract

You have a web service which is used by many, but you need to change something in the web service contract. The technical contract is described by a WSDL and a number of imported, reused XML schemas. What is the impact of your change to the technical contract?

This seemingly simple question can be quite difficult to answer. A heavily reused XML element, buried deep down in the XML schemas, can have an enormous potential impact on the contract. Even with tiny, apparently harmless additions like a new optional attribute, the users of the web service may have to modify their web service client code.

In order to assess the impact correctly, we need to know all web service components that somehow depend on the component that we intend to change. It is not surprising that this dependency graph is, well, a graph. It is not a simple tree structure.

Most XML is shown top-down as a tree structure. But for an impact analysis of a change, we need to climb the "tree" from some leaf down the trunk.

In order to facilitate the process of impact analysis, we built a free on-line web application, based on a graph database, which does exactly that: find the impact graph of a proposed change.

You can find the application here: https://meteorite.archimiddle.com

You can upload WSDL and XML schema files, as a single zip archive, even if you only have a single file, then navigate to - or search for - the item you want to calculate the impact graph for. You can then view the impact graph visually, or textually as a list of impact paths. Try it!

(The tool uses HTML5 for the user interface, an embedded Neo4J graph database, and graphviz to visualize the impact graph.)