introduction to wcf solutions

59
Introduction to WCF Solutions With Microsoft Visual Studio 2010

Upload: mictt-palma

Post on 24-May-2015

1.375 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Introduction to wcf solutions

Introduction to WCF Solutions

With Microsoft Visual Studio 2010

Page 2: Introduction to wcf solutions

AgendaService Oriented ArchitectureIntroducción al desarrollo con Microsoft

Windows Communication FoundationHostear servicios WCFSeguridadHoL

Page 3: Introduction to wcf solutions

Service Oriented Architecture (SOA)¿Qué es SOA?Beneficios de SOAEscenarios y estándaresIntroducción a WCF

Page 4: Introduction to wcf solutions

¿Qué es SOA?SOA es un estilo de arquitectura diseñada

para construir sistemas distribuidos

Agilidad Productividad

ReutilzarReducir Costes

Desafíos en aplicaciones de negocios

Page 5: Introduction to wcf solutions

¿Qué es un servicio?

Un servicio expone funcionalidad aceptando

datos (peticiones) y algunas veces devolviendo

datos (respuestas)

Page 6: Introduction to wcf solutions

Pilares de SOALos servicios manejan datos, no objetosLos servicios son autónomosLos servicios tienen límites específicosLos servicios exponen contratos y políticas

Page 7: Introduction to wcf solutions

¿Cómo se accede a un servicio?

A través de los bordes

Múltiples bordes

Dirección

WCF Endpoint

s

Page 8: Introduction to wcf solutions

Beneficios de SOAMejora de la Productividad

Servicios Autónomo

sInteroperabilidadTesteo

Page 9: Introduction to wcf solutions

Beneficios de SOAAgilidad

Contrato MovilidadCambios

dinámicos del cliente

Instancias del servicio ajustadas a

la carga

Integración avanzada

Page 10: Introduction to wcf solutions

Beneficios de SOAReduce Costes IT

Reutilizar módulos

Externalizar

capacidades

Simplicidad

Múltiples consumidor

es

Page 11: Introduction to wcf solutions

Beneficios de SOATecnologías de comunicación diversas

Diferencias tecnológicas entre bordes

Políticas de seguridad

Patrones mensajería

Load-balanced

WCF endpoints

Page 12: Introduction to wcf solutions

Beneficios de SOAAlta escalabilidad

Múltiples instancias

Fire and forget

Uso de diferentes topologías

Messages Load-

balanced

Messages persisted

Page 13: Introduction to wcf solutions

Beneficios de SOAInteroperabilidad entre sistemas

Servicios tratan con

datos

El servicio desconoce

la tecnología del cliente

Exponen datos en un

formato concreto

Los mensajes se

pueden transformar

WS -* standards

Page 14: Introduction to wcf solutions

Beneficios de SOAFiabilidad del servicio

BackupPolíticas de reintento

Persistencia en los

mensajes

Monitorización y

administración runtime

Page 15: Introduction to wcf solutions

Beneficios de SOASeguridad integrada

Protección de datos

Capas de seguridad

Servicios de intercambio

de datos

Autenticación y

autorización

Implementación de buenas prácticas en seguridad

Page 16: Introduction to wcf solutions

Escenarios y EstándaresAplicaciones expuestas como Servicios WebAplicaciones de Intranet como ServiciosAplicaciones 2.0 en el NavegadorLos servicios pueden usar SOAPLos servicios pueden usar RESTWS-* Standards Integrate Web Services

Page 17: Introduction to wcf solutions

Aplicaciones expuestas como Servicios Web

Page 18: Introduction to wcf solutions

Aplicaciones de Intranet como servicios

Page 19: Introduction to wcf solutions

Aplicaciones 2.0 en el Navegador

Page 20: Introduction to wcf solutions

SOAPEstándar basado en XMLTransporta mensajes para Web Services, que

son creados de acuerdo al contrato de servicio<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> <To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"> http://127.0.0.1:8080/CalcService </To> <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"> Add </Action> </s:Header> <s:Body> <Add xmlns="http://www.fabrikam.com"> <a>2</a> <b>3</b> </Add> </s:Body></s:Envelope>

