When we use web service, we should add it in the web reference and then call its methods statically. This way of calling web services has lots of limitations. In order to take maximum advantage of the flexibility and power of Web services, the user must be able to dynamically discover and invoke a Web service. We need to dynamically discover and invoke the service because the information returned from web services can be used by heterogeneous applications which are executed on different machines. As our business world is dynamic and heterogeneous, a client often needs to invoke an unfamiliar web service at run time. However, current web services technology pays little attention to this issue. In this paper, we propose a framework for a client to dynamically invoke web services. The framework can increase the use and reliability of web services invocation in a dynamic, heterogeneous environment. Web Service has been widely accepted by industry. How to find and integrate existing Web Service is a crucial work. Client finds Web Service from UDDI Registry and invokes it directly as described in a contract, web service description language, WSDL. It is difficult for an enterprise user to dynamically invoke the most appropriate Web Service. This paper briefly introduces Service-Oriented Architecture and discusses advantages and disadvantages of UDDI, then puts forward a dynamic Web Service framework that extends the SOA.