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
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.
6. 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
7. 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)
8. ASMX Remoting
Interoperabilidad Extensibilidad
Composición
WSE
Desarrollo Desarrollo
orientado a Protocolos
orientado a
atributos WS-* mensajes
10. 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
11. 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
12. 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
17. 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
18. 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
20. 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
23. 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
34. 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
35. 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
36. 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
37. 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
38. 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
39. 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
40. 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)
41. 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
42. .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
43. .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
44. 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
Notas del editor
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