windows communication foundation agenda ¿qué es windows communication foundation? ¿cómo...

26

Upload: german-espinoza-cuenca

Post on 23-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos
Page 2: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Windows Communication Foundation

Page 3: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Agenda• ¿Qué es Windows Communication

Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión

Page 4: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

¿Qué es Windows Communication Foundation?

Muchas opciones confusas y complicadas

Remoting COMD/COM

COM+MSMQWSE

ASMX

Una alternativa simple es siempre la mejor opción

Windows Communication Foundation

Ayer:

Hoy:

Page 5: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Agenda• ¿Qué es Windows Communication Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión

Page 6: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

¿Cómo funciona?

Datos

Modelo de Servicio

Dirección, Vínculo, Contrato y

Comportamiento

Capa Canal

Protocolos, Encoders, y Transportes Mensajes

Metadatos

Page 7: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Agenda• ¿Qué es Windows Communication Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión

Page 8: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

¿Cómo se utiliza?[ServiceContract]public interface IMyInterface { [OperationContract] public MyOutputType MyMethod(MyInputType myData);}

Definición del Contrato de Servicio

<service name=“MyService”> <endpoint address=“MyAddress” binding=“netTcpBinding” contract=“IMyInterface” /><service/>

Configuración

[ServiceBehavior(InstanceContextMode=Single]public class MyService: IMyInterface { public MyOutputType MyMethod(MyInputType myData) { //my code … }}

Implementación del Contrato

(Tipo de Servicio)

Page 9: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

¿Cómo lo Despliego?

• Para servicios HTTP sobre Windows XP® SP2 & WS2K3• Para cualquier servicio sobre Windows Vista® and Windows

Server® “Longhorn” • Probada confiabilidad, escalabilidad, y seguridad• Requiere un archivo .svc para identificar el tipo de servicio

Web Host dentro de IIS:

Self-Host dentro de cualquier proceso .NET:

• Disponible para cualquier servicio • Aplicaciones de consola, Aplicaciones windows, Servicios .NET

NT…

Page 10: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Desarrollando un servicio y cliente simple

Page 11: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Agenda• ¿Qué es Windows Communication Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión

Page 12: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Todo a cerca de los VínculosUd. Puede seleccionar un vínculo pre-definido :

<endpoint name=“MyService” address=“MyAddress” binding=“netTcpBinding” contract=“IMyInterface” />

NetPeerTcpBinding

NetMSMQBinding

NetNamePipesBinding

NetTcpBinding

WsHttpBinding

BasicHttpBinding

Binding

.NET Peer Peer

.NET.NET via MSMQ

.NET.NET across processesSecure, reliable duplexed

.NET.NET across processesSecure, reliable duplexed

Basis for WS-* interopSupports WS-Security, WS-RM, WS-Tx

Basic Profile 1.1 Interop and Intergration w/ASMX

Purpose

Page 13: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Ud puede personalizar un vinculo pre-definido

<services> <service name=“MyService”> <endpoint address=“MyAddress” binding=“wsHttpBinding” bindingConfiguration=“MyReliableBinding” contract=“IMyInterface” /> <service/></services><bindings> <wsHttpBinding> <binding name=“MyReliableBinding”>

<reliableSession enabled=“true” ordered=“true” </binding> </wsHttpBinding></bindings>

Todo a cerca de los Vínculos

Page 14: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Ud puede definir vínculos personalizados<?xml version=“1.0” encoding=“UTF-8” ?><configuration> <system.serviceModel> <services> <service

name=“MyService”><endpoint address=“MyAddress” binding=“customBinding” bindingConfiguration=“MyCustomBinding” contract=“IMyInterface” />

</service> </services> <bindings> <customBinding> <binding name="MyCustomBinding"> <reliableSession advancedFlowControl="true” /> <security authenticationMode=“Kerberos” />

<binaryMessageEncoding /> <tcpTransport maxMessageSize=“9223372036854775807" />

</binding> </customBinding> </bindings> </system.serviceModel></configuration>

Todo a cerca de los Vinculos

Page 15: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Hospedando un Servicio TCP y Configurando los vínculos

Page 16: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Agenda• ¿Qué es Windows Communication Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión

Page 17: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Todo a cerca de DireccionesLa porción del esquema de una dirección correspondiente

al protocolo de transporte:

Los esquemas indican cuales protocolos han sido estandarizados.

NetNamedPipesBinding

NetMSMQBinding

NetTcpBinding

BasicHttpBinding, WsHttpBinding

Binding

net pipe://…

net msmq://…

net tcp://…

http://...

Scheme

Page 18: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Todo a cerca de DireccionesUn punto de término de una Dirección es relativo

a la base de la dirección:

Para un servicio Web-Hosted, la dirección base es la del directorio virtual

<services> <host> <baseAddresses> <add baseAddress="http://localhost:8000/MyBaseAddress"/> </baseAddresses> </host> <service name=“MyService”> <endpoint address=“MyEndpointAddress” binding=“wsHttpBinding” bindingConfiguration=“MyReliableBinding” contract=“IMyInterface” /> <service/></services>

Page 19: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Agenda• ¿Qué es Windows Communication Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión

Page 20: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Todo a cerca de los ContratosObserve otra vez esta declaracion de servicio:

[ServiceContract]public interface IMyInterface{ [OperationContract] public MyOutputType MyMethod(MyInputType myData);}

¿Cómo MyOutputType y MyInputType son serializados dentro de los mensajes?

• La Serialización es hecha por DataContractSerializer por defecto• Manipulación incorporada para los tipos de.NET Framwork• Tipos definidos por el usuario requiren Data Contracts:

[DataContract]public class MyDataContract{ [DataMember]

public string MyField; }

[ServiceContract][XmlSerializerFormat]public interface IMyInterface

• Se puede optar por XmlSerializer: pero es más lento

Page 21: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Agenda• ¿Qué es Windows Communication Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión

Page 22: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Todo sobre la SeguridadAutenticación• Un mensaje puede incorporar un token de

seguridad• El tipo de token de seguridad se configura con el vínculo

• Soporte incoporado para estos tipos de token: • Windows (Kerberos or NTLM)• Username (un usuario y una clave)• Certificado X.509• CardSpace tokens• SAML tokens

• Se puede agregar soporte para token personalizados

Autorización• Configuración de Autorización• Opciones:

• Para usuarios Autenticados usando Token de Windows:

• Permisos principales• Proveedor de Roles de ASP.NET

• Para usuarios Autenticados usando otros token:• Administrador del Servicio de Autorizaciones

Page 23: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Seguridad a nivel de mensages

Page 24: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

Conclusiones

Interoperable ProductivoDesarrollo Orientado a Servicios

• Soporte a la especificación de WS-*

• Compatible con tecnologías para distribución de aplicaciones de Microsoft

• Unifica las tecnología de distribución actuales

• Desarrollo basado en atributos

• Integración con Visual Studio

• Permite el desarrollo de servicios con bajo acoplamiento

• Comunicación basada en configuración

Windows Communication Foundation establece un modelo de programación unificado para la programación de sistemas distribuidos,

orientado a servicios.

Page 25: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos
Page 26: Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo funciona? ¿Cómo se usa y despliega? Vínculos Direcciones Contratos

© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.

MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.