Understanding the business (interaction) protocol supported by a service is very important for both clients and service providers: It allows developers to know how to write clients that interact with a service, and it allows development tools and runtime middleware to deliver functionalities that simplifies the service development life cycle. It also greatly facilitates the monitoring, visualization, and aggregation of interaction data. This paper presents an approach for discovering protocol models from real-world service interaction logs. It presents a novel discovery algorithm, which is widely applicable, robust to different kinds of imperfections often present in real-world service logs, and able to derive protocols of small sizes targeted for human understanding. As inferring the most precise and concise model is not always possible from imperfect service logs using purely automated method, the paper presents a novel method for user-driven refinement of the discovered protocol models. The proposed approach has been implemented and experimental results show its viability on both synthetic and real-world data sets.Index Terms-Web services, business protocols, noise handling in service logs, protocol discovery, protocol refinement.