Mostrando las entradas con la etiqueta WCF. Mostrar todas las entradas
Mostrando las entradas con la etiqueta WCF. Mostrar todas las entradas

En esta oportunidad les dejo la tercera y ultima entrega de esta serie de post acerca de Windows Communication Foundation. En esta encontraran los siguientes temas:
  • Operaciones
  • Gestión de Instancias
  • Transacciones
  • Veamos punto por punto:
Operaciones en WCF
 
Una operación de servicio es un procedimiento definido en el código de un servicio que implementa la funcionalidad de una operación.
 
Los mensajes son la base de la comunicación de una solución distribuida. Los mensajes son intercambiados de diversas formas Existen 3 modos de comunicación entre el cliente y el servicio, estos son:
  • Simplex: mensajes de una sola vía donde no se espera respuesta alguna.
  • Request Replay: mensajes de dos vías de modo síncrono, es decir se envía el mensaje y se aguarda por la respuestas
  • Dúplex: mensajes de dos vías de modo asíncrono.
Gestión por Instancias
 
Se refiere a la manera que un servicio se encarga una solicitud de un cliente. Las cuales se presentan 3 formas:
  • Per-Call: la instancia de servicio se creará para cada solicitud de cliente, es decir, se crea una instancia del servicio cada vez que el cliente invoca una operación y esta se destruye cuando se completa la operación.
  • Per-Session: se basa en el período de sesiones lógicas entre el cliente y el servicio se mantendrá, es decir, se crea una instancia nueva cuando una aplicación cliente invoca por primera vez a una operación del servidor y permanece activa hasta que el cliente cierra la conexión, permaneciendo activa hasta entonces para atender otras peticiones del mismo cliente. Al período desde que se crea hasta que se destruye la instancia es a lo que se llama sesión.
  • Singleton: todos los clientes están conectados de forma independiente a la misma instancia única, es decir, se crea una instancia la primera vez que el cliente invoca una operación del servidor y permanece viva para atender todas las peticiones del mismo cliente y lo que es más importante, también todas las peticiones de otros clientes que se conecten al mismo servicio. La instancia se destruye cuando la aplicación que hace de host se detiene.
Transacciones
 
Permite a las aplicaciones cliente crear transacciones y propagarlas más allá de los límites del servicio
 
Las propiedades que presenta son:
  • Atómico
  • Consistente
  • Aislado
  • Duradero
La programación transaccional requiere trabajar con un recurso que es capaz de participar en una transacción, y ser capaz de confirmar o deshacer los cambios realizados durante la operación
 
Presentación

Demos:
 
Además comentar que este material se trabajo en conjunto con Roberto “Humanidad” Camacho (@_SamuraIT).
 

Fuentes:
 

Aquí les dejo la siguiente parte sobre WCF (Windows Communication Foundation), este contiene la siguiente agenda:
  • Endpoint
  • Binding
  • Contract
  • Hosting
  • Mensajes
  • Intercambio de Metadatos (Metadata Exchange)
Para entenderlos… revisemos el concepto de cada uno de ellos:

Un extremo es un medio de comunicación, es el nexo de la transmisión de mensajes. Recordemos que un servicio es un programa que expone sus capacidades a través de una colección de endpoints y su descripción. Entonces es un conjunto de endpoints (extremos) que proveen capacidades usables a los clientes.

Un extremo consta de 3 partes: el famoso ABC (Address, Binding y Contract). El programador o desarrollador puede personalizar el tipo de comunicación, la seguridad de la comunicación, la codificación, etc.

La dirección (address) es la dirección de red del endpoint. Esta define:
  • El protocolo de transporte que se va a utilizar
  • El nombre de la máquina donde el servicio está ejecutándose (propiedades)
  • La ruta en dicha máquina que identifica al servicio
El enlace (binding) define el canal y los parámetros que se usaran en la transmisión de datos, entre sus características más importantes tenemos la mensajería confiable, seguridad y la selección de transporte de los datos. Es decir, este define:
  • Los elementos de protocolo, definen la seguridad, contexto, sesiones y transacciones
  • Los elementos de transporte, definen la capa de transporte a utilizar
  • Los elementos de mensajería, definen como se codifica la información transmitida en la capa de trasporte (binario por ejemplo)
El contrato (contract) es una colección de operaciones, especifica lo que el endpoint puede comunicar al entorno. Los tipos de contratos que podemos especificar son:
  • Service Contract: es una interfaz que implementa un servicio (Se publica utilizando WSDL, esto lo veremos cuando postee un ejemplo). El Operation Contract son los métodos que forman parte de la interfaz, y que podrán ser accedidos por los clientes del servicio
  • Data Contract: define las clases y estructuras complejas que puede retornar o recibir un servicio. Es implícito si el tipo de dato es serializable, es decir el tipo de dato se puede pasar directamente sin declararlo en el contrato. El Member Contract son los atributos o propiedades del objeto que forma parte de un data contract y podrán ser serializados
  • Message Contract: especifica la estructura, cabecera y cuerpo, del mensaje SOAP. (Message Header y MessageBody). Nos permite definir si un atributo de una clase va viaja en la cabecera o en el cuerpo de un mensaje.
