Verification and Validation of Web-Services

Web-services run the world today! They provide location and platform transparency, portability, scalability, usability. But they also have problems:

They are distributed.

They are subject to unpredictable usage patterns.

They expose your data to security threats.

Yesterday there was WSDL. Today there's REST. Tomorrow, there's surely going to be something else.

Your web-service works fine with 20 labmates simultaneously logged in. What about 200? 2000? 2 million?

All this takes the problem of engineering web-services to a very different level. But before all this, how do you specify your web-services? How do you design web-services for scalability, security, maintainability, portability, verifiability? How do you verify the design against the specification. What about testing? How do you test performance, load capacity, availability?

In short web-services present to software engineering researchers a wide-open field for innovations with its own novel characteristics and quirks.