You are on page 1of 20

Instituto Superior Privado Peruano de Sistemas

SERVICIOS WEB
Sesin 03

Ing. R. Tom Higa

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

Contenido
El ABC de WCF
Contratos
Contratos de Servicio.
El Atributo [ServiceContract]
El Atributo [OperationContract]
El Atributo [DataContract]
El Atributo [MessageContract]
El Atributo [MessageProperty]

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

EL ABC DE WCF

Address

Nos indica dnde est el servicio, esto se traduce en una


URI del tipo de los servicios Web

http:\\localhost\MiServicio.asmx pero ahora estas URIs


pueden direccionar los siguientes protocolos:
HTTP
TCP
Named Pipe
Peer 2 Peer
MSMQ

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

EL ABC DE WCF

Binding
Un binding nos especifica cmo se accede al servicio, esto es:
Protocolo que se utiliza
Codificacin (texto, binario...)
Protocolos WS-* que permiten mensajes transaccionales

Contract
El contrato nos indica qu ofrece el servicio, es decir, que
mtodos y operaciones expone

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

CONTRATOS
Los tipos de los contratos se traducen fcilmente entre los tipos de .NET
existentes internamente y la representacin externa XML compartida.

En la siguiente lista se muestra la relacin de equivalencia del


Compilador CLR (Common Intermediate Language):

Service Contracts CLR y WSDL (Web Service Description


Language)

Data Contracts CLR y XSD (XML Schema Definition)

Message Contracts CLR y SOAP (Simple Object Access Protocol

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

CONTRATOS DE SERVICIO

Define las operaciones, o mtodos, que estn Disponibles


en un servicio y que son expuestas al mundo exterior.
Adems, definen patrones de intercambio bsicos de
mensajes, como la manera de comportarse de los
mensajes en request/reply, one-way o dplex.

Expone la informacin necesaria al cliente, el cual habilita


a entender lo que ofrece el servicio.

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

CONTRATOS DE SERVICIO
Esta informacin incluye lo siguiente:

Tipos de datos en los mensajes


La localizacin de las operaciones
Informacin del protocolo y el formato de Serializacin
que asegure una comunicacin satisfactoria.
Agrupacin de Operaciones
Patrn de intercambio de mensajes (MEPs)

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

CONTRATO DE SERVICIO
Un Service Contract es definido simplemente aplicando el
atributo [ServiceContract] a una clase o interfaz.

En el siguiente ejemplo se muestra como definir una


interfaz como Service Contract

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

CONTRATO DE SERVICIO
Un Service Contract es definido simplemente aplicando el atributo
[ServiceContract] a una clase o interfaz.

En el siguiente ejemplo se
muestra como definir una
interfaz como Service
Contract

Las operaciones del servicio


se especifican aplicando el
atributo [OperationContract] a
los mtodos de una interfaz

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

CONTRATO DE SERVICIO
Una vez definida la interfaz
del servicio, puede ser
implementada.

Ejemplo se implementa la
interfaz IProductService

Tanto el atributo
[ServiceContract] como el
[OperationAttribute] tienen
varios parmetros que
pueden ser usados para
especificar detalles
especiales

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

[ServiceContract]

El atributo [ServiceContract] identifica una clase o


interfaz como un contrato de servicio.

Este atributo define explcitamente la interfaz como


una interfaz CLR y la habilita para realizar
operaciones de contracto de WCF, donde
[ServiceContract] es mapeado con una declaracin
equivalente del tipo puerto WSDL.

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

[ServiceContract]
La siguiente lista contiene los parmetros disponibles
para ser usados con el [ServiceContract].
CallbackContract
ConfigurationName
Name
Namespace
ProtectionLevel
SessionMode

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

[OperationContract]
El atributo [OperationContract] incluye los mtodos
marcados como parte del contrato del servicio e identifica
el mtodo marcado como una operacin del servicio.

Un mtodo marcado como una operacin de un contrato es


expuesto al pblico, por lo que los mtodos no marcados
con este atributo no son expuestos externamente.

El atributo [OperationContract] es mapeado con la


operacin WSDL equivalente.

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

[OperationContract]
En la siguiente lista se muestran los parmetros
disponibles para el atributo [OperationContract].
Action
AsyncPattern
IsInitiating
IsOneWay
IsTerminating
Name
ProtectionLevel
ReplyAction

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

[DataContract]

Un Data Contract describe los datos que van a ser


intercambiados. Es un contrato formal entre dos partes
que contiene informacin relacionada con los datos que
van a ser intercambiados.

Como nota importante recordar que para que dos partes


puedan comenzar a comunicarse, no es necesario que
compartan los tipos de datos, solo sera necesario que
compartieran los Data Contracts.

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

[DataContract]

El Data Contract define especficamente como ser


serializado y desearializado cada parmetro y tipo de
respuesta, en qu orden van a ser intercambiado.

Es muy importante conocer y entender como aplica WCF


la serializacin y deserializacin. La serializacin es el
acto de tomar estructuras de datos y convertirlas a un
formato que pueda ser enviado a travs de un cable.

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

[MessageContract]

El contrato de mensaje provee la manera de controlar el


formato de los mensajes SOAP. En la mayora de los
casos no ser necesario utilizar este nivel de control ya
que el data contract ya provee prcticamente todo el
control necesario.

Sin embargo, es bueno tener presente que est


disponible este tipo de control para segn qu
necesidades.

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

[MessageContract]

Seguramente la mejor razn por la que necesitemos de


este nivel de control sea por la interoperabilidad.

El message contract provee el nivel de interoperabilidad


necesario para comunicarse con clientes y otros servicios
en los que existe un esquema o WSDL particular.

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

Docente: Ing. R. Tom Higa.


Instituto Superior Privado Peruano de Sistemas

ias.
rac
G

Docente: Ing. R. Tom Higa.

You might also like