Archive for the ‘SOA’ 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.

Integración de servicios

Inevitablemente tiene que caer este párrafo. En unos cuantos años de presencia de sistemas informáticos hemos pasado por lo siguiente: a los primeros sistemas monolíticos basados en mainframes con aquellas casi míticas terminales verde sobre negro les sucedieron los primeros sistemas distribuidos gracias a la creación y desarrollo de redes telemáticas. Después evolucionó la tecnología hardware y fueron posibles los ordenadores personales que permitían aplicaciones más complejas y a su vez los servicios fueron aumentando en prestaciones, especialización y escalabilidad aunque aislándose en mayor medida. Llegado el momento la maraña de servicios y su estanqueidad era tal que fueron necesarios los controladores intermedios o middlewares para gestionar los diferentes servicios. En este punto nos encontramos.

Opinión personal es que los grandes middlewares como TIBCO están fallando en su optimización, consiguen la latencia deseada a base de replicar hardware, lo que eleva de manera considerable su mantenimiento. En este contexto aparecen los servicios Web y con posterioridad SOA.

Y este es el modelo de arquitectura elegido para integrar los servicios que ofrece ISPAMAT: SOA, Service Oriented Architecture o Arquitectura orientada a servicios. En pocas palabras: arquitecturas basadas en la combinación de servicios, entendiendo como servicios a procesos software autónomos que intercambian datos mediante interfaces de acceso bien definidos, usando protocolos estándar y con políticas de uso concretas.

Gracias a la colaboración con el Microsoft Technology Center de Huesca, ISPAMAT usará una plataforma de nueva generación (CSF – Connected Services Framework) para la orquestación y despliegue de todos los servicios que proporcione.