A fundamental promise of service oriented architecture (SOA) lies in the ease of integrating sharable information, processes, and other resources through interactions among the shared components that are modeled as web services. It is expected that not only the participating services are complex and have observable states, but the number of interacting services may be also large. Prior work on choreographies (conversation protocols) all focuses on specifying how the interacting web services should behave globally. Studies have shown that the relationships between global and local specifications of service interactions could be rather intricate. In this paper, we formulate a framework consisting of logical and implementation levels. We survey and discuss the technical problems and known results concerning service design, analysis and verification in this framework.