Web Services


A major issue one meets when designing a software system is its complexity. Complexity stems first from the size of the system, or from the different aspects that are to be taken into account when developing it. With recent outcomes both in industry (inter-enterprise applications) and for the end-users (social networks, electronic devices and increased connected mobility), software systems get more distributed, shared, and subject to on-demand construction and change than before. Accordingly software complexity increases since several software entities constituting the systems have to be taken into account. Further, these entities do not exist independently from one another. Their interactions are an important part of the problem as they can lead both to benefits (achieving some form of collaboration or cooperation) or to major drawbacks (deadlocks, starvation or incorrect multiple access to resources, etc.).

To solve out such complexity issues, approaches based on the decomposition of a system into sub-systems can be put into practice, whether is it for design, verification, or implementation. Behind the scene of such a decomposition, lies an important concept: structuring. It has been instantiated several times in the past years with approaches based on modules [Parnas, 1972], objects/classes [Dahl and Nygaard, 1966, Meyer, 1997], software components [Szyperski, 1998], services [Papazoglou and Georgakopoulos, 2003], aspects [Filman et al., 2005] or software product lines [Pohl et al., 2005].

All the above-mentioned approaches lead to new software design processes with two distinct tasks (The terms “designing in-the-large” and “designing in-the-small” are variations inspired from the terms “programming in-the-large” and “programming in-the-small” first introduced in [DeRemer and Kron, 1976]):

• “designing in-the-small”, the design, verification, and implementation or reuse of sub-systems satisfying a subset of the system’s functionalities or corresponding to deployment units

• “designing in-the-large”, the structuring of the system as a set of sub-systems linked by dependency or interaction relations, a kind of structural blueprint of the system. In an analogy to building construction where buildings are constructed using an assembly plan for sub-parts (ground, walls, roof), such a blueprint can be referred to as the architectural plan or software architecture of the system, and the person in charge for its definition can be called a software architect.

In our recent works, we have been interested in the application of testing to composite systems with a "design-in-the-large" perspective, more precisely for Service-Oriented Architectures (SOA) and their mainstream implementation, Web Services.

Simple Web services advertise the functionalities they offer as a set of operations provided at a given port. This is defined in a Web Service Description Language (WSDL) interface [W3C, 2001]. Composite services may be implemented in a centralized way. This is orchestration, where all messages pass through the centralized composite service called orchestrator, and where other services are sub-services of the composition. Composite services may also be implemented in a distributed way. This is choreography, where services are partners and communicate in a peer-to-peer fashion. The term choreography is also used to denote a kind of composition specification, and the distributed implementation may be called distributed orchestration. Indeed, choreographies are usually implemented using several orchestrators (one for each partner service). Composite Web service often present conversations (usage protocol) which requires to take into account not only operation interfaces (WSDL) but also richer, behavioral, interfaces.


We have addressed conformance testing of service orchestrations in [IP26, IP31]. The main contributions of this work are an end-to-end and fully automated online testing technique and a symbolic approach to avoid state space explosion in formal models due to the rich XML-based data used in Web service interfaces.

Going further with composition in-the-large, conformance testing of service choreographies is addressed in [IP32]. Most works address the testing of a privileged partner link in service orchestrations. Few works support the testing of choreographies. The first contribution is an end-to-end and fully automated testing technique for choreographies. With reference to related work it does not suppose access to the code since the approach is black-box based. Further, we propose to use passive testing in order not to be intrusive with the choreography under test.


IP32 - Huu Nghia Nguyen, Pascal Poizat and Fatiha Za ̈ıdi. Passive Conformance Testing of Service Choreographies. In Proceedings of the ACM Symposium on Applied Computing (SAC 12). ACM, 2012. (to appear).

IP31 - Lina Bentakouk, Pascal Poizat, and Fatiha Za ̈ıdi. Checking the Behavioral Conformance of Web Services with Symbolic Testing and an SMT Solver. In Proceedings of the International Conference On Test and Proofs (TAP 11), volume 6706 of Lecture Notes in Computer Science, pages 33–50. Springer, 2011.

IP26 - Lina Bentakouk, Pascal Poizat, and Fatiha Za ̈ıdi. A Formal Framework for Service Orches- tration Testing based on Symbolic Transition Systems.. In Proceedings of the 21th IFIP International Conference on Testing of Communicating Systems (TESTCOM’09), volume 5826 of Lecture Notes in Computer Science, pages 16–32. Springer, 2009.

Projects linked to this line of applicatons: 

You are here Application Domains Web Services