Introducción a WCF

10,732 views

Published on

Una introducción al desarrollo de aplicaciones con WCF

Published in: Technology
6 Comments
12 Likes
Statistics
Notes
No Downloads
Views
Total views
10,732
On SlideShare
0
From Embeds
0
Number of Embeds
69
Actions
Shares
0
Downloads
0
Comments
6
Likes
12
Embeds 0
No embeds

No notes for slide
  • Introducción: 15 minImplementación (Calculadora): 15 minPruebas: - Software Testing: 15 min - Pruebas Unitarias: a) Explicación: 5 min b) Implementación: 10 min - Pruebas de Integración: a) Explicación: 5 min b) Implementación: 10 minImplementación Cliente WPF: a) Implementar UI: 10 min b) Explicar UI Automation: 10 min c) Explicar Pruebas del sistema: 5 min - Perfil Operacional d) Implementar caso Suma: 10 minSeguridad: 10 minMonitorización y administración de servicios: 10 minInterop: 10 min?Novedades WCF: 10 min
  • Introducción a WCF

    1. 1. Pablo Espada Esbupa.com
    2. 2. Introducción WCF Implementación de un servicio Realización de pruebas del servicio Consumo del servicio Seguridad en WCF Monitorización y administración de servicios Interoperabilidad en WCF Novedades para WCF en 3.5 SP1
    3. 3. Contexto
    4. 4. .NET 1.0 System.Web.Services (ASMX) XML, HTTP, SOAP/WSDL/XSD Centrada en interoperabilidad System.EnterpriseServices (COM+) DCOM RPC, TCP Centrada en dotar de alto rendimiento a las comunicaciones System.Messaging (MSMQ) Centrada en la persistencia de los mensajes System.Runtime.Remoting (.NET Remoting) HTTTP or TCP, SOAP o Binario Estrechamente ligado al sistema de tipos de .Net
    5. 5. 2.0 .Framework 2.0 VB C# J# ・・・ 3.0 Framework 3.0 CLS y CTS Windows WPF WCF WF WCS ASP.NET Forms Biblioteca de Clases y ADO.NET Common Language Runtime (CLR) Windows Vista, Windows XP, Windows Server
    6. 6. Unificar la experiencia en el desarrollo de aplicaciones distribuidas Modelo conceptual consistente entre escenarios variados Equivalencia directa con tecnologías previas Crítico para la adopción de WCF Arquitectura fundamental para el futuro WS-* (.NET 3.0) Servicios Web-style (.NET 3.5) Workflow (.NET 3.5)
    7. 7. ASMX Remoting Interoperabilidad Extensibilidad Composición WSE Desarrollo Desarrollo orientado a Protocolos orientado a atributos WS-* mensajes
    8. 8. Conceptos básicos
    9. 9. SOA: Enfoque de arquitectura de software que define la utilización de servicios para dar soporte a los requerimientos de software del usuario Servicio: Programa orientado a mensajes (que intercambia mensajes con otros programas), y constituye una base para la creación de soluciones distribuidas
    10. 10. Principios de SOA: 1. Las fronteras de un servicio son explícitas 2. Cada servicio es autónomo 3. Los servicios comparten esquemas y contratos, no clases ni tipos 4. La compatibilidad se basa en políticas
    11. 11. Beneficios de SOA: 1. Los servicios son aislados 2. Los servicios son independientes de ubicación 3. Los servicios son neutrales en cuanto a protocolo, transporte y formato 4. Los servicios son independientes de plataforma e implementación
    12. 12. Cliente Servicio Message 13
    13. 13. Cliente Servicio Message Endpoint Endpoint Endpoint Endpoint 14
    14. 14. Cliente Servicio Message A B C C B A A B C A B C Address Binding Contract ¿Dónde? ¿Cómo? ¿Qué? Endpoint 15
    15. 15. BasicHttpBinding BP 1.1 TM WsHttpBinding WS TM WsDualHttpBinding WS TM NetTcpBinding .NET TM NetNamedPipesBinding .NET TM NetMsmqBinding MSMQ TM NetPeerTcpBinding Peer TM T = Transporte Seguro | M = Mensaje Seguro
    16. 16. El desarrollador implementa servicios que envían mensajes WCF se ejecuta sobre el CLR Los mensajes WCF están formados por cabecera y cuerpo (header & body) Los servicios exponen endpoints direccionables Los contratos de servicio definen la estructura del mensaje a intercambiar Los contratos pueden ser estructuras (esquemas de datos) o interfaces del servicio. Limitan el flujo del mensaje a un único canal entre servicio y cliente Las características del canal (Channel) se pueden modificar gracias al uso de distintos tipos de Bindings
    17. 17. Service Hosted Client Library App WCF Service WCF Test Template WCF Autohost Client 1. Crear la librería del servicio 2. Desplegar el servicio 3. Construir el cliente 4. Probar la solución
    18. 18. Mi primer servicio WCF
    19. 19. Soporte para desarrollo de servicios WCF Plantillas de proyecto “Service Library” Plantillas para servicios simples WCF Posibilidad de alojar el servicio Interfaz para probar el servicio “Add Service Reference” Herramienta integrada para editar configuraciones
    20. 20. Implementación del servicio Calculadora
    21. 21. Primero, debemos habilitar WMI en el Editor de Configuraciones de WCF
    22. 22. Comandos en PowerShell (modo admin): Lista de Servicios: get-wmiobject -class service –namespace rootServiceModel | format-table name Lista de Endpoints: get-wmiobject -class endpoint –namespace rootServiceModel | format-table name
    23. 23. Habilitar la opción en el WCF Conf. Editor
    24. 24. Abrir el Performance Counter y seleccionar “añadir contador”
    25. 25. Buscar la sección ServiceModelEndpoint 3.0.0.0 y seleccionar los parámetros Calls, Calls Per Second y Calls Duration
    26. 26. Desde ese momento, podremos monitorizarlas en el menú principal del Perfomance Monitor
    27. 27. Volvemos al menú de edición de configs WCF
    28. 28. Habilitamos el logging y ajustamos su nivel
    29. 29. Desde este momento podemos utilizar el Service Trace Viewer (Windows SDK for VS)
    30. 30. También contamos con un visor gráfico de trazas
    31. 31. Podemos ver además el archivo XML y el contenido del mensaje (esto último si no usamos encriptación, ej.: basicHttpBinding)
    32. 32. •Modos de seguridad •Tipos de autenticación •Tipos de credenciales •Bindings
    33. 33. Comunicación segura WCF Endpoint Confidencialidad Integridad Código Autenticación CIA AuthZ del servicio Autorización Basada en roles Audits Auditoría Para la autenticación y autorización
    34. 34. WCF siempre posibilita la doble autenticación 1º Autenticación del servicio 2º Autenticación del cliente/usuario Credenciales válidas para un cliente Cuentas de Windows, nombres de usuario, certificados, etc Credenciales válidas para el servicio Cuentas de Windows y/o certificados
    35. 35. Modo de seguridad Transport La transmisión completa está protegida (usando SSL o SPNEGO) Modo de seguridad TransportCredentialOnly Transmisión de texto plano (poco recomendable) Soporta el uso de credenciales Windows, nombres de usuario y certificados SSL
    36. 36. Modo Message Se aplica seguridad al mensaje SOAP El transporte en sí mismo puede ser desprotegido Soporta el uso de credenciales Windows, nombres de usuario y certificados Modo TransportWithMessageCredential Combina seguridad a nivel de mensaje y de transporte Soporta el uso de credenciales Windows, nombres de usuario y certificados
    37. 37. Seguridad a nivel de transporte Seguridad muy probada y protocolos robustos Más rápida Mayor compatibilidad con otras plataformas Menos opciones de seguridad Seguridad a nivel de mensaje Requiere compatibilidad con WS* Más compleja Mayor capacidad de personalización y opciones
    38. 38. Binding Interoperabilidad Modos basicHttpBinding WS-I Basic Ninguno (Security) Profile 1.1 Transport TransportWithMessageCredential TransportCredentialOnly wsHttpBinding WS-* Message Transport TransportWithMessageCredential wsDualHttpBinding WS-* / Message wsFederationHttpBinding WS-Federation net* .NET Ninguno Transport Message netMsmqBinding .NET Ninguno Transport Message Both
    39. 39. En muchas ocasiones necesitaremos „CIA“ La variedad amplia de bindings hace que la mayoría de escenarios estén soportados Seguridad transporte vs. mensaje cliente vs. server vs. Autenticación mutua Tipo de credenciales a usar Después de autenticar, autorizar Basada en Windows Basada en Roles Autorización centralizada con un gestor de autorizaciones No nos olvidemos de auditar el servicio (monitorizar y analizar trazas con Service Trace Viewer)
    40. 40. Como hemos visto, WCF trae incorporadas una serie de herramientas muy valiosas desde .Net 3.0 SvcTraceViewer SvcConfigEditor Nuevas herramientas con .Net 3.5 Service Test Host Service Test Client
    41. 41. .NET 3.5 incorpora una herramienta de host WcfSvcHost.exe Se configura por línea de comandos Ensamblado del servicio Ensamblado de la librería de clases o aplicación Config file (puede ser diferente del habitual) Opcionalmente, puede iniciar un Test Client al mismo tiempo
    42. 42. .NET 3.5 incorpora un cliente WCF de prueba WcfTestClient.exe Podemos invocarlo por línea de comandos, aportando la URL del endpoint del servicio E.g. WcfTestClient http://server:port/url
    43. 43. WCF en MSDN http://msdn2.microsoft.com/en-us/library/ms735119.aspx WCF SDK http://msdn2.microsoft.com/en-us/library/ms751514.aspx WCF Community Forum http://forums.microsoft.com/MSDN/ShowForum.aspx?For umID=118&SiteID=1 WCF Community Site http://wcf.netfx3.com/ Programming WCF Services Juval Lowy, O'Reilly 2007 WCF Step By Step John Sharp, MS Press 2007

    ×