sábado, 8 de diciembre de 2012

WS-Trust

 

WS-Trust

 
Utiliza las bases de WS-Security que son proveer seguridad al intercambio demensajes SOAP, y define primitivas adicionales y extensiones para elintercambio de security tokens para permitir la obtención y diseminación decredenciales entre distintos dominios de confianza.
 
El objetivo principal de WS-Trust es habilitar a las distintas aplicaciones aconstruir intercambios confiables demensajes. La confianza es representada a través del intercambio eintermediación de security tokens. La especificación provee una forma para solicitar,renovar y validar estos security tokens.
 
El modelo de seguridad en web services definido en WS-Trust está basado en un procesoen el cual un servicio puede requerir que todo pedido que se le haga cumpla conun conjunto de claims. Si el pedido viene sin los claims requeridos, se debe rechazaro ignorar el mismo. La manera que tiene un servicio de indicar cuales son los claimsrequeridos es mediante políticas de seguridad definidas sobre el propioservicio.
 
En caso el cliente no tiene el(los) token(s) necesarios para cumplir los requisitos de seguridad indicado por el servicio en sus políticas, el mismo puede contactar a las autoridades apropiadas y solicitar los tokens necesarios. Estas autoridades se indican en la política del servicio, y son llamadas Security Token Services(STS).
 
En la figura siguiente se muestra a que cualquier servicio puede ser un cliente, ya su vez que el STS es un Web Service. Las flechas muestran posibles vías de comunicación;el cliente (requestor) puede obtener un token del STS o puede haberlo obtenido por otro medio.
 
 
 
 
 Por otro lado, consumir los servicios a través de los diferentes sistemas web con frecuencia requiere utilizar niveles de seguridad (formatos token). Los proveedores de servicios y los consumidores están repartidos en diferentes dominios de seguridad utilizando diferentes tipos de token o diferentes tecnologías de implementación que no dan soporte a un conjunto común de formatos token. Utilizar WS-Security para transmitir la información de autenticación de los usuarios no es suficiente para garantizar la interoperabilidad de la autenticación entre los consumidores y los proveedores. Aquí es donde el uso de WS-Trust puede ayudar a apalancarlos mecanismos transparentes del consumidor para llevar a cabo la transformación de token con Security Token Service (STS).
 
Security Token Service (STS) es un componente estándar de una arquitectura de seguridad que permite operaciones como:
  • La autenticación
  • La autorización
  • La validación de la identidad
  • La correlación de la identidad
  • El intercambio cambio de tokens de seguridad

Secuencia del diagrama de la transformación del token



 
 

WCF - Windows Communication Foundation

 

Windows Communication Foundation

 
WCF es un modelo unificado de desarrollo de aplicaciones con arquitectura orientada a servicios ( SOA), independiente de detalles de implementación como el protocolo de transporte, la seguridad, etc.
 
WCF consiste en un número de bibliotecas de clase contenidas en el NET Framework 3, para desarrollar sistemas que envían mensajes entre servicios y clientes sobre diversos mecanismos de transporte.
 
 
 
Características
  • Cuenta con un modelo de programación unificado.
  • Es la unificación de numerosas capacidades que antes podíamos encontrar en distintas tecnologías (como WS, WS*, Remoting, MSQueue, DCOM, etc).
  • Permite separa claramente el desarrollo de lo que un servicio debe hacer, de la técnica de comunicaciones, y del lugar donde se hosteara un servicio.
  • Se puede desarrollar sin tener que estar pensando el las capas de transporte y como se realizará la comunicación. O como será implementada los mecanismos de cifrado que aseguraran el canal de comunicaciones.

  • WCF permite crecer tanto horizontal como verticalmente nuestra solución de comunicaciones.
  • Las comunicaciones crecen notablemente, porque da la libertad al desarrollador de utilizar múltiples transportes, distintos tipos de formatos de mensajes y diversos patrones de mensajes.
  • El propio programador puede crear sus mecanismos de comunicación y/o utilizar l as bases que el framework hoy proporciona.
 
Las tecnologías de comunicación prexistentes que WCF engloba son:
· ASP.NET Web Services (incluyendo las WSE, Web Service Enhancements)
· Microsoft Message Queue
· Enterprise Services/COM+
· .NET Remoting
Ejemplos donde se puede hacer uso de WCF
· Un servicio seguro para procesar transacciones comerciales.
· Un servicio que proporciona datos actualizados a otras personas, como un informe sobre tráfico u otro servicio de supervisión.
· Un servicio de chat que permite a dos personas comunicarse o intercambiar datos en tiempo real.
· Una aplicación de panel que sondea los datos de uno o varios servicios y los muestra en una presentación lógica.
 
 
Ventajas
  • Más flexible en los transportes: se puede usar HTTP, NetTcp, MSMQ, muchos más
  • Se pueden alojar en el IIS, era, o auto-organizada en un servicio de Windows, en una aplicación de consola, en una aplicación Winforms o WPF
  • Puede interoperar con SOAP 1.1 y SOAP 1.2
  • Proporciona un único modelo de programación tipado de aplicaciones distribuidas basadas en servicios.
  • Permite el desarrollo de aplicaciones . NET capaces de interoperar con aplicaciones desarrolladas con otras tecnologías (java, php .....).
 
