Service oriented applications

Web Services (WS) technology is the basis for the development of Service Oriented Architectures (SOA). These architectures are increasingly widespread on the Net and enable developers to implement semi-critical planetary applications. Such applications are based on the notion of service and its attached contract. The contract links a client and a service provider. In this kind of applications, application developers look at Web Services as COTS (Commercial Off-The- Shelf) components, consequently they ignore their implementation and their behaviour in the presence of faults. 

Our approach proposes the notion of Specific Fault Tolerance Connectors (SFTC) to implement dependable applications out of unreliable Web Services. The connectors intercept client-provider requests and implement filtering, error detection techniques (e.g. runtime assertions) together with recovery mechanisms that are triggered when the WS does not satisfy anymore the dependability specifications. The originality of this approach relies on using an interesting feature of the Web that is the inherent redundancy of services. To take advantage of this, we define the concept of Abstract Web Services (AWS) to implement recovery strategies using equivalent services. Thus, “connectors” and “AWS” allow dependability mechanisms to be defined on a case-by-case basis for a given WS usage and possibly dynamically changed according to the needs.  

Two specific techniques and tools have been designed and implemented to help developers of Services Oriented Architectures: 

1) A domain specific language named DeWeL (DEpendable Web services Language) describing the dependability features of a connector. This language is devoted to the realization of connectors. It imposes strong restrictions enforced by standards for critical railway and avionics software in order to reduce software development faults. 

2) A support infrastructure named IWSD (Infrastructure for Web Services Dependability) to dynamically manage and run connectors in real applications. This platform is implemented in duplex mode to tolerate crash faults and provides core services. In particular, it provides support to run connectors and get information on the non-functional and operational behaviour of the targeted Web Services. This information is essential to help developers of connector to adjust their fault-tolerance actions to specific application needs. 

Approximately two hundred connectors have been implemented in order to realize performance and robustness tests of the language and the platform. These experiments show the interest of our approach to deploy fault-tolerant service oriented applications using AWS.