Service Oriented Architecture (SOA) enables a market of service providers delivering functionally equivalent services at different Quality of Service (QoS) and cost levels. This presents a unique opportunity for consumers to pick and choose services that meet their business and QoS needs. The selected services can be orchestrated in a process flow to optimize the execution of business processes in a cost-effective manner. Given a market of service providers delivering services at different QoS and cost levels, mechanisms should be devised to optimally select services at run-time to support a business process execution so that the selected services together meet end-to-end QoS and cost requirements of the business process and maximize utility for a consumer.;Finding an optimal service selection to support the execution of a business process so that a utility function of a business process is maximized subject to QoS and cost constraints is an NP-hard problem. We consider two problems related to service selection: (1) optimizing for a single QoS metric, such as average end-to-end execution time; and (2) optimizing for multiple QoS metrics, such as average end-to-end execution time, availability, and throughput, as a service selection criteria. In the first scenario, the goal is to find a set of service providers that minimize the end-to-end execution time for a business process under QoS and cost constraints. In the second scenario, we investigate the utility-based optimal service selection problem involving multiple QoS metrics, such as response time, throughput, and availability, and use a global utility function that combines these QoS metrics.;This dissertation addresses the optimal service selection problem by developing efficient optimal and heuristic techniques. For business processes of moderate complexity, the dissertation developed an efficient approach to select an optimal set without having to search the entire solution space. To address the service selection problems of complex and large business processes with many service providers per activity, we devised heuristics to obtain a near-optimal solution, whose effectiveness is very close to the optimal, but that evaluates only a small portion of the solution space.;We also included monitoring and management of quality of service and, incorporated service resilience and reconfiguration of services to business processes at run time. We computed the utility level of the running business processes at regular intervals. When the performance of a service degrades or the utility level of the running business processes drops below a certain threshold, we identify the "offending" service provider(s), re-run the service selection to select a new optimal set and replace the distressed service providers at runtime bringing back the utility level of the running business processes to an acceptable range.;The proposed methods were evaluated on a very large number of randomly generated business processes as well as experimentally on a proof-of-concept prototype that randomly generates service provider failures and performance degradation. In addition, we used statistical techniques, such as 95% confidence intervals and analysis of variance to assess the efficacy of the approach. |