XML Web Services

Los servicios web son componentes de aplicaciones web.

Los servicios web se pueden publicar, encontrar y utilizar en la web.

Este tutorial presenta WSDL, SOAP, RDF y RSS.

WSDL

  • WSDL significa Web Services Description Language
  • WSDL es un lenguaje basado en XML para describir servicios web.
  • WSDL es una recomendación del W3C

SOAP

  • SOAP significa Simple Object Access Protocol
  • SOAP es un protocolo basado en XML para acceder a servicios web.
  • SOAP se basa en XML
  • SOAP es una recomendación del W3C

RDF

  • RDF significa Resource Description Framework
  • RDF es un marco de trabajo para describir recursos en la web
  • RDF está escrito en XML
  • RDF es una recomendación del W3C

RSS

  • RSS significa Really Simple Syndication
  • RSS le permite sindicar el contenido de su sitio
  • RSS define una forma sencilla de compartir y ver titulares y contenidos
  • Los archivos RSS pueden actualizarse automáticamente
  • RSS permite vistas personalizadas para diferentes sitios
  • RSS está escrito en XML

Lo que ya debería saber

Antes de estudiar los servicios web debería tener una comprensión básica de XML y de los espacios de nombres XML.

Si quieres estudiar estos temas primero, por favor lee nuestro Tutorial XML.

Servicios Web

  • Los servicios Web son componentes de aplicaciones
  • Los servicios Web se comunican utilizando protocolos abiertos
  • Los servicios Web son autocontenidos y autodescriptivos
  • Los servicios web pueden descubrirse mediante UDDI
  • Los servicios web pueden ser utilizados por otras aplicaciones
  • HTTP y XML son la base de los servicios web

La interoperabilidad tiene máxima prioridad

Cuando las principales plataformas podían acceder a la Web mediante navegadores, las diferentes plataformas no podían interactuar. Para que estas plataformas trabajaran juntas, se desarrollaron las aplicaciones web.

Las aplicaciones web son simplemente aplicaciones que se ejecutan en la web. Están construidas en torno a los estándares del navegador web y pueden ser utilizadas por cualquier navegador en cualquier plataforma.

Los servicios web llevan a las aplicaciones web al siguiente nivel

Al utilizar los servicios web, su aplicación puede publicar su función o mensaje al resto del mundo.

Los servicios web utilizan XML para codificar y decodificar los datos, y SOAP para transportarlos (utilizando protocolos abiertos).

Con los servicios web, el sistema de facturación del servidor Win 2k de su departamento de contabilidad puede conectarse con el servidor UNIX de su proveedor de TI.

Los servicios web tienen dos tipos de usos

Componentes de aplicación reutilizables.

Hay cosas que las aplicaciones necesitan muy a menudo. Entonces, ¿por qué hacerlas una y otra vez?

Los servicios web pueden ofrecer componentes de aplicación como: conversión de moneda, informes meteorológicos o incluso traducción de idiomas como servicios.

Conectar el software existente.

Los servicios web pueden ayudar a resolver el problema de la interoperabilidad ofreciendo a las distintas aplicaciones una forma de enlazar sus datos.

Con los servicios web se pueden intercambiar datos entre diferentes aplicaciones y diferentes plataformas.

Cualquier aplicación puede tener un componente de servicio web.

Los servicios web se pueden crear independientemente del lenguaje de programación.

Un ejemplo de servicio web

En el siguiente ejemplo utilizaremos ASP.NET para crear un sencillo Servicio Web que convierta la temperatura de Fahrenheit a Celsius, y viceversa:

<%@ WebService Language=»VBScript» Class=»TempConvert» %>
Imports System
Imports System.Web.Services
Public Class TempConvert :Inherits WebService
<WebMethod()> Public Function FahrenheitToCelsius(ByVal Fahrenheit As String) As String
dim fahr
fahr=trim(replace(Fahrenheit,»,»,».»))
if fahr=»» o IsNumeric(fahr)=false then return «Error»
return ((((fahr) – 32) / 9) * 5)
end function
<WebMethod()> Public Function CelsiusToFahrenheit(ByVal Celsius As String) As String
dim cel
cel=trim(replace(Celsius,»,»,».»))
si cel=»» o IsNumeric(cel)=false entonces devuelve «Error»
retorna ((((cel) * 9) / 5) + 32)
función final
clase final

Este documento se guarda como un archivo .asmx. Esta es la extensión de archivo ASP.NET para los servicios web XML.

Ejemplo explicado

Nota: Para ejecutar este ejemplo, necesitará un servidor .NET.

La primera línea del ejemplo indica que se trata de un Servicio Web, escrito en VBScript, y tiene el nombre de clase «TempConvert»:

<%@ WebService Language=»VBScript» Class=»TempConvert» %>

Las siguientes líneas importan el espacio de nombres «System.Web.Services» del framework .NET:

Imports System
Imports System.Web.Services

La siguiente línea define que la clase «TempConvert» es un tipo de clase WebService:

Public Class TempConvert :Inherits WebService

Los siguientes pasos son de programación VB básica. Esta aplicación tiene dos funciones. Una para convertir de Fahrenheit a Celsius, y otra para convertir de Celsius a Fahrenheit.

La única diferencia con una aplicación normal es que esta función está definida como un «WebMethod()».

Utilice «WebMethod()» para convertir las funciones de su aplicación en servicios web:

<WebMethod()> Public Function FahrenheitToCelsius(ByVal Fahrenheit As String) As String
dim fahr
fahr=trim(replace(Fahrenheit,»,»,».»))
if fahr=»» o IsNumeric(fahr)=false then return «Error»
return ((((fahr) – 32) / 9) * 5)
end function
<WebMethod()> Public Function CelsiusToFahrenheit(ByVal Celsius As String) As String
dim cel
cel=trim(replace(Celsius,»,»,».»))
if cel=»» o IsNumeric(cel)=false then return «Error»
return ((((cel) * 9) / 5) + 32)
end function

Después, termina la clase:

end class

Publica el archivo .asmx en un servidor con soporte .NET, y tendrás tu primer Servicio Web funcionando.

Pon el Servicio Web en tu Sitio Web

Usando un formulario y el método HTTP POST, puedes poner el servicio web en tu sitio, así:

Cómo hacerlo

Aquí está el código para añadir el servicio web a una página web:

<formaction=’tempconvert.asmx/FahrenheitToCelsius’
method=»post» target=»_blank»>
<table>
<tr>
<td>Fahrenheit to Celsius:</td>
<td>
<input class=»frmInput» type=»text» size=»30″ name=»Fahrenheit»>
</td>
</tr>
<tr>
<td></td>
<td align=»right»>
<input type=»submit» value=»Submit» class=»button»>
</td>
</tr>
</table>
</form>
<formaction=’tempconvert.asmx/CelsiusToFahrenheit’
method=»post» target=»_blank»>
<table>
<tr>
<td>Celsius to Fahrenheit:</td>
<td>
<input class=»frmInput» type=»text» size=»30″ name=»Celsius»>
</td>
</tr>
<tr>
<td></td>
<td align=»right»>
<input type=»submit» value=»Submit» class=»button»>
</td>
</tr>
</table>
</form>

Substitute the «tempconvert.asmx» por la dirección de su servicio web como:

http://www.example.com/xml/tempconvert.asmx

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *