Thursday, June 29, 2006

Testing, modeling, and simulation of large-scale service-oriented systems

When many enterprises transfer to web services, large-scale intra- and inter-organization service-oriented systems are emerging. Compared to software systems such as stand-alone desktop applications and multi-tier web applications, we almost have no experience about testing large-scale service-oriented systems. A new level of complexity arises from the scale, open, and dynamics of such distributed systems.

When a service-oriented application is deployed, we expect that most aspects of its behavior are by design. However, when these applications are integrated to form large-scale systems, we have no confidence about how the whole system will work based on the knowledge of each application that could be very limited if the integrations are inter-organization. Service-oriented systems are open: A new application following the service contracts can join in and leave the system anytime. The dynamics of these systems are not just reflected on their scales, but also the structures. An approach to elicit knowledge for designing and managing such systems is modeling and simulation.

Frank Cohen writes an excellent article on testing SOA . The purpose of testing is more focused on performance and scalability rather than functionality. Werner Vogels has two posts on scalability and performance that help to understand these terms in the context of distributed systems.