Web Services: XML-RPC, SOAP, sobre PHP, Perl, y otros conceptos

A pesar de su sencillez aparente, XML est� transformando completamente la creaci�n y el uso de software. El Web revolucion� la comunicaci�n entre usuarios y aplicaciones. XML est� revolucionando la comunicaci�n entre aplicaciones o, de forma m�s general, la comunicaci�n entre equipos, pues ofrece un formato de datos universal que permite adaptar o transformar f�cilmente la informaci�n.

Como veremos a continuci�n, XML es la base de los Servicios Web, as� que antes vamos a hacernos una idea clara de qu� aspecto tiene la informaci�n en lenguaje XML.

XML es la soluci�n a un problema de comunicaci�n entre programas de ordenador. La informaci�n generalmente queda fuertemente ligada al programa con que fue creada, y es as� como se pierde mucho tiempo en pasar de RTF a PS a PDF a p�ginas HTML � a otros formatos de definici�n de documentos.

Muchos Linuxeros, sobre todo debianitas, saben de un nuevo standard llamado DocBook, que pretende dar soluci�n a este problema. Precisamente, DocBook es un caso particular de XML. DocBook se aplica sobre documentos ... �pero si se trata de una imagen o un sonido? XML intenta ser un formato absolutamente gen�rico, con el que describir CUALQUIER tipo de fichero. As�, por ejemplo SVG 1.0, Scalable Vector Graphics, es un formato basado en XML para representar im�genes vectoriales. DSML 1.0, Directory Services Markup Language, otro formato basado en XML, espec�fico para definir directorios. XHTML 1.0, Extensible HyperText Markup Language, ya os podeis imaginar que es un formato basado en XML para representar p�ginas web.

Cada d�a aparecen nuevas propuestas para estadarizar formatos basados en XML. Ya existen muchas herramientas de programaci�n preparadas para trabajar con formatos basados en XML. Es una tendencia y se est� consolidando. Los programadores con mentalidad abierta, codifican sus ficheros de datos en "algo" basado en XML. As� si un d�a necesitan portar sus datos a otras aplicaciones, pueden usar herramientas ya hechas y probadas.

Muy pronto, si no es ya, que una aplicaci�n trabaje con formatos basados en XML ser� una cualidad tan valorada como que sea GPL.

Queda claro que XML es ya un formato universal, que lo est�n adoptando multitud de programadores y que puede abarcar cualquier caso de intercambio de informaci�n, pero la pregunta que a muchos os habr� surgido es: �por qu� no intercambiar los datos mediante ficheros de texto plano? Linux lo usa en casi todas las configuraciones de sus programas: httpd.conf, my.cnf, inetd.conf, etc, etc y todos sabemos lo bien que funciona y lo abierto que es ... Efectivamente, pero �y si necesitamos transmitir informaci�n con estructura? Ah� es donde resulta interesante XML.

Imaginemos el caso de describir una p�gina web con un fichero de texto ... se puede hacer, de hecho se hace constantemente usando HTML, que puede grabarse como un fichero de texto plano. Sin embargo, HTML no podr�a ser lo que es, sin su lenguaje de marcas. Luego ya no es s�lo un texto plano, sino un texto y sus marcas. Las marcas sirven para estructurar la informaci�n: separar el t�tulo del contenido, por ejemplo.

XML es una generalizaci�n de este proceso. En XML se marca TODO. Caulquier informaci�n transmitida por un XML est� perfectamente estructurada. Para ello se emplea tambi�n un lenguaje de marcas. Como XML es un formato universal, y no puede limitarse a saber describir s�lo p�ginas web, por ejemplo, las marcas no son fijas, sino variables seg�n el subformato (esto es lo que luego veremos que se llama DTD).

Un ejemplo sencillo (extraido de Internet: Introducci�n a XML): una colecci�n de 750 recetas de cocina. �Escribirlas todas en KOffice? �Qu� peligro! �Qu� pasar�a si me dicen que es necesario tenerlas en HTML? �O imprimirlas en un libro usando programas espec�ficos y cierto estilo de tipograf�a para los ingredientes? Entonces es conveniente poner mayor atenci�n al elegir el formato a emplear. �S�lo texto? podr�a ser ... si no incluimos fotos, ni �ndices, ni tablas, ni ... etc, etc. Es evidente que una receta se divide en partes bien identificadas, as� que usar s�lo texto ser�a perder informaci�n sobre d�nde est� cada cosa en el documento.

XML nos dice que podemos estructurar la informaci�n en un �rbol. Es decir imaginar a la receta como un componente, que a su vez esta formado de componentes, y as� sucesivamente. Cada componente podr�a tener texto y/o m�s componentes. Una posible estructura ser�a imaginar que la receta tiene un componente llamado "necesitamos". No todo el texto estar�a dentro de "necesitamos", solamente aquellas cosas que el cocinero de la receta necesitar�a para llevarla a cabo. Dentro podr�amos tener uno o m�s componentes llamados "ingrediente". Veamos como se ve esto (usando ya la sintaxis de XML).

<receta> 
... 
<necesitamos> 
  <ingrediente>2 cucharadas de azucar</ingrediente> 
  <ingrediente>3 manzanas</ingrediente> 
</necesitamos> 
... 
</receta>

�Se adivina cu�l es la sintaxis de XML? Es simplemente encerrar al texto que pertenece a un componente entre y . Bueno, en realidad ya se ve que estos componentes son "tags".

El XML se completa mediante una "hoja de estilo", que es una descripci�n de c�mo debe verse una informaci�n en un determinado medio. A un mismo documento XML se le pueden aplicar distintas hojas de estilo seg�n convenga. Por ejemplo usando una hoja de estilo por cada medio en la que se debe representar la informaci�n.

Existen actualmente dos lenguajes de hojas de estilo: CSS (Cascading Style Sheets: que ya est� parcialmente implementado en los navegadores de WWW) y XSL (eXtended StyleSheet Language: El W3 Consortium cre� este nuevo lenguaje de hojas de estilo)

XML sirve para que muchos programas interpreten bien cualquier tipo de dato. No s�lo eso. XML sirve para que algunos programas hablen entre ellos sin intervenci�n humana. �Para qu�? Computaci�n Distribuida, Interoperatividad, Monitorizaci�n, ... son situaciones en las que resulta imprescindible este tipo de comunicaci�n. XML es tambi�n la soluci�n en estos casos. Como veremos ya, muy pronto, los Servicios Web son un caso particular de "Computaci�n Distribuida" y XML es su lenguaje base.

.�Referencias

La p�gina sobre XML del W3 Consortium

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO