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:
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»:
Las siguientes líneas importan el espacio de nombres «System.Web.Services» del framework .NET:
Imports System.Web.Services
La siguiente línea define que la clase «TempConvert» es un tipo de clase 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:
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:
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:
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