Este documento presenta una introducción a las soluciones WCF. Comienza explicando los conceptos básicos de la arquitectura orientada a servicios y los beneficios que proporciona. Luego introduce WCF, describiendo su objetivo de proporcionar una API unificada para la construcción de aplicaciones basadas en servicios. Finalmente, cubre temas como la definición de contratos de servicio, la implementación y hospedaje de servicios WCF, y el consumo de servicios desde clientes.
4. ¿Qué es SOA? SOA es un estilo de arquitectura diseñada para construir sistemas distribuidos Desafíos en aplicaciones de negocios Agilidad Productividad Reutilzar Reducir Costes
5. ¿Qué es un servicio? Un servicio expone funcionalidad aceptando datos (peticiones) y algunas veces devolviendo datos (respuestas)
6. Pilares de SOA Los servicios manejan datos, no objetos Los servicios son autónomos Los servicios tienen límites específicos Los servicios exponen contratos y políticas
7. ¿Cómo se accede a un servicio? A través de los bordes Múltiples bordes Dirección WCF Endpoints
8. Beneficios de SOA Mejora de la Productividad Servicios Autónomos Interoperabilidad Testeo
9. Beneficios de SOA Agilidad Contrato Movilidad Cambios dinámicos del cliente Instancias del servicio ajustadas a la carga Integración avanzada
10. Beneficios de SOA Reduce Costes IT Reutilizar módulos Externalizar capacidades Simplicidad Múltiples consumidores
11. Beneficios de SOA Tecnologías de comunicación diversas Políticas de seguridad Patrones mensajería Diferencias tecnológicas entre bordes Load-balanced WCF endpoints
12. Beneficios de SOA Alta escalabilidad Fire and forget Uso de diferentes topologías Múltiples instancias Messages Load-balanced Messagespersisted
13. Beneficios de SOA Interoperabilidad entre sistemas El servicio desconoce la tecnología del cliente Exponen datos en un formato concreto Servicios tratan con datos Los mensajes se pueden transformar WS -* standards
14. Beneficios de SOA Fiabilidad del servicio Políticas de reintento Backup Persistencia en los mensajes Monitorización y administración runtime
15. Beneficios de SOA Seguridad integrada Capas de seguridad Servicios de intercambio de datos Protección de datos Autenticación y autorización Implementación de buenas prácticas en seguridad
16. Escenarios y Estándares Aplicaciones expuestas como Servicios Web Aplicaciones de Intranet como Servicios Aplicaciones 2.0 en el Navegador Los servicios pueden usar SOAP Los servicios pueden usar REST WS-* StandardsIntegrate Web Services
20. SOAP Estándar basado en XML Transporta mensajes para Web Services, que son creados de acuerdo al contrato de servicio <s:Envelopexmlns: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> <Addxmlns="http://www.fabrikam.com"> <a>2</a> <b>3</b> </Add> </s:Body> </s:Envelope>
21. REST Arquitectura de estilos para servicios Protocolo HTTP El contrato está basado en verbos HTTP GET POST PUT DELETE Datos escritos en la URI Interoperabilidad y versionado Diferentes estándares de codificación
22. WS-* StandardsIntegrate Web Services WS-* es un grupo de estándares basados en XML relevantes para servicios Web WS-* 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
23. Introducción a WCF ¿Qué es WCF? Objetivos de WCF para la implementación de servicios El modelo de comunicación WCF
24. ¿Qué es un WCF? Framework unificado para la construcción de aplicaciones orientadas a servicios Fue introducido en el framework 3.0 y extendido en el 3.5 y 4.0 Es la unión de otras tecnologías distribuidas de Microsoft
25. Objetivos WCF para la implementación de servicios La 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 interoperables Los servicios deben usar estándares WS-* siempre que sea aplicables Los servicios pueden soportar SOAP, REST y otras arquitecturas de comunicación
27. Introducción al desarrollo con Microsoft Windows CommunicationFoundation Contrato e Implementación de Servicios Albergar Servicios WCF WCF Behaviors Consumir Servicios WCF
28. Contrato e Implementación de Servicios Ciclo de vida del desarrollo de un servicio ServiceContractsWCF y Data Contracts Definir ServiceContracts y Data Contracts Consideraciones en la implementación de un servicio Implementar un Servicio WCF
29. Ciclo de vida del desarrollo de un servicio Contrato: Decidir que datos y operaciones van a ser expuestos Implementación: Crear una clase CLR que implemente el contrato Hosting: Crear los endpoints y escuchar las peticiones Testing: Asegurarse que el servicio se comporta correctamente Consumo: Crear un cliente
30. ServiceContractsWCF y Data Contracts Que va a ser expuesto es el primer paso para cualquier sistema distribuido ServiceContract: Operaciones Data Contract: Representación de datos Los ServiceContractsse 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
32. Consideraciones en la implementación de un servicio Un servicio WCF es una implementación del interfaz del servicecontract Ubicar el contrato y la implementación en ensamblados diferentes La implementación tiene que considerar la instancia WCF y el modelo de concurrencia
33. Implementar un Servicio WCF El Servicio ComplexCalc implementa el contrato de servicio IComplexCalc
34. Albergar Servicios WCF ¿Qué es un endpoint? Address, Binding, Contract Binding Definir un endpoint Crear un Service Host
35. ¿Qué es un endpoint? Es una combinación de Address Binding Contract El host da vida al servicio Une la infraestructura WCF al servicio Crea endpointsy escucha las peticiones
36. ¿Qué es un endpoint? Cliente Servicio Endpoint Endpoint Endpoint
37. Binding Encapsula toda la tecnología relacionada con la comunicación y el control de los mensajes Define la tecnología de transporte (HTTP, TCP,..) Define la codificación del mensaje Define los protocolos y los estándares (seguridad, etc…) Define las propiedades de los mensajes (timeouts, etc…)
40. Bindingspredefinidos y personalizables Es posible definir bindingpersonalizados con una combinación propia de elementos binding Existen muchos bindings predefinidos diseñados para escenarios comunes Los bindingspredefinidos son más sencillos de usar Normalmente no hay necesidad de definir bindingpropios
44. Definir un endpoint Para definir un endpointdebemos definir la dirección, el bindingy el contrato
45. Crear un Service Host Un Service Host puede ser cualquier proceso Windows La 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
46. WCF Behaviors Dispatchersy el ChannelStack Uso de Behaviorspara configurar los DispatchersWCF Definir Behaviorsen el archivo de Configuración Definir Behaviorspor código
47. Dispatchersy el ChannelStack El channelstack necesita ser extendido para permitir configuraciones adicionales Una vez superado el pipeline del canal los dispatchers procesarán el mensaje Los dispatchers son usados para ajustar el comportamiento del servicio en aspectos como: Instanciamiento Concurrencia Velocidad de ejecución Seguridad Serialización …
48. Uso de Behaviorspara configurar los DispatchersWCF El mecanismo para configurar los dispatchers se denomina behaviors Existen una amplia variedad de behaviorspara WCF Algunos 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
50. Definir Behaviorspor código Algunos 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
51. Definir Behaviorspor código Los behaviors orientados al desarrollador se escriben en el código gracias al uso de atributos
52. Consumir Servicios WCF El patrón proxy Añadir una Service Reference Demo: Crear un Cliente WCF Construir un proxy usando un Channel Factory Uso correcto de ChannelFactories Demo: Uso de Channel Factory
53. El patrón proxy Un proxy refleja una entidad fuera de la aplicación El proxy traduce las llamadas a los métodos a mensajes de intercambio
56. Construir un proxy usando un ChannelFactory Un proxy a un servicio WCF puede ser construido sin Visual Studio 2010 y con automatización de generación de código Crear un ChannelFactory<T> Crear un canal
57. Uso correcto de ChannelFactories Cuando se usa la factoría de canal se es responsable para: Establecer la configuración del cliente Importar los contratos de servicio y datos Eliminación del proxy correctamente