3. SOA
• Método para organizar y utilizar capacidades distribuidas que
pueden estar bajo el control de diferentes sistemas.
Services Services Services
Requestor Broker Provider
(Middleware)
4. Services Requestor
• Aplicación con una necesidad de negocio. Por ejemplo:
• CORE transaccional que da servicio a los cajeros
automáticos y dataphonos.
• Servidor de interner con las aplicaciones de servicio para el
canal.
• Aplicaciones de banca no corresponsal.
5. Services Broker o Middleware
• Software que asiste a una aplicación para interactuar o
comunicarse con otras aplicaciones, software, redes, hardware
y/o sistemas operativos.
• Administra:
• Las comunicaciones físicas y lógicas
• La traducción y enrutamiento de los datos.
6. Services Provider
• Aplicación que implementa la lógica de negocio para dar
respueta a las solicitudes del services requestor.
• Aplicación de validación de datos del cliente.
• Aplicación de autorización de transacciones de cajeros
automáticos.
• Aplicación de autorización de transacciones de CSSA.
7. Patron MVC
• Patrón de arquitectura de software que separa los datos y
la lógica de negocio de una aplicación de la interfaz de
usuario y el módulo encargado de gestionar los eventos y las
comunicaciones.
Controlador
Vista
Modelo
Lógica de
Negocio
Acceso a
Datos
8. Websphere MQ
Framework para comunicaciones intersistemas
Funciona en diferentes sistemas operativos y plataformas
de hardware
Aplica los conceptos:
Store and Forward
Comunicación asincrona
Tiempo inicial Tiempo Final / EntregaDelay
9. Websphere MQ
Tipos de comunicación de aplicaciones:
Fire and Forget
Request / Response
PGM A
PGM B
PUT GET
Cola
PGM A
PGM B
PUT GET
Cola
Reply to Queue
PUT Mensaje
Procesado
GET Mensaje
Procesado
10. Websphere MQ - Componentes
Componentes principales
Gestor de colas
Colas
Canales
Mensajes
11. Websphere MQ - Mensajes
Son los datos enviados entre aplicaciones
Están formados por dos partes:
Datos de la aplicación: Contiene los datos de la
aplicación.
Propiedades del mensaje: Contiene información que
utiliza el gestor de colas como el nombre de la cola,
prioridad, información de seguridad, etc.
12. Websphere MQ - Colas
Repositorio por donde se envía y reciben mensajes
Pueden ser remotas o locales
No son como las data queues (*DTAQ)
Para acceder y utilizar las colas se deben usar las API’s
de MQ.
13. Websphere MQ - Colas
Son independientes de la aplicación.
Se pueden definir las siguientes características al crear
una cola:
Put-enabled (Los mensajes pueden se colocados en la
cola para ser enviados)
Get enabled (Los mensajes pueden ser recibidos desde
la cola)
Tamaño de la cola
14. Queue Manager es un subsistema de software que controla
el acceso a colas individuales. Registra las anotaciones de
toda actividad en cada cola.
Sistema Local Sistema Remoto
Remote Queue Local Queue
Local Queue
Remote
Queue
Administrado por el
Queue manager
del sistema Local
Administrado por el
Queue manager
del sistema remoto
Websphere MQ - Queue Manager
19. MQ Programación - APIs
De uso común:
MQCONN – Conectar al Queue Manager
MQDISC – Desconectar del Queue Manager
MQOPEN – Abrir una cola
MQCLOSE – Cerrar una cola
MQPUT – Colocar un mensaje en una cola
MQGET – Tomar un mensaje de una cola
QMQM – API para llamados
dinamicos (Conectar,
desconec tar, abrir, cerrar,
colocar y/o recibir).
20. MQ Programación - Modelo
El modelo general para crear un programa que utilice MQ
es el siguiente:
1. MQCONN:
Conectar al queue
manager
QUEUE MANAGER
2. MQOPEN: Abrir
la cola
QUEUE MANAGER
3. MQPUT:
Enviar Mensaje
QUEUE MANAGER
21. MQ Programación - Modelo
El modelo general para crear un programa que utilice MQ
es el siguiente:
4. MQGET:
Recibir Mensaje
QUEUE MANAGER
5. MQCLOSE:
Cerrar la Cola
QUEUE MANAGER
6. MQDISC:
Desconectar del
queue manager
QUEUE MANAGER
22. MQ Programación- RPG
Ejemplo de los Copy que se deben utilizar:
* MQI Named Constants
/COPY QMQM/QRPGLESRC,CMQG
* Object Descriptor
D MQOD DS
/COPY QMQM/QRPGLESRC,CMQODG
* Message Descriptor
D MQMD DS
/COPY QMQM/QRPGLESRC,CMQMDG
* Get Message Options
D MQGMO DS
/COPY QMQM/QRPGLESRC,CMQGMOG
* Put message options
D MQPMO DS
/COPY QMQM/QRPGLESRC,CMQPMOG
Todas las definiciones de
estructuras de datos, prototipos y
API’s se encuentran la librería
QMQM.
Incluyen: Nombres de
constantes, información del
descriptor de objetovs y
mensajes e información para
opciones de las API’s Put y get.
23. MQ Programación- RPG
Código ejemplo para conectar al Queue Manager:
* Conectar al queue manager.
C CallP MQConn(QMName :
C HConn :
C OCode :
C Reason)
C If OCode = CCFail
* Si ocurrió un error
C EndIf
24. MQ Programación- RPG
Ejemplo para abir una cola:
* Abrir una cola
C Eval Opts = OOInpq +
OOFIQ
C Eval ODon = ReplyQue
C CallP MQOpen(HConn :
C MQOD :
C Opts :
C HInObj :
C OCode :
C Reason)
C If Reason <> RCNone
* Si hubo un Error
C EndIf
25. MQ Programación- RPG
Código ejemplo de MQPut:
* MQGet sigue el mismo patron
C Eval MdFmt = FmStr
C Eval MDRQ = ReplyQue
C Eval MDRM = QMName
C CallP MQPut(HConn :
C HOutObj :
C MQMd :
C MQPmo :
C BufLen :
C BufPtr :
C CCode :
C Reason)
C If Reason <> RCNone
* Si ocurre un Error
C EndIf
26. MQ Programación- RPG
Código Ejemplo de MQGet:
C CallP MQGet(HConn :
C HInObj :
C MQMd :
C MQGmo :
C BufLen :
C BufPtr :
C MsgLen :
C CCode :
C Reason)
* No hay mensajes disponibles
C If Reason <> RCNone
C If Reason <> RC2033
* Ocurrió un error
C EndIf
C Else
* Procesa los datos
C EndIf
27. MQ Programación- RPG
Código ejemplo de MQClose:
* Cierra la cola
C Eval Opts = CONone
C CallP MQClose(HConn :
C HInObj :
C Opts :
C CCode :
C Reason)
C If Reason <> RCNone
* Si ocurre un error
C EndIf
28. MQ Programación- RPG
Código ejemplo de MQDisc:
* Desconectar del Queue Manager.
C CallP MQDisc(HConn :
C OCode :
C Reason)
* Si se detecta algún error.
C If OCode = CCFail
* Gestiona el error...
C EndIf
29. MQ Programación- RPG
Llamados Dinámicos con QMQM:
Mediante el CID o identificador de tipo de operación, se pueden
realizar llamados al programa QMQM indicando el tipo de operación
a realizar.
C eval cid = MQCONN
C* Conexión a la cola
C call 'QMQM'
C parm cid
C parm QNAME
C parm hconn
C parm ocode
C parm reason
CID QMQM
Call
30. Notas Finales
MQ permite:
Interconectar sistemas (AS/400, Mainframe, Linux, Windows, etc).
Implementar los conceptos de SOA y MVC.
Crear arquitecturas dinámicas.
Modernizar sistemas de tipo legacy sin necesidad de cambiar las
aplicaciones y bases de datos existentes.