Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to wcf solutions

1,830 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Introduction to wcf solutions

  1. 1. Introductionto WCF Solutions<br />With Microsoft Visual Studio 2010<br />
  2. 2. Agenda<br />ServiceOrientedArchitecture<br />Introducción al desarrollo con Microsoft Windows CommunicationFoundation<br />Hostear servicios WCF<br />Seguridad<br />HoL<br />
  3. 3. ServiceOrientedArchitecture (SOA)<br />¿Qué es SOA?<br />Beneficios de SOA<br />Escenarios y estándares<br />Introducción a WCF<br />
  4. 4. ¿Qué es SOA?<br />SOA es un estilo de arquitectura diseñada para construir sistemas distribuidos<br />Desafíos en aplicaciones de negocios<br />Agilidad<br />Productividad<br />Reutilzar<br />Reducir Costes<br />
  5. 5. ¿Qué es un servicio?<br />Un servicio expone funcionalidad aceptando datos (peticiones) y algunas veces devolviendo datos (respuestas)<br />
  6. 6. Pilares de SOA<br />Los servicios manejan datos, no objetos<br />Los servicios son autónomos<br />Los servicios tienen límites específicos<br />Los servicios exponen contratos y políticas<br />
  7. 7. ¿Cómo se accede a un servicio?<br />A través de los bordes<br />Múltiples bordes<br />Dirección<br />WCF Endpoints<br />
  8. 8. Beneficios de SOA<br />Mejora de la Productividad<br />Servicios Autónomos<br />Interoperabilidad<br />Testeo<br />
  9. 9. Beneficios de SOA<br />Agilidad<br />Contrato<br />Movilidad<br />Cambios dinámicos del cliente<br />Instancias del servicio ajustadas a la carga<br />Integración avanzada<br />
  10. 10. Beneficios de SOA<br />Reduce Costes IT<br />Reutilizar módulos<br />Externalizar capacidades<br />Simplicidad<br />Múltiples consumidores<br />
  11. 11. Beneficios de SOA<br />Tecnologías de comunicación diversas<br />Políticas de seguridad<br />Patrones mensajería<br />Diferencias tecnológicas entre bordes<br />Load-balanced<br />WCF endpoints<br />
  12. 12. Beneficios de SOA<br />Alta escalabilidad<br />Fire and forget<br />Uso de diferentes topologías<br />Múltiples instancias<br />Messages Load-balanced<br />Messagespersisted<br />
  13. 13. Beneficios de SOA<br />Interoperabilidad entre sistemas<br />El servicio desconoce la tecnología del cliente<br />Exponen datos en un formato concreto<br />Servicios tratan con datos<br />Los mensajes se pueden transformar<br />WS -* standards<br />
  14. 14. Beneficios de SOA<br />Fiabilidad del servicio<br />Políticas de reintento<br />Backup<br />Persistencia en los mensajes<br />Monitorización y administración runtime<br />
  15. 15. Beneficios de SOA<br />Seguridad integrada<br />Capas de seguridad<br />Servicios de intercambio de datos<br />Protección de datos<br />Autenticación y autorización<br />Implementación de buenas prácticas en seguridad<br />
  16. 16. Escenarios y Estándares<br />Aplicaciones expuestas como Servicios Web<br />Aplicaciones de Intranet como Servicios<br />Aplicaciones 2.0 en el Navegador<br />Los servicios pueden usar SOAP<br />Los servicios pueden usar REST<br />WS-* StandardsIntegrate Web Services<br />
  17. 17. Aplicaciones expuestas como Servicios Web<br />
  18. 18. Aplicaciones de Intranet como servicios<br />
  19. 19. Aplicaciones 2.0 en el Navegador<br />
  20. 20. SOAP<br />Estándar basado en XML<br />Transporta mensajes para Web Services, que son creados de acuerdo al contrato de servicio<br /><s:Envelopexmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <br /> <s:Header> <br /> <To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"> <br /> http://127.0.0.1:8080/CalcService <br /> </To> <br /> <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"> <br />Add<br /> </Action> <br /> </s:Header> <br /> <s:Body> <br /> <Addxmlns="http://www.fabrikam.com"> <br /> <a>2</a> <br /> <b>3</b> <br /> </Add> <br /> </s:Body><br /></s:Envelope><br />
  21. 21. REST<br />Arquitectura de estilos para servicios<br />Protocolo HTTP<br />El contrato está basado en verbos HTTP<br />GET<br />POST<br />PUT<br />DELETE<br />Datos escritos en la URI<br />Interoperabilidad y versionado<br />Diferentes estándares de codificación<br />
  22. 22. WS-* StandardsIntegrate Web Services<br />WS-* es un grupo de estándares basados en XML relevantes para servicios Web<br />WS-* definen como la seguridad, transacción, direccionamiento y fiabilidad de la información es transmitida<br />WS-* forma la base de la interoperabilidad de los servicios<br />
  23. 23. Introducción a WCF<br />¿Qué es WCF?<br />Objetivos de WCF para la implementación de servicios<br />El modelo de comunicación WCF<br />
  24. 24. ¿Qué es un WCF?<br />Framework unificado para la construcción de aplicaciones orientadas a servicios<br />Fue introducido en el framework 3.0 y extendido en el 3.5 y 4.0<br />Es la unión de otras tecnologías distribuidas de Microsoft<br />
  25. 25. Objetivos WCF para la implementación de servicios<br />La implementación del servicio debe ser simple pero extensible para llegar a una amplia variedad de necesidades<br />Una sola API debe ser utilizada para todos los protocolos de comunicación<br />Los servicios deben ser interoperables<br />Los servicios deben usar estándares WS-* siempre que sea aplicables<br />Los servicios pueden soportar SOAP, REST y otras arquitecturas de comunicación<br />
  26. 26. El modelo de comunicación WCF<br />
  27. 27. Introducción al desarrollo con Microsoft Windows CommunicationFoundation<br />Contrato e Implementación de Servicios<br />Albergar Servicios WCF<br />WCF Behaviors<br />Consumir Servicios WCF<br />
  28. 28. Contrato e Implementación de Servicios<br />Ciclo de vida del desarrollo de un servicio<br />ServiceContractsWCF y Data Contracts<br />Definir ServiceContracts y Data Contracts<br />Consideraciones en la implementación de un servicio<br />Implementar un Servicio WCF<br />
  29. 29. Ciclo de vida del desarrollo de un servicio<br />Contrato: Decidir que datos y operaciones van a ser expuestos<br />Implementación: Crear una clase CLR que implemente el contrato<br />Hosting: Crear los endpoints y escuchar las peticiones<br />Testing: Asegurarse que el servicio se comporta correctamente<br />Consumo: Crear un cliente<br />
  30. 30. ServiceContractsWCF y Data Contracts<br />Que va a ser expuesto es el primer paso para cualquier sistema distribuido<br />ServiceContract: Operaciones<br />Data Contract: Representación de datos<br />Los ServiceContractsse expresan como interfaces de C#<br />Los Data Contracts se expresan como clases de C#<br />Los atributos se usan para convertir entidades C# en declaraciones WCF<br />
  31. 31. Definir ServiceContracts y Data Contracts<br />
  32. 32. Consideraciones en la implementación de un servicio<br />Un servicio WCF es una implementación del interfaz del servicecontract<br />Ubicar el contrato y la implementación en ensamblados diferentes<br />La implementación tiene que considerar la instancia WCF y el modelo de concurrencia<br />
  33. 33. Implementar un Servicio WCF<br />El Servicio ComplexCalc implementa el contrato de servicio IComplexCalc<br />
  34. 34. Albergar Servicios WCF<br />¿Qué es un endpoint?<br />Address, Binding, Contract<br />Binding<br />Definir un endpoint<br />Crear un Service Host<br />
  35. 35. ¿Qué es un endpoint?<br />Es una combinación de <br />Address<br />Binding<br />Contract<br />El host da vida al servicio<br />Une la infraestructura WCF al servicio<br />Crea endpointsy escucha las peticiones<br />
  36. 36. ¿Qué es un endpoint?<br />Cliente<br />Servicio<br />Endpoint<br />Endpoint<br />Endpoint<br />
  37. 37. Binding<br />Encapsula toda la tecnología relacionada con la comunicación y el control de los mensajes<br />Define la tecnología de transporte (HTTP, TCP,..)<br />Define la codificación del mensaje<br />Define los protocolos y los estándares (seguridad, etc…)<br />Define las propiedades de los mensajes (timeouts, etc…)<br />
  38. 38. Pipeline del mensaje<br />
  39. 39. Elementos del binding<br />
  40. 40. Bindingspredefinidos y personalizables<br />Es posible definir bindingpersonalizados con una combinación propia de elementos binding<br />Existen muchos bindings predefinidos diseñados para escenarios comunes<br />Los bindingspredefinidos son más sencillos de usar<br />Normalmente no hay necesidad de definir bindingpropios<br />
  41. 41. Configurar bindingsen el web.config<br />
  42. 42. Configurar bindings por código<br />
  43. 43. Crear Bindings personalizados<br />
  44. 44. Definir un endpoint<br />Para definir un endpointdebemos definir la dirección, el bindingy el contrato<br />
  45. 45. Crear un Service Host<br />Un Service Host puede ser cualquier proceso Windows<br />La información sobre los servicios albergados se escribe en el código debajo de <system.serviceModel><br />La clase base para todos los WCF Service Hosts es ServiceHostBase<br />Los servicios que se ejecutan en el IIS, WAS o AppFabric se abren automáticamente.<br />Otros hosts necesitan la llamada al método Open<br />
  46. 46. WCF Behaviors<br />Dispatchersy el ChannelStack<br />Uso de Behaviorspara configurar los DispatchersWCF<br />Definir Behaviorsen el archivo de Configuración<br />Definir Behaviorspor código<br />
  47. 47. Dispatchersy el ChannelStack<br />El channelstack necesita ser extendido para permitir configuraciones adicionales<br />Una vez superado el pipeline del canal los dispatchers procesarán el mensaje<br />Los dispatchers son usados para ajustar el comportamiento del servicio en aspectos como:<br />Instanciamiento<br />Concurrencia<br />Velocidad de ejecución<br />Seguridad<br />Serialización<br />…<br />
  48. 48. Uso de Behaviorspara configurar los DispatchersWCF<br />El mecanismo para configurar los dispatchers se denomina behaviors<br />Existen una amplia variedad de behaviorspara WCF<br />Algunos pueden ser adjuntados al código mediante el uso de atributos, mientras que otros pueden ser escritos en el archivo de cofiguración<br />Los behaviors son extensibles en WCF<br />
  49. 49. Definir Behaviorsen el archivo de Configuración<br />
  50. 50. Definir Behaviorspor código<br />Algunos behaviors son orientados al desarrollador, mientras que otros se orientan hacia el administrador:<br />Desarrollador<br />Instanciamiento<br />Concurrencia<br />Serialización<br />Administrador<br />Velocidad de ejecución<br />Credenciales de seguridad<br />Exponer metadatos<br />
  51. 51. Definir Behaviorspor código<br />Los behaviors orientados al desarrollador se escriben en el código gracias al uso de atributos<br />
  52. 52. Consumir Servicios WCF<br />El patrón proxy<br />Añadir una Service Reference<br />Demo: Crear un Cliente WCF<br />Construir un proxy usando un Channel Factory<br />Uso correcto de ChannelFactories<br />Demo: Uso de Channel Factory<br />
  53. 53. El patrón proxy<br />Un proxy refleja una entidad fuera de la aplicación<br />El proxy traduce las llamadas a los métodos a mensajes de intercambio<br />
  54. 54. Añadir una Service Reference<br />
  55. 55. Demo: Crear un cliente WCF<br />
  56. 56. Construir un proxy usando un ChannelFactory<br />Un proxy a un servicio WCF puede ser construido sin Visual Studio 2010 y con automatización de generación de código<br />Crear un ChannelFactory<T><br />Crear un canal<br />
  57. 57. Uso correcto de ChannelFactories<br />Cuando se usa la factoría de canal se es responsable para:<br />Establecer la configuración del cliente<br />Importar los contratos de servicio y datos<br />Eliminación del proxy correctamente<br />
  58. 58. Demo: uso del Channel Factory<br />

×