Web Service

TABLA DE CONTENIDO

QUE ES WEB SERVICES
PROTOCOLOS PARA IMPLEMENTAR WEB SERVICE
LENGUAJES
ELEMENTOS NECESARIOS
CREAR Y PUBLICAR UN SERVICIO WEB

WEB SERVICES

Un Web Service es un sistema de comunicación entre diferentes servidores, a través de la red, basado en mensajes que cumplen un estandar (SOAP) basado en XML [1]

Los Web Sevices permitirán a los responsables de las webs departamentales y/o de los centros, e incluso a los profesores con páginas personales, el acceder a datos corporativos para mostrarlos en sus paginas web con su estilo propio y lo que es más importante, sin tener que duplicar información [1]

Protocolos para implementar web services

Para que semejante grado de interoperabilidad sea posible es necesario que el «llamador» y el servidor
que implementa el servicio acuerden un protocolo mediante el cual se define como se invoca el servicio,
como se pasan parametros, como se recibe un resultado, como se manejan errores, etc. Los dos protocolos
mas usados son XML-RPC, que hemos cubierto en una nota previa y SOAP. En este articulo no vamos a describir el protocolo SOAP en si mismo sino
como puede usarse SOAP para escribir clientes y servidores basados en esta tecnologia.[2]

Lenguajes

Hay implementaciones de SOAP a nivel cliente y servidor en innumerables lenguajes como por ejemplo C,C++,Perl,Java, Ruby,K,etc. En esta nota vamos a usar SOAP::Lite, un modulo Perl que implementa en forma muy completa y a la vez
muy simple de usar el protocolo.

Elementos necesarios

Para probar los ejemplos de este tutorial debemos contar con:

  • Un web server que ejecute CGI, cualquiera
  • Un interprete de perl en la misma maquina
  • El modulo SOAP::Lite para el sistema operativo que estemos usando
  • [2]

crear y publicar un servicio Web

usaremos un editor de textos, (como el bloc de notas), ya que todo el código necesario para la creación del servicio Web lo vamos a incluir en un mismo archivo. El lenguaje a utilizar para escribir el código, será C#.

Los pasos a dar serán los siguientes:

  1. Abre el bloc de notas o cualquier otro editor de textos para crear el archivo HolaMundoWebS.asmx
  2. Para que .NET Framework sepa que este archivo es un servicio Web, tenemos que indicárselo mediante la directiva de ASP.NET @ WebService, en esa directiva se indicará el lenguaje en el que estará el código, así como el nombre de la clase:
    <%@ WebService Language=»C#» Class=»HolaMundoWebS» %>
  3. A continuación escribiremos el código que «normalmente» escribiríamos para usar con .NET Framework, en este caso será para definir la clase que contendrá el servicio Web.
  4. Empezaremos con la directiva using System.Web.Services;, la cual contiene las clases que nos permite crear servicios Web y clientes de servicios Web.

    Nota:
    Si necesitamos utilizar otras clases o tipos, tendremos que usar tantas directivas using (seguida del espacio de nombres) como necesitemos. Por ejemplo para poder utilizar las clases de acceso a bases de datos, escribiremos: using System.Data;

  5. [3]

  6. Una vez que hayamos importado todos los espacios de nombres que necesitemos, tendremos que declarar la clase propiamente dicha.
    Como recomendación, es conveniente usar el atributo WebService, (no confundirlo con la directiva de ASP.NET de igual nombre), para indicar el espacio de nombres al que pertenece esta clase, así como para indicar una descripción de la clase.

    WebService(Namespace=»http://www.elguille.info/NET/WebServices/»,
    Description=»Hola, Mundo al estilo Web Service»)]
    Public class HolaMundoWebS {

    Nota:
    La recomendación es usar como espacio de nombres, el sitio en el que estará alojado el servicio Web.

  7. A continuación se incluirá el código que contendrá esta clase, en especial la declaración de las funciones (o métodos) que nuestra clase expondrá desde el servicio Web, para ello debemos aplicar a cada uno de los métodos que queramos que el servicio Web exponga, el atributo WebMethod. Si no indicamos este atributo, el método no será visible (o accesible) desde el servicio Web.
    Con este atributo, también podemos indicar una descripción, la cual será expuesta por el servicio Web, de esta forma los usuarios tendrán una mejor idea de cual es la función de dicho método.

    [WebMethod(Description=»Devuelve la cadena Hola, Mundo»)]
    public string Saludar() {
    return «Hola, Mundo»;
    }

    [3]

  8. Podemos seguir añadiendo más métodos al servicio Web, pero hay que tener presente que para que ese método sea expuesto por el servicio Web, debe tener el atributo WebMethod.
  9. Una vez que hemos escrito todo el código de la clase, guardaremos el archivo y para poder hacerlo público, tendremos que publicarlo en un sitio Web. Debido a que este servicio Web está totalmente incluido en un archivo y no tiene más dependencias, sólo tendremos que copiarlo y ya estará listo para poder usarlo.

    Nota:
    Si no tenemos un sitio en Internet, podemos publicarlo en el sitio local de nuestro equipo: localhost.
  10. Para poder usar este servicio Web desde el explorador simplemente tendremos que indicar la dirección Web en la que tengamos alojado el servicio Web, por ejemplo, si lo hemos copiado en el servidor local (localhost), tendremos que escribir:
    http://localhost/HolaMundoWebS.asmx

En la figura 1, tenemos el servicio Web en el explorador:
Pagina del web service

WEBGRAFÌA
1. http://cv1.cpd.ua.es/ws/
2. http://www.malditainternet.com/tutorial-sobre-web-services-soap
3. http://www.elguille.info/NET/universidad/WebServices1/WebServices1.htm

Deja un comentario