As the use of web services is growing, there is an increasing demand for dependability. In this paper we intend to introduce various offered solutions for dependable web services. The existing solutions are divided into two categories: fault tolerance techniques, such as active and passive replications, and the use of design diversity. The main contribution of this paper is the use of design diversity techniques and WS-BPEL, which would result in proposing a useful and flexible architecture for dependable web services. The proposed architecture has been used as the basis of a design pattern for dependable web services, called D3WS. We have implemented the proposed architecture in a prototype application using N-version programming (NVP). We have also modeled the architecture using stochastic reward nets (SRNs) for further evaluation of dependability measures.