Automatically composing Web services to form processes in the context of service-oriented architectures has attracted significant research. Prevalent approaches for automatically composing Web services predominantly utilize planning techniques to achieve the composition. However, classical planning based approaches face the following challenges: (i) difficulty in modeling the uncertainty of Web service invocations, (ii) inability to optimize the composition using non-functional parameters, and (iii) difficulty in scaling efficiently to large compositions. In order to address these issues, we present a hierarchical framework for logically composing Web services, which we call Haley. In comparison to classical planners, Haley utilizes decision-theoretic planning that is able to model and reason with the uncertainty inherent in Web service invocations and provides an expected cost-based optimization. Haley uses symbolic planning techniques that operate directly on first-order logic based representations of the state space to obtain the compositions. Consequently, it supports automated elicitation of the corresponding planning problem from Web service descriptions and produces a domain representation that is more compact than that of classical planners. Furthermore, it promotes scalability by exploiting the natural hierarchy found in real-world processes. Due to the limitations of the existing approaches and the complexity of the Web service composition problem, few implemented tools exist, although many approaches have been proposed in the literature. We have implemented Haley and provided a comprehensive tool suite for composing Web services. The suite operates on Web services described using well-known languages such as SAWSDL. It provides process designers with an intuitive interface to specify composition requirements, goals and a hierarchical decomposition if available, and automatically generates BPEL compositions while hiding the complexity of the planning and of BPEL from users.