Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo...

Post on 23-Jan-2016

217 views 0 download

Tags:

Transcript of Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo...

Windows Communication Foundation

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

¿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:

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

¿Cómo funciona?

Datos

Modelo de Servicio

Dirección, Vínculo, Contrato y

Comportamiento

Capa Canal

Protocolos, Encoders, y Transportes Mensajes

Metadatos

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

¿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)

¿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…

Desarrollando un servicio y cliente simple

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

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

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

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

Hospedando un Servicio TCP y Configurando los vínculos

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

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

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>

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

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

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

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

Seguridad a nivel de mensages

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.

© 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.