introduction to wcf solutions

Post on 24-May-2015

1.375 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction to WCF Solutions

With Microsoft Visual Studio 2010

AgendaService Oriented ArchitectureIntroducción al desarrollo con Microsoft

Windows Communication FoundationHostear servicios WCFSeguridadHoL

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

¿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

¿Qué es un servicio?

Un servicio expone funcionalidad aceptando

datos (peticiones) y algunas veces devolviendo

datos (respuestas)

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

¿Cómo se accede a un servicio?

A través de los bordes

Múltiples bordes

Dirección

WCF Endpoint

s

Beneficios de SOAMejora de la Productividad

Servicios Autónomo

sInteroperabilidadTesteo

Beneficios de SOAAgilidad

Contrato MovilidadCambios

dinámicos del cliente

Instancias del servicio ajustadas a

la carga

Integración avanzada

Beneficios de SOAReduce Costes IT

Reutilizar módulos

Externalizar

capacidades

Simplicidad

Múltiples consumidor

es

Beneficios de SOATecnologías de comunicación diversas

Diferencias tecnológicas entre bordes

Políticas de seguridad

Patrones mensajería

Load-balanced

WCF endpoints

Beneficios de SOAAlta escalabilidad

Múltiples instancias

Fire and forget

Uso de diferentes topologías

Messages Load-

balanced

Messages persisted

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

Beneficios de SOAFiabilidad del servicio

BackupPolíticas de reintento

Persistencia en los

mensajes

Monitorización y

administración runtime

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

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

Aplicaciones expuestas como Servicios Web

Aplicaciones de Intranet como servicios

Aplicaciones 2.0 en el Navegador

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>

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

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

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

serviciosEl modelo de comunicación WCF

¿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

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

El modelo de comunicación WCF

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

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

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

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

Definir Service Contracts y Data Contracts

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

Implementar un Servicio WCFEl Servicio ComplexCalc implementa el

contrato de servicio IComplexCalc

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

¿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

¿Qué es un endpoint?

Cliente

Servicio

Endpoint Endpoint

Endpoint

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…)

Pipeline del mensaje

Elementos del binding

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

Configurar bindings en el web.config

Configurar bindings por código

Crear Bindings personalizados

Definir un endpointPara definir un endpoint debemos definir la

dirección, el binding y el contrato

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

WCF BehaviorsDispatchers y el Channel StackUso de Behaviors para configurar los

Dispatchers WCFDefinir Behaviors en el archivo de

ConfiguraciónDefinir Behaviors por código

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…

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

Definir Behaviors en el archivo de Configuración

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

Definir Behaviors por códigoLos behaviors orientados al desarrollador se

escriben en el código gracias al uso de atributos

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

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

Añadir una Service Reference

Demo: Crear un cliente WCF

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

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

Demo: uso del Channel Factory

top related