Page 21: Introduction to wcf solutions

RESTArquitectura de estilos para serviciosProtocolo HTTPEl contrato está basado en verbos HTTP

GETPOSTPUTDELETE

Datos escritos en la URIInteroperabilidad y versionadoDiferentes estándares de codificación

Page 22: Introduction to wcf solutions

WS-* Standards Integrate Web ServicesWS-* es un grupo de estándares basados en

XML relevantes para servicios WebWS-* definen como la seguridad, transacción,

direccionamiento y fiabilidad de la información es transmitida

WS-* forma la base de la interoperabilidad de los servicios

Page 23: Introduction to wcf solutions

Introducción a WCF¿Qué es WCF?Objetivos de WCF para la implementación de

serviciosEl modelo de comunicación WCF

Page 24: Introduction to wcf solutions

¿Qué es un WCF?Framework unificado para la construcción de

aplicaciones orientadas a serviciosFue introducido en el framework 3.0 y

extendido en el 3.5 y 4.0Es la unión de otras tecnologías distribuidas

de Microsoft

Page 25: Introduction to wcf solutions

Objetivos WCF para la implementación de serviciosLa implementación del servicio debe ser

simple pero extensible para llegar a una amplia variedad de necesidades

Una sola API debe ser utilizada para todos los protocolos de comunicación

Los servicios deben ser interoperablesLos servicios deben usar estándares WS-*

siempre que sea aplicablesLos servicios pueden soportar SOAP, REST y

otras arquitecturas de comunicación

Page 26: Introduction to wcf solutions

El modelo de comunicación WCF

Page 27: Introduction to wcf solutions

Introducción al desarrollo con Microsoft Windows Communication FoundationContrato e Implementación de ServiciosAlbergar Servicios WCFWCF BehaviorsConsumir Servicios WCF

Page 28: Introduction to wcf solutions

Contrato e Implementación de ServiciosCiclo de vida del desarrollo de un servicioService Contracts WCF y Data ContractsDefinir Service Contracts y Data ContractsConsideraciones en la implementación de un

servicioImplementar un Servicio WCF

Page 29: Introduction to wcf solutions

Ciclo de vida del desarrollo de un servicioContrato: Decidir que datos y operaciones

van a ser expuestosImplementación: Crear una clase CLR que

implemente el contratoHosting: Crear los endpoints y escuchar las

peticionesTesting: Asegurarse que el servicio se

comporta correctamenteConsumo: Crear un cliente

Page 30: Introduction to wcf solutions

Service Contracts WCF y Data ContractsQue va a ser expuesto es el primer paso para

cualquier sistema distribuidoService Contract: OperacionesData Contract: Representación de datos

Los Service Contracts se expresan como interfaces de C#

Los Data Contracts se expresan como clases de C#

Los atributos se usan para convertir entidades C# en declaraciones WCF

Page 31: Introduction to wcf solutions

Definir Service Contracts y Data Contracts

Page 32: Introduction to wcf solutions

Consideraciones en la implementación de un servicioUn servicio WCF es una implementación del

interfaz del service contractUbicar el contrato y la implementación en

ensamblados diferentesLa implementación tiene que considerar la

instancia WCF y el modelo de concurrencia

Page 33: Introduction to wcf solutions

Implementar un Servicio WCFEl Servicio ComplexCalc implementa el

contrato de servicio IComplexCalc

Page 34: Introduction to wcf solutions

Albergar Servicios WCF¿Qué es un endpoint?Address, Binding, ContractBindingDefinir un endpointCrear un Service Host

Page 35: Introduction to wcf solutions

¿Qué es un endpoint?Es una combinación de

AddressBindingContract

El host da vida al servicioUne la infraestructura WCF al servicioCrea endpoints y escucha las peticiones

Page 36: Introduction to wcf solutions

¿Qué es un endpoint?

Cliente

Servicio

Endpoint Endpoint

Endpoint

Page 37: Introduction to wcf solutions

BindingEncapsula toda la tecnología relacionada con

la comunicación y el control de los mensajesDefine la tecnología de transporte (HTTP,

TCP,..)Define la codificación del mensajeDefine los protocolos y los estándares

