As organizations move towards adopting a service oriented architecture that permits the coexistence of multiple technology environments, an increasing number of applications will be developed through the assembly of existing software components with standard web service interfaces. These components with web service interfaces may be available in-house, or may be supplied or hosted by external vendors. The use of multiple services, possibly utilizing different technologies, providers, locations, and sources, has implications for the end-to-end reliability of these applications to support a business process. Selecting the best service for individual tasks in a business process does not guarantee the most effective overall solution, particularly if criteria other than functional characteristics are employed. This paper examines reliability issues associated with applications developed within service oriented architecture. It develops a measure for deriving end-to-end application reliability, and develops a model to help select appropriate services for tasks in the business process which accommodate the redundant and overlapping functionality of available services and planned redundancy in task support to satisfy the reliability requirement of the resulting application. A genetic algorithm approach is adopted to select promising services to assemble the application using end-to-end reliability as the criterion of interest. An application to a real-world business process illustrates the effectiveness of the approach.