In this article, an approach is proposed to evaluate the reliability of Web services, where three kinds of Web services are discussed, they are atomic service without the structural information, structural activity based composite service which is composed from other services by using a structural activity mechanism, and BPEL flow process based composite service which composes all kinds of atomic services and activity based composite services using BPEL language in an orchestration style. Firstly, the reliability of atomic service is evaluated based on an extended UDDI model; then, the reliability of activity based composite services is evaluated using BPEL code structure analysis, the reliability of atomic service, and function transition probability; finally, the reliability of BPEL flow process based composite web service was evaluated by a recursive algorithm. Case study and experimental results show the significance of the approach.