Blog de Jorge Pedraza

enero 6, 2010

Servicios Web

Filed under: Aplicaciones Web — JorgePedraza @ 10:59 am
Tags: , , , ,

Hola la presente de este artículo es mostrar un resumen bien sencillo y directo sobre el tema de servicio web, buscando la posibilidad de crear una entrada base de generalizar dicho tema a través de un ritmo de trabajo propio. Durante el artículo encontrara descripciones breves acerca de Servicio Web, así como las diferentes vía para el desarrollo y finalmente el uso dentro aplicaciones, como en el caso de ASP.NET.

Servicios Web:

Un Servicio Web es una entidad programable, proporcionado un elemento particular de funcionalidades, como Lógica de aplicación. Puede ser usado internamente por  cualquier aplicación o externamente, a través de la internet por cualquier número de aplicaciones usando estándares como XML (Lenguaje de Marca Extensible) y HTTP (Protocolo de Transferencia de Hipertexto).
Algunos Especificaciones Núcleos de un servicio Web son:

  • SOAP: Es un Protocolo basado en XML.
  • WSDL: Es un formato XML describe la interfaz pública a los servicios Web
  • UDDI: Es un protocolo para publicar y descubrir Metadatos.

Existe dos vía primaria para crea Servicios en ASP.NET:

  1. Servicios Web basado en el Modelo ASP.NET (.asmx).
  2. Servicios Web basado en Microsoft Windows Communication Foundation (WCF).

La diferencia fundamental entre ellos es:
Los Servicios Web de ASP.NET se hospedan directamente en Microsoft Internet Information Service IIS, cuales son procesados y ejecutados a través de protocolo de transferencia de Hipertexto (HTTP).
Ahora
Los Servicios Web de Windows Communication Foundation (WCF) pueden trabajar con una variedad de Hosts, Protocolos y Clientes.
Hosts: IIS,  Aplicaciones Consola residente, Servicio de Windows, etc.
Protocolos: HTTP, TCP, MSMQ, Binary HTTP, etc.
Clientes: Windows, Web, Mobile, etc.

Intentemos ver un poco a fondo el tema de Servicio Web (como ejemplo informativo de este artículo se usa la palabra miservicio):

Servicios web de ASP.NET (*.asmx):

Se define como un archivo de código con extensión .asmx  y relacionado con clase (*.vb  o *.cs).  ASP.NET luego envuelve este código como objeto de servicio web. Este objeto conoce como exponer el servicio web. Este incluye deserializar las solicitudes SOAP, ejecución de código .NET Framework, y serializar su respuesta para ser enviado de vuelta al cliente solicitante como un mensaje SOAP.
Los archivos de un proyecto de servicio web de ASP.NET (*.asmx) en Visual Studio son:

  • miservicio.asmx (Archivo de acceso al servicio Web).
  • miservicio.vb  o miservicio.cs   (Archivo de Clase relacionado con el miservicio.asmx).
  • Web.Config (Archivo de Configuración del servicio web ASP.NET)

La clase miservicio.vb contiene el código base para crear funcionalidades dentro del servicio, un ejemplo de esto es la función Holamundo que retorna un valor del tipo primitivo string que dice “Hola mundo”:
<WebMethod()> Public Function HolaMundo as String
Return “Hola Mundo”
End Funtion
Recuerde para que una función este visible desde el servicio web; se debe anteponer el atributo <WebMethod()>

Pasos claves para crear un Servicio Web de ASP.NET:

  1. Se define y crea las funciones que va ser expuesta en el servicio web.
  2. Hospedar el servicio dentro de IIS (Internet Information Service)
  3. Se referencia y llama el servicio desde la aplicación cliente.

Para más detalles del tema (Servicios web XML con ASP.NET)

Servicios Web de WCF:

WCF (Windows Communication Foundation):  Es modelo de programación Unificada, el cual se define como un simple vía para escribir servicios y por tanto unifica elementos como Servicio Web (*.asmx), .NET Remoting, Message Queue (MSMQ), Enterprise Services (COM+) y Servicios web Mejorados. WCF no remplaza estas tecnologías sobre una base individual, más bien suministra un modelo simple de programación que puede usar para aprovechar todo estos elementos a la vez.
La aplicación WCF tiene múltiple capas que trabajan juntas para suministrar un ancho rango de funcionalidades y opciones para construir aplicaciones orientadas a servicio (SOA).

