Date post: | 24-May-2015 |
Category: |
Technology |
Upload: | mictt-palma |
View: | 1,372 times |
Download: | 4 times |
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