(seguridad, etc…)Define las propiedades de los mensajes

(timeouts, etc…)

Page 38: Introduction to wcf solutions

Pipeline del mensaje

Page 39: Introduction to wcf solutions

Elementos del binding

Page 40: Introduction to wcf solutions

Bindings predefinidos y personalizablesEs posible definir binding personalizados con

una combinación propia de elementos bindingExisten muchos bindings predefinidos

diseñados para escenarios comunesLos bindings predefinidos son más sencillos

de usarNormalmente no hay necesidad de definir

binding propios

Page 41: Introduction to wcf solutions

Configurar bindings en el web.config

Page 42: Introduction to wcf solutions

Configurar bindings por código

Page 43: Introduction to wcf solutions

Crear Bindings personalizados

Page 44: Introduction to wcf solutions

Definir un endpointPara definir un endpoint debemos definir la

dirección, el binding y el contrato

Page 45: Introduction to wcf solutions

Crear un Service HostUn Service Host puede ser cualquier proceso

WindowsLa información sobre los servicios albergados

se escribe en el código debajo de <system.serviceModel>

La clase base para todos los WCF Service Hosts es ServiceHostBase

Los servicios que se ejecutan en el IIS, WAS o AppFabric se abren automáticamente.

Otros hosts necesitan la llamada al método Open

Page 46: Introduction to wcf solutions

WCF BehaviorsDispatchers y el Channel StackUso de Behaviors para configurar los

Dispatchers WCFDefinir Behaviors en el archivo de

ConfiguraciónDefinir Behaviors por código

Page 47: Introduction to wcf solutions

Dispatchers y el Channel StackEl channel stack necesita ser extendido para

permitir configuraciones adicionalesUna vez superado el pipeline del canal los

dispatchers procesarán el mensajeLos dispatchers son usados para ajustar el

comportamiento del servicio en aspectos como:InstanciamientoConcurrenciaVelocidad de ejecuciónSeguridadSerialización…

Page 48: Introduction to wcf solutions

Uso de Behaviors para configurar los Dispatchers WCFEl mecanismo para configurar los dispatchers

se denomina behaviorsExisten una amplia variedad de behaviors

para WCFAlgunos pueden ser adjuntados al código

mediante el uso de atributos, mientras que otros pueden ser escritos en el archivo de cofiguración

Los behaviors son extensibles en WCF

Page 49: Introduction to wcf solutions

Definir Behaviors en el archivo de Configuración

Page 50: Introduction to wcf solutions

Definir Behaviors por códigoAlgunos behaviors son orientados al

desarrollador, mientras que otros se orientan hacia el administrador:Desarrollador

Instanciamiento Concurrencia Serialización

Administrador Velocidad de ejecución Credenciales de seguridad Exponer metadatos

Page 51: Introduction to wcf solutions

Definir Behaviors por códigoLos behaviors orientados al desarrollador se

escriben en el código gracias al uso de atributos

Page 52: Introduction to wcf solutions

Consumir Servicios WCFEl patrón proxyAñadir una Service ReferenceDemo: Crear un Cliente WCFConstruir un proxy usando un Channel

FactoryUso correcto de Channel FactoriesDemo: Uso de Channel Factory

Page 53: Introduction to wcf solutions

El patrón proxyUn proxy refleja una entidad fuera de la

aplicaciónEl proxy traduce las llamadas a los métodos a

mensajes de intercambio

Page 54: Introduction to wcf solutions

Añadir una Service Reference

Page 55: Introduction to wcf solutions

Demo: Crear un cliente WCF

Page 56: Introduction to wcf solutions

Construir un proxy usando un Channel FactoryUn proxy a un servicio WCF puede ser

construido sin Visual Studio 2010 y con automatización de generación de códigoCrear un ChannelFactory<T>Crear un canal

Page 57: Introduction to wcf solutions

Uso correcto de Channel FactoriesCuando se usa la factoría de canal se es

responsable para:Establecer la configuración del clienteImportar los contratos de servicio y datosEliminación del proxy correctamente

Page 58: Introduction to wcf solutions

Demo: uso del Channel Factory

Page 59: Introduction to wcf solutions