Capitulo 4. Proceso de desarrollo de Gateway ISO8583 corresponsal bancario
4.9. Vistas de la Arquitectura
Las vistas de la arquitectura muestran diferentes perspectivas que pueden ayudar a documentar las decisiones estructurales.
4.9.1- Vista Lógica
Esta vista describe los comportamientos y estructuras significativas del sistema. Se ha descompuesto esta vista en varios apartados para su descripción. La Figura 4.27 muestra la estructura lógica de los paquetes que conforman Gateway ISO8583.
60
4.9.2.- Vista Paquetes
Esta vista permite comprender la función de los paquetes que conforman las capas de datos, control y vista, a continuación se enuncian los paquetes y su función.
• Data.domain: Este paquete perteneciente al componente Data, contiene las clases que definen el modelo de dominio y archivos de mapeo.
• Data.persistence: Este paquete perteneciente al componente Data, contiene clases concretas que permiten tener acceso a los datos así como persistirlos. La persistencia se realiza utilizando un Framework a la medida, denominado persistence.
• Data.messages: Este paquete contiene las clases usadas para la definición de mensajes ISO8583.
• Data.messages.exceptions: Este paquete contiene las clases para el manejo de excepciones generadas al tener algún error en la estructura de los mensajes.
• Data.messages.gbTripleDES: Este paquete contiene las clases necesarias para la encripcion 3DES.
• Data.messages.isoFactory: Este paquete contiene las clases necesarias para el parseo y la formación de mensajes ISO8583 y sus respectivas validaciones de formato.
• Data.util: Este paquete contiene utilidades de ayuda para el manejo del acceso a datos.
61
• Control.businessLogic: Este paquete contiene servicios de lógica de negocios.
• Control.businessLogic.loaders: Este paquete contiene cargadores de datos relativos a la transacción, tales como el arreglo de comisiones asociadas a una entidad.
• Control.businessLogic.validators: Este paquete contiene el conjunto de validadores de reglas de negocios.
• Control.exceptions: Este paquete contiene el conjunto de excepciones para el manejo de reglas de negocios, así como las clases necesarias para el control de errores los servicios.
• Control.transform: Este paquete contiene las clases necesarias para la traducción de códigos de error entre entidades.
• Control.util: Contiene clases que facilitan el manejo del control de flujo al programador.
• Gateway ISO8583: Contiene clases utilizadas para generar un servidor y cliente de sockets TCP-IP.
• Server.Exceptions: Este paquete contiene las clases para el manejo de excepciones de la capa de vista.
• Server.ssl: Este paquete contiene las clases necesarias para el manejo de la capa de seguridad en la aplicación.
62
4.9.3.- Vista de Componentes
Esta vista permite observar la agrupación en componentes de los distintos paquetes descritos en el apartado 4.9.2 para las capas de datos, vista y control.
• Componente capa de Datos: Este componente contiene los paquetes de la capa de datos: • Data.domain • Data.persistence • Data.messages • Data.messages.exceptions • Data.messages.gbTripleDES • Data.messages.isoFactory • Data.exceptions • Data.util
• Componente capa de Vista: Este componente contiene los paquetes de la capa de vista:
• Gateway ISO8583
• Server.exceptions
63
• Componentes de capa de Control: Este componente contiene los paquetes de la capa de control: • Control.businessLogic • Control.businessLogic.loaders • Control.businessLogic.validators • Control.exceptions • Control.transform • Control.util
64
4.10.- Mensajería ISO8583 Corresponsal Bancario
Banco Y cuenta con una plataforma transaccional ISO8583 encargada de procesar y administrar transacciones electrónicas, dicha plataforma define la conectividad y lógica de los mensajes utilizados para recibir y responder transacciones de corresponsalía bancaria.
Por su lado Tiendas X es capaz de generar y procesar mensajes transaccionales con formato
ISO8583 teniendo la limitante de no poder realizar el calculo del campo Mesage Authentication Code (MAC) requerido por Banco Y.
Gateway ISO8583 como intermediario entre ambas entidades tiene por responsabilidad interpretar, validar, agregar el campo MAC transformando los mensajes recibidos de Tiendas X al formato requerido por Banco Y.
La Figura 4.28 ilustra el flujo de una transacción originada por Tiendas X, esta viaja al servidor expuesto por Gateway ISO8583 donde internamente es interpretada por el interprete que entiende el formato de Tiendas X, posteriormente es traducida y completada con el formato ISO8583 requerido de Banco Y, la nueva petición es enviada a Banco Y, este la recibe y responde a Gateway ISO8583, este interpreta la respuesta de Banco Y, la transforma al formato de Tiendas X y finalmente envía la respuesta a Tiendas X.
65
Figura 4.28 Flujo de intercambio, validación y traducción de mensajes entre entidades.
A continuación se muestra los servicios disponibles para cada una de las entidades y el formato de mensajería definida por Banco Y para el esquema de corresponsalía bancaria con la cual se realizará el desarrollo del Gateway ISO8583 para establecer el diálogo con Tiendas X.
66
4.10.1.- Definición de mensajería de corresponsalía bancaria
Veamos ahora la definición de la mensajería de cada uno de los servicios disponibles para el proyecto de corresponsalía bancaria.
Por el lado de Tiendas X existen tres clases de servicios disponibles, autorización, reverso y echo. De lado de Banco Y en cambio existen solo dos clases de servicios disponibles, autorización y reversos.
En la Tabla 4.29 podemos observar los servicios de mensajería IS08583 disponibles para Tiendas X y Banco Y.
Tabla 4.29 Servicios disponibles para Tiendas X y Banco Y.
Servicio Descripción Tiendas X Banco Y
0200 / 0210 Servicio de autorización. Disponible Disponible 0420 / 0430 Servicio de reverso de la
autorización previa.
Disponible Disponible
0800 / 0810 Servicio de echos. Disponible No disponible
A continuación se describe el uso de cada uno de los servicios disponibles y el flujo entre entidades.
67
4.10.2.- Servicio de autorización
El servicio de autorización está encargado de procesar transacciones de depósito a tarjeta de crédito y débito, este consta de dos mensajes, mensaje de solicitud de autorización 0200 y mensaje de respuesta de autorización 0210. En el proyecto este servicio es utilizado para implementar el caso de uso Depósito.
La Figura 4.30 muestra el flujo para las transacciones de depósito a tarjeta de crédito o débito entre entidades. Tiendas X inicia el flujo transaccional enviando un mensaje 0200 a Gateway ISO8583 (1), esté valida el mensaje, si es válido se genera y envía un mensaje 0200 con el formato ISO8583 definido por Banco Y (2), si la transacción es válida Banco Y responde a Gateway ISO8583 con un mensaje de respuesta 0210 (3), Gateway ISO8583 valida y transforma la respuesta y devuelve a Tiendas X la respuesta 0210 (4).
68
4.10.3.- Servicio de reverso
El servicio de reversos se encarga de reversar transacciones de depósito a tarjeta de crédito y débito previamente realizadas, este consta de dos mensajes, mensaje de solicitud de reverso 0420 y mensaje de respuesta de reverso 0430. En el proyecto este servicio es utilizado para implementar el caso de uso Reverso.
La Figura 4.31 muestra el flujo para las transacciones de reverso de depósito a tarjeta de crédito o débito entre entidades. Tiendas X inicia el flujo transaccional enviando un mensaje 0420 a Gateway ISO8583 (1), esté valida el mensaje, si es válido se genera y envía un mensaje 0420 con el formato ISO8583 definido por Banco Y (2), si la transacción es válida Banco Y responde a Gateway ISO8583 con un mensaje de respuesta 0430 (3), Gateway ISO8583 valida y transforma la respuesta y devuelve a Tiendas X la respuesta 0430 (4).
69
4.10.4.- Servicio de Echos
El servicio de mensajes de echo tiene como finalidad monitorear la conexión entre Tiendas X y Gateway ISO8583, este servicio consta de dos mensajes, mensaje de echo 0800 y el mensaje de respuesta de echo 0810.
La Figura 4.32 muestra el flujo para las transacciones de echo. Tiendas X envía periódicamente mensajes 0800 a Gateway ISO8583 (1), esté valida el mensaje, si es válido responde con un mensaje 0810(2).
70
4.10.5.- Estructura de mensajes ISO8583
Los mensajes ISO8583 a intercambiar por las entidades se conforman de cinco componentes, cada componente define un aspecto del mensaje, en la Tabla 4.32 podemos ver el orden lógico de los componentes de la estructura del mensaje.
Tabla 4.33 Estructura de mensaje ISO8583.
Inicio del Mensaje Fin del Mensaje
Longitud Header MTI Bitmap(s) Campos del Mensaje
Veamos a continuación la definición de cada uno de los componentes del mensaje ISO8583.
4.10.5.1.- Longitud del mensaje
Es un componente de dos bytes usado como indicador de la longitud total del mensaje, a la longitud total no se le suma los dos bytes del indicador de longitud.
Este se representa en código ASCII con el valor en Hexadecimal de la longitud, el primer carácter se incrementa cada 256 unidades del segundo.
Por ejemplo si un mensaje es de longitud 275 (decimal) sin contar los 2 caracteres que indican la longitud, los primero caracteres que deben colocarse en el mensaje serían la representación de 0X01 y 0X13 en ASCII, es decir: “☺♪”.
71
4.10.5.2.- Header del mensaje
El Header es un componente de 12 bytes usado para definir la versión usada del estándar ISO8583, el estado y origen del mensaje, este está compuesto por 6 subelementos definidos en la Tabla 4.34.
Tabla 4.34 Componentes del header del mensaje.
Posición Longitud Valor Descripción
1-3 3 “ISO” = Palabra ISO Indicador ISO
3-5 2
“02” = “transacción tipo terminal punto de venta (POS)”
Indicador del tipo de terminal punto de venta:
02 = “POS”
5-7 2 “11” = “Número de
versión”
Versión de mensajería ISO8583 1.1
7-10 3 “000” = Campo en
error si lo hubiese.
Estado; indica si existió o no un problema con la interpretación del mensaje.
11 1 “5” = Host Mensaje Originado por el Host 12 1 “5” = Host Indica la entidad que responde el
72
4.10.5.3.- Mapas de Bits (Bitmaps)
Los Mapas de Bits o Bitmaps son dos componentes usados para indicar la presencia o ausencia de los 126 campos del estándar ISO8583, se definen por una agrupación de 16 caracteres hexadecimales cada uno, al traducirse a código binario cada bit indica la presencia/ausencia de los campos que viajaran en la estructura del mensaje. Si el bit está activado (inicializado a 1) indica que el campo correspondiente viaja en el mensaje. La Tabla 4.35 muestra en la parte superior cuatro ejemplos de bitmaps y la explicación detallada del ejemplo 4210001102C04804 en la parte inferior.
Tabla 4.35 Ejemplos de Bitmaps y detalle.
Bitmap Define la presencia de
4210001102C04804 Campos 2, 7, 12, 28, 32, 39, 41, 42, 50, 53, 62 7234054128C28805
Campos 2, 3, 4, 7, 11, 12, 14, 22, 24, 26, 32, 35, 37, 41, 42, 47, 49, 53, 62, 64 ,100 (Bitmap secundario requerido para mostrar la presencia del campo - 100)
8000000000000001 Campos 1, 64 0000000000000003
(Bitmap secundario) Campos 127, 128
Explicación del Bitmap (8 bytes, Bitmap Primario = 64 Bit) campo 4210001102C04804
BYTE1 : 01000010 = 42x (campos 2 y 7 están presentes)
BYTE2 : 00010000 = 10x (campo 12 está presente)
BYTE3 : 00000000 = 00x (no hay campos presentes)
BYTE4 : 00010001 = 11x (campos 28 y 32 están presentes)
BYTE5 : 00000010 = 02x (campo 39 está presente)
BYTE6 : 11000000 = C0x (campos 41 y 42 están presentes)
BYTE7 : 01001000 = 48x (campos 50 y 53 están presentes)
BYTE8 : 00000100 = 04x (campo 62 esta presente)
73
4.10.5.4.- Campos de mensajería ISO8583
Los campos de la mensajería ISO8583 son 126 componentes usados para definir el valor de las propiedad específicas de cada mensaje. Cada campo tiene dos propiedades; tipo de dato e indicador de longitud, cada uno está definido por una notación.
El tipo de dato indica el tipo de contenido específico que permite cada campo, para definirlo se utilizan las abreviaturas de tipos de datos mostradas en la Tabla 4.36.
Tabla 4.36 Tipos de datos de los campos ISO8583.
Abreviatura Significado
N Solo valores numéricos AN Alfanumérico
ANS Caracteres Alfabéticos, numéricos y especiales ANS/B ANS Longitud Binario
B Información binaria
Además, cada campo puede tener una longitud fija o variable. Si es variable, el largo del campo será precedido por un indicador de largo el cual indica la cantidad de bytes usados como indicador. La Tabla 4.37 muestra las abreviaciones para definir el largo de los campos.
Tabla 4.37 Indicadores de longitud de los campos ISO8583.
Abreviación Significado
F Longitud fija V N:L
Longitud variable donde:
N = El número de bytes utilizados para representar la longitud del campo
74
4.10.6.- Campos de mensajería ISO8583
Vimos anteriormente la notación que define a los campos del estándar ISO8583, en la Tabla 4.38 se muestran las propiedades y uso de cada uno de los campos utilizados para conformar las transacciones de corresponsalía bancaria.
Tabla 4.38 Definiciones de campos ISO8583 corresponsalía bancaria.
Campo Formato Descripción Comentarios / Posibles Valores
0. Primary Bit Map AN F 16 Determina la presencia/ausencia de los campos opcionales del 1 al 63. 1. Secondary Bit
Map AN F 16
Determina la presencia/ausencia de los campos opcionales del 65 al 128.
3. Processing Code N F 6
Indica el tipo de transacción solicitada (compra con tarjeta de crédito, retiro de tarjeta de cuenta de ahorro, consulta de cuenta de cheques, etc.).
Posiciones:
1-2 Tipo de transacción
28 = Depósito Débito 21 = Depósito Crédito
00 = Cuenta por omisión
5-6 Cuenta Destino
00 = Cuenta por omisión 30 = Crédito
4. Transaction
Amount N F 12 Monto de la transacción con centavos Monto total 7. Transmission
Date and Time
N F 10 Fecha y hora de la transmisión del
mensaje (ya sea un 0200 o un 0420) MMDDhhmmss 11.System Trace
Audit Number N F 6 Identificación del mensaje
Este número es único para cada mensaje enviado
12. Local
Transaction Time N F 6
Hora local de la transacción (En el
punto de venta) hhmmss
13. Local
Transaction Date N F 4
Día local de la transacción (En el punto de venta)
MMDD
15. Settlement
Date N F 4
Día en el cual se está contabilizando
la transacción MMDD
17. Capture Date N F 4 Día en el cual la transacción es
registrada por el Adquirente. MMDD 22. Point of Service
Entry Mode N F 3
Determina La forma en la cual el número de tarjeta fue introducido y la capacidad de la terminal para
Posiciones:
75
aceptar/solicitar el NIP. tarjeta:
00 = Desconocido 01 = Manual
02 = Banda Magnética leída. El contenido de la misma fue editado
05 = Chip leído, CVV confiable 80 = Fall Back
90 = Banda magnética leída y su contenido es proporcionado integró al Adquirente.
95 = Chip leído, CVV no confiable
3 Capacidad de aceptación del NIP:
0 = Desconocido.
1 = Puede aceptar NIPs. 2 = No puede aceptar NIPs. 8 = PIN pad fuera de servicio.
32. Acquiring Institution
Identification Code
N V 2:11 Identificador de la entidad Adquirente
35. Track 2 Data ANS V 2:37
Contiene la información del track 2 almacenada en la banda magnética.
37. Retrieval Reference Number
AN F 12
Identificación de la transacción.
Este campo se utiliza para identificar a todos aquellos mensajes relacionados con una operación (Folio).
38.Authorization Identification Response
AN F 6
Determina el código asignado por el Emisor/Adquirente que identifica la aprobación de una autorización.
39. Response
Code AN F 2
Contiene el código de respuesta del Adquirente para la solicitud de procesamiento de una transacción generada por el Adquirente.
En la sección Códigos y Mensajes de Respuesta se muestra una tabla que contiene la acción que el Adquirente realiza para cada uno de los códigos ISO. 41. Card Acceptor Terminal Identification ANS F 16 Proporciona la identificación de la Caja Punto de Venta usada en la solicitud de la autorización.
Posiciones:
1-8 Identificación de Terminal.
Justificado a la derecha con ceros a la izquierda
9-10 Identificador de RFC
76
43. Card Acceptor
Name/Location ANS F 40
Nombre/Localización de la entidad Adquirente (Dirección de las oficinas centrales) 1-22 Dirección 23-35 Ciudad 36-38 Estado 39-40 País 48. Additional Data-Retailer Data ANS
V 3:27 Define la afiliación del establecimiento. 49. Transaction
Currency Code. N F 3
Código de moneda local usado en la transacción 484 = Pesos 840 = Dólares 63. POS Additional Data ANS V 3:102 Información adicional 70. Network Management Information Code N F 3
Código que identifica la acción a seguirse en relación a la conexión entre la Interred y el Adquirente.
001 = Sign on / Logon
002 = Sign off / Logoff
201 = Cutoff
301 = Echo Test
90. Original Data Elements
ANS F 42
Campo usado en los reversos para incluir información de la transacción original.
Posiciones:
1-4 Id de mensaje de la transacción original
5-16 Retrieval reference number de la transacción original (C37)
17-20 Fecha local de la transacción original (C13)
21-26 Hora local de la transacción original (C12) 27-28 ‘00’ 29-32 Fecha de captura de la transacción original (C17). 33-42 Espacios en blanco 64- 128 - Mesage Authentication Code (MAC)
ANS F 8 Campo usado como firmaq de seguridad del mensaje
Resultado del calculo. (Ver Calculo MAC)
77
4.10.7.- Estructura de mensajes ISO8583 de corresponsalía bancaria
Cada uno de los mensajes de corresponsalía bancaria dependiendo de su propósito se componen por un cierto número de campos, Tiendas X como vimos anteriormente tiene definido tres tipos de servicios en su mensajería (deposito, reverso y echo), mientras que Banco Y solo tiene definidos dos (deposito y reverso).A continuación la Tabla 4.39 muestra la estructura de campos para los tres tipos de mensajes originados e intercambiados entre Tiendas X y Gateway ISO8583.
Tabla 4.39 Estructura de mensajes entre Tiendas X y Gateway ISO8583.
Depósito Reverso Echo
CAMPO 0200 0210 420 0430 0800 0810 CAMPO 1 M M M M 1 3 M M M M 3 4 M M M M 4 7 M M M M M M 7 11 M M M M M M 11 12 M M M 12 13 M M M 13 15 M M M M M 15 17 M M M M 17 22 M M M M 22 32 M M 32 35 M M M M 35 37 M M M M 37 38 M M 38 39 M M M M 39 41 M M M M 41 43 C C 43 48 M M M C 48 49 M M M M 49 63 C C C C 63 70 M M 70 90 M M 90 Abreviaciones
78
La Tabla 4.40 muestra la estructura de campos para los dos tipos de mensajes originados e intercambiados entre Gateway ISO8583 y Banco Y.
Tabla 4.40 Estructura de mensajes entre Gateway ISO8583 y Banco Y.
Depósito Reverso CAMPO 0200 0210 420 0430 CAMPO 1 M M 1 3 M M M M 3 4 M M M M 4 7 M M M M 7 11 M M M M 11 12 M M M 12 13 M M M 13 15 M M M 15 17 M M M M 17 22 M M M M 22 32 M M 32 35 M M M M 35 37 M M M M 37 38 M M 38 39 M M M 39 41 M M M M 41 43 C C 43 48 M M M 48 49 M M M M 49 63 C C C C 63 64 M M 64 90 M M 90 128 M M 128 Abreviaciones
C.- Campo Condicional M.- Campo Mandatorio
Como podemos observar al comparar la definición de servicios y estructura de mensajes
disponibles para Tiendas X y Banco Y, se hacen evidentes las funciones que Gateway ISO8583 tendrá como intermediario dentro del flujo de transacciones.
79
4.10.8.- Ejemplos de tramas ISO8583
Para comprender de forma sencilla como están conformados a nivel de bytes los mensajes transaccionales de depósito, reverso y echo mostrare un ejemplo para cada uno de los mensajes generados por Tiendas X.
4.10.8.1.- Ejemplo Trama Depósito
En la Tabla 4.41 se muestra en la parte superior un ejemplo de la representación ASCII de una trama de depósito, mensaje 0200, en la parte inferior de la tabla se detalla el análisis de los campos que conforman la estructura del mensaje.
Tabla 4.41 Ejemplo Trama 0200 Depósito.
“ISO02110005502003238840128A1800000000000000005400009261837241906011851000926092690 10212215579210000000386=0000000000005928CEN50FRDSS787932 Pitagoras 1234 Mexico DF MX0276285027 00000000484”
Header = ISO021100055
MTI = 0200
BitMap = 3238840128A18000
Nombre del Campo Dato obtenido (datos entre [] = longitud variable)
[3] Processing code (n 6) '000000'
[4] Amount,transaction (n 12) '000000054000'
[7] Transmission date & time (n 10) '0926183724' [11] Systems trace audit number (n 6) '190601' [12] Time, Local transaction (n 6) '185100' [13] Date, Local transaction (n 4) '0926'
[17] Date,capture (n 4) '0926'
[22] Point of service entry mode (n 3) '901' [32] Acquiring institution identification code (n ..11) '[02]12'
[35] Track2 data (z ..37) '[21]5579210000000386=0000'
[37] Retrieval reference number (an 12) '000000005928' [41] Card acceptor terminal identification (ans 16) 'CEN50FRDSS787932'
[43] Card acceptor name/location (ans 40) 'Pitagoras 1234 Mexico DF MX' [48] Additionaldata - Private (an ..999) '[027] 6285027 00000000' [49] Currency code, transaction (a 3) '484'
80
4.10.8.2.- Ejemplo Trama Reverso
En la Tabla 4.42 se muestra en la parte superior un ejemplo de la representación ASCII de una trama de reverso, mensaje 0420, en la parte inferior de la tabla se detalla el análisis de los campos que conforman la estructura del mensaje.
Tabla 4.42 Ejemplo Trama 0420 Reverso.
“ISO0211000550420B23A84012EA1800000000040000000000000000000000540000926183744190602 1851000926092609269010212215579210000000386=000000000000592800000068CEN50FRDSS7879 32 Pitagoras 1234 Mexico DF MX0276285027 0000000048402000000000059280926185100000926 ” Header = ISO021100055 MTI = 0420 BitMap = B23A84012EA180000000004000000000
Nombre del Campo Dato obtenido (datos entre [] = longitud
variable)
[3] Processing code (n 6) '000000'
[4] Amount, transaction (n 12) '000000054000'
[7] Transmission date & time (n 10) '0926183744' [11] Systems trace audit number (n 6) '190602'
[12] Time, Local transaction (n 6) '185100'
[13] Date, Local transaction (n 4) '0926'
[15] Date, Settlement (n 4) '0926'
[17] Date, capture (n 4) '0926'
[22] Point of service entry mode (n 3) '901' [32] Acquiring institution identification code (n ..11) '[02]12'
[35] Track 2 data (z ..37) '[21]5579210000000386=0000'
[37] Retrieval reference number (an 12) '000000005928' [38] Authorization identification response (an 6) '000000'
[39] Response code (an 2) '68'
[41] Card acceptor terminal identification (ans 16) 'CEN50FRDSS787932'
[43] Card acceptor name/location (ans 40) 'Pitagoras 1234 Mexico DF MX'
[48] Additional data - Private (an ..999) '[027]6285027 00000000' [49] Currency code, transaction (a 3) '484'
81
4.10.8.3.- Ejemplo Trama Echo
En la Tabla 4.43 se muestra en la parte superior un ejemplo de la representación ASCII de una trama de echo, mensaje 0800, en la parte inferior de la tabla se detalla el análisis de los campos que conforman la estructura del mensaje.
Tabla 4.43 Ejemplo Trama 0800 Echo.
“ISO02110005608008222000000010000040000000000000003071149221260710307027BVBA3502156 00000000002”
Header = ISO021100055
MTI = 0800
BitMap = 82220000000100000400000000000000
Nombre del Campo Dato obtenido (datos entre [] = longitud variable)
[7] Transmission date & time (n 10) '0307115146' [11] Settlement Date (n 6) '814022' [15] Time, Local transaction (n 4) '0307'
[48] Additionaldata - Private (an ..999) '[027] BVBA3502156 00000000' [70] Network Management I (a 3) '002'
82
4.11.- Programación de Gateway ISO8583
Hemos visto a lo largo de este capitulo el proceso de análisis que nos llevo a establecer las especificaciones del proyecto, basados en dichas especificaciones se genero el diseño de la arquitectura lógica del sistema con un modelo de tres capas (vista, control y datos), vimos también el proceso para definir e interpretar el formato de los mensajes de corresponsalía bancaria ISO8583, hablemos ahora brevemente de la codificación del proyecto.
Como anteriormente se menciono Gateway ISO8583 requiere estar programado y compilado usando como lenguaje de programación Visual Basic . Net, esto por solicitud y estándares propios del Administrador de Corresponsales, en el desarrollo se codifico la arquitectura diseñada en este reporte y se compilo dando por resultado un archivo ejecutable y tres archivos de configuración ilustrados en la Tabla 4.44, un archivo utilizado para definir los parámetros de configuración del sistema y dos utilizados para establecer los esquemas de intercambio de transacciones con Tiendas X y Banco Y, no entraremos en el detalle de la codificación de cada una de las clases del sistema ya el reporte se haría muy extenso, solo mencionare que se codificaron en total 17 paquetes tres perteneciente a la capa de vista, seis para la capa de control y ocho para la capa de datos podemos ver el resumen en la Tabla 4.45.
Tabla 4.44 Archivos resultado de la compilación del sistema Gateway ISO8583.
Archivo Descripción
GatewayISO8583.exe Ejecutable del aplicativo Gateway ISO8583
Config.ini Archivo de configuración de parámetros del aplicativo . ISODefinitionA.xml Archivo XML de definición de mensajes con Tiendas X.
83
Tabla 4.45 Paquetes codificados por capa.
Capa Paquetes Codificados
Vista Gateway ISO8583
Server.exceptions Server.ssl Control Control.businessLogic Control.businessLogic.loaders Control.businessLogic.validators Control.exceptions Control.transform Control.util Datos Data.domain Data.persistence Data.messages Data.messages.exceptions Data.messages.gbTripleDES Data.messages.isoFactory Data.exceptions Data.util
84