Diferencias entre WCF con Web Service
  • WCF es la evolución de las tecnologías web service de Microsoft de años anteriores.
  • WCF provee un amplio rango de funcionalidad por encima de web services, con mejores características en aspectos de calidad como flexibilidad, portabilidad y mantenibilidad.
  • Los web services sólo pueden ser accedidos a través de HTTP, mientras que WCF se puede hospedar en un servidor web, WAS, puede ser un servicio de windows, y usa una variedad de protocolos más amplia.
  • En la plataforma .NET, la serialización de los datos de los web services se hace a través de la lase XmlSerializer , mientras que para WCF se usa la clase DataContractSerializer . Cabe anotar que esta última es más optimizada para WCF, por lo que provee una mejora en rendimiento a comparacion del XmlSerializer .
  • Al DataContractSerializer se le puede indicar cuáles propiedades de las entidades de datos serán serializadas. Esto permite optimizar el tamaño de las peticiones de datos que se generan.
  • Hay clases que no se pueden serializar a través de un web service en .NET que si tienen soporte en WCF (HashTable por ejemplo).

Estilos de integración

Shared Database(Acceso compartido a una misma base de datos)

Necesidad de tener la última versión de los datos, rápida y consistentemente. Se debe tener una base de datos centralizada para que las aplicaciones la puedan acceder cuando sea que la necesiten. Las aplicaciones no se preocupan por el formato de los archivos puesto todas conocen SQL a través de diferentes herramientas (clientes SQL). Sus desventajas:

  • Necesidades reunidas de las aplicaciones, haciendo que se origine un esquema unificado difícil para trabajar entre los programadores.
  • Conflictos humanos debido a las políticas establecidas en el esquema.
  • Problemas al no querer trabajar con paquetes externos, sino con sus propios esquemas.
Cuellos de botella y bloqueos debido a las modificaciones hechas por las múltiples aplicaciones.



Remote Procedure Call

Las aplicaciones clientes ejecutan servicios remotos en forma sincrónica  
Compartir datos a menudo no es suficiente; también se requiere compartir funcionalidad. Los datos se pueden enviar utilizando encapsulamiento al llamar a una función, haciéndolo un mecanismo poderoso. Las aplicaciones son susceptibles a los cambios continuos sobre una base de datos. Se requiere crear mecanismos con encapsulamiento de datos y proveer una o más interfaces que permita interactuar a las aplicaciones, manteniendo los datos de cada una consistentes (CORBA, Java RMI, COM, .NET Remoting, etc; siendo la moda actual Web Services a través de SOAP y XML).
 
 





Servicio Web


Servicio Web

                                         SOAP vs REST

 

Antes de entrar a la explicación de lo que es SOAP y Rest sus características, diferencias, ventajas, desventajas y demás; es necesario tener una idea de lo que es realmente un Servicio Web y cómo podemos aplicarlo.

Servicio Web

Los Servicios Web surgieron ante una necesidad de estandarizar la comunicación entre diferentes plataformas (PC, Mainframe, Mac, etc.) y lenguajes de programación (PHP, C#, Java, etc.).

Pero que es realmente un Servicio Web...según lo investigado en la web lo definen como una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Los proveedores ofrecen sus servicios como procedimientos remotos y los usuarios los solicitan llamando a estos procedimientos a través de la Web. A su vez proporcionan mecanismos de comunicación estándares entre diferentes aplicaciones, que interactúan entre sí para presentar información dinámica al usuario. Para proporcionar interoperabilidad y extensibilidad entre estas aplicaciones, y que al mismo tiempo sea posible su combinación para realizar operaciones complejas, es necesaria una arquitectura de referencia estándar.
En la siguiente imagen, muestra como una aplicación puede hacer uso del Servicio Web a diferentes plataformas obteniendo de cada una de ellas diferentes respuestas, según el corn del negocio que manejan.







REST

 

Se refiere estrictamente a una colección de principios para el diseño de arquitecturas en red, estos principios resumen como los recursos son definidos y diseccionados, frecuentemente es utilizado en el sentido de describir a cualquier interfaz que transmite datos específicos de un domino sobre HTTP sin una capa adicional, como hace SOAP.

Es importante tener en cuenta que REST no es un estándar, ya que es tan solo un estilo de arquitectura. Aunque REST no es un estándar, está basado en estándares.







SOAP


SOAP indica que es un protocolo para el intercambio de mensajes sobre redes de computadoras, generalmente usando HTTP. Está basado en XML, a diferencia de DCOM y CORBA que son binarios; esto facilita la lectura por parte de los humanos, pero también los mensajes resultan más largos y, por lo tanto, considerablemente más lentos de transferir.

Existen múltiples tipos de modelos de mensajes en SOAP pero, por lejos, el más común es el RPC, en donde un nodo de red (el cliente) envía un mensaje de solicitud a otro nodo (el servidor) y el servidor inmediatamente responde el mensaje al cliente.

¿Pero cuál de los dos servicio son los más usados, SOAP o REST?


Actualmente, muchos diseñadores de Servicios Web están llegando a la conclusión que SOAP es demasiado complicado, obviamente . Por tanto, están comenzando a utilizar Servicios Web basados en REST para mostrar cantidades de datos masivos. Este es el caso de grandes empresas como eBay y Google.