Bueno edito el post para comentar que sin el apoyo de mi amigo @_samuraIT no se hubiera podido terminar estos post sobre WCF; se trabajo en conjunto en la creación, edición y revisión de estos.
 
Si desean saber más de él, los invito a visitar su blog y la página de la empresa que esta construyendo junto a mis otros amigos @Jersson y @jopoa1987.
 
En la presentación ven que hay demos las cuales son:

Demo 1
Demo 2

Demo 3
Presentación:
Fuentes:

Hola! en esta ocasión voy a tratar el tema de Windows Communication Foundation. Esta es una de mis tecnologías de programación favoritas ya que es de gran utilidad hoy en día, además te proporciona tantas oportunidades, en especial las oportunidades laborales ya que esta de “moda”. Esta relación de post estará enfocada a personas que deseen conocer el WCF.

Primero un pequeña introducción ...

La aceptación global de servicios Web que incluye los protocolos estándar para la comunicación de aplicación a aplicación, ha cambiado el desarrollo de software. Por ejemplo, las funciones que proporcionan los servicios Web ahora incluyen seguridad, coordinación de transacciones distribuidas y una comunicación fiable. Las ventajas de los cambios en servicios Web se deberían reflejar en las herramientas y tecnologías que los programadores utilizan. Windows Communication Foundation (WCF) está diseñado para ofrecer un enfoque manejable a la informática distribuida, interoperabilidad ancha y asistencia directa para la orientación sobre el servicio.

WCF simplifica el desarrollo de aplicaciones conectadas a través de un nuevo modelo de programación orientado a servicios. WCF admite muchos estilos de desarrollo de aplicaciones distribuidas proporcionando una arquitectura superpuesta. En su base, la arquitectura de canal de WCF proporciona primitivos asíncronos de paso de aprobación de mensajes sin tipo. Generados sobre esta base están las funciones de protocolos para un intercambio de datos de transacción seguro y fiable, así como una amplia variedad de opciones de codificación y transporte.

El modelo de programación tipificada (llamado modelo de servicio) está diseñado para facilitar el desarrollo de aplicaciones distribuidas y proporcionar a los desarrolladores pericia en servicios Web ASP.NET, comunicación remota .NET Framework y Enterprise Services, así como a aquellos que llegan a WCF con cierta experiencia en desarrollo. El modelo de servicio presenta una asignación sencilla de conceptos de servicios Web para aquellos de Common Language Runtime (CLR) .NET Framework, incluyendo la asignación ampliable y flexible de mensajes para la implementación de servicios en lenguajes como Visual C# o Visual Basic.

[Este fue sustraído de MSDN - WCF]

Vamos a entender esta roca … y agregar algunas cosas más

WCF también es conocido también como “Índigo”; es el modelo de programación unificado para la creación de aplicaciones orientadas a servicios (creación y/o desarrollo de aplicaciones distribuidas y la reutilización de estas), nos brinda una gama de librerías que nos permite publicar nuestras aplicaciones/servicios a la web. Se puede considerar que tiene la misma lógica que un servicio Web.

Debemos tener en mente que WCF es una serie o es un conjunto de tecnologías Microsoft para “Sistemas Conectados”, por ello vemos capacidades que antes podíamos ver en otras tecnologías. Su objetivo es simplificar el desarrollo de aplicaciones.

Nos ayuda a crear y definir qué es lo que debe hacer un servicio, que técnica de comunicación emplear y como se llevara a cabo. Además nos ayuda a desarrollar de manera horizontal la solución de comunicaciones.

WCF permite describir, publicar, implementar y consumir servicios, no solo con la interoperabilidad de los Web Services entre plataformas servidor y cliente, sino también utilizando diferentes plataformas de transporte de forma transparente al resto de la arquitectura.

Nos permite utilizar diversas formas de comunicación (transporte, formato y mensaje).

WCF usa los protocolos estándares de la industria que permiten a este interoperar con cualquier plataforma que soporte estos protocolos

WCF apareció en el Framework.Net 2.0 y poco a poco tiene más importancia dentro de este. Cada versión de Framework que sale o se publica, siempre sale con novedades en el ámbito WCF.

WCF está comprendida de 4 capas: Contratos, Tiempo de ejecución de servicios, Mensajería y Activación/Alojamiento.

Presentación



Fuentes:
http://msdn.microsoft.com/es-es/netframework/aa663324.aspx
http://msdn.microsoft.com/es-es/library/bb332338.aspx
http://es.wikipedia.org/wiki/Windows_Communication_Foundation

Durante esta semana estaré publicando las demás partes y cada una de estas tendran 1 o 2 ejemplos.
 
Saludos
 
William