20
Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS Tecnologías de la Web Tema 3 Servicios Web en .NET (Parte II) 1

Servicios Web .NET con WCF

Embed Size (px)

DESCRIPTION

Servicios Web en .NET con Windows Comunication Foundation

Citation preview

Page 1: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tecnologías de la Web

Tema 3

Servicios Web en

.NET

(Parte II)

1

Page 2: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web Introducción

• Posibilidades

– Servicios Web ASP. NET tradicional

versiones.NET 1.1 y .NET 2.0 (se mantiene por

compatibilidad)

– Windows Communication Foundation (WCF)

desde .NET 3.0

Page 3: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web Servicios Web WCF

• Introducción a WCF

• Implementando Servicios Web WCF– Anatomía de un servicio Web

– Un ejemplo explicativo

– Documentar un servicio Web

– Testear un servicio Web sin cliente

– El documento WSDL

• Implementando Clientes para Servicios Web con .NET

Page 4: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web Servicio Web WCF

• Windows Communication Foundation

– Unificación de las tecnologías .NET para programación

distribuida.

– Implementación de la Arquitectura Orientada a Servicios

(SOA – Service Oriented Arquitecture)

– Servicios son funcionalidades ofrecidas por servidores que

pueden ser consumidas por clientes (no estando limitadas a

los servicios Web)

– Clientes y servidores se comunican con el paso de mensajes

mediante los endpoint

– Los endpoint conforman el ABC de los Servicios

A: Address B: Binding C: Contract

Page 5: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• Modelo de Servicios y endPoint en WCF

Servicios Web WCF

Page 6: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• A: Address

La dirección especifica dónde se envían los

mensajes

B: Binding

La unión (o atadura) describe cómo enviar los

mensajes y la relación con el entorno

• C: Contract

El contrato describe lo que ofrece el servicio y el

contenido de los mensajes

Los clientes necesitan conocer esta información

para poder acceder al servicio

Servicios Web WCF

Page 7: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• A: Address

incluye: localización del servicio y el protocolo de

transporte

– WCF supports the following transport schemes:

• HTTP/HTTPS

• TCP

• IPC

• Peer network

• MSMQ

• Service bus

– Address

• [transport]://[domain][:port]/[URI]

Servicios Web WCF

Page 8: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• B: Bindings

La comunicación puede ser:

Sincronos o asincronos; unidireccionales o bidireccionales;

entregados de inmediato o encolados, el encolado puede

ser duradero o volatil

Sistemas de codificación

Texto plano, binario, sistema optimizado (MTOM)

Seguridad

Sin seguridad, seguridad a nivel de transporte o establecer

un nivel de privacidad y seguridad que requiera algún modo

de autentificación y autorización

Cliente y servidor deben estar alineados para que ok

Estas y otras decisiones se definen en los bindings

Servicios Web WCF

Page 9: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• B: Bindings

Servicios Web WCF

Page 10: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• C: Contracts

– Service Contract

Contrato del Servicio que incluye las operaciones que

ofrece el servicio a los clientes como Operation Contract

– Data Contract

Define los tipos de datos a enviar y recibir.

Cada elemento debe definirse como Member Contract

– Fault contracts

Define los errores y cómo se propagan al cliente

– Message Contract

Define la estructura, cabecera y cuerpo, del mensaje

SOAP.

Servicios Web WCF

Page 11: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• Hospedaje (Hosting)

– Internet Information Server 5/6

– Aplicación independiente (app consola, windows, etc)

– WAS: Windows Activation Service

– Windows Server AppFabric

Servicios Web WCF

Page 12: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web Servicios Web WCF

• Anatomía Servicio Web WCF

– Un fichero .cs con la Inteface que define el contrato del servicio con las operaciones exportadas

La Inteface lleva el atributo ServiceContract y los métodos el atributo OperationContract.

– Un fichero .svc y otro .svc.cs con la clase del Servicio Web que implementa la interface.

– Opcionalmente fichero .cs con las clases necesarias para implementar la funcionalidad.

Estas clases llevan el atributo DataContract y los atributos de estas clases el atributo DataMember.

– Fichero de configuración web.config para establecer el Endpoint: Address, Binding y Contract.

Page 13: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• Crear un Servicio Web WCF

– Interface con el Contrato del Servicio y las operaciones

– Clase que implementa la interface

Fichero .svc

Fichero .svc.cs

[ServiceContract]

public interface IHolaMundo {

[OperationContract]

string saludandoA(string name);

}

public class HolaMundo : IHolaMundo

{

public string saludandoA(string name)

{

return string.Format(“Hola {0}", name);

}

Servicios Web WCF

Page 14: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• Crear un Servicio Web WCF

– Clase adicionales

[DataContract]

public class algunaClase

{

int att1 = 0;

string att2 = "Hola ";

[DataMember]

public int Att1 {

get { return att1; }

set { att1 = value; }

}

[DataMember]

public string att2 {

get { return att2; }

set { att2 = value; }

}

}

Servicios Web WCF

Page 15: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• Crear un Servicio Web WCF

– Fichero de configuración: web.config

…<system.serviceModel>

<services>

<service name="WcfServiceHolaMundo.HolaMundo"

behaviorConfiguration="WcfServiceHolaMundo.HolaMundoBehavior">

<endpoint address="" binding="wsHttpBinding“

contract="WcfServiceHolaMundo.IHolaMundo">

<identity>

<dns value="localhost" />

</identity>

</endpoint>

</service>

</services>

</system.serviceModel>

Servicios Web WCF

Page 16: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• Testear un Servicio Web WCF

Ejecutar el fichero .svc

Servicios Web WCF

Page 17: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• Crear un cliente de un servicio Web WCF

– La clase proxy y la invocación de métodos

Agregar una referencia de servicio.

Por ejemplo, suponiendo que la has denominado

ServicioHM y que un método del servicio Web

HolaMundo se denomina SaludandoA(), tendrías que

escribir el siguiente código

Servicios Web WCF

// crear un objeto de la clase proxy.

ServicioHM.HolaMundoClient h = new ServicioHM.HolaMundoClient();

// Invocar al método (por resumir no se muestra que se hace con el resultado).

h.SaludandoA(“Pepe”);

Page 18: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• Crear un cliente de un servicio Web WCF

– Instanciar una clase del servicio

Agregada una referencia de servicio.

Por ejemplo, suponiendo que la has denominado

ServicioHM y que el servicio HolaMundo inclye una clase

se denomina SaludandoA(), tendrías que escribir el

siguiente código

Servicios Web WCF

// crear un objeto de la clase proxy.

ServicioHM.HolaMundoClient h = new ServicioHM.HolaMundoClient();

// Invocar al método (por resumir no se muestra que se hace con el resultado).

h.SaludandoA(“Pepe”);

Page 19: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

• Crear un cliente de un servicio Web WCF

– Instanciar una clase del servicio

Agregada una referencia de servicio.

Por ejemplo, suponiendo que la has denominado

ServicioHM y que el servicio HolaMundo incluye una

clase Datos, tendrías que escribir el siguiente código

Servicios Web WCF

// Instanciar un objeto de la clase Datos.

ServicioHM.Datos misDatos;

Page 20: Servicios Web .NET con WCF

Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS

Tema 3: Servicios Web

¡Gracias!

¿Podemos mejorar esta lección?

Déjanos un mensaje en el foro del curso