Acerca del ejemplo ISO8583

La ISO (International Standards Organization) define y publica estándares de datos que se utilizan en muchas compañías tanto públicas como privadas. Uno de los estándares ISO más utilizados para los servicios bancarios y financieros es ISO8583, que especifica un formato de mensaje que describe los datos de tarjeta de crédito y de débito que se intercambian entre los dispositivos y los emisores de tarjetas. El estándar se utiliza habitualmente en dispositivos de punto de venta y en cajeros automáticos. Los mensajes propiamente dichos suelen contener información sobre el valor de una transacción, donde se ha originado, el número de cuenta de la tarjeta y un código de clasificación del banco. Las aplicaciones a las que se envían los datos pueden tener varios objetivos, tales como transferir fondos entre cuentas bancarias, pagar facturas o adquirir crédito para el teléfono móvil. WebSphere Message Broker puede ayudar en estas situaciones middleware permitiendo la transformación de datos entre el estándar ISO8583 y formatos más convenientes, como XML, así como también a través de otros protocolos como WebSphere MQ, FTP o HTTP.

El diagrama siguiente muestra el diseño de un mensaje ISO8583:

1. Cabeceras de cliente; 2. MTI; 3. Mapa de bits principal; 4. Mapa de bits secundario (opcional); 5. Campos de datos de mensajes (opcional, los campos presentes dependen de los mapas de bits anteriores).

Los mensajes ISO8583 pueden ir precedidos por una cabecera personalizada (a menudo de propiedad), pero el diseño núcleo siempre contiene estas secciones:

Este ejemplo proporciona una biblioteca de Message Broker, ISO8583Library, que define los campos que conforman cada una de las secciones anteriores. Para analizar los detalles de este modelo de mensaje, importe el ejemplo en su espacio de trabajo. A continuación se ofrece una captura de pantalla del modelo, seguida por un resumen de la implementación de campos y tipos de datos:

Modelo ISO8583 DFDL

Campos de indicador de tipo de mensaje

La combinación de los cuatro campos MTI especifica el tipo de mensaje de intercambio que se transmite. Generalmente, las aplicaciones utilizarán el MTI para determinar si el mensaje requiere una respuesta, y el formato que tendría tal respuesta (es decir, qué valores deberían estar presentes en el MTI y qué campos de datos de mensaje deberían estar presentes). Esta decisión la toma generalmente la aplicación a la que Message Broker envía los datos ISO8583, por lo que este ejemplo pasa los campos sin aplicar ninguna validación ni transformación adicional a su contenido.

Mapa de bits principal y mapa de bits secundario

El mapa de bits principal y el mapa de bits secundario se definen en el modelo DFDL utilizando un grupo incluido que contiene un elemento complejo que representa cada mapa de bits. El elemento complejo que representa el mapa de bits principal contiene 64 campos (denominados Bit001 a Bit064), y cada uno se define como unsignedInt, sólo aparece una vez y es de un bit de longitud. El elemento complejo que representa el mapa de secundario bits secundario contiene 64 campos (denominados Bit065 a Bit128), y cada uno se define como unsignedInt, sólo aparece una vez y es de un bit de longitud. Cada campo de datos de mensaje (que tiene lugar después de los mapas de bits en el modelo) es opcional (minOccurs=0 y maxOccurs=1) y tiene una expresión que define el atributo dfdl:occursCount de tal modo que sea igual al bit correspondiente del mapa de bits principal o del mapa de bits secundario. Por ejemplo, el campo de datos de mensaje denominado PrimaryAccountNumber_002 tiene dfdl:occursCount="{/ISO8583_1987/PrimaryBitmap/Bit002}"

El mapa de bits secundario es un campo opcional. Bit001 en el mapa de bits principal define si existe o no un mapa de bits secundario en el mensaje.

Campos de datos de mensaje

Cada campo de mensaje del estándar ISO8583 define el contenido que se permite utilizando uno de estos tipos de datos:

Tipos de datos numéricos

Los elementos de datos numéricos se justifican a la derecha y, cuando se definen con una longitud fija, contienen ceros iniciales. El estándar ISO8583 hace referencia a elementos de datos numéricos utilizando el atributo "n". Esta convención se refleja en los nombres de tipos simples que se utilizan en el modelo DFDL. Los elementos de dtos definidos como numéricos pueden utilizarse con varios objetivos empresariales; por ejemplo, pueden utilizarse para contener importes decimales, valores de fecha y hora, o una cadena de datos numéricos, como el número de cuenta bancaria. Para reflejar este uso, el modelo DFDL define distintos tipos simples de esquema XML que heredan de distintos tipos primitivos de esquema XML. Los tipos simples son:

Tipo de datos alfabético

Los elementos de datos alfabéticos se justifican a la izquierda y, cuando se definen con una longitud fija, contienen caracteres de espacio finales. El estándar ISO8583 hace referencia a elementos de datos alfabéticos mediante el atributo "a". Esta convención se refleja en los nombres de tipos simples que se utilizan en el modelo DFDL para tipos de datos alfabéticos:

Tipo de datos alfanumérico

Los elementos de datos alfanuméricos se justifican a la izquierda y, cuando se definen con una longitud fija, contienen caracteres de espacio finales. El estándar ISO8583 hace referencia a elementos de datos alfanuméricos utilizando el atributo "an". Esta convención se refleja en los nombres de tipos simples que se utilizan en el modelo DFDL para tipos de datos alfanuméricos:

Tipos de datos especiales alfanuméricos

Los elementos de datos especiales alfanuméricos se justifican a la izquierda y, cuando se definen con una longitud fija, contienen caracteres de espacio finales. El estándar ISO8583 hace referencia a elementos de datos especiales alfanuméricos utilizando el atributo "ans". Esta convención se refleja en los nombres de tipos simples que se utilizan en el modelo DFDL para tipos de datos especiales alfanuméricos:

Tipo de datos binarios

Los elementos de datos binarios tienen una longitud que es un número integral de bytes. Ningún elemento de datos binario tiene una longitud inferior a ocho bits (un byte). El estándar ISO8583 hace referencia a elementos de datos binarios utilizando el atributo "b". Esta convención se refleja en los nombres de tipos simples que se utilizan en el modelo DFDL para tipos de datos binarios:

Tipo de datos de seguimiento

El estándar ISO8583 define determinados elementos de datos como tipo "track-2" o "track-3". La sintaxis detallada de estos elementos está sujeta a otros estándares ISO. El estándar ISO8583 hace referencia al tipo de datos de seguimiento utilizando el atributo "z". Esta convención se refleja en los nombres de tipos simples utilizados en el modelo DFDL:

Tipos de datos con un prefijo de longitud

Algunos elementos de datos se definen mediante el estándar ISO8583 de modo que tienen una longitud variable y contienen un prefijo de longitud que especifica la longitud de dicha aparición en el campo. La longitud se especifica utilizando dos o tres dígitos numéricos. El estándar ISO8583 hace referencia al prefijo de longitud utilizando la convención "LL" para representar longitudes del rango 01-99, y "LLL", para representar longitudes del rango 001-999. Los elementos de datos definidos de este modo también pueden tener otras restricciones (por ejemplo, el elemento PrimaryAccountNumber tiene un prefijo LL, pero también tiene una longitud mínima de 19 bytes). Estas restricciones se reflejan en el modelo DFDL mediante facetas. El modelo DFDL define los siguientes tipos simples, que utilizan un prefijo de longitud:

Volver a la página inicial del ejemplo