• Save
Introducción a WCF
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Introducción a WCF

  • 12,788 views
Uploaded on

Una introducción al desarrollo de aplicaciones con WCF

Una introducción al desarrollo de aplicaciones con WCF

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
12,788
On Slideshare
12,725
From Embeds
63
Number of Embeds
4

Actions

Shares
Downloads
0
Comments
6
Likes
11

Embeds 63

http://www.slideshare.net 58
http://cleberprogrammer.wordpress.com 2
https://www.blogger.com 2
http://www.linkedin.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    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

Transcript

  • 1. Pablo Espada Esbupa.com
  • 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. Contexto
  • 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. 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. 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. ASMX Remoting Interoperabilidad Extensibilidad Composición WSE Desarrollo Desarrollo orientado a Protocolos orientado a atributos WS-* mensajes
  • 8. Conceptos básicos
  • 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. 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. 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. Cliente Servicio Message 13
  • 13. Cliente Servicio Message Endpoint Endpoint Endpoint Endpoint 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. 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. 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. 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. Mi primer servicio WCF
  • 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. Implementación del servicio Calculadora
  • 21. Primero, debemos habilitar WMI en el Editor de Configuraciones de WCF
  • 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. Habilitar la opción en el WCF Conf. Editor
  • 24. Abrir el Performance Counter y seleccionar “añadir contador”
  • 25. Buscar la sección ServiceModelEndpoint 3.0.0.0 y seleccionar los parámetros Calls, Calls Per Second y Calls Duration
  • 26. Desde ese momento, podremos monitorizarlas en el menú principal del Perfomance Monitor
  • 27. Volvemos al menú de edición de configs WCF
  • 28. Habilitamos el logging y ajustamos su nivel
  • 29. Desde este momento podemos utilizar el Service Trace Viewer (Windows SDK for VS)
  • 30. También contamos con un visor gráfico de trazas
  • 31. Podemos ver además el archivo XML y el contenido del mensaje (esto último si no usamos encriptación, ej.: basicHttpBinding)
  • 32. •Modos de seguridad •Tipos de autenticación •Tipos de credenciales •Bindings
  • 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. 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. 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. 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. 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. 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. 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. 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. .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. .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. 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