Upload
jlam-alma
View
221
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Servicios Web en .NET con Windows Comunication Foundation
Citation preview
Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS
Tecnologías de la Web
Tema 3
Servicios Web en
.NET
(Parte II)
1
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
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
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
Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS
Tema 3: Servicios Web
• Modelo de Servicios y endPoint en WCF
Servicios Web 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
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
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
Máster Oficial en TECNOLOGÍAS INFORMÁTICAS AVANZADAS
Tema 3: Servicios Web
• B: Bindings
Servicios Web 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
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
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.
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
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
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
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
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”);
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”);
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;
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