Los archivos de un proyecto de servicio web de WCF en Visual Studio son:

  • miInterfaz.vb o miInterfaz.cs     (Archivo de definición de Interfaz).
  • miservicio.vb  o miservicio.cs    (Archivo de clase relacionado con miservicio.svc).
  • miservicio.svc  (Archivo de acceso al servicio).
  • Web.Config  (Archivo de Configuración del servicio).

El archivo miInterfaz.vb contiene el código base para crear los títulos específicos de las funciones del servicio (llamado Contracto).
<ServiceContract()> Public Interface IService1
    <OperationContract()> Function HolaMundo() As String
End Interface

Atributos Clave de WCF usado dentro del archivo de Interfaz:

  • ServiceContract: Indica si una Interfaz o clase es la base del servicio de WCF.
  • OperationContract: Es usado para marcar métodos de lado de la interfaz o clase como operaciones de Servicios.
  • DataContract: Es usado para marcar tipos escritos (Clases, Enumeraciones, Estructuras) como participantes en la serialización WCF vía de DataContractSerializer.
  • DataMember: Es usado para marcar Individuales propiedades y campos que desea que se serialice.

Ahora el archivo miservicio.vb vinculado a mi servicio.svc, contiene el código que implementa y usa los contractos definido en el archivo de interfaz miInterfaz.vb.
Public Class Service1
    Implements IService1
    Public Function HolaMundo() As String Implements IService1.HolaMundo
   Return “Hola Mundo desde Servicio Web de WCF” ‘Aquí se establece funcionalidad especifica
    End Function
End Class
Y finalmente en el archivo web.config se define los EndPoints para obtener conectividad del servicio a través de host. Para más detalles pulsa aquí

Resumen  de la arquitectura de WCF

  1. Capa de Contractos: Es donde se define los contractos que expone en un servicio para clientes finales. Se menciona:  Service, Operation, Data Message, Policy and Binding.
  2. Capa de Tiempo de Ejecución: Controla como su servicio es ejecutado y como el cuerpo del mensaje es procesado. Se  menciona: Transactions, Concurrency, Dispatch, Parameter Filtering, Throttling, Error, Metadata, Instance, Message Inspection.
  3. Capa de Mensajería: Representa la pila del canal de WCF en términos de protocolo y transporte.  Se menciona: HTTP, TCP, Named Pipes, MSMQ, Transaction Flow, WS Security, WS, Reliable Messaging, Encoding (Text, Binary, Etc.)
  4. Capa de Hospedaje: Se define el hospedaje o ejecutable, que ejecuta el servicio en proceso.  Se menciona:  IIS, Windows Activation Service WAS, Windows Service, EXE,  COM+ (Enterprise Services)

Pasos claves para crear un servicio Web de WCF con ASP.NET son:

  1. Define el contrato del Servicio (Archivo de Interfaz).
  2. Implementar o escribir el contracto del servicio.
  3. Configurar los Endpoint(s) del Servicio.
  4. Hospedar el servicio en una aplicación (IIS, Servicios de Windows, Aplicación Consola, etc.).
  5. Se referencia y llama el servicio desde la aplicación cliente.

Para más detalles del tema (Servicio Web de WCF).

Finalmente Aquí dejo un ejemplo bien sencillo de los Servicios Web (ASP.NET y WCF) y su uso dentro proyecto de ASP.NET TestService (ASP.NET 3.5 – Visual Basic 2008)

4 comentarios »

  1. Está bueno el artículo…

    Comentario por Oscar Ramirez — enero 6, 2010 @ 11:50 am | Responder

  2. Me parece que es un buen resumen de los dos servicios web, te ubica bien en el contexto del estado del arte de los dos modelos de servicios web

    Comentario por John Ramirez — febrero 4, 2010 @ 12:25 am | Responder

    • Gracias por tu feedback!.

      Este artículo tiene como objetivo tratar de ofrecer una visión clara y precisa sobre el tema de Servicios Web con enfoque hacia el público en general; abriendo posibilidades de generalizar dicho tema bajo determinado ritmo de trabajo propio.

      Saludos.

      Comentario por jorgepedraza — febrero 4, 2010 @ 11:14 am | Responder

  3. […] Tu día más ocupado del año fue el 4 de febrero con 402 visitas. La entrada más popular de ese día fue Servicios Web. […]

    Pingback por Los números de 2010 « Blog de Jorge Pedraza — enero 2, 2011 @ 7:32 am | Responder


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: