Archive for the ‘WSDL’ Category

Datos y servicios Web

A la hora de modelar los datos que nuestro servicio Web intercambiará las facilidades son muchas. Una de las bondades de los servicios Web, al estar basados en estándares, es que existen múltiples herramientas que facilitan el trabajo tanto en la etapa de diseño como en el posterior desarrollo. Y en el caso de los datos no queda más remedio que hablar de XML, XSD, WSDL; su relación y las herramientas para manipularlos.

Conceptos técnicos

XML eXtensible Markup Language o Lenguaje de marcas extensible. Se trata de un metalenguaje basado en etiquetas que permite estructurar información compleja con el fin de facilitar su intercambio. Así pues, un documento XML contiene datos. El consorcio W3C se encarga de su estandarización, actualmente en la versión 1.0.

	<?xml version="1.0" encoding="UTF-8"?>
	<ejemplo>text</ejemplo>

XSD XML Schema Definition. Los documentos XML nos permiten dar estructura a los datos, pero ¿Cómo es esa estructura? Un XSD no es más que un conjunto de reglas o plantilla que describe, entre otros, la relación y el tipo de datos que contiene un documento XML. Además facilita la validación de los datos contenidos en el documento XML.

WSDL Web Service Description Language. Es el documento público de definición de un servicio Web, donde se encuentra definido el tipo de datos intercambiados por los diferentes métodos del servicio.

Resumiendo, los servicios Web que implementemos intercambiaran datos, ya sean simples o complejos, basados en XML y que podrán ser validados mediante el XSD. El WSDL contiene una definición de los datos según el estándar XSD. De esta manera resulta sencillo conocer el tipo y estructura de los datos y son procesables de manera sencilla por herramientas automáticas.

Metodología de diseño

Gracias a las herramientas que proporcionar las diferentes SDKs de servicios Web podemos automatizar muchas tareas en la fase de diseño que serán reutilizables en el desarrollo. Una vez creada la estructura de datos podemos proceder de dos maneras:

  • Crear directamente las clases complejas que intercambian los métodos, cuya incorporación al servicio Web es directa.
  • Utilizar las bondades de las tecnologías comentadas anteriormente:
    • Crear un XML con los datos requeridos e inferir el XSD a partir de él, aunque tendremos problemas con los tipos de datos.
    • Diseñar el XSD y crear las clases de lógica de negocio mediante herramientas apropiadas.

El siguiente esquema perteneciente a la descripción de JAXB (Sun) es muy esclarecedor.

xml_schema_fig1.gif

Los servicios Web tratan de intercambiar datos, it’s all about data, por ello los XSD nos ofrecen una manera sencilla de validar los XML intercambiados y de transformarlos en objetos de negocio directamente utilizables en el desarrollo de la lógica de negocio.