# Overview: Web Service Controls

A Web Service control provides an interface between your application and a web service, which allows your application to invoke the methods and handle the callbacks of that web service. Using a Web Service control, you can connect to any web service for which a WSDL file is available, whether or not it was built using WebLogic Workshop. To learn more about WSDL files, see WSDL File: Web Service Descriptions.

In order to use Web Service controls, it may help you to understand several concepts. This topic provides an overview of some of these concepts.

## Understanding Public Contracts

Web services define and expose a public contract, which is typically expressed in a WSDL file. A public contract describes two things: the operations that the web service can perform and the format of the messages sent to the service to access its operations and receive operation results. The contract is completely under the control of the author of the web service; it cannot be altered by a client of the web service.

The public contract for a web service developed with WebLogic Workshop is the collection of all methods marked with the @common:operation annotation plus all members of the Callback interface. Each public contract is completely defined in the JWS file for the web service. When you generate a WSDL file from a JWS file, the public contract is expressed according to the WSDL standard.

The Web Service control cannot violate or modify the public contract of the web service it represents. This restricts the type of changes you can make to a Web Service control. For example, you can't modify the Service control to use a communication protocol that the target web service doesn't understand.

## Understanding Web Service Controls: Proxies for Web Services

In WebLogic Workshop, a Web Service control serves as an intermediary, or proxy, for a web service. When web service X wants to invoke an operation of web service Y, web service X calls a Java method of the Web Service control for Y. The Web Service control converts the Java method invocation into an appropriate message to send to the web service Y, and it communicates with web service Y using a protocol that service Y can understand. The Web Service control also converts returned messages from service Y back into Java method invocations on service.

In these ways, the Web Service control allows service X to use service Y merely by implementing application-level Java code. As the author of service X, you do not need to know the details of message formats or protocols.

## Managing Shared Web Service Controls

When modifying Web Service controls, keep in mind that a Web Service control may be shared by multiple web services. If all of the web services using a Service control are referring to a single JCX file, changing the behavior of that JCX file affects the behavior of the Web Service control for all of the referring web services.

Related Topics

Web Service Control

Declaring Compliance with a